source: 2014/koodauskerho/38/PietuR/Weaporage/Weaporage/Weaporage/Weaporage.cs @ 5773

Revision 5773, 19.6 KB checked in by sieerinn, 5 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9class Pommi : PhysicsObject
10{
11    Weaporage peli;
12
13    public Pommi(Weaporage peli, double leveys, double korkeus)
14        : base(leveys, korkeus)
15    {
16        this.peli = peli;
17    }
18
19    public void Sytyta()
20    {
21        Animation = new Animation(peli.Pomminposaus);
22        Animation.FPS = 1;
23        Animation.Played += delegate
24        {
25            Explosion rajahdys = new Explosion(1000);
26            rajahdys.Position = Position;
27            rajahdys.Image = peli.Rajahdyskuva;
28            rajahdys.ShockwaveReachesObject += PaineaaltoOsuu;
29            rajahdys.Speed = 700;
30            peli.Add(rajahdys);
31            Destroy();
32        };
33        Animation.Start();
34    }
35
36    void PaineaaltoOsuu(IPhysicsObject olio, Vector shokki)
37    {
38        Pelaaja pelaaja = peli.EtsiOmistaja(olio as PhysicsObject);
39
40        if (pelaaja != null)
41        {
42            pelaaja.Elamat.Value -= 6;
43        }
44    }
45}
46
47
48public class Pelaaja
49{
50    List<PhysicsObject> ruumiinOsat = new List<PhysicsObject>();
51    public List<PhysicsObject> RuumiinOsat { get { return ruumiinOsat; } }
52
53    IntMeter elamat;
54
55    public IntMeter Elamat { get { return elamat; } }
56
57    bool otetaanko = false;
58    public AxleJoint vasenKasi;
59    public AxleJoint oikeaKasi;
60
61    public bool OtetaankoKiinni
62    {
63        get
64        {
65            return otetaanko;
66        }
67        set
68        {
69            otetaanko = value;
70            foreach (var item in ruumiinOsat)
71            {
72                if ("oikeaKammen".Equals(item.Tag))
73                {
74                    if (oikeaKasi != null) return;
75                    if (otetaanko) item.Color = Color.Red;
76                    else item.Color = Color.Black;
77                }
78                if ("vasenKammen".Equals(item.Tag))
79                {
80                    if (vasenKasi != null) return;
81                    if (otetaanko) item.Color = Color.Red;
82                    else item.Color = Color.Black;
83                }
84            }
85        }
86    }
87
88    public Pelaaja(int defaultHp)
89    {
90        elamat = new IntMeter(defaultHp, 0, defaultHp);
91    }
92}
93
94
95
96public class Weaporage : PhysicsGame
97{
98
99    Pelaaja pelaaja1;
100    Pelaaja pelaaja2;
101    Pelaaja pelaaja3;
102    Pelaaja pelaaja4;
103
104    public Image Pomminkuva = LoadImage("Pommi1");
105    public Image Rajahdyskuva = LoadImage("Rajahdys");
106    public Image[] Pomminposaus = LoadImages("Pommi2", "Pommi3", "Pommi4", "Pommi5", "Pommi6");
107
108    Image Miekankuva = LoadImage("Miekka");
109    Image Nuijankuva = LoadImage("Nuija");
110    Image Tikarinkuva = LoadImage("Tikari");
111    Image Vasarankuva = LoadImage("Vasara");
112    Image Sauvankuva = LoadImage("Sauva");
113    Image Pistoolinkuva = LoadImage("Pistooli");
114    Image Luodinkuva = LoadImage("Luoti");
115   
116   
117   
118    Image Pallonkuva = LoadImage("Pallo");
119
120    public override void Begin()
121    {
122        Level.Width = 2400;
123        Level.Height = 1800;
124        LisaaAseetPeliin(new Vector(700, 700));
125        LisaaAseetPeliin(new Vector(700, -700));
126        LisaaAseetPeliin(new Vector(-700, -700));
127        LisaaAseetPeliin(new Vector(-700, 700));
128
129        Level.Background.CreateGradient(RandomGen.NextColor(), RandomGen.NextColor());
130       
131        IsFullScreen = true;
132       
133        pelaaja1 = new Pelaaja(10);
134        pelaaja2 = new Pelaaja(10);
135        pelaaja3 = new Pelaaja(10);
136        pelaaja4 = new Pelaaja(10);
137
138        IsMouseVisible = true;
139
140       /* PhysicsObject pallo = new PhysicsObject(200, 200);
141        pallo.Position = new Vector(0, 0);
142        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(2000);
143        pallo.Image = Pallonkuva;
144        pallo.Brain = satunnaisAivot;
145        satunnaisAivot.ChangeMovementSeconds = 100;
146        pallo.Shape = Shape.Circle;
147        pallo.AngularAcceleration = 10000;
148        pallo.RotateImage = true;
149        pallo.Tag = "ase";
150        Add(pallo);*/
151
152
153
154       
155        Level.CreateBorders();
156        Camera.ZoomToLevel();
157        Gravity = new Vector(0, -100);
158
159        Luopelaaja(pelaaja1, 2, new Vector(200, 200), Color.Red);
160        Luopelaaja(pelaaja2, 12, new Vector(200, -200), Color.Pink);
161        Luopelaaja(pelaaja3, 20, new Vector(-200, -200), Color.SpringGreen);
162        Luopelaaja(pelaaja4, 30, new Vector(-200, 200), Color.Blue);
163
164        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(-100, 0));
165        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(100, 0));
166        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(0, -100));
167        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(0, 100));
168        Keyboard.Listen(Key.RightControl, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja1);
169        Keyboard.Listen(Key.RightAlt, ButtonState.Pressed, IrrotaAseet, null, pelaaja1);
170
171        Keyboard.Listen(Key.Space, ButtonState.Pressed, AloitaAlustaPeli, null);
172
173        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(-100, 0));
174        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(100, 0));
175        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(0, -100));
176        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(0, 100));
177        Keyboard.Listen(Key.Q, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja2);
178        Keyboard.Listen(Key.E, ButtonState.Pressed, IrrotaAseet, null, pelaaja2);
179
180        Keyboard.Listen(Key.J, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(-100, 0));
181        Keyboard.Listen(Key.L, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(100, 0));
182        Keyboard.Listen(Key.K, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(0, -100));
183        Keyboard.Listen(Key.I, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(0, 100));
184        Keyboard.Listen(Key.U, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja3);
185        Keyboard.Listen(Key.O, ButtonState.Pressed, IrrotaAseet, null, pelaaja3);
186
187        Keyboard.Listen(Key.NumPad4, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(-100, 0));
188        Keyboard.Listen(Key.NumPad6, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(100, 0));
189        Keyboard.Listen(Key.NumPad5, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(0, -100));
190        Keyboard.Listen(Key.NumPad8, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(0, 100));
191        Keyboard.Listen(Key.Divide, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja4);
192        Keyboard.Listen(Key.Multiply, ButtonState.Pressed, IrrotaAseet, null, pelaaja4);
193
194        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja1);
195        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja2);
196        ControllerThree.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja3);
197        ControllerFour.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja4);
198
199
200        ControllerOne.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja1);
201        ControllerOne.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja1);
202        ControllerTwo.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja2);
203        ControllerTwo.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja2);
204        ControllerThree.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja3);
205        ControllerThree.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja3);
206        ControllerFour.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja4);
207        ControllerFour.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja4);
208
209        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
210        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
211    }
212
213    void AloitaAlustaPeli()
214    {
215        ClearAll();
216        Begin();
217    }
218
219
220    void IrrotaAseet(Pelaaja pelaaja)
221    {
222        if (pelaaja.oikeaKasi != null)
223        {
224            pelaaja.oikeaKasi.Destroy();
225            pelaaja.oikeaKasi = null;
226        }
227        if (pelaaja.vasenKasi != null)
228        {
229            pelaaja.vasenKasi.Destroy();
230            pelaaja.vasenKasi = null;
231        }
232        pelaaja.OtetaankoKiinni = false;
233    }
234
235
236    void ValmiinaOttamaanAseen(Pelaaja pelaaja)
237    {
238        if (pelaaja.OtetaankoKiinni)
239            pelaaja.OtetaankoKiinni = false;
240        else pelaaja.OtetaankoKiinni = true;
241    }
242
243
244    void LisaaAseetPeliin(Vector asepaikka)
245    {
246        int asenumero = RandomGen.NextInt(1, 8);
247        if (asenumero == 1)
248        {
249            PhysicsObject ase = new PhysicsObject(50, 100);
250            ase.Position = asepaikka;
251            ase.Image = Vasarankuva;
252            ase.Shape = Shape.FromImage(Vasarankuva);
253            ase.Tag = "ase";
254            Add(ase);
255        }
256        else if (asenumero == 2)
257        {
258            PhysicsObject ase2 = new PhysicsObject(30, 70);
259            ase2.Position = asepaikka;
260            ase2.Mass = 1;
261            ase2.Image = Tikarinkuva;
262            ase2.Shape = Shape.FromImage(Tikarinkuva);
263            ase2.Tag = "ase";
264            Add(ase2);
265        }
266        else if (asenumero == 3)
267        {
268            PhysicsObject ase3 = new PhysicsObject(50, 150);
269            ase3.Position = asepaikka;
270            ase3.Mass = 10;
271            ase3.Image = Miekankuva;
272            ase3.CollisionIgnoreGroup = 20000;
273            ase3.Shape = Shape.FromImage(Miekankuva);
274            ase3.Tag = "ase";
275            AddCollisionHandler(ase3, "irtoava", CollisionHandler.DestroyTarget);
276            Add(ase3);
277        }
278        else if (asenumero == 4)
279        {
280            PhysicsObject ase4 = new PhysicsObject(50, 120);
281            ase4.Position = asepaikka;
282            ase4.Image = Nuijankuva;
283            ase4.Shape = Shape.FromImage(Nuijankuva);
284            ase4.Tag = "ase";
285            Add(ase4);
286        }
287        else if (asenumero == 5)
288        {
289            PhysicsObject ase5 = new PhysicsObject(6, 220);
290            ase5.Position = asepaikka;
291            ase5.Image = Sauvankuva;
292            ase5.Shape = Shape.FromImage(Sauvankuva);
293            ase5.Tag = "ase";
294            Add(ase5);
295        }
296        else if (asenumero == 6)
297        {
298            PhysicsObject ase6 = new PhysicsObject(120, 60);
299            ase6.Position = asepaikka;
300            ase6.Image = Pistoolinkuva;
301            ase6.Shape = Shape.FromImage(Pistoolinkuva);
302            ase6.Tag = "ase";
303            Timer laukausaika = new Timer();
304            laukausaika.Interval = 3;
305            laukausaika.Timeout += delegate
306            {
307
308                PhysicsObject Luoti = new PhysicsObject(30, 14);
309                Luoti.Position = ase6.Position;
310                Luoti.Image = Luodinkuva;
311                Luoti.Hit(ase6.Angle.GetVector() * 5000);
312                Luoti.LifetimeLeft = TimeSpan.FromSeconds(5);
313                Luoti.Tag = "ase";
314                Add(Luoti);
315            };
316            laukausaika.Start();
317            Add(ase6);
318        }
319        else if (asenumero == 7)
320        {
321            Pommi ase7 = new Pommi(this, 50, 50);
322            ase7.Position = asepaikka;
323            ase7.Image = Pomminkuva;
324            ase7.Shape = Shape.FromImage(Pomminkuva);
325            ase7.Tag = "ase";
326            Add(ase7);
327        }
328    }
329    void LiikutaTatilla(AnalogState tatti, Pelaaja pelaaja)
330    {
331        LiikutaPelaajaa(pelaaja, tatti.StateVector * 100);
332    }
333
334    void LiikutaPelaajaa(Pelaaja pelaaja, Vector suunta)
335    {
336        if (pelaaja.RuumiinOsat.Count == 0) return;
337        pelaaja.RuumiinOsat[0].Hit(suunta);
338
339    }
340
341
342    void Luopelaaja(Pelaaja pelaaja,int collisionIgnoreGroup, Vector pos, Color vari)
343    {
344        const double perusKoko = 30;
345        //int collisionIgnoreGroup = 2;
346
347
348
349        PhysicsObject paa = LuoRuumiinOsa(perusKoko, perusKoko, Shape.Circle,collisionIgnoreGroup, pos, vari);
350        PhysicsObject keskiVartalo = LuoRuumiinOsa(perusKoko, perusKoko * 3, Shape.Ellipse, collisionIgnoreGroup, paa.Position + new Vector(0, -2 * perusKoko), vari);
351        PhysicsObject vasenKasi = LuoRuumiinOsa(perusKoko * 2, perusKoko / 2, Shape.Ellipse, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(-35, 40), vari);
352        PhysicsObject vasenKasi2 = LuoRuumiinOsa(perusKoko * 2, perusKoko / 2, Shape.Ellipse, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(-85, 40), vari);
353        PhysicsObject oikeaKasi = LuoRuumiinOsa(perusKoko * 2, perusKoko / 2, Shape.Ellipse, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(35, 40), vari);
354        PhysicsObject oikeaKasi2 = LuoRuumiinOsa(perusKoko * 2, perusKoko / 2, Shape.Ellipse, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(85, 40), vari);
355        PhysicsObject vasenJalka = LuoRuumiinOsa(perusKoko / 2, perusKoko * 2, Shape.Ellipse, collisionIgnoreGroup + 2, keskiVartalo.Position + new Vector(-10, -70), vari);
356        PhysicsObject oikeaJalka = LuoRuumiinOsa(perusKoko / 2, perusKoko * 2, Shape.Ellipse, collisionIgnoreGroup + 2, keskiVartalo.Position + new Vector(10, -70), vari);
357        PhysicsObject vasenJalka2 = LuoRuumiinOsa(perusKoko / 2, perusKoko * 2, Shape.Ellipse, collisionIgnoreGroup + 2, keskiVartalo.Position + new Vector(-10, -120), vari);
358        //vasenJalka2.Tag = "irtoava";
359        PhysicsObject oikeaJalka2 = LuoRuumiinOsa(perusKoko / 2, perusKoko * 2, Shape.Ellipse, collisionIgnoreGroup + 2, keskiVartalo.Position + new Vector(10, -120), vari);
360        PhysicsObject vasenKammen = LuoRuumiinOsa(perusKoko / 2, perusKoko / 2, Shape.Circle, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(-115, 40), vari);
361        vasenKammen.Tag = "vasenKammen";
362        PhysicsObject oikeaKammen = LuoRuumiinOsa(perusKoko / 2, perusKoko / 2, Shape.Circle, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(115, 40), vari);
363        oikeaKammen.Tag = "oikeaKammen";
364
365        keskiVartalo.Tag = "ruumis";
366        paa.Tag = "ruumis";
367
368
369        ProgressBar elamaPalkki = new ProgressBar(75, 10);
370        elamaPalkki.X = 0;
371        elamaPalkki.Y = 40;
372        elamaPalkki.BindTo(pelaaja.Elamat);
373        Add(elamaPalkki);
374
375        Timer ajastin = new Timer();
376        ajastin.Interval = 0.01;
377        ajastin.Timeout += delegate
378        {
379            elamaPalkki.Position = Camera.WorldToScreen(keskiVartalo.Position + new Vector(0, 150));
380        };
381        ajastin.Start();
382
383
384        AddCollisionHandler(keskiVartalo, "ase", delegate(PhysicsObject kasi, PhysicsObject ase) {
385            AseOsuuRuumiinOsaan(kasi, ase, pelaaja);
386        });
387
388        AddCollisionHandler(paa, "ase", delegate(PhysicsObject kasi, PhysicsObject ase)
389        {
390            AseOsuuRuumiinOsaan(kasi, ase, pelaaja);
391        });
392
393        pelaaja.Elamat.LowerLimit += delegate {
394            Explosion rajahdys = new Explosion(200);
395            rajahdys.Position = paa.Position;
396            Add(rajahdys);
397            paa.Destroy();
398        };
399
400        AddCollisionHandler(vasenKammen, "ase", delegate(PhysicsObject kasi, PhysicsObject ase) { KeraaAseVasempaanKateen(kasi, ase, pelaaja); });
401        AddCollisionHandler(oikeaKammen, "ase", delegate(PhysicsObject kasi, PhysicsObject ase) { KeraaAseOikeaanKateen(kasi, ase, pelaaja); });
402        pelaaja.RuumiinOsat.Add(paa);
403
404        pelaaja.RuumiinOsat.Add(vasenKammen);
405        pelaaja.RuumiinOsat.Add(oikeaKammen);
406
407        foreach (var item in pelaaja.RuumiinOsat)
408        {
409            Add(item);
410        }
411
412        Add(paa);
413        Add(keskiVartalo);
414        Add(vasenKasi);
415        Add(vasenKasi2);
416        Add(oikeaKasi);
417        Add(oikeaKasi2);
418        Add(vasenJalka);
419        Add(oikeaJalka);
420        Add(vasenJalka2);
421        Add(oikeaJalka2);
422        Add(vasenKammen);
423        Add(oikeaKammen);
424        LiitaYhteen(paa, keskiVartalo, new Vector(0, -5));
425        LiitaYhteen(keskiVartalo, vasenKasi, new Vector(-10, 30));
426        LiitaYhteen(vasenKasi, vasenKasi2, new Vector(-25, 0));
427        LiitaYhteen(keskiVartalo, oikeaKasi, new Vector(10, 30));
428        LiitaYhteen(oikeaKasi, oikeaKasi2, new Vector(25, 0));
429        LiitaYhteen(vasenJalka, keskiVartalo, new Vector(0, 30));
430        LiitaYhteen(oikeaJalka, keskiVartalo, new Vector(0, 30));
431        LiitaYhteen(vasenJalka2, vasenJalka, new Vector(0, 25));
432        LiitaYhteen(oikeaJalka2, oikeaJalka, new Vector(0, 25));
433        LiitaYhteen(vasenKasi2, vasenKammen, new Vector(-25, 0));
434        LiitaYhteen(oikeaKasi2, oikeaKammen, new Vector(25, 0));
435    }
436
437    void AseOsuuRuumiinOsaan(PhysicsObject ruumiinOsa, PhysicsObject ase, Pelaaja pelaaja)
438    {
439
440        if (pelaaja.oikeaKasi != null && ase.Equals(pelaaja.oikeaKasi.Object2)) return;
441        if (pelaaja.vasenKasi != null && ase.Equals(pelaaja.vasenKasi.Object2)) return;
442        pelaaja.Elamat.Value--;
443    }
444
445    void KeraaAseVasempaanKateen(PhysicsObject kasi, PhysicsObject ase, Pelaaja pelaaja)
446    {
447        if (pelaaja.vasenKasi == null && pelaaja.OtetaankoKiinni)
448        {
449            pelaaja.vasenKasi = LiitaYhteen(kasi, ase, Vector.Zero);
450
451            if (ase is Pommi)
452            {
453                (ase as Pommi).Sytyta();
454                //Sytytapommi(ase);
455            }
456        }
457        //ase.CollisionIgnoreGroup = kasi.CollisionIgnoreGroup;
458        AseKeratty(pelaaja);
459    }
460
461    void KeraaAseOikeaanKateen(PhysicsObject kasi, PhysicsObject ase, Pelaaja pelaaja)
462    {
463        if (pelaaja.oikeaKasi == null && pelaaja.OtetaankoKiinni)
464        {
465            pelaaja.oikeaKasi = LiitaYhteen(kasi, ase, Vector.Zero);
466
467            if (ase is Pommi)
468            {
469                (ase as Pommi).Sytyta();
470            }
471        }
472        //ase.CollisionIgnoreGroup = kasi.CollisionIgnoreGroup;
473        AseKeratty(pelaaja);
474
475    }
476
477    void AseKeratty(Pelaaja pelaaja)
478    {
479        pelaaja.OtetaankoKiinni = false;
480    }
481
482
483
484    AxleJoint LiitaYhteen(PhysicsObject ens, PhysicsObject toin, Vector sidosKohta)
485    {
486        AxleJoint liitos = new AxleJoint(ens, toin, ens.Position + sidosKohta);
487        liitos.Softness = 0.000000005;
488        Add(liitos);
489        return liitos;
490    }
491
492    PhysicsObject LuoRuumiinOsa(double leveys, double korkeus, Shape muoto, int collisionIgnoreGroup, Vector pos, Color vari)
493    {
494        PhysicsObject ruumiinOsa = new PhysicsObject(leveys, korkeus, muoto);
495        ruumiinOsa.Position = pos;
496        ruumiinOsa.Color = vari;
497        ruumiinOsa.CollisionIgnoreGroup = collisionIgnoreGroup;
498       
499        return ruumiinOsa;
500    }
501
502    public Pelaaja EtsiOmistaja(PhysicsObject osa)
503    {
504        if (OmistaaOsan(pelaaja1, osa)) return pelaaja1;
505        if (OmistaaOsan(pelaaja2, osa)) return pelaaja2;
506        if (OmistaaOsan(pelaaja3, osa)) return pelaaja3;
507        if (OmistaaOsan(pelaaja4, osa)) return pelaaja4;
508        return null;
509    }
510
511    bool OmistaaOsan(Pelaaja pelaaja, PhysicsObject osa)
512    {
513        foreach (var obj in pelaaja.RuumiinOsat)
514        {
515            if (obj == osa)
516                return true;
517        }
518        return false;
519    }
520}
Note: See TracBrowser for help on using the repository browser.