private void RunInvalidAttackPlayerTest(int sourceId) { int target = -1; AttackAction action = new AttackAction(sourceId, target); bool result = action.Execute(player1, player2); Assert.IsTrue(result); Assert.AreEqual(DEFAULT_MY_HEALTH, player1.Data.Health); Assert.AreEqual(DEFAULT_OPP_HEALTH, player2.Data.Health); }
private void RunAttackCreatureTest(int sourceId, int targetId) { CombatCreature attackCreature = player1.Table[sourceId]; attackCreature.ResetAttacks(); CombatCreature defenseCreature = player2.Table[targetId]; int expectedAttCreatureAttack = !defenseCreature.IsWard ? attackCreature.Attack : 0; int expectedDefCreatureAttack = !attackCreature.IsWard ? defenseCreature.Attack : 0; int expectedMyHealthChange = attackCreature.IsDrain ? expectedAttCreatureAttack : 0; int expectedOppHealthChange = attackCreature.IsTrample ? Math.Max(expectedAttCreatureAttack - defenseCreature.Defense, 0) : 0; int expectedMyHealth = player1.Data.Health + expectedMyHealthChange; int expectedOppHealth = player2.Data.Health - expectedOppHealthChange; int expectedMyCardDefense = attackCreature.Defense - expectedDefCreatureAttack; int expectedOppCardDefense = defenseCreature.Defense - expectedAttCreatureAttack; bool expectedMyShouldDie = defenseCreature.IsLethal && expectedDefCreatureAttack > 0; bool expectedOppShouldDie = attackCreature.IsLethal && expectedAttCreatureAttack > 0; bool expectedMyIsDead = expectedMyShouldDie || expectedMyCardDefense <= 0; bool expectedOppIsDead = expectedOppShouldDie || expectedOppCardDefense <= 0; int expectedMyTableCount = expectedMyIsDead ? player1.Table.Count - 1 : player1.Table.Count; int expectedOppTableCount = expectedOppIsDead ? player2.Table.Count - 1 : player2.Table.Count; AttackAction action = new AttackAction(sourceId, targetId); bool result = action.Execute(player1, player2); Assert.IsTrue(result); Assert.AreEqual(expectedMyHealth, player1.Data.Health); Assert.AreEqual(expectedOppHealth, player2.Data.Health); Assert.AreEqual(expectedMyCardDefense, attackCreature.Defense); Assert.AreEqual(expectedOppCardDefense, defenseCreature.Defense); Assert.AreEqual(expectedMyShouldDie, attackCreature.ShouldDie); Assert.AreEqual(expectedOppShouldDie, defenseCreature.ShouldDie); Assert.AreEqual(expectedMyIsDead, attackCreature.IsDead); Assert.AreEqual(expectedOppIsDead, defenseCreature.IsDead); Assert.IsFalse(attackCreature.IsWard); Assert.IsFalse(defenseCreature.IsWard); Assert.IsFalse(attackCreature.CanAttack); Assert.AreEqual(expectedMyTableCount, player1.Table.Count); Assert.AreEqual(expectedOppTableCount, player2.Table.Count); }
private void RunAttackPlayerTest(int sourceId) { int target = -1; CombatCreature attackCreature = player1.Table[sourceId]; attackCreature.ResetAttacks(); int expectedMyHealth = player1.Data.Health + (attackCreature.IsDrain ? attackCreature.Attack : 0); int expectedOppHealth = player2.Data.Health - attackCreature.Attack; AttackAction action = new AttackAction(sourceId, target); bool result = action.Execute(player1, player2); Assert.IsTrue(result); Assert.AreEqual(expectedMyHealth, player1.Data.Health); Assert.AreEqual(expectedOppHealth, player2.Data.Health); Assert.IsFalse(attackCreature.CanAttack); }
private void RunInvalidAttackCreatureTest(int sourceId, int targetId) { player1.Table.TryGetValue(sourceId, out CombatCreature attackCreature); player2.Table.TryGetValue(sourceId, out CombatCreature defenseCreature); AttackAction action = new AttackAction(sourceId, targetId); bool result = action.Execute(player1, player2); Assert.IsTrue(result); Assert.AreEqual(DEFAULT_MY_HEALTH, player1.Data.Health); Assert.AreEqual(DEFAULT_OPP_HEALTH, player2.Data.Health); if (attackCreature != null) { CardManagerTest.AssertCards(manager.AllPossibleCards[attackCreature.Card.Number - 1], attackCreature.Card); } if (defenseCreature != null) { CardManagerTest.AssertCards(manager.AllPossibleCards[defenseCreature.Card.Number - 1], defenseCreature.Card); } }