public void MStest_follow_shortest_path() { Dungeon d = new Dungeon(5); Pack p = new Pack("pid", 3); p.dungeon = d; p.location = d.zone[1][0]; d.zone[1][0].packs.Add(p); p.moveTowards(d.zone[1][2]); Assert.IsTrue(p.location == d.zone[1][2]); }
public void PackTurn() { //bridge rule List <Pack> bridge_keepers = new List <Pack>(); foreach (Bridge b in dungeon.bridges) { uint cap = (b.Capacity(dungeon)) / 2; if (cap < b.CountCreatures()) { //find dichtsbijzijnde pack Pack a = dungeon.find_closest_pack(b); if (a != null && !a.alert) { bridge_keepers.Add(a); a.moveTowards(b, player.location); } } } //turns off all packs. foreach (Pack p in dungeon.alivePacks.ToList()) { int l = RandomGenerator.rnd.Next(100); if (p.alert && !p.location.contested) { Console.WriteLine("Pack " + p.id + " is alert and moves from " + p.location.id + " towards " + player.location.id); p.moveTowards(player.location, player.location); } //50pct kans dat wil pack chillen else if (l > 50 && !bridge_keepers.Contains(p)) { p.move(p.getRandomValidNeighbour(dungeon), player.location); } //tijd om te knokken? Node current_location = p.location; if (p.members.Count > 0 && current_location == player.location) { //vechtennnn!!! Console.WriteLine("A wild pack appeared!"); current_location.contested = true; player.alert_packs(current_location); } } }
public void MSTest_pack_moveTowards() { Pack pack = new Pack("Highlander", 1); Dungeon dungeon = new Dungeon(2, 2); Node node = new Node("node1"); Node node2 = new Node("node2"); Node node3 = new Node("node3"); Node node4 = new Node("node4"); Node node5 = new Node("node5"); Node node6 = new Node("node6"); node.connect(node2); node2.connect(node3); node3.connect(node4); node.connect(node5); node5.connect(node2); node6.connect(node); pack.location = node; pack.dungeon = dungeon; node.packs.Add(pack); pack.moveTowards(node4); Assert.AreEqual(pack.location, node2); }