public IFocusCardMoveResolver GetFocusCardMoveResolver(FocusCardModel activeFocusCard)
        {
            var applicableTypeResolvers = ResolveForFocusType(FocusType.Military);                        // activeFocusCard.Type);
            var applicableResolver      = ResolveForFocusLevel(applicableTypeResolvers, FocusLevel.Lvl1); // activeFocusCard.Level);

            return(applicableResolver);
        }
Exemple #2
0
 public FocusBarUpgradeResponse(bool hasUpgraded, FocusBarModel focusBarModel, FocusCardModel oldTech, FocusCardModel newTech)
 {
     HasUpgraded      = hasUpgraded;
     UpgradedFocusBar = focusBarModel;
     OldTechnology    = oldTech;
     NewTechnology    = newTech;
 }
 private FocusLevel DetermineNextTechnologyLevelForFocusCard(FocusCardModel cardToInspect)
 {
     if (cardToInspect.Level != FocusLevel.Lvl4)
     {
         var nextlvl = cardToInspect.Level + 1;
         return(nextlvl);
     }
     return(cardToInspect.Level);
 }
 private FocusCardModel GetUpgradeFocusCard(FocusCardModel focusCardToUpgrade, FocusLevel levelBarrierHit)
 {
     if (focusCardToUpgrade.Level < levelBarrierHit)
     {
         return(_globalGameCache.FocusCardsDeck.First(x => x.Type == focusCardToUpgrade.Type &&
                                                      x.Level == levelBarrierHit));
     }
     else
     {
         return(_globalGameCache.FocusCardsDeck.First(x => x.Type == focusCardToUpgrade.Type &&
                                                      x.Level == focusCardToUpgrade.Level + 1));
     }
 }
Exemple #5
0
 public BreakthroughModel(FocusCardModel replaced, FocusCardModel upgrade)
 {
     ReplacedFocusCard = replaced;
     UpgradedFocusCard = upgrade;
 }
Exemple #6
0
        private void ExecuteMoveForScope(IServiceScope scope, BotGameState gameState, FocusCardModel focusCard)
        {
            var scopedMoveContext     = scope.ServiceProvider.GetRequiredService <IAutoCivMoveClient>();
            var focusCardMoveResolver = _focusCardResolverFactory.GetFocusCardMoveResolver(focusCard);

            scopedMoveContext.ExecuteMoveForResolver(gameState, focusCardMoveResolver);
        }
        private FocusBarUpgradeResponse CreateUpgradedFocusBar(FocusBarModel activeFocusBar, FocusCardModel focusCardToUpgrade, FocusCardModel upgradeFocusCard)
        {
            Dictionary <int, FocusCardModel> newFocusBarCards = new Dictionary <int, FocusCardModel>();

            foreach (var fs in activeFocusBar.ActiveFocusSlots)
            {
                if (fs.Value.Name == focusCardToUpgrade.Name)
                {
                    newFocusBarCards.Add(fs.Key, upgradeFocusCard);
                }
                else
                {
                    newFocusBarCards.Add(fs.Key, fs.Value);
                }
            }
            var upgradedFocusBar = new FocusBarModel(new ReadOnlyDictionary <int, FocusCardModel>(newFocusBarCards));

            return(new FocusBarUpgradeResponse(true, upgradedFocusBar, focusCardToUpgrade, upgradeFocusCard));
        }