PartyNames: Added support for no teams.

This commit is contained in:
Florian Küpper committed 2013-12-20 15:57:02 +01:00
1 parent 007999999e
commit 3b7db42a89
6 files changed
+191 -443

No files matched your search

@@ -57,7 +57,7 @@
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text1>
</Text1>
<ButtonNext>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -65,7 +65,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>985</X>
<Y>600</Y>
<Y>625</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -122,7 +122,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>600</Y>
<Y>625</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -172,103 +172,183 @@
<Height>26</Height>
</SReflection>
</ButtonBack>
<ButtonPlayerDestination>
<SelectSlideTeams>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>100</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<W>1200</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>105</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>105</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerDestination>
<ButtonPlayerChoose>
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>2</NumVisible>
</SelectSlideTeams>
<SelectSlidePlayer>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlidePlayer</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlidePlayer</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>160</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<W>1200</W>
<H>150</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>165</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>165</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerChoose>
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<TextRelativeY>-5,00</TextRelativeY>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>3</NumVisible>
</SelectSlidePlayer>
<NameSelection>
<!--<X>, <Y>, <Z>, <W>, <H>: NameSelection position, width and height-->
<X>42</X>
<Y>327</Y>
<Z>0,00</Z>
<W>1200</W>
<H>393</H>
<!--<SkinEmptyTile>: Texture name-->
<SkinEmptyTile>CoverTile</SkinEmptyTile>
<!--<ColorEmptyTile>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<R>1,00</R>
<G>1,00</G>
<B>1,00</B>
<A>0,20</A>
<!--<SkinTileSelected>: Texture name-->
<SkinTileSelected>PlayerSelector</SkinTileSelected>
<!--<Tiles>: Options for tiles-->
<Tiles>
<!--<W>, <H>: Width and height of tile-->
<W>100</W>
<H>100</H>
<!--<NumW>, <NumH>: Number of tiles-->
<NumW>10</NumW>
<NumH>2</NumH>
<!--<SpaceW>, <SpaceH>: Space between tiles-->
<SpaceW>20,71</SpaceW>
<SpaceH>30,00</SpaceH>
<!--<Name>: Options for player-name-->
<Name>
<!--<Space>: Space between name and tile-->
<Space>2,0</Space>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<Color>TextColor</Color>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<H>: Text height-->
<H>17</H>
</Name>
</Tiles>
</NameSelection>
</PartyScreenChallengeNames>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -148,8 +148,9 @@
<ScrollUp>ScrollUp.png</ScrollUp>
<ScrollDown>ScrollDown.png</ScrollDown>
<Invisible>Invisible.png</Invisible>
<PlayerSelector>PlayerSelector.png</PlayerSelector>
</Skins>
<Videos>
<BG_Video>[Blue]BG_Video.mp4</BG_Video>
</Videos>
</root>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -25,7 +25,7 @@ using VocaluxeLib.Profile;
namespace VocaluxeLib.PartyModes.Challenge
{
// ReSharper disable UnusedMember.Global
public class CPartyScreenChallengeNames : CMenuParty
public class CPartyScreenChallengeNames : CMenuPartyNameSelection
// ReSharper restore UnusedMember.Global
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
@@ -34,58 +34,14 @@ namespace VocaluxeLib.PartyModes.Challenge
get { return 1; }
}
private const string _ButtonNext = "ButtonNext";
private const string _ButtonBack = "ButtonBack";
private const string _ButtonPlayerDestination = "ButtonPlayerDestination";
private const string _ButtonPlayerChoose = "ButtonPlayerChoose";
private List<CPlayerChooseButton> _PlayerChooseButtons;
private List<CButton> _PlayerDestinationButtons;
//PlayerDestinationButtons-Option
private const int _PlayerDestinationButtonsNumH = 3;
private const int _PlayerDestinationButtonsFirstX = 900;
private const int _PlayerDestinationButtonsFirstY = 105;
private const int _PlayerDestinationButtonsSpaceH = 15;
private const int _PlayerDestinationButtonsSpaceW = 25;
//PlayerChooseButtons-Option
private List<int> _PlayerChooseButtonsVisibleProfiles;
private const int _PlayerChooseButtonsNumH = 7;
private const int _PlayerChooseButtonsNumW = 4;
private const int _PlayerChooseButtonsFirstX = 52;
private const int _PlayerChooseButtonsFirstY = 105;
private const int _PlayerChooseButtonsSpaceH = 15;
private const int _PlayerChooseButtonsSpaceW = 25;
private const int _PlayerChooseButtonsOffset = 0;
private CStatic _ChooseAvatarStatic;
private bool _SelectingMouseActive;
private int _OldMouseX;
private int _OldMouseY;
private bool _ButtonsAdded;
private int _NumPlayer = 4;
private int _NumPlayer = 4;
private SDataFromScreen _Data;
private class CPlayerChooseButton
{
public CButton Button;
public int ProfileID;
}
public override void Init()
{
base.Init();
_ChooseAvatarStatic = GetNewStatic();
_ChooseAvatarStatic.Visible = false;
_PlayerChooseButtonsVisibleProfiles = new List<int>();
_Data.ScreenNames.ProfileIDs = new List<int>();
_ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose};
_Data = new SDataFromScreen();
var names = new SFromScreenNames {FadeBack = false, ProfileIDs = new List<int>()};
_Data.ScreenNames = names;
@@ -109,320 +65,24 @@ namespace VocaluxeLib.PartyModes.Challenge
}
}
public override bool HandleInput(SKeyEvent keyEvent)
{
base.HandleInput(keyEvent);
if (keyEvent.KeyPressed) {}
else
{
switch (keyEvent.Key)
{
case Keys.Back:
case Keys.Escape:
_Back();
break;
case Keys.Enter:
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (!_OnAdd())
_OnRemove();
break;
case Keys.Delete:
_OnRemove();
break;
}
}
return true;
}
public override bool HandleMouse(SMouseEvent mouseEvent)
{
base.HandleMouse(mouseEvent);
//Check if LeftButton is hold and Select-Mode active
if (mouseEvent.LBH && _SelectingMouseActive)
{
//Update coords for Drag/Drop-Texture
_ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX;
_ChooseAvatarStatic.Rect.Y += mouseEvent.Y - _OldMouseY;
_OldMouseX = mouseEvent.X;
_OldMouseY = mouseEvent.Y;
}
// LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar
else if (_SelectingMouseActive)
{
//Reset variables
_SelectingMouseActive = false;
_ChooseAvatarStatic.Visible = false;
}
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
{
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (!_OnAdd())
_OnRemove();
}
if (mouseEvent.RB)
_Back();
return true;
}
public override void OnShow()
{
base.OnShow();
if (!_ButtonsAdded)
{
_AddButtonPlayerDestination();
_AddButtonPlayerChoose();
_ButtonsAdded = true;
}
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_UpdateButtonNext();
SetPartyModeData(_NumPlayer);
}
public override bool UpdateGame()
{
return true;
}
public override bool Draw()
{
base.Draw();
if (_ChooseAvatarStatic.Visible)
_ChooseAvatarStatic.Draw();
return true;
}
private void _AddButtonPlayerDestination()
{
_Buttons[_ButtonPlayerDestination].Visible = false;
_PlayerDestinationButtons = new List<CButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PartyMode.GetMaxPlayer(); i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerDestination]);
b.Rect.X = _PlayerDestinationButtonsFirstX + column * (b.Rect.W + _PlayerDestinationButtonsSpaceH);
b.Rect.Y = _PlayerDestinationButtonsFirstY + row * (b.Rect.H + _PlayerDestinationButtonsSpaceW);
_PlayerDestinationButtons.Add(b);
column++;
if (column >= _PlayerDestinationButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _AddButtonPlayerChoose()
{
_Buttons[_ButtonPlayerChoose].Visible = false;
_PlayerChooseButtons = new List<CPlayerChooseButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PlayerChooseButtonsNumH * _PlayerChooseButtonsNumW; i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]);
b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH);
b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW);
var pcb = new CPlayerChooseButton {Button = b, ProfileID = -1};
_PlayerChooseButtons.Add(pcb);
column++;
if (column >= _PlayerChooseButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _UpdateButtonPlayerChoose()
{
_UpdateVisibleProfiles();
if ((_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * (_PlayerChooseButtonsOffset + 1) - _PlayerChooseButtonsVisibleProfiles.Count >=
(_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * _PlayerChooseButtonsOffset)
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset - 1);
else
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset);
}
private void _UpdateButtonPlayerChoose(int offset)
{
const int numButtonPlayerChoose = _PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH;
if (offset < 0)
offset = 0;
if (numButtonPlayerChoose * (offset + 1) - _PlayerChooseButtonsVisibleProfiles.Count <= numButtonPlayerChoose)
{
for (int i = 0; i < numButtonPlayerChoose; i++)
{
if ((i + offset * numButtonPlayerChoose) < _PlayerChooseButtonsVisibleProfiles.Count)
{
int id = _PlayerChooseButtonsVisibleProfiles[i + offset * numButtonPlayerChoose];
_PlayerChooseButtons[i].ProfileID = id;
_PlayerChooseButtons[i].Button.Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerChooseButtons[i].Button.Texture = CBase.Profiles.GetAvatar(id);
_PlayerChooseButtons[i].Button.SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerChooseButtons[i].Button.Color = new SColorF(1, 1, 1, 0.6f);
_PlayerChooseButtons[i].Button.SelColor = new SColorF(1, 1, 1, 1);
_PlayerChooseButtons[i].Button.Enabled = true;
}
else
{
_PlayerChooseButtons[i].ProfileID = -1;
_PlayerChooseButtons[i].Button.Text.Text = String.Empty;
_PlayerChooseButtons[i].Button.Texture = _Buttons[_ButtonPlayerChoose].Texture;
_PlayerChooseButtons[i].Button.SelTexture = _Buttons[_ButtonPlayerChoose].SelTexture;
_PlayerChooseButtons[i].Button.Color = _Buttons[_ButtonPlayerChoose].Color;
_PlayerChooseButtons[i].Button.SelColor = _Buttons[_ButtonPlayerChoose].SelColor;
_PlayerChooseButtons[i].Button.Enabled = false;
}
}
}
}
private void _UpdateVisibleProfiles()
{
_PlayerChooseButtonsVisibleProfiles.Clear();
CProfile[] profiles = CBase.Profiles.GetProfiles();
foreach (CProfile profile in profiles)
{
bool visible = false;
//Show profile only if active
if (profile.Active == EOffOn.TR_CONFIG_ON)
visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != profile.ID);
if (visible)
_PlayerChooseButtonsVisibleProfiles.Add(profile.ID);
}
}
private void _UpdateButtonPlayerDestination()
{
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
{
if (_NumPlayer > i)
{
_PlayerDestinationButtons[i].Visible = true;
_PlayerDestinationButtons[i].Enabled = true;
}
else
{
_PlayerDestinationButtons[i].Visible = false;
_PlayerDestinationButtons[i].Enabled = false;
}
}
for (int i = 0; i < _NumPlayer; i++)
{
if (i < _Data.ScreenNames.ProfileIDs.Count)
{
if (_Data.ScreenNames.ProfileIDs[i] != -1)
{
int id = _Data.ScreenNames.ProfileIDs[i];
_PlayerDestinationButtons[i].Color = new SColorF(1, 1, 1, 0.6f);
_PlayerDestinationButtons[i].SelColor = new SColorF(1, 1, 1, 1);
_PlayerDestinationButtons[i].Texture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[i].SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[i].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[i].Enabled = true;
}
}
else
{
_PlayerDestinationButtons[i].Color = _Buttons[_ButtonPlayerDestination].Color;
_PlayerDestinationButtons[i].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
_PlayerDestinationButtons[i].Texture = _Buttons[_ButtonPlayerDestination].Texture;
_PlayerDestinationButtons[i].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
_PlayerDestinationButtons[i].Text.Text = String.Empty;
_PlayerDestinationButtons[i].Enabled = false;
}
}
}
private void _UpdateButtonNext()
{
if (_Data.ScreenNames.ProfileIDs.Count == _NumPlayer)
{
_Buttons[_ButtonNext].Visible = true;
_SetInteractionToButton(_Buttons[_ButtonNext]);
}
else
_Buttons[_ButtonNext].Visible = false;
}
private bool _OnAdd()
{
foreach (CPlayerChooseButton button in _PlayerChooseButtons)
{
int id = button.ProfileID;
if (!button.Button.Selected || id == -1 || _Data.ScreenNames.ProfileIDs.Count >= _NumPlayer)
continue;
_Data.ScreenNames.ProfileIDs.Add(id);
int added = _Data.ScreenNames.ProfileIDs.Count - 1;
_UpdateButtonNext();
//Update texture and name
_PlayerDestinationButtons[added].Color = new SColorF(1, 1, 1, 0.6f);
_PlayerDestinationButtons[added].SelColor = new SColorF(1, 1, 1, 1);
_PlayerDestinationButtons[added].Texture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[added].Enabled = true;
//Update Tiles-List
_UpdateButtonPlayerChoose();
_CheckInteraction();
return true;
}
return false;
}
private void _OnRemove()
{
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
{
if (!_PlayerDestinationButtons[i].Selected)
continue;
if ((i + 1) > _Data.ScreenNames.ProfileIDs.Count)
continue;
_Data.ScreenNames.ProfileIDs.RemoveAt(i);
_UpdateButtonNext();
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_CheckInteraction();
return;
}
}
private void _Back()
public override void Back()
{
List<int> ids = GetTeamIDs(0);
_Data.ScreenNames.ProfileIDs = ids;
_Data.ScreenNames.FadeBack = true;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
private void _Next()
public override void Next()
{
List<int> ids = GetTeamIDs(0);
_Data.ScreenNames.ProfileIDs = ids;
_Data.ScreenNames.FadeBack = false;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
@@ -70,6 +70,12 @@ namespace VocaluxeLib.Menu
CBase.Profiles.AddProfileChangedCallback(_OnProfileChanged);
}
public void SetPartyModeData(int numPlayer)
{
SetPartyModeData(1, numPlayer, new int[] { numPlayer });
_CurrentTeam = 0;
}
public void SetPartyModeData(int numTeams, int numPlayer, int[] numPlayerTeams)
{
_NumTeams = numTeams;
@@ -357,6 +363,7 @@ namespace VocaluxeLib.Menu
base.LoadTheme(xmlPath);
_SelectSlides[_SelectSlidePlayer].WithTextures = true;
_SelectSlides[_SelectSlidePlayer].SelectionByHover = true;
_SelectSlides[_SelectSlideTeams].Visible = _Teams;
}
public override bool UpdateGame()