Esempio n. 1
0
        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]);
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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);
        }