Example #1
0
        public void GameSetup()
        {
            scoreboard = new ScoreboardRound();
            foreach (Player player in playerList)
            {
                scoreboard.AddPlayer(player);
            }
            Random      rand = new Random();
            int         r    = rand.Next(100);
            MapDirector mapDirector;

            if (r < 30)
            {
                mapDirector = new MapDirector(new ConcreteMapBuilder());
            }
            else if (r < 60)
            {
                mapDirector = new MapDirector(new DefaultMapBuilder());
            }
            else
            {
                mapDirector = new MapDirector(new TeleporterMapBuilder());
            }

            Map mapFromCache = Server.GetMapByName(mapDirector.getMap().mapName);

            //If the map was already generated, clone it
            //If the map was not generated before, generate it and put a copy of it in cache
            if (mapFromCache != null)
            {
                map = new MapAdapter(mapFromCache);
            }
            else
            {
                mapDirector.constructMap();
                Map temp = mapDirector.getMap();
                map = new MapAdapter(temp);
                Server.AddMap(temp);
            }
            Server.current = map.GetMapFacade();
        }