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

Revision 4694, 7.6 KB checked in by dezhidki, 7 years ago (diff)

Guit lisätty, AIn viimestely.

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, TILE_ARMORY1_HINT, TILE_ARMORY2_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            TILE_ARMORY1_HINT = new TileRenderHint(this, Players[0].Armory, true, true).ID;
34            TILE_ARMORY2_HINT = new TileRenderHint(this, Players[1].Armory, true, true).ID;
35        }
36
37        public override void InitLevel()
38        {
39            base.InitLevel();
40
41            LevelBuilder lb = new LevelBuilder(this, tileMap);
42
43            lb.AddTile(0xFF707070, TILE_KING1_HINT);
44            lb.AddTile(0xFF606060, TILE_KING1_HINT2);
45            lb.AddTile(0xFF505050, TILE_STORE1_HINT);
46            lb.AddTile(0xFF50505B, TILE_ARMORY1_HINT);
47
48            lb.AddTile(0xFF707071, TILE_KING2_HINT);
49            lb.AddTile(0xFF606061, TILE_KING2_HINT2);
50            lb.AddTile(0xFF505051, TILE_STORE2_HINT);
51            lb.AddTile(0xFF60606B, TILE_ARMORY2_HINT);
52
53            lb.AddTile(0xFF808080, TILE_FLOOR_SOLID);
54            lb.AddTile(0xFF404040, TILE_FLOOR);
55            lb.AddTile(0xFF0094FF, TILE_WATER);
56            lb.AddTile(0xFF303030, TILE_FLOOR, 2);
57
58            lb.AddTile(0xFF00FF00, TILE_FLOOR);
59            lb.AddTile(0xFF00FF01, TILE_FLOOR);
60            lb.AddTile(0xFF00FF10, TILE_FLOOR);
61            lb.AddTile(0xFF00FF20, TILE_FLOOR);
62            lb.AddTile(0xFF00FF30, TILE_FLOOR);
63            lb.AddTile(0xFF00FF40, TILE_FLOOR);
64            lb.AddTile(0xFF00FF11, TILE_FLOOR);
65            lb.AddTile(0xFF00FF21, TILE_FLOOR);
66            lb.AddTile(0xFF00FF31, TILE_FLOOR);
67            lb.AddTile(0xFF00FF50, TILE_FLOOR);
68
69            lb.AddTile(0xFF00FFFF, TILE_FLOOR);
70            lb.AddTile(0xFF0000FF, TILE_FLOOR);
71            lb.AddTile(0xFFFFD800, TILE_FLOOR);
72            lb.AddTile(0xFFFF0000, TILE_FLOOR);
73            lb.AddTile(0xFF21007F, TILE_FLOOR);
74            lb.AddEntity(0xFFE55B00, typeof(TileEntityBlock), 8.0F, 8.0F, this, 4, 1);
75            lb.AddEntity(0xFF00B200, typeof(TileEntityBlock), 8.0F, 8.0F, this, 2, 2);
76            lb.AddEntity(0xFF00CC00, typeof(TileEntityBlock), 8.0F, 8.0F, this, 1, 2);
77            lb.AddEntity(0xFF00E500, typeof(TileEntityBlock), 8.0F, 8.0F, this, 0, 2);
78            lb.AddEntity(0xFF0000FF, typeof(MobWarrior), 8.0F, 8.0F, this, Players[0]);
79            lb.AddEntity(0xFFFF0000, typeof(MobWoodcutter), 8.0F, 8.0F, this, Players[0]);
80            lb.AddEntity(0xFFFFD800, typeof(MobRanger), 8.0F, 8.0F, this, Players[0]);
81            lb.AddEntity(0xFF21007F, typeof(MobWarrior), 8.0F, 8.0F, this, Players[1]);
82            lb.AddEntity(0xFF00FFFF, typeof(MobWoodcutter), 8.0F, 8.0F, this, Players[1]);
83
84            lb.AddCustom(0xFF00FF00, delegate(Level level, int xTile, int zTile)
85            {
86                Players[1].HomePoint = new Point(xTile, zTile);
87            });
88
89            lb.AddCustom(0xFF00FF20, delegate(Level level, int xTile, int zTile)
90            {
91                Players[1].SpawnPoints[Player.SPAWN_WOODCUTTER] = new Point(xTile, zTile);
92            });
93
94            lb.AddCustom(0xFF00FF30, delegate(Level level, int xTile, int zTile)
95            {
96                Players[1].SpawnPoints[Player.SPAWN_WARRIOR] = new Point(xTile, zTile);
97            });
98
99            lb.AddCustom(0xFF00FF40, delegate(Level level, int xTile, int zTile)
100            {
101                Players[1].SpawnPoints[Player.SPAWN_RANGER] = new Point(xTile, zTile);
102            });
103
104            lb.AddCustom(0xFF00FF10, delegate(Level level, int xTile, int zTile)
105            {
106                ((PlayerAI)Players[1]).ForestPoint = new Point(xTile, zTile);
107            });
108
109            lb.AddCustom(0xFF00FF50, delegate(Level level, int xTile, int zTile)
110            {
111                ((PlayerAI)Players[1]).DefencePoint = new Point(xTile, zTile);
112            });
113
114            lb.AddCustom(0xFF00FF01, delegate(Level level, int xTile, int zTile)
115            {
116                Players[0].HomePoint = new Point(xTile, zTile);
117            });
118
119            lb.AddCustom(0xFF00FF11, delegate(Level level, int xTile, int zTile)
120            {
121                Players[0].SpawnPoints[Player.SPAWN_WOODCUTTER] = new Point(xTile, zTile);
122            });
123
124            lb.AddCustom(0xFF00FF21, delegate(Level level, int xTile, int zTile)
125            {
126                Players[0].SpawnPoints[Player.SPAWN_WARRIOR] = new Point(xTile, zTile);
127            });
128
129            lb.AddCustom(0xFF00FF31, delegate(Level level, int xTile, int zTile)
130            {
131                Players[0].SpawnPoints[Player.SPAWN_RANGER] = new Point(xTile, zTile);
132            });
133
134            lb.AddCustom(0xFFFF6A03, delegate(Level level, int xTile, int zTile)
135            {
136                level.AddEntity(Players[1].King, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
137            });
138            lb.AddCustom(0xFFFF6A02, delegate(Level level, int xTile, int zTile)
139            {
140                level.AddEntity(Players[1].Store, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
141            });
142            lb.AddCustom(0xFFFF6C11, delegate(Level level, int xTile, int zTile)
143            {
144                level.AddEntity(Players[1].Armory, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
145            });
146
147            lb.AddCustom(0xFFFF6A00, delegate(Level level, int xTile, int zTile)
148            {
149                level.AddEntity(Players[0].King, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
150            });
151            lb.AddCustom(0xFFFF6A01, delegate(Level level, int xTile, int zTile)
152            {
153                level.AddEntity(Players[0].Store, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
154            });
155            lb.AddCustom(0xFFFF6B11, delegate(Level level, int xTile, int zTile)
156            {
157                level.AddEntity(Players[0].Armory, xTile * Viewport.TILESIZE + 8.0F, zTile * Viewport.TILESIZE + 8.0F);
158            });
159
160            lb.AddCustom(0xFF7F3300, delegate(Level level, int xTile, int zTile)
161            {
162                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);
163            });
164
165            lb.AddTile(0xFF7F3300, TILE_FLOOR);
166
167            lb.BuildLevel();
168        }
169    }
170}
Note: See TracBrowser for help on using the repository browser.