/// <summary> /// On battle state change. /// </summary> /// <param name="switchingFrom">...</param> /// <param name="switchingTo">...</param> static void OnBattleStateChange(BattleState switchingFrom, BattleState switchingTo) { switch (switchingFrom) { case BattleState.SHOWING_HIT_TILE: break; case BattleState.FIRING: foreach (Ship ship in battle.attackingPlayer.livingShips) { ship.PositionOnPlayingBoard(); ship.gameObject.SetActive(false); } break; case BattleState.CHOOSING_TILE_TO_SHOOT: TorpedoTargetingBattleUIModule.Disable(); break; } switch (switchingTo) { case BattleState.FIRING: battle.ChangeState(BattleState.SHOWING_HIT_TILE, 1f); Actionman.ActionView(); break; case BattleState.SHOWING_HIT_TILE: battle.ChangeState(BattleState.TURN_FINISHED, 1.5f); ViewPlayer(battle.defendingPlayer); break; case BattleState.TURN_FINISHED: SetUpOverhead(); Cameraman.TakePosition("Overhead View", 0.45f); Interface.SwitchMenu("Overhead"); break; case BattleState.CHOOSING_TILE_TO_SHOOT: break; } }
/// <summary> /// Sets up the overhead view. /// </summary> static void SetUpOverhead() { foreach (Player player in battle.players) { player.board.Set(BoardState.OVERHEAD); if (player == battle.attackingPlayer) { player.SetMacroMarker(0); } if (!player.alive) { player.SetMacroMarker(1); } } TorpedoTargetingBattleUIModule.Disable(); }
/// <summary> /// Shows a player's board. /// </summary> /// <param name="player">The player, who's board to show.</param> static void ViewPlayer(Player player) { player.SetMacroMarker(-1); if (player == battle.attackingPlayer || (GameController.humanPlayers == 1 && !player.AI) || GameController.humanPlayers == 0) { player.board.Set(BoardState.FRIENDLY); } else if (!battle.attackingPlayer.AI || GameController.humanPlayers == 0) { player.board.Set(BoardState.ENEMY); TorpedoTargetingBattleUIModule.Enable(); } else { player.board.Set(BoardState.OVERHEAD); } Cameraman.TakePosition("Board " + (player.ID + 1), 0.3f); }