source: topias_k/Square Defence beta/Peli.cs @ 453

Revision 453, 27.0 KB checked in by tovakosk, 10 years ago (diff)

uus torni3

Line 
1#region Usings
2using System;
3using System.Collections.Generic;
4using System.Linq;
5using Microsoft.Xna.Framework;
6using Microsoft.Xna.Framework.Audio;
7using Microsoft.Xna.Framework.Content;
8using Microsoft.Xna.Framework.Graphics;
9using Microsoft.Xna.Framework.Input;
10using Microsoft.Xna.Framework.Media;
11using Jypeli;
12using Jypeli.ScreenObjects;
13using Jypeli.Assets;
14using AdvanceMath;
15using Physics2DDotNet;
16using Physics2DDotNet.Shapes;
17#endregion
18
19namespace Square_defence_beta
20{
21    //Made by Topias Koskela
22    //Dont copy any part of this code without my permition.
23    //Contact me at tvkoskela (a) hotmail , com
24    //07.08.2009
25
26    public class Peli : PhysicsGame
27    {
28        PhysicsObject waypoint;
29        PhysicsObject Osto;
30        PhysicsObject torni;
31        PhysicsObject torni2;
32        PhysicsObject torni3;
33        PhysicsObject Osto2;
34        PhysicsObject Alku;
35        BattleObject vihu;
36
37        int ostatorni1 = 0;
38        int ostatorni2 = 0;
39        int vihujenmaara;
40        int vihujakentassa;
41        int maxvihuja = 20;
42        int nopeus = 800;
43        int vihuenkka = 50;
44
45        Timer ajastin;
46        const double OstoX = -560;
47        const double OstoY = -410;
48        const double Osto2X = -470;
49        const double Osto2Y = -410;
50        const double AlkuX = -25;
51        const double AlkuY = -430;
52
53        Meter<int> elamalaskuri;
54        ValueDisplay elamaNaytto;
55        Meter<int> rahalaskuri;
56        ValueDisplay rahaNaytto;
57        Meter<int> lvllaskuri;
58        ValueDisplay lvlNaytto;
59        Meter<int> Ostolaskuri;
60        ValueDisplay OstoNaytto;
61        Meter<int> Ostolaskuri2;
62        ValueDisplay OstoNaytto2;
63
64        List<ProjectileWeapon> aseet = new List<ProjectileWeapon>();
65        List<BattleObject> viholliset = new List<BattleObject>();
66
67        GameObject Tähtäin;
68
69        HighScoreList lista;
70
71        protected override void LoadContent()
72        {
73            Level = Luokentta();
74            Level.Background.Image = Content.Load<Texture2D>("tausta");
75
76            ajastin = new Timer();
77            ajastin.Interval = 0.6;
78            ajastin.Trigger += new Timer.TriggerHandler(LisaaVihut);
79            AddTimer(ajastin);
80
81            waypoint = luoWaypoint(-475, 215, 1, 5, 20);
82            waypoint = luoWaypoint(-490, 395, 2, 20, 5);
83            waypoint = luoWaypoint(-190, 380, 3, 5, 20);
84            waypoint = luoWaypoint(-210, -65, 4, 20, 5);
85            waypoint = luoWaypoint(-400, -50, 3, 5, 20);
86            waypoint = luoWaypoint(-390, -280, 2, 20, 5);
87            waypoint = luoWaypoint(-8, -260, 1, 5, 20);
88            waypoint = luoWaypoint(-30, 25, 2, 20, 5);
89            waypoint = luoWaypoint(165, 10, 1, 5, 20);
90            waypoint = luoWaypoint(155, 230, 4, 20, 5);
91            waypoint = luoWaypoint(60, 220, 1, 5, 20);
92            waypoint = luoWaypoint(70, 390, 2, 20, 5);
93            waypoint = luoWaypoint(453, 380, 3, 5, 20);
94            waypoint = luoWaypoint(445, 30, 4, 20, 5);
95            waypoint = luoWaypoint(350, 45, 3, 5, 20);
96            waypoint = luoWaypoint(365, -180, 4, 20, 5);
97            waypoint = luoWaypoint(185, -160, 3, 5, 20);
98            waypoint = luoWaypoint(200, -350, 1000, 20, 5);
99
100            Osto = luoOstot(OstoX, OstoY, "neliö1", 60, 60);
101            Osto2 = luoOstot(Osto2X, Osto2Y, "neliö2", 60, 60);
102            Alku = luoOstot(AlkuX, AlkuY, "Aloita1", 100, 75);
103            //torni2 = luotorni2(-300, 100);
104            //torni = luotorni(300, 100);
105            torni3 = luotorni3(-300, 100);
106
107            elamalaskuri = new Meter<int>(10, -1, 100);
108            //elamalaskuri.LowerLimit += new Meter<int>.OnLimitHandler( x, ); 
109            elamaNaytto = new ValueDisplay(this);
110            elamaNaytto.HorizontalOrigin = HorizontalAlignment.Left;
111            elamaNaytto.VerticalOrigin = VerticalAlignment.Top;
112            elamaNaytto.Text = " ";
113            elamaNaytto.X = 250;
114            elamaNaytto.Y = -450;
115            elamaNaytto.BindTo(elamalaskuri);
116            Add(elamaNaytto);
117
118            rahalaskuri = new Meter<int>(250, 0, 1000000);
119            rahaNaytto = new ValueDisplay(this);
120            rahaNaytto.HorizontalOrigin = HorizontalAlignment.Left;
121            rahaNaytto.VerticalOrigin = VerticalAlignment.Top;
122            rahaNaytto.Text = "$=";
123            rahaNaytto.X = 400;
124            rahaNaytto.Y = -430;
125            rahaNaytto.BindTo(rahalaskuri);
126            Add(rahaNaytto);
127
128            Ostolaskuri = new Meter<int>(75, 0, 10000);
129            OstoNaytto = new ValueDisplay(this);
130            OstoNaytto.HorizontalOrigin = HorizontalAlignment.Left;
131            OstoNaytto.VerticalOrigin = VerticalAlignment.Top;
132            OstoNaytto.Text = "$=";
133            OstoNaytto.X = -590;
134            OstoNaytto.Y = -450;
135            OstoNaytto.BindTo(Ostolaskuri);
136            Add(OstoNaytto);
137
138            Ostolaskuri2 = new Meter<int>(600, 0, 10000);
139            OstoNaytto2 = new ValueDisplay(this);
140            OstoNaytto2.HorizontalOrigin = HorizontalAlignment.Left;
141            OstoNaytto2.VerticalOrigin = VerticalAlignment.Top;
142            OstoNaytto2.Text = "$=";
143            OstoNaytto2.X = -505;
144            OstoNaytto2.Y = -450;
145            OstoNaytto2.BindTo(Ostolaskuri2);
146            Add(OstoNaytto2);
147
148            lvllaskuri = new Meter<int>(0, 0, 10000); 
149            lvlNaytto = new ValueDisplay(this);
150            lvlNaytto.HorizontalOrigin = HorizontalAlignment.Left;
151            lvlNaytto.VerticalOrigin = VerticalAlignment.Top;
152            lvlNaytto.Text = " ";
153            lvlNaytto.X = 250;
154            lvlNaytto.Y = -400;
155            lvlNaytto.BindTo(lvllaskuri);
156            Add(lvlNaytto);
157
158
159
160            LuoTähtäin();
161            asetaohjaimet();
162
163            Timer ampumisAjastin = new Timer();
164            ampumisAjastin.Interval = 0.1;
165            ampumisAjastin.Trigger += new Timer.TriggerHandler(tarkistaampuminen);
166            AddTimer(ampumisAjastin);
167            ampumisAjastin.Start();
168
169            Timer ampumisAjastin2 = new Timer();
170            ampumisAjastin2.Interval = 0.1;
171            ampumisAjastin2.Trigger += new Timer.TriggerHandler(tarkistaampuminen2);
172            AddTimer(ampumisAjastin2);
173            ampumisAjastin2.Start();
174
175            Timer ampumisAjastin3 = new Timer();
176            ampumisAjastin3.Interval = 0.1;
177            ampumisAjastin3.Trigger += new Timer.TriggerHandler(tarkistaampuminen3);
178            AddTimer(ampumisAjastin3);
179            ampumisAjastin3.Start();
180
181            lista = HighScoreList.LoadOrCreate(this, "topten.dat", 10);
182            lista.ScreenList.ItemColor = Color.Red;
183            lista.ScreenList.BackGroundColor = Color.Black;
184        }
185
186        Level Luokentta()
187        {
188            Level kentta = new Level(this);
189            return kentta;
190        }
191        void LisaaVihut(Timer sender)
192        {
193            IShape ympyra = Shapes.CreateCircle(15.0);
194            vihu = new BattleObject(ympyra, 10.0, vihuenkka);
195            vihu.X = -650;
196            vihu.Y = 215;
197            Level.Objects.Add(vihu);
198            vihu.Restitution = 0.0;
199            vihu.HitpointsReachedZero += VihuKuoli;
200            vihu.IgnoresExplosions = true;
201            vihu.IgnoresCollisionResponse = true;
202            viholliset.Add(vihu);
203
204            if (lvllaskuri.Value >= 5)
205            {
206                Texture2D Pallokuva = Content.Load<Texture2D>("Pallo3");
207                vihu.Texture = Pallokuva;
208            }
209            else if (lvllaskuri.Value >= 3)
210            {
211                Texture2D Pallokuva = Content.Load<Texture2D>("Pallo2");
212                vihu.Texture = Pallokuva;
213            }
214            else if (lvllaskuri.Value >= 0)
215            {
216                Texture2D Pallokuva = Content.Load<Texture2D>("Pallo1");
217                vihu.Texture = Pallokuva;
218            }
219            Vector2D impulssi = new Vector2D(nopeus, 0.0);
220            vihu.Hit(impulssi);
221            vihujenmaara++;
222            vihujakentassa++;
223            if (vihujenmaara >= maxvihuja)
224            {
225                ajastin.Stop();
226            }
227            AddCollisionHandler(vihu, Tultiinwaypointille);
228        }
229        void Tultiinwaypointille(Collision c)
230        {
231            if (c.Other.Mass == 1)
232            {
233                c.Obj.Velocity = new Vector2D(0, 0);
234                Vector2D impulssi01 = new Vector2D(0, nopeus);
235                c.Obj.Hit(impulssi01);
236                return;
237            }
238            if (c.Other.Mass == 2)
239            {
240                c.Obj.Velocity = new Vector2D(0, 0);
241                Vector2D impulssi01 = new Vector2D(nopeus, 0);
242                c.Obj.Hit(impulssi01);
243                return;
244            }
245            if (c.Other.Mass == 3)
246            {
247                c.Obj.Velocity = new Vector2D(0, 0);
248                Vector2D impulssi01 = new Vector2D(0, -nopeus);
249                c.Obj.Hit(impulssi01);
250                return;
251            }
252            if (c.Other.Mass == 4)
253            {
254                c.Obj.Velocity = new Vector2D(0, 0);
255                Vector2D impulssi01 = new Vector2D(-nopeus, 0);
256                c.Obj.Hit(impulssi01);
257                return;
258            }
259            if (c.Other.Mass == 1000)
260            {
261                BattleObject vihu2 = c.Obj as BattleObject;
262                vihu2.Visible = false;
263                vihu2.Lifetime.IsExpired = true;
264                Level.Objects.Remove(vihu2);
265                viholliset.Remove( vihu2 );
266                vihujakentassa--;
267                if (elamalaskuri.Value == 0)
268                {
269                    peliloppu();
270                }
271                else if (elamalaskuri.Value >= 0)
272                {
273                    elamalaskuri.Value--;
274                    MessageDisplay.Add("Menetit yhden elämän");
275                    return;
276                }
277            }
278        }
279        PhysicsObject luoWaypoint(int x, int y, double mass, double o, double i)
280        {
281            IShape wp = Shapes.CreateRectangle(o, i);
282            PhysicsObject waypoint = new PhysicsObject(mass, wp);
283            waypoint.IgnoresCollisionResponse = true;
284            waypoint.Visible = false;
285            waypoint.IgnoresExplosions = true;
286
287            waypoint.X = x;
288            waypoint.Y = y;
289            Level.Objects.Add(waypoint);
290            return waypoint;
291        }
292        PhysicsObject luoOstot(double x, double y, string u,double v ,double w )
293        {
294            IShape wp = Shapes.CreateRectangle(v, w);
295            PhysicsObject Osto = new PhysicsObject(10, wp);
296            Osto.IgnoresCollisionResponse = true;
297            Osto.Color = Color.Blue;
298            Osto.IgnoresExplosions = true;
299
300            Texture2D Neliökuva = Content.Load<Texture2D>(u);
301            Osto.Texture = Neliökuva;
302
303            Osto.X = x;
304            Osto.Y = y;
305            Level.Objects.Add(Osto);
306            return waypoint;
307        }
308        void LuoTähtäin()
309        {
310            IShape ympyra = Shapes.CreateCircle(5.0);
311            Tähtäin = new GameObject(ympyra);
312            Texture2D Tähtäinkuva = Content.Load<Texture2D>("hiiri2");
313            Tähtäin.Texture = Tähtäinkuva;
314            Tähtäin.Size = new Vector2D(32, 32);
315            Level.Objects.Add(Tähtäin);
316            Controls.Listen(MouseButtons.None, ButtonPosition.Irrelevant, 0, Liikutatahtainta);
317            Controls.Mouse.UseCursor = true;
318        }
319        bool Liikutatahtainta(ControlEvent e)
320        {
321            Tähtäin.Position = Controls.Mouse.GetPositionOnWorld(Camera);
322            return false;
323        }
324        void asetaohjaimet()
325        {
326            Controls.Listen(MouseButtons.Left, ButtonPosition.Pressed, 0.0,Vasenhiiri);
327            Controls.Listen(MouseButtons.Right, ButtonPosition.Pressed, 0.0, Oikeahiiri);
328       
329        }
330        PhysicsObject luotorni(double X, double Y)
331        {
332            IShape t = Shapes.CreateRectangle(60, 60);
333            PhysicsObject torni = new PhysicsObject(10, t);
334            torni.IgnoresCollisionResponse = true;
335            torni.Visible = true;
336            torni.IgnoresCollisionResponse = true;
337            torni.IgnoresExplosions = true;
338            Texture2D basekuva = Content.Load<Texture2D>("Neliö1_base");
339            torni.Texture = basekuva;
340            torni.X = X;
341            torni.Y = Y;
342            Level.Objects.Add(torni);
343
344            IShape u = Shapes.CreateRectangle(60, 60);
345            PhysicsObject tykki = new PhysicsObject(10, u);
346            tykki.Visible = true;
347            tykki.Color = Color.Blue;
348            tykki.IgnoresCollisionResponse = true;
349            tykki.IgnoresExplosions = true;
350            Level.Objects.Add(tykki);
351            Texture2D tykkikuva = Content.Load<Texture2D>("Neliö1_tykki");
352            tykki.Texture = tykkikuva;
353            tykki.X = X;
354            tykki.Y = Y;
355
356            ProjectileWeapon ase = new ProjectileWeapon();
357            Level.Objects.Add(ase);
358            ase.IgnoresCollisionResponse = true;
359            ase.Power = new Meter<double>(2000, 0,2000);
360            ase.FireRate = 1;
361            ase.Position = tykki.Position;
362            ase.SetOwner(tykki, Level);
363            ase.IgnoresExplosions = true;
364            ase.InfiniteAmmo = true;
365            ase.IgnoresCollisionResponse = true;
366            CannonBall ammus = new CannonBall();
367            ammus.Mass = 0.9;
368            ammus.ExplodeCondition = Projectile.IsBattleObject;
369            ase.AmmoType = ammus;
370            //ase.Power.Value = 10000;
371            ammus.IgnoresExplosions = true; 
372            ammus.FuseTime = new Lifetime(0.12);
373
374            aseet.Add(ase);
375
376            return torni;
377        }
378        void tarkistaampuminen(Timer sender)
379        {
380            foreach (var ase in aseet)
381            {
382                foreach (var vihu in viholliset)
383                {
384                    if ((ase.Position - vihu.Position).Magnitude < 250)
385                    {
386                        Angle kulma = Angle.Radians((vihu.Position - ase.Position).Angle);
387                        //if( kulma.Radian - ase.Angle.Radian > 2 ) // TODO: mieti saisiko kääntymisen paremmaksi
388                        ase.Angle = kulma;
389                        ase.Owner.Angle = kulma;
390                        Projectile ammus = ase.Use();
391                        if (ammus == null) break;
392                        Level.Objects.Add(ammus);
393                        break;
394                    }
395                }
396            }
397        }
398        PhysicsObject luotorni2(double X, double Y)
399        {
400            IShape t = Shapes.CreateRectangle(60, 60);
401            PhysicsObject torni = new PhysicsObject(10, t);
402            torni.IgnoresCollisionResponse = true;
403            torni.Visible = true;
404            torni.IgnoresCollisionResponse = true;
405            torni.IgnoresExplosions = true;
406            Texture2D basekuva = Content.Load<Texture2D>("Neliö2_base");
407            torni.Texture = basekuva;
408            torni.X = X;
409            torni.Y = Y;
410            Level.Objects.Add(torni);
411
412            IShape u = Shapes.CreateRectangle(60, 60);
413            PhysicsObject tykki = new PhysicsObject(10, u);
414            tykki.Visible = true;
415            tykki.Color = Color.Blue;
416            tykki.IgnoresCollisionResponse = true;
417            tykki.IgnoresExplosions = true;
418            Level.Objects.Add(tykki);
419            Texture2D tykkikuva = Content.Load<Texture2D>("Neliö2_tykki");
420            tykki.Texture = tykkikuva;
421            tykki.X = X;
422            tykki.Y = Y;
423
424            ProjectileWeapon ase = new ProjectileWeapon();
425            Level.Objects.Add(ase);
426            ase.IgnoresCollisionResponse = true;
427            ase.Power = new Meter<double>(2000, 0, 2000);
428            ase.FireRate = 5;
429            ase.Position = tykki.Position;
430            ase.SetOwner(tykki, Level);
431            ase.IgnoresExplosions = true;
432            ase.InfiniteAmmo = true;
433            ase.IgnoresCollisionResponse = true;
434
435            CannonBall ammus = new CannonBall();
436            ammus.Mass = 0.9;
437            ammus.ExplodeCondition = Projectile.IsBattleObject;
438            ase.AmmoType = ammus;
439            //ase.Power.Value = 10000;
440            ammus.IgnoresExplosions = true;
441            ammus.FuseTime = new Lifetime(0.12);
442
443            aseet.Add(ase);
444
445            return torni;
446        }
447        void tarkistaampuminen2(Timer sender)
448        {
449            foreach (var ase in aseet)
450            {
451                foreach (var vihu in viholliset)
452                {
453                    if ((ase.Position - vihu.Position).Magnitude < 250)
454                    {
455                        Angle kulma = Angle.Radians((vihu.Position - ase.Position).Angle);
456
457                        //if( kulma.Radian - ase.Angle.Radian > 2 ) // TODO: mieti saisiko kääntymisen paremmaksi
458
459                        ase.Angle = kulma;
460                        ase.Owner.Angle = kulma;
461                        Projectile ammus = ase.Use();
462                        if (ammus == null) break;
463                        Level.Objects.Add(ammus);
464                        break;
465                    }
466                }
467            }
468        }
469        PhysicsObject luotorni3(double X, double Y)
470        {
471            IShape t = Shapes.CreateRectangle(60, 60);
472            PhysicsObject torni3 = new PhysicsObject(10, t);
473            torni3.IgnoresCollisionResponse = true;
474            torni3.Visible = true;
475            torni3.IgnoresCollisionResponse = true;
476            torni3.IgnoresExplosions = true;
477            Texture2D basekuva = Content.Load<Texture2D>("Neliö3_base");
478            torni3.Texture = basekuva;
479            torni3.X = X;
480            torni3.Y = Y;
481            Level.Objects.Add(torni3);
482
483            IShape u = Shapes.CreateRectangle(60, 60);
484            PhysicsObject tykki3 = new PhysicsObject(10, u);
485            tykki3.Visible = true;
486            tykki3.Color = Color.Blue;
487            tykki3.IgnoresCollisionResponse = true;
488            tykki3.IgnoresExplosions = true;
489            Level.Objects.Add(tykki3);
490            Texture2D tykkikuva = Content.Load<Texture2D>("Neliö3_tykki");
491            tykki3.Texture = tykkikuva;
492            tykki3.X = X;
493            tykki3.Y = Y;
494
495            ProjectileWeapon ase3 = new ProjectileWeapon();
496            Level.Objects.Add(ase3);
497            ase3.IgnoresCollisionResponse = true;
498            ase3.Power = new Meter<double>(2000, 0, 2000);
499            ase3.FireRate = 0.5;
500            ase3.Position = tykki3.Position;
501            ase3.SetOwner(tykki3, Level);
502            ase3.IgnoresExplosions = true;
503            ase3.InfiniteAmmo = true;
504            ase3.IgnoresCollisionResponse = true;
505            CannonBall ammus3 = new CannonBall();
506            ammus3.Mass = 0.9;
507            ammus3.ExplodeCondition = Projectile.IsBattleObject;
508            ase3.AmmoType = ammus3;
509            ammus3.IgnoresExplosions = true;
510            ammus3.FuseTime = new Lifetime(0.15);
511
512            aseet.Add(ase3);
513
514            return torni;
515        }
516        void tarkistaampuminen3(Timer sender)
517        {
518            foreach (var ase3 in aseet)
519            {
520                foreach (var vihu in viholliset)
521                {
522                    if ((ase3.Position - vihu.Position).Magnitude < 250)
523                    {
524                        Angle kulma = Angle.Radians((vihu.Position - ase3.Position).Angle);
525                        //if( kulma.Radian - ase.Angle.Radian > 2 ) // TODO: mieti saisiko kääntymisen paremmaksi
526                        ase3.Angle = kulma;
527                        ase3.Owner.Angle = kulma;
528                        Projectile ammus3 = ase3.Use();
529                        if (ammus3 == null) break;
530                        Level.Objects.Add(ammus3);
531                        break;
532                    }
533                }
534            }
535        }
536        void VihuKuoli(object sender, EventArgs e)
537        {
538            BattleObject vihu = sender as BattleObject;
539            vihu.Visible = false;
540            vihu.Lifetime.IsExpired = true;
541            Level.Objects.Remove(vihu);
542            viholliset.Remove(vihu);
543            rahalaskuri.Value += 150;
544            vihujakentassa--;
545        }
546        bool Vasenhiiri(ControlEvent e)
547        {         
548            Vector2D klikattuPaikka = Controls.Mouse.GetPositionOnScreen();
549            //MessageDisplay.Add( (klikattuPaikka.ToString()));
550            if (OstoX - 20 < klikattuPaikka.X &&
551                OstoX + 20 > klikattuPaikka.X &&
552                OstoY + 20 > klikattuPaikka.Y &&
553                OstoY - 20 < klikattuPaikka.Y &&
554                     rahalaskuri.Value >= Ostolaskuri.Value)
555            {
556                Texture2D tornitexture = Content.Load<Texture2D>("Neliö1");
557                Tähtäin.Texture = tornitexture;
558                Tähtäin.Size = new Vector2D(64, 64);
559                ostatorni1++;
560            }
561            else if (ostatorni1 == 1 &&
562                     rahalaskuri.Value >= Ostolaskuri.Value &&
563                    Tähtäin.X <= 600 &&
564                    Tähtäin.X >= -600 &&
565                    Tähtäin.Y >= -320 &&
566                    Tähtäin.Y <= 480)
567            {
568                luotorni(Tähtäin.X, Tähtäin.Y);
569                ostatorni1--;
570                rahalaskuri.Value -= Ostolaskuri.Value;
571                Texture2D nornitexture = Content.Load<Texture2D>("hiiri2");
572                Tähtäin.Texture = nornitexture;
573                Tähtäin.Size = new Vector2D(32, 32);
574                Ostolaskuri.Value += 25;
575
576                MessageDisplay.Add("osto tehty");
577            }
578            if (Osto2X - 20 < klikattuPaikka.X &&
579                Osto2X + 20 > klikattuPaikka.X &&
580                Osto2Y + 20 > klikattuPaikka.Y &&
581                Osto2Y - 20 < klikattuPaikka.Y &&
582                     rahalaskuri.Value >= Ostolaskuri2.Value)
583            {
584                Texture2D tornitexture2 = Content.Load<Texture2D>("Neliö2");
585                Tähtäin.Texture = tornitexture2;
586                Tähtäin.Size = new Vector2D(64, 64);
587                ostatorni2++;
588            }
589            else if (ostatorni2 == 1 &&
590                     rahalaskuri.Value >= Ostolaskuri2.Value &&
591                    Tähtäin.X <= 600 &&
592                    Tähtäin.X >= -600 &&
593                    Tähtäin.Y >= -320 &&
594                    Tähtäin.Y <= 480)
595            {
596                luotorni2(Tähtäin.X, Tähtäin.Y);
597                ostatorni2--;
598                rahalaskuri.Value -= Ostolaskuri2.Value;
599                Texture2D nornitexture = Content.Load<Texture2D>("hiiri2");
600                Tähtäin.Texture = nornitexture;
601                Tähtäin.Size = new Vector2D(32, 32);
602                Ostolaskuri2.Value += 300;
603
604                MessageDisplay.Add("osto tehty");
605            }
606            if (AlkuX - 75 < klikattuPaikka.X &&
607               AlkuX + 75 > klikattuPaikka.X &&
608               AlkuY + 30 > klikattuPaikka.Y &&
609               AlkuY - 30 < klikattuPaikka.Y &&
610                vihujakentassa <= 1)
611            {
612                if (lvllaskuri.Value < 5)
613                {
614                    vihujenmaara = 0;
615                    ajastin.Start();
616                    maxvihuja += 5;
617                    nopeus += 100;
618                    MessageDisplay.Add("Peli käy!!");
619                    vihuenkka += 100;
620                    lvllaskuri.Value++;
621                }
622                else if (lvllaskuri.Value >= 20)
623                {
624                    vihujenmaara = 0;
625                    ajastin.Start();
626                    maxvihuja -= 10;
627                    nopeus -= 1000;
628                    MessageDisplay.Add("Peli käy!!");
629                    vihuenkka += 9000;
630                    lvllaskuri.Value++;
631                }
632                else if (lvllaskuri.Value >= 10)
633                {
634                    vihujenmaara = 0;
635                    ajastin.Start();
636                    maxvihuja += 10;
637                    nopeus += 300;
638                    MessageDisplay.Add("Peli käy!!");
639                    vihuenkka += 300;
640                    lvllaskuri.Value++;
641                }
642
643                else if (lvllaskuri.Value >= 5)
644                {
645                    vihujenmaara = 0;
646                    ajastin.Start();
647                    maxvihuja += 5;
648                    nopeus += 200;
649                    MessageDisplay.Add("Peli käy!!");
650                    vihuenkka += 200;
651                    lvllaskuri.Value++;
652                }
653
654            }
655            return false;
656        }
657        bool Oikeahiiri (ControlEvent e)
658        {
659            Vector2D klikattuPaikka = Controls.Mouse.GetPositionOnScreen();
660            if (ostatorni1 == 1)
661            {
662                ostatorni1 = 0;
663                Texture2D nornitexture = Content.Load<Texture2D>("hiiri2");
664                Tähtäin.Texture = nornitexture;
665                Tähtäin.Size = new Vector2D(32, 32);
666                MessageDisplay.Add("Osto peruutettu");
667            }
668            if (ostatorni2 == 1)
669            {
670                ostatorni2 = 0;
671                Texture2D nornitexture = Content.Load<Texture2D>("hiiri2");
672                Tähtäin.Texture = nornitexture;
673                Tähtäin.Size = new Vector2D(32, 32);
674                MessageDisplay.Add("Osto peruutettu");
675            }
676            return false;
677        }
678        void peliloppu ()
679        {
680            if (rahalaskuri.Value <= 100000 &&
681                rahalaskuri.Value >= 10001)
682            {
683                lista.CongratulationText = "W00t!! hax !! rahamääräsi {1} ansiosta sait paikan {0} listalta. Syötä huijauskoodisi:";
684            }
685            if (rahalaskuri.Value <= 10000 &&
686                rahalaskuri.Value >= 5001)
687            {
688                lista.CongratulationText = "Oho! rahamääräsi {1} toi sinulle paikan {0} listalta. Syötä nimesi:";
689            }
690            if (rahalaskuri.Value <= 5000 &&
691                rahalaskuri.Value >= 1001)
692            {
693                lista.CongratulationText = "Pääsit rahamäärälläsi {1} paikan {0} listalta. Syötä nimesi:";
694            }
695            if (rahalaskuri.Value <= 1000)
696            {
697                lista.CongratulationText = "Sait rahamäärälläsi {1} paikan {0} listalta. Syötä nimesi:";
698            }
699            lista.Show( rahalaskuri.Value);
700            ajastin.Stop();
701            ostatorni1 = 0;
702            ostatorni2 = 0;
703            vihujenmaara = 0;
704            vihujakentassa = 0;
705            maxvihuja = 20;
706            nopeus = 800;
707            vihuenkka = 50;
708            MessageDisplay.Add("Gameover");
709            lvllaskuri.Value = 0;
710            Texture2D nornitexture = Content.Load<Texture2D>("hiiri2");
711            Tähtäin.Texture = nornitexture;
712            Tähtäin.Size = new Vector2D(32, 32);
713
714        }
715
716    }
717}
Note: See TracBrowser for help on using the repository browser.