internal void LoadLevel(Game1 game) { PlayerSpriteFactory.PlayerColorScheme[] schemes = new PlayerSpriteFactory.PlayerColorScheme[NumPlayers]; int index = 0; foreach (Samus player in Players) { if (player == null) { continue; } schemes[index] = ((Samus)player).ColorScheme; index++; } ILevel multiplayerBrinstar = new MultiplayerBrinstar(NumPlayers, schemes); foreach (IController controller in Game1.Controllers) { controller.SwapCommandScheme(); } game.SetLevel(multiplayerBrinstar); }
public void MenuRight(int playerId) { if (playerId == -1 || _pointerPositions[playerId] == _menuStrings[playerId].Length - 1) { return; } Samus player = (Samus)Players[playerId]; PlayerSpriteFactory.PlayerColorScheme newScheme = new PlayerSpriteFactory.PlayerColorScheme() { AccentMissileColor = player.ColorScheme.AccentMissileColor, HelmetColor = player.ColorScheme.HelmetColor, AccentBaseColor = player.ColorScheme.AccentBaseColor, IsZeroSuit = player.ColorScheme.IsZeroSuit, SuitBaseColor = player.ColorScheme.SuitBaseColor, SuitVariaColor = player.ColorScheme.SuitVariaColor, SuitVariaMissileColor = player.ColorScheme.SuitVariaMissileColor }; int selectedColor = ++_colorSelections[playerId][_pointerPositions[playerId]]; switch (_pointerPositions[playerId]) { case 0: newScheme.IsZeroSuit = !player.ColorScheme.IsZeroSuit; if (newScheme.IsZeroSuit) { _menuStrings[playerId] = new[] { "< Zero Suit >", "< Hair >", "< Suit >", "READY" }; } else { _menuStrings[playerId] = new[] { "< Zero Suit >", "< Helmet >", "< Suit >", "< Accent >", "READY" }; } break; case 1: if (!player.ColorScheme.IsZeroSuit) { if (selectedColor >= _helmetColors.Count) { selectedColor = 0; } newScheme.HelmetColor = _helmetColors[selectedColor]; } else { if (selectedColor >= _hairColors.Count) { selectedColor = 0; } newScheme.HelmetColor = _hairColors[selectedColor]; } break; case 2: if (!player.ColorScheme.IsZeroSuit) { if (selectedColor >= _zSuitColors.Count) { selectedColor = 0; } newScheme.SuitBaseColor = _zSuitColors[selectedColor]; } else { if (selectedColor >= _suitColors.Count) { selectedColor = 0; } newScheme.SuitBaseColor = _suitColors[selectedColor]; } break; case 3: if (_menuStrings[playerId].Length == 4) { break; } if (!player.ColorScheme.IsZeroSuit) { if (selectedColor >= _zSuitAccentColors.Count) { selectedColor = 0; } newScheme.AccentBaseColor = _zSuitAccentColors[selectedColor]; } else { if (selectedColor >= _suitAccentColors.Count) { selectedColor = 0; } newScheme.AccentBaseColor = _suitAccentColors[selectedColor]; } break; } _colorSelections[playerId][_pointerPositions[playerId]] = selectedColor; player.ColorScheme = newScheme; PlayerSpriteFactory.Instance.SetPlayerToCustomTextures(playerId, newScheme); }