New party mode: Team Survival (#914)
* Add team survival party mode A new party mode for two teams that only needs 2 microphones. In every duel one player of each team sings against one of the other team. Whoever loses a duel loses a heart, players without hearts are out, and the team whose players are all out loses. - Every player sings once per round before anyone sings again, the duels are drawn randomly - Teams of different sizes are possible, in the smaller team some players sing a second time per round - Hearts can be the same for everyone or set per player, to balance uneven teams or strong and weak singers - Up to 3 jokers per player to skip a song - On a tie, the duel is sung again - A lost heart is animated, and the winning team is celebrated at the end * Trigger CI rebuild --------- Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
This commit is contained in:
1 parent
5e449c7b01
commit
3810f75e04
22 files changed
+5032
No files matched your search
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<PartyModeSystemVersion>2</PartyModeSystemVersion>
|
||||
<Info>
|
||||
<Name>TR_PARTYMODE_NAME</Name>
|
||||
<Author>McSchneidar</Author>
|
||||
<Description>TR_PARTYMODE_DESCRIPTION</Description>
|
||||
<Folder>TeamSurvival</Folder>
|
||||
<PartyModeFile>CPartyModeTeamSurvival</PartyModeFile>
|
||||
<PartyModeVersionMajor>1</PartyModeVersionMajor>
|
||||
<PartyModeVersionMinor>0</PartyModeVersionMinor>
|
||||
<TargetAudience>TR_PARTYMODE_AUDIENCE</TargetAudience>
|
||||
</Info>
|
||||
<PartyScreens>
|
||||
<ScreenFile>CPartyScreenTeamSurvivalMain</ScreenFile>
|
||||
<ScreenFile>CPartyScreenTeamSurvivalConfig</ScreenFile>
|
||||
<ScreenFile>CPartyScreenTeamSurvivalNames</ScreenFile>
|
||||
<ScreenFile>CPartyScreenTeamSurvivalSongs</ScreenFile>
|
||||
<ScreenFile>CPartyScreenTeamSurvivalHearts</ScreenFile>
|
||||
</PartyScreens>
|
||||
</root>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="language">Deutsch</string>
|
||||
<string name="TR_PARTYMODE_NAME">Team Survival</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Zwei Teams singen Duelle, der Verlierer verliert ein Herz, das letzte Team gewinnt.</string>
|
||||
<string name="TR_PARTYMODE_AUDIENCE">Für zwei Teams mit bis zu 8 Spielern, 2 Mikrofone nötig.</string>
|
||||
<string name="TR_BUTTON_NEXT">Weiter</string>
|
||||
<string name="TR_BUTTON_BACK">Zurück</string>
|
||||
<string name="TR_BUTTON_EXIT">Beenden</string>
|
||||
<string name="TR_BUTTON_YES">Ja</string>
|
||||
<string name="TR_BUTTON_NO">Nein</string>
|
||||
<string name="TR_BUTTON_NEXT_ROUND">Duell starten</string>
|
||||
<string name="TR_SONGS">Songs</string>
|
||||
<string name="TR_TEAM">Team</string>
|
||||
<string name="TR_SCREENCONFIG_TITLE">Team Survival: Konfiguration</string>
|
||||
<string name="TR_SCREENCONFIG_HEARTSMODE">Herzen</string>
|
||||
<string name="TR_SCREENCONFIG_HEARTS_EQUAL">Für alle gleich</string>
|
||||
<string name="TR_SCREENCONFIG_HEARTS_PERPLAYER">Pro Spieler festlegen</string>
|
||||
<string name="TR_SCREENCONFIG_NUMHEARTS">Herzen pro Spieler</string>
|
||||
<string name="TR_SCREENCONFIG_NUMJOKERS">Joker pro Spieler</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Team Survival: Teams zusammenstellen</string>
|
||||
<string name="TR_SCREENNAMES_SELPLAYERSTITLE">Ausgewählte Spieler für dieses Team:</string>
|
||||
<string name="TR_SCREENNAMES_TEAM1">Team 1</string>
|
||||
<string name="TR_SCREENNAMES_TEAM2">Team 2</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Zufällig wählen</string>
|
||||
<string name="TR_SCREENNAMES_HELPMESSAGE">Füge beiden Teams mindestens einen Spieler hinzu! / Ziehe Avatare in die Liste der ausgewählten Spieler! / Rechtsklick auf einen ausgewählten Avatar entfernt ihn!</string>
|
||||
<string name="TR_SCREENHEARTS_TITLE">Team Survival: Herzen pro Spieler</string>
|
||||
<string name="TR_SCREENHEARTS_HINT">Hoch/Runter = Spieler wählen · Links/Rechts oder Herz anklicken = Herzen ändern · Enter = Weiter · ESC = Zurück</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Team Survival</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Willst du das Spiel wirklich beenden?</string>
|
||||
<string name="TR_SCREENMAIN_PASS">Durchgang</string>
|
||||
<string name="TR_SCREENMAIN_DUEL">Duell</string>
|
||||
<string name="TR_SCREENMAIN_VERSUS">gegen</string>
|
||||
<string name="TR_SCREENMAIN_REMATCH">Gleichstand! Das Duell wird nachgesungen.</string>
|
||||
<string name="TR_SCREENMAIN_CHAMPION">Siegerteam</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="language">English</string>
|
||||
<string name="TR_PARTYMODE_NAME">Team Survival</string>
|
||||
<string name="TR_PARTYMODE_DESCRIPTION">Two teams sing duels, the loser loses a heart, the last team standing wins.</string>
|
||||
<string name="TR_PARTYMODE_AUDIENCE">For two teams with up to 8 players each, 2 microphones needed.</string>
|
||||
<string name="TR_BUTTON_NEXT">Next</string>
|
||||
<string name="TR_BUTTON_BACK">Back</string>
|
||||
<string name="TR_BUTTON_EXIT">Exit</string>
|
||||
<string name="TR_BUTTON_YES">Yes</string>
|
||||
<string name="TR_BUTTON_NO">No</string>
|
||||
<string name="TR_BUTTON_NEXT_ROUND">Start duel</string>
|
||||
<string name="TR_SONGS">Songs</string>
|
||||
<string name="TR_TEAM">Team</string>
|
||||
<string name="TR_SCREENCONFIG_TITLE">Team Survival: Configuration</string>
|
||||
<string name="TR_SCREENCONFIG_HEARTSMODE">Hearts</string>
|
||||
<string name="TR_SCREENCONFIG_HEARTS_EQUAL">Same for everyone</string>
|
||||
<string name="TR_SCREENCONFIG_HEARTS_PERPLAYER">Set per player</string>
|
||||
<string name="TR_SCREENCONFIG_NUMHEARTS">Hearts per player</string>
|
||||
<string name="TR_SCREENCONFIG_NUMJOKERS">Jokers per player</string>
|
||||
<string name="TR_SCREENNAMES_TITLE">Team Survival: Choose Teams</string>
|
||||
<string name="TR_SCREENNAMES_SELPLAYERSTITLE">Selected players for this team:</string>
|
||||
<string name="TR_SCREENNAMES_TEAM1">Team 1</string>
|
||||
<string name="TR_SCREENNAMES_TEAM2">Team 2</string>
|
||||
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Select random</string>
|
||||
<string name="TR_SCREENNAMES_HELPMESSAGE">Add at least one player to both teams! / Drag player avatars to add them to the selected players list! / Right click avatar of selected players to remove them!</string>
|
||||
<string name="TR_SCREENHEARTS_TITLE">Team Survival: Hearts per Player</string>
|
||||
<string name="TR_SCREENHEARTS_HINT">Up/Down = Select player · Left/Right or click a heart = Change hearts · Enter = Next · ESC = Back</string>
|
||||
<string name="TR_SCREENMAIN_TITLE">Team Survival</string>
|
||||
<string name="TR_SCREENMAIN_POPUP_REALLYEXIT">Do you really want to exit the game?</string>
|
||||
<string name="TR_SCREENMAIN_PASS">Round</string>
|
||||
<string name="TR_SCREENMAIN_DUEL">Duel</string>
|
||||
<string name="TR_SCREENMAIN_VERSUS">vs.</string>
|
||||
<string name="TR_SCREENMAIN_REMATCH">Tie! The duel is sung again.</string>
|
||||
<string name="TR_SCREENMAIN_CHAMPION">Winning team</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ThemeSystemVersion>9</ThemeSystemVersion>
|
||||
<Info>
|
||||
<Name>Default</Name>
|
||||
<Author>McSchneidar</Author>
|
||||
<VersionMajor>0</VersionMajor>
|
||||
<VersionMinor>1</VersionMinor>
|
||||
</Info>
|
||||
</root>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<SkinSystemVersion>4</SkinSystemVersion>
|
||||
<Info>
|
||||
<Name>Default</Name>
|
||||
<Author>McSchneidar</Author>
|
||||
<VersionMajor>0</VersionMajor>
|
||||
<VersionMinor>1</VersionMinor>
|
||||
</Info>
|
||||
<Colors />
|
||||
<Skins>
|
||||
<Heart>Heart.png</Heart>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
</Skins>
|
||||
<Videos />
|
||||
</root>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.3 KiB |
+295
@@ -0,0 +1,295 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Screen>
|
||||
<Informations>
|
||||
<ScreenName>PartyScreenTeamSurvivalConfig</ScreenName>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
<Type>Video</Type>
|
||||
<SlideShowTextures />
|
||||
<Video>BG_Video</Video>
|
||||
<Skin>BG_Default</Skin>
|
||||
<Color Name="BackgroundColor" />
|
||||
</Background>
|
||||
</Backgrounds>
|
||||
<Statics>
|
||||
<Static Name="StaticMenuBar">
|
||||
<Skin />
|
||||
<Color Name="BackgroundColorAlpha" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>60</Y>
|
||||
<W>1920</W>
|
||||
<H>67.5</H>
|
||||
<Z>1</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
</Statics>
|
||||
<Texts>
|
||||
<Text Name="TextTitle">
|
||||
<X>960</X>
|
||||
<Y>75</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENCONFIG_TITLE</Text>
|
||||
</Text>
|
||||
<Text Name="TextHeartsMode">
|
||||
<X>112.5</X>
|
||||
<Y>157.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENCONFIG_HEARTSMODE</Text>
|
||||
</Text>
|
||||
<Text Name="TextNumHearts">
|
||||
<X>112.5</X>
|
||||
<Y>247.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENCONFIG_NUMHEARTS</Text>
|
||||
</Text>
|
||||
<Text Name="TextNumJokers">
|
||||
<X>112.5</X>
|
||||
<Y>337.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENCONFIG_NUMJOKERS</Text>
|
||||
</Text>
|
||||
</Texts>
|
||||
<Buttons>
|
||||
<Button Name="ButtonNext">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1477.5</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_NEXT</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonBack">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>217.5</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
</Buttons>
|
||||
<SongMenus />
|
||||
<Lyrics />
|
||||
<SelectSlides>
|
||||
<SelectSlide Name="SelectSlideHeartsMode">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>150</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>300</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>9</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlideNumHearts">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>240</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>247.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>247.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>300</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>9</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlideNumJokers">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>330</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>337.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>337.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>300</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>9</NumVisible>
|
||||
</SelectSlide>
|
||||
</SelectSlides>
|
||||
<SingNotes />
|
||||
<NameSelections />
|
||||
<Equalizers />
|
||||
<Playlists />
|
||||
<ParticleEffects />
|
||||
<ScreenSettings />
|
||||
</Screen>
|
||||
+262
@@ -0,0 +1,262 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Screen>
|
||||
<Informations>
|
||||
<ScreenName>PartyScreenTeamSurvivalHearts</ScreenName>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
<Type>Video</Type>
|
||||
<SlideShowTextures />
|
||||
<Video>BG_Video</Video>
|
||||
<Skin>BG_Default</Skin>
|
||||
<Color Name="BackgroundColor" />
|
||||
</Background>
|
||||
</Backgrounds>
|
||||
<Statics>
|
||||
<Static Name="StaticMenuBar">
|
||||
<Skin />
|
||||
<Color Name="BackgroundColorAlpha" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>60</Y>
|
||||
<W>1920</W>
|
||||
<H>67.5</H>
|
||||
<Z>1</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTeamPanel1">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>0.1</R>
|
||||
<G>0.09</G>
|
||||
<B>0.25</B>
|
||||
<A>0.75</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>140</X>
|
||||
<Y>200</Y>
|
||||
<W>800</W>
|
||||
<H>640</H>
|
||||
<Z>0.8</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTeamPanel2">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>0.1</R>
|
||||
<G>0.09</G>
|
||||
<B>0.25</B>
|
||||
<A>0.75</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>1000</X>
|
||||
<Y>200</Y>
|
||||
<W>800</W>
|
||||
<H>640</H>
|
||||
<Z>0.8</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticRowHighlight">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.8</G>
|
||||
<B>0</B>
|
||||
<A>0.18</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>760</W>
|
||||
<H>62</H>
|
||||
<Z>0.6</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticRowAvatar">
|
||||
<Skin />
|
||||
<Color Name="Visible" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>54</W>
|
||||
<H>54</H>
|
||||
<Z>0.4</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticHeart">
|
||||
<Skin>Heart</Skin>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.3</G>
|
||||
<B>0.4</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>46</W>
|
||||
<H>46</H>
|
||||
<Z>0.3</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
</Statics>
|
||||
<Texts>
|
||||
<Text Name="TextTitle">
|
||||
<X>960</X>
|
||||
<Y>75</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENHEARTS_TITLE</Text>
|
||||
</Text>
|
||||
<Text Name="TextTeam1">
|
||||
<X>540</X>
|
||||
<Y>210</Y>
|
||||
<Z>0</Z>
|
||||
<H>40</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENNAMES_TEAM1</Text>
|
||||
</Text>
|
||||
<Text Name="TextTeam2">
|
||||
<X>1400</X>
|
||||
<Y>210</Y>
|
||||
<Z>0</Z>
|
||||
<H>40</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENNAMES_TEAM2</Text>
|
||||
</Text>
|
||||
<Text Name="TextRowName">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<Z>0</Z>
|
||||
<H>34</H>
|
||||
<MaxW>330</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextHint">
|
||||
<X>960</X>
|
||||
<Y>860</Y>
|
||||
<Z>0</Z>
|
||||
<H>30</H>
|
||||
<MaxW>1600</MaxW>
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENHEARTS_HINT</Text>
|
||||
</Text>
|
||||
</Texts>
|
||||
<Buttons>
|
||||
<Button Name="ButtonNext">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1477.5</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_NEXT</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonBack">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>217.5</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
</Buttons>
|
||||
<SongMenus />
|
||||
<Lyrics />
|
||||
<SelectSlides />
|
||||
<SingNotes />
|
||||
<NameSelections />
|
||||
<Equalizers />
|
||||
<Playlists />
|
||||
<ParticleEffects />
|
||||
<ScreenSettings />
|
||||
</Screen>
|
||||
+586
@@ -0,0 +1,586 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Screen>
|
||||
<Informations>
|
||||
<ScreenName>PartyScreenTeamSurvivalMain</ScreenName>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
<Type>Video</Type>
|
||||
<SlideShowTextures />
|
||||
<Video>BG_Video</Video>
|
||||
<Skin>BG_Default</Skin>
|
||||
<Color Name="BackgroundColor" />
|
||||
</Background>
|
||||
</Backgrounds>
|
||||
<Statics>
|
||||
<Static Name="StaticMenuBar">
|
||||
<Skin />
|
||||
<Color Name="BackgroundColorAlpha" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>60</Y>
|
||||
<W>1920</W>
|
||||
<H>67.5</H>
|
||||
<Z>1</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticPopupBG">
|
||||
<Skin>PopupBG</Skin>
|
||||
<Color Name="StaticColor" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>1920</W>
|
||||
<H>1080</H>
|
||||
<Z>-1</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTeamPanel1">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>0.1</R>
|
||||
<G>0.09</G>
|
||||
<B>0.25</B>
|
||||
<A>0.75</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>40</X>
|
||||
<Y>190</Y>
|
||||
<W>560</W>
|
||||
<H>720</H>
|
||||
<Z>0.8</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTeamPanel2">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>0.1</R>
|
||||
<G>0.09</G>
|
||||
<B>0.25</B>
|
||||
<A>0.75</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>1320</X>
|
||||
<Y>190</Y>
|
||||
<W>560</W>
|
||||
<H>720</H>
|
||||
<Z>0.8</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticCardBox">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>0.1</R>
|
||||
<G>0.09</G>
|
||||
<B>0.25</B>
|
||||
<A>0.9</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>520</W>
|
||||
<H>68</H>
|
||||
<Z>0.5</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticCardActive">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.8</G>
|
||||
<B>0</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>528</W>
|
||||
<H>76</H>
|
||||
<Z>0.6</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticCardAvatar">
|
||||
<Skin />
|
||||
<Color Name="Visible" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>56</W>
|
||||
<H>56</H>
|
||||
<Z>0.4</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticHeart">
|
||||
<Skin>Heart</Skin>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.3</G>
|
||||
<B>0.4</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>32</W>
|
||||
<H>32</H>
|
||||
<Z>0.3</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticDuelFrame1">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>652</X>
|
||||
<Y>292</Y>
|
||||
<W>216</W>
|
||||
<H>216</H>
|
||||
<Z>0.5</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticDuelAvatar1">
|
||||
<Skin />
|
||||
<Color Name="Visible" />
|
||||
<Rect>
|
||||
<X>660</X>
|
||||
<Y>300</Y>
|
||||
<W>200</W>
|
||||
<H>200</H>
|
||||
<Z>0.4</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticDuelFrame2">
|
||||
<Skin />
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>1</G>
|
||||
<B>1</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<Rect>
|
||||
<X>1052</X>
|
||||
<Y>292</Y>
|
||||
<W>216</W>
|
||||
<H>216</H>
|
||||
<Z>0.5</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticDuelAvatar2">
|
||||
<Skin />
|
||||
<Color Name="Visible" />
|
||||
<Rect>
|
||||
<X>1060</X>
|
||||
<Y>300</Y>
|
||||
<W>200</W>
|
||||
<H>200</H>
|
||||
<Z>0.4</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
</Statics>
|
||||
<Texts>
|
||||
<Text Name="TextTitle">
|
||||
<X>960</X>
|
||||
<Y>75</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENMAIN_TITLE</Text>
|
||||
</Text>
|
||||
<Text Name="TextPopupReallyExit">
|
||||
<X>960</X>
|
||||
<Y>405</Y>
|
||||
<Z>-11</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>570</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENMAIN_POPUP_REALLYEXIT</Text>
|
||||
</Text>
|
||||
<Text Name="TextTeam1">
|
||||
<X>320</X>
|
||||
<Y>205</Y>
|
||||
<Z>0</Z>
|
||||
<H>44</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextTeam2">
|
||||
<X>1600</X>
|
||||
<Y>205</Y>
|
||||
<Z>0</Z>
|
||||
<H>44</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextPass">
|
||||
<X>960</X>
|
||||
<Y>150</Y>
|
||||
<Z>0</Z>
|
||||
<H>34</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextCardName">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<Z>0</Z>
|
||||
<H>32</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextDuelName1">
|
||||
<X>760</X>
|
||||
<Y>520</Y>
|
||||
<Z>0</Z>
|
||||
<H>40</H>
|
||||
<MaxW>260</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextDuelName2">
|
||||
<X>1160</X>
|
||||
<Y>520</Y>
|
||||
<Z>0</Z>
|
||||
<H>40</H>
|
||||
<MaxW>260</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextVersus">
|
||||
<X>960</X>
|
||||
<Y>375</Y>
|
||||
<Z>0</Z>
|
||||
<H>44</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.8</G>
|
||||
<B>0</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENMAIN_VERSUS</Text>
|
||||
</Text>
|
||||
<Text Name="TextRematch">
|
||||
<X>960</X>
|
||||
<Y>600</Y>
|
||||
<Z>0</Z>
|
||||
<H>34</H>
|
||||
<MaxW>600</MaxW>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.8</G>
|
||||
<B>0</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENMAIN_REMATCH</Text>
|
||||
</Text>
|
||||
<Text Name="TextChampionLabel">
|
||||
<X>960</X>
|
||||
<Y>300</Y>
|
||||
<Z>0</Z>
|
||||
<H>36</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.8</G>
|
||||
<B>0</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENMAIN_CHAMPION</Text>
|
||||
</Text>
|
||||
<Text Name="TextChampion">
|
||||
<X>960</X>
|
||||
<Y>350</Y>
|
||||
<Z>0</Z>
|
||||
<H>70</H>
|
||||
<MaxW>600</MaxW>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.8</G>
|
||||
<B>0</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Texts>
|
||||
<Buttons>
|
||||
<Button Name="ButtonNextRound">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1545</X>
|
||||
<Y>945</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>15</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_NEXT_ROUND</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonBack">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>150</X>
|
||||
<Y>945</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonExit">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>150</X>
|
||||
<Y>945</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_EXIT</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonPopupYes">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>997.5</X>
|
||||
<Y>540</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>-11</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_YES</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonPopupNo">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>697.5</X>
|
||||
<Y>540</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>-11</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_NO</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
</Buttons>
|
||||
<SongMenus />
|
||||
<Lyrics />
|
||||
<SelectSlides />
|
||||
<SingNotes />
|
||||
<NameSelections />
|
||||
<Equalizers />
|
||||
<Playlists />
|
||||
<ParticleEffects>
|
||||
<ParticleEffect Name="ParticleEffectChampion">
|
||||
<Skin>Star</Skin>
|
||||
<Rect>
|
||||
<X>660</X>
|
||||
<Y>280</Y>
|
||||
<W>600</W>
|
||||
<H>340</H>
|
||||
<Z>-1</Z>
|
||||
</Rect>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.8</G>
|
||||
<B>0</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<Type>Star</Type>
|
||||
<Size>18</Size>
|
||||
<MaxNumber>40</MaxNumber>
|
||||
</ParticleEffect>
|
||||
</ParticleEffects>
|
||||
<ScreenSettings />
|
||||
</Screen>
|
||||
+410
@@ -0,0 +1,410 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Screen>
|
||||
<Informations>
|
||||
<ScreenName>PartyScreenTeamSurvivalNames</ScreenName>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
<Type>Video</Type>
|
||||
<SlideShowTextures />
|
||||
<Video>BG_Video</Video>
|
||||
<Skin>BG_Default</Skin>
|
||||
<Color Name="BackgroundColor" />
|
||||
</Background>
|
||||
</Backgrounds>
|
||||
<Statics>
|
||||
<Static Name="StaticMenuBar">
|
||||
<Skin />
|
||||
<Color Name="BackgroundColorAlpha" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>60</Y>
|
||||
<W>1920</W>
|
||||
<H>67.5</H>
|
||||
<Z>1</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
</Statics>
|
||||
<Texts>
|
||||
<Text Name="TextTitle">
|
||||
<X>960</X>
|
||||
<Y>75</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENNAMES_TITLE</Text>
|
||||
</Text>
|
||||
<Text Name="TextSelPlayersTitle">
|
||||
<X>960</X>
|
||||
<Y>232.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>30</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENNAMES_SELPLAYERSTITLE</Text>
|
||||
</Text>
|
||||
<Text Name="TextHelpBar">
|
||||
<X>960</X>
|
||||
<Y>1054.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>24</H>
|
||||
<MaxW>1800</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Normal</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENNAMES_HELPMESSAGE</Text>
|
||||
</Text>
|
||||
</Texts>
|
||||
<Buttons>
|
||||
<Button Name="ButtonBack">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>217.5</X>
|
||||
<Y>927</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonNext">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1477.5</X>
|
||||
<Y>927</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_NEXT</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonRandom">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>847.5</X>
|
||||
<Y>927</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENNAMES_BUTTON_RANDOM</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonIncreaseTeams">
|
||||
<Skin>Plus</Skin>
|
||||
<SkinSelected>Plus</SkinSelected>
|
||||
<Rect>
|
||||
<X>1770</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>15</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Button>
|
||||
<Button Name="ButtonDecreaseTeams">
|
||||
<Skin>Minus</Skin>
|
||||
<SkinSelected>Minus</SkinSelected>
|
||||
<Rect>
|
||||
<X>1695</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>15</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Button>
|
||||
<Button Name="ButtonIncreasePlayer">
|
||||
<Skin>Plus</Skin>
|
||||
<SkinSelected>Plus</SkinSelected>
|
||||
<Rect>
|
||||
<X>1770</X>
|
||||
<Y>345</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>15</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Button>
|
||||
<Button Name="ButtonDecreasePlayer">
|
||||
<Skin>Minus</Skin>
|
||||
<SkinSelected>Minus</SkinSelected>
|
||||
<Rect>
|
||||
<X>1695</X>
|
||||
<Y>345</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>15</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Button>
|
||||
</Buttons>
|
||||
<SongMenus />
|
||||
<Lyrics />
|
||||
<SelectSlides>
|
||||
<SelectSlide Name="SelectSlideTeams">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>60</X>
|
||||
<Y>150</Y>
|
||||
<W>1582.5</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>67.5</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1575</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>300</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>2</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlidePlayer">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlidePlayer</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>60</X>
|
||||
<Y>270</Y>
|
||||
<W>1582.5</W>
|
||||
<H>225</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>67.5</X>
|
||||
<Y>345</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1575</X>
|
||||
<Y>345</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>7.5</TextRelativeY>
|
||||
<TextMaxW>300</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>8</NumVisible>
|
||||
</SelectSlide>
|
||||
</SelectSlides>
|
||||
<SingNotes />
|
||||
<NameSelections>
|
||||
<NameSelection Name="NameSelection">
|
||||
<Rect>
|
||||
<X>142.5</X>
|
||||
<Y>525</Y>
|
||||
<W>1800</W>
|
||||
<H>589.5</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<SkinEmptyTile>CoverTile</SkinEmptyTile>
|
||||
<ColorEmptyTile Name="EmptyTileColor" />
|
||||
<SkinTileSelected>PlayerSelector</SkinTileSelected>
|
||||
<Tiles>
|
||||
<W>150</W>
|
||||
<H>150</H>
|
||||
<NumW>10</NumW>
|
||||
<NumH>2</NumH>
|
||||
<SpaceW>15</SpaceW>
|
||||
<SpaceH>15</SpaceH>
|
||||
<Name>
|
||||
<Space>-30</Space>
|
||||
<H>25.5</H>
|
||||
<Font>Outline</Font>
|
||||
<Style>Bold</Style>
|
||||
<Color Name="TextColor" />
|
||||
</Name>
|
||||
</Tiles>
|
||||
</NameSelection>
|
||||
</NameSelections>
|
||||
<Equalizers />
|
||||
<Playlists />
|
||||
<ParticleEffects />
|
||||
<ScreenSettings />
|
||||
</Screen>
|
||||
+407
@@ -0,0 +1,407 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Screen>
|
||||
<Informations>
|
||||
<ScreenName>PartyScreenTeamSurvivalSongs</ScreenName>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
<Type>Video</Type>
|
||||
<SlideShowTextures />
|
||||
<Video>BG_Video</Video>
|
||||
<Skin>BG_Default</Skin>
|
||||
<Color Name="BackgroundColor" />
|
||||
</Background>
|
||||
</Backgrounds>
|
||||
<Statics>
|
||||
<Static Name="StaticMenuBar">
|
||||
<Skin />
|
||||
<Color Name="BackgroundColorAlpha" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>60</Y>
|
||||
<W>1920</W>
|
||||
<H>67.5</H>
|
||||
<Z>1</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
</Statics>
|
||||
<Texts>
|
||||
<Text Name="TextTitle">
|
||||
<X>960</X>
|
||||
<Y>75</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENCONFIG_TITLE</Text>
|
||||
</Text>
|
||||
<Text Name="TextSource">
|
||||
<X>112.5</X>
|
||||
<Y>157.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SONGSOURCE</Text>
|
||||
</Text>
|
||||
<Text Name="TextSongMode">
|
||||
<X>112.5</X>
|
||||
<Y>435</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_GAMEMODE</Text>
|
||||
</Text>
|
||||
</Texts>
|
||||
<Buttons>
|
||||
<Button Name="ButtonNext">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1477.5</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_NEXT</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonBack">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>217.5</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
</Buttons>
|
||||
<SongMenus />
|
||||
<Lyrics />
|
||||
<SelectSlides>
|
||||
<SelectSlide Name="SelectSlideSource">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>150</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>157.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>308</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlidePlaylist">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>240</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>247.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>247.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>900</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlideSorting">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>240</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>247.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>247.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>900</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlideCategory">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>330</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>337.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>337.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>900</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>1</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlideSongMode">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>435</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>442.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>442.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>308</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>2</NumVisible>
|
||||
</SelectSlide>
|
||||
<SelectSlide Name="SelectSlideNumMedleySongs">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>750</X>
|
||||
<Y>540</Y>
|
||||
<W>1050</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>757.5</X>
|
||||
<Y>547.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1732.5</X>
|
||||
<Y>547.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColorAlpha" />
|
||||
<TextSelColor Name="TextSelColor" />
|
||||
<TextH>40.5</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>308</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>5</NumVisible>
|
||||
</SelectSlide>
|
||||
</SelectSlides>
|
||||
<SingNotes />
|
||||
<NameSelections />
|
||||
<Equalizers />
|
||||
<Playlists />
|
||||
<ParticleEffects />
|
||||
<ScreenSettings />
|
||||
</Screen>
|
||||
@@ -0,0 +1,769 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using VocaluxeLib.Menu;
|
||||
using VocaluxeLib.Utils;
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
namespace VocaluxeLib.PartyModes.TeamSurvival
|
||||
{
|
||||
public class CSurvivalPlayer
|
||||
{
|
||||
public Guid ProfileId;
|
||||
public int Team;
|
||||
public int StartHearts;
|
||||
public int Hearts;
|
||||
public int Jokers;
|
||||
public int DuelsInPass;
|
||||
|
||||
public bool IsOut
|
||||
{
|
||||
get { return Hearts <= 0; }
|
||||
}
|
||||
}
|
||||
|
||||
public class CSurvivalDuel
|
||||
{
|
||||
public CSurvivalPlayer[] Players = new CSurvivalPlayer[2];
|
||||
public int[] Scores = new int[2];
|
||||
public int Loser = -1;
|
||||
}
|
||||
|
||||
public abstract class CPartyScreenTeamSurvival : CMenuParty
|
||||
{
|
||||
protected new CPartyModeTeamSurvival _PartyMode;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
_PartyMode = (CPartyModeTeamSurvival)base._PartyMode;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class CPartyModeTeamSurvival : CPartyMode
|
||||
{
|
||||
public const int TeamCount = 2;
|
||||
public const int MaxHearts = 5;
|
||||
public const int MaxJokers = 3;
|
||||
public const int MaxPlayersInTeam = 8;
|
||||
|
||||
public override int MinMics
|
||||
{
|
||||
get { return TeamCount; }
|
||||
}
|
||||
public override int MaxMics
|
||||
{
|
||||
get { return CBase.Config.GetMaxNumMics(); }
|
||||
}
|
||||
public override int MinPlayers
|
||||
{
|
||||
get { return TeamCount; }
|
||||
}
|
||||
public override int MaxPlayers
|
||||
{
|
||||
get { return TeamCount * MaxPlayersInTeam; }
|
||||
}
|
||||
public override int MinTeams
|
||||
{
|
||||
get { return TeamCount; }
|
||||
}
|
||||
public override int MaxTeams
|
||||
{
|
||||
get { return TeamCount; }
|
||||
}
|
||||
public override int MinPlayersPerTeam
|
||||
{
|
||||
get { return 1; }
|
||||
}
|
||||
public override int MaxPlayersPerTeam
|
||||
{
|
||||
get { return MaxPlayersInTeam; }
|
||||
}
|
||||
|
||||
private enum EStage
|
||||
{
|
||||
Config,
|
||||
Songs,
|
||||
Names,
|
||||
Hearts,
|
||||
Main,
|
||||
SongSelection,
|
||||
Singing,
|
||||
MedleySinging
|
||||
}
|
||||
|
||||
public struct SData
|
||||
{
|
||||
public bool HeartsPerPlayer;
|
||||
public int NumHearts;
|
||||
public int NumJokers;
|
||||
public Dictionary<Guid, int> PlayerHearts;
|
||||
|
||||
public int NumPlayerTeam1;
|
||||
public int NumPlayerTeam2;
|
||||
public List<Guid> ProfileIdsTeam1;
|
||||
public List<Guid> ProfileIdsTeam2;
|
||||
|
||||
public ESongSource SongSource;
|
||||
public ESongSorting Sorting;
|
||||
public int CategoryIndex;
|
||||
public int PlaylistId;
|
||||
|
||||
public EGameMode GameMode;
|
||||
public int NumMedleySongs;
|
||||
|
||||
public List<CSurvivalPlayer> Players;
|
||||
public List<CSurvivalDuel> PassDuels;
|
||||
public int PassNr;
|
||||
public int DuelIndex;
|
||||
public int NumDuelsPlayed;
|
||||
public bool IsRematch;
|
||||
public CSurvivalDuel LastDecidedDuel;
|
||||
public int WinnerTeam;
|
||||
|
||||
public List<int> Songs;
|
||||
}
|
||||
|
||||
public SData GameData;
|
||||
private EStage _Stage;
|
||||
|
||||
public CPartyModeTeamSurvival(int id) : base(id)
|
||||
{
|
||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
||||
_ScreenSongOptions.Selection.PartyMode = true;
|
||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = true;
|
||||
_ScreenSongOptions.Selection.NumJokers = new int[] { 1, 1 };
|
||||
_ScreenSongOptions.Selection.TeamNames = new string[] { "foo", "bar" };
|
||||
|
||||
_ScreenSongOptions.Sorting.SearchString = string.Empty;
|
||||
_ScreenSongOptions.Sorting.SearchActive = false;
|
||||
_ScreenSongOptions.Sorting.DuetOptions = EDuetOptions.NoDuets;
|
||||
_ScreenSongOptions.Sorting.FilterPlaylistId = -1;
|
||||
|
||||
GameData = new SData
|
||||
{
|
||||
HeartsPerPlayer = false,
|
||||
NumHearts = 2,
|
||||
NumJokers = 1,
|
||||
PlayerHearts = new Dictionary<Guid, int>(),
|
||||
NumPlayerTeam1 = 2,
|
||||
NumPlayerTeam2 = 2,
|
||||
ProfileIdsTeam1 = new List<Guid>(),
|
||||
ProfileIdsTeam2 = new List<Guid>(),
|
||||
Sorting = CBase.Config.GetSongSorting(),
|
||||
SongSource = ESongSource.TR_SONGSOURCE_ALLSONGS,
|
||||
PlaylistId = 0,
|
||||
CategoryIndex = 0,
|
||||
GameMode = EGameMode.TR_GAMEMODE_NORMAL,
|
||||
NumMedleySongs = 5,
|
||||
Players = new List<CSurvivalPlayer>(),
|
||||
PassDuels = new List<CSurvivalDuel>(),
|
||||
WinnerTeam = -1,
|
||||
Songs = new List<int>()
|
||||
};
|
||||
}
|
||||
|
||||
public override void SetDefaults()
|
||||
{
|
||||
_Stage = EStage.Config;
|
||||
|
||||
_ScreenSongOptions.Sorting.IgnoreArticles = CBase.Config.GetIgnoreArticles();
|
||||
_ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting();
|
||||
_ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_OFF;
|
||||
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||
_ScreenSongOptions.Selection.CategoryIndex = -1;
|
||||
|
||||
if (CBase.Config.GetTabs() == EOffOn.TR_CONFIG_ON && _ScreenSongOptions.Sorting.SongSorting != ESongSorting.TR_CONFIG_NONE)
|
||||
{
|
||||
_ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_ON;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Init()
|
||||
{
|
||||
if (!base.Init())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
SetDefaults();
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void UpdateGame() { }
|
||||
|
||||
public bool IsFinished
|
||||
{
|
||||
get { return GameData.WinnerTeam >= 0; }
|
||||
}
|
||||
|
||||
public CSurvivalDuel CurrentDuel
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsFinished || GameData.DuelIndex >= GameData.PassDuels.Count)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return GameData.PassDuels[GameData.DuelIndex];
|
||||
}
|
||||
}
|
||||
|
||||
public List<CSurvivalPlayer> GetTeam(int team)
|
||||
{
|
||||
return GameData.Players.Where(player => player.Team == team).ToList();
|
||||
}
|
||||
|
||||
public int GetStartHearts(Guid profileId)
|
||||
{
|
||||
int hearts;
|
||||
if (GameData.HeartsPerPlayer && GameData.PlayerHearts.TryGetValue(profileId, out hearts))
|
||||
{
|
||||
return hearts;
|
||||
}
|
||||
|
||||
return GameData.NumHearts;
|
||||
}
|
||||
|
||||
private IMenu _GetNextScreen()
|
||||
{
|
||||
switch (_Stage)
|
||||
{
|
||||
case EStage.Config:
|
||||
return _Screens["CPartyScreenTeamSurvivalConfig"];
|
||||
case EStage.Songs:
|
||||
return _Screens["CPartyScreenTeamSurvivalSongs"];
|
||||
case EStage.Names:
|
||||
return _Screens["CPartyScreenTeamSurvivalNames"];
|
||||
case EStage.Hearts:
|
||||
return _Screens["CPartyScreenTeamSurvivalHearts"];
|
||||
case EStage.Main:
|
||||
return _Screens["CPartyScreenTeamSurvivalMain"];
|
||||
case EStage.SongSelection:
|
||||
return CBase.Graphics.GetScreen(EScreen.Song);
|
||||
case EStage.Singing:
|
||||
case EStage.MedleySinging:
|
||||
return CBase.Graphics.GetScreen(EScreen.Sing);
|
||||
default:
|
||||
throw new ArgumentException("Invalid stage: " + _Stage);
|
||||
}
|
||||
}
|
||||
|
||||
private void _FadeToScreen()
|
||||
{
|
||||
CBase.Graphics.FadeTo(_GetNextScreen());
|
||||
}
|
||||
|
||||
public void Next()
|
||||
{
|
||||
switch (_Stage)
|
||||
{
|
||||
case EStage.Config:
|
||||
_Stage = EStage.Songs;
|
||||
break;
|
||||
case EStage.Songs:
|
||||
_Stage = EStage.Names;
|
||||
break;
|
||||
case EStage.Names:
|
||||
if (GameData.HeartsPerPlayer)
|
||||
{
|
||||
_Stage = EStage.Hearts;
|
||||
}
|
||||
else
|
||||
{
|
||||
_StartGame();
|
||||
}
|
||||
|
||||
break;
|
||||
case EStage.Hearts:
|
||||
_StartGame();
|
||||
break;
|
||||
case EStage.Main:
|
||||
if (CurrentDuel == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (GameData.GameMode == EGameMode.TR_GAMEMODE_MEDLEY)
|
||||
{
|
||||
_Stage = EStage.MedleySinging;
|
||||
_PrepareMedleyRound();
|
||||
}
|
||||
else
|
||||
{
|
||||
_Stage = EStage.SongSelection;
|
||||
_PrepareSongSelection();
|
||||
}
|
||||
|
||||
break;
|
||||
case EStage.SongSelection:
|
||||
_Stage = EStage.Singing;
|
||||
break;
|
||||
case EStage.MedleySinging:
|
||||
case EStage.Singing:
|
||||
_Stage = EStage.Main;
|
||||
_UpdateScores();
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Invalid stage: " + _Stage);
|
||||
}
|
||||
|
||||
_FadeToScreen();
|
||||
}
|
||||
|
||||
public void Back()
|
||||
{
|
||||
switch (_Stage)
|
||||
{
|
||||
case EStage.Config:
|
||||
CBase.Graphics.FadeTo(EScreen.Party);
|
||||
return;
|
||||
case EStage.Songs:
|
||||
_Stage = EStage.Config;
|
||||
break;
|
||||
case EStage.Names:
|
||||
_Stage = EStage.Songs;
|
||||
break;
|
||||
case EStage.Hearts:
|
||||
_Stage = EStage.Names;
|
||||
break;
|
||||
case EStage.Main:
|
||||
_Stage = GameData.HeartsPerPlayer ? EStage.Hearts : EStage.Names;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Invalid stage: " + _Stage);
|
||||
}
|
||||
|
||||
_FadeToScreen();
|
||||
}
|
||||
|
||||
public override IMenu GetStartScreen()
|
||||
{
|
||||
return _Screens["CPartyScreenTeamSurvivalConfig"];
|
||||
}
|
||||
|
||||
public override SScreenSongOptions GetScreenSongOptions()
|
||||
{
|
||||
return _ScreenSongOptions;
|
||||
}
|
||||
|
||||
public override void OnSongChange(int songIndex, ref SScreenSongOptions screenSongOptions)
|
||||
{
|
||||
if (_ScreenSongOptions.Selection.SelectNextRandomSong && songIndex != -1)
|
||||
{
|
||||
_ScreenSongOptions.Selection.SelectNextRandomSong = false;
|
||||
}
|
||||
|
||||
_ScreenSongOptions.Selection.SongIndex = songIndex;
|
||||
|
||||
screenSongOptions = _ScreenSongOptions;
|
||||
}
|
||||
|
||||
public override void OnCategoryChange(int categoryIndex, ref SScreenSongOptions screenSongOptions)
|
||||
{
|
||||
if (categoryIndex != -1 || CBase.Config.GetTabs() == EOffOn.TR_CONFIG_OFF)
|
||||
{
|
||||
_ScreenSongOptions.Selection.SelectNextRandomSong = true;
|
||||
_ScreenSongOptions.Selection.RandomOnly = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
||||
}
|
||||
|
||||
_ScreenSongOptions.Selection.CategoryIndex = categoryIndex;
|
||||
|
||||
screenSongOptions = _ScreenSongOptions;
|
||||
}
|
||||
|
||||
public override void SetSearchString(string searchString, bool visible)
|
||||
{
|
||||
_ScreenSongOptions.Sorting.SearchString = searchString;
|
||||
_ScreenSongOptions.Sorting.SearchActive = visible;
|
||||
}
|
||||
|
||||
public override void JokerUsed(int teamNr)
|
||||
{
|
||||
if (_ScreenSongOptions.Selection.NumJokers == null || teamNr >= _ScreenSongOptions.Selection.NumJokers.Length)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var duel = CurrentDuel;
|
||||
if (duel != null && duel.Players[teamNr].Jokers > 0)
|
||||
{
|
||||
duel.Players[teamNr].Jokers--;
|
||||
}
|
||||
|
||||
_ScreenSongOptions.Selection.NumJokers[teamNr]--;
|
||||
_ScreenSongOptions.Selection.RandomOnly = true;
|
||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = false;
|
||||
}
|
||||
|
||||
public override void SongSelected(int songId)
|
||||
{
|
||||
_PrepareRound(new int[] { songId });
|
||||
|
||||
Next();
|
||||
}
|
||||
|
||||
public override void LeavingHighscore()
|
||||
{
|
||||
for (var i = 0; i < CBase.Game.GetNumSongs(); i++)
|
||||
{
|
||||
CBase.Songs.AddPartySongSung(CBase.Game.GetSong(i).Id);
|
||||
}
|
||||
|
||||
Next();
|
||||
}
|
||||
|
||||
private void _StartGame()
|
||||
{
|
||||
_Stage = EStage.Main;
|
||||
CBase.Songs.ResetSongSung();
|
||||
|
||||
GameData.Players = new List<CSurvivalPlayer>();
|
||||
var teams = new List<Guid>[] { GameData.ProfileIdsTeam1, GameData.ProfileIdsTeam2 };
|
||||
for (var team = 0; team < TeamCount; team++)
|
||||
{
|
||||
foreach (var profileId in teams[team])
|
||||
{
|
||||
var hearts = GetStartHearts(profileId);
|
||||
GameData.Players.Add(new CSurvivalPlayer { ProfileId = profileId, Team = team, StartHearts = hearts, Hearts = hearts, Jokers = GameData.NumJokers });
|
||||
}
|
||||
}
|
||||
|
||||
GameData.PassNr = 0;
|
||||
GameData.NumDuelsPlayed = 0;
|
||||
GameData.IsRematch = false;
|
||||
GameData.LastDecidedDuel = null;
|
||||
GameData.WinnerTeam = -1;
|
||||
GameData.Songs = new List<int>();
|
||||
_StartPass();
|
||||
}
|
||||
|
||||
private void _StartPass()
|
||||
{
|
||||
GameData.PassNr++;
|
||||
GameData.DuelIndex = 0;
|
||||
GameData.PassDuels = new List<CSurvivalDuel>();
|
||||
|
||||
var teams = new List<CSurvivalPlayer>[TeamCount];
|
||||
var numDuels = 0;
|
||||
for (var team = 0; team < TeamCount; team++)
|
||||
{
|
||||
teams[team] = GetTeam(team).Where(player => !player.IsOut).ToList();
|
||||
teams[team].Shuffle();
|
||||
foreach (var player in teams[team])
|
||||
{
|
||||
player.DuelsInPass = 0;
|
||||
}
|
||||
|
||||
numDuels = Math.Max(numDuels, teams[team].Count);
|
||||
}
|
||||
|
||||
for (var i = 0; i < numDuels; i++)
|
||||
{
|
||||
GameData.PassDuels.Add(new CSurvivalDuel());
|
||||
}
|
||||
|
||||
for (var team = 0; team < TeamCount; team++)
|
||||
{
|
||||
var order = new List<CSurvivalPlayer>(teams[team]);
|
||||
while (order.Count < numDuels)
|
||||
{
|
||||
var extra = new List<CSurvivalPlayer>(teams[team]);
|
||||
extra.Shuffle();
|
||||
order.AddRange(extra);
|
||||
}
|
||||
|
||||
for (var i = 1; i < numDuels; i++)
|
||||
{
|
||||
if (order[i] != order[i - 1] || teams[team].Count < 2)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
for (var j = i + 1; j < order.Count; j++)
|
||||
{
|
||||
if (order[j] != order[i - 1] && (i + 1 >= numDuels || order[j] != order[i + 1]))
|
||||
{
|
||||
var swap = order[i];
|
||||
order[i] = order[j];
|
||||
order[j] = swap;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < numDuels; i++)
|
||||
{
|
||||
GameData.PassDuels[i].Players[team] = order[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private CSurvivalPlayer _GetReplacement(int team)
|
||||
{
|
||||
var candidates = GetTeam(team).Where(player => !player.IsOut).ToList();
|
||||
if (candidates.Count == 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var minDuels = candidates.Min(player => player.DuelsInPass);
|
||||
candidates = candidates.Where(player => player.DuelsInPass == minDuels).ToList();
|
||||
return candidates[CBase.Game.GetRandom(candidates.Count)];
|
||||
}
|
||||
|
||||
private void _ValidateCurrentDuel()
|
||||
{
|
||||
var duel = CurrentDuel;
|
||||
if (duel == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (var team = 0; team < TeamCount; team++)
|
||||
{
|
||||
if (duel.Players[team] == null || duel.Players[team].IsOut)
|
||||
{
|
||||
duel.Players[team] = _GetReplacement(team);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void _PrepareMedleyRound()
|
||||
{
|
||||
var songIds = new List<int>();
|
||||
for (var i = 0; i < GameData.NumMedleySongs; i++)
|
||||
{
|
||||
if (GameData.Songs.Count == 0)
|
||||
{
|
||||
_UpdateSongList();
|
||||
}
|
||||
|
||||
if (GameData.Songs.Count == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
songIds.Add(GameData.Songs[0]);
|
||||
GameData.Songs.RemoveAt(0);
|
||||
}
|
||||
|
||||
_PrepareRound(songIds.ToArray());
|
||||
}
|
||||
|
||||
private void _PrepareSongSelection()
|
||||
{
|
||||
_ScreenSongOptions.Selection.RandomOnly = true;
|
||||
_ScreenSongOptions.Selection.SelectNextRandomSong = true;
|
||||
|
||||
_ScreenSongOptions.Sorting.IgnoreArticles = CBase.Config.GetIgnoreArticles();
|
||||
|
||||
switch (GameData.SongSource)
|
||||
{
|
||||
case ESongSource.TR_SONGSOURCE_ALLSONGS:
|
||||
_ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting();
|
||||
_ScreenSongOptions.Sorting.Tabs = CBase.Config.GetTabs();
|
||||
_ScreenSongOptions.Sorting.FilterPlaylistId = -1;
|
||||
|
||||
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||
_ScreenSongOptions.Selection.CategoryIndex = -1;
|
||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = true;
|
||||
break;
|
||||
|
||||
case ESongSource.TR_SONGSOURCE_CATEGORY:
|
||||
_ScreenSongOptions.Sorting.SongSorting = GameData.Sorting;
|
||||
_ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_ON;
|
||||
_ScreenSongOptions.Sorting.FilterPlaylistId = -1;
|
||||
|
||||
_ScreenSongOptions.Selection.CategoryIndex = GameData.CategoryIndex;
|
||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = false;
|
||||
break;
|
||||
|
||||
case ESongSource.TR_SONGSOURCE_PLAYLIST:
|
||||
_ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting();
|
||||
_ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_OFF;
|
||||
_ScreenSongOptions.Sorting.FilterPlaylistId = GameData.PlaylistId;
|
||||
|
||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = false;
|
||||
break;
|
||||
}
|
||||
|
||||
var duel = CurrentDuel;
|
||||
_ScreenSongOptions.Selection.NumJokers = new int[] { duel.Players[0].Jokers, duel.Players[1].Jokers };
|
||||
_ScreenSongOptions.Selection.TeamNames = new string[]
|
||||
{
|
||||
CBase.Profiles.GetPlayerName(duel.Players[0].ProfileId),
|
||||
CBase.Profiles.GetPlayerName(duel.Players[1].ProfileId)
|
||||
};
|
||||
}
|
||||
|
||||
private bool _PrepareRound(int[] songIds)
|
||||
{
|
||||
CBase.Game.Reset();
|
||||
CBase.Game.ClearSongs();
|
||||
|
||||
CBase.Game.SetNumPlayer(TeamCount);
|
||||
var players = CBase.Game.GetPlayers();
|
||||
var duel = CurrentDuel;
|
||||
if (players == null || players.Length < TeamCount || duel == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (var team = 0; team < TeamCount; team++)
|
||||
{
|
||||
players[team].ProfileId = duel.Players[team].ProfileId;
|
||||
}
|
||||
|
||||
foreach (var songId in songIds)
|
||||
{
|
||||
var gameMode = GameData.GameMode;
|
||||
if (GameData.IsRematch && gameMode != EGameMode.TR_GAMEMODE_MEDLEY && CBase.Songs.GetSongById(songId).IsGameModeAvailable(EGameMode.TR_GAMEMODE_SHORTSONG))
|
||||
{
|
||||
gameMode = EGameMode.TR_GAMEMODE_SHORTSONG;
|
||||
}
|
||||
|
||||
CBase.Game.AddSong(songId, gameMode);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void _UpdateSongList()
|
||||
{
|
||||
if (GameData.Songs.Count > 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (GameData.SongSource)
|
||||
{
|
||||
case ESongSource.TR_SONGSOURCE_PLAYLIST:
|
||||
for (var i = 0; i < CBase.Playlist.GetSongCount(GameData.PlaylistId); i++)
|
||||
{
|
||||
var id = CBase.Playlist.GetSong(GameData.PlaylistId, i).SongId;
|
||||
if (CBase.Songs.GetSongById(id).IsGameModeAvailable(EGameMode.TR_GAMEMODE_MEDLEY))
|
||||
{
|
||||
GameData.Songs.Add(id);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ESongSource.TR_SONGSOURCE_ALLSONGS:
|
||||
var avSongs = CBase.Songs.GetSongs();
|
||||
GameData.Songs.AddRange(avSongs.Where(song => song.IsGameModeAvailable(EGameMode.TR_GAMEMODE_MEDLEY)).Select(song => song.Id));
|
||||
break;
|
||||
|
||||
case ESongSource.TR_SONGSOURCE_CATEGORY:
|
||||
var oldSorting = CBase.Config.GetSongSorting();
|
||||
CBase.Songs.SortSongs(GameData.Sorting, EOffOn.TR_CONFIG_ON, CBase.Config.GetIgnoreArticles(), string.Empty, EDuetOptions.NoDuets, -1);
|
||||
|
||||
CBase.Songs.SetCategory(GameData.CategoryIndex);
|
||||
avSongs = CBase.Songs.GetVisibleSongs();
|
||||
GameData.Songs.AddRange(avSongs.Where(song => song.IsGameModeAvailable(EGameMode.TR_GAMEMODE_MEDLEY)).Select(song => song.Id));
|
||||
|
||||
CBase.Songs.SetCategory(-1);
|
||||
CBase.Songs.SortSongs(oldSorting, CBase.Config.GetTabs(), CBase.Config.GetIgnoreArticles(), string.Empty, EDuetOptions.NoDuets, -1);
|
||||
break;
|
||||
}
|
||||
|
||||
GameData.Songs.Shuffle();
|
||||
}
|
||||
|
||||
private void _UpdateScores()
|
||||
{
|
||||
var duel = CurrentDuel;
|
||||
if (duel == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var points = CBase.Game.GetPoints();
|
||||
if (points == null || points.NumRounds == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var scores = new double[TeamCount];
|
||||
for (var round = 0; round < points.NumRounds; round++)
|
||||
{
|
||||
var res = points.GetPlayer(round, TeamCount);
|
||||
if (res == null || res.Length < TeamCount)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (var p = 0; p < TeamCount; p++)
|
||||
{
|
||||
scores[p] += res[p].Points;
|
||||
}
|
||||
}
|
||||
|
||||
for (var p = 0; p < TeamCount; p++)
|
||||
{
|
||||
duel.Scores[p] = (int)Math.Round(scores[p] / points.NumRounds);
|
||||
}
|
||||
|
||||
GameData.NumDuelsPlayed++;
|
||||
|
||||
if (duel.Scores[0] == duel.Scores[1])
|
||||
{
|
||||
GameData.IsRematch = true;
|
||||
return;
|
||||
}
|
||||
|
||||
GameData.IsRematch = false;
|
||||
duel.Loser = duel.Scores[0] < duel.Scores[1] ? 0 : 1;
|
||||
duel.Players[duel.Loser].Hearts--;
|
||||
foreach (var player in duel.Players)
|
||||
{
|
||||
player.DuelsInPass++;
|
||||
}
|
||||
|
||||
GameData.LastDecidedDuel = duel;
|
||||
|
||||
for (var team = 0; team < TeamCount; team++)
|
||||
{
|
||||
if (GetTeam(team).All(player => player.IsOut))
|
||||
{
|
||||
GameData.WinnerTeam = 1 - team;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
GameData.DuelIndex++;
|
||||
if (GameData.DuelIndex >= GameData.PassDuels.Count)
|
||||
{
|
||||
_StartPass();
|
||||
}
|
||||
|
||||
_ValidateCurrentDuel();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VocaluxeLib.PartyModes.TeamSurvival
|
||||
{
|
||||
public class CPartyScreenTeamSurvivalConfig : CPartyScreenTeamSurvival
|
||||
{
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 1; }
|
||||
}
|
||||
|
||||
private const string _SelectSlideHeartsMode = "SelectSlideHeartsMode";
|
||||
private const string _SelectSlideNumHearts = "SelectSlideNumHearts";
|
||||
private const string _SelectSlideNumJokers = "SelectSlideNumJokers";
|
||||
private const string _ButtonNext = "ButtonNext";
|
||||
private const string _ButtonBack = "ButtonBack";
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_ThemeSelectSlides = new string[] { _SelectSlideHeartsMode, _SelectSlideNumHearts, _SelectSlideNumJokers };
|
||||
_ThemeButtons = new string[] { _ButtonNext, _ButtonBack };
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
{
|
||||
base.HandleInput(keyEvent);
|
||||
|
||||
if (!keyEvent.KeyPressed)
|
||||
{
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Back:
|
||||
case Keys.Escape:
|
||||
_PartyMode.Back();
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
_UpdateSlides();
|
||||
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
{
|
||||
_PartyMode.Next();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
case Keys.Right:
|
||||
_UpdateSlides();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HandleMouse(SMouseEvent mouseEvent)
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
|
||||
{
|
||||
_UpdateSlides();
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
{
|
||||
_PartyMode.Next();
|
||||
}
|
||||
}
|
||||
|
||||
if (mouseEvent.RB)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
_SelectSlides[_SelectSlideHeartsMode].Clear();
|
||||
_SelectSlides[_SelectSlideHeartsMode].AddValue(CBase.Language.Translate("TR_SCREENCONFIG_HEARTS_EQUAL", PartyModeId));
|
||||
_SelectSlides[_SelectSlideHeartsMode].AddValue(CBase.Language.Translate("TR_SCREENCONFIG_HEARTS_PERPLAYER", PartyModeId));
|
||||
_SelectSlides[_SelectSlideHeartsMode].Selection = _PartyMode.GameData.HeartsPerPlayer ? 1 : 0;
|
||||
|
||||
_SelectSlides[_SelectSlideNumHearts].Clear();
|
||||
for (var i = 1; i <= CPartyModeTeamSurvival.MaxHearts; i++)
|
||||
{
|
||||
_SelectSlides[_SelectSlideNumHearts].AddValue(i.ToString());
|
||||
}
|
||||
|
||||
_SelectSlides[_SelectSlideNumHearts].SelectedValue = _PartyMode.GameData.NumHearts.ToString();
|
||||
|
||||
_SelectSlides[_SelectSlideNumJokers].Clear();
|
||||
for (var i = 0; i <= CPartyModeTeamSurvival.MaxJokers; i++)
|
||||
{
|
||||
_SelectSlides[_SelectSlideNumJokers].AddValue(i.ToString());
|
||||
}
|
||||
|
||||
_SelectSlides[_SelectSlideNumJokers].SelectedValue = _PartyMode.GameData.NumJokers.ToString();
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
private void _UpdateSlides()
|
||||
{
|
||||
_PartyMode.GameData.HeartsPerPlayer = _SelectSlides[_SelectSlideHeartsMode].Selection == 1;
|
||||
_PartyMode.GameData.NumHearts = _SelectSlides[_SelectSlideNumHearts].Selection + 1;
|
||||
_PartyMode.GameData.NumJokers = _SelectSlides[_SelectSlideNumJokers].Selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,374 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using VocaluxeLib.Menu;
|
||||
|
||||
namespace VocaluxeLib.PartyModes.TeamSurvival
|
||||
{
|
||||
class CHeartsRow
|
||||
{
|
||||
public Guid ProfileId;
|
||||
public CStatic Highlight;
|
||||
public CStatic Avatar;
|
||||
public CText Name;
|
||||
public CStatic[] Hearts;
|
||||
}
|
||||
|
||||
public class CPartyScreenTeamSurvivalHearts : CPartyScreenTeamSurvival
|
||||
{
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 1; }
|
||||
}
|
||||
|
||||
private const string _ButtonNext = "ButtonNext";
|
||||
private const string _ButtonBack = "ButtonBack";
|
||||
|
||||
private const string _StaticRowHighlight = "StaticRowHighlight";
|
||||
private const string _StaticRowAvatar = "StaticRowAvatar";
|
||||
private const string _StaticHeart = "StaticHeart";
|
||||
private const string _TextRowName = "TextRowName";
|
||||
|
||||
private const float _FirstRowY = 260f;
|
||||
private const float _RowH = 70f;
|
||||
private const float _HeartSize = 46f;
|
||||
private const float _HeartSpace = 10f;
|
||||
private const float _LostHeartAlpha = 0.2f;
|
||||
|
||||
private readonly float[] _ColumnX = new float[] { 160f, 1020f };
|
||||
|
||||
private List<CHeartsRow> _Rows;
|
||||
private int _NumRowsUsed;
|
||||
private int _SelectedRow;
|
||||
private bool _OnButtons;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_ThemeButtons = new string[] { _ButtonNext, _ButtonBack };
|
||||
_ThemeStatics = new string[] { _StaticRowHighlight, _StaticRowAvatar, _StaticHeart };
|
||||
_ThemeTexts = new string[] { _TextRowName };
|
||||
}
|
||||
|
||||
public override void LoadTheme(string xmlPath)
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
_Rows = new List<CHeartsRow>();
|
||||
for (var i = 0; i < CPartyModeTeamSurvival.TeamCount * CPartyModeTeamSurvival.MaxPlayersInTeam; i++)
|
||||
{
|
||||
var row = new CHeartsRow
|
||||
{
|
||||
Highlight = GetNewStatic(_Statics[_StaticRowHighlight]),
|
||||
Avatar = GetNewStatic(_Statics[_StaticRowAvatar]),
|
||||
Name = GetNewText(_Texts[_TextRowName]),
|
||||
Hearts = new CStatic[CPartyModeTeamSurvival.MaxHearts]
|
||||
};
|
||||
row.Avatar.Aspect = EAspect.Crop;
|
||||
_AddStatic(row.Highlight);
|
||||
_AddStatic(row.Avatar);
|
||||
_AddText(row.Name);
|
||||
for (var h = 0; h < CPartyModeTeamSurvival.MaxHearts; h++)
|
||||
{
|
||||
row.Hearts[h] = GetNewStatic(_Statics[_StaticHeart]);
|
||||
_AddStatic(row.Hearts[h]);
|
||||
}
|
||||
|
||||
_Rows.Add(row);
|
||||
}
|
||||
|
||||
_Statics[_StaticRowHighlight].Visible = false;
|
||||
_Statics[_StaticRowAvatar].Visible = false;
|
||||
_Statics[_StaticHeart].Visible = false;
|
||||
_Texts[_TextRowName].Visible = false;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
_NumRowsUsed = 0;
|
||||
var teams = new List<Guid>[] { _PartyMode.GameData.ProfileIdsTeam1, _PartyMode.GameData.ProfileIdsTeam2 };
|
||||
for (var team = 0; team < teams.Length; team++)
|
||||
{
|
||||
for (var i = 0; i < teams[team].Count && i < CPartyModeTeamSurvival.MaxPlayersInTeam; i++)
|
||||
{
|
||||
var row = _Rows[_NumRowsUsed++];
|
||||
row.ProfileId = teams[team][i];
|
||||
_PlaceRow(row, _ColumnX[team], _FirstRowY + i * _RowH);
|
||||
row.Avatar.Texture = CBase.Profiles.GetAvatar(row.ProfileId);
|
||||
row.Name.Text = CBase.Profiles.GetPlayerName(row.ProfileId);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < _Rows.Count; i++)
|
||||
{
|
||||
var visible = i < _NumRowsUsed;
|
||||
_Rows[i].Avatar.Visible = visible;
|
||||
_Rows[i].Name.Visible = visible;
|
||||
foreach (var heart in _Rows[i].Hearts)
|
||||
{
|
||||
heart.Visible = visible;
|
||||
}
|
||||
}
|
||||
|
||||
_SelectedRow = 0;
|
||||
_UpdateRows();
|
||||
_FocusRows();
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
{
|
||||
if (keyEvent.KeyPressed)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Back:
|
||||
case Keys.Escape:
|
||||
_PartyMode.Back();
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (_OnButtons && _Buttons[_ButtonBack].Selected)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
else
|
||||
{
|
||||
_PartyMode.Next();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Up:
|
||||
if (_OnButtons)
|
||||
{
|
||||
_FocusRows();
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectRow(_SelectedRow - 1);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Down:
|
||||
if (_OnButtons)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (_SelectedRow + 1 < _NumRowsUsed)
|
||||
{
|
||||
_SelectRow(_SelectedRow + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_FocusButtons();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
case Keys.Right:
|
||||
if (_OnButtons)
|
||||
{
|
||||
_SwitchButton();
|
||||
}
|
||||
else
|
||||
{
|
||||
_ChangeHearts(_SelectedRow, _GetHearts(_SelectedRow) + (keyEvent.Key == Keys.Left ? -1 : 1));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Tab:
|
||||
if (_OnButtons)
|
||||
{
|
||||
_SwitchButton();
|
||||
}
|
||||
else
|
||||
{
|
||||
_FocusButtons();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HandleMouse(SMouseEvent mouseEvent)
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
if (_Buttons[_ButtonBack].Selected || _Buttons[_ButtonNext].Selected)
|
||||
{
|
||||
_OnButtons = true;
|
||||
}
|
||||
|
||||
if (mouseEvent.LB)
|
||||
{
|
||||
for (var r = 0; r < _NumRowsUsed; r++)
|
||||
{
|
||||
for (var h = 0; h < CPartyModeTeamSurvival.MaxHearts; h++)
|
||||
{
|
||||
if (CHelper.IsInBounds(_Rows[r].Hearts[h].Rect, mouseEvent))
|
||||
{
|
||||
_SelectRow(r);
|
||||
_ChangeHearts(r, h + 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (CHelper.IsInBounds(_Rows[r].Highlight.Rect, mouseEvent))
|
||||
{
|
||||
_SelectRow(r);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (_IsMouseOverCurSelection(mouseEvent))
|
||||
{
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
{
|
||||
_PartyMode.Next();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mouseEvent.RB)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void _PlaceRow(CHeartsRow row, float x, float y)
|
||||
{
|
||||
var highlight = _Statics[_StaticRowHighlight].Rect;
|
||||
row.Highlight.MaxRect = new SRectF(x, y, highlight.W, highlight.H, highlight.Z);
|
||||
|
||||
var avatar = _Statics[_StaticRowAvatar].Rect;
|
||||
row.Avatar.MaxRect = new SRectF(x + 8f, y + (highlight.H - avatar.H) / 2, avatar.W, avatar.H, avatar.Z);
|
||||
|
||||
row.Name.X = x + avatar.W + 24f;
|
||||
row.Name.Y = y + (highlight.H - row.Name.H) / 2;
|
||||
|
||||
var heartsX = x + highlight.W - CPartyModeTeamSurvival.MaxHearts * (_HeartSize + _HeartSpace);
|
||||
for (var h = 0; h < row.Hearts.Length; h++)
|
||||
{
|
||||
row.Hearts[h].MaxRect = new SRectF(heartsX + h * (_HeartSize + _HeartSpace), y + (highlight.H - _HeartSize) / 2, _HeartSize, _HeartSize,
|
||||
_Statics[_StaticHeart].Rect.Z);
|
||||
}
|
||||
}
|
||||
|
||||
private int _GetHearts(int row)
|
||||
{
|
||||
if (row < 0 || row >= _NumRowsUsed)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return _PartyMode.GetStartHearts(_Rows[row].ProfileId);
|
||||
}
|
||||
|
||||
private void _ChangeHearts(int row, int hearts)
|
||||
{
|
||||
if (row < 0 || row >= _NumRowsUsed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
hearts = Math.Max(1, Math.Min(CPartyModeTeamSurvival.MaxHearts, hearts));
|
||||
_PartyMode.GameData.PlayerHearts[_Rows[row].ProfileId] = hearts;
|
||||
_UpdateRows();
|
||||
}
|
||||
|
||||
private void _FocusRows()
|
||||
{
|
||||
_OnButtons = false;
|
||||
_Buttons[_ButtonBack].Selected = false;
|
||||
_Buttons[_ButtonNext].Selected = false;
|
||||
_UpdateRows();
|
||||
}
|
||||
|
||||
private void _FocusButtons()
|
||||
{
|
||||
_OnButtons = true;
|
||||
_SelectElement(_Buttons[_ButtonNext]);
|
||||
_UpdateRows();
|
||||
}
|
||||
|
||||
private void _SwitchButton()
|
||||
{
|
||||
_SelectElement(_Buttons[_ButtonNext].Selected ? _Buttons[_ButtonBack] : _Buttons[_ButtonNext]);
|
||||
}
|
||||
|
||||
private void _SelectRow(int row)
|
||||
{
|
||||
_OnButtons = false;
|
||||
_Buttons[_ButtonBack].Selected = false;
|
||||
_Buttons[_ButtonNext].Selected = false;
|
||||
if (_NumRowsUsed == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_SelectedRow = Math.Max(0, Math.Min(_NumRowsUsed - 1, row));
|
||||
_UpdateRows();
|
||||
}
|
||||
|
||||
private void _UpdateRows()
|
||||
{
|
||||
for (var r = 0; r < _NumRowsUsed; r++)
|
||||
{
|
||||
var row = _Rows[r];
|
||||
row.Highlight.Visible = r == _SelectedRow && !_OnButtons;
|
||||
|
||||
var hearts = _GetHearts(r);
|
||||
var color = _Statics[_StaticHeart].Color;
|
||||
for (var h = 0; h < row.Hearts.Length; h++)
|
||||
{
|
||||
row.Hearts[h].Color = new SColorF(color.R, color.G, color.B, h < hearts ? color.A : color.A * _LostHeartAlpha);
|
||||
}
|
||||
}
|
||||
|
||||
for (var r = _NumRowsUsed; r < _Rows.Count; r++)
|
||||
{
|
||||
_Rows[r].Highlight.Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,560 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using VocaluxeLib.Menu;
|
||||
|
||||
namespace VocaluxeLib.PartyModes.TeamSurvival
|
||||
{
|
||||
class CPlayerCard
|
||||
{
|
||||
public CSurvivalPlayer Player;
|
||||
public CStatic Active;
|
||||
public CStatic Box;
|
||||
public CStatic Avatar;
|
||||
public CText Name;
|
||||
public CStatic[] Hearts;
|
||||
public SRectF[] HeartRects;
|
||||
}
|
||||
|
||||
public class CPartyScreenTeamSurvivalMain : CPartyScreenTeamSurvival
|
||||
{
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 1; }
|
||||
}
|
||||
|
||||
private const string _TextPopupReallyExit = "TextPopupReallyExit";
|
||||
private const string _TextTeam1 = "TextTeam1";
|
||||
private const string _TextTeam2 = "TextTeam2";
|
||||
private const string _TextPass = "TextPass";
|
||||
private const string _TextCardName = "TextCardName";
|
||||
private const string _TextDuelName1 = "TextDuelName1";
|
||||
private const string _TextDuelName2 = "TextDuelName2";
|
||||
private const string _TextVersus = "TextVersus";
|
||||
private const string _TextRematch = "TextRematch";
|
||||
private const string _TextChampionLabel = "TextChampionLabel";
|
||||
private const string _TextChampion = "TextChampion";
|
||||
|
||||
private const string _ButtonNextRound = "ButtonNextRound";
|
||||
private const string _ButtonBack = "ButtonBack";
|
||||
private const string _ButtonExit = "ButtonExit";
|
||||
private const string _ButtonPopupYes = "ButtonPopupYes";
|
||||
private const string _ButtonPopupNo = "ButtonPopupNo";
|
||||
|
||||
private const string _StaticPopupBG = "StaticPopupBG";
|
||||
private const string _StaticCardBox = "StaticCardBox";
|
||||
private const string _StaticCardActive = "StaticCardActive";
|
||||
private const string _StaticCardAvatar = "StaticCardAvatar";
|
||||
private const string _StaticHeart = "StaticHeart";
|
||||
private const string _StaticDuelFrame1 = "StaticDuelFrame1";
|
||||
private const string _StaticDuelFrame2 = "StaticDuelFrame2";
|
||||
private const string _StaticDuelAvatar1 = "StaticDuelAvatar1";
|
||||
private const string _StaticDuelAvatar2 = "StaticDuelAvatar2";
|
||||
|
||||
private const string _ParticleEffectChampion = "ParticleEffectChampion";
|
||||
|
||||
private const float _CardFirstY = 265f;
|
||||
private const float _CardStep = 76f;
|
||||
private const float _ActiveBorder = 4f;
|
||||
private const float _HeartSize = 32f;
|
||||
private const float _HeartSpace = 6f;
|
||||
private const float _LostHeartAlpha = 0.18f;
|
||||
private const float _OutAlpha = 0.35f;
|
||||
private const float _SurvivorSize = 110f;
|
||||
private const float _SurvivorY = 470f;
|
||||
private const float _SurvivorSpace = 16f;
|
||||
|
||||
private const float _HeartLossDelay = 400f;
|
||||
private const float _HeartLossDuration = 800f;
|
||||
private const float _ChampionPopDuration = 700f;
|
||||
|
||||
private readonly float[] _CardX = new float[] { 60f, 1340f };
|
||||
|
||||
private bool _ExitPopupVisible;
|
||||
private List<CPlayerCard> _Cards;
|
||||
private List<CStatic> _Survivors;
|
||||
private readonly Stopwatch _AnimTimer = new Stopwatch();
|
||||
private CPlayerCard _LosingCard;
|
||||
private int _LostHeart;
|
||||
private bool _LosingCardOut;
|
||||
private float _ChampionHeight;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_ThemeTexts = new string[]
|
||||
{
|
||||
_TextPopupReallyExit, _TextTeam1, _TextTeam2, _TextPass, _TextCardName, _TextDuelName1, _TextDuelName2, _TextVersus, _TextRematch, _TextChampionLabel,
|
||||
_TextChampion
|
||||
};
|
||||
_ThemeButtons = new string[] { _ButtonNextRound, _ButtonBack, _ButtonExit, _ButtonPopupYes, _ButtonPopupNo };
|
||||
_ThemeStatics = new string[]
|
||||
{
|
||||
_StaticPopupBG, _StaticCardBox, _StaticCardActive, _StaticCardAvatar, _StaticHeart, _StaticDuelFrame1, _StaticDuelFrame2, _StaticDuelAvatar1,
|
||||
_StaticDuelAvatar2
|
||||
};
|
||||
_ThemeParticleEffects = new string[] { _ParticleEffectChampion };
|
||||
}
|
||||
|
||||
public override void LoadTheme(string xmlPath)
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
_Cards = new List<CPlayerCard>();
|
||||
for (var i = 0; i < CPartyModeTeamSurvival.TeamCount * CPartyModeTeamSurvival.MaxPlayersInTeam; i++)
|
||||
{
|
||||
var card = new CPlayerCard
|
||||
{
|
||||
Active = GetNewStatic(_Statics[_StaticCardActive]),
|
||||
Box = GetNewStatic(_Statics[_StaticCardBox]),
|
||||
Avatar = GetNewStatic(_Statics[_StaticCardAvatar]),
|
||||
Name = GetNewText(_Texts[_TextCardName]),
|
||||
Hearts = new CStatic[CPartyModeTeamSurvival.MaxHearts],
|
||||
HeartRects = new SRectF[CPartyModeTeamSurvival.MaxHearts]
|
||||
};
|
||||
card.Avatar.Aspect = EAspect.Crop;
|
||||
_AddStatic(card.Active);
|
||||
_AddStatic(card.Box);
|
||||
_AddStatic(card.Avatar);
|
||||
_AddText(card.Name);
|
||||
for (var h = 0; h < CPartyModeTeamSurvival.MaxHearts; h++)
|
||||
{
|
||||
card.Hearts[h] = GetNewStatic(_Statics[_StaticHeart]);
|
||||
_AddStatic(card.Hearts[h]);
|
||||
}
|
||||
|
||||
_Cards.Add(card);
|
||||
}
|
||||
|
||||
_Survivors = new List<CStatic>();
|
||||
for (var i = 0; i < CPartyModeTeamSurvival.MaxPlayersInTeam; i++)
|
||||
{
|
||||
var survivor = GetNewStatic(_Statics[_StaticCardAvatar]);
|
||||
survivor.Aspect = EAspect.Crop;
|
||||
_AddStatic(survivor);
|
||||
_Survivors.Add(survivor);
|
||||
}
|
||||
|
||||
_Statics[_StaticCardBox].Visible = false;
|
||||
_Statics[_StaticCardActive].Visible = false;
|
||||
_Statics[_StaticCardAvatar].Visible = false;
|
||||
_Statics[_StaticHeart].Visible = false;
|
||||
_Texts[_TextCardName].Visible = false;
|
||||
_Statics[_StaticDuelAvatar1].Aspect = EAspect.Crop;
|
||||
_Statics[_StaticDuelAvatar2].Aspect = EAspect.Crop;
|
||||
|
||||
_ChampionHeight = _Texts[_TextChampion].Font.Height;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
{
|
||||
base.HandleInput(keyEvent);
|
||||
|
||||
if (!keyEvent.KeyPressed)
|
||||
{
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Back:
|
||||
case Keys.Escape:
|
||||
_OnBack();
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
_OnSelect();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HandleMouse(SMouseEvent mouseEvent)
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
|
||||
{
|
||||
_OnSelect();
|
||||
}
|
||||
|
||||
if (mouseEvent.RB)
|
||||
{
|
||||
_OnBack();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
_BuildCards();
|
||||
_UpdateCards();
|
||||
_UpdateDuel();
|
||||
|
||||
_LosingCard = null;
|
||||
var decided = _PartyMode.GameData.LastDecidedDuel;
|
||||
_PartyMode.GameData.LastDecidedDuel = null;
|
||||
if (decided != null)
|
||||
{
|
||||
_LosingCard = _FindCard(decided.Players[decided.Loser]);
|
||||
_LostHeart = decided.Players[decided.Loser].Hearts;
|
||||
_LosingCardOut = decided.Players[decided.Loser].IsOut;
|
||||
}
|
||||
|
||||
_AnimTimer.Reset();
|
||||
_AnimTimer.Start();
|
||||
_UpdateHeartLoss();
|
||||
|
||||
var started = _PartyMode.GameData.NumDuelsPlayed > 0;
|
||||
_Buttons[_ButtonBack].Visible = !started;
|
||||
_Buttons[_ButtonExit].Visible = started;
|
||||
_Buttons[_ButtonNextRound].Visible = !_PartyMode.IsFinished;
|
||||
|
||||
_ShowPopup(false);
|
||||
|
||||
if (_PartyMode.IsFinished)
|
||||
{
|
||||
_SelectElement(_Buttons[_ButtonExit]);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectElement(_Buttons[_ButtonNextRound]);
|
||||
}
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
_UpdateHeartLoss();
|
||||
|
||||
if (_PartyMode.IsFinished)
|
||||
{
|
||||
_UpdateChampion();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void _OnBack()
|
||||
{
|
||||
if (_ExitPopupVisible)
|
||||
{
|
||||
_ShowPopup(false);
|
||||
}
|
||||
else if (_PartyMode.GameData.NumDuelsPlayed == 0)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
else if (_PartyMode.IsFinished)
|
||||
{
|
||||
_EndParty();
|
||||
}
|
||||
else
|
||||
{
|
||||
_ShowPopup(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void _OnSelect()
|
||||
{
|
||||
if (_ExitPopupVisible)
|
||||
{
|
||||
if (_Buttons[_ButtonPopupYes].Selected)
|
||||
{
|
||||
_EndParty();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonPopupNo].Selected)
|
||||
{
|
||||
_ShowPopup(false);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonNextRound].Selected && _Buttons[_ButtonNextRound].Visible)
|
||||
{
|
||||
_PartyMode.Next();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonBack].Selected && _Buttons[_ButtonBack].Visible)
|
||||
{
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonExit].Selected && _Buttons[_ButtonExit].Visible)
|
||||
{
|
||||
if (_PartyMode.IsFinished)
|
||||
{
|
||||
_EndParty();
|
||||
}
|
||||
else
|
||||
{
|
||||
_ShowPopup(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void _EndParty()
|
||||
{
|
||||
CBase.Graphics.FadeTo(EScreen.Party);
|
||||
}
|
||||
|
||||
private void _ShowPopup(bool visible)
|
||||
{
|
||||
_ExitPopupVisible = visible;
|
||||
|
||||
_Statics[_StaticPopupBG].Visible = _ExitPopupVisible;
|
||||
_Texts[_TextPopupReallyExit].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupYes].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupNo].Visible = _ExitPopupVisible;
|
||||
|
||||
if (_ExitPopupVisible)
|
||||
{
|
||||
_SelectElement(_Buttons[_ButtonPopupNo]);
|
||||
}
|
||||
}
|
||||
|
||||
private static float _EaseOutBack(float t)
|
||||
{
|
||||
const float c1 = 1.70158f;
|
||||
const float c3 = c1 + 1f;
|
||||
return 1f + c3 * (float)Math.Pow(t - 1f, 3) + c1 * (float)Math.Pow(t - 1f, 2);
|
||||
}
|
||||
|
||||
private static SColorF _WithAlpha(SColorF color, float alpha)
|
||||
{
|
||||
return new SColorF(color.R, color.G, color.B, color.A * alpha);
|
||||
}
|
||||
|
||||
private string _GetTeamName(int team)
|
||||
{
|
||||
return CBase.Language.Translate("TR_TEAM", PartyModeId) + " " + (team + 1);
|
||||
}
|
||||
|
||||
private CPlayerCard _FindCard(CSurvivalPlayer player)
|
||||
{
|
||||
foreach (var card in _Cards)
|
||||
{
|
||||
if (card.Player == player)
|
||||
{
|
||||
return card;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void _BuildCards()
|
||||
{
|
||||
var cardNr = 0;
|
||||
for (var team = 0; team < CPartyModeTeamSurvival.TeamCount; team++)
|
||||
{
|
||||
var players = _PartyMode.GetTeam(team);
|
||||
for (var i = 0; i < players.Count && cardNr < _Cards.Count; i++)
|
||||
{
|
||||
var card = _Cards[cardNr++];
|
||||
card.Player = players[i];
|
||||
|
||||
var boxTemplate = _Statics[_StaticCardBox].Rect;
|
||||
var box = new SRectF(_CardX[team], _CardFirstY + i * _CardStep, boxTemplate.W, boxTemplate.H, boxTemplate.Z);
|
||||
card.Box.MaxRect = box;
|
||||
card.Active.MaxRect = new SRectF(box.X - _ActiveBorder, box.Y - _ActiveBorder, box.W + 2 * _ActiveBorder, box.H + 2 * _ActiveBorder,
|
||||
_Statics[_StaticCardActive].Rect.Z);
|
||||
|
||||
var avatarTemplate = _Statics[_StaticCardAvatar].Rect;
|
||||
card.Avatar.MaxRect = new SRectF(box.X + 6f, box.Y + (box.H - avatarTemplate.H) / 2, avatarTemplate.W, avatarTemplate.H, avatarTemplate.Z);
|
||||
card.Avatar.Texture = CBase.Profiles.GetAvatar(card.Player.ProfileId);
|
||||
|
||||
card.Name.Text = CBase.Profiles.GetPlayerName(card.Player.ProfileId);
|
||||
card.Name.X = box.X + avatarTemplate.W + 18f;
|
||||
card.Name.Y = box.Y + (box.H - card.Name.H) / 2;
|
||||
card.Name.W = box.W - avatarTemplate.W - 30f - CPartyModeTeamSurvival.MaxHearts * (_HeartSize + _HeartSpace);
|
||||
|
||||
var heartsX = box.X + box.W - 10f - card.Player.StartHearts * (_HeartSize + _HeartSpace);
|
||||
for (var h = 0; h < card.Hearts.Length; h++)
|
||||
{
|
||||
card.HeartRects[h] = new SRectF(heartsX + h * (_HeartSize + _HeartSpace), box.Y + (box.H - _HeartSize) / 2, _HeartSize, _HeartSize,
|
||||
_Statics[_StaticHeart].Rect.Z);
|
||||
card.Hearts[h].MaxRect = card.HeartRects[h];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = cardNr; i < _Cards.Count; i++)
|
||||
{
|
||||
_Cards[i].Player = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void _UpdateCards()
|
||||
{
|
||||
var duel = _PartyMode.CurrentDuel;
|
||||
foreach (var card in _Cards)
|
||||
{
|
||||
var visible = card.Player != null;
|
||||
card.Box.Visible = visible;
|
||||
card.Avatar.Visible = visible;
|
||||
card.Name.Visible = visible;
|
||||
card.Active.Visible = visible && duel != null && (duel.Players[0] == card.Player || duel.Players[1] == card.Player);
|
||||
for (var h = 0; h < card.Hearts.Length; h++)
|
||||
{
|
||||
card.Hearts[h].Visible = visible && h < card.Player.StartHearts;
|
||||
}
|
||||
|
||||
if (visible)
|
||||
{
|
||||
_SetCardAlpha(card, card.Player.IsOut ? _OutAlpha : 1f);
|
||||
_SetHeartAlphas(card, card.Player.Hearts);
|
||||
}
|
||||
}
|
||||
|
||||
for (var team = 0; team < CPartyModeTeamSurvival.TeamCount; team++)
|
||||
{
|
||||
var text = _Texts[team == 0 ? _TextTeam1 : _TextTeam2];
|
||||
text.Text = _GetTeamName(team);
|
||||
text.Color = CBase.Themes.GetPlayerColor(team + 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void _SetCardAlpha(CPlayerCard card, float alpha)
|
||||
{
|
||||
card.Box.Color = _WithAlpha(_Statics[_StaticCardBox].Color, alpha);
|
||||
card.Avatar.Color = _WithAlpha(_Statics[_StaticCardAvatar].Color, alpha);
|
||||
card.Name.Color = _WithAlpha(_Texts[_TextCardName].Color, alpha);
|
||||
}
|
||||
|
||||
private void _SetHeartAlphas(CPlayerCard card, int hearts)
|
||||
{
|
||||
for (var h = 0; h < card.Hearts.Length; h++)
|
||||
{
|
||||
card.Hearts[h].MaxRect = card.HeartRects[h];
|
||||
card.Hearts[h].Color = _WithAlpha(_Statics[_StaticHeart].Color, h < hearts ? 1f : _LostHeartAlpha);
|
||||
}
|
||||
}
|
||||
|
||||
private void _UpdateHeartLoss()
|
||||
{
|
||||
if (_LosingCard == null || _LostHeart < 0 || _LostHeart >= _LosingCard.Hearts.Length)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var progress = Math.Max(0f, Math.Min(1f, (_AnimTimer.ElapsedMilliseconds - _HeartLossDelay) / _HeartLossDuration));
|
||||
var heart = _LosingCard.Hearts[_LostHeart];
|
||||
var rect = _LosingCard.HeartRects[_LostHeart];
|
||||
var scale = 1f + progress;
|
||||
var size = rect.W * scale;
|
||||
heart.MaxRect = new SRectF(rect.X + (rect.W - size) / 2, rect.Y + (rect.H - size) / 2, size, size, rect.Z);
|
||||
heart.Color = _WithAlpha(_Statics[_StaticHeart].Color, 1f - (1f - _LostHeartAlpha) * progress);
|
||||
|
||||
if (_LosingCardOut)
|
||||
{
|
||||
_SetCardAlpha(_LosingCard, 1f - (1f - _OutAlpha) * progress);
|
||||
}
|
||||
|
||||
if (progress >= 1f)
|
||||
{
|
||||
heart.MaxRect = rect;
|
||||
_LosingCard = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void _UpdateDuel()
|
||||
{
|
||||
var finished = _PartyMode.IsFinished;
|
||||
var duel = _PartyMode.CurrentDuel;
|
||||
var showDuel = !finished && duel != null;
|
||||
|
||||
_Statics[_StaticDuelFrame1].Visible = showDuel;
|
||||
_Statics[_StaticDuelFrame2].Visible = showDuel;
|
||||
_Statics[_StaticDuelAvatar1].Visible = showDuel;
|
||||
_Statics[_StaticDuelAvatar2].Visible = showDuel;
|
||||
_Texts[_TextDuelName1].Visible = showDuel;
|
||||
_Texts[_TextDuelName2].Visible = showDuel;
|
||||
_Texts[_TextVersus].Visible = showDuel;
|
||||
_Texts[_TextPass].Visible = showDuel;
|
||||
_Texts[_TextRematch].Visible = showDuel && _PartyMode.GameData.IsRematch;
|
||||
|
||||
if (showDuel)
|
||||
{
|
||||
_Statics[_StaticDuelFrame1].Color = CBase.Themes.GetPlayerColor(1);
|
||||
_Statics[_StaticDuelFrame2].Color = CBase.Themes.GetPlayerColor(2);
|
||||
_Statics[_StaticDuelAvatar1].Texture = CBase.Profiles.GetAvatar(duel.Players[0].ProfileId);
|
||||
_Statics[_StaticDuelAvatar2].Texture = CBase.Profiles.GetAvatar(duel.Players[1].ProfileId);
|
||||
_Texts[_TextDuelName1].Text = CBase.Profiles.GetPlayerName(duel.Players[0].ProfileId);
|
||||
_Texts[_TextDuelName2].Text = CBase.Profiles.GetPlayerName(duel.Players[1].ProfileId);
|
||||
_Texts[_TextPass].Text = CBase.Language.Translate("TR_SCREENMAIN_PASS", PartyModeId) + " " + _PartyMode.GameData.PassNr + " · " +
|
||||
CBase.Language.Translate("TR_SCREENMAIN_DUEL", PartyModeId) + " " + (_PartyMode.GameData.DuelIndex + 1) + " / " +
|
||||
_PartyMode.GameData.PassDuels.Count;
|
||||
}
|
||||
|
||||
_Texts[_TextChampionLabel].Visible = finished;
|
||||
_Texts[_TextChampion].Visible = finished;
|
||||
_ParticleEffects[_ParticleEffectChampion].Visible = finished;
|
||||
|
||||
var survivors = new List<CSurvivalPlayer>();
|
||||
if (finished)
|
||||
{
|
||||
_Texts[_TextChampion].Text = _GetTeamName(_PartyMode.GameData.WinnerTeam);
|
||||
foreach (var player in _PartyMode.GetTeam(_PartyMode.GameData.WinnerTeam))
|
||||
{
|
||||
if (!player.IsOut)
|
||||
{
|
||||
survivors.Add(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var x = (CBase.Settings.GetRenderW() - survivors.Count * _SurvivorSize - (survivors.Count - 1) * _SurvivorSpace) / 2;
|
||||
for (var i = 0; i < _Survivors.Count; i++)
|
||||
{
|
||||
_Survivors[i].Visible = i < survivors.Count;
|
||||
if (i >= survivors.Count)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
_Survivors[i].Texture = CBase.Profiles.GetAvatar(survivors[i].ProfileId);
|
||||
_Survivors[i].MaxRect = new SRectF(x, _SurvivorY, _SurvivorSize, _SurvivorSize, _Statics[_StaticCardAvatar].Rect.Z);
|
||||
x += _SurvivorSize + _SurvivorSpace;
|
||||
}
|
||||
}
|
||||
|
||||
private void _UpdateChampion()
|
||||
{
|
||||
var time = _AnimTimer.ElapsedMilliseconds;
|
||||
float scale;
|
||||
if (time < _ChampionPopDuration)
|
||||
{
|
||||
scale = 0.3f + 0.7f * _EaseOutBack(time / _ChampionPopDuration);
|
||||
}
|
||||
else
|
||||
{
|
||||
scale = 1f + 0.03f * (float)Math.Sin((time - _ChampionPopDuration) / 1000.0 * Math.PI * 1.4);
|
||||
}
|
||||
|
||||
_Texts[_TextChampion].Font.Height = _ChampionHeight * scale;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
#region license
|
||||
// This file is part of Vocaluxe.
|
||||
//
|
||||
// Vocaluxe is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Vocaluxe is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using VocaluxeLib.Menu;
|
||||
|
||||
namespace VocaluxeLib.PartyModes.TeamSurvival
|
||||
{
|
||||
public class CPartyScreenTeamSurvivalNames : CMenuPartyNameSelection
|
||||
{
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 1; }
|
||||
}
|
||||
|
||||
private new CPartyModeTeamSurvival _PartyMode;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
_PartyMode = (CPartyModeTeamSurvival)base._PartyMode;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
while (_PartyMode.GameData.ProfileIdsTeam1.Count > _PartyMode.GameData.NumPlayerTeam1)
|
||||
{
|
||||
_PartyMode.GameData.ProfileIdsTeam1.RemoveAt(_PartyMode.GameData.ProfileIdsTeam1.Count - 1);
|
||||
}
|
||||
|
||||
while (_PartyMode.GameData.ProfileIdsTeam2.Count > _PartyMode.GameData.NumPlayerTeam2)
|
||||
{
|
||||
_PartyMode.GameData.ProfileIdsTeam2.RemoveAt(_PartyMode.GameData.ProfileIdsTeam2.Count - 1);
|
||||
}
|
||||
|
||||
SetPartyModeData(CPartyModeTeamSurvival.TeamCount, _PartyMode.GameData.NumPlayerTeam1 + _PartyMode.GameData.NumPlayerTeam2,
|
||||
new int[] { _PartyMode.GameData.NumPlayerTeam1, _PartyMode.GameData.NumPlayerTeam2 });
|
||||
var ids = new List<Guid>[] { _PartyMode.GameData.ProfileIdsTeam1, _PartyMode.GameData.ProfileIdsTeam2 };
|
||||
SetPartyModeProfiles(ids);
|
||||
}
|
||||
|
||||
public override void Back()
|
||||
{
|
||||
_SaveTeams();
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
public override void Next()
|
||||
{
|
||||
_SaveTeams();
|
||||
_PartyMode.GameData.NumPlayerTeam1 = _PartyMode.GameData.ProfileIdsTeam1.Count;
|
||||
_PartyMode.GameData.NumPlayerTeam2 = _PartyMode.GameData.ProfileIdsTeam2.Count;
|
||||
_PartyMode.Next();
|
||||
}
|
||||
|
||||
private void _SaveTeams()
|
||||
{
|
||||
if (_TeamList.Length == CPartyModeTeamSurvival.TeamCount)
|
||||
{
|
||||
_PartyMode.GameData.ProfileIdsTeam1 = _TeamList[0];
|
||||
_PartyMode.GameData.ProfileIdsTeam2 = _TeamList[1];
|
||||
}
|
||||
|
||||
if (_NumPlayerTeams.Length == CPartyModeTeamSurvival.TeamCount)
|
||||
{
|
||||
_PartyMode.GameData.NumPlayerTeam1 = _NumPlayerTeams[0];
|
||||
_PartyMode.GameData.NumPlayerTeam2 = _NumPlayerTeams[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
using VocaluxeLib.Menu;
|
||||
|
||||
namespace VocaluxeLib.PartyModes.TeamSurvival
|
||||
{
|
||||
class CPartyScreenTeamSurvivalSongs : CMenuPartySongSelection
|
||||
{
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 1; }
|
||||
}
|
||||
|
||||
private new CPartyModeTeamSurvival _PartyMode;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
_PartyMode = (CPartyModeTeamSurvival)base._PartyMode;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
Source = _PartyMode.GameData.SongSource;
|
||||
Sorting = _PartyMode.GameData.Sorting;
|
||||
Category = _PartyMode.GameData.CategoryIndex;
|
||||
Playlist = _PartyMode.GameData.PlaylistId;
|
||||
SongMode = _PartyMode.GameData.GameMode;
|
||||
NumMedleySongs = _PartyMode.GameData.NumMedleySongs;
|
||||
|
||||
base.OnShow();
|
||||
}
|
||||
|
||||
public override void Back()
|
||||
{
|
||||
_SaveConfig();
|
||||
_PartyMode.Back();
|
||||
}
|
||||
|
||||
public override void Next()
|
||||
{
|
||||
_SaveConfig();
|
||||
_PartyMode.Next();
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override void _SetAllowedOptions()
|
||||
{
|
||||
base._SetAllowedOptions();
|
||||
|
||||
AllowedSongModes = new EGameMode[] { EGameMode.TR_GAMEMODE_NORMAL, EGameMode.TR_GAMEMODE_SHORTSONG, EGameMode.TR_GAMEMODE_MEDLEY };
|
||||
}
|
||||
|
||||
private void _SaveConfig()
|
||||
{
|
||||
_PartyMode.GameData.SongSource = Source;
|
||||
_PartyMode.GameData.Sorting = Sorting;
|
||||
_PartyMode.GameData.CategoryIndex = Category;
|
||||
_PartyMode.GameData.PlaylistId = Playlist;
|
||||
_PartyMode.GameData.GameMode = SongMode;
|
||||
_PartyMode.GameData.NumMedleySongs = NumMedleySongs;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">DebugWin</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>VocaluxeLib.PartyModes.TeamSurvival</RootNamespace>
|
||||
<AssemblyName>TeamSurvival</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWin|AnyCPU'">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;WIN</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
<CodeAnalysisRuleSet>..\..\CheckingRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWin|AnyCPU'">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<DefineConstants>WIN</DefineConstants>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugLinux|AnyCPU'">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;LINUX</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseLinux|AnyCPU'">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<DefineConstants>LINUX</DefineConstants>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'InstallerWin|AnyCPU'">
|
||||
<OutputPath>bin</OutputPath>
|
||||
<DefineConstants>WIN</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>ManagedMinimumRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CPartyModeTeamSurvival.cs" />
|
||||
<Compile Include="CPartyScreenTeamSurvivalConfig.cs" />
|
||||
<Compile Include="CPartyScreenTeamSurvivalHearts.cs" />
|
||||
<Compile Include="CPartyScreenTeamSurvivalMain.cs" />
|
||||
<Compile Include="CPartyScreenTeamSurvivalNames.cs" />
|
||||
<Compile Include="CPartyScreenTeamSurvivalSongs.cs" />
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\VocaluxeLib\VocaluxeLib.csproj">
|
||||
<Project>{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}</Project>
|
||||
<Name>VocaluxeLib</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">if exist "$(SolutionDir)Output\PartyModes\$(TargetName)\Code" rd "$(SolutionDir)Output\PartyModes\$(TargetName)\Code" /S /Q
|
||||
cd $(SolutionDir)Partymodes\
|
||||
xcopy "$(ProjectDir)*.cs" "$(SolutionDir)Output\PartyModes\$(TargetName)\Code\" /EXCLUDE:Excludes.txt /I /Y</PostBuildEvent>
|
||||
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">rm -rf "$(SolutionDir)Output\PartyModes\$(TargetName)\Code"
|
||||
mkdir -p "$(SolutionDir)Output\PartyModes\$(TargetName)\Code\"
|
||||
cp -R $(ProjectDir)*.cs "$(SolutionDir)Output\PartyModes\$(TargetName)\Code\"
|
||||
rm -f "$(SolutionDir)Output\PartyModes\$(TargetName)\Code\GlobalSuppressions.cs"
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,809 @@
|
||||
<StyleCopSettings Version="105">
|
||||
<Analyzers>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
|
||||
<Rules>
|
||||
<Rule Name="ElementsMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PartialElementsMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="EnumerationItemsMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationMustContainValidXml">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustHaveSummary">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PartialElementDocumentationMustHaveSummary">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustHaveSummaryText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PartialElementDocumentationMustHaveSummaryText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParametersMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParameterDocumentationMustMatchElementParameters">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParameterDocumentationMustDeclareParameterName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParameterDocumentationMustHaveText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementReturnValueMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementReturnValueDocumentationMustHaveText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="VoidReturnValueMustNotBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParametersMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParameterDocumentationMustHaveText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PropertySummaryDocumentationMustMatchAccessors">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationTextMustNotBeEmpty">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationTextMustContainWhitespace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationMustMeetCharacterPercentage">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationHeadersMustNotContainBlankLines">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="IncludedDocumentationXPathDoesNotExist">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="InheritDocMustBeUsedWithInheritingClass">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustBeSpelledCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileMustHaveHeader">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileHeaderMustShowCopyright">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileHeaderMustHaveCopyrightText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileHeaderMustContainFileName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileHeaderMustHaveValidCompanyText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
|
||||
<Rules>
|
||||
<Rule Name="FieldNamesMustNotBeginWithUnderscore">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementMustBeginWithUpperCaseLetter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementMustBeginWithLowerCaseLetter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="InterfaceNamesMustBeginWithI">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ConstFieldNamesMustBeginWithUpperCaseLetter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FieldNamesMustNotUseHungarianNotation">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FieldNamesMustBeginWithLowerCaseLetter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="AccessibleFieldsMustBeginWithUpperCaseLetter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="VariableNamesMustNotBePrefixed">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FieldNamesMustNotContainUnderscore">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="StaticReadonlyFieldsMustBeginWithUpperCaseLetter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
|
||||
<Rules>
|
||||
<Rule Name="CurlyBracketsForMultiLineStatementsMustNotShareLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="StatementMustNotBeOnSingleLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementMustNotBeOnSingleLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CurlyBracketsMustNotBeOmitted">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="AllAccessorsMustBeMultiLineOrSingleLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningCurlyBracketsMustNotBeFollowedByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationHeadersMustNotBeFollowedByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeMustNotContainMultipleBlankLinesInARow">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingCurlyBracketsMustNotBePrecededByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningCurlyBracketsMustNotBePrecededByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ChainedStatementBlocksMustNotBePrecededByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="WhileDoFooterMustNotBePrecededByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SingleLineCommentsMustNotBeFollowedByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingCurlyBracketMustBeFollowedByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationHeaderMustBePrecededByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SingleLineCommentMustBePrecededByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementsMustBeSeparatedByBlankLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeMustNotContainBlankLinesAtStartOfFile">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeMustNotContainBlankLinesAtEndOfFile">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.MaintainabilityRules">
|
||||
<Rules>
|
||||
<Rule Name="AccessModifierMustBeDeclared">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FieldsMustBePrivate">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeAnalysisSuppressionMustHaveJustification">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DebugAssertMustProvideMessageText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DebugFailMustProvideMessageText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileMayOnlyContainASingleClass">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="FileMayOnlyContainASingleNamespace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="StatementMustNotUseUnnecessaryParenthesis">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ArithmeticExpressionsMustDeclarePrecedence">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ConditionalExpressionsMustDeclarePrecedence">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="RemoveDelegateParenthesisWhenPossible">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="AttributeConstructorMustNotUseUnnecessaryParenthesis">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="RemoveUnnecessaryCode">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
|
||||
<Rules>
|
||||
<Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementsMustAppearInTheCorrectOrder">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementsMustBeOrderedByAccess">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ConstantsMustAppearBeforeFields">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="StaticElementsMustAppearBeforeInstanceElements">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DeclarationKeywordsMustFollowOrder">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ProtectedMustComeBeforeInternal">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PropertyAccessorsMustFollowOrder">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="EventAccessorsMustFollowOrder">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="StaticReadonlyElementsMustAppearBeforeStaticNonReadonlyElements">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="InstanceReadonlyElementsMustAppearBeforeInstanceNonReadonlyElements">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="UsingAliasDirectivesMustBePlacedAfterOtherUsingDirectives">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="UsingDirectivesMustBeOrderedAlphabeticallyByNamespace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="UsingAliasDirectivesMustBeOrderedAlphabeticallyByAliasName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
|
||||
<Rules>
|
||||
<Rule Name="CommentsMustContainText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DoNotPrefixCallsWithBaseUnlessLocalImplementationExists">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PrefixLocalCallsWithThis">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PrefixCallsCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningParenthesisMustBeOnDeclarationLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingParenthesisMustBeOnLineOfLastParameter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingParenthesisMustBeOnLineOfOpeningParenthesis">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CommaMustBeOnSameLineAsPreviousParameter">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ParameterListMustFollowDeclaration">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ParameterMustFollowComma">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SplitParametersMustStartOnLineAfterDeclaration">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ParametersMustBeOnSameLineOrSeparateLines">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ParameterMustNotSpanMultipleLines">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="QueryClauseMustFollowPreviousClause">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="QueryClausesMustBeOnSeparateLinesOrAllOnOneLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="QueryClausesSpanningMultipleLinesMustBeginOnOwnLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DoNotPlaceRegionsWithinElements">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeMustNotContainEmptyStatements">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="BlockStatementsMustNotContainEmbeddedComments">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="BlockStatementsMustNotContainEmbeddedRegions">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="UseStringEmptyForEmptyStrings">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="UseBuiltInTypeAlias">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="UseShorthandForNullableTypes">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
|
||||
<Rules>
|
||||
<Rule Name="KeywordsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CommasMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SemicolonsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SymbolsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationLinesMustBeginWithSingleSpace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SingleLineCommentsMustBeginWithSingleSpace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PreprocessorKeywordsMustNotBePrecededBySpace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OperatorKeywordMustBeFollowedBySpace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningParenthesisMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingParenthesisMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningSquareBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingSquareBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningCurlyBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingCurlyBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningGenericBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingGenericBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="OpeningAttributeBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ClosingAttributeBracketsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="NullableTypeSymbolsMustNotBePrecededBySpace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="MemberAccessSymbolsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="IncrementDecrementSymbolsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="NegativeSignsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PositiveSignsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ColonsMustBeSpacedCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeMustNotContainMultipleWhitespaceInARow">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="TabsMustNotBeUsed">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
</Analyzers>
|
||||
</StyleCopSettings>
|
||||
@@ -4,6 +4,7 @@ VisualStudioVersion = 14.0.25420.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vocaluxe", "Vocaluxe\Vocaluxe.csproj", "{2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41} = {7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}
|
||||
{55F89808-4E79-4FFE-BC13-48258913F5C9} = {55F89808-4E79-4FFE-BC13-48258913F5C9}
|
||||
{6F3E1874-F28A-40E9-AFBD-31934D593679} = {6F3E1874-F28A-40E9-AFBD-31934D593679}
|
||||
{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC} = {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}
|
||||
@@ -23,6 +24,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PitchTracker", "PitchTracke
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{8EDF4429-251A-416D-BB68-93F227191BCF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PartyModeTeamSurvival", "PartyModes\PartyModeTeamSurvival\PartyModeTeamSurvival.csproj", "{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
DebugLinux|x64 = DebugLinux|x64
|
||||
@@ -173,6 +176,26 @@ Global
|
||||
{8EDF4429-251A-416D-BB68-93F227191BCF}.ReleaseWin|x64.Build.0 = Release|x64
|
||||
{8EDF4429-251A-416D-BB68-93F227191BCF}.ReleaseWin|x86.ActiveCfg = Release|x86
|
||||
{8EDF4429-251A-416D-BB68-93F227191BCF}.ReleaseWin|x86.Build.0 = Release|x86
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugLinux|x64.ActiveCfg = DebugLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugLinux|x64.Build.0 = DebugLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugLinux|x86.ActiveCfg = DebugLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugLinux|x86.Build.0 = DebugLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugWin|x64.ActiveCfg = DebugWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugWin|x64.Build.0 = DebugWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugWin|x86.ActiveCfg = DebugWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.DebugWin|x86.Build.0 = DebugWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.InstallerWin|x64.ActiveCfg = InstallerWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.InstallerWin|x64.Build.0 = InstallerWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.InstallerWin|x86.ActiveCfg = InstallerWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.InstallerWin|x86.Build.0 = InstallerWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseLinux|x64.Build.0 = ReleaseLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseLinux|x86.Build.0 = ReleaseLinux|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseWin|x64.ActiveCfg = ReleaseWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseWin|x64.Build.0 = ReleaseWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseWin|x86.ActiveCfg = ReleaseWin|Any CPU
|
||||
{7B2E4A19-5C3D-4E8F-A16B-2D9C0F3E8B41}.ReleaseWin|x86.Build.0 = ReleaseWin|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
Reference in new issue
Block a user