source: 2012/27/DenisZ/TheDungeonGame/TheDungeonGame/TheDungeonGame/RoomTemplates.cs @ 3640

Revision 3640, 7.4 KB checked in by dezhidki, 9 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Assets;
7using MathHelper;
8using Entity;
9using Items;
10
11namespace Rooms
12{
13    class EmptyRoom : Room
14    {
15        public EmptyRoom(TheDungeonGame game, Vector pos, Vector size, double thickness)
16            : base(game, pos, size, thickness)
17        {
18        }
19
20        public override void initRoom()
21        {
22            createLevelDecorations();
23            spawnRandomItems(1);
24        }
25    }
26
27    class RoomType1 : Room
28    {
29        public RoomType1(TheDungeonGame game, Vector pos, Vector size, double thickness)
30            : base(game, pos, size, thickness)
31        {
32        }
33
34        public override void initRoom()
35        {
36            createLevelDecorations();
37
38            addBlock(new ObjectRock(blockWidth, blockHeight), 0, 0);
39            addBlock(new ObjectRock(blockWidth, blockHeight), bWidth - 1, 0);
40            addBlock(new ObjectRock(blockWidth, blockHeight), 0, bHeight - 1, new Vector(0, -50));
41            addBlock(new ObjectRock(blockWidth, blockHeight), bWidth - 1, bHeight - 1, new Vector(0, -50));
42
43            spawnRandomEntities(RandomGen.NextInt(6)+1);
44        }
45    }
46
47    class RoomType2 : Room
48    {
49        public RoomType2(TheDungeonGame game, Vector pos, Vector size, double thickness)
50            : base(game, pos, size, thickness)
51        {
52        }
53
54        public override void initRoom()
55        {
56            createLevelDecorations();
57
58            for (int i = 0; i < 4; i++)
59            {
60                addBlock(new ObjectRock(blockWidth, blockHeight), 1, 1 + i, new Vector(0, -50));
61            }
62
63            for (int i = 0; i < 4; i++)
64            {
65                addBlock(new ObjectRock(blockWidth, blockHeight), 8, 1 + i, new Vector(0, -50));
66            }
67
68            spawnRandomEntities(RandomGen.NextInt(6) + 1);
69        }
70    }
71
72    class RoomType3 : Room
73    {
74        public RoomType3(TheDungeonGame game, Vector pos, Vector size, double thickness)
75            : base(game, pos, size, thickness)
76        {
77        }
78
79        public override void initRoom()
80        {
81            createLevelDecorations();
82
83            for (int i = 0; i < 4; i++)
84            {
85                addBlock(new ObjectRock(blockWidth, blockHeight), i, 1);
86            }
87
88            for (int i = 0; i < 4; i++)
89            {
90                addBlock(new ObjectRock(blockWidth, blockHeight), i, 4);
91            }
92
93            for (int i = 0; i < 4; i++)
94            {
95                addBlock(new ObjectRock(blockWidth, blockHeight), i + 6, 1);
96            }
97
98            for (int i = 0; i < 4; i++)
99            {
100                addBlock(new ObjectRock(blockWidth, blockHeight), i + 6, 4);
101            }
102
103            spawnRandomEntities(RandomGen.NextInt(6) + 1);
104        }
105    }
106
107    class RoomType4 : Room
108    {
109        public RoomType4(TheDungeonGame game, Vector pos, Vector size, double thickness)
110            : base(game, pos, size, thickness)
111        {
112        }
113
114        public override void initRoom()
115        {
116            createLevelDecorations();
117
118            for (int y = 1; y < bHeight; y++)
119            {
120                for (int x = 1; x < bWidth - 1; x++)
121                {
122                    if (x % 2 != 0 && y % 2 != 0)
123                        addBlock(new ObjectRock(blockWidth, blockHeight), x, y, new Vector(40, 0));
124                }
125            }
126
127            spawnRandomEntities(RandomGen.NextInt(6) + 1);
128        }
129    }
130
131    class RoomType5 : Room
132    {
133        public RoomType5(TheDungeonGame game, Vector pos, Vector size, double thickness)
134            : base(game, pos, size, thickness)
135        {
136        }
137
138        public override void initRoom()
139        {
140            createLevelDecorations();
141
142            for (int y = 0; y < 3; y++)
143            {
144                for (int x = 0; x < 3; x++)
145                {
146                    addBlock(new ObjectRock(blockWidth, blockHeight), x + 3, y + 1, new Vector(30, -20));
147                }
148            }
149
150            deleteBlock(bWidth / 2 - 1, bHeight / 2);
151            spawnRandomEntities(RandomGen.NextInt(6) + 1);
152        }
153    }
154
155    class RoomType6 : Room
156    {
157        public RoomType6(TheDungeonGame game, Vector pos, Vector size, double thickness)
158            : base(game, pos, size, thickness)
159        {
160        }
161
162        public override void initRoom()
163        {
164            createLevelDecorations();
165
166            for (int i = 0; i < 5; i++)
167            {
168                int bx = RandomGen.NextInt(bWidth);
169                int by = RandomGen.NextInt(bHeight);
170                addBlock(new ObjectRock(blockWidth, blockHeight), bx, by);
171            }
172
173            spawnRandomEntities(RandomGen.NextInt(6) + 1);
174        }
175    }
176
177    class BossRoom : Room
178    {
179        public BossRoom(TheDungeonGame game, Vector pos, Vector size, double thickness)
180            : base(game, pos, size, thickness)
181        {
182            roomName = "Boss Room";
183        }
184
185        public override void initRoom()
186        {
187            createLevelDecorations();
188
189            addEntityAt(new EntityBossMario(Game, Vector.Zero, new Vector(30, 60), Shape.Rectangle), 3, 3);
190        }
191    }
192
193    class RoomCreator
194    {
195        public static Room createRoom(TheDungeonGame game, Vector pos, Vector size, double thickness, int room)
196        {
197            Room result = null;
198            if (room == 0)
199                result = new EmptyRoom(game, pos, size, thickness);
200            else if (room == 1)
201                result = new RoomType1(game, pos, size, thickness);
202            else if (room == 2)
203                result = new RoomType2(game, pos, size, thickness);
204            else if (room == 3)
205                result = new RoomType3(game, pos, size, thickness);
206            else if (room == 4)
207                result = new RoomType4(game, pos, size, thickness);
208            else if (room == 5)
209                result = new RoomType5(game, pos, size, thickness);
210            else if (room == 6)
211                result = new RoomType6(game, pos, size, thickness);
212            else if (room == 7)
213                result = new BossRoom(game, pos, size, thickness);
214
215            return result;
216        }
217
218        public static EntityBase getEntity(int id)
219        {
220            EntityBase ent = null;
221            if (id == 0)
222                ent = new EntityFly((TheDungeonGame)TheDungeonGame.Instance, Vector.Zero, new Vector(50, 50), Shape.Circle);
223            else if (id == 1)
224                ent = new EntityZombie((TheDungeonGame)TheDungeonGame.Instance, Vector.Zero, new Vector(60, 60), Shape.Rectangle);
225            else if (id == 2)
226                ent = new EntityDerpFace((TheDungeonGame)TheDungeonGame.Instance, Vector.Zero, new Vector(60, 60), Shape.Circle);
227            else if (id == 3)
228                ent = new EntityDerpFly((TheDungeonGame)TheDungeonGame.Instance, Vector.Zero, new Vector(50, 50), Shape.Circle);
229            //else if(id == 4)
230            //    ent = new EntityDerpPistolZombie((TheDungeonGame)TheDungeonGame.Instance, Vector.Zero, new Vector(50, 50), Shape.Circle);
231            return ent;
232        }
233
234        public static Item getItem(int id)
235        {
236            Item item = null;
237            if (id == 0)
238                item = new ItemHealth();
239
240            return item;
241        }
242    }
243}
Note: See TracBrowser for help on using the repository browser.