public void DealFirstCards() { for (int i = 0; i < 2; i++) { foreach (Player player in Players) { player.Hand.Push(GameDeck.DrawCard()); } } }
public void ExecuteAbilities(Card playedCard) { foreach (CardAbility ability in playedCard.Abilities) { if (ability.Type == AbilityType.Damage) { foreach (Player player in Players) { if (player.ActivePlayer == false) { player.LifePoints -= ability.Value; } } } if (ability.Type == AbilityType.DrawCard) { foreach (Player player in Players) { if (player.ActivePlayer == true) { for (int i = 0; i < ability.Value; i++) { player.CardsInHand.Add(GameDeck.DrawCard()); } } } } if (ability.Type == AbilityType.LifeGain) { foreach (Player player in Players) { if (player.ActivePlayer == true) { player.LifePoints += ability.Value; } } } } }
public void GameLoop() { while (true) { foreach (Player activePlayer in Players) { activePlayer.ActivePlayer = true; activePlayer.CardsInHand.Add(GameDeck.DrawCard()); ConsoleKey menuChoice = ConsoleKey.A; while (menuChoice != ConsoleKey.D3) { _print.Battlefield(this); _print.PlayChoices(); menuChoice = Console.ReadKey().Key; switch (menuChoice) { case ConsoleKey.D1: Card playedCard = activePlayer.PlayCard(); if (playedCard.Abilities.Count() > 0) { ExecuteAbilities(playedCard); } break; case ConsoleKey.D2: int attackingCreatureIndex = activePlayer.SelectAttacker(); ExecuteFight(attackingCreatureIndex); break; default: break; } } activePlayer.Resources++; activePlayer.ActivePlayer = false; } } }