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('3', LuoPelaaja3); |
---|
94 | ruudut.SetTileMethod('+', LuoCafgar); |
---|
95 | ruudut.SetTileMethod('#', LuoDemoni); |
---|
96 | ruudut.SetTileMethod('-', LuoAmpuja); |
---|
97 | ruudut.SetTileMethod('=', LuoMaali); |
---|
98 | ruudut.SetTileMethod('M', LuoMage); |
---|
99 | ruudut.SetTileMethod('H', LuoHunter); |
---|
100 | ruudut.SetTileMethod('K', LuoKavlor); |
---|
101 | ruudut.SetTileMethod('E', EPotion); |
---|
102 | ruudut.SetTileMethod('2', LuoPelaaja2); |
---|
103 | ruudut.Execute(20, 20); |
---|
104 | Level.Background.Color = Color.ForestGreen; |
---|
105 | Camera.Follow(pelaaja3); |
---|
106 | Gravity = new Vector(0, -5000); |
---|
107 | |
---|
108 | CurrentLevelFile = levelFile; |
---|
109 | } |
---|
110 | |
---|
111 | void LuoPalikka(Vector paikka, double leveys, double korkeus) |
---|
112 | { |
---|
113 | PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
114 | palikka.Position = paikka; |
---|
115 | palikka.Shape = Shape.Rectangle; |
---|
116 | palikka.Color = Color.DarkBrown; |
---|
117 | Add(palikka); |
---|
118 | } |
---|
119 | |
---|
120 | void LuoSeina(Vector paikka, double leveys, double korkeus) |
---|
121 | { |
---|
122 | PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
123 | seina.Position = paikka; |
---|
124 | seina.Shape = Shape.Rectangle; |
---|
125 | seina.Color = Color.DarkBrown; |
---|
126 | Add(seina); |
---|
127 | } |
---|
128 | |
---|
129 | void LuoPiikki(Vector paikka, double leveys, double korkeus) |
---|
130 | { |
---|
131 | PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
132 | piikki.Position = paikka; |
---|
133 | piikki.Shape = Shape.Triangle; |
---|
134 | piikki.Color = Color.Black; |
---|
135 | piikki.Tag = "piikki"; |
---|
136 | Add(piikki); |
---|
137 | } |
---|
138 | |
---|
139 | void AsetaOhjaimet() |
---|
140 | { |
---|
141 | Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); |
---|
142 | Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja liikkuu vasemmalle", pelaaja, nopeusVasen); |
---|
143 | Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); |
---|
144 | Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja, nopeusYlos); |
---|
145 | Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja, nopeusOikea); |
---|
146 | Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); |
---|
147 | Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo, null); |
---|
148 | Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo2, null); |
---|
149 | |
---|
150 | |
---|
151 | |
---|
152 | } |
---|
153 | void AsetaOhjaimet2() |
---|
154 | { |
---|
155 | Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus2, "Pelaaja2 liikkuu vasemmalle", pelaaja2, nopeusVasen); |
---|
156 | Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero); |
---|
157 | Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy2, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja2, nopeusYlos); |
---|
158 | Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus2, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja2, nopeusOikea); |
---|
159 | Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero); |
---|
160 | |
---|
161 | Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); |
---|
162 | Keyboard.Listen(Key.P, ButtonState.Down, Begin, "End Game"); |
---|
163 | Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus3, "Pelaaja liikkuu vasemmalle", pelaaja3, nopeusVasen); |
---|
164 | Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus3, null, pelaaja3, Vector.Zero); |
---|
165 | Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy3, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja3, nopeusYlos); |
---|
166 | Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus3, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja3, nopeusOikea); |
---|
167 | Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus3, null, pelaaja3, Vector.Zero); |
---|
168 | Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo4, null); |
---|
169 | Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo3, null); |
---|
170 | } |
---|
171 | |
---|
172 | void LuoPelaaja(Vector paikka, double leveys, double korkeus) |
---|
173 | { |
---|
174 | pelaaja = new PlatformCharacter(20, 40); |
---|
175 | pelaaja.Position = paikka; |
---|
176 | pelaaja.Color = Color.Aquamarine; |
---|
177 | pelaaja.Image = pelaajanKuva; |
---|
178 | pelaaja.CanRotate = false; |
---|
179 | AddCollisionHandler(pelaaja, "piikki", PelaajaKuolee); |
---|
180 | AddCollisionHandler(pelaaja, "Demoni", PelaajaMenettaa); |
---|
181 | AddCollisionHandler(pelaaja, "Ampuja", PelaajaMenettaa2); |
---|
182 | AddCollisionHandler(pelaaja, "cafgar", PelaajaMenettaa2); |
---|
183 | AddCollisionHandler(pelaaja, "maali", SaavutitMaalin); |
---|
184 | AddCollisionHandler(pelaaja, "peruna", LisaaElamaa); |
---|
185 | PelaajanElamat(); |
---|
186 | pelaaja.Mass = 5000; |
---|
187 | pelaaja.Weapon = new PlasmaCannon(20, 5); |
---|
188 | pelaaja.Weapon.IsVisible = false; |
---|
189 | Add(pelaaja); |
---|
190 | } |
---|
191 | void LuoPelaaja3(Vector paikka, double leveys, double korkeus) |
---|
192 | { |
---|
193 | pelaaja3 = new PlatformCharacter(20, 40); |
---|
194 | pelaaja3.Position = paikka; |
---|
195 | pelaaja3.Color = Color.Aquamarine; |
---|
196 | pelaaja3.Image = pelaajanKuva; |
---|
197 | pelaaja3.CanRotate = false; |
---|
198 | AddCollisionHandler(pelaaja, "piikki", Pelaaja3Kuolee); |
---|
199 | AddCollisionHandler(pelaaja, "Demoni", Pelaaja3Menettaa); |
---|
200 | AddCollisionHandler(pelaaja, "Ampuja", Pelaaja3Menettaa2); |
---|
201 | AddCollisionHandler(pelaaja, "cafgar", Pelaaja3Menettaa2); |
---|
202 | AddCollisionHandler(pelaaja, "maali", SaavutitMaalin3); |
---|
203 | AddCollisionHandler(pelaaja, "peruna", LisaaElamaa3); |
---|
204 | PelaajanElamat3(); |
---|
205 | pelaaja3.Mass = 5000; |
---|
206 | pelaaja3.Weapon = new PlasmaCannon(20, 5); |
---|
207 | pelaaja3.Weapon.IsVisible = false; |
---|
208 | Add(pelaaja3); |
---|
209 | } |
---|
210 | void LuoPelaaja2(Vector paikka, double leveys, double korkeus) |
---|
211 | { |
---|
212 | pelaaja2 = new PlatformCharacter(20, 40); |
---|
213 | pelaaja2.Position = paikka; |
---|
214 | pelaaja2.Color = Color.Aquamarine; |
---|
215 | pelaaja2.Image = p2Kuva; |
---|
216 | pelaaja2.CanRotate = false; |
---|
217 | AddCollisionHandler(pelaaja2, "piikki", Pelaaja2Kuolee); |
---|
218 | AddCollisionHandler(pelaaja2, "Demoni", Pelaaja2Menettaa); |
---|
219 | AddCollisionHandler(pelaaja2, "Ampuja", Pelaaja2Menettaa2); |
---|
220 | AddCollisionHandler(pelaaja2, "cafgar", Pelaaja2Menettaa2); |
---|
221 | AddCollisionHandler(pelaaja2, "maali", SaavutitMaalin2); |
---|
222 | AddCollisionHandler(pelaaja2, "peruna", LisaaElamaa2); |
---|
223 | PelaajanElamat2(); |
---|
224 | pelaaja2.Mass = 5000; |
---|
225 | |
---|
226 | Add(pelaaja2); |
---|
227 | } |
---|
228 | |
---|
229 | void AsetaNopeus(PhysicsObject Pelaaja, Vector nopeus) |
---|
230 | { |
---|
231 | Pelaaja.Velocity = nopeus; |
---|
232 | } |
---|
233 | void AsetaNopeus2(PhysicsObject Pelaaja2, Vector nopeus) |
---|
234 | { |
---|
235 | Pelaaja2.Velocity = nopeus; |
---|
236 | } |
---|
237 | void AsetaNopeus3(PhysicsObject Pelaaja3, Vector nopeus) |
---|
238 | { |
---|
239 | Pelaaja3.Velocity = nopeus; |
---|
240 | } |
---|
241 | |
---|
242 | |
---|
243 | |
---|
244 | void PelaajaKuolee(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
245 | { |
---|
246 | pelaaja.Destroy(); |
---|
247 | Replay(); |
---|
248 | } |
---|
249 | void Pelaaja2Kuolee(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
250 | { |
---|
251 | pelaaja.Destroy(); |
---|
252 | Replay2(); |
---|
253 | } |
---|
254 | void Pelaaja3Kuolee(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
255 | { |
---|
256 | pelaaja.Destroy(); |
---|
257 | Replay2(); |
---|
258 | } |
---|
259 | |
---|
260 | void LuoCafgar(Vector paikka, double leveys, double korkeus) |
---|
261 | { |
---|
262 | PhysicsObject Cafgar = new PhysicsObject(20, 40); |
---|
263 | Cafgar.Position = paikka; |
---|
264 | Cafgar.Image = olionKuva; |
---|
265 | Cafgar.Color = Color.Black; |
---|
266 | Cafgar.Tag = "cafgar"; |
---|
267 | Cafgar.Brain = Aivot(); |
---|
268 | |
---|
269 | Cafgar.Brain.Active = true; |
---|
270 | Cafgar.CanRotate = false; |
---|
271 | CafgarinElamat(Cafgar); |
---|
272 | AddCollisionHandler(Cafgar, "ase", CafgarMenettaa); |
---|
273 | Add(Cafgar); |
---|
274 | } |
---|
275 | |
---|
276 | void LuoDemoni(Vector paikka, double leveys, double korkeus) |
---|
277 | { |
---|
278 | PhysicsObject Demoni = PhysicsObject.CreateStaticObject(20, 40); |
---|
279 | Demoni.Position = paikka; |
---|
280 | Demoni.Image = DemoninKuva; |
---|
281 | Demoni.Color = Color.Black; |
---|
282 | Demoni.Tag = "Demoni"; |
---|
283 | Demoni.Brain = Aivot(); |
---|
284 | AddCollisionHandler(Demoni, "piikki", DemoniTuhoutuu); |
---|
285 | AddCollisionHandler(Demoni, "Ampuja", DemoniKuolee); |
---|
286 | AddCollisionHandler(Demoni, "ammus", DemoniKuolee); |
---|
287 | Demoni.Mass = 500; |
---|
288 | Add(Demoni); |
---|
289 | } |
---|
290 | void DemoniTuhoutuu(PhysicsObject Demoni, PhysicsObject kohde) |
---|
291 | { |
---|
292 | Demoni.Destroy(); |
---|
293 | } |
---|
294 | void Hyppy(PlatformCharacter pelaaja, double hypynVoima) |
---|
295 | { |
---|
296 | pelaaja.Jump(hypynVoima); |
---|
297 | } |
---|
298 | void Hyppy2(PlatformCharacter pelaaja2, double hypynVoima) |
---|
299 | { |
---|
300 | pelaaja2.Jump(hypynVoima); |
---|
301 | } |
---|
302 | void Hyppy3(PlatformCharacter pelaaja3, double hypynVoima) |
---|
303 | { |
---|
304 | pelaaja3.Jump(hypynVoima); |
---|
305 | } |
---|
306 | Brain Aivot() |
---|
307 | { |
---|
308 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
309 | seuraajanAivot.Speed = 150; |
---|
310 | seuraajanAivot.TargetFollowDistance = 200; |
---|
311 | seuraajanAivot.FollowAlways = true; |
---|
312 | seuraajanAivot.TargetCloseDistance = 20; |
---|
313 | seuraajanAivot.StopWhenTargetClose = false; |
---|
314 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella; |
---|
315 | return seuraajanAivot; |
---|
316 | } |
---|
317 | |
---|
318 | |
---|
319 | void mitaTapahtuuKunOllaanLahella(object lahettajaAivot, EventArgs e) |
---|
320 | { |
---|
321 | } |
---|
322 | |
---|
323 | void DemoniKuolee(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
324 | { |
---|
325 | kohde.Destroy(); |
---|
326 | } |
---|
327 | |
---|
328 | Brain AivotAmpuja() |
---|
329 | { |
---|
330 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
331 | seuraajanAivot.Speed = 0; |
---|
332 | seuraajanAivot.TargetFollowDistance = 200; |
---|
333 | seuraajanAivot.FollowAlways = true; |
---|
334 | seuraajanAivot.TargetCloseDistance = 200; |
---|
335 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella2; |
---|
336 | return seuraajanAivot; |
---|
337 | } |
---|
338 | |
---|
339 | |
---|
340 | void mitaTapahtuuKunOllaanLahella2(object lahettajaAivot, EventArgs e) |
---|
341 | { |
---|
342 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
343 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
344 | if (ammus != null) |
---|
345 | { |
---|
346 | AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); |
---|
347 | ammus.Tag = "ammus"; |
---|
348 | } |
---|
349 | } |
---|
350 | |
---|
351 | void LuoAmpuja(Vector paikka, double leveys, double korkeus) |
---|
352 | { |
---|
353 | |
---|
354 | PlatformCharacter Ampuja = new PlatformCharacter(20, 20); |
---|
355 | Ampuja.IgnoresGravity = true; |
---|
356 | Ampuja.IgnoresPhysicsLogics = true; |
---|
357 | Ampuja.MaxVelocity = 0.0; |
---|
358 | Ampuja.Position = paikka; |
---|
359 | Ampuja.Image = Ampujankuva; |
---|
360 | Ampuja.Color = Color.Black; |
---|
361 | Ampuja.Tag = "Ampuja"; |
---|
362 | Ampuja.Brain = AivotAmpuja(); |
---|
363 | Ampuja.Weapon = new PlasmaCannon(5, 3); |
---|
364 | Ampuja.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(1); |
---|
365 | Add(Ampuja); |
---|
366 | } |
---|
367 | |
---|
368 | void PelaajaMenettaa() |
---|
369 | { |
---|
370 | } |
---|
371 | |
---|
372 | void PelaajanElamat() |
---|
373 | { |
---|
374 | elamaMittari = new DoubleMeter(50); |
---|
375 | elamaMittari.MaxValue = 50; |
---|
376 | ProgressBar elamaPalkki = new ProgressBar(150, 10); |
---|
377 | elamaPalkki.BindTo(elamaMittari); |
---|
378 | Add(elamaPalkki); |
---|
379 | |
---|
380 | elamaPalkki.X = Screen.Right - 150; |
---|
381 | elamaPalkki.Y = Screen.Top - 10; |
---|
382 | //elamaPalkki.Angle = Angle.RightAngle; |
---|
383 | elamaPalkki.BarColor = Color.Green; |
---|
384 | elamaPalkki.BorderColor = Color.White; |
---|
385 | //elamaPalkki.Angle = Angle.FromDegrees(90); |
---|
386 | elamaMittari.Value = 50; |
---|
387 | elamaMittari.LowerLimit += PelaajaTuhoutuu; |
---|
388 | } |
---|
389 | |
---|
390 | void PelaajaMenettaa(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
391 | { |
---|
392 | elamaMittari.Value -= 3; |
---|
393 | } |
---|
394 | |
---|
395 | void PelaajaTuhoutuu(double mittarinArvo) |
---|
396 | { |
---|
397 | pelaaja.Destroy(); |
---|
398 | MessageDisplay.Add("Dead"); |
---|
399 | |
---|
400 | Replay(); |
---|
401 | } |
---|
402 | |
---|
403 | void PelaajaMenettaa2(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
404 | { |
---|
405 | elamaMittari.Value -= 5; |
---|
406 | } |
---|
407 | void PelaajanElamat2() |
---|
408 | { |
---|
409 | P2elamaMittari = new DoubleMeter(50); |
---|
410 | P2elamaMittari.MaxValue = 50; |
---|
411 | ProgressBar P2elamaPalkki = new ProgressBar(150, 10); |
---|
412 | P2elamaPalkki.BindTo(P2elamaMittari); |
---|
413 | Add(P2elamaPalkki); |
---|
414 | |
---|
415 | P2elamaPalkki.X = Screen.Right - 150; |
---|
416 | P2elamaPalkki.Y = Screen.Top - 10; |
---|
417 | P2elamaPalkki.BarColor = Color.Navy; |
---|
418 | P2elamaPalkki.BorderColor = Color.White; |
---|
419 | P2elamaMittari.Value = 50; |
---|
420 | P2elamaMittari.LowerLimit += Pelaaja2Tuhoutuu; |
---|
421 | } |
---|
422 | |
---|
423 | void Pelaaja2Menettaa(PhysicsObject pelaaja2, PhysicsObject kohde) |
---|
424 | { |
---|
425 | P2elamaMittari.Value -= 3; |
---|
426 | } |
---|
427 | |
---|
428 | void Pelaaja2Tuhoutuu(double mittarinArvo) |
---|
429 | { |
---|
430 | pelaaja.Destroy(); |
---|
431 | MessageDisplay.Add("Dead"); |
---|
432 | |
---|
433 | Replay2(); |
---|
434 | } |
---|
435 | void LisaaElamaa2(PhysicsObject pelaaja2, PhysicsObject potion) |
---|
436 | { |
---|
437 | potion.Destroy(); |
---|
438 | P2elamaMittari.Value += 50; |
---|
439 | |
---|
440 | } |
---|
441 | |
---|
442 | void Pelaaja2Menettaa2(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
443 | { |
---|
444 | elamaMittari.Value -= 5; |
---|
445 | } |
---|
446 | void PelaajanElamat3() |
---|
447 | { |
---|
448 | P3elamaMittari = new DoubleMeter(50); |
---|
449 | P3elamaMittari.MaxValue = 50; |
---|
450 | ProgressBar P3elamaPalkki = new ProgressBar(150, 10); |
---|
451 | P3elamaPalkki.BindTo(P3elamaMittari); |
---|
452 | Add(P3elamaPalkki); |
---|
453 | |
---|
454 | P3elamaPalkki.X = Screen.Left - 150; |
---|
455 | P3elamaPalkki.Y = Screen.Top - 10; |
---|
456 | P3elamaPalkki.BarColor = Color.Green; |
---|
457 | P3elamaPalkki.BorderColor = Color.White; |
---|
458 | P3elamaMittari.Value = 50; |
---|
459 | P3elamaMittari.LowerLimit += Pelaaja3Tuhoutuu; |
---|
460 | } |
---|
461 | |
---|
462 | void Pelaaja3Menettaa(PhysicsObject pelaaja2, PhysicsObject kohde) |
---|
463 | { |
---|
464 | P2elamaMittari.Value -= 3; |
---|
465 | } |
---|
466 | |
---|
467 | void Pelaaja3Tuhoutuu(double mittarinArvo) |
---|
468 | { |
---|
469 | pelaaja.Destroy(); |
---|
470 | MessageDisplay.Add("Dead"); |
---|
471 | |
---|
472 | Replay2(); |
---|
473 | } |
---|
474 | void LisaaElamaa3(PhysicsObject pelaaja2, PhysicsObject potion) |
---|
475 | { |
---|
476 | potion.Destroy(); |
---|
477 | P2elamaMittari.Value += 50; |
---|
478 | |
---|
479 | } |
---|
480 | |
---|
481 | void Pelaaja3Menettaa2(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
482 | { |
---|
483 | elamaMittari.Value -= 5; |
---|
484 | } |
---|
485 | |
---|
486 | void PelaajaLyo() |
---|
487 | { |
---|
488 | PhysicsObject Miekka = new PhysicsObject(5, 5); |
---|
489 | Miekka.IsVisible = false; |
---|
490 | Miekka.Position = pelaaja.Position; |
---|
491 | Miekka.Tag = "ase"; |
---|
492 | AddCollisionHandler(Miekka, "Demoni", DemoniKuolee); |
---|
493 | AddCollisionHandler(Miekka, "Ampuja", DemoniKuolee); |
---|
494 | AddCollisionHandler(Miekka, "mage", DemoniKuolee); |
---|
495 | Miekka.Push(new Vector(20, 0)); |
---|
496 | Add(Miekka); |
---|
497 | pelaaja.Animation = new Animation(pelaajanAnim); |
---|
498 | pelaaja.Animation.Start(); |
---|
499 | pelaaja.Animation.Played += new Action(AnimValm); |
---|
500 | pelaaja.Animation.FPS = 10; |
---|
501 | |
---|
502 | |
---|
503 | } |
---|
504 | |
---|
505 | void AnimValm() |
---|
506 | { |
---|
507 | pelaaja.Animation.Stop(); |
---|
508 | } |
---|
509 | |
---|
510 | void PelaajaLyo2() |
---|
511 | { |
---|
512 | PhysicsObject Miekka2 = new PhysicsObject(5, 5); |
---|
513 | Miekka2.IsVisible = false; |
---|
514 | Miekka2.Position = pelaaja.Position; |
---|
515 | Miekka2.Tag = "ase"; |
---|
516 | Miekka2.Push(new Vector(-20, 0)); |
---|
517 | AddCollisionHandler(Miekka2, "Demoni", DemoniKuolee); |
---|
518 | AddCollisionHandler(Miekka2, "Ampuja", DemoniKuolee); |
---|
519 | AddCollisionHandler(Miekka2, "mage", DemoniKuolee); |
---|
520 | Add(Miekka2); |
---|
521 | |
---|
522 | pelaaja.Animation = new Animation(pelaajanAnimPeilattu); |
---|
523 | pelaaja.Animation.Start(); |
---|
524 | pelaaja.Animation.Played += new Action(AnimValm2); |
---|
525 | pelaaja.Animation.FPS = 10; |
---|
526 | |
---|
527 | } |
---|
528 | |
---|
529 | void AnimValm2() |
---|
530 | { |
---|
531 | pelaaja.Animation.Stop(); |
---|
532 | } |
---|
533 | void PelaajaLyo4() |
---|
534 | { |
---|
535 | PhysicsObject Miekka3 = new PhysicsObject(5, 5); |
---|
536 | Miekka3.IsVisible = false; |
---|
537 | Miekka3.Position = pelaaja.Position; |
---|
538 | Miekka3.Tag = "ase"; |
---|
539 | AddCollisionHandler(Miekka3, "Demoni", DemoniKuolee); |
---|
540 | AddCollisionHandler(Miekka3, "Ampuja", DemoniKuolee); |
---|
541 | AddCollisionHandler(Miekka3, "mage", DemoniKuolee); |
---|
542 | Miekka3.Push(new Vector(20, 0)); |
---|
543 | Add(Miekka3); |
---|
544 | pelaaja3.Animation = new Animation(pelaajanAnim); |
---|
545 | pelaaja3.Animation.Start(); |
---|
546 | pelaaja3.Animation.Played += new Action(AnimValm3); |
---|
547 | pelaaja3.Animation.FPS = 10; |
---|
548 | |
---|
549 | |
---|
550 | } |
---|
551 | |
---|
552 | void AnimValm3() |
---|
553 | { |
---|
554 | pelaaja3.Animation.Stop(); |
---|
555 | } |
---|
556 | |
---|
557 | void PelaajaLyo3() |
---|
558 | { |
---|
559 | PhysicsObject Miekka4 = new PhysicsObject(5, 5); |
---|
560 | Miekka4.IsVisible = false; |
---|
561 | Miekka4.Position = pelaaja.Position; |
---|
562 | Miekka4.Tag = "ase"; |
---|
563 | Miekka4.Push(new Vector(-20, 0)); |
---|
564 | AddCollisionHandler(Miekka4, "Demoni", DemoniKuolee); |
---|
565 | AddCollisionHandler(Miekka4, "Ampuja", DemoniKuolee); |
---|
566 | AddCollisionHandler(Miekka4, "mage", DemoniKuolee); |
---|
567 | Add(Miekka4); |
---|
568 | |
---|
569 | pelaaja.Animation = new Animation(pelaajanAnimPeilattu); |
---|
570 | pelaaja.Animation.Start(); |
---|
571 | pelaaja.Animation.Played += new Action(AnimValm5); |
---|
572 | pelaaja.Animation.FPS = 10; |
---|
573 | |
---|
574 | } |
---|
575 | |
---|
576 | void AnimValm5() |
---|
577 | { |
---|
578 | pelaaja3.Animation.Stop(); |
---|
579 | } |
---|
580 | |
---|
581 | |
---|
582 | void PainettiinValikonNappiaP1(int valinta) |
---|
583 | { |
---|
584 | switch (valinta) |
---|
585 | { |
---|
586 | case 0: |
---|
587 | Aloitus("Tutorial map", "Road To War"); |
---|
588 | break; |
---|
589 | |
---|
590 | case 1: |
---|
591 | Aloitus("kartta", "Field Forces"); |
---|
592 | break; |
---|
593 | |
---|
594 | case 2: |
---|
595 | Aloitus("Kentta2", "Far From Victory"); |
---|
596 | break; |
---|
597 | |
---|
598 | case 3: |
---|
599 | Aloitus("Kentta3", "Field Forces"); |
---|
600 | break; |
---|
601 | |
---|
602 | case 4: |
---|
603 | Begin(); |
---|
604 | break; |
---|
605 | |
---|
606 | case 5: |
---|
607 | Exit(); |
---|
608 | break; |
---|
609 | } |
---|
610 | } |
---|
611 | void PainettiinValikonNappiaP2(int valinta) |
---|
612 | { |
---|
613 | switch (valinta) |
---|
614 | { |
---|
615 | case 0: |
---|
616 | Aloitus2("Tutorial map", "Road To War"); |
---|
617 | break; |
---|
618 | |
---|
619 | case 1: |
---|
620 | Aloitus2("kartta", "Field Forces"); |
---|
621 | break; |
---|
622 | |
---|
623 | case 2: |
---|
624 | Aloitus2("Kentta2", "Far From Victory"); |
---|
625 | break; |
---|
626 | |
---|
627 | case 3: |
---|
628 | Aloitus2("Kentta3", "Field Forces"); |
---|
629 | break; |
---|
630 | |
---|
631 | case 4: |
---|
632 | Begin(); |
---|
633 | break; |
---|
634 | |
---|
635 | case 5: |
---|
636 | Exit(); |
---|
637 | break; |
---|
638 | } |
---|
639 | } |
---|
640 | |
---|
641 | |
---|
642 | void Aloitus(string levelFile, string kappale) |
---|
643 | { |
---|
644 | |
---|
645 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
646 | |
---|
647 | LuoKenttä(levelFile); |
---|
648 | MediaPlayer.Stop(); |
---|
649 | MediaPlayer.Play(kappale); |
---|
650 | AsetaOhjaimet(); |
---|
651 | } |
---|
652 | void Aloitus2(string levelFile, string kappale) |
---|
653 | { |
---|
654 | |
---|
655 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
656 | |
---|
657 | LuoKenttä2(levelFile); |
---|
658 | MediaPlayer.Stop(); |
---|
659 | MediaPlayer.Play(kappale); |
---|
660 | AsetaOhjaimet2(); |
---|
661 | } |
---|
662 | |
---|
663 | |
---|
664 | void LuoMaali(Vector paikka, double leveys, double korkeus) |
---|
665 | { |
---|
666 | PhysicsObject maali = PhysicsObject.CreateStaticObject(40, 80); |
---|
667 | maali.Position = paikka; |
---|
668 | maali.Image = maalinKuva; |
---|
669 | maali.Tag = "maali"; |
---|
670 | maali.Color = Color.Blue; |
---|
671 | |
---|
672 | Add(maali); |
---|
673 | } |
---|
674 | void SaavutitMaalin(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
675 | { |
---|
676 | MediaPlayer.Stop(); |
---|
677 | MediaPlayer.Play("Opening The"); |
---|
678 | YouWin(); |
---|
679 | } |
---|
680 | void SaavutitMaalin2(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
681 | { |
---|
682 | MediaPlayer.Stop(); |
---|
683 | MediaPlayer.Play("Opening The"); |
---|
684 | YouWin2(); |
---|
685 | } |
---|
686 | void SaavutitMaalin3(PhysicsObject pelaaja, PhysicsObject kohde) |
---|
687 | { |
---|
688 | MediaPlayer.Stop(); |
---|
689 | MediaPlayer.Play("Opening The"); |
---|
690 | YouWin2(); |
---|
691 | } |
---|
692 | void Replay() |
---|
693 | { |
---|
694 | ClearAll(); |
---|
695 | MediaPlayer.Stop(); |
---|
696 | MediaPlayer.Play("The Defeated"); |
---|
697 | MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", |
---|
698 | "Replay", "Menu", "End"); |
---|
699 | valikko2.ItemSelected += PainettiinValikonNappia2; |
---|
700 | Add(valikko2); |
---|
701 | } |
---|
702 | void PainettiinValikonNappia2(int valinta) |
---|
703 | { |
---|
704 | switch (valinta) |
---|
705 | { |
---|
706 | |
---|
707 | case 0: |
---|
708 | AloitaUudelleen(); |
---|
709 | break; |
---|
710 | |
---|
711 | case 1: |
---|
712 | Begin(); |
---|
713 | break; |
---|
714 | |
---|
715 | case 2: |
---|
716 | Exit(); |
---|
717 | break; |
---|
718 | } |
---|
719 | } |
---|
720 | void YouWin() |
---|
721 | { |
---|
722 | ClearAll(); |
---|
723 | MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", |
---|
724 | "Replay", "Menu", "End"); |
---|
725 | valikko3.ItemSelected += PainettiinValikonNappia3; |
---|
726 | Add(valikko3); |
---|
727 | } |
---|
728 | void PainettiinValikonNappia3(int valinta) |
---|
729 | { |
---|
730 | switch (valinta) |
---|
731 | { |
---|
732 | case 0: |
---|
733 | AloitaUudelleen(); |
---|
734 | break; |
---|
735 | |
---|
736 | case 1: |
---|
737 | Begin(); |
---|
738 | break; |
---|
739 | |
---|
740 | case 2: |
---|
741 | Exit(); |
---|
742 | break; |
---|
743 | } |
---|
744 | } |
---|
745 | void YouWin2() |
---|
746 | { |
---|
747 | ClearAll(); |
---|
748 | MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", |
---|
749 | "Replay", "Menu", "End"); |
---|
750 | valikko3.ItemSelected += PainettiinValikonNappiaP2W; |
---|
751 | Add(valikko3); |
---|
752 | } |
---|
753 | void PainettiinValikonNappiaP2W(int valinta) |
---|
754 | { |
---|
755 | switch (valinta) |
---|
756 | { |
---|
757 | case 0: |
---|
758 | AloitaUudelleen2(); |
---|
759 | break; |
---|
760 | |
---|
761 | case 1: |
---|
762 | Begin(); |
---|
763 | break; |
---|
764 | |
---|
765 | case 2: |
---|
766 | Exit(); |
---|
767 | break; |
---|
768 | } |
---|
769 | } |
---|
770 | |
---|
771 | void AloitaUudelleen() |
---|
772 | { |
---|
773 | ClearAll(); |
---|
774 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
775 | LuoKenttä(CurrentLevelFile); |
---|
776 | AsetaOhjaimet(); |
---|
777 | } |
---|
778 | void AloitaUudelleen2() |
---|
779 | { |
---|
780 | ClearAll(); |
---|
781 | pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); |
---|
782 | LuoKenttä2(CurrentLevelFile); |
---|
783 | AsetaOhjaimet(); |
---|
784 | } |
---|
785 | |
---|
786 | Brain AivotMage() |
---|
787 | { |
---|
788 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
789 | seuraajanAivot.Speed = 20; |
---|
790 | seuraajanAivot.TargetFollowDistance = 200; |
---|
791 | seuraajanAivot.FollowAlways = true; |
---|
792 | seuraajanAivot.TargetCloseDistance = 300; |
---|
793 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella3; |
---|
794 | return seuraajanAivot; |
---|
795 | } |
---|
796 | |
---|
797 | void mitaTapahtuuKunOllaanLahella3(object lahettajaAivot, EventArgs e) |
---|
798 | { |
---|
799 | //Magen ase on sen lapsiolio eli Objects-listassa paikassa 0. |
---|
800 | |
---|
801 | PhysicsObject mage = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
802 | |
---|
803 | if (mage == null || mage.Objects.Count < 1) return; |
---|
804 | |
---|
805 | PlasmaCannon mageAse = (PlasmaCannon)mage.Objects[0]; |
---|
806 | mageAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
807 | PhysicsObject ammus = mageAse.Shoot(); |
---|
808 | |
---|
809 | if (ammus != null) |
---|
810 | { |
---|
811 | AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); |
---|
812 | ammus.Tag = "ammus"; |
---|
813 | } |
---|
814 | } |
---|
815 | |
---|
816 | void LuoMage(Vector paikka, double leveys, double korkeus) |
---|
817 | { |
---|
818 | |
---|
819 | PhysicsObject Mage = new PhysicsObject(20, 40); |
---|
820 | Mage.IgnoresGravity = true; |
---|
821 | Mage.CanRotate = false; |
---|
822 | Mage.Position = paikka; |
---|
823 | Mage.Image = magenKuva; |
---|
824 | Mage.IsVisible = true; |
---|
825 | Mage.Color = Color.Black; |
---|
826 | Mage.Tag = "mage"; |
---|
827 | Mage.Brain = AivotMage(); |
---|
828 | PlasmaCannon pyssy = new PlasmaCannon(20, 5); |
---|
829 | Mage.Add(pyssy); |
---|
830 | pyssy.TimeBetweenUse = TimeSpan.FromSeconds(0.5); |
---|
831 | pyssy.IsVisible = false; |
---|
832 | Add(Mage); |
---|
833 | } |
---|
834 | Brain AivotHunter() |
---|
835 | { |
---|
836 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
837 | seuraajanAivot.Speed = 300; |
---|
838 | seuraajanAivot.TargetFollowDistance = 200; |
---|
839 | seuraajanAivot.FollowAlways = true; |
---|
840 | seuraajanAivot.TargetCloseDistance = 200; |
---|
841 | |
---|
842 | |
---|
843 | |
---|
844 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella4; |
---|
845 | return seuraajanAivot; |
---|
846 | } |
---|
847 | |
---|
848 | |
---|
849 | void mitaTapahtuuKunOllaanLahella4(object lahettajaAivot, EventArgs e) |
---|
850 | { |
---|
851 | ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
852 | PhysicsObject ammus = ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Shoot(); |
---|
853 | if (ammus != null) |
---|
854 | { |
---|
855 | AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); |
---|
856 | ammus.Tag = "ammus"; |
---|
857 | } |
---|
858 | } |
---|
859 | void LuoHunter(Vector paikka, double leveys, double korkeus) |
---|
860 | { |
---|
861 | |
---|
862 | PlatformCharacter hunter = new PlatformCharacter(20, 40); |
---|
863 | |
---|
864 | hunter.MaxVelocity = 400.400; |
---|
865 | hunter.Position = paikka; |
---|
866 | hunter.Image = hunterKuva; |
---|
867 | hunter.Color = Color.Black; |
---|
868 | hunter.Tag = "Ampuja"; |
---|
869 | hunter.Brain = AivotHunter(); |
---|
870 | AddCollisionHandler(hunter, "piikki", HuntKuoli); |
---|
871 | hunter.Weapon = new PlasmaCannon(5, 3); |
---|
872 | hunter.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(3); |
---|
873 | hunter.Weapon.IsVisible = false; |
---|
874 | Add(hunter); |
---|
875 | } |
---|
876 | void LuoKavlor(Vector paikka, double leveys, double korkeus) |
---|
877 | { |
---|
878 | |
---|
879 | PhysicsObject kavlor = new PhysicsObject(20, 40); |
---|
880 | |
---|
881 | kavlor.MaxVelocity = 400.400; |
---|
882 | kavlor.Position = paikka; |
---|
883 | kavlor.Image = kavlorKuva; |
---|
884 | kavlor.Color = Color.Black; |
---|
885 | kavlor.Tag = "kavlor"; |
---|
886 | kavlor.Brain = AivotKavlor(); |
---|
887 | kavlor.CanRotate = false; |
---|
888 | PlasmaCannon pyssy = new PlasmaCannon(20, 5); |
---|
889 | kavlor.Add(pyssy); |
---|
890 | pyssy.TimeBetweenUse = TimeSpan.FromSeconds(3); |
---|
891 | pyssy.IsVisible = false; |
---|
892 | KavlorinElamat(kavlor); |
---|
893 | AddCollisionHandler(kavlor, "ase", KavlorMenettaa); |
---|
894 | Add(kavlor); |
---|
895 | } |
---|
896 | void HuntKuoli(PhysicsObject hunter, PhysicsObject kohde) |
---|
897 | { |
---|
898 | hunter.Destroy(); |
---|
899 | } |
---|
900 | void CafgarinElamat(PhysicsObject Cafgar) |
---|
901 | { |
---|
902 | elamaMittari2 = new DoubleMeter(25); |
---|
903 | elamaMittari2.MaxValue = 50; |
---|
904 | ProgressBar elamaPalkki2 = new ProgressBar(150, 10); |
---|
905 | elamaPalkki2.BindTo(elamaMittari2); |
---|
906 | Add(elamaPalkki2); |
---|
907 | |
---|
908 | elamaPalkki2.X = Screen.Right - 150; |
---|
909 | elamaPalkki2.Y = Screen.Top - 20; |
---|
910 | //elamaPalkki.Angle = Angle.RightAngle; |
---|
911 | elamaPalkki2.BarColor = Color.Red; |
---|
912 | elamaPalkki2.BorderColor = Color.White; |
---|
913 | //elamaPalkki.Angle = Angle.FromDegrees(90); |
---|
914 | elamaMittari2.Value = 50; |
---|
915 | // elamaMittari.LowerLimit += CafgarKuolee; |
---|
916 | elamaMittari2.LowerLimit += delegate |
---|
917 | { |
---|
918 | Cafgar.Destroy(); |
---|
919 | YouWin(); |
---|
920 | }; |
---|
921 | } |
---|
922 | |
---|
923 | void CafgarMenettaa(PhysicsObject Cafgar, PhysicsObject kohde) |
---|
924 | { |
---|
925 | elamaMittari2.Value -= 5; |
---|
926 | } |
---|
927 | void KavlorinElamat(PhysicsObject Kavlor) |
---|
928 | { |
---|
929 | elamaMittari3 = new DoubleMeter(25); |
---|
930 | elamaMittari3.MaxValue = 50; |
---|
931 | ProgressBar elamaPalkki3 = new ProgressBar(150, 10); |
---|
932 | elamaPalkki3.BindTo(elamaMittari3); |
---|
933 | Add(elamaPalkki3); |
---|
934 | |
---|
935 | elamaPalkki3.X = Screen.Right - 150; |
---|
936 | elamaPalkki3.Y = Screen.Top - 30; |
---|
937 | //elamaPalkki.Angle = Angle.RightAngle; |
---|
938 | elamaPalkki3.BarColor = Color.Purple; |
---|
939 | elamaPalkki3.BorderColor = Color.White; |
---|
940 | //elamaPalkki.Angle = Angle.FromDegrees(90); |
---|
941 | elamaMittari3.Value = 50; |
---|
942 | // elamaMittari.LowerLimit += CafgarKuolee; |
---|
943 | elamaMittari3.LowerLimit += delegate |
---|
944 | { |
---|
945 | Kavlor.Destroy(); |
---|
946 | YouWin(); |
---|
947 | }; |
---|
948 | } |
---|
949 | |
---|
950 | void KavlorMenettaa(PhysicsObject Kavlor, PhysicsObject kohde) |
---|
951 | { |
---|
952 | elamaMittari3.Value -= 5; |
---|
953 | } |
---|
954 | Brain AivotKavlor() |
---|
955 | { |
---|
956 | FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); |
---|
957 | seuraajanAivot.Speed = 300; |
---|
958 | seuraajanAivot.TargetFollowDistance = 100; |
---|
959 | seuraajanAivot.FollowAlways = true; |
---|
960 | seuraajanAivot.TargetCloseDistance = 200; |
---|
961 | seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella5; |
---|
962 | return seuraajanAivot; |
---|
963 | } |
---|
964 | |
---|
965 | void mitaTapahtuuKunOllaanLahella5(object lahettajaAivot, EventArgs e) |
---|
966 | { |
---|
967 | //Magen ase on sen lapsiolio eli Objects-listassa paikassa 0. |
---|
968 | |
---|
969 | PhysicsObject kavlor = (lahettajaAivot as Brain).Owner as PhysicsObject; |
---|
970 | |
---|
971 | if (kavlor == null || kavlor.Objects.Count < 1) return; |
---|
972 | |
---|
973 | PlasmaCannon kavlorAse = (PlasmaCannon)kavlor.Objects[0]; |
---|
974 | kavlorAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; |
---|
975 | PhysicsObject ammus = kavlorAse.Shoot(); |
---|
976 | |
---|
977 | if (ammus != null) |
---|
978 | { |
---|
979 | AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); |
---|
980 | ammus.Tag = "ammus"; |
---|
981 | } |
---|
982 | } |
---|
983 | void EPotion(Vector paikka, double leveys, double korkeus) |
---|
984 | { |
---|
985 | PhysicsObject potion = new PhysicsObject(20, 20); |
---|
986 | potion.Position = paikka; |
---|
987 | potion.CanRotate = false; |
---|
988 | potion.Shape = Shape.Heart; |
---|
989 | potion.Color = Color.Red; |
---|
990 | potion.Tag = "peruna"; |
---|
991 | Add(potion); |
---|
992 | } |
---|
993 | void LisaaElamaa(PhysicsObject pelaaja, PhysicsObject potion) |
---|
994 | { |
---|
995 | potion.Destroy(); |
---|
996 | elamaMittari.Value += 50; |
---|
997 | |
---|
998 | } |
---|
999 | void P1MSW() |
---|
1000 | { |
---|
1001 | MultiSelectWindow valikko = new MultiSelectWindow("One Player", |
---|
1002 | "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); |
---|
1003 | valikko.ItemSelected += PainettiinValikonNappiaP1; |
---|
1004 | Add(valikko); |
---|
1005 | } |
---|
1006 | void P2MSW() |
---|
1007 | { |
---|
1008 | MultiSelectWindow valikko = new MultiSelectWindow("Two Players", |
---|
1009 | "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); |
---|
1010 | valikko.ItemSelected += PainettiinValikonNappiaP2; |
---|
1011 | Add(valikko); |
---|
1012 | } |
---|
1013 | void Replay2() |
---|
1014 | { |
---|
1015 | ClearAll(); |
---|
1016 | MediaPlayer.Stop(); |
---|
1017 | MediaPlayer.Play("The Defeated"); |
---|
1018 | MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", |
---|
1019 | "Replay", "Menu", "End"); |
---|
1020 | valikko2.ItemSelected += PainettiinValikonNappiaP22; |
---|
1021 | Add(valikko2); |
---|
1022 | } |
---|
1023 | void PainettiinValikonNappiaP22(int valinta) |
---|
1024 | { |
---|
1025 | switch (valinta) |
---|
1026 | { |
---|
1027 | |
---|
1028 | case 0: |
---|
1029 | AloitaUudelleen2(); |
---|
1030 | break; |
---|
1031 | |
---|
1032 | case 1: |
---|
1033 | Begin(); |
---|
1034 | break; |
---|
1035 | |
---|
1036 | case 2: |
---|
1037 | Exit(); |
---|
1038 | break; |
---|
1039 | } |
---|
1040 | } |
---|
1041 | } |
---|