source: 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/World/LevelForest.cs @ 4671

Revision 4671, 6.8 KB checked in by dezhidki, 7 years ago (diff)

Talletus.

Line 
1using CastleMaster.Entities.TileEntities;
2using CastleMaster.World.Tiles;
3using Microsoft.Xna.Framework.Graphics;
4using CastleMaster.Entities;
5using CastleMaster.Units;
6using CastleMaster.Units.Mobs;
7using Viewport = CastleMaster.Graphics.Viewport;
8using Microsoft.Xna.Framework;
9using CastleMaster.Players;
10
11namespace CastleMaster.World
12{
13    public class LevelForest : Level
14    {
15        private int TILE_FLOOR, TILE_WATER, TILE_FLOOR_SOLID, TILE_KING1_HINT, TILE_KING1_HINT2, TILE_STORE1_HINT, TILE_KING2_HINT, TILE_KING2_HINT2, TILE_STORE2_HINT;
16       
17        public LevelForest(Texture2D tileMap)
18            : base(tileMap)
19        {
20        }
21
22        protected override void InitTiles()
23        {
24            TILE_FLOOR = new TileFloor(this).ID;
25            TILE_WATER = new TileWater(this).ID;
26            TILE_FLOOR_SOLID = new TileFloor(this, true).ID;
27            TILE_KING1_HINT = new TileRenderHint(this, Players[0].King, true, false).ID;
28            TILE_KING1_HINT2 = new TileRenderHint(this, Players[0].King, false, false).ID;
29            TILE_STORE1_HINT = new TileRenderHint(this, Players[0].Store, true, true).ID;
30            TILE_KING2_HINT = new TileRenderHint(this, Players[1].King, true, false).ID;
31            TILE_STORE2_HINT = new TileRenderHint(this, Players[1].Store, true, true).ID;
32            TILE_KING2_HINT2 = new TileRenderHint(this, Players[1].King, false, false).ID;
33        }
34
35        public override void InitLevel()
36        {
37            base.InitLevel();
38
39            LevelBuilder lb = new LevelBuilder(this, tileMap);
40
41            lb.AddTile(0xFF707070, TILE_KING1_HINT);
42            lb.AddTile(0xFF606060, TILE_KING1_HINT2);
43            lb.AddTile(0xFF505050, TILE_STORE1_HINT);
44
45            lb.AddTile(0xFF707071, TILE_KING2_HINT);
46            lb.AddTile(0xFF606061, TILE_KING2_HINT2);
47            lb.AddTile(0xFF505051, TILE_STORE2_HINT);
48
49            lb.AddTile(0xFF808080, TILE_FLOOR_SOLID);
50            lb.AddTile(0xFF404040, TILE_FLOOR);
51            lb.AddTile(0xFF0094FF, TILE_WATER);
52            lb.AddTile(0xFF303030, TILE_FLOOR, 2);
53
54            lb.AddTile(0xFF00FF00, TILE_FLOOR);
55            lb.AddTile(0xFF00FF01, TILE_FLOOR);
56            lb.AddTile(0xFF00FF10, TILE_FLOOR);
57            lb.AddTile(0xFF00FF20, TILE_FLOOR);
58            lb.AddTile(0xFF00FF30, TILE_FLOOR);
59            lb.AddTile(0xFF00FF40, TILE_FLOOR);
60            lb.AddTile(0xFF00FF11, TILE_FLOOR);
61            lb.AddTile(0xFF00FF21, TILE_FLOOR);
62            lb.AddTile(0xFF00FF31, TILE_FLOOR);
63            lb.AddTile(0xFF00FF50, TILE_FLOOR);
64
65            lb.AddTile(0xFF00FFFF, TILE_FLOOR);
66            lb.AddTile(0xFF0000FF, TILE_FLOOR);
67            lb.AddTile(0xFFFFD800, TILE_FLOOR);
68            lb.AddTile(0xFFFF0000, TILE_FLOOR);
69            lb.AddTile(0xFF21007F, TILE_FLOOR);
70            lb.AddEntity(0xFFE55B00, typeof(TileEntityBlock), 8.0F, 8.0F, this, 4, 1);
71            lb.AddEntity(0xFF00B200, typeof(TileEntityBlock), 8.0F, 8.0F, this, 2, 2);
72            lb.AddEntity(0xFF00CC00, typeof(TileEntityBlock), 8.0F, 8.0F, this, 1, 2);
73            lb.AddEntity(0xFF00E500, typeof(TileEntityBlock), 8.0F, 8.0F, this, 0, 2);
74            lb.AddEntity(0xFF0000FF, typeof(MobWarrior), 8.0F, 8.0F, this, Players[0]);
75            lb.AddEntity(0xFFFF0000, typeof(MobWoodcutter), 8.0F, 8.0F, this, Players[0]);
76            lb.AddEntity(0xFFFFD800, typeof(MobRanger), 8.0F, 8.0F, this, Players[0]);
77            lb.AddEntity(0xFF21007F, typeof(MobWarrior), 8.0F, 8.0F, this, Players[1]);
78            lb.AddEntity(0xFF00FFFF, typeof(MobWoodcutter), 8.0F, 8.0F, this, Players[1]);
79
80            lb.AddCustom(0xFF00FF00, delegate(Level level, int xTile, int zTile)
81            {
82                Players[1].HomePoint = new Point(xTile, zTile);
83            });
84
85            lb.AddCustom(0xFF00FF20, delegate(Level level, int xTile, int zTile)
86            {
87                Players[1].WoodcutterSpawnPoint = new Point(xTile, zTile);
88            });
89
90            lb.AddCustom(0xFF00FF30, delegate(Level level, int xTile, int zTile)
91            {
92                Players[1].WarriorSpawnPoint = new Point(xTile, zTile);
93            });
94
95            lb.AddCustom(0xFF00FF40, delegate(Level level, int xTile, int zTile)
96            {
97                Players[1].RangerSpawnPoint = new Point(xTile, zTile);
98            });
99
100            lb.AddCustom(0xFF00FF10, delegate(Level level, int xTile, int zTile)
101            {
102                ((PlayerAI)Players[1]).ForestPoint = new Point(xTile, zTile);
103            });
104
105            lb.AddCustom(0xFF00FF50, delegate(Level level, int xTile, int zTile)
106            {
107                ((PlayerAI)Players[1]).DefencePoint = new Point(xTile, zTile);
108            });
109
110            lb.AddCustom(0xFF00FF01, delegate(Level level, int xTile, int zTile)
111            {
112                Players[0].HomePoint = new Point(xTile, zTile);
113            });
114
115            lb.AddCustom(0xFF00FF11, delegate(Level level, int xTile, int zTile)
116            {
117                Players[0].WoodcutterSpawnPoint = new Point(xTile, zTile);
118            });
119
120            lb.AddCustom(0xFF00FF21, delegate(Level level, int xTile, int zTile)
121            {
122                Players[0].WarriorSpawnPoint = new Point(xTile, zTile);
123            });
124
125            lb.AddCustom(0xFF00FF31, delegate(Level level, int xTile, int zTile)
126            {
127                Players[0].RangerSpawnPoint = new Point(xTile, zTile);
128            });
129
130            lb.AddCustom(0xFFFF6A03, delegate(Level level, int xTile, int zTile)
131            {
132                level.AddEntity(Players[1].King, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
133            });
134            lb.AddCustom(0xFFFF6A02, delegate(Level level, int xTile, int zTile)
135            {
136                level.AddEntity(Players[1].Store, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
137            });
138
139            lb.AddCustom(0xFFFF6A00, delegate(Level level, int xTile, int zTile)
140            {
141                level.AddEntity(Players[0].King, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
142            });
143            lb.AddCustom(0xFFFF6A01, delegate(Level level, int xTile, int zTile)
144            {
145                level.AddEntity(Players[0].Store, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
146            });
147
148            lb.AddCustom(0xFF7F3300, delegate(Level level, int xTile, int zTile)
149            {
150                level.AddEntity(new TileEntityTree(level, Game.Random.Next(0, 5), Game.Random.Next(3, 9)), xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
151            });
152
153            lb.AddTile(0xFF7F3300, TILE_FLOOR);
154
155            lb.BuildLevel();
156        }
157    }
158}
Note: See TracBrowser for help on using the repository browser.