Пример #1
0
        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);
        }