source: 2014/koodauskerho/38/FransM/Weaporage/Weaporage/Weaporage/Weaporage.cs @ 5817

Revision 5817, 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    Image Pallonkuva = LoadImage("Pallo");
118
119    public override void Begin()
120    {
121        Level.Width = 2400;
122        Level.Height = 1800;
123        LisaaAseetPeliin(new Vector(700, 700));
124        LisaaAseetPeliin(new Vector(700, -700));
125        LisaaAseetPeliin(new Vector(-700, -700));
126        LisaaAseetPeliin(new Vector(-700, 700));
127
128        Level.Background.CreateGradient(RandomGen.NextColor(), RandomGen.NextColor());
129       
130        IsFullScreen = true;
131       
132        pelaaja1 = new Pelaaja(10);
133        pelaaja2 = new Pelaaja(10);
134        pelaaja3 = new Pelaaja(10);
135        pelaaja4 = new Pelaaja(10);
136
137        IsMouseVisible = true;
138
139       /* PhysicsObject pallo = new PhysicsObject(200, 200);
140        pallo.Position = new Vector(0, 0);
141        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(2000);
142        pallo.Image = Pallonkuva;
143        pallo.Brain = satunnaisAivot;
144        satunnaisAivot.ChangeMovementSeconds = 100;
145        pallo.Shape = Shape.Circle;
146        pallo.AngularAcceleration = 10000;
147        pallo.RotateImage = true;
148        pallo.Tag = "ase";
149        Add(pallo);*/
150
151
152
153       
154        Level.CreateBorders();
155        Camera.ZoomToLevel();
156        Gravity = new Vector(0, -100);
157
158        Luopelaaja(pelaaja1, 2, new Vector(200, 200), Color.Red);
159        Luopelaaja(pelaaja2, 12, new Vector(200, -200), Color.Pink);
160        Luopelaaja(pelaaja3, 20, new Vector(-200, -200), Color.SpringGreen);
161        Luopelaaja(pelaaja4, 30, new Vector(-200, 200), Color.Blue);
162
163        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(-100, 0));
164        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(100, 0));
165        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(0, -100));
166        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(0, 100));
167        Keyboard.Listen(Key.RightControl, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja1);
168        Keyboard.Listen(Key.RightAlt, ButtonState.Pressed, IrrotaAseet, null, pelaaja1);
169
170        Keyboard.Listen(Key.Space, ButtonState.Pressed, AloitaAlustaPeli, null);
171
172        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(-100, 0));
173        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(100, 0));
174        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(0, -100));
175        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja2, new Vector(0, 100));
176        Keyboard.Listen(Key.Q, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja2);
177        Keyboard.Listen(Key.E, ButtonState.Pressed, IrrotaAseet, null, pelaaja2);
178
179        Keyboard.Listen(Key.J, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(-100, 0));
180        Keyboard.Listen(Key.L, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(100, 0));
181        Keyboard.Listen(Key.K, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(0, -100));
182        Keyboard.Listen(Key.I, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja3, new Vector(0, 100));
183        Keyboard.Listen(Key.U, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja3);
184        Keyboard.Listen(Key.O, ButtonState.Pressed, IrrotaAseet, null, pelaaja3);
185
186        Keyboard.Listen(Key.NumPad4, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(-100, 0));
187        Keyboard.Listen(Key.NumPad6, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(100, 0));
188        Keyboard.Listen(Key.NumPad5, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(0, -100));
189        Keyboard.Listen(Key.NumPad8, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja4, new Vector(0, 100));
190        Keyboard.Listen(Key.Divide, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja4);
191        Keyboard.Listen(Key.Multiply, ButtonState.Pressed, IrrotaAseet, null, pelaaja4);
192
193        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja1);
194        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja2);
195        ControllerThree.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja3);
196        ControllerFour.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja4);
197
198
199        ControllerOne.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja1);
200        ControllerOne.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja1);
201        ControllerTwo.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja2);
202        ControllerTwo.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja2);
203        ControllerThree.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja3);
204        ControllerThree.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja3);
205        ControllerFour.Listen(Button.A, ButtonState.Pressed, ValmiinaOttamaanAseen, null, pelaaja4);
206        ControllerFour.Listen(Button.A, ButtonState.Released, IrrotaAseet, null, pelaaja4);
207
208        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
209        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
210    }
211
212    void AloitaAlustaPeli()
213    {
214        ClearAll();
215        Begin();
216    }
217
218
219    void IrrotaAseet(Pelaaja pelaaja)
220    {
221        if (pelaaja.oikeaKasi != null)
222        {
223            pelaaja.oikeaKasi.Destroy();
224            pelaaja.oikeaKasi = null;
225        }
226        if (pelaaja.vasenKasi != null)
227        {
228            pelaaja.vasenKasi.Destroy();
229            pelaaja.vasenKasi = null;
230        }
231        pelaaja.OtetaankoKiinni = false;
232    }
233
234
235    void ValmiinaOttamaanAseen(Pelaaja pelaaja)
236    {
237        if (pelaaja.OtetaankoKiinni)
238            pelaaja.OtetaankoKiinni = false;
239        else pelaaja.OtetaankoKiinni = true;
240    }
241
242
243    void LisaaAseetPeliin(Vector asepaikka)
244    {
245        int asenumero = RandomGen.NextInt(1, 8);
246        if (asenumero == 1)
247        {
248            PhysicsObject ase = new PhysicsObject(100, 100);
249            ase.Position = asepaikka;
250            ase.Image = Vasarankuva;
251            ase.Shape = Shape.FromImage(Vasarankuva);
252            ase.Tag = "ase";
253            Add(ase);
254        }
255        else if (asenumero == 2)
256        {
257            PhysicsObject ase2 = new PhysicsObject(250, 300);
258            ase2.Position = asepaikka;
259            ase2.Mass = 5;
260            ase2.Image = Tikarinkuva;
261            ase2.Shape = Shape.FromImage(Tikarinkuva);
262            ase2.Tag = "ase";
263            Add(ase2);
264        }
265        else if (asenumero == 3)
266        {
267            PhysicsObject ase3 = new PhysicsObject(100, 150);
268            ase3.Position = asepaikka;
269            ase3.Mass = 10;
270            ase3.Image = Miekankuva;
271            ase3.CollisionIgnoreGroup = 20000;
272
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(100, 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(200, 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, 100);
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 = 0.9;
305            laukausaika.Timeout += delegate
306            {
307
308                PhysicsObject Luoti = new PhysicsObject(60, 50);
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, 100, 250);
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.