private string BuildMoveSummary(FocusBarUpgradeResponse upgrade)
        {
            // TODO: summaerise reinforcements
            //       summerise any techupgrade (if no action this turn)

            var summary = "To summarise my move I did the following;\n";

            return(_militaryResolverUtility.BuildGeneralisedMilitaryMoveSummary(summary, _moveState));
        }
コード例 #2
0
        private string BuildMoveSummary(FocusBarUpgradeResponse freeTechUpgradeResponse, TechnologyUpgradeResponse techLevelUpgradeResponse)
        {
            var summary = "To summarise my move I did the following;\n";

            if (freeTechUpgradeResponse.HasUpgraded && freeTechUpgradeResponse.OldTechnology.Name != freeTechUpgradeResponse.NewTechnology.Name)
            {
                summary += $"I received a free technology upgrade breakthrough allowing me to upgrade {freeTechUpgradeResponse.OldTechnology.Name} to {freeTechUpgradeResponse.NewTechnology.Name}\n";
            }
            return(_scienceResolverUtility.BuildGeneralisedScienceMoveSummary(summary, techLevelUpgradeResponse, _moveState));
        }
コード例 #3
0
        private string BuildMoveSummary(FocusBarUpgradeResponse freeTechUpgradeResponse)
        {
            var summary   = "To summarise my move I did the following;\n";
            var exsummary = _industryResolverUtiliity.BuildGeneralisedIndustryMoveSummary(summary, _moveState);

            if (!_moveState.HasPurchasedCityThisTurn && !_moveState.HasPurchasedWonderThisTurn && freeTechUpgradeResponse.HasUpgraded)
            {
                exsummary += $"Becuase I did not manage to purchase a wonder or build a city on this turn, I received a free Industry technology upgrade allowing me to upgrade from { freeTechUpgradeResponse.OldTechnology.Name} to { freeTechUpgradeResponse.NewTechnology.Name}\n";
            }
            return(exsummary);
        }
        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));
        }
コード例 #5
0
        public override string UpdateGameStateForMove(BotGameState botGameStateService)
        {
            _industryResolverUtiliity.UpdateBaseIndustryGameStateForMove(_moveState, botGameStateService);

            // DBr: Im torn between using the below ITechnoologyLevelModifier service or the IFocusBarTechnologyUpgradeResolver - which suggest something smells!!
            FocusBarUpgradeResponse freeUpgrade = new FocusBarUpgradeResponse(false, _moveState.ActiveFocusBarForMove, _moveState.ActiveFocusBarForMove.ActiveFocusSlot, null);

            if (!_moveState.HasPurchasedCityThisTurn && !_moveState.HasPurchasedWonderThisTurn)
            {
                freeUpgrade = _focusBarTechnologyUpgradeResolver.RegenerateFocusBarSpecificTechnologyLevelUpgrade(_moveState.ActiveFocusBarForMove, FocusType.Industry);
                botGameStateService.ActiveFocusBar = freeUpgrade.UpgradedFocusBar;
            }

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