Example #1
0
        public void DistributeHuts(Random rng)
        {
            // Distribute Initial Huts
            List <Clan> avail = Clans.ToList <Clan>();

            for (int gid = 0; gid < 12; gid++)
            {
                avail = Clans.ToList <Clan>();
                for (int i = 0; i < 5; i++)
                {
                    int rid    = gid * 5 + i;
                    int chosen = rng.Next(avail.Count());
                    Regions[rid].AddHut(avail[chosen]);
                    avail.RemoveAt(chosen);
                }
            }
        }
Example #2
0
        public void StartGame(Random rng)
        {
            DistributeHuts(rng);
            // Shuffle Player Order
            Names = Shuffler.Shuffle <string>(Names, rng).ToList <string>();
            for (int i = 0; i < Names.Count; i++)
            {
                Players.Add(new Player(this, i, Names[i]));
            }
            // Assign 1 clan to each player
            List <Clan> avail = Clans.ToList <Clan>();

            foreach (Player p in Players)
            {
                int chosen = rng.Next(avail.Count());
                p.HiddenClan = avail[chosen];
                avail.RemoveAt(chosen);
            }
            CurrentPlayer = Players.Last();
            NewTurn();
        }