public void OutOfGoodStuffTest() { Enemy e = new Enemy("", 'l', 100); new Pack(0).Add(e); p.inventory = new byte[] { 0, 0, 0 }; MagicScroll s = new MagicScroll(random, null); s.Duration = 0; Assert.IsFalse(p.UseItem(s, null), "Not Using"); p.Combat(e); Assert.AreEqual(e.CurrentHP, e.MaxHP - Player.strength, "No multiplier when not used"); p.UpdateItems(); p.Combat(e); Assert.AreEqual(e.CurrentHP, e.MaxHP - 2 * Player.strength, "No neg multiplier when not used"); }
public void MagicScrollUseTest() { GameManager g = new GameManager(false); MagicScroll m = new MagicScroll(new NotSoRandom(1.0), g); Dungeon dungeon = g.dungeon; int size = dungeon.nodes.Count; m.Use(g.GetPlayer, dungeon); List <Node> path = dungeon.ShortestPath(dungeon.PlayerNode, dungeon.nodes[dungeon.nodes.Count - 1]); Assert.IsNotNull(path); Assert.IsTrue(size > dungeon.nodes.Count); List <Node> nodes = new List <Node>(); nodes.Add(new Node(random, 0, 15, true)); dungeon = new Dungeon(random, nodes, 1, 15); g.InitRoom(dungeon.nodes[0]); m.Use(g.GetPlayer, dungeon); Assert.IsTrue(dungeon.nodes.Count == 1); }
public void CombatItemEffectTest() { Pack enemies = new Pack(4); int initHp = 10 * Player.strength; for (int i = 0; i < 4; i++) { enemies.Add(new Enemy("Test", 't', initHp)); } p.Combat(enemies[0]); p.inventory = new byte[] { 2, 2, 2 }; Assert.AreEqual(initHp - Player.strength, enemies[0].CurrentHP, "base"); for (int i = 1; i < 3; i++) { Assert.AreEqual(100, enemies[i].CurrentHP, "base"); } DungeonCreator dc = new DungeonCreator(random); Dungeon dungeon = dc.CreateDungeon(1, 0, 10); TimeCrystal crystal = new TimeCrystal(); crystal.Duration = 1; dungeon.nodes[1].Player = p; dungeon.nodes[0].AddPack(enemies); p.UseItem(crystal, dungeon); int orderCount = 0; foreach (Node n in dungeon.nodes) { foreach (Pack thisVerySpecialSuperPack in n.PackList) { if (thisVerySpecialSuperPack.order == Order.HuntOrder) { orderCount++; } } } Assert.AreEqual(orderCount, 1); p.Combat(enemies[1]); Assert.AreEqual(initHp - 2 * Player.strength, enemies[0].CurrentHP, "Crystal"); for (int i = 1; i < 3; i++) { Assert.AreEqual(initHp - Player.strength, enemies[i].CurrentHP, "Crystal"); } MagicScroll scroll = new MagicScroll(new NotSoRandom(0.0), null); scroll.Duration = 2; p.UseItem(scroll, null); p.Combat(enemies[2]); Assert.AreEqual(initHp - 4 * Player.strength, enemies[0].CurrentHP, "Scroll and Crystal"); for (int i = 1; i < 3; i++) { Assert.AreEqual(initHp - 3 * Player.strength, enemies[i].CurrentHP, "Scroll and Crystal"); } p.UpdateItems(); p.Combat(enemies[3]); Assert.AreEqual(initHp - 6 * Player.strength, enemies[0].CurrentHP, "Scroll and Crystal last time"); for (int i = 1; i < 3; i++) { Assert.AreEqual(initHp - 5 * Player.strength, enemies[i].CurrentHP, "Scroll and Crystal last time"); } p.UpdateItems(); p.Combat(enemies[0]); Assert.AreEqual(initHp - 8 * Player.strength, enemies[0].CurrentHP, "Scroll and no more Crystal"); for (int i = 1; i < 3; i++) { Assert.AreEqual(initHp - 5 * Player.strength, enemies[i].CurrentHP, "Scroll and no more Crystal"); } MagicScroll scroll2 = new MagicScroll(new NotSoRandom(0.0), null); scroll2.Duration = 0; p.UseItem(scroll2, null); p.Combat(enemies[1]); Assert.AreEqual(initHp - 8 * Player.strength, enemies[0].CurrentHP, "Back to Normal"); Assert.AreEqual(initHp - 9 * Player.strength, enemies[1].CurrentHP, "Back to Normal"); for (int i = 2; i < 3; i++) { Assert.AreEqual(initHp - 5 * Player.strength, enemies[i].CurrentHP, "Back to Normal"); } p.UpdateItems(); p.Combat(enemies[0]); Assert.AreEqual(initHp - 9 * Player.strength, enemies[0].CurrentHP, "Back to Normal"); Assert.AreEqual(initHp - 9 * Player.strength, enemies[1].CurrentHP, "Back to Normal"); for (int i = 2; i < 3; i++) { Assert.AreEqual(initHp - 5 * Player.strength, enemies[i].CurrentHP, "Back to Normal"); } }