public override void PerformNextPlayerAction(Player performingPlayer, int currentTurn) { performingPlayer.MarkNextActionPerforming(currentTurn); var actionType = performingPlayer.GetNextActionToPerform(currentTurn); switch (actionType) { case PlayerActionType.Alpha: PerformAAction(performingPlayer, false); break; case PlayerActionType.Bravo: PerformBAction(performingPlayer, false); break; case PlayerActionType.Charlie: PerformCAction(performingPlayer, currentTurn); break; case PlayerActionType.MoveBlue: MovementController.MoveBlue(SittingDuck.StandardStationsByLocation, performingPlayer, currentTurn); break; case PlayerActionType.MoveRed: MovementController.MoveRed(SittingDuck.StandardStationsByLocation, performingPlayer, currentTurn); break; case PlayerActionType.ChangeDeck: MovementController.ChangeDeck(SittingDuck.StandardStationsByLocation, performingPlayer, currentTurn); break; case PlayerActionType.BattleBots: UseBattleBots(performingPlayer, false); break; case PlayerActionType.HeroicA: PerformAAction(performingPlayer, true); break; case PlayerActionType.HeroicB: PerformBAction(performingPlayer, true); break; case PlayerActionType.HeroicBattleBots: UseBattleBots(performingPlayer, true); break; case PlayerActionType.TeleportBlueLower: MovementController.MoveHeroically(SittingDuck.StandardStationsByLocation, performingPlayer, StationLocation.LowerBlue, currentTurn); break; case PlayerActionType.TeleportBlueUpper: MovementController.MoveHeroically(SittingDuck.StandardStationsByLocation, performingPlayer, StationLocation.UpperBlue, currentTurn); break; case PlayerActionType.TeleportWhiteLower: MovementController.MoveHeroically(SittingDuck.StandardStationsByLocation, performingPlayer, StationLocation.LowerWhite, currentTurn); break; case PlayerActionType.TeleportWhiteUpper: MovementController.MoveHeroically(SittingDuck.StandardStationsByLocation, performingPlayer, StationLocation.UpperWhite, currentTurn); break; case PlayerActionType.TeleportRedLower: MovementController.MoveHeroically(SittingDuck.StandardStationsByLocation, performingPlayer, StationLocation.LowerRed, currentTurn); break; case PlayerActionType.TeleportRedUpper: MovementController.MoveHeroically(SittingDuck.StandardStationsByLocation, performingPlayer, StationLocation.UpperRed, currentTurn); break; case PlayerActionType.BasicSpecialization: PerformBasicSpecialization(performingPlayer, currentTurn); break; case PlayerActionType.AdvancedSpecialization: PerformAdvancedSpecialization(performingPlayer, currentTurn); break; } performingPlayer.MarkNextActionPerformed(currentTurn); }