public override async Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy)
        {
            List <Upgrade> rushUpgrades = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades,
                                                                           x => x.creatureData.staticKeywords[StaticKeyword.Rush] > 0 && x.name != this.name);

            await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, "Discover a Rush Upgrade", rushUpgrades);
        }
예제 #2
0
                public override async Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf)
                {
                    List <Upgrade> rushUpgrades = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades,
                                                                                   x => x.creatureData.staticKeywords[StaticKeyword.Rush] > 0 && x.name != "Gold-Winger Gryphin");

                    await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, extraInf.ctx, "Discover a Rush Upgrade", rushUpgrades);
                }
예제 #3
0
        public override async Task OnSpellCast(Card spell, GameHandler gameHandler, int curPlayer, int enemy)
        {
            if (Attribute.IsDefined(spell.GetType(), typeof(SparePartAttribute)))
            {
                var choice = await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, "Discover an Upgrade", gameHandler.players[curPlayer].pool.upgrades).ConfigureAwait(false);

                choice.Cost -= 2;
            }

            base.OnSpellCast(spell, gameHandler, curPlayer, enemy);
        }
예제 #4
0
                public override async Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf)
                {
                    if (caller is Spell s)
                    {
                        if (s.rarity == SpellRarity.Spare_Part)
                        {
                            var choice = await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, extraInf.ctx, "Discover an Upgrade", gameHandler.players[curPlayer].pool.upgrades).ConfigureAwait(false);

                            choice.Cost -= 2;
                        }
                    }
                }
예제 #5
0
        public override async Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy)
        {
            int chosenIndex = await PlayerInteraction.ChooseUpgradeInShopAsync(gameHandler, curPlayer, enemy);

            if (chosenIndex == -1)
            {
                return;
            }

            int newCost = gameHandler.players[curPlayer].shop.At(chosenIndex).Cost - 1;

            List <Upgrade> pool = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.Cost == newCost);

            if (pool.Count > 0)
            {
                Upgrade x = (Upgrade)(await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, "Discover an Upgrade to replace with", pool, false));
                gameHandler.players[curPlayer].shop.TransformUpgrade(chosenIndex, x);
            }
        }
예제 #6
0
                public override async Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf)
                {
                    int chosenIndex = await PlayerInteraction.ChooseUpgradeInShopAsync(gameHandler, curPlayer, enemy, extraInf.ctx);

                    if (chosenIndex == -1)
                    {
                        return;
                    }

                    int newCost = gameHandler.players[curPlayer].shop.At(chosenIndex).Cost - 1;

                    List <Upgrade> pool = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.Cost == newCost);

                    if (pool.Count > 0)
                    {
                        Upgrade x = (Upgrade)(await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, extraInf.ctx, "Discover an Upgrade to replace with", pool, false));
                        gameHandler.players[curPlayer].shop.TransformUpgrade(chosenIndex, x);
                    }
                }
예제 #7
0
 public override async Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy)
 {
     List <Upgrade> pool = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.Cost == 1 && x.name != this.name);
     await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, "Discover a 1-Cost Upgrade", pool);
 }
예제 #8
0
 public override async Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf)
 {
     List <Upgrade> pool = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Legendary);
     await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, extraInf.ctx, "Discover a Legendary Upgrade", pool);
 }
예제 #9
0
 public override async Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy)
 {
     List <Upgrade> pool = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Legendary);
     await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, "Discover a Legendary Upgrade", pool);
 }
예제 #10
0
 public override async Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf)
 {
     await PlayerInteraction.DiscoverACardAsync <Upgrade>(gameHandler, curPlayer, enemy, extraInf.ctx, "Discover a 1-Cost Upgrade",
                                                          CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.Cost == 1));
 }