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