public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { List <Upgrade> list = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.name.Contains("Venture Co.")); for (int i = list.Count() - 1; i >= 0; i--) { if (list[i].name.Equals("Venture Co. Vault")) { list.RemoveAt(i); break; } } for (int i = 0; i < 3; i++) { int card = GameHandler.randomGenerator.Next(0, list.Count()); gameHandler.players[curPlayer].shop.AddUpgrade(list[card]); } gameHandler.players[curPlayer].aftermathMessages.Add( "Your Venture Co. Vault adds 3 random Venture Co. Upgrades to your shop."); return(Task.CompletedTask); }
public override Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy) { List <Upgrade> legendaries = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Legendary && x.Cost <= gameHandler.players[curPlayer].maxMana - 5); List <Upgrade> epics = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Epic && x.Cost <= gameHandler.players[curPlayer].maxMana - 5); List <Upgrade> rares = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Rare && x.Cost <= gameHandler.players[curPlayer].maxMana - 5); List <int> shopIndexes = gameHandler.players[curPlayer].shop.GetAllUpgradeIndexes(); for (int i = 0; i < shopIndexes.Count; i++) { switch (gameHandler.players[curPlayer].shop.At(shopIndexes[i]).rarity) { case Rarity.Common: gameHandler.players[curPlayer].shop.TransformUpgrade(shopIndexes[i], rares[GameHandler.randomGenerator.Next(0, rares.Count())]); break; case Rarity.Rare: gameHandler.players[curPlayer].shop.TransformUpgrade(shopIndexes[i], epics[GameHandler.randomGenerator.Next(0, epics.Count())]); break; case Rarity.Epic: gameHandler.players[curPlayer].shop.TransformUpgrade(shopIndexes[i], legendaries[GameHandler.randomGenerator.Next(0, legendaries.Count())]); break; default: break; } } return(Task.CompletedTask); }
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 Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { int bonus = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].playHistory, this.criteria).Count; gameHandler.players[curPlayer].maxMana += bonus; return(Task.CompletedTask); }
public override Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy) { int bonus = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].playHistory, this.criteria).Count; gameHandler.players[curPlayer].maxMana += bonus; return(Task.CompletedTask); }
public override Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy) { List <Card> list = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].playHistory, this.Criteria); gameHandler.players[curPlayer].creatureData.attack += 2 * list.Count(); gameHandler.players[curPlayer].creatureData.health += 2 * list.Count(); return(Task.CompletedTask); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { List <Card> list = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].playHistory, x => x.name.Contains("Venture Co.")); gameHandler.players[curPlayer].creatureData.attack += list.Count(); return(Task.CompletedTask); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { int rabbits = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].playHistory, x => x.name == "Robo-Rabbit").Count(); gameHandler.players[curPlayer].creatureData.attack += 2; gameHandler.players[curPlayer].creatureData.health += 2; return(Task.CompletedTask); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { List <Upgrade> legendaries = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].shop.GetAllUpgrades(), x => x.rarity == Rarity.Legendary); int index = GameHandler.randomGenerator.Next(0, legendaries.Count()); legendaries[index].effects.Add(new SwitchboardEffect()); legendaries[index].cardText += " Combo: Gain \'Spellburst: Gain Rush x4.\'"; return(Task.CompletedTask); }
public override void AfterThisAttacks(int damage, GameHandler gameHandler, int curPlayer, int enemy) { var onedrops = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.Cost == 1); Upgrade choice = onedrops[GameHandler.randomGenerator.Next(onedrops.Count)]; gameHandler.players[curPlayer].hand.AddCard(choice); gameHandler.combatOutputCollector.combatHeader.Add( $"{gameHandler.players[curPlayer].name}'s {this.name} adds a random 1-Cost Upgrade to its hand."); }
public override void AftermathMe(GameHandler gameHandler, int curPlayer, int enemy) { List <Upgrade> legendaries = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].shop.GetAllUpgrades(), x => x.rarity == Rarity.Legendary); int index = GameHandler.randomGenerator.Next(0, legendaries.Count()); legendaries[index].extraUpgradeEffects.Add(new SwitchboardEffect()); legendaries[index].cardText += " Combo: Gain \'Spellburst: Gain Rush x4.\'"; gameHandler.players[curPlayer].aftermathMessages.Add($"Your Encoded Switchboard gives the {legendaries[index].name} in your shop \"Combo: Gain \'Spellburst: Gain Rush x4.\'\""); }
public override Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy) { List <Card> list = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].playHistory, VentureCo.Criteria); int refreshed = Math.Max(0, Math.Min(list.Count(), gameHandler.players[curPlayer].maxMana - gameHandler.players[curPlayer].curMana)); gameHandler.players[curPlayer].curMana += refreshed; return(Task.CompletedTask); }
public override Task OnPlay(GameHandler gameHandler, int curPlayer, int enemy) { int amountOfTickets = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].hand.GetAllCards(), x => x.name == this.name).Count(); gameHandler.players[curPlayer].creatureData.attack += amountOfTickets + 1; gameHandler.players[curPlayer].creatureData.health += amountOfTickets + 1; gameHandler.players[curPlayer].curMana += amountOfTickets + 1; return(base.OnPlay(gameHandler, curPlayer, enemy)); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { int amountOfTickets = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].hand.GetAllCards(), x => x.name == "Ironmoon Ticket").Count(); gameHandler.players[curPlayer].creatureData.attack += amountOfTickets + 1; gameHandler.players[curPlayer].creatureData.health += amountOfTickets + 1; gameHandler.players[curPlayer].curMana += amountOfTickets + 1; return(Task.CompletedTask); }
public override void AftermathMe(GameHandler gameHandler, int curPlayer, int enemy) { gameHandler.players[curPlayer].shop.Clear(); List <Upgrade> subList = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Common && x.Cost <= gameHandler.players[curPlayer].maxMana - 5); for (int i = 0; i < 6; i++) { Upgrade m = subList[GameHandler.randomGenerator.Next(0, subList.Count())]; gameHandler.players[curPlayer].shop.AddUpgrade(m); } }
public override async Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { List <Card> list = CardsFilter.FilterList <Card>(gameHandler.players[curPlayer].playHistory, x => x.name.Contains("Venture Co.")); var info = new ExtraEffectInfo.DamageInfo(extraInf.ctx, 3 * list.Count(), $"{gameHandler.players[curPlayer].name}'s Venture Co. Flamethrower deals {2 * list.Count()} damage, "); await gameHandler.players[enemy].TakeDamage(gameHandler, curPlayer, enemy, info); var SOCinfo = extraInf as ExtraEffectInfo.StartOfCombatInfo; SOCinfo.output.Add(info.output); }
public override void AftermathMe(GameHandler gameHandler, int curPlayer, int enemy) { List <Upgrade> list = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, this.Criteria); for (int i = 0; i < 3; i++) { int pos = GameHandler.randomGenerator.Next(0, list.Count()); gameHandler.players[curPlayer].shop.AddUpgrade(list[pos]); } gameHandler.players[curPlayer].aftermathMessages.Add( "Your Silver Shogun adds 3 random Rare Upgrades to your shop."); }
public override string GetInfo(GameHandler gameHandler, int player) { List <Card> list = CardsFilter.FilterList <Card>(gameHandler.players[player].playHistory, delegate(Card m) { return(m.name.Equals(this.name)); }); string ret = base.GetInfo(gameHandler, player); if (list.Count() > 0) { ret += " *(played before)*"; } return(ret); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { if (gameHandler.players[curPlayer].overloaded > 0 || gameHandler.players[curPlayer].creatureData.staticKeywords[StaticKeyword.Overload] > 0) { List <Upgrade> pool = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.creatureData.staticKeywords[StaticKeyword.Overload] > 0); for (int i = 0; i < 3; i++) { int x = GameHandler.randomGenerator.Next(0, pool.Count); gameHandler.players[curPlayer].hand.AddCard(pool[x]); } } return(Task.CompletedTask); }
public override void AftermathMe(GameHandler gameHandler, int curPlayer, int enemy) { List <Upgrade> list = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, this.Criteria); for (int i = 0; i < 3; i++) { int card = GameHandler.randomGenerator.Next(0, list.Count()); gameHandler.players[curPlayer].shop.AddUpgrade(list[card]); } gameHandler.players[curPlayer].aftermathMessages.Add( "Your Mecha'thun's Generator adds 3 other random Mecha'thun Cultists to your shop."); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { gameHandler.players[curPlayer].shop.Clear(); List <Upgrade> subList = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Common && x.Cost <= gameHandler.players[curPlayer].maxMana - 5); for (int i = 0; i < 6; i++) { Upgrade m = subList[GameHandler.randomGenerator.Next(0, subList.Count())]; gameHandler.players[curPlayer].shop.AddUpgrade(m); } return(Task.CompletedTask); }
public override Task Battlecry(GameHandler gameHandler, int curPlayer, int enemy) { if (gameHandler.players[curPlayer].overloaded > 0 || gameHandler.players[curPlayer].creatureData.staticKeywords[StaticKeyword.Overload] > 0) { List <Upgrade> pool = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.creatureData.staticKeywords[StaticKeyword.Overload] > 0); for (int i = 0; i < 3; i++) { int x = GameHandler.randomGenerator.Next(0, pool.Count); gameHandler.players[curPlayer].hand.AddCard(pool[x]); } } return(Task.CompletedTask); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { List <Upgrade> list = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Epic && x.Cost <= gameHandler.players[curPlayer].maxMana - 5); for (int i = 0; i < 2; i++) { int pos = GameHandler.randomGenerator.Next(0, list.Count()); gameHandler.players[curPlayer].shop.AddUpgrade(list[pos]); } gameHandler.players[curPlayer].aftermathMessages.Add( "Your Golden Gunner adds 2 random Epic Upgrades to your shop."); return(Task.CompletedTask); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { List <int> shopIndexes = gameHandler.players[curPlayer].shop.GetAllUpgradeIndexes(); List <Upgrade> legendaries = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.rarity == Rarity.Legendary); foreach (var index in shopIndexes) { if (gameHandler.players[curPlayer].shop.At(index).rarity == Rarity.Common) { gameHandler.players[curPlayer].shop.TransformUpgrade(index, legendaries[GameHandler.randomGenerator.Next(legendaries.Count)]); } } return(Task.CompletedTask); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { List <Upgrade> list = CardsFilter.FilterList <Upgrade>(gameHandler.players[curPlayer].pool.upgrades, x => x.name.Contains("Mecha'thun") && !x.name.Equals("Mecha'thun's Generator")); for (int i = 0; i < 3; i++) { int card = GameHandler.randomGenerator.Next(0, list.Count()); gameHandler.players[curPlayer].shop.AddUpgrade(list[card]); } gameHandler.players[curPlayer].aftermathMessages.Add( "Your Mecha'thun's Generator adds 3 other random Mecha'thun Cultists to your shop."); return(Task.CompletedTask); }
public override Task Call(Card caller, GameHandler gameHandler, ulong curPlayer, ulong enemy, ExtraEffectInfo extraInf) { var enemyShopIndexes = gameHandler.players[enemy].shop.GetAllUpgradeIndexes(); var commonIndexes = CardsFilter.FilterList <int>(enemyShopIndexes, x => gameHandler.players[enemy].shop.At(x).rarity == Rarity.Common); int stolen = commonIndexes[GameHandler.randomGenerator.Next(commonIndexes.Count)]; gameHandler.players[curPlayer].aftermathMessages.Add( $"Your Garbage Grabber stole a {gameHandler.players[enemy].shop.At(stolen).name} from your opponent's shop."); gameHandler.players[enemy].aftermathMessages.Add( $"{gameHandler.players[curPlayer].name}'s Garbage Grabber stole a Common Upgrade from your shop."); gameHandler.players[curPlayer].shop.AddUpgrade(gameHandler.players[enemy].shop.At(stolen)); gameHandler.players[enemy].shop.RemoveUpgrade(stolen); return(Task.CompletedTask); }
public override void AftermathEnemy(GameHandler gameHandler, int curPlayer, int enemy) { var enemyShopIndexes = gameHandler.players[enemy].shop.GetAllUpgradeIndexes(); var commonIndexes = CardsFilter.FilterList <int>(enemyShopIndexes, x => gameHandler.players[enemy].shop.At(x).rarity == Rarity.Common); int stolen = GameHandler.randomGenerator.Next(commonIndexes.Count); gameHandler.players[curPlayer].aftermathMessages.Add( $"Your Garbage Grabber stole a {gameHandler.players[enemy].shop.At(stolen).name} from your opponent's shop."); gameHandler.players[enemy].aftermathMessages.Add( $"{gameHandler.players[curPlayer].name}'s Garbage Grabber stole a Common Upgrade from your shop."); gameHandler.players[curPlayer].shop.AddUpgrade(gameHandler.players[enemy].shop.At(stolen)); gameHandler.players[enemy].shop.RemoveUpgrade(stolen); base.AftermathEnemy(gameHandler, curPlayer, enemy); }
public override void StartOfCombat(GameHandler gameHandler, int curPlayer, int enemy) { List <Card> list = CardsFilter.FilterList <Card>(gameHandler.players[enemy].playHistory, VentureCo.Criteria); if (list.Count() > 0) { int stolen = Math.Min(6, gameHandler.players[enemy].creatureData.attack - 1); gameHandler.players[enemy].creatureData.attack -= stolen; gameHandler.players[curPlayer].creatureData.attack += stolen; gameHandler.combatOutputCollector.preCombatHeader.Add( $"{gameHandler.players[curPlayer].name}'s Sponsorship Scrubbler steals {stolen} Attack from {gameHandler.players[enemy].name}, leaving it with {gameHandler.players[enemy].creatureData.attack} Attack and leaving {gameHandler.players[curPlayer].name} with {gameHandler.players[curPlayer].creatureData.attack} Attack."); } else { gameHandler.combatOutputCollector.preCombatHeader.Add( $"{gameHandler.players[curPlayer].name}'s Sponsorship Scrubbler fails to trigger."); } }
public async Task GameInfo(CommandContext ctx) { string msg = string.Empty; msg += $"Amount of Players: {BotInfoHandler.gameHandler.players.Count()}"; msg += $"\nStarting Lives: {BotInfoHandler.gameHandler.startingLives}"; if (BotInfoHandler.gameHandler.maxManaCap >= 0) { msg += $"\nMana Cap: {BotInfoHandler.gameHandler.maxManaCap}"; } else { msg += "\nMana Cap: None"; } if (BotInfoHandler.gameHandler.setsAmount <= 0) { msg += "\nSets Included: All"; } else { msg += $"\nSets Included: {BotInfoHandler.gameHandler.setsAmount}"; } msg += $"\n\nShop Rarity Breakdown:\n"; msg += $"C-R-E-L: "; msg += $"{BotInfoHandler.gameHandler.shopRarities.common}-"; msg += $"{BotInfoHandler.gameHandler.shopRarities.rare}-"; msg += $"{BotInfoHandler.gameHandler.shopRarities.epic}-"; msg += $"{BotInfoHandler.gameHandler.shopRarities.legendary}"; msg += $"\n\nUpgrade Pool Rarity Breakdown:\n"; msg += $"C-R-E-L: "; msg += $"{CardsFilter.FilterList<Upgrade>(BotInfoHandler.gameHandler.pool.upgrades, x => x.rarity == Rarity.Common).Count()}-"; msg += $"{CardsFilter.FilterList<Upgrade>(BotInfoHandler.gameHandler.pool.upgrades, x => x.rarity == Rarity.Rare).Count()}-"; msg += $"{CardsFilter.FilterList<Upgrade>(BotInfoHandler.gameHandler.pool.upgrades, x => x.rarity == Rarity.Epic).Count()}-"; msg += $"{CardsFilter.FilterList<Upgrade>(BotInfoHandler.gameHandler.pool.upgrades, x => x.rarity == Rarity.Legendary).Count()}"; await ctx.RespondAsync(embed : new DiscordEmbedBuilder { Title = "Game Info", Description = msg, Color = DiscordColor.Azure }).ConfigureAwait(false); }