source: 2017/31/SietseH/peli2017/peli2017/peli2017/peli2017.cs @ 9419

Revision 9419, 25.8 KB checked in by npo17_72, 23 months ago (diff)
Line 
1using System;
2
3
4using System.Collections.Generic;
5using Jypeli;
6using Jypeli.Assets;
7using Jypeli.Controls;
8using Jypeli.Effects;
9using Jypeli.Widgets;
10class Vihu : PhysicsObject
11{
12    private IntMeter elamaLaskuri = new IntMeter(1, 0, 1);
13    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
14    public Timer ajastin;
15    public Vihu(double leveys, double korkeus)
16        : base(leveys, korkeus)
17    {
18        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
19       
20    }
21}
22class Kivi : PhysicsObject
23{
24    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5);
25    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
26
27    public Kivi(double leveys, double korkeus)
28        : base(leveys, korkeus)
29    {
30        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
31    }
32}
33class Puu : PhysicsObject
34{
35    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5);
36    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
37
38    public Puu(double leveys, double korkeus)
39        : base(leveys, korkeus)
40    {
41        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
42    }
43}
44public class peli2017 : PhysicsGame
45{
46    Vector ylös = new Vector(0, 5000);
47    Vector alas = new Vector(0, -5000);
48    Vector vasen = new Vector(5000, 0);
49    Vector oikea = new Vector(-5000, 0);
50
51    SoundEffect raha = LoadSoundEffect("Pickup_Coin3");
52    SoundEffect tp = LoadSoundEffect("Randomize");
53    SoundEffect blip = LoadSoundEffect("Blip_Select3");
54    SoundEffect pup = LoadSoundEffect("Powerup");
55    SoundEffect osui = LoadSoundEffect("Hit_Hurt5");
56
57
58
59
60
61    List<Vector> paikat;
62
63    IntMeter ElamaLaskuri;
64
65    PhysicsObject pelaaja;
66
67    GameObject Kilpi;
68    bool puolustaa = false;
69
70    AssaultRifle laserAse;
71
72    string kenttanimi = "kenttäää";
73
74    int valittutyokalu = 1;
75
76    double tulinopeus = 0.75;
77    double kilpikerroin = 0.1;
78    int lyomisenteho = -1;
79    int lyomisen2teho = -1;
80    double pidennuksenmaara = 0;
81
82    IntMeter pisteLaskuri = new IntMeter(100);
83
84    void LuoPistelaskuri()
85    {
86        Label pisteNaytto = new Label();
87        pisteNaytto.X = Screen.Left + 100;
88        pisteNaytto.Y = Screen.Top - 100;
89        pisteNaytto.TextColor = Color.Black;
90        pisteNaytto.Color = Color.White;
91        pisteNaytto.BindTo(pisteLaskuri);
92        Add(pisteNaytto);
93    }
94    public override void Begin()
95    {
96        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko \n  peliohjeet TAB",
97        "Aloita peli", "Lopeta");
98        Add(alkuValikko);
99        alkuValikko.Closed += (w)=> blip.Play();
100
101       
102        alkuValikko.AddItemHandler(0, Aloitapeli);
103        //alkuValikko.AddItemHandler(1, ParhaatPisteet);
104        alkuValikko.AddItemHandler(1, Exit);
105        alkuValikko.Color = Color.Green;
106        //alkuValikko.Image = LoadImage("");
107        alkuValikko.SelectionColor = Color.Blue;
108        alkuValikko.ActiveColor = Color.Red;
109        //alkuValikko.Buttons[0].Image = LoadImage("kilpi");
110
111        //aloitapeli();
112    }
113    void Ohjaus()
114    {
115        Keyboard.Listen(Key.Tab, ButtonState.Pressed, ShowControlHelp, "");
116        Keyboard.Listen(Key.Q, ButtonState.Down, zoom, "zoom", 0.9);
117        Keyboard.Listen(Key.E, ButtonState.Down, zoom, "zoom", 1.1);
118        Wasd();
119        Keyboard.Listen(Key.D1, ButtonState.Pressed, ValitseTyokalu, "valitse jousi", 1);
120        Keyboard.Listen(Key.D2, ButtonState.Pressed, ValitseTyokalu, "valitse kirves", 2);
121        Keyboard.Listen(Key.D3, ButtonState.Pressed, ValitseTyokalu, "valitse hakku", 3);
122        Keyboard.Listen(Key.D4, ButtonState.Pressed, ValitseTyokalu, "valitse keihäs", 4);
123        Mouse.Listen(MouseButton.Right, ButtonState.Pressed, KilpiPaalle, "kilpi kun painettu");
124        Mouse.Listen(MouseButton.Right, ButtonState.Released, Kilpipois, "");
125        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Kaytatyokalua, "käytä työkalua");
126        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella");
127    }
128    void Wasd()
129    {
130        Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, "", ylös);
131        Keyboard.Listen(Key.S, ButtonState.Down, Liikuta, "", alas);
132        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "", oikea);
133        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "", vasen);
134
135
136
137    }
138    void Liikuta(Vector nopeus)
139    {
140        double kerroin = puolustaa ? kilpikerroin : 1.0;
141        pelaaja.Push(nopeus * kerroin);
142    }
143    void Kentta()
144    {
145        paikat = new List<Vector>();
146        //Level.AmbientLight = 0.1;
147        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kenttanimi);
148        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
149        ruudut.SetTileMethod("FF00D4", LuoPelaaja );
150        ruudut.SetTileMethod(Color.Black, LuoVesi);
151        ruudut.SetTileMethod("FFD800", LuoHiekka);
152        ruudut.SetTileMethod("FF0000", KevytSeinaa);
153        ruudut.SetTileMethod("FFFAFA", KevytSeina);
154        ruudut.SetTileMethod("00FF00", Seina);
155        ruudut.SetTileMethod("42A742", Seinaa);
156        ruudut.SetTileMethod("7F3300", Ovi);
157        ruudut.SetTileMethod("0000FF", Teleportti);
158        ruudut.SetTileMethod("00FFDD", Puut);
159        ruudut.SetTileMethod("00FF90", Kivi);
160        ruudut.SetTileMethod("F7FF4E", Vihollinen);
161        ruudut.SetTileMethod("00FF7B", TAlo);
162        ruudut.SetTileMethod("33664A", Tp3);
163        ruudut.SetTileMethod("008C79", Luokauppa);
164
165        //ruudut.Optimize(Color.FromHexCode("00FF90"));
166
167        //#FFF7FF4E
168        //ruudut.SetTileMethod(Color.Yellow, LuoTahti);
169        //3. Execute luo kentän
170        //   Parametreina leveys ja korkeus
171
172        ruudut.Execute(200, 200);
173
174        if (kenttanimi == "kenttäää")
175        {
176            Level.Background.Image = LoadImage("grass");
177            Level.Background.TileToLevel();
178        }
179           
180        if (kenttanimi == "luola") Level.Background.Color = Color.Gray;
181
182        //Level.Background.Image = LoadImage("Naamloos");
183        //Level.Background.FitToLevel();
184        //Camera.ZoomToLevel();
185
186        Camera.Follow(pelaaja);
187
188        PhysicsObject vasenReuna = Level.CreateLeftBorder();
189        vasenReuna.Restitution = 1.0;
190        vasenReuna.KineticFriction = 0.0;
191        vasenReuna.IsVisible = false;
192
193        PhysicsObject oikeaReuna = Level.CreateRightBorder();
194        oikeaReuna.Restitution = 1.0;
195        oikeaReuna.KineticFriction = 0.0;
196        oikeaReuna.IsVisible = false;
197
198        PhysicsObject ylaReuna = Level.CreateTopBorder();
199        ylaReuna.Restitution = 1.0;
200        ylaReuna.KineticFriction = 0.0;
201        ylaReuna.IsVisible = false;
202
203        PhysicsObject alaReuna = Level.CreateBottomBorder();
204        alaReuna.Restitution = 1.0;
205        alaReuna.IsVisible = false;
206        alaReuna.KineticFriction = 0.0;
207
208
209    }
210    void Laserase()
211    {
212        laserAse = new AssaultRifle(20, 5);
213        laserAse.InfiniteAmmo = true;
214        laserAse.Power.Value = 1000;
215        laserAse.Power.DefaultValue = laserAse.Power.Value;
216        laserAse.FireRate = tulinopeus;
217        laserAse.AmmoIgnoresGravity = false;
218        laserAse.AmmoIgnoresExplosions = true;
219        //laserAse.X = 10.0;
220        //laserAse.Y = -5.0;
221        laserAse.Image = null;
222        laserAse.Color = Color.Transparent;
223        laserAse.CanHitOwner = true;
224        laserAse.ProjectileCollision = Ammusosui;
225
226        pelaaja.Add(laserAse);
227    }
228    void AmmuAseella(Weapon laserAse)
229    {
230        PhysicsObject ammus = laserAse.Shoot();
231       
232        if (ammus != null)
233        {
234            ammus.Position += ammus.Angle.GetVector() * 30;
235            ammus.MaximumLifetime = TimeSpan.FromSeconds(10.00);
236            ammus.Image = LoadImage("Naamlos");
237            ammus.Size *= 2;
238            ammus.Height *= 0.5;
239            ammus.Width *= 1.5;
240        }
241    }
242    void Tahtaa(AnalogState hiirenLiike)
243    {
244        Vector suunta = (Mouse.PositionOnWorld - laserAse.AbsolutePosition).Normalize();
245        pelaaja.Angle = suunta.Angle;
246    }
247    void Vihollinen(Vector paikka, double leveys, double korkeus)
248    {
249        if (!paikat.Contains(paikka))
250            paikat.Add(paikka);
251
252        Vihu vihollinen = new Vihu(60.0, 60.0);
253        vihollinen.Position = paikka;
254        vihollinen.LinearDamping = 0.9;
255        vihollinen.CanRotate = false;
256        //vihollinen.Color = Color.Red;
257        vihollinen.Image = LoadImage("vastustaja");
258        vihollinen.Tag = "vihollinen";
259
260        AddCollisionHandler(vihollinen, "keihas", Lyovihollista);
261       
262        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
263
264        satunnaisAivot.ChangeMovementSeconds = 3.00;
265        satunnaisAivot.WanderRadius = 10000;
266        satunnaisAivot.WanderPosition = new Vector(2000, 3000);
267        vihollinen.Brain = satunnaisAivot;
268
269        Add(vihollinen, 3);
270
271        AssaultRifle Ase = new AssaultRifle(30, 10);
272
273        Ase.IsVisible = false;
274        // Jos et halua ammusten määrän rajoitusta, vaan loputtomat panokset,
275        // niin älä lisää seuraavaa riviä ollenkaan:
276        //Ase.Ammo.Value = 1000; // Ammusten määrä aluksi
277
278        // Mitä tapahtuu kun ammus osuu johonkin?
279        Ase.ProjectileCollision = VihollisenAmmusOsui;
280        Ase.AttackSound = null;
281
282        vihollinen.Add(Ase);
283        vihollinen.Destroyed += delegate
284        {
285            raha.Play();
286            pisteLaskuri.Value += 1;
287        };
288       
289
290
291        Timer ajastin = new Timer();
292        vihollinen.ajastin = ajastin;
293        ajastin.Interval = 5.00;
294        ajastin.Timeout += delegate
295        {
296            vihollinen.AbsoluteAngle = (pelaaja.Position - vihollinen.Position).Angle;
297            VihollinenAmmuAseella(Ase);
298        };
299        ajastin.Start();
300       
301
302    }
303    void ElämäLaskuri()
304    {
305        ElamaLaskuri = new IntMeter(0);
306
307        Label pisteNaytto = new Label();
308        pisteNaytto.X = Screen.Left + 100;
309        pisteNaytto.Y = Screen.Top - 100;
310        pisteNaytto.TextColor = Color.Black;
311        pisteNaytto.Color = Color.White;
312
313        IntMeter laskuri = new IntMeter(1);
314
315        pisteNaytto.Title = "elämät";
316
317        pisteNaytto.BindTo(ElamaLaskuri);
318        Add(pisteNaytto);
319    }
320    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
321    {
322        ammus.Stop();
323        //ammus.MakeStatic();
324        ammus.IgnoresCollisionResponse = true;
325
326        if (kohde.Tag.ToString() == "vihollinen")
327        {
328            (kohde as Vihu).ElamaLaskuri.Value -= 1;
329            (kohde as Vihu).ajastin.Stop();
330        }
331    }
332    void VihollisenAmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
333    {
334        if (kohde.Tag.ToString() == "pelaaja" && !puolustaa)
335        {
336            ElamaLaskuri.Value -= 1;
337            ammus.Destroy();
338            osui.Play();
339        }
340    }
341    void VihollinenAmmuAseella(Weapon Ase)
342    {
343       
344        PhysicsObject ammus1 = Ase.Shoot();
345
346        if (ammus1 != null)
347        {
348            ammus1.MaximumLifetime = TimeSpan.FromSeconds(10.00);
349            ammus1.Image = LoadImage("Naamlos");
350            ammus1.Size *= 2;
351            ammus1.Height *= 0.5;
352            ammus1.Width *= 1.5;
353        }
354    }
355    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
356    {
357        pelaaja = new PhysicsObject(60.0, 60.0);
358        pelaaja.LinearDamping = 0.7;
359        pelaaja.CanRotate = false;
360        //pelaaja.Color = Color.Blue;
361        pelaaja.Image = LoadImage("pelaaja");
362        pelaaja.Tag = "pelaaja";
363        pelaaja.Position = paikka;
364        //pelaaja.CollisionIgnoreGroup = 1;
365        Add(pelaaja);
366        GameObject valo = new GameObject(500, 500);
367        //valo.Image = LoadImage("valo");
368
369        pelaaja.Destroyed += Valikko;
370
371        ElamaLaskuri.LowerLimit += pelaaja.Destroy;
372
373        AddCollisionHandler(pelaaja, "teleportti", Luola);
374        AddCollisionHandler(pelaaja, "talo", Talo);
375        AddCollisionHandler(pelaaja, "tp3", Aloitus);
376        AddCollisionHandler(pelaaja, "kauppa", Osuikauppaan);
377        //pelaaja.Add(valo);
378
379        ProgressBar elamaPalkki = new ProgressBar(150, 20);
380        elamaPalkki.X = Screen.Left + 150;
381        elamaPalkki.Y = Screen.Top - 20;
382        elamaPalkki.BindTo(ElamaLaskuri);
383        Add(elamaPalkki);
384
385
386        //Light valo = new Light();
387        //valo.Intensity = 0.8;
388        //valo.Distance = 5;
389        //valo.Position = pelaaja.Position;
390        //Add(valo);
391    }
392    void LuoTaso(Vector paikka, double leveys, double korkeus)
393    {
394        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
395        taso.Position = paikka;
396        taso.Image = LoadImage("valo");
397        taso.Color = Color.Red;
398
399        taso.CollisionIgnoreGroup = 1;
400        Add(taso);
401        GameObject valo = new GameObject(500, 500);
402        valo.Image = LoadImage("valo");
403        valo.Position = paikka;
404        Add(valo, 3);
405    }
406    void zoom(double kerroin)
407    {
408        Camera.Zoom(kerroin);
409    }
410    void LuoVesi(Vector paikka, double leveys, double korkeus)
411    {
412        PhysicsObject vesi = PhysicsObject.CreateStaticObject(leveys, korkeus);
413        vesi.Position = paikka;
414        vesi.Image = LoadImage("unnamed");
415        //vesi.Color = Color.Aqua;
416        Add(vesi);
417    }
418    void LuoHiekka(Vector paikka, double leveys, double korkeus)
419    {
420        GameObject hiekka = new GameObject(leveys, korkeus);
421        hiekka.Position = paikka;
422        hiekka.Color = Color.Yellow;
423        hiekka.Image = LoadImage("sand");
424        Add(hiekka);
425
426    }
427    void KevytSeina(Vector paikka, double leveys, double korkeus)
428    {
429        PhysicsObject keytseina = new PhysicsObject(100.00, 300.00);
430        keytseina.Position = paikka;
431        keytseina.Color = Color.DarkBrown;
432        keytseina.MakeStatic();
433        Add(keytseina);
434    }
435    void KevytSeinaa(Vector paikka, double leveys, double korkeus)
436    {
437        PhysicsObject kevytseinaa = new PhysicsObject(300.00, 100.00);
438        kevytseinaa.Position = paikka;
439        kevytseinaa.Color = Color.DarkBrown;
440        kevytseinaa.MakeStatic();
441        Add(kevytseinaa);
442    }
443    void Seina(Vector paikka, double leveys, double korkeus)
444    {
445        PhysicsObject seina = new PhysicsObject(100.00, 300.00);
446        seina.Position = paikka;
447        seina.Color = Color.Gray;
448        seina.MakeStatic();
449        Add(seina);
450    }
451    void Seinaa(Vector paikka, double leveys, double korkeus)
452    {
453        PhysicsObject seinaa = new PhysicsObject(200.00, 100.00);
454        seinaa.Position = paikka;
455        seinaa.Color = Color.Gray;
456        seinaa.MakeStatic();
457        Add(seinaa);
458
459
460
461    }
462    void Ovi(Vector paikka, double leveys, double korkeus)
463    {
464        PhysicsObject ovi = new PhysicsObject(200.00, 10.00);
465        ovi.Position = paikka;
466        ovi.Color = Color.DarkBrown;
467        //ovi.MakeStatic();
468        Add(ovi);
469
470        AxleJoint liitos = new AxleJoint(ovi, ovi.Position + new Vector(80, 0));
471        Add(liitos);
472
473
474
475    }
476    void Teleportti(Vector paikka, double leveys, double korkeus)
477        {
478        PhysicsObject teleportti = new PhysicsObject(100.00, 100.00);
479        teleportti.Position = paikka;
480        teleportti.Color = Color.BloodRed;
481        teleportti.MakeStatic();
482        teleportti.Image = LoadImage("tikkaat");
483        Add(teleportti);
484        teleportti.Tag = "teleportti"; 
485
486
487    }
488    void Luola(PhysicsObject pelaaja, PhysicsObject teleportti)
489    {
490        kenttanimi = "luola";
491        tp.Play();
492        Aloitapeli();
493    }
494    void Puut(Vector paikka, double leveys, double korkeus)
495    {
496
497       
498   
499        Puu puu = new Puu(175.0, 200.0);
500        puu.Tag = "puu";
501        puu.Position = paikka;
502        puu.CanRotate = false;
503        puu.Restitution = 1.0;
504        puu.MakeStatic();
505        puu.Image = LoadImage("puu");
506
507       
508        Add(puu);
509        puu.Destroyed += delegate 
510        {
511            pisteLaskuri.Value += 1;
512            Timer.SingleShot(20, delegate { Puut(paikka, leveys, korkeus); });
513            raha.Play();
514        };
515
516
517
518
519
520   
521
522    }
523    void Kivi(Vector paikka, double leveys, double korkeus)
524    {
525        Kivi kivi = new Kivi(leveys -1, korkeus -1);
526        kivi.Tag = "kivi";
527        kivi.Position = paikka;
528        //kivi.CanRotate = false;
529        //kivi.Restitution = 1.0;
530        kivi.MakeStatic();
531        //kivi.IgnoresCollisionResponse = true;
532        kivi.Image = LoadImage("kivi");
533
534        AddCollisionHandler(kivi, "hakku", CollisionHandler.AddMeterValue(kivi.ElamaLaskuri, lyomisen2teho));
535
536        Add(kivi);
537        kivi.Destroyed += delegate
538        {
539            pisteLaskuri.Value += 1;
540            Timer.SingleShot(20, delegate { Kivi(paikka, leveys, korkeus); });
541            raha.Play();
542        };
543
544
545    }
546    void Kaytatyokalua()
547    {
548        if (valittutyokalu == 1)
549        {
550            AmmuAseella(laserAse);
551        }
552        if(valittutyokalu == 2)
553        {
554            kirves();
555
556        }
557        if(valittutyokalu == 3)
558        {
559            Hakku();
560        }
561        if(valittutyokalu == 4)
562        {
563            Keihas();
564
565        }
566    }
567    void ValitseTyokalu(int tyokalu)
568    {
569        valittutyokalu = tyokalu;
570    }
571    void kirves()
572    {
573        PhysicsObject kirves = new PhysicsObject(40, 40);
574
575        kirves.Image = LoadImage("kirves");
576        kirves.Angle = pelaaja.Angle;
577        kirves.Position = pelaaja.Position + pelaaja.Angle.GetVector()*50;
578        kirves.Tag = "kirves";
579        kirves.LifetimeLeft = TimeSpan.FromSeconds(0.1);
580        AddCollisionHandler(kirves, "puu", Hakkaapuu);
581
582
583        Add(kirves);
584    }
585    void Lyovihollista(PhysicsObject vihollinen, PhysicsObject kirves)
586    {
587        //if ((vihollinen as Vihu).ajastin != null)
588        (vihollinen as Vihu).ajastin.Stop();
589        (vihollinen as Vihu).ElamaLaskuri.AddValue (-2);
590    }
591    void Talo(PhysicsObject pelaaja, PhysicsObject talo)
592    {
593        kenttanimi = "littlehouse";
594        tp.Play();
595        Aloitapeli();
596
597    }
598    void TAlo(Vector paikka, double leveys, double korkeus)
599    {
600        PhysicsObject talo = new PhysicsObject(leveys, korkeus);
601        talo.Position = paikka;
602        talo.Tag = "talo";
603        talo.Image = LoadImage("pixel house");
604        talo.MakeStatic();
605        Add(talo);
606
607    }
608    void Keihas()
609    {
610        PhysicsObject keihas = new PhysicsObject(30, 100 + pidennuksenmaara);
611        keihas.Image = LoadImage("keihas");
612        keihas.Angle = pelaaja.Angle + Angle.FromDegrees(-90);
613        keihas.Position = pelaaja.Position + pelaaja.Angle.GetVector() * 50;
614        keihas.Tag = "keihas";
615        keihas.LifetimeLeft = TimeSpan.FromSeconds(0.1);
616        keihas.Velocity = pelaaja.Angle.GetVector() * 200;
617        Add(keihas);
618
619
620    }
621    void Hakku()
622    {
623        PhysicsObject hakku = new PhysicsObject(40, 40);
624        hakku.Image = LoadImage("hakku");
625        hakku.Angle = pelaaja.Angle + Angle.FromDegrees(60);
626        hakku.Position = pelaaja.Position + pelaaja.Angle.GetVector() * 50;
627        hakku.Tag = "hakku";
628        hakku.LifetimeLeft = TimeSpan.FromSeconds(0.1);
629        hakku.TextureWrapSize = new Vector(1,-1);
630        AddCollisionHandler(hakku, "kivi", Hakkaakivi);
631        Add(hakku);
632
633
634
635    }
636    void KilpiPaalle()
637    {
638
639       
640        puolustaa = true;
641
642        Kilpi = new GameObject(60, 60);
643        Kilpi.Image = LoadImage("Kilpi");
644        Kilpi.Angle = pelaaja.Angle;
645        //Kilpi.Position = pelaaja.Position;
646        Kilpi.X = 10;
647        Kilpi.Tag = "Kilpi";
648        //Kilpi.LifetimeLeft = TimeSpan.FromSeconds(0.1);
649        Kilpi.TextureWrapSize = new Vector(1, -1);
650        pelaaja.Add(Kilpi);
651        //Kilpi.IgnoresCollisionResponse = true;
652       
653    }
654    void Aloitus(PhysicsObject pelaaja, PhysicsObject tp3)
655    {
656        kenttanimi = "kenttäää";
657        tp.Play();
658        Aloitapeli();
659
660    }
661    void Kilpipois()
662    {
663        puolustaa = false;
664        Kilpi.Destroy();
665
666    }
667    void Timer2()
668    {
669        Timer ajastin2 = new Timer();
670        ajastin2.Interval = 5.0;
671        ajastin2.Timeout += delegate
672        {
673            Vihollinen(RandomGen.SelectOne<Vector>(paikat),60, 60);
674           
675        };
676       
677        ajastin2.Start();
678    }
679    void Tp3(Vector paikka, double leveys, double korkeus)
680    {
681        PhysicsObject tp3 = new PhysicsObject(leveys, korkeus);
682        tp3.Position = paikka;
683        tp3.Tag = "tp3";
684        tp3.Image = LoadImage("tikkaat2");
685        tp3.MakeStatic();
686        Add(tp3);
687
688    }   
689    void Valikko()
690    {
691        MultiSelectWindow alkuValikko = new MultiSelectWindow("KUOLIT",
692       "Aloita peli alusta", "Lopeta");
693        Add(alkuValikko);
694
695
696        alkuValikko.AddItemHandler(0, Aloitapeli);
697        //alkuValikko.AddItemHandler(1, ParhaatPisteet);
698        alkuValikko.AddItemHandler(1, Exit);
699        alkuValikko.Color = Color.Green;
700        //alkuValikko.Image = LoadImage("");
701        alkuValikko.SelectionColor = Color.Blue;
702        alkuValikko.ActiveColor = Color.Red;
703        //alkuValikko.Buttons[0].Image = LoadImage("kilpi");
704
705
706    }
707    void Aloitapeli()
708    {
709        SmoothTextures = false;
710        IsMouseVisible = true;
711
712        ClearAll();
713        ElamaLaskuri = new IntMeter(5, 0, 5);
714
715        //ElämäLaskuri();
716        Kentta();
717        //Vihollinen();
718        ////liikuta();
719        //Vihollinen();
720        //Vihollinen();
721        //Vihollinen();
722        //Vihollinen();
723        Laserase();
724        Ohjaus();
725        Timer2();
726        LuoPistelaskuri();
727        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
728
729
730
731    }
732    void Kauppa()
733    {
734        MultiSelectWindow kauppa = new MultiSelectWindow("Kauppa",
735        "jatka peliä", "kilven kevennys 50", "latausnopeus 50", "kirveen parannus 50", "hakun parannus 50", "keihään pituus 50", "god mode 1000");
736        Add(kauppa);
737        kauppa.Closed += (w) => blip.Play();
738        kauppa.AddItemHandler(0, ratka);
739        kauppa.AddItemHandler(1, Kilvenkevennys);
740        kauppa.AddItemHandler(2, LatausNopeus);
741        kauppa.AddItemHandler(3, KirveenParannus);
742        kauppa.AddItemHandler(4, HakunParannus);
743        kauppa.AddItemHandler(5, KeihaanPidennus);
744        kauppa.AddItemHandler(6, Godmode);
745
746        kauppa.Color = Color.Red;
747        //kauppa.Image = LoadImage("");
748       
749
750       
751
752
753
754
755    }
756    void Luokauppa(Vector paikka, double leveys, double korkeus)
757    {
758        PhysicsObject kauppa = new PhysicsObject(leveys, korkeus);
759        kauppa.Position = paikka;
760        kauppa.Tag = "kauppa";
761        kauppa.Image = LoadImage("hqdefault");
762        kauppa.MakeStatic();
763        Add(kauppa);
764
765
766
767    }
768    void ratka()
769    {
770
771
772
773    }
774    void Kilvenkevennys()
775    {
776        if (pisteLaskuri.Value >= 50)
777        {
778            pisteLaskuri.Value -= 50;
779            pup.Play();
780            kilpikerroin += 0.1;
781        }
782        else
783        {
784            MessageDisplay.Add("rahet eivät riittäneet");
785        }
786
787
788    }
789    void Osuikauppaan(PhysicsObject pelaaja, PhysicsObject kauppa)
790    {
791        Kauppa();
792
793    }
794    void LatausNopeus()
795    {
796
797        if (pisteLaskuri.Value >= 50)
798        {
799            pisteLaskuri.Value -= 50;
800            tulinopeus += 1.0;
801            laserAse.FireRate = tulinopeus;
802            pup.Play();
803
804        }
805        else
806        {
807            MessageDisplay.Add("rahet eivät riittäneet");
808        }
809
810
811
812
813    }
814    void KirveenParannus()
815    {
816        if (pisteLaskuri.Value >= 50)
817        {
818            pisteLaskuri.Value -= 50;
819            lyomisenteho -= 1;
820            pup.Play();
821        }
822        else
823        {
824            MessageDisplay.Add("rahet eivät riittäneet");
825        }
826
827
828    }
829    void HakunParannus()
830        {
831        if (pisteLaskuri.Value >= 50)
832        {
833            pisteLaskuri.Value -= 50;
834            lyomisen2teho -= 1;
835            pup.Play();
836
837        }
838        else
839        {
840            MessageDisplay.Add("rahet eivät riittäneet");
841        }
842
843    }
844    void KeihaanPidennus()
845    {
846
847        if (pisteLaskuri.Value >= 50)
848        {
849            pisteLaskuri.Value -= 50;
850            pidennuksenmaara += 20;
851            pup.Play();
852        }
853        else
854        {
855            MessageDisplay.Add("rahet eivät riittäneet");
856        }
857
858
859
860
861    }
862    void Godmode()
863    {
864
865        if (pisteLaskuri.Value >= 1000)
866        {
867            pisteLaskuri.Value -= 1000;
868            ylös = new Vector(ylös.X * 1, ylös.Y * 10);
869            alas = new Vector(alas.X * 1, alas.Y * 10);
870            oikea = new Vector(oikea.X * 10, oikea.Y * 1);
871            vasen = new Vector(vasen.X * 10, vasen.Y * 1);
872            lyomisenteho -= 10;
873            lyomisen2teho -= 10;
874            pidennuksenmaara += 200;
875            tulinopeus += 10000.0;
876            laserAse.FireRate = tulinopeus;
877            kilpikerroin += 1.0;
878            Keyboard.Disable(Key.W);
879            Keyboard.Disable(Key.A);
880            Keyboard.Disable(Key.S);
881            Keyboard.Disable(Key.D);
882            pup.Play();
883            Wasd();
884        }
885        else
886        {
887            MessageDisplay.Add("rahet eivät riittäneet");
888        }
889
890
891
892    }
893    void Hakkaapuu(PhysicsObject ase, PhysicsObject puu)
894    {
895        if (ase.Tag.ToString() == "kirves")
896        {
897            (puu as Puu).ElamaLaskuri.AddValue(lyomisenteho);
898           
899        }
900       
901    }
902    void Hakkaakivi(PhysicsObject ase, PhysicsObject kivi)
903    {
904        if (ase.Tag.ToString() == "hakku")
905        {
906            (kivi as Kivi).ElamaLaskuri.AddValue(lyomisen2teho);
907           
908        }
909
910    }
911}
Note: See TracBrowser for help on using the repository browser.