private void SelectCharacter(TeamSelectData data, int index) { if (data == null) { throw new ArgumentNullException(nameof(data)); } var selectData = GetSelectData(data); var selection = Grid.GetSelection(selectData.CurrentCell, false); if (selection == null || selection.SelectionType != PlayerSelectType.Profile) { return; } data.PlaySelectSound(); selectData.IsSelected = true; selectData.PaletteIndex += index; if (data.TeamMode == TeamMode.Single) { data.ButtonMap.Clear(); m_stageSelect.SetStageSelectionInput(data.P1SelectData); } else if (data.State == TeamSelectState.SelectSelf) { data.State = TeamSelectState.SelectMate; } else { data.ButtonMap.Clear(); m_stageSelect.SetStageSelectionInput(data.P2SelectData); } }
private void SetCharacterSelectionInput(TeamSelectData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } data.ButtonMap.Clear(); data.ButtonMap.Add(PlayerButton.Up, x => { if (x) { MoveCharacterSelection(data, CursorDirection.Up); } }); data.ButtonMap.Add(PlayerButton.Down, x => { if (x) { MoveCharacterSelection(data, CursorDirection.Down); } }); data.ButtonMap.Add(PlayerButton.Left, x => { if (x) { MoveCharacterSelection(data, CursorDirection.Left); } }); data.ButtonMap.Add(PlayerButton.Right, x => { if (x) { MoveCharacterSelection(data, CursorDirection.Right); } }); data.ButtonMap.Add(PlayerButton.A, x => { if (x) { SelectCharacter(data, 0); } }); data.ButtonMap.Add(PlayerButton.B, x => { if (x) { SelectCharacter(data, 1); } }); data.ButtonMap.Add(PlayerButton.C, x => { if (x) { SelectCharacter(data, 2); } }); data.ButtonMap.Add(PlayerButton.X, x => { if (x) { SelectCharacter(data, 3); } }); data.ButtonMap.Add(PlayerButton.Y, x => { if (x) { SelectCharacter(data, 4); } }); data.ButtonMap.Add(PlayerButton.Z, x => { if (x) { SelectCharacter(data, 5); } }); }
private static SelectData GetSelectData(TeamSelectData data) { if (data.State == TeamSelectState.SelectSelf) { return(data.P1SelectData); } if (data.State == TeamSelectState.SelectMate) { return(data.P2SelectData); } return(null); }
private void MoveTeamModeSelection(TeamSelectData data, CursorDirection direction) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (data.MoveTeamModeCursor(direction)) { data.PlayCursorMoveSound(); } }
private void MoveCharacterSelection(TeamSelectData data, CursorDirection direction) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (data.MoveCharacterCursor(direction, Grid.Size, Grid.Wrapping)) { data.PlayCursorMoveSound(); } }
private void SetTeamModeCharacterSelectionInput(TeamSelectData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } data.ButtonMap.Clear(); data.ButtonMap.Add(PlayerButton.Up, x => { if (x) { MoveTeamModeSelection(data, CursorDirection.Up); } }); data.ButtonMap.Add(PlayerButton.Down, x => { if (x) { MoveTeamModeSelection(data, CursorDirection.Down); } }); data.ButtonMap.Add(PlayerButton.A, x => { if (x) { SelectTeamMode(data); } }); data.ButtonMap.Add(PlayerButton.B, x => { if (x) { SelectTeamMode(data); } }); data.ButtonMap.Add(PlayerButton.C, x => { if (x) { SelectTeamMode(data); } }); data.ButtonMap.Add(PlayerButton.X, x => { if (x) { SelectTeamMode(data); } }); data.ButtonMap.Add(PlayerButton.Y, x => { if (x) { SelectTeamMode(data); } }); data.ButtonMap.Add(PlayerButton.Z, x => { if (x) { SelectTeamMode(data); } }); }
public TeamSelectScreenBehavior(SelectScreen selectScreen, TextSection textsection) { SelectScreen = selectScreen; m_stageSelect = new StageSelect(selectScreen, textsection); m_soundcancel = textsection.GetAttribute <SoundId>("cancel.snd"); m_titlelocation = textsection.GetAttribute <Point>("title.offset"); m_titlefont = textsection.GetAttribute <PrintData>("title.font"); m_p1info = new SelectData(selectScreen, selectScreen.MenuSystem.GetSubSystem <Input.InputSystem>().CurrentInput[1], textsection, "p1", Grid.MoveOverEmptyBoxes); m_p2info = new SelectData(selectScreen, selectScreen.MenuSystem.GetSubSystem <Input.InputSystem>().CurrentInput[2], textsection, "p2", Grid.MoveOverEmptyBoxes); m_p1TeamInfo = new TeamSelectData(selectScreen, selectScreen.MenuSystem.GetSubSystem <Input.InputSystem>().CurrentInput[1], textsection, "p1", Grid.MoveOverEmptyBoxes); m_p2TeamInfo = new TeamSelectData(selectScreen, selectScreen.MenuSystem.GetSubSystem <Input.InputSystem>().CurrentInput[2], textsection, "p2", Grid.MoveOverEmptyBoxes); }
private void SelectTeamMode(TeamSelectData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (data.State == TeamSelectState.TeamMode) { data.State = TeamSelectState.SelectSelf; data.PlaySelectSound(); data.ButtonMap.Clear(); SetCharacterSelectionInput(data); } else { data.State = TeamSelectState.SelectMate; data.PlaySelectSound(); data.ButtonMap.Clear(); SetCharacterSelectionInput(data); } }