1 | using System; |
---|
2 | using System.Collections.Generic; |
---|
3 | using Jypeli; |
---|
4 | using Jypeli.Assets; |
---|
5 | using Jypeli.Controls; |
---|
6 | using Jypeli.Effects; |
---|
7 | using Jypeli.Widgets; |
---|
8 | |
---|
9 | public class tasohyppelypeli : PhysicsGame |
---|
10 | { |
---|
11 | string CurrentLevelFile = String.Empty; |
---|
12 | SoundEffect JousiAani = LoadSoundEffect("Ampuu"); |
---|
13 | DoubleMeter elamaMittari; |
---|
14 | DoubleMeter elamaMittari2; |
---|
15 | DoubleMeter elamaMittari3; |
---|
16 | DoubleMeter P2elamaMittari; |
---|
17 | DoubleMeter P3elamaMittari; |
---|
18 | Image Ampujankuva = LoadImage("Ampuja"); |
---|
19 | Image DemoninKuva = LoadImage("Dem1.anm"); |
---|
20 | Image olionKuva = LoadImage("cafgar.anm"); |
---|
21 | Image magenKuva = LoadImage("Mage"); |
---|
22 | Image maalinKuva = LoadImage("Maali"); |
---|
23 | Image hunterKuva = LoadImage("HUntelaar"); |
---|
24 | Image kavlorKuva = LoadImage("Kavlor"); |
---|
25 | Image[] pelaajanAnim = LoadImages("pelaaja", "Pelaaja2", "Pelaaja3"); |
---|
26 | Image[] pelaajanAnimPeilattu; |
---|
27 | Image p2Kuva = LoadImage("P2"); |
---|
28 | |
---|
29 | double nopeusYlos = 1250; |
---|
30 | Vector nopeusOikea = new Vector(250, 0); |
---|
31 | Vector nopeusVasen = new Vector(-250, 0); |
---|
32 | Image pelaajanKuva = LoadImage("pelaaja"); |
---|
33 | |
---|
34 | PlatformCharacter pelaaja; |
---|
35 | PlatformCharacter pelaaja2; |
---|
36 | PlatformCharacter pelaaja3; |
---|
37 | |
---|
38 | public override void Begin() |
---|
39 | { |
---|
40 | ClearAll(); |
---|
41 | MultiSelectWindow valikko = new MultiSelectWindow("Welcome to game", |
---|
42 | "P1", "P2", "Exit Game"); |
---|
43 | valikko.ItemSelected += PainettiinValikonNappia; |
---|
44 | Add(valikko); |
---|
45 | } |
---|
46 | void PainettiinValikonNappia(int valinta) |
---|
47 | { |
---|
48 | switch (valinta) |
---|
49 | { |
---|
50 | case 0: |
---|
51 | P1MSW(); |
---|
52 | break; |
---|
53 | |
---|
54 | case 1: |
---|
55 | P2MSW(); |
---|
56 | break; |
---|
57 | |
---|
58 | case 2: |
---|
59 | Exit(); |
---|
60 | break; |
---|
61 | } |
---|
62 | } |
---|
63 | |
---|
64 | |
---|
65 | void LuoKenttä(string levelFile) |
---|
66 | { |
---|
67 | TileMap ruudut = TileMap.FromLevelAsset(levelFile); |
---|
68 | ruudut.SetTileMethod('_', LuoPalikka); |
---|
69 | ruudut.SetTileMethod('.', LuoSeina); |
---|
70 | ruudut.SetTileMethod('"', LuoPiikki); |
---|
71 | ruudut.SetTileMethod('!', LuoPelaaja); |
---|
72 | ruudut.SetTileMethod('+', LuoCafgar); |
---|
73 | ruudut.SetTileMethod('#', LuoDemoni); |
---|
74 | ruudut.SetTileMethod('-', LuoAmpuja); |
---|
75 | ruudut.SetTileMethod('=', LuoMaali); |
---|
76 | ruudut.SetTileMethod('M', LuoMage); |
---|
77 | ruudut.SetTileMethod('H', LuoHunter); |
---|
78 | ruudut.SetTileMethod('K', LuoKavlor); |
---|
79 | ruudut.SetTileMethod('E', EPotion); |
---|
80 | ruudut.Execute(20, 20); |
---|
81 | Level.Background.Color = Color.ForestGreen; |
---|
82 | Camera.Follow(pelaaja); |
---|
83 | Gravity = new Vector(0, -5000); |
---|
84 | |
---|
85 | CurrentLevelFile = levelFile; |
---|
86 | } |
---|
87 | void LuoKenttä2(string levelFile) |
---|
88 | { |
---|
89 | TileMap ruudut = TileMap.FromLevelAsset(levelFile); |
---|
90 | ruudut.SetTileMethod('_', LuoPalikka); |
---|
91 | ruudut.SetTileMethod('.', LuoSeina); |
---|
92 | ruudut.SetTileMethod('"', LuoPiikki); |
---|
93 | ruudut.SetTileMethod('!', LuoPelaaja3); |
---|
94 | ruudut.SetTileMethod('2', LuoPelaaja2); |
---|
95 | ruudut.SetTileMethod('+', LuoCafgar); |
---|
96 | ruudut.SetTileMethod('#', LuoDemoni); |
---|
97 | ruudut.SetTileMethod('-', LuoAmpuja2); |
---|
98 | ruudut.SetTileMethod('=', LuoMaali); |
---|
99 | ruudut.SetTileMethod('M', LuoMage2); |
---|
100 | ruudut.SetTileMethod('H', LuoHunter2); |
---|
101 | ruudut.SetTileMethod('K', LuoKavlor2); |
---|
102 | ruudut.SetTileMethod('E', EPotion); |
---|
103 | |
---|
104 | ruudut.Execute(20, 20); |
---|
105 | Level.Background.Color = Color.ForestGreen; |
---|
106 | Camera.Follow(pelaaja3); |
---|
107 | Gravity = new Vector(0, -5000); |
---|
108 | |
---|
109 | CurrentLevelFile = levelFile; |
---|
110 | } |
---|
111 | |
---|
112 | void LuoPalikka(Vector paikka, double leveys, double korkeus) |
---|
113 | { |
---|
114 | PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
115 | palikka.Position = paikka; |
---|
116 | palikka.Shape = Shape.Rectangle; |
---|
117 | palikka.Color = Color.DarkBrown; |
---|
118 | Add(palikka); |
---|
119 | } |
---|
120 | |
---|
121 | void LuoSeina(Vector paikka, double leveys, double korkeus) |
---|
122 | { |
---|
123 | PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
124 | seina.Position = paikka; |
---|
125 | seina.Shape = Shape.Rectangle; |
---|
126 | seina.Color = Color.DarkBrown; |
---|
127 | Add(seina); |
---|
128 | } |
---|
129 | |
---|
130 | void LuoPiikki(Vector paikka, double leveys, double korkeus) |
---|
131 | { |
---|
132 | PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
133 | piikki.Position = paikka; |
---|
134 | piikki.Shape = Shape.Triangle; |
---|
135 | piikki.Color = Color.Black; |
---|
136 | piikki.Tag = "piikki"; |
---|
137 | Add(piikki); |
---|
138 | } |
---|
139 | |
---|
140 | void AsetaOhjaimet() |
---|
141 | { |
---|
142 | Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); |
---|
143 | Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja liikkuu vasemmalle", pelaaja, nopeusVasen); |
---|
144 | Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); |
---|
145 | Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja, nopeusYlos); |
---|
146 | Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja, nopeusOikea); |
---|
147 | Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); |
---|
148 | Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo, null, pelaajanAnim, new Vector(20, 0)); |
---|
149 | Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo, null, pelaajanAnimPeilattu, new Vector(-20, 0)); |
---|
150 | |
---|
151 | |
---|
152 | |
---|
153 | } |
---|
154 | void AsetaOhjaimet2() |
---|
155 | { |
---|
156 | Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja2 liikkuu vasemmalle", pelaaja2, nopeusVasen); |
---|
157 | Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja2, Vector.Zero); |
---|
158 | Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy2, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja2, nopeusYlos); |
---|
159 | Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja2, nopeusOikea); |
---|
160 | Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja2, Vector.Zero); |
---|
161 | Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, Ammu, null, pelaaja2, new Vector(0, 1)); |
---|
162 | Keyboard.Listen(Key.NumPad5, ButtonState.Pressed, Ammu, null, pelaaja2, new Vector(0, -1)); |
---|
163 | Keyboard.Listen(Key.NumPad4, ButtonState.Pressed, Ammu, null, pelaaja2, new Vector(-1, 0)); |
---|
164 | Keyboard.Listen(Key.NumPad6, ButtonState.Pressed, Ammu, null, pelaaja2, new Vector(1, 0)); |
---|
165 | |
---|
166 | |
---|
167 | Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); |
---|
168 | Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja liikkuu vasemmalle", pelaaja3, nopeusVasen); |
---|
169 | Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja3, Vector.Zero); |
---|
170 | Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy3, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja3, nopeusYlos); |
---|
171 | Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja3, nopeusOikea); |
---|
172 | Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, pelaaja3, Vector.Zero); |
---|
173 | Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo2, null, pelaajanAnim, new Vector(20, 0)); |
---|
174 | Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo2, null, pelaajanAnimPeilattu, new Vector(-20, 0)); |
---|
175 | } |
---|
176 | |
---|
177 | void Ammu(PlatformCharacter pelaaja, Vector ampumissuunta) |
---|
178 | { |
---|
179 | pelaaja.Weapon.Angle = ampumissuunta.Angle; |
---|
180 | PhysicsObject ammus = pelaaja.Weapon.Shoot(); |
---|
181 | if (ammus != null) |
---|
182 | { |
---|
183 | AddCollisionHandler(ammus, "Demoni", CollisionHandler.DestroyBoth); |
---|
184 | AddCollisionHandler(ammus, "Ampuja", CollisionHandler.DestroyBoth); |
---|
185 | AddCollisionHandler(ammus, "mage", CollisionHandler.DestroyBoth); |
---|
186 | AddCollisionHandler(ammus, "hunter", CollisionHandler.DestroyBoth); |
---|
187 | AddCollisionHandler(ammus, "Kavlor", KavlorMenettaa); |
---|
188 | AddCollisionHandler(ammus, "cafgar", CafgarMenettaa); |
---|
189 | ammus.CollisionIgnoreGroup = 1; |
---|
190 | } |
---|
191 | } |
---|
192 | |
---|
193 | void LuoPelaaja(Vector paikka, double leveys, double korkeus) |
---|
194 | { |
---|
195 | pelaaja = new PlatformCharacter(20, 40); |
---|
196 | pelaaja.Position = paikka; |
---|
197 | pelaaja.Color = Color.Aquamarine; |
---|
198 | pelaaja.Image = pelaajanKuva; |
---|
199 | pelaaja.CanRotate = false; |
---|
200 | AddCollisionHandler(pelaaja, "piikki", PelaajaKuolee); |
---|
201 | AddCollisionHandler(pelaaja, "Demoni", PelaajaMenettaa); |
---|
202 | AddCollisionHandler(pelaaja, "Ampuja", PelaajaMenettaa2); |
---|
203 | AddCollisionHandler(pelaaja, "cafgar", PelaajaMenettaa2); |
---|
204 | AddCollisionHandler(pelaaja, "maali", SaavutitMaalin); |
---|
205 | AddCollisionHandler(pelaaja, "peruna", LisaaElamaa); |
---|
206 | PelaajanElamat(); |
---|
207 | pelaaja.Mass = 5000; |
---|
208 | pelaaja.Weapon = new PlasmaCannon(20, 5); |
---|
209 | pelaaja.Weapon.IsVisible = false; |
---|
210 | pelaaja.Tag = "pelaaja"; |
---|
211 | Add(pelaaja); |
---|
212 | } |
---|
213 | void LuoPelaaja3(Vector paikka, double leveys, double korkeus) |
---|
214 | { |
---|
215 | pelaaja3 = new PlatformCharacter(20, 40); |
---|
216 | pelaaja3.Position = paikka; |
---|
217 | pelaaja3.Color = Color.Aquamarine; |
---|
218 | pelaaja3.Image = pelaajanKuva; |
---|
219 | pelaaja3.CanRotate = false; |
---|
220 | AddCollisionHandler(pelaaja3, "piikki", Pelaaja3Kuolee); |
---|
221 | AddCollisionHandler(pelaaja3, "Demoni", Pelaaja3Menettaa); |
---|
222 | AddCollisionHandler(pelaaja3, "Ampuja", Pelaaja3Menettaa2); |
---|
223 | AddCollisionHandler(pelaaja3, "cafgar", Pelaaja3Menettaa2); |
---|
224 | AddCollisionHandler(pelaaja3, "maali", SaavutitMaalin3); |
---|
225 | AddCollisionHandler(pelaaja3, "peruna", LisaaElamaa3); |
---|
226 | PelaajanElamat3(); |
---|
227 | pelaaja3.Tag = "pelaaja"; |
---|
228 | pelaaja3.Mass = 5000; |
---|
229 | pelaaja3.CollisionIgnoreGroup = 1; |
---|
230 | pelaaja3.Weapon = new PlasmaCannon(20, 5); |
---|
231 | pelaaja3.Weapon.IsVisible = false; |
---|
232 | Add(pelaaja3); |
---|
233 | } |
---|
234 | |
---|
235 | void LuoPelaaja2(Vector paikka, double leveys, double korkeus) |
---|
236 | { |
---|
237 | pelaaja2 = new PlatformCharacter(20, 40); |
---|
238 | pelaaja2.Position = paikka; |
---|
239 | pelaaja2.Color = Color.Aquamarine; |
---|
240 | pelaaja2.Image = p2Kuva; |
---|
241 | pelaaja2.CanRotate = false; |
---|
242 | AddCollisionHandler(pelaaja2, "piikki", Pelaaja2Menettaa3); |
---|
243 | AddCollisionHandler(pelaaja2, "Demoni", Pelaaja2Menettaa); |
---|
244 | AddCollisionHandler(pelaaja2, "Ampuja", Pelaaja2Menettaa2); |
---|
245 | AddCollisionHandler(pelaaja2, "cafgar", Pelaaja2Menettaa2); |
---|
246 | AddCollisionHandler(pelaaja2, "ammus", Pelaaja2Menettaa2); |
---|
247 | AddCollisionHandler(pelaaja2, "maali", SaavutitMaalin2); |
---|
248 | AddCollisionHandler(pelaaja2, "peruna", LisaaElamaa2); |
---|
249 | PelaajanElamat2(); |
---|
250 | pelaaja2.Weapon = new PlasmaCannon(20, 5); |
---|
251 | pelaaja2.Weapon.IsVisible = false; |
---|
252 | pelaaja2.Mass = 5000; |
---|
253 | pelaaja2.CollisionIgnoreGroup = 1; |
---|
254 | pelaaja2.Tag = "pelaaja"; |
---|
255 | Add(pelaaja2); |
---|
256 | } |
---|
257 | |
---|
258 | void AsetaNopeus(PhysicsObject Pelaaja, Vector nopeus) |
---|
259 | { |
---|
260 | Pelaaja.Velocity = nopeus; |
---|
261 | } |
---|
262 | |
---|
263 | |
---|
264 | void PelaajaKuolee(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
265 | { |
---|
266 | pelaaja.Destroy(); |
---|
267 | Replay(); |
---|
268 | } |
---|
269 | void Pelaaja2Kuolee(PhysicsObject pelaaja2, PhysicsObject kohde) |
---|
270 | { |
---|
271 | pelaaja2.Destroy(); |
---|
272 | Replay3(); |
---|
273 | } |
---|
274 | void Pelaaja3Kuolee(PhysicsObject pelaaja3, PhysicsObject kohde) |
---|
275 | { |
---|
276 | pelaaja3.Destroy(); |
---|
277 | Replay3(); |
---|
278 | } |
---|
279 | |
---|
280 | void LuoCafgar(Vector paikka, double leveys, double korkeus) |
---|
281 | { |
---|
282 | PhysicsObject Cafgar = new PhysicsObject(20, 40); |
---|
283 | Cafgar.Position = paikka; |
---|
284 | Cafgar.Image = olionKuva; |
---|
285 | Cafgar.Color = Color.Black; |
---|
286 | Cafgar.Tag = "cafgar"; |
---|
287 | Cafgar.Brain = Aivot("pelaaja"); |
---|
288 | Cafgar.CanRotate = false; |
---|
289 | CafgarinElamat(Cafgar); |
---|
290 | AddCollisionHandler(Cafgar, "ase", CafgarMenettaa); |
---|
291 | AddCollisionHandler(Cafgar, "piikki", CafgarKuolee); |
---|
292 | Cafgar.CollisionIgnoreGroup = 2; |
---|
293 | Add(Cafgar); |
---|
294 | } |
---|
295 | |
---|
296 | void CafgarKuolee(PhysicsObject Cafgar, PhysicsObject kohde) |
---|
297 | { |
---|
298 | Cafgar.Destroy(); |
---|
299 | } |
---|
300 | |
---|
301 | void LuoDemoni(Vector paikka, double leveys, double korkeus) |
---|
302 | { |
---|
303 | PhysicsObject Demoni = PhysicsObject.CreateStaticObject(20, 40); |
---|
304 | Demoni.Position = paikka; |
---|
305 | Demoni.Image = DemoninKuva; |
---|
306 | Demoni.Color = Color.Black; |
---|
307 | Demoni.Tag = "Demoni"; |
---|
308 | Demoni.Brain = Aivot("pelaaja"); |
---|
309 | AddCollisionHandler(Demoni, "piikki", DemoniTuhoutuu); |
---|
310 | AddCollisionHandler(Demoni, "Ampuja", DemoniKuolee); |
---|
311 | AddCollisionHandler(Demoni, "ammus", DemoniKuolee); |
---|
312 | Demoni.Mass = 500; |
---|
313 | Demoni.CollisionIgnoreGroup = 2; |
---|
314 | Add(Demoni); |
---|
315 | } |
---|
316 | void DemoniTuhoutuu(PhysicsObject Demoni, PhysicsObject kohde) |
---|
317 | { |
---|
318 | Demoni.Destroy(); |
---|
319 | } |
---|
320 | void Hyppy(PlatformCharacter pelaaja, double hypynVoima) |
---|
321 | { |
---|
322 | pelaaja.Jump(hypynVoima); |
---|
323 | } |
---|
324 | void Hyppy2(PlatformCharacter pelaaja2, double hypynVoima) |
---|
325 | { |
---|
326 | pelaaja2.Jump(hypynVoima); |
---|
327 | } |
---|
328 | void Hyppy3(PlatformCharacter pelaaja3, double hypynVoima) |
---|
329 | { |
---|
330 | pelaaja3.Jump(hypynVoima); |
---|
331 | } |
---|
332 | Brain Aivot(String ketaSeurataan) |
---|
333 | { |
---|
334 | TagFollowerBrain seuraajanAivot = new TagFollowerBrain(ketaSeurataan, 5000); |
---|
335 | return seuraajanAivot; |
---|
336 | } |
---|
337 | |
---|
338 | void DemoniKuolee(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
339 | { |
---|
340 | kohde.Destroy(); |
---|
341 | } |
---|
342 | |
---|
343 | Brain AivotAmpuja() |
---|
344 | { |
---|
345 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
346 | seuraajanAivot.Speed = 0; |
---|
347 | seuraajanAivot.TargetFollowDistance = 200; |
---|
348 | seuraajanAivot.FollowAlways = true; |
---|
349 | seuraajanAivot.TargetCloseDistance = 200; |
---|
350 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella2; |
---|
351 | return seuraajanAivot; |
---|
352 | |
---|
353 | } |
---|
354 | |
---|
355 | |
---|
356 | void mitaTapahtuuKunOllaanLahella2(object lahettajaAivot, EventArgs e) |
---|
357 | { |
---|
358 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
359 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
360 | if (ammus != null) |
---|
361 | { |
---|
362 | AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); |
---|
363 | ammus.Tag = "ammus"; |
---|
364 | } |
---|
365 | } |
---|
366 | Brain AivotAmpuja2() |
---|
367 | { |
---|
368 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja2); |
---|
369 | seuraajanAivot.Speed = 0; |
---|
370 | seuraajanAivot.TargetFollowDistance = 200; |
---|
371 | seuraajanAivot.FollowAlways = true; |
---|
372 | seuraajanAivot.TargetCloseDistance = 200; |
---|
373 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella222; |
---|
374 | return seuraajanAivot; |
---|
375 | |
---|
376 | } |
---|
377 | |
---|
378 | |
---|
379 | void mitaTapahtuuKunOllaanLahella223(object lahettajaAivot, EventArgs e) |
---|
380 | { |
---|
381 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja3.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
382 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
383 | if (ammus != null) |
---|
384 | { |
---|
385 | AddCollisionHandler(ammus, pelaaja3, Pelaaja3Menettaa2); |
---|
386 | ammus.Tag = "ammus"; |
---|
387 | } |
---|
388 | } |
---|
389 | void mitaTapahtuuKunOllaanLahella222(object lahettajaAivot, EventArgs e) |
---|
390 | { |
---|
391 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja2.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
392 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
393 | if (ammus != null) |
---|
394 | { |
---|
395 | AddCollisionHandler(ammus, pelaaja2, Pelaaja2Menettaa2); |
---|
396 | ammus.Tag = "ammus"; |
---|
397 | } |
---|
398 | } |
---|
399 | Brain AivotAmpuja3() |
---|
400 | { |
---|
401 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja3); |
---|
402 | seuraajanAivot.Speed = 0; |
---|
403 | seuraajanAivot.TargetFollowDistance = 200; |
---|
404 | seuraajanAivot.FollowAlways = true; |
---|
405 | seuraajanAivot.TargetCloseDistance = 200; |
---|
406 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella223; |
---|
407 | return seuraajanAivot; |
---|
408 | |
---|
409 | } |
---|
410 | void LuoAmpuja(Vector paikka, double leveys, double korkeus) |
---|
411 | { |
---|
412 | |
---|
413 | PlatformCharacter Ampuja = new PlatformCharacter(20, 20); |
---|
414 | Ampuja.IgnoresGravity = true; |
---|
415 | Ampuja.IgnoresPhysicsLogics = true; |
---|
416 | Ampuja.MaxVelocity = 0.0; |
---|
417 | Ampuja.Position = paikka; |
---|
418 | Ampuja.Image = Ampujankuva; |
---|
419 | Ampuja.Color = Color.Black; |
---|
420 | Ampuja.Tag = "Ampuja"; |
---|
421 | Ampuja.Brain = AivotAmpuja(); |
---|
422 | Ampuja.Weapon = new PlasmaCannon(5, 3); |
---|
423 | Ampuja.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(1); |
---|
424 | Ampuja.CollisionIgnoreGroup = 2; |
---|
425 | Add(Ampuja); |
---|
426 | } |
---|
427 | void LuoAmpuja2(Vector paikka, double leveys, double korkeus) |
---|
428 | { |
---|
429 | |
---|
430 | PlatformCharacter Ampuja = new PlatformCharacter(20, 20); |
---|
431 | Ampuja.IgnoresGravity = true; |
---|
432 | Ampuja.IgnoresPhysicsLogics = true; |
---|
433 | Ampuja.MaxVelocity = 0.0; |
---|
434 | Ampuja.Position = paikka; |
---|
435 | Ampuja.Image = Ampujankuva; |
---|
436 | Ampuja.Color = Color.Black; |
---|
437 | Ampuja.Tag = "Ampuja"; |
---|
438 | Ampuja.Brain = AivotAmpuja2(); |
---|
439 | Ampuja.Brain = AivotAmpuja3(); |
---|
440 | Ampuja.Weapon = new PlasmaCannon(5, 3); |
---|
441 | Ampuja.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(1); |
---|
442 | Ampuja.CollisionIgnoreGroup = 2; |
---|
443 | Add(Ampuja); |
---|
444 | } |
---|
445 | |
---|
446 | void PelaajaMenettaa() |
---|
447 | { |
---|
448 | } |
---|
449 | |
---|
450 | void PelaajanElamat() |
---|
451 | { |
---|
452 | elamaMittari = new DoubleMeter(50); |
---|
453 | elamaMittari.MaxValue = 50; |
---|
454 | ProgressBar elamaPalkki = new ProgressBar(150, 10); |
---|
455 | elamaPalkki.BindTo(elamaMittari); |
---|
456 | Add(elamaPalkki); |
---|
457 | |
---|
458 | elamaPalkki.X = Screen.Right - 150; |
---|
459 | elamaPalkki.Y = Screen.Top - 10; |
---|
460 | //elamaPalkki.Angle = Angle.RightAngle; |
---|
461 | elamaPalkki.BarColor = Color.Green; |
---|
462 | elamaPalkki.BorderColor = Color.White; |
---|
463 | //elamaPalkki.Angle = Angle.FromDegrees(90); |
---|
464 | elamaMittari.Value = 50; |
---|
465 | elamaMittari.LowerLimit += PelaajaTuhoutuu; |
---|
466 | } |
---|
467 | |
---|
468 | void PelaajaMenettaa(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
469 | { |
---|
470 | elamaMittari.Value -= 3; |
---|
471 | } |
---|
472 | |
---|
473 | void PelaajaTuhoutuu(double mittarinArvo) |
---|
474 | { |
---|
475 | pelaaja.Destroy(); |
---|
476 | MessageDisplay.Add("Dead"); |
---|
477 | |
---|
478 | Replay(); |
---|
479 | } |
---|
480 | |
---|
481 | void PelaajaMenettaa2(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
482 | { |
---|
483 | elamaMittari.Value -= 5; |
---|
484 | } |
---|
485 | void PelaajanElamat2() |
---|
486 | { |
---|
487 | P2elamaMittari = new DoubleMeter(50); |
---|
488 | P2elamaMittari.MaxValue = 50; |
---|
489 | ProgressBar P2elamaPalkki = new ProgressBar(150, 10); |
---|
490 | P2elamaPalkki.BindTo(P2elamaMittari); |
---|
491 | Add(P2elamaPalkki); |
---|
492 | |
---|
493 | P2elamaPalkki.X = Screen.Right - 150; |
---|
494 | P2elamaPalkki.Y = Screen.Top - 20; |
---|
495 | P2elamaPalkki.BarColor = Color.Navy; |
---|
496 | P2elamaPalkki.BorderColor = Color.White; |
---|
497 | P2elamaMittari.Value = 50; |
---|
498 | P2elamaMittari.LowerLimit += Pelaaja2Tuhoutuu; |
---|
499 | } |
---|
500 | |
---|
501 | void Pelaaja2Menettaa(PhysicsObject pelaaja2, PhysicsObject kohde) |
---|
502 | { |
---|
503 | P2elamaMittari.Value -= 3; |
---|
504 | } |
---|
505 | void Pelaaja2Menettaa3(PhysicsObject pelaaja2, PhysicsObject kohde) |
---|
506 | { |
---|
507 | P2elamaMittari.Value -= 50; |
---|
508 | } |
---|
509 | |
---|
510 | void Pelaaja2Tuhoutuu(double mittarinArvo) |
---|
511 | { |
---|
512 | pelaaja2.Destroy(); |
---|
513 | MessageDisplay.Add("Dead"); |
---|
514 | |
---|
515 | Replay2(); |
---|
516 | } |
---|
517 | void LisaaElamaa2(PhysicsObject pelaaja2, PhysicsObject potion) |
---|
518 | { |
---|
519 | potion.Destroy(); |
---|
520 | P2elamaMittari.Value += 50; |
---|
521 | |
---|
522 | } |
---|
523 | |
---|
524 | void Pelaaja2Menettaa2(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
525 | { |
---|
526 | P2elamaMittari.Value -= 5; |
---|
527 | } |
---|
528 | void PelaajanElamat3() |
---|
529 | { |
---|
530 | P3elamaMittari = new DoubleMeter(50); |
---|
531 | P3elamaMittari.MaxValue = 50; |
---|
532 | ProgressBar P3elamaPalkki = new ProgressBar(150, 10); |
---|
533 | P3elamaPalkki.BindTo(P3elamaMittari); |
---|
534 | Add(P3elamaPalkki); |
---|
535 | |
---|
536 | P3elamaPalkki.X = Screen.Right - 150; |
---|
537 | P3elamaPalkki.Y = Screen.Top - 10; |
---|
538 | P3elamaPalkki.BarColor = Color.Green; |
---|
539 | P3elamaPalkki.BorderColor = Color.White; |
---|
540 | P3elamaMittari.Value = 50; |
---|
541 | P3elamaMittari.LowerLimit += Pelaaja3Tuhoutuu; |
---|
542 | } |
---|
543 | |
---|
544 | void Pelaaja3Menettaa(PhysicsObject pelaaja3, PhysicsObject kohde) |
---|
545 | { |
---|
546 | P3elamaMittari.Value -= 3; |
---|
547 | } |
---|
548 | |
---|
549 | void Pelaaja3Tuhoutuu(double mittarinArvo) |
---|
550 | { |
---|
551 | pelaaja3.Destroy(); |
---|
552 | MessageDisplay.Add("Dead"); |
---|
553 | |
---|
554 | Replay3(); |
---|
555 | } |
---|
556 | void LisaaElamaa3(PhysicsObject pelaaja2, PhysicsObject potion) |
---|
557 | { |
---|
558 | potion.Destroy(); |
---|
559 | P3elamaMittari.Value += 50; |
---|
560 | |
---|
561 | } |
---|
562 | |
---|
563 | void Pelaaja3Menettaa2(PhysicsObject pelaaja3, PhysicsObject kohde) |
---|
564 | { |
---|
565 | P3elamaMittari.Value -= 5; |
---|
566 | } |
---|
567 | |
---|
568 | void PelaajaLyo2(Image[] animaatio, Vector miekanSuunta) |
---|
569 | { |
---|
570 | PhysicsObject Miekka3 = new PhysicsObject(5, 5); |
---|
571 | Miekka3.IsVisible = false; |
---|
572 | Miekka3.Position = pelaaja3.Position; |
---|
573 | Miekka3.Tag = "ase"; |
---|
574 | AddCollisionHandler(Miekka3, "Demoni", DemoniKuolee); |
---|
575 | AddCollisionHandler(Miekka3, "Ampuja", DemoniKuolee); |
---|
576 | AddCollisionHandler(Miekka3, "mage", DemoniKuolee); |
---|
577 | Miekka3.Push(miekanSuunta); |
---|
578 | Add(Miekka3); |
---|
579 | pelaaja3.Animation = new Animation(animaatio); |
---|
580 | pelaaja3.Animation.Start(1); |
---|
581 | pelaaja3.Animation.FPS = 10; |
---|
582 | } |
---|
583 | |
---|
584 | void PelaajaLyo(Image[] animaatio, Vector miekanSuunta) |
---|
585 | { |
---|
586 | PhysicsObject Miekka = new PhysicsObject(5, 5); |
---|
587 | Miekka.IsVisible = false; |
---|
588 | Miekka.Position = pelaaja.Position; |
---|
589 | Miekka.Tag = "ase"; |
---|
590 | AddCollisionHandler(Miekka, "Demoni", DemoniKuolee); |
---|
591 | AddCollisionHandler(Miekka, "Ampuja", DemoniKuolee); |
---|
592 | AddCollisionHandler(Miekka, "mage", DemoniKuolee); |
---|
593 | Miekka.Push(miekanSuunta); |
---|
594 | Add(Miekka); |
---|
595 | pelaaja.Animation = new Animation(animaatio); |
---|
596 | pelaaja.Animation.Start(1); |
---|
597 | pelaaja.Animation.FPS = 10; |
---|
598 | } |
---|
599 | |
---|
600 | void PainettiinValikonNappiaP1(int valinta) |
---|
601 | { |
---|
602 | switch (valinta) |
---|
603 | { |
---|
604 | case 0: |
---|
605 | Aloitus("Tutorial map", "Road To War"); |
---|
606 | break; |
---|
607 | |
---|
608 | case 1: |
---|
609 | Aloitus("kartta", "Field Forces"); |
---|
610 | break; |
---|
611 | |
---|
612 | case 2: |
---|
613 | Aloitus("Kentta2", "Far From Victory"); |
---|
614 | break; |
---|
615 | |
---|
616 | case 3: |
---|
617 | Aloitus("Kentta3", "Field Forces"); |
---|
618 | break; |
---|
619 | |
---|
620 | case 4: |
---|
621 | Begin(); |
---|
622 | break; |
---|
623 | |
---|
624 | case 5: |
---|
625 | Exit(); |
---|
626 | break; |
---|
627 | } |
---|
628 | } |
---|
629 | void PainettiinValikonNappiaP2(int valinta) |
---|
630 | { |
---|
631 | switch (valinta) |
---|
632 | { |
---|
633 | case 0: |
---|
634 | Aloitus2("Tutorial map", "Road To War"); |
---|
635 | break; |
---|
636 | |
---|
637 | case 1: |
---|
638 | Aloitus2("kartta", "Field Forces"); |
---|
639 | break; |
---|
640 | |
---|
641 | case 2: |
---|
642 | Aloitus2("Kentta2", "Far From Victory"); |
---|
643 | break; |
---|
644 | |
---|
645 | case 3: |
---|
646 | Aloitus2("Kentta3", "Field Forces"); |
---|
647 | break; |
---|
648 | |
---|
649 | case 4: |
---|
650 | Begin(); |
---|
651 | break; |
---|
652 | |
---|
653 | case 5: |
---|
654 | Exit(); |
---|
655 | break; |
---|
656 | } |
---|
657 | } |
---|
658 | |
---|
659 | |
---|
660 | void Aloitus(string levelFile, string kappale) |
---|
661 | { |
---|
662 | |
---|
663 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
664 | |
---|
665 | LuoKenttä(levelFile); |
---|
666 | MediaPlayer.Stop(); |
---|
667 | MediaPlayer.Play(kappale); |
---|
668 | AsetaOhjaimet(); |
---|
669 | } |
---|
670 | void Aloitus2(string levelFile, string kappale) |
---|
671 | { |
---|
672 | |
---|
673 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
674 | |
---|
675 | LuoKenttä2(levelFile); |
---|
676 | MediaPlayer.Stop(); |
---|
677 | MediaPlayer.Play(kappale); |
---|
678 | AsetaOhjaimet2(); |
---|
679 | } |
---|
680 | |
---|
681 | |
---|
682 | void LuoMaali(Vector paikka, double leveys, double korkeus) |
---|
683 | { |
---|
684 | PhysicsObject maali = PhysicsObject.CreateStaticObject(40, 80); |
---|
685 | maali.Position = paikka; |
---|
686 | maali.Image = maalinKuva; |
---|
687 | maali.Tag = "maali"; |
---|
688 | maali.Color = Color.Blue; |
---|
689 | |
---|
690 | Add(maali); |
---|
691 | } |
---|
692 | void SaavutitMaalin(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
693 | { |
---|
694 | MediaPlayer.Stop(); |
---|
695 | MediaPlayer.Play("Opening The"); |
---|
696 | YouWin(); |
---|
697 | } |
---|
698 | void SaavutitMaalin2(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
699 | { |
---|
700 | MediaPlayer.Stop(); |
---|
701 | MediaPlayer.Play("Opening The"); |
---|
702 | YouWin2(); |
---|
703 | } |
---|
704 | void SaavutitMaalin3(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
705 | { |
---|
706 | MediaPlayer.Stop(); |
---|
707 | MediaPlayer.Play("Opening The"); |
---|
708 | YouWin2(); |
---|
709 | } |
---|
710 | void Replay() |
---|
711 | { |
---|
712 | ClearAll(); |
---|
713 | MediaPlayer.Stop(); |
---|
714 | MediaPlayer.Play("The Defeated"); |
---|
715 | MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", |
---|
716 | "Replay", "Menu", "End"); |
---|
717 | valikko2.ItemSelected += PainettiinValikonNappia2; |
---|
718 | Add(valikko2); |
---|
719 | } |
---|
720 | void PainettiinValikonNappia2(int valinta) |
---|
721 | { |
---|
722 | switch (valinta) |
---|
723 | { |
---|
724 | |
---|
725 | case 0: |
---|
726 | AloitaUudelleen(); |
---|
727 | break; |
---|
728 | |
---|
729 | case 1: |
---|
730 | Begin(); |
---|
731 | break; |
---|
732 | |
---|
733 | case 2: |
---|
734 | Exit(); |
---|
735 | break; |
---|
736 | } |
---|
737 | } |
---|
738 | void YouWin() |
---|
739 | { |
---|
740 | ClearAll(); |
---|
741 | MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", |
---|
742 | "Replay", "Menu", "End"); |
---|
743 | valikko3.ItemSelected += PainettiinValikonNappia3; |
---|
744 | Add(valikko3); |
---|
745 | } |
---|
746 | void PainettiinValikonNappia3(int valinta) |
---|
747 | { |
---|
748 | switch (valinta) |
---|
749 | { |
---|
750 | case 0: |
---|
751 | AloitaUudelleen(); |
---|
752 | break; |
---|
753 | |
---|
754 | case 1: |
---|
755 | Begin(); |
---|
756 | break; |
---|
757 | |
---|
758 | case 2: |
---|
759 | Exit(); |
---|
760 | break; |
---|
761 | } |
---|
762 | } |
---|
763 | void YouWin2() |
---|
764 | { |
---|
765 | ClearAll(); |
---|
766 | MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", |
---|
767 | "Replay", "Menu", "End"); |
---|
768 | valikko3.ItemSelected += PainettiinValikonNappiaP2W; |
---|
769 | Add(valikko3); |
---|
770 | } |
---|
771 | void PainettiinValikonNappiaP2W(int valinta) |
---|
772 | { |
---|
773 | switch (valinta) |
---|
774 | { |
---|
775 | case 0: |
---|
776 | AloitaUudelleen2(); |
---|
777 | break; |
---|
778 | |
---|
779 | case 1: |
---|
780 | Begin(); |
---|
781 | break; |
---|
782 | |
---|
783 | case 2: |
---|
784 | Exit(); |
---|
785 | break; |
---|
786 | } |
---|
787 | } |
---|
788 | |
---|
789 | void AloitaUudelleen() |
---|
790 | { |
---|
791 | ClearAll(); |
---|
792 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
793 | LuoKenttä(CurrentLevelFile); |
---|
794 | AsetaOhjaimet(); |
---|
795 | } |
---|
796 | void AloitaUudelleen2() |
---|
797 | { |
---|
798 | ClearAll(); |
---|
799 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
800 | LuoKenttä2(CurrentLevelFile); |
---|
801 | AsetaOhjaimet2(); |
---|
802 | } |
---|
803 | |
---|
804 | Brain AivotMage2() |
---|
805 | { |
---|
806 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja2); |
---|
807 | seuraajanAivot.Speed = 20; |
---|
808 | seuraajanAivot.TargetFollowDistance = 200; |
---|
809 | seuraajanAivot.FollowAlways = true; |
---|
810 | seuraajanAivot.TargetCloseDistance = 300; |
---|
811 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella23; |
---|
812 | return seuraajanAivot; |
---|
813 | } |
---|
814 | |
---|
815 | void mitaTapahtuuKunOllaanLahella23(object lahettajaAivot, EventArgs e) |
---|
816 | { |
---|
817 | |
---|
818 | PhysicsObject mage = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
819 | |
---|
820 | if (mage == null || mage.Objects.Count < 1) return; |
---|
821 | |
---|
822 | PlasmaCannon mageAse = (PlasmaCannon)mage.Objects[0]; |
---|
823 | mageAse.Angle = (pelaaja2.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
824 | PhysicsObject ammus = mageAse.Shoot(); |
---|
825 | |
---|
826 | if (ammus != null) |
---|
827 | { |
---|
828 | AddCollisionHandler(ammus, pelaaja2, Pelaaja2Menettaa2); |
---|
829 | ammus.Tag = "ammus"; |
---|
830 | } |
---|
831 | } |
---|
832 | Brain AivotMage() |
---|
833 | { |
---|
834 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
835 | seuraajanAivot.Speed = 20; |
---|
836 | seuraajanAivot.TargetFollowDistance = 200; |
---|
837 | seuraajanAivot.FollowAlways = true; |
---|
838 | seuraajanAivot.TargetCloseDistance = 300; |
---|
839 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella3; |
---|
840 | return seuraajanAivot; |
---|
841 | } |
---|
842 | |
---|
843 | void mitaTapahtuuKunOllaanLahella3(object lahettajaAivot, EventArgs e) |
---|
844 | { |
---|
845 | PhysicsObject mage = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
846 | |
---|
847 | if (mage == null || mage.Objects.Count < 1) return; |
---|
848 | |
---|
849 | PlasmaCannon mageAse = (PlasmaCannon)mage.Objects[0]; |
---|
850 | mageAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
851 | PhysicsObject ammus = mageAse.Shoot(); |
---|
852 | |
---|
853 | if (ammus != null) |
---|
854 | { |
---|
855 | AddCollisionHandler(ammus, pelaaja, Pelaaja3Menettaa2); |
---|
856 | ammus.Tag = "ammus"; |
---|
857 | } |
---|
858 | } |
---|
859 | Brain AivotMage3() |
---|
860 | { |
---|
861 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja3); |
---|
862 | seuraajanAivot.Speed = 20; |
---|
863 | seuraajanAivot.TargetFollowDistance = 200; |
---|
864 | seuraajanAivot.FollowAlways = true; |
---|
865 | seuraajanAivot.TargetCloseDistance = 300; |
---|
866 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella33; |
---|
867 | return seuraajanAivot; |
---|
868 | } |
---|
869 | |
---|
870 | void mitaTapahtuuKunOllaanLahella33(object lahettajaAivot, EventArgs e) |
---|
871 | { |
---|
872 | PhysicsObject mage = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
873 | |
---|
874 | if (mage == null || mage.Objects.Count < 1) return; |
---|
875 | |
---|
876 | PlasmaCannon mageAse = (PlasmaCannon)mage.Objects[0]; |
---|
877 | mageAse.Angle = (pelaaja3.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
878 | PhysicsObject ammus = mageAse.Shoot(); |
---|
879 | |
---|
880 | if (ammus != null) |
---|
881 | { |
---|
882 | AddCollisionHandler(ammus, pelaaja3, Pelaaja3Menettaa2); |
---|
883 | ammus.Tag = "ammus"; |
---|
884 | } |
---|
885 | } |
---|
886 | void LuoMage(Vector paikka, double leveys, double korkeus) |
---|
887 | { |
---|
888 | |
---|
889 | PhysicsObject Mage = new PhysicsObject(20, 40); |
---|
890 | Mage.IgnoresGravity = true; |
---|
891 | Mage.CanRotate = false; |
---|
892 | Mage.Position = paikka; |
---|
893 | Mage.Image = magenKuva; |
---|
894 | Mage.IsVisible = true; |
---|
895 | Mage.Color = Color.Black; |
---|
896 | Mage.Tag = "mage"; |
---|
897 | Mage.Brain = AivotMage(); |
---|
898 | PlasmaCannon pyssy = new PlasmaCannon(20, 5); |
---|
899 | Mage.Add(pyssy); |
---|
900 | pyssy.TimeBetweenUse = TimeSpan.FromSeconds(1); |
---|
901 | pyssy.IsVisible = false; |
---|
902 | Mage.CollisionIgnoreGroup = 2; |
---|
903 | Add(Mage); |
---|
904 | } |
---|
905 | void LuoMage2(Vector paikka, double leveys, double korkeus) |
---|
906 | { |
---|
907 | |
---|
908 | PhysicsObject Mage = new PhysicsObject(20, 40); |
---|
909 | Mage.IgnoresGravity = true; |
---|
910 | Mage.CanRotate = false; |
---|
911 | Mage.Position = paikka; |
---|
912 | Mage.Image = magenKuva; |
---|
913 | Mage.IsVisible = true; |
---|
914 | Mage.Color = Color.Black; |
---|
915 | Mage.Tag = "mage"; |
---|
916 | Mage.Brain = AivotMage2(); |
---|
917 | Mage.Brain = AivotMage3(); |
---|
918 | PlasmaCannon pyssy = new PlasmaCannon(20, 5); |
---|
919 | Mage.Add(pyssy); |
---|
920 | pyssy.TimeBetweenUse = TimeSpan.FromSeconds(1); |
---|
921 | pyssy.IsVisible = false; |
---|
922 | Mage.CollisionIgnoreGroup = 2; |
---|
923 | Add(Mage); |
---|
924 | } |
---|
925 | Brain AivotHunter() |
---|
926 | { |
---|
927 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
928 | seuraajanAivot.Speed = 300; |
---|
929 | seuraajanAivot.TargetFollowDistance = 200; |
---|
930 | seuraajanAivot.FollowAlways = true; |
---|
931 | seuraajanAivot.TargetCloseDistance = 200; |
---|
932 | |
---|
933 | |
---|
934 | |
---|
935 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella4; |
---|
936 | return seuraajanAivot; |
---|
937 | } |
---|
938 | Brain AivotHunter2() |
---|
939 | { |
---|
940 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja3); |
---|
941 | seuraajanAivot.Speed = 300; |
---|
942 | seuraajanAivot.TargetFollowDistance = 200; |
---|
943 | seuraajanAivot.FollowAlways = true; |
---|
944 | seuraajanAivot.TargetCloseDistance = 200; |
---|
945 | |
---|
946 | |
---|
947 | |
---|
948 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella34; |
---|
949 | return seuraajanAivot; |
---|
950 | } |
---|
951 | |
---|
952 | |
---|
953 | void mitaTapahtuuKunOllaanLahella4(object lahettajaAivot, EventArgs e) |
---|
954 | { |
---|
955 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
956 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
957 | if (ammus != null) |
---|
958 | { |
---|
959 | AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); |
---|
960 | ammus.Tag = "ammus"; |
---|
961 | } |
---|
962 | } |
---|
963 | Brain AivotHunter3() |
---|
964 | { |
---|
965 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja2); |
---|
966 | seuraajanAivot.Speed = 300; |
---|
967 | seuraajanAivot.TargetFollowDistance = 200; |
---|
968 | seuraajanAivot.FollowAlways = true; |
---|
969 | seuraajanAivot.TargetCloseDistance = 200; |
---|
970 | |
---|
971 | |
---|
972 | |
---|
973 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella34; |
---|
974 | return seuraajanAivot; |
---|
975 | } |
---|
976 | |
---|
977 | |
---|
978 | void mitaTapahtuuKunOllaanLahella24(object lahettajaAivot, EventArgs e) |
---|
979 | { |
---|
980 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja2.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
981 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
982 | if (ammus != null) |
---|
983 | { |
---|
984 | AddCollisionHandler(ammus, pelaaja2, Pelaaja2Menettaa2); |
---|
985 | ammus.Tag = "ammus"; |
---|
986 | } |
---|
987 | } |
---|
988 | void mitaTapahtuuKunOllaanLahella34(object lahettajaAivot, EventArgs e) |
---|
989 | { |
---|
990 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja3.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
991 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
992 | if (ammus != null) |
---|
993 | { |
---|
994 | AddCollisionHandler(ammus, pelaaja3, Pelaaja3Menettaa2); |
---|
995 | ammus.Tag = "ammus"; |
---|
996 | } |
---|
997 | } |
---|
998 | void LuoHunter(Vector paikka, double leveys, double korkeus) |
---|
999 | { |
---|
1000 | |
---|
1001 | PlatformCharacter hunter = new PlatformCharacter(20, 40); |
---|
1002 | |
---|
1003 | hunter.MaxVelocity = 400.400; |
---|
1004 | hunter.Position = paikka; |
---|
1005 | hunter.Image = hunterKuva; |
---|
1006 | hunter.Color = Color.Black; |
---|
1007 | hunter.Tag = "Ampuja"; |
---|
1008 | hunter.Brain = AivotHunter(); |
---|
1009 | |
---|
1010 | AddCollisionHandler(hunter, "piikki", HuntKuoli); |
---|
1011 | hunter.Weapon = new PlasmaCannon(5, 3); |
---|
1012 | hunter.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(3); |
---|
1013 | hunter.Weapon.IsVisible = false; |
---|
1014 | hunter.CollisionIgnoreGroup = 2; |
---|
1015 | Add(hunter); |
---|
1016 | } |
---|
1017 | void LuoHunter2(Vector paikka, double leveys, double korkeus) |
---|
1018 | { |
---|
1019 | |
---|
1020 | PlatformCharacter hunter = new PlatformCharacter(20, 40); |
---|
1021 | |
---|
1022 | hunter.MaxVelocity = 400.400; |
---|
1023 | hunter.Position = paikka; |
---|
1024 | hunter.Image = hunterKuva; |
---|
1025 | hunter.Color = Color.Black; |
---|
1026 | hunter.Tag = "Ampuja"; |
---|
1027 | hunter.Brain = AivotHunter2(); |
---|
1028 | AddCollisionHandler(hunter, "piikki", HuntKuoli); |
---|
1029 | hunter.Weapon = new PlasmaCannon(5, 3); |
---|
1030 | hunter.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(3); |
---|
1031 | hunter.Weapon.IsVisible = false; |
---|
1032 | hunter.CollisionIgnoreGroup = 2; |
---|
1033 | Add(hunter); |
---|
1034 | } |
---|
1035 | void LuoKavlor(Vector paikka, double leveys, double korkeus) |
---|
1036 | { |
---|
1037 | |
---|
1038 | PhysicsObject kavlor = new PhysicsObject(20, 40); |
---|
1039 | |
---|
1040 | kavlor.MaxVelocity = 400.400; |
---|
1041 | kavlor.Position = paikka; |
---|
1042 | kavlor.Image = kavlorKuva; |
---|
1043 | kavlor.Color = Color.Black; |
---|
1044 | kavlor.Tag = "kavlor"; |
---|
1045 | kavlor.Brain = AivotKavlor(); |
---|
1046 | kavlor.CanRotate = false; |
---|
1047 | PlasmaCannon pyssy = new PlasmaCannon(20, 5); |
---|
1048 | kavlor.Add(pyssy); |
---|
1049 | pyssy.TimeBetweenUse = TimeSpan.FromSeconds(3); |
---|
1050 | pyssy.IsVisible = false; |
---|
1051 | KavlorinElamat(kavlor); |
---|
1052 | AddCollisionHandler(kavlor, "ase", KavlorMenettaa); |
---|
1053 | kavlor.CollisionIgnoreGroup = 2; |
---|
1054 | Add(kavlor); |
---|
1055 | } |
---|
1056 | void LuoKavlor2(Vector paikka, double leveys, double korkeus) |
---|
1057 | { |
---|
1058 | |
---|
1059 | PhysicsObject kavlor = new PhysicsObject(20, 40); |
---|
1060 | |
---|
1061 | kavlor.MaxVelocity = 400.400; |
---|
1062 | kavlor.Position = paikka; |
---|
1063 | kavlor.Image = kavlorKuva; |
---|
1064 | kavlor.Color = Color.Black; |
---|
1065 | kavlor.Tag = "kavlor"; |
---|
1066 | kavlor.Brain = AivotKavlor2(); |
---|
1067 | kavlor.Brain = AivotKavlor3(); |
---|
1068 | kavlor.CanRotate = false; |
---|
1069 | PlasmaCannon pyssy = new PlasmaCannon(20, 5); |
---|
1070 | kavlor.Add(pyssy); |
---|
1071 | pyssy.TimeBetweenUse = TimeSpan.FromSeconds(3); |
---|
1072 | pyssy.IsVisible = false; |
---|
1073 | KavlorinElamat(kavlor); |
---|
1074 | AddCollisionHandler(kavlor, "ase", KavlorMenettaa); |
---|
1075 | kavlor.CollisionIgnoreGroup = 2; |
---|
1076 | Add(kavlor); |
---|
1077 | } |
---|
1078 | void HuntKuoli(PhysicsObject hunter, PhysicsObject kohde) |
---|
1079 | { |
---|
1080 | hunter.Destroy(); |
---|
1081 | } |
---|
1082 | void CafgarinElamat(PhysicsObject Cafgar) |
---|
1083 | { |
---|
1084 | elamaMittari2 = new DoubleMeter(25); |
---|
1085 | elamaMittari2.MaxValue = 50; |
---|
1086 | ProgressBar elamaPalkki2 = new ProgressBar(150, 10); |
---|
1087 | elamaPalkki2.BindTo(elamaMittari2); |
---|
1088 | Add(elamaPalkki2); |
---|
1089 | |
---|
1090 | elamaPalkki2.X = Screen.Right - 150; |
---|
1091 | elamaPalkki2.Y = Screen.Top - 30; |
---|
1092 | //elamaPalkki.Angle = Angle.RightAngle; |
---|
1093 | elamaPalkki2.BarColor = Color.Red; |
---|
1094 | elamaPalkki2.BorderColor = Color.White; |
---|
1095 | //elamaPalkki.Angle = Angle.FromDegrees(90); |
---|
1096 | elamaMittari2.Value = 50; |
---|
1097 | // elamaMittari.LowerLimit += CafgarKuolee; |
---|
1098 | elamaMittari2.LowerLimit += delegate |
---|
1099 | { |
---|
1100 | Cafgar.Destroy(); |
---|
1101 | YouWin(); |
---|
1102 | }; |
---|
1103 | } |
---|
1104 | |
---|
1105 | void CafgarMenettaa(PhysicsObject Cafgar, PhysicsObject kohde) |
---|
1106 | { |
---|
1107 | elamaMittari2.Value -= 5; |
---|
1108 | } |
---|
1109 | void KavlorinElamat(PhysicsObject Kavlor) |
---|
1110 | { |
---|
1111 | elamaMittari3 = new DoubleMeter(25); |
---|
1112 | elamaMittari3.MaxValue = 50; |
---|
1113 | ProgressBar elamaPalkki3 = new ProgressBar(150, 10); |
---|
1114 | elamaPalkki3.BindTo(elamaMittari3); |
---|
1115 | Add(elamaPalkki3); |
---|
1116 | |
---|
1117 | elamaPalkki3.X = Screen.Right - 150; |
---|
1118 | elamaPalkki3.Y = Screen.Top - 30; |
---|
1119 | //elamaPalkki.Angle = Angle.RightAngle; |
---|
1120 | elamaPalkki3.BarColor = Color.Purple; |
---|
1121 | elamaPalkki3.BorderColor = Color.White; |
---|
1122 | //elamaPalkki.Angle = Angle.FromDegrees(90); |
---|
1123 | elamaMittari3.Value = 50; |
---|
1124 | // elamaMittari.LowerLimit += CafgarKuolee; |
---|
1125 | elamaMittari3.LowerLimit += delegate |
---|
1126 | { |
---|
1127 | Kavlor.Destroy(); |
---|
1128 | YouWin2(); |
---|
1129 | }; |
---|
1130 | } |
---|
1131 | |
---|
1132 | void KavlorMenettaa(PhysicsObject Kavlor, PhysicsObject kohde) |
---|
1133 | { |
---|
1134 | elamaMittari3.Value -= 5; |
---|
1135 | } |
---|
1136 | Brain AivotKavlor() |
---|
1137 | { |
---|
1138 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
1139 | seuraajanAivot.Speed = 300; |
---|
1140 | seuraajanAivot.TargetFollowDistance = 100; |
---|
1141 | seuraajanAivot.FollowAlways = true; |
---|
1142 | seuraajanAivot.TargetCloseDistance = 200; |
---|
1143 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella5; |
---|
1144 | return seuraajanAivot; |
---|
1145 | } |
---|
1146 | |
---|
1147 | void mitaTapahtuuKunOllaanLahella5(object lahettajaAivot, EventArgs e) |
---|
1148 | { |
---|
1149 | //Magen ase on sen lapsiolio eli Objects-listassa paikassa 0. |
---|
1150 | |
---|
1151 | PhysicsObject kavlor = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
1152 | |
---|
1153 | if (kavlor == null || kavlor.Objects.Count < 1) return; |
---|
1154 | |
---|
1155 | PlasmaCannon kavlorAse = (PlasmaCannon)kavlor.Objects[0]; |
---|
1156 | kavlorAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
1157 | PhysicsObject ammus = kavlorAse.Shoot(); |
---|
1158 | |
---|
1159 | if (ammus != null) |
---|
1160 | { |
---|
1161 | AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); |
---|
1162 | ammus.Tag = "ammus"; |
---|
1163 | } |
---|
1164 | } |
---|
1165 | Brain AivotKavlor2() |
---|
1166 | { |
---|
1167 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja2); |
---|
1168 | seuraajanAivot.Speed = 300; |
---|
1169 | seuraajanAivot.TargetFollowDistance = 100; |
---|
1170 | seuraajanAivot.FollowAlways = true; |
---|
1171 | seuraajanAivot.TargetCloseDistance = 200; |
---|
1172 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella25; |
---|
1173 | return seuraajanAivot; |
---|
1174 | } |
---|
1175 | |
---|
1176 | void mitaTapahtuuKunOllaanLahella25(object lahettajaAivot, EventArgs e) |
---|
1177 | { |
---|
1178 | |
---|
1179 | PhysicsObject kavlor = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
1180 | |
---|
1181 | if (kavlor == null || kavlor.Objects.Count < 1) return; |
---|
1182 | |
---|
1183 | PlasmaCannon kavlorAse = (PlasmaCannon)kavlor.Objects[0]; |
---|
1184 | kavlorAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
1185 | PhysicsObject ammus = kavlorAse.Shoot(); |
---|
1186 | |
---|
1187 | if (ammus != null) |
---|
1188 | { |
---|
1189 | AddCollisionHandler(ammus, pelaaja2, Pelaaja2Menettaa2); |
---|
1190 | ammus.Tag = "ammus"; |
---|
1191 | } |
---|
1192 | } |
---|
1193 | Brain AivotKavlor3() |
---|
1194 | { |
---|
1195 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja3); |
---|
1196 | seuraajanAivot.Speed = 300; |
---|
1197 | seuraajanAivot.TargetFollowDistance = 100; |
---|
1198 | seuraajanAivot.FollowAlways = true; |
---|
1199 | seuraajanAivot.TargetCloseDistance = 200; |
---|
1200 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella35; |
---|
1201 | return seuraajanAivot; |
---|
1202 | } |
---|
1203 | |
---|
1204 | void mitaTapahtuuKunOllaanLahella35(object lahettajaAivot, EventArgs e) |
---|
1205 | { |
---|
1206 | |
---|
1207 | PhysicsObject kavlor = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
1208 | |
---|
1209 | if (kavlor == null || kavlor.Objects.Count < 1) return; |
---|
1210 | |
---|
1211 | PlasmaCannon kavlorAse = (PlasmaCannon)kavlor.Objects[0]; |
---|
1212 | kavlorAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
1213 | PhysicsObject ammus = kavlorAse.Shoot(); |
---|
1214 | |
---|
1215 | if (ammus != null) |
---|
1216 | { |
---|
1217 | AddCollisionHandler(ammus, pelaaja3, Pelaaja3Menettaa2); |
---|
1218 | ammus.Tag = "ammus"; |
---|
1219 | } |
---|
1220 | } |
---|
1221 | void EPotion(Vector paikka, double leveys, double korkeus) |
---|
1222 | { |
---|
1223 | PhysicsObject potion = new PhysicsObject(20, 20); |
---|
1224 | potion.Position = paikka; |
---|
1225 | potion.CanRotate = false; |
---|
1226 | potion.Shape = Shape.Heart; |
---|
1227 | potion.Color = Color.Red; |
---|
1228 | potion.Tag = "peruna"; |
---|
1229 | potion.CollisionIgnoreGroup = 2; |
---|
1230 | Add(potion); |
---|
1231 | } |
---|
1232 | void LisaaElamaa(PhysicsObject pelaaja, PhysicsObject potion) |
---|
1233 | { |
---|
1234 | potion.Destroy(); |
---|
1235 | elamaMittari.Value += 50; |
---|
1236 | |
---|
1237 | } |
---|
1238 | void P1MSW() |
---|
1239 | { |
---|
1240 | MultiSelectWindow valikko = new MultiSelectWindow("One Player", |
---|
1241 | "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); |
---|
1242 | valikko.ItemSelected += PainettiinValikonNappiaP1; |
---|
1243 | Add(valikko); |
---|
1244 | } |
---|
1245 | void P2MSW() |
---|
1246 | { |
---|
1247 | MultiSelectWindow valikko = new MultiSelectWindow("Two Players", |
---|
1248 | "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); |
---|
1249 | valikko.ItemSelected += PainettiinValikonNappiaP2; |
---|
1250 | Add(valikko); |
---|
1251 | } |
---|
1252 | void Replay2() |
---|
1253 | { |
---|
1254 | ClearAll(); |
---|
1255 | MediaPlayer.Stop(); |
---|
1256 | MediaPlayer.Play("The Defeated"); |
---|
1257 | MultiSelectWindow valikko2 = new MultiSelectWindow("P2 Died", |
---|
1258 | "Replay", "Menu", "End"); |
---|
1259 | valikko2.ItemSelected += PainettiinValikonNappiaP22; |
---|
1260 | Add(valikko2); |
---|
1261 | } |
---|
1262 | void PainettiinValikonNappiaP22(int valinta) |
---|
1263 | { |
---|
1264 | switch (valinta) |
---|
1265 | { |
---|
1266 | |
---|
1267 | case 0: |
---|
1268 | AloitaUudelleen2(); |
---|
1269 | break; |
---|
1270 | |
---|
1271 | case 1: |
---|
1272 | Begin(); |
---|
1273 | break; |
---|
1274 | |
---|
1275 | case 2: |
---|
1276 | Exit(); |
---|
1277 | break; |
---|
1278 | } |
---|
1279 | } |
---|
1280 | void Replay3() |
---|
1281 | { |
---|
1282 | ClearAll(); |
---|
1283 | MediaPlayer.Stop(); |
---|
1284 | MediaPlayer.Play("The Defeated"); |
---|
1285 | MultiSelectWindow valikko2 = new MultiSelectWindow("P1 Died", |
---|
1286 | "Replay", "Menu", "End"); |
---|
1287 | valikko2.ItemSelected += PainettiinValikonNappiaP223; |
---|
1288 | Add(valikko2); |
---|
1289 | } |
---|
1290 | void PainettiinValikonNappiaP223(int valinta) |
---|
1291 | { |
---|
1292 | switch (valinta) |
---|
1293 | { |
---|
1294 | |
---|
1295 | case 0: |
---|
1296 | AloitaUudelleen2(); |
---|
1297 | break; |
---|
1298 | |
---|
1299 | case 1: |
---|
1300 | Begin(); |
---|
1301 | break; |
---|
1302 | |
---|
1303 | case 2: |
---|
1304 | Exit(); |
---|
1305 | break; |
---|
1306 | } |
---|
1307 | } |
---|
1308 | } |
---|