public void DebugAttackArmorTest() { var DM = DungeonMaster.GetDebugDM(data); var attack = DebugData.GetDebugAttackAction(); var robby = DM.Characters[0]; var zach = DM.Characters[1]; zach.Conditions.Add(new Condition("Dodging", 3)); var outcome = new Outcome(); DM.Activate(robby); attack.ResolveAction(DM, robby, null, zach, "", outcome); //not adjacent so nothing happens Assert.IsTrue(zach.Vitality.Value == zach.Vitality.Max); zach.Pos = robby.Pos + Map.DirectionToPosition[Map.Direction.E]; Deck.SetFate(new List <string>() { "Glancing Blow" }); attack.ResolveAction(DM, robby, null, zach, "", outcome); Assert.IsTrue(zach.Vitality.Value < zach.Vitality.Max); Assert.AreEqual(zach.Vitality.Max - robby.Strength.Value - robby.WeaponDamage + zach.ArmorProtection, zach.Vitality.Value); }
public void DebugAttackDeckTest() { var DM = DungeonMaster.GetDebugDM(data); var attack = DebugData.GetDebugAttackAction(); var robby = DM.Characters[0]; var zach = DM.Characters[1]; var deck = attack.GetDeckFor(DM, robby, null, zach); Assert.AreEqual(robby.Profeciency.Value + robby.WeaponAdvantage - zach.ArmorCoverage, deck.Cards.Count(c => c.TypeOfCard == Card.CardType.Hit)); Assert.AreEqual(zach.ArmorCoverage, deck.Cards.Count(c => c.TypeOfCard == Card.CardType.Armor)); Assert.AreEqual(2, deck.Cards.Count(c => c.TypeOfCard == Card.CardType.Miss)); int dodgeCards = 3; zach.Conditions.Add(new Condition("Dodging", dodgeCards)); deck = attack.GetDeckFor(DM, robby, null, zach); Assert.AreEqual(robby.Profeciency.Value + robby.WeaponAdvantage - zach.ArmorCoverage, deck.Cards.Count(c => c.TypeOfCard == Card.CardType.Hit)); Assert.AreEqual(zach.ArmorCoverage, deck.Cards.Count(c => c.TypeOfCard == Card.CardType.Armor)); Assert.AreEqual(2 + dodgeCards, deck.Cards.Count(c => c.TypeOfCard == Card.CardType.Miss)); }
public void ActionSerializationTest() { var action = DebugData.GetDebugAttackAction(); string json = JsonConvert.SerializeObject(action); var action2 = JsonConvert.DeserializeObject <Action>(json); Assert.AreEqual(action.Name, action2.Name); Assert.AreEqual(action.Cost.Count, action2.Cost.Count); Assert.AreEqual(action.DeckRecipe.Count, action2.DeckRecipe.Count); }
public void DebugAttackDodgeTest() { var DM = DungeonMaster.GetDebugDM(data); var attack = DebugData.GetDebugAttackAction(); var robby = DM.Characters[0]; var zach = DM.Characters[1]; int dodgeCards = 3; zach.Conditions.Add(new Condition("Dodging", dodgeCards)); DM.Activate(robby); zach.Pos = robby.Pos + Map.DirectionToPosition[Map.Direction.E]; Deck.SetFate(new List <string>() { "Dodge" }); var outcome = new Outcome(); attack.ResolveAction(DM, robby, null, zach, "", outcome); Assert.IsTrue(zach.Vitality.Value == zach.Vitality.Max); Assert.AreEqual(dodgeCards - 1, zach.Conditions.First(c => c.Name == "Dodging").Value); }