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

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