source: 2013/24/HenryS/Wizard_Battle/Wizard_Battle/Wizard_Battle/Wizard_Battle.cs @ 4098

Revision 4098, 26.1 KB checked in by hejusiuk, 6 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Wizard_Battle : PhysicsGame
10{
11    const double nopeus = 350;
12    const double hyppyNopeus = 850;
13    const int RUUDUN_KOKO = 40;
14
15    List<Label> valikonKohdat;
16
17    TileMap kentta;
18
19    PlatformCharacter pelaaja1;
20    PlatformCharacter pelaaja2;
21    PlatformCharacter pelaaja3;
22    PlatformCharacter pelaaja4;
23
24    DoubleMeter elamaLaskuri;
25    DoubleMeter elamaLaskuri2;
26    DoubleMeter elamaLaskuri3;
27    DoubleMeter elamaLaskuri4;
28
29    IntMeter Lopunlaskuri;
30
31    bool saakoTeleportata = true;
32    bool saakoLuoda = true;
33    bool saakoHyokata = true;
34    bool saakoTehda = true;
35    bool saakoMuuttua = true;
36    bool saakoPiikittaa = true;
37    bool kaksiPelaajaa = true;
38    bool kolmePelaajaa = true;
39    bool neljaPelaajaa = true;
40
41    Image pelaajanKuva = LoadImage("norsu");
42    Image tahtiKuva = LoadImage("tahti");
43    Image WVelho = LoadImage("BlueWizard");
44    Image DVelho = LoadImage("DarkWizard");
45    Image RVelho = LoadImage("RedWizard");
46    Image BVelho = LoadImage("BrownWizard");
47    Image Tulipallo = LoadImage("Fireball");
48    Image Tuli = LoadImage("Fire");
49    Image Vortex = LoadImage("Vortex");
50    Image Seinä = LoadImage("Mud");
51    private Image[] Piikki = LoadImages("Spike1", "Spike2", "Spike3");
52    Image Tulipyorre = LoadImage("Firevortex");
53    Image Hyoky = LoadImage("Tidal");
54    Image Vesipallo = LoadImage("Waterball");
55    Image Spike = LoadImage("Spike3");
56    Image Alusta = LoadImage("Platform");
57
58    SoundEffect maaliAani = LoadSoundEffect("maali");
59
60    public override void Begin()
61    {
62        Valikko();
63    }
64
65    void Valikko()
66        {
67            ClearAll();
68            ControllerOne.Listen(Button.A, ButtonState.Down, LuoKentta, "Aloita");
69            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
70            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
71            IsMouseVisible = true;
72            valikonKohdat = new List<Label>();
73            Label kohta1 = new Label("Kaksinpeli");
74            kohta1.Position = new Vector(0, 40);
75            valikonKohdat.Add(kohta1);
76            Label kohta2 = new Label("Kolminpeli");
77            kohta2.Position = new Vector(0, 80);
78            valikonKohdat.Add(kohta2);
79            Label kohta3 = new Label("Nelinpeli");
80            kohta3.Position = new Vector(0, 120);
81            valikonKohdat.Add(kohta3);
82            Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
83            Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, kaksinPeli, null);
84            Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, kolminPeli, null);
85            Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, nelinPeli, null);
86
87            foreach (Label valikonKohta in valikonKohdat)
88            {
89                Add(valikonKohta);
90            }
91   
92   
93    }
94
95            void ValikossaLiikkuminen(AnalogState hiirenTila)
96        {
97
98            foreach (Label Kohta in valikonKohdat)
99
100            {
101                if (Mouse.IsCursorOn(Kohta))
102                {
103                    Kohta.TextColor = Color.Red;
104                }
105                else
106                {
107                    Kohta.TextColor = Color.Black;
108                }
109
110            }
111        }
112
113            void kaksinPeli()
114            {
115                kolmePelaajaa = false;
116                neljaPelaajaa = false;
117                LuoKentta();
118                Lopunlaskuri.MaxValue = 1;
119           
120            }
121            void kolminPeli()
122            {
123                kaksiPelaajaa = false;
124                neljaPelaajaa = false;
125                LuoKentta();
126                Lopunlaskuri.MaxValue = 2;
127            }
128            void nelinPeli()
129            {
130                kolmePelaajaa = false;
131                kaksiPelaajaa = false;
132                LuoKentta();
133                Lopunlaskuri.MaxValue = 3;
134            }
135
136    void LuoKentta()
137    {
138
139        ClearAll();
140        kentta = TileMap.FromLevelAsset("kentta1");
141        kentta.SetTileMethod('#', LisaaTaso);
142        kentta.SetTileMethod('¤', LisaaAlusta);
143        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
144        Gravity = new Vector(0, -1000);
145        if (kaksiPelaajaa == true)
146        {
147            kentta.SetTileMethod('P', LuoPelaaja1);
148            kentta.SetTileMethod('D', LuoPelaaja2);
149            kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
150            LisaaNappaimet1();
151            LisaaNappaimet2();
152            LuoElamaLaskuri();
153            LuoElamaLaskuri2();
154
155        }
156        if (kolmePelaajaa == true)
157        {
158            kentta.SetTileMethod('P', LuoPelaaja1);
159            kentta.SetTileMethod('D', LuoPelaaja2);
160            kentta.SetTileMethod('R', LuoPelaaja3);
161            kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
162            LisaaNappaimet1();
163            LisaaNappaimet2();
164            LisaaNappaimet3();
165            LuoElamaLaskuri();
166            LuoElamaLaskuri2();
167            LuoElamaLaskuri3();
168        }
169        if (neljaPelaajaa == true)
170        {
171            kentta.SetTileMethod('P', LuoPelaaja1);
172            kentta.SetTileMethod('D', LuoPelaaja2);
173            kentta.SetTileMethod('R', LuoPelaaja3);
174            kentta.SetTileMethod('B', LuoPelaaja4);
175            kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
176            LisaaNappaimet1();
177            LisaaNappaimet2();
178            LisaaNappaimet3();
179            LisaaNappaimet4();
180            LuoElamaLaskuri();
181            LuoElamaLaskuri2();
182            LuoElamaLaskuri3();
183            LuoElamaLaskuri4();
184        }
185
186        Level.CreateBorders();
187        Camera.ZoomToLevel();
188        Camera.StayInLevel = true;
189        Loppui();
190    }
191
192    void LisaaTaso(Vector paikka, double leveys, double korkeus)
193    {
194        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
195        taso.Position = paikka;
196        taso.Image = Seinä;
197        Add(taso);
198    }
199    void LisaaAlusta(Vector paikka, double leveys, double korkeus)
200    {
201        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
202        taso.Position = paikka;
203        taso.Image = Alusta;
204        Add(taso);
205    }
206
207    void LuoPelaaja1(Vector paikka, double leveys, double korkeus)
208    {
209        pelaaja1 = new PlatformCharacter(80.0, 80.0);
210        pelaaja1.Position = paikka;
211        pelaaja1.Mass = 4.0;
212        pelaaja1.Image = WVelho;
213        Add(pelaaja1);
214        pelaaja1.Weapon = new AssaultRifle(30, 10);
215        pelaaja1.Weapon.Ammo.Value = 1000;
216        pelaaja1.Weapon.ProjectileCollision = AmmusOsui3;
217        pelaaja1.Weapon.FireRate = 0.7;
218        pelaaja1.Weapon.IsVisible = false;
219    }
220    void AmmusOsui3(PhysicsObject ammus, PhysicsObject kohde)
221    {
222        ammus.Destroy();
223
224        if (kohde == pelaaja2)
225        {
226            elamaLaskuri2.Value -= 15;
227        }
228        if (kohde == pelaaja3)
229        {
230            elamaLaskuri3.Value -= 15;
231        }
232        if (kohde == pelaaja4)
233        {
234            elamaLaskuri4.Value -= 15;
235        }
236    }
237
238
239    void LuoPelaaja2(Vector paikka, double leveys, double korkeus)
240    {
241        pelaaja2 = new PlatformCharacter(80.0, 80.0);
242        pelaaja2.Position = paikka;
243        pelaaja2.Mass = 4.0;
244        pelaaja2.Image = DVelho;
245        Add(pelaaja2);
246        pelaaja2.Weapon = new AssaultRifle(30, 10);
247        pelaaja2.Weapon.Ammo.Value = 1000;
248        pelaaja2.Weapon.ProjectileCollision = AmmusOsui;
249        pelaaja2.Weapon.FireRate = 0.7;
250        pelaaja2.Weapon.IsVisible = false;
251       
252    }
253    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
254    {
255           
256            ammus.Destroy();
257
258        if (kohde == pelaaja1)
259        {
260            elamaLaskuri.Value -= 15;
261        }
262
263        if (kohde == pelaaja3)
264        {
265            elamaLaskuri3.Value -= 15;
266        }
267        if (kohde == pelaaja4)
268        {
269            elamaLaskuri4.Value -= 15;
270        }
271    }
272
273    void LuoPelaaja3(Vector paikka, double leveys, double korkeus)
274    {
275        pelaaja3 = new PlatformCharacter(80.0, 80.0);
276        pelaaja3.Position = paikka;
277        pelaaja3.Mass = 4.0;
278        pelaaja3.Image = RVelho;
279        Add(pelaaja3);
280        pelaaja3.Weapon = new AssaultRifle(30, 10);
281        pelaaja3.Weapon.Ammo.Value = 1000;
282        pelaaja3.Weapon.ProjectileCollision = AmmusOsui2;
283        pelaaja3.Weapon.FireRate = 0.7;
284        pelaaja3.Weapon.IsVisible = false;
285    }
286
287    void AmmusOsui2(PhysicsObject ammus, PhysicsObject kohde)
288    {
289        ammus.Destroy();
290
291        if (kohde == pelaaja1)
292        {
293            elamaLaskuri.Value -= 100;
294            PhysicsObject tulta = new PhysicsObject(50.0, 70.0);
295            tulta.Position = pelaaja1.Position;
296            tulta.Image = Tuli;
297            tulta.IgnoresCollisionResponse = true;
298            Add(tulta, 2);
299            FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
300            seuraajanAivot.Speed = 1000;
301            seuraajanAivot.Active = true;
302            tulta.Brain = seuraajanAivot;
303            tulta.MaximumLifetime = TimeSpan.FromSeconds(1.0);
304
305        }
306        if (kohde == pelaaja2)
307        {
308            elamaLaskuri2.Value -= 100;
309            PhysicsObject tulta = new PhysicsObject(50.0, 70.0);
310            tulta.Position = pelaaja2.Position;
311            tulta.Image = Tuli;
312            tulta.IgnoresCollisionResponse = true;
313            Add(tulta, 2);
314            FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja2);
315            seuraajanAivot.Speed = 1000;
316            seuraajanAivot.Active = true;
317            tulta.Brain = seuraajanAivot;
318            tulta.MaximumLifetime = TimeSpan.FromSeconds(1.0);
319
320        }
321        if (kohde == pelaaja4)
322        {
323            elamaLaskuri4.Value -= 100;
324            PhysicsObject tulta = new PhysicsObject(50.0, 70.0);
325            tulta.Position = pelaaja4.Position;
326            tulta.Image = Tuli;
327            tulta.IgnoresCollisionResponse = true;
328            Add(tulta, 2);
329            FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja4);
330            seuraajanAivot.Speed = 1000;
331            seuraajanAivot.Active = true;
332            tulta.Brain = seuraajanAivot;
333            tulta.MaximumLifetime = TimeSpan.FromSeconds(1.0);
334
335        }
336    }
337
338    void LuoPelaaja4(Vector paikka, double leveys, double korkeus)
339    {
340        pelaaja4 = new PlatformCharacter(80.0, 80.0);
341        pelaaja4.Position = paikka;
342        pelaaja4.Mass = 4.0;
343        pelaaja4.Image = BVelho;
344        Add(pelaaja4);
345    }
346
347    void LisaaNappaimet1()
348    {
349        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
350        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
351
352        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Water wizard liikkuu vasemmalle", pelaaja1, -nopeus);
353        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Water wizard liikkuu oikealle", pelaaja1, nopeus);
354        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Water wizard hyppää", pelaaja1, hyppyNopeus);
355        Keyboard.Listen(Key.E, ButtonState.Pressed, AmmuAseella3, "Water wizard Hyökkää", pelaaja1);
356
357
358        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
359
360        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Water wizard liikkuu vasemmalle", pelaaja1, -nopeus);
361        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Water wizard liikkuu oikealle", pelaaja1, nopeus);
362        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Water wizard hyppää", pelaaja1, hyppyNopeus);
363
364
365    }
366
367    void LisaaNappaimet2()
368    {
369        Keyboard.Listen(Key.F, ButtonState.Down, Liikuta, "Dark wizard liikkuu vasemmalle", pelaaja2, -nopeus);
370        Keyboard.Listen(Key.H, ButtonState.Down, Liikuta, "Dark wizard liikkuu oikealle", pelaaja2, nopeus);
371        Keyboard.Listen(Key.T, ButtonState.Pressed, Hyppaa, "Dark wizard hyppää", pelaaja2, hyppyNopeus);
372        Keyboard.Listen(Key.R, ButtonState.Pressed, Teleport, "Dark wizard Teleporttaa", pelaaja2);
373        Keyboard.Listen(Key.Y, ButtonState.Pressed, AmmuAseella2, "Dark wizard Hyökkää", pelaaja2);
374        Keyboard.Listen(Key.B, ButtonState.Pressed, Nakymaton, "Dark wizard muuttuu näkymättömäksi", pelaaja2);
375
376        ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Dark wizard liikkuu vasemmalle", pelaaja2, -nopeus);
377        ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Dark wizard liikkuu oikealle", pelaaja2, nopeus);
378        ControllerTwo.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Dark wizard hyppää", pelaaja2, hyppyNopeus);
379        ControllerTwo.Listen(Button.Y, ButtonState.Pressed, Teleport, "Dark wizard Teleporttaa", pelaaja2);
380   
381    }
382
383    void LisaaNappaimet3()
384    {
385        Keyboard.Listen(Key.J, ButtonState.Down, Liikuta, "Fire wizard liikkuu vasemmalle", pelaaja3, -nopeus);
386        Keyboard.Listen(Key.L, ButtonState.Down, Liikuta, "Fire wizard liikkuu oikealle", pelaaja3, nopeus);
387        Keyboard.Listen(Key.I, ButtonState.Pressed, Hyppaa, "Fire wizard hyppää", pelaaja3, hyppyNopeus);
388        Keyboard.Listen(Key.O, ButtonState.Down, AmmuAseella, "Fire wizard ampuu", pelaaja3);
389        Keyboard.Listen(Key.U, ButtonState.Down, TeePyorre, "Fire wizard suojaa", pelaaja4);
390
391        ControllerThree.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Red wizard liikkuu vasemmalle", pelaaja3, -nopeus);
392        ControllerThree.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Red wizard liikkuu oikealle", pelaaja3, nopeus);
393        ControllerThree.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Red wizard hyppää", pelaaja3, hyppyNopeus);
394        ControllerThree.Listen(Button.Y, ButtonState.Pressed, AmmuAseella, "Red wizard ampuu", pelaaja3);
395
396
397    }
398
399    void LisaaNappaimet4()
400    {
401        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Earth wizard liikkuu vasemmalle", pelaaja4, -nopeus);
402        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Earth wizard liikkuu oikealle", pelaaja4, nopeus);
403        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Earth wizard hyppää", pelaaja4, hyppyNopeus);
404        Keyboard.Listen(Key.Enter, ButtonState.Down, TeeSeina, "Earth wizard suojaa", pelaaja4);
405        Keyboard.Listen(Key.RightShift, ButtonState.Down, Piikit, "Earth wizard hyökkää", pelaaja4);
406        Keyboard.Listen(Key.RightControl, ButtonState.Down, Piikit2, "Earth wizard hyökkää alaspäin", pelaaja4);
407
408        ControllerFour.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Earth wizard liikkuu vasemmalle", pelaaja4, -nopeus);
409        ControllerFour.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Earth wizard liikkuu oikealle", pelaaja4, nopeus);
410        ControllerFour.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Earth wizard hyppää", pelaaja4, hyppyNopeus);
411        ControllerFour.Listen(Button.Y, ButtonState.Pressed, TeeSeina, "Earth wizard suojaa", pelaaja4);
412        ControllerFour.Listen(Button.B, ButtonState.Pressed, Piikit, "Earth wizard hyökkää", pelaaja4);
413
414    }
415
416    void Piikit(PlatformCharacter pelaaja)
417    {
418        if (saakoHyokata == true)
419        {
420            LuoPiikki(pelaaja4.X + 100, pelaaja4.Y);
421            LuoPiikki(pelaaja4.X + 200, pelaaja4.Y);
422            LuoPiikki(pelaaja4.X + 300, pelaaja4.Y);
423            LuoPiikki(pelaaja4.X - 100, pelaaja4.Y);
424            LuoPiikki(pelaaja4.X - 200, pelaaja4.Y);
425            LuoPiikki(pelaaja4.X - 300, pelaaja4.Y);
426            saakoHyokata = false;
427            Timer.SingleShot(5, saaHyokata);
428        }
429    }
430
431    void saaHyokata()
432    {
433        saakoHyokata = true;
434    }
435
436    void LuoPiikki(double x, double y)
437    {
438            PhysicsObject piikki = new PhysicsObject(40.0, 100.0);
439            piikki.X = x;
440            piikki.Y = y;
441            piikki.IgnoresGravity = true;
442            piikki.Animation = new Animation(Piikki);
443            piikki.Animation.FPS = 3;
444            piikki.Animation.StopOnLastFrame = true;
445            piikki.Animation.Start(1);
446            piikki.MaximumLifetime = TimeSpan.FromSeconds(2);
447            Add(piikki);
448            piikki.IgnoresCollisionResponse = true;
449            AddCollisionHandler(piikki, piikkiOsui);
450    }
451
452
453
454    void piikkiOsui(PhysicsObject tormaaja, PhysicsObject kohde)
455    {
456        if (kohde == pelaaja1)
457        {
458            elamaLaskuri.Value -= 10;
459        }
460        if (kohde == pelaaja2)
461        {
462            elamaLaskuri2.Value -= 10;
463        }
464        if (kohde == pelaaja3)
465        {
466            elamaLaskuri3.Value -= 10;
467        }
468    }
469
470
471
472    void Piikit2(PlatformCharacter pelaaja)
473    {
474        if (saakoPiikittaa == true)
475        {
476            PhysicsObject piikki2 = new PhysicsObject(100.0, 300.0);
477            piikki2.X = pelaaja4.X;
478            piikki2.Y = pelaaja4.Y - 190;
479            piikki2.IgnoresGravity = true;
480            piikki2.Animation = new Animation(Piikki);
481            piikki2.Animation.FPS = 3;
482            piikki2.Animation.StopOnLastFrame = true;
483            piikki2.Animation.Start(1);
484            piikki2.MaximumLifetime = TimeSpan.FromSeconds(3);
485            piikki2.Angle = Angle.FromDegrees(180);
486            Add(piikki2);
487            piikki2.IgnoresCollisionResponse = true;
488            AddCollisionHandler(piikki2, piikkiOsui2);
489            saakoPiikittaa = false;
490            Timer.SingleShot(7, SaaPiikittaa);
491        }
492
493        }
494
495    void SaaPiikittaa ()
496{
497    saakoPiikittaa = true;   
498}
499
500    void piikkiOsui2(PhysicsObject tormaaja, PhysicsObject kohde)
501    {
502        if (kohde == pelaaja1)
503        {
504            elamaLaskuri.Value -= 20;
505        }
506        if (kohde == pelaaja2)
507        {
508            elamaLaskuri2.Value -= 20;
509        }
510        if (kohde == pelaaja3)
511        {
512            elamaLaskuri3.Value -= 20;
513        }
514    }
515
516    void TeeSeina(PlatformCharacter pelaaja)
517    {
518        if (saakoLuoda == true)
519        {
520            PhysicsObject suoja = PhysicsObject.CreateStaticObject(20.0, 100.0);
521            suoja.Y = pelaaja4.Y;
522            suoja.X = pelaaja4.X + 70;
523            suoja.Image = Seinä;
524            suoja.MaximumLifetime = TimeSpan.FromSeconds(2);
525            Add(suoja);
526            PhysicsObject suoja2 = PhysicsObject.CreateStaticObject(20.0, 100.0);
527            suoja2.Y = pelaaja4.Y;
528            suoja2.X = pelaaja4.X - 70;
529            suoja2.Image = Seinä;
530            suoja2.MaximumLifetime = TimeSpan.FromSeconds(2);
531            Add(suoja2);
532            saakoLuoda = false;
533            Timer.SingleShot(7, Luonti);
534        }
535
536    }
537
538    void Luonti()
539    {
540        saakoLuoda = true;
541    }
542
543    void Nakymaton(PlatformCharacter pelaaja)
544    {
545        if (saakoMuuttua == true)
546        {
547            pelaaja2.IsVisible = false;
548            Timer.SingleShot(5, NakyyTaas);
549            saakoMuuttua = false;
550            Timer.SingleShot(15, SaaMuuttua);
551        }
552
553    }
554
555    void NakyyTaas()
556    {
557        pelaaja2.IsVisible = true;
558    }
559
560    void SaaMuuttua()
561    {
562        saakoMuuttua = true;
563    }
564
565    void TeePyorre(PlatformCharacter pelaaja)
566    {
567        if (saakoTehda == true)
568        {
569            PhysicsObject pyorre = new PhysicsObject(200.0, 500.0);
570            pyorre.Y = pelaaja3.Y;
571            pyorre.X = pelaaja3.X;
572            pyorre.Image = Tulipyorre;
573            pyorre.MaximumLifetime = TimeSpan.FromSeconds(2);
574            pyorre.IgnoresCollisionResponse = true;
575            Add(pyorre, -1);
576            FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja3);
577            seuraajanAivot.Speed = 1000;
578            seuraajanAivot.Active = true;
579            pyorre.Brain = seuraajanAivot;
580            AddCollisionHandler(pyorre, pyorreOsui);
581            saakoTehda = false;
582            Timer.SingleShot(7, Pyorre);
583
584        }
585
586    }
587
588    void Pyorre()
589    {
590        saakoTehda = true;
591    }
592
593    void pyorreOsui(PhysicsObject tormaaja, PhysicsObject kohde)
594    {
595        if (kohde == pelaaja1)
596        {
597            elamaLaskuri.Value -= 20;
598        }
599        if (kohde == pelaaja2)
600        {
601            elamaLaskuri2.Value -= 20;
602        }
603        if (kohde == pelaaja4)
604        {
605            elamaLaskuri4.Value -= 20;
606        }
607    }
608
609    void AmmuAseella(PlatformCharacter pelaaja)
610    {
611        PhysicsObject ammus = pelaaja.Weapon.Shoot();
612
613        if (ammus != null)
614        {
615            ammus.Width = 100;
616            ammus.Height = 50;
617            ammus.Image = Tulipallo;
618            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
619        }
620    }
621
622    void AmmuAseella2(PlatformCharacter pelaaja)
623    {
624        PhysicsObject ammus2 = pelaaja.Weapon.Shoot();
625
626        if (ammus2 != null)
627        {
628            ammus2.Size *= 5;
629            ammus2.Image = tahtiKuva;
630            ammus2.MaximumLifetime = TimeSpan.FromSeconds(2.0);
631            ammus2.ApplyTorque(-2000);
632        }
633
634
635
636    }
637    void AmmuAseella3(PlatformCharacter pelaaja)
638    {
639        PhysicsObject ammus2 = pelaaja.Weapon.Shoot();
640
641        if (ammus2 != null)
642        {
643            ammus2.Size *= 5;
644            ammus2.Image = Vesipallo;
645            ammus2.MaximumLifetime = TimeSpan.FromSeconds(2.0);
646        }
647
648
649
650    }
651
652
653    void Teleport(PlatformCharacter pelaaja)
654    {
655        if (saakoTeleportata == true)
656        {
657            PhysicsObject pimeys = PhysicsObject.CreateStaticObject(90.0, 100.0);
658            pimeys.Position = pelaaja2.Position;
659            pimeys.IgnoresCollisionResponse = true;
660            pimeys.Image = Vortex;
661            pimeys.MaximumLifetime = TimeSpan.FromSeconds(0.3);
662            Add(pimeys, -2);
663            maaliAani.Play();
664            pelaaja2.Position = Level.GetRandomPosition();
665            PhysicsObject pimeys2 = PhysicsObject.CreateStaticObject(90.0, 100.0);
666            pimeys2.Position = pelaaja2.Position;
667            pimeys2.IgnoresCollisionResponse = true;
668            pimeys2.Image = Vortex;
669            pimeys2.MaximumLifetime = TimeSpan.FromSeconds(0.3);
670            Add(pimeys2, -2);
671            saakoTeleportata = false;
672            Timer.SingleShot(7, SaaTeleportata);
673
674             }
675    }
676
677    void SaaTeleportata()
678    {
679        saakoTeleportata = true;
680    }
681
682
683    void Liikuta(PlatformCharacter hahmo, double nopeus)
684    {
685        hahmo.Walk(nopeus);
686    }
687
688    void Hyppaa(PlatformCharacter hahmo, double nopeus)
689    {
690        hahmo.Jump(nopeus);
691    }
692
693    void LuoElamaLaskuri()
694    {
695        Label Elamat = new Label("Water wizard");
696        Elamat.X = Screen.Left + 150;
697        Elamat.Y = Screen.Top - 30;
698        Add(Elamat);
699
700        elamaLaskuri = new DoubleMeter(100);
701        elamaLaskuri.MaxValue = 100;
702        elamaLaskuri.LowerLimit += ElamaLoppui;
703
704        ProgressBar elamaPalkki = new ProgressBar(150, 20);
705        elamaPalkki.X = Screen.Left + 150;
706        elamaPalkki.Y = Screen.Top - 50;
707        elamaPalkki.BarColor = Color.Red;
708        elamaPalkki.BorderColor = Color.Black;
709        elamaPalkki.BindTo(elamaLaskuri);
710        Add(elamaPalkki);
711    }
712
713    void ElamaLoppui()
714    {
715        pelaaja1.Destroy();
716        Lopunlaskuri.Value += 1;
717
718    }
719
720    void LuoElamaLaskuri2()
721    {
722        Label Elamat2 = new Label("Dark wizard");
723        Elamat2.X = Screen.Right - 150;
724        Elamat2.Y = Screen.Top - 30;
725        Add(Elamat2);
726
727        elamaLaskuri2 = new DoubleMeter(100);
728        elamaLaskuri2.MaxValue = 100;
729        elamaLaskuri2.LowerLimit += ElamaLoppui2;
730
731        ProgressBar elamaPalkki2 = new ProgressBar(150, 20);
732        elamaPalkki2.X = Screen.Right - 150;
733        elamaPalkki2.Y = Screen.Top - 50;
734        elamaPalkki2.BarColor = Color.Red;
735        elamaPalkki2.BorderColor = Color.Black;
736        elamaPalkki2.BindTo(elamaLaskuri2);
737        Add(elamaPalkki2);
738    }
739
740    void ElamaLoppui2()
741    {
742        pelaaja2.Destroy();
743        Lopunlaskuri.Value += 1;
744    }
745
746    void LuoElamaLaskuri3()
747    {
748        Label Elamat3 = new Label("Fire wizard");
749        Elamat3.X = Screen.Left + 150;
750        Elamat3.Y = Screen.Bottom + 50;
751        Add(Elamat3);
752
753        elamaLaskuri3 = new DoubleMeter(100);
754        elamaLaskuri3.MaxValue = 100;
755        elamaLaskuri3.LowerLimit += ElamaLoppui3;
756
757        ProgressBar elamaPalkki3 = new ProgressBar(150, 20);
758        elamaPalkki3.X = Screen.Left + 150;
759        elamaPalkki3.Y = Screen.Bottom + 30;
760        elamaPalkki3.BarColor = Color.Red;
761        elamaPalkki3.BorderColor = Color.Black;
762        elamaPalkki3.BindTo(elamaLaskuri3);
763        Add(elamaPalkki3);
764    }
765
766    void ElamaLoppui3()
767    {
768        pelaaja3.Destroy();
769        Lopunlaskuri.Value += 1;
770    }
771
772    void LuoElamaLaskuri4()
773    {
774        Label Elamat4 = new Label("Earth wizard");
775        Elamat4.X = Screen.Right - 150;
776        Elamat4.Y = Screen.Bottom + 50;
777        Add(Elamat4);
778
779        elamaLaskuri4 = new DoubleMeter(100);
780        elamaLaskuri4.MaxValue = 100;
781        elamaLaskuri4.LowerLimit += ElamaLoppui4;
782
783        ProgressBar elamaPalkki4 = new ProgressBar(150, 20);
784        elamaPalkki4.X = Screen.Right - 150;
785        elamaPalkki4.Y = Screen.Bottom + 30;
786        elamaPalkki4.BarColor = Color.Red;
787        elamaPalkki4.BorderColor = Color.Black;
788        elamaPalkki4.BindTo(elamaLaskuri4);
789        Add(elamaPalkki4);
790    }
791
792    void ElamaLoppui4()
793    {
794        pelaaja4.Destroy();
795        Lopunlaskuri.Value += 1;
796    }
797
798
799    void Loppui()
800    {
801        Lopunlaskuri = new IntMeter(0);
802        Lopunlaskuri.UpperLimit += Voitto;
803    }
804
805    void Voitto()
806    {
807        ClearControls();
808        Label tekstikentta = new Label("In the end only the strongest is left standing, as the others meet the cold void of oblivion");
809        Add(tekstikentta);
810        Timer.SingleShot(10, Valikko);
811        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
812    }
813
814}
Note: See TracBrowser for help on using the repository browser.