Exemplo n.º 1
0
        private void btnReset_Click(object sender, EventArgs e)
        {
            tm.Objects = new List<MapObject>();
            newObject = null;
            newObjects = new List<MapObject>();

            playerDoc.XPathSelectElements("Players/Player").Remove();
            playerDoc.Save(Player.SavePath);

            tileDoc.XPathSelectElements("Tiles/Tile").Remove();
            tileDoc.Save(TerrainGridHex.SavePath);

            players = new List<Player>();

            String password = Player.EncryptPassword("a");

            players.Add(new Player("Red Player", 1, "Ogres", password, true, 0, 0));
            players.Add(new Player("Blue Player", 2, "High Elves", password, true, 0, 0));

            List<Resource> res1 = new List<Resource>() { new Resource("Food", 60), new Resource("Magic", 1) };
            List<Resource> res2 = new List<Resource>() { new Resource("Gold", 50), new Resource("Magic", 1) };

            Army a1, a2, a3, a4;

            a1 = new Army(25, 5, "Army 1", "Builder", 4, Pens.Red, 0, "Red Player", true, @"Races\Ogres\builder.png", null);
            tm.AddObject(a1);

            a2 = new Army(8, 8, "Army 2", "Flying", 10, Pens.Blue, 2000, "Blue Player", false, @"Races\HighElves\flying.png", res2);
            tm.AddObject(a2);

            a3 = new Army(14, 3, "Army 3", "Monstrous", 6, Pens.Red, 1500, "Red Player", false, @"Races\Ogres\monstrous.png", res1);
            tm.AddObject(a3);

            a4 = new Army(3, 14, "Army 4", "Builder", 5, Pens.Blue, 0, "Blue Player", true, @"Races\HighElves\builder.png", null);
            tm.AddObject(a4);

            players.ElementAt(0).AddArmy(a1);
            players.ElementAt(1).AddArmy(a2);
            players.ElementAt(0).AddArmy(a3);
            players.ElementAt(1).AddArmy(a4);

            Town t1 = new Town("Town 1", 3, 12, @"Terrain\Possible Buildings or Encampments\human-tile.png", "Red Player");
            t1.Upgrade(10);
            t1.LevelChanged = false;

            tm.AddObject(t1);
            players.ElementAt(0).AddTown(t1);

            Town t2 = new Town("Town 2", 8, 12, @"Terrain\Possible Buildings or Encampments\human-tile.png", "Blue Player");
            t2.Upgrade(5);
            t2.LevelChanged = false;

            tm.AddObject(t2);
            players.ElementAt(1).AddTown(t2);

            Watchtower wt1 = new Watchtower("Tower 1", 5, 7, "Blue Player", @"Terrain\Possible Buildings or Encampments\elven-tile.png");
            tm.AddObject(wt1);
            players.ElementAt(1).AddWatchtower(wt1);

            Castle c1 = new Castle("Castle 1", 20, 13, @"Terrain\Possible Buildings or Encampments\keep-tile.png", "Blue Player");
            c1.Upgrade(6);
            tm.AddObject(c1);
            players.ElementAt(1).AddCastle(c1);

            hexgridPanel1.MapBuffer = null;
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(5, 7)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(6, 6)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(7, 6)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(8, 5)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(9, 5)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(10, 4)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(11, 4)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(12, 3)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(13, 3)]).SpecialType = "Road";
            ((TerrainGridHex)tm.BoardHexes[HexCoords.NewUserCoords(14, 3)]).SpecialType = "Road";

            turn = new Turn(players);

            tm.SelectedArmy = null;
            clickCoords = HexCoords.NewUserCoords(-1, -1);

            Refresh();

            playerDoc = XDocument.Load(Player.SavePath);
            playerDoc.Save(Player.UndoPath);

            UpdateResources();
            UpdateSummary();
            UpdateLos();
        }