示例#1
0
        public override string UpdateGameStateForMove(BotGameState gameState)
        {
            _militaryResolverUtility.UpdateBaseMilitaryGameStateForMove(_moveState, gameState, _moveState.CurrentAttackMoveId);

            _currentStep = -1;
            return(BuildMoveSummary());
        }
        public override string UpdateGameStateForMove(BotGameState gameState)
        {
            _militaryResolverUtility.UpdateBaseMilitaryGameStateForMove(_moveState, gameState, _moveState.CurrentAttackMoveId);

            FocusBarUpgradeResponse freeUpgrade = new FocusBarUpgradeResponse(false, _moveState.ActiveFocusBarForMove, _moveState.ActiveFocusBarForMove.ActiveFocusSlot, null);

            if (!_moveState.AttacksAvailable.All(x => !x.Value.IsTargetWithinRange) && _moveState.ControlTokensReinforcedThisTurn == 0)
            {
                freeUpgrade = _focusBarTechnologyUpgradeResolver.RegenerateFocusBarSpecificTechnologyLevelUpgrade(_moveState.ActiveFocusBarForMove, FocusType.Military);
                gameState.ActiveFocusBar = freeUpgrade.UpgradedFocusBar;
            }

            _currentStep = -1;
            return(BuildMoveSummary(freeUpgrade));
        }