public void AttackTest() { var playerCards = new Stack<Card>(); var playerTowerCard = new Card(0, 14, 0) {Name = "Zodiac", CardType = CardType.Tower}; playerCards.Push(playerTowerCard); Deck playerDeck = new Deck(true, playerCards); playerDeck.Commander = new Commander(0, 20, 0); var enemyCards = new Stack<Card>(); var towerAttackCard = new Card(1, 17, 0) { Name = "Wham Tower Attacker" }; towerAttackCard.Skills.Add(new AttackSkill() { Power = 2, Repeat = 0, SkillArea = SkillArea.Single, SkillType = SkillType.Siege }); enemyCards.Push(towerAttackCard); Deck enemyDeck = new Deck(false, enemyCards); enemyDeck.Commander = new Commander(0, 20, 0); playerDeck.DrawNewCard(); enemyDeck.DrawNewCard(); towerAttackCard.Skills.First().Attack(enemyDeck, playerDeck, towerAttackCard); Assert.AreEqual(12, playerTowerCard.Health); }
private static Deck PlayerTurn(Deck currentPlayerDeck, Deck currentEnemyDeck) { // Draw new card currentPlayerDeck.DrawNewCard(); // Commander turn // Commander doesn't have Basic attack, however does skill attacks // TODO: Commander turn // Play Deck foreach (var card in currentPlayerDeck.PlayedCards) { if (card.CanAttack()) { if (card.CardType == CardType.Tower) { // No Basic attack, only skills // TODO: Tower attack } else { // Do Skill Attack first foreach (var skill in card.Skills) { skill.Attack(currentPlayerDeck, currentEnemyDeck, card); } // Play Basic Attack Deck deck = card.BasicAttack(currentPlayerDeck, currentEnemyDeck); // Check if there is winner if (deck != null) return deck; } } } return null; }