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); }
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); }
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); }
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; } } }
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); } }
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); } }
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); }
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); }
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); }
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)); }