source: 2011/26/JuhoK/SFN_New/SFN/SFN/SFN/Peli.cs @ 2385

Revision 2385, 24.0 KB checked in by jumakall, 10 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8using System.Globalization;
9
10namespace SFN
11{
12    public class Peli : TopDownPhysicsGame
13    {
14        [Save] List<Auto> autot = new List<Auto>();
15        List<Image> autokuvat = new List<Image>();
16        List<int> hinnat = new List<int>();
17        String[] mallit = new String[4];
18        Label[] kauppakuvat = new Label[4];
19        Label number, malli, moottori, renkaat, moottorin_hinta, renkaiden_hinta, sell_price, rahat, keskiauto;
20        Image MenuBackround, Arrow;
21        [Save] int ID = 0;
22        int max_taso = 5;
23        [Save] double raha = 50000;
24        int ChangeColor;
25
26        Automobile kaara;
27        /*int engine = 1;
28        int tires = 1;*/
29        Vector goal = new Vector(0, 0);
30        GameObject nuoli;
31        PhysicsObject[] kisat;
32        Automobile[] siviilit;
33        Vector[] kohteet;
34        int siviilimaara;
35        Timer kisa_aika;
36
37        string pelitallennus = "";
38
39        public override void Begin()
40        {
41            //Set cursos visible
42            Mouse.IsCursorVisible = true;
43            //Load images, set variables and more...
44            PrepareGame();
45            //Create main menu
46            CreateMenu();
47
48            //Create a car
49            autot.Add(new Auto(mallit[3], 3, 1, 4, 5));
50           
51        }
52
53        protected override void Update(Time time)
54        {
55            if (keskiauto != null)
56            {
57                keskiauto.Angle = keskiauto.Angle - Angle.FromDegrees(0.5);
58            }
59            if (nuoli != null)
60            {
61                nuoli.Position = kaara.Position;
62                nuoli.Angle = (goal - kaara.Position).Angle;
63            }
64            if (goal != Vector.Zero && (goal - kaara.Position).Magnitude < 100)
65            {
66                goal = new Vector(0, 0);
67                LuoKisat();
68                nuoli.IsVisible = false;
69                raha += (1000 / kisa_aika.CurrentTime);
70                MessageDisplay.Add("Money:" + raha);
71            }
72        }
73
74        void PrepareGame()
75        {
76            //Load resources
77            LoadResources();
78
79            //Set cars price
80            hinnat.Add(5000); //Car 0 Price
81            hinnat.Add(5200); //Car 1 Price
82            hinnat.Add(20000); //Car 2 Price
83            hinnat.Add(21000); //Car 3 Price
84
85            //Set model names
86            mallit[0] = "Model0"; //Car 0 Price
87            mallit[1] = "Model1"; //Car 1 Price
88            mallit[2] = "Model2"; //Car 2 Price
89            mallit[3] = "Model3"; //Car 3 Price
90           
91            kisa_aika = new Timer();
92            MessageDisplay.TextColor = Color.Yellow;
93            Gravity = 200;
94            KineticFriction = 10;
95            goal = Vector.Zero;
96        }
97
98        void LoadResources()
99        {
100            //Load menu backround
101            MenuBackround = LoadImage("MenuBackround");
102
103            //Load arrow
104            Arrow = LoadImage("Arrow");
105
106            //Load car images in loop
107            for (int i = 0; i < 4; i += 1)
108            {
109                autokuvat.Add(LoadImage("Whites\\Car" + (i + 1)));
110                autokuvat.Add(LoadImage("Blues\\Car" + (i + 1)));
111                autokuvat.Add(LoadImage("Greens\\Car" + (i + 1)));
112                autokuvat.Add(LoadImage("Reds\\Car" + (i + 1)));
113                autokuvat.Add(LoadImage("Yellows\\Car" + (i + 1)));
114            }
115        }
116
117        void CreateMenu()
118        {
119            //Set menu backround
120            Level.Background.Image = MenuBackround;
121
122            //Quit game button
123            PushButton quit_game = new PushButton("Quit game");
124            quit_game.Clicked += new Action(quit_game_Clicked);
125            quit_game.Position = new Vector(380.0, -50.0);
126            Add(quit_game);
127
128            //Load game button
129            PushButton load_game = new PushButton("Load game");
130            load_game.Clicked += new Action(load_game_Clicked);
131            load_game.Position = new Vector(200.0, -50.0);
132            Add(load_game);
133
134            //New game button
135            PushButton new_game = new PushButton("New game");
136            new_game.Clicked += new Action(new_game_Clicked);
137            new_game.Position = new Vector(20.0, -50.0);
138            Add(new_game);
139        }
140
141        void new_game_Clicked()
142        {
143            ClearAll();
144            Keyboard.Listen(Key.Space, ButtonState.Released, GoToShop, null);
145            //Sekalaista säätöä
146            Level.Background.Image = null;
147            Level.BackgroundColor = Color.LightGray;
148            Camera.ZoomFactor = 0.4;
149
150            //Keyboard.Listen(Key.Escape, ButtonState.Released, Exit, null);
151            //Window.AllowUserResizing = true;
152           
153           
154            LuoKisat();
155
156            //Kontrollit
157            Keyboard.Listen(Key.Up, ButtonState.Down, kaasu, null);
158            Keyboard.Listen(Key.Left, ButtonState.Down, rattiV, null);
159            Keyboard.Listen(Key.Right, ButtonState.Down, rattiO, null);
160            Keyboard.Listen(Key.Down, ButtonState.Down, pakki, null);
161            Keyboard.Listen(Key.RightControl, ButtonState.Down, jarru, null);
162            Keyboard.Listen(Key.Tab, ButtonState.Released, rahatShow, null);
163
164            //Auton kanssa säätöä
165            kaara = new Automobile(100, 50);
166            Camera.FollowedObject = kaara;
167            kaara.TopSpeed = autot[ID].moottori * 75;
168            kaara.Acceleration = autot[ID].moottori * 50;
169            kaara.KineticFriction = 0.999;
170            kaara.Maneuverability = Angle.FromDegrees(autot[ID].renkaat * 5);
171            kaara.BrakeDeceleration = autot[ID].renkaat * 200;
172            kaara.Image = autokuvat[(autot[ID].kori * 5) + (autot[ID].vari)];
173            kaara.X = Level.Left + 150;
174            kaara.MomentOfInertia = 10000;
175            kaara.LinearDamping = 0.9999;
176            kaara.Mass = 10000;
177            kaara.AngularDamping = 0.95;
178            Add(kaara);
179
180            nuoli = new GameObject(30, 30);
181            nuoli.Color = Color.Green;
182            nuoli.Shape = Shape.Triangle;
183            nuoli.Image = Arrow;
184            nuoli.IsVisible = false;
185            Add(nuoli);
186
187            //Turvatalo
188            PhysicsObject Turva = PhysicsObject.CreateStaticObject(50, 50);
189            Turva.Color = Color.Red;
190            Turva.Shape = Shape.Circle;
191            Turva.X = Level.Left + 60;
192            Turva.Tag = "TT";
193            Add(Turva);
194
195            //Kartan lataus
196            /*TileMap World = TileMap.FromFile("Map.txt");
197              World.SetTileMethod('A', taloA);
198              World.SetTileMethod('B', taloB);
199              World.SetTileMethod('C', taloC);
200              World.Execute(150,150);*/
201
202            AddCollisionHandler(kaara, KasitteleKaaranTormays);
203            LuoSiviilit();
204        }
205
206        void load_game_Clicked()
207        {
208            if (DataStorage.Exists("data\\" + pelitallennus.ToString()))
209            {
210                LoadGame(pelitallennus.ToString());
211                GoToShop();
212            }
213            else
214            {
215                ShowMessage("Game not loaded", "Save file does not exist.");
216            }
217
218        }
219
220        void quit_game_Clicked()
221        {
222            Exit();
223        }
224
225        void GoToShop()
226        {
227            Save();
228            //Clear all
229            ClearAll();
230            //Zoom camera to level
231            Camera.ZoomToLevel();
232            //Set level backround color light gray
233            Level.BackgroundColor = Color.LightGray;
234
235            //Ylapallki
236            Label ylapalkki = new Label(Screen.Width, Screen.Height / 15);
237            ylapalkki.Color = Color.SkyBlue;
238            ylapalkki.Position = new Vector(0, Screen.Top - (ylapalkki.Height / 2));
239            Add(ylapalkki);
240
241            //Alapalkki
242            Label alapalkki = new Label(Screen.Width, Screen.Height / 4);
243            alapalkki.Color = Color.SkyBlue;
244            alapalkki.Position = new Vector(0, Screen.Bottom + (alapalkki.Height / 2));
245            Add(alapalkki);
246
247            //Oikea reuna
248            Label oikeareuna = new Label(Screen.Width / 6, Screen.Height);
249            oikeareuna.Color = Color.SkyBlue;
250            oikeareuna.Position = new Vector(Screen.Right - oikeareuna.Width / 2, 0);
251            Add(oikeareuna);
252
253
254            //Next button
255            PushButton nextid = new PushButton("-->");
256            nextid.Position = new Vector(Screen.Right * 0.9, ylapalkki.Y); //Level.Right + 80, Level.Top + 60
257            nextid.Clicked += new Action(nextid_Clicked);
258            Add(nextid);
259
260            //Previous button
261            PushButton previousid = new PushButton("<--");
262            previousid.Position = new Vector(Screen.Right * 0.65, ylapalkki.Y); //Level.Right - 80, Level.Top + 60
263            previousid.Clicked += new Action(previousid_Clicked);
264            Add(previousid);
265
266            //Update engine
267            PushButton update_engine = new PushButton("Update engine");
268            update_engine.Position = new Vector(oikeareuna.X, Screen.Top * 0.75);
269            update_engine.Clicked += new Action(update_engine_Clicked);
270            Add(update_engine);
271
272            //Update tiers
273            PushButton update_tiers = new PushButton("Update tiers");
274            update_tiers.Position = new Vector(oikeareuna.X, Screen.Top * 0.52);
275            update_tiers.Clicked += new Action(update_tiers_Clicked);
276            Add(update_tiers);
277
278            //Leave safehouse
279            PushButton drive = new PushButton("Leave safehouse");
280            drive.Position = new Vector(oikeareuna.X, Screen.Bottom * 0.4);
281            drive.Clicked += new Action(drive_Clicked);
282            Add(drive);
283
284            //Sell car
285            PushButton sell = new PushButton("Sell car");
286            sell.Position = new Vector(oikeareuna.X, Screen.Bottom * 0.2);
287            sell.Clicked += new Action(sell_Clicked);
288            Add(sell);
289
290            //Show selected car number of maximum
291            number = new Label((ID + 1).ToString() + "/" + autot.Count.ToString());
292            number.Position = new Vector(Screen.Right * 0.78, ylapalkki.Y);
293            Add(number);
294
295            //Show car model
296            malli = new Label(autot[ID].korinnimi.ToString());
297            malli.Position = new Vector(Screen.Left * 0.9, ylapalkki.Y);
298            Add(malli);
299
300            //Show engine level
301            moottori = new Label("Engine: " + autot[ID].moottori.ToString());
302            moottori.Position = new Vector(Screen.Left * 0.5, ylapalkki.Y);
303            Add(moottori);
304
305            //Show money
306            string RahaString;
307            if (raha > 9)
308            {
309                RahaString = raha.ToString("0,0", CultureInfo.InvariantCulture);
310            }
311            else
312            {
313                RahaString = raha.ToString();
314            }
315            rahat = new Label("Money: " + RahaString.ToString());
316            rahat.Position = new Vector(oikeareuna.X, 0);
317            Add(rahat);
318
319            //Show car sell price
320            double hinta = (hinnat[autot[ID].kori] * 0.75) + ((autot[ID].moottori * 100) / 2) + ((autot[ID].renkaat * 100) / 2);
321            sell_price = new Label("Sell price: " + hinta.ToString("0,0", CultureInfo.InvariantCulture));
322            sell_price.Position = new Vector(oikeareuna.X, Screen.Bottom * 0.28);
323            Add(sell_price);
324
325            //Show tiers level
326            renkaat = new Label("Tiers: " + autot[ID].renkaat.ToString());
327            renkaat.Position = new Vector(Screen.Left * 0.05, ylapalkki.Y);
328            Add(renkaat);
329
330            //Show updated engine price
331            moottorin_hinta = new Label("Price: " + (autot[ID].moottori * 100).ToString("0,0", CultureInfo.InvariantCulture));
332            moottorin_hinta.Position = new Vector(oikeareuna.X, Screen.Top * 0.65);
333            Add(moottorin_hinta);
334
335            //Show updated tiers price
336            renkaiden_hinta = new Label("Price: " + (autot[ID].renkaat * 100).ToString("0,0", CultureInfo.InvariantCulture));
337            renkaiden_hinta.Position = new Vector(oikeareuna.X, Screen.Top * 0.4);
338            Add(renkaiden_hinta);
339
340            //Change cars color
341            //Green
342            PushButton vihrea = new PushButton("");
343            vihrea.Color = Color.Green;
344            vihrea.Size = new Vector(50, 50);
345            vihrea.Position = new Vector(Screen.Right * 0.9, Screen.Bottom * 0.9);
346            vihrea.Clicked += new Action(vihrea_Clicked);
347            Add(vihrea);
348
349            //Blue
350            PushButton sininen = new PushButton("");
351            sininen.Color = Color.Blue;
352            sininen.Size = new Vector(50, 50);
353            sininen.Position = new Vector(Screen.Right * 0.8, Screen.Bottom * 0.9);
354            sininen.Clicked += new Action(sininen_Clicked);
355            Add(sininen);
356
357            //Red
358            PushButton punainen = new PushButton("");
359            punainen.Color = Color.Red;
360            punainen.Size = new Vector(50, 50);
361            punainen.Position = new Vector(Screen.Right * 0.9, Screen.Bottom * 0.78);
362            punainen.Clicked += new Action(punainen_Clicked);
363            Add(punainen);
364
365            //Yellow
366            PushButton keltainen = new PushButton("");
367            keltainen.Color = Color.Yellow;
368            keltainen.Size = new Vector(50, 50);
369            keltainen.Position = new Vector(Screen.Right * 0.8, Screen.Bottom * 0.78);
370            keltainen.Clicked += new Action(keltainen_Clicked);
371            Add(keltainen);
372
373            //White
374            PushButton valkoinen = new PushButton("White");
375            valkoinen.Clicked += new Action(valkoinen_Clicked);
376            valkoinen.Color = Color.White;
377            valkoinen.Size = new Vector(118, 50);
378            valkoinen.Position = new Vector(Screen.Right * 0.85, Screen.Bottom * 0.66);
379            Add(valkoinen);
380
381
382            //Create cars images, prices and buy buttons
383            double kerroin = 0.85;
384            int kuvaindeksilaskuri = 0;
385            for (int i = 0; i < 4; i++)
386            {
387                kauppakuvat[i] = new Label(40, 20);
388                kauppakuvat[i].Image = autokuvat[0 + kuvaindeksilaskuri];
389                kauppakuvat[i].Position = new Vector(Screen.Left * kerroin, alapalkki.Y + alapalkki.Height * 0.2);
390                Add(kauppakuvat[i]);
391
392                PushButton nappi = new PushButton("Buy");
393                nappi.Position = new Vector(Screen.Left * kerroin, alapalkki.Y - alapalkki.Height * 0.2);
394                int temp = i;
395                nappi.Clicked += new Action(delegate { BuyCar(temp); });
396                Add(nappi);
397
398                Label teksti = new Label("Price: " + hinnat[i].ToString("0,0", CultureInfo.InvariantCulture));
399                teksti.Position = new Vector(Screen.Left * kerroin, alapalkki.Y - alapalkki.Height * 0.05);
400                Add(teksti);
401
402                kuvaindeksilaskuri += 5;
403                kerroin -= 0.3;
404            }
405
406            //Create rotating car in center area
407            keskiauto = new Label(40 * 2, 20 * 2);
408            keskiauto.Image = autokuvat[(autot[ID].kori * 5) + (autot[ID].vari)];
409            keskiauto.Position = new Vector(0 - oikeareuna.Width / 2, 0 + alapalkki.Height / 2 - ylapalkki.Height / 2);
410            Add(keskiauto);
411        }
412
413        void valkoinen_Clicked()
414        {
415            //White
416            ChangeColor = 0;
417            ChangeCarColor();
418        }
419
420        void keltainen_Clicked()
421        {
422            //Yellow
423            ChangeColor = 4;
424            ChangeCarColor();
425        }
426
427        void punainen_Clicked()
428        {
429            //Red
430            ChangeColor = 3;
431            ChangeCarColor();
432        }
433
434        void sininen_Clicked()
435        {
436            //Blue
437            ChangeColor = 1;
438            ChangeCarColor();
439        }
440
441        void vihrea_Clicked()
442        {
443            //Green
444            ChangeColor = 2;
445            ChangeCarColor();
446        }
447
448        void ChangeCarColor()
449        {
450            //Change all cars color
451            kauppakuvat[0].Image = autokuvat[ChangeColor];
452            kauppakuvat[1].Image = autokuvat[ChangeColor + 5];
453            kauppakuvat[2].Image = autokuvat[ChangeColor + 10];
454            kauppakuvat[3].Image = autokuvat[ChangeColor + 15];
455        }
456
457        void BuyCar(int indeksi)
458        {
459            //Buy car if enought money
460            if (raha >= hinnat[indeksi])
461            {
462                raha -= hinnat[indeksi];
463                autot.Add(new Auto(mallit[indeksi], ChangeColor, indeksi, 1, 1));
464                ID = autot.Count - 1;
465                UpdateHUD();
466            }
467            else
468            {
469                ShowMessage("Car not bought", "You don't have enough money.");
470            }
471        }
472
473        void ShowMessage(string Title, string Message)
474        {
475            //Show message
476            MessageWindow message = new MessageWindow(Title, Message);
477            Add(message);
478        }
479
480        void UpdateHUD()
481        {
482            //Update game HUD
483            double hinta = (hinnat[autot[ID].kori] * 0.75) + ((autot[ID].moottori * 100) / 2) + ((autot[ID].renkaat * 100) / 2);
484            sell_price.Text = "Sell price: " + hinta.ToString("0,0", CultureInfo.InvariantCulture);
485            malli.Text = autot[ID].korinnimi.ToString();
486            moottori.Text = "Engine: " + autot[ID].moottori.ToString();
487            renkaat.Text = "Tiers: " + autot[ID].renkaat.ToString();
488            number.Text = (ID + 1).ToString() + "/" + autot.Count.ToString();
489            moottorin_hinta.Text = "Price: " + (autot[ID].moottori * 100).ToString("0,0", CultureInfo.InvariantCulture);
490            renkaiden_hinta.Text = "Price: " + (autot[ID].renkaat * 100).ToString("0,0", CultureInfo.InvariantCulture);
491            keskiauto.Image = autokuvat[(autot[ID].kori * 5) + (autot[ID].vari)];
492
493            if (raha > 9)
494            {
495                rahat.Text = "Money: " + raha.ToString("0,0", CultureInfo.InvariantCulture);
496            }
497            else
498            {
499                rahat.Text = "Money: " + raha.ToString();
500            }
501        }
502       
503        void previousid_Clicked()
504        {
505            //Previous car ID
506            ID = (--ID + autot.Count) % autot.Count;
507            UpdateHUD();
508        }
509
510        void nextid_Clicked()
511        {
512            //Next car ID
513            ID = ++ID % autot.Count;
514            UpdateHUD();
515        }
516
517        void update_tiers_Clicked()
518        {
519            //Calculate tiers price and continue it if enought money
520            int hinta = autot[ID].renkaat * 100;
521            if (raha >= hinta)
522            {
523                //Buy tiers if level is not maximum
524                if (autot[ID].renkaat < max_taso)
525                {
526                    raha = raha - hinta;
527                    autot[ID].renkaat += 1;
528                }
529                else
530                {
531                    ShowMessage("Tiers not upgradet", "Your tiers are at maximum level.");
532                }
533            }
534            else
535            {
536                ShowMessage("Tiers not upgradet", "You don't have enough money.");
537            }
538            UpdateHUD();
539        }
540
541        void update_engine_Clicked()
542        {
543            //Calculate engine price and continue it if enought money
544            int hinta = autot[ID].moottori * 100;
545            if (raha >= hinta)
546            {
547                //Buy engine if level is not maximum
548                if (autot[ID].moottori < max_taso)
549                {
550                    raha = raha - hinta;
551                    autot[ID].moottori += 1;
552                }
553                else
554                {
555                    ShowMessage("Engine not upgradet", "Your engine is at maximum level.");
556                }
557            }
558            else
559            {
560                ShowMessage("Engine not upgradet", "You don't have enough money.");
561            }
562            UpdateHUD();
563        }
564
565        void sell_Clicked()
566        {
567            //Sell car if player have more cars
568            if (autot.Count > 1)
569            {
570                double hinta = (hinnat[autot[ID].kori] * 0.75) + ((autot[ID].moottori * 100) / 2) + ((autot[ID].renkaat * 100) / 2);
571                autot.RemoveAt(ID);
572                raha = raha + hinta;
573                ID = ++ID % autot.Count;
574                UpdateHUD();
575            }
576            else
577            {
578                ShowMessage("Car not sold", "You can't sell your last car.");
579            }
580        }
581
582        void LuoKisat()
583        {
584            kisat = new PhysicsObject[1];
585
586            kisat[0] = PhysicsObject.CreateStaticObject(50, 50);
587            kisat[0].Shape = Shape.Circle;
588            kisat[0].Color = Color.Blue;
589            kisat[0].X = 0;
590            kisat[0].Y = 200;
591            kisat[0].Tag = "0";
592            Add(kisat[0]);
593
594        }
595        public void rahatShow()
596            {
597            MessageDisplay.Add("Money:" + raha);
598        }
599
600        public void kaasu()
601        {
602            kaara.Accelerate(Time.SinceLastUpdate.TotalSeconds);
603        }
604        public void rattiV()
605        {
606            if (kaara.Velocity.Magnitude > 1) { kaara.Turn(Angle.FromDegrees(1), Time.SinceLastUpdate.TotalSeconds); }
607        }
608        public void rattiO()
609        {
610            if (kaara.Velocity.Magnitude > 1) { kaara.Turn(Angle.FromDegrees(-1), Time.SinceLastUpdate.TotalSeconds); }
611        }
612        public void jarru()
613        {
614            if (kaara.Velocity.Magnitude > 1) { kaara.Brake(Time.SinceLastUpdate.TotalSeconds); }
615        }
616        public void pakki()
617        {
618            if (kaara.Velocity.Magnitude > 1) { kaara.Brake(Time.SinceLastUpdate.TotalSeconds); }
619            else if (kaara.Velocity.Magnitude < 1)
620            {
621                Vector matti = Vector.FromLengthAndAngle(kaara.Mass * 5000, kaara.Angle + Angle.FromDegrees(180));
622                kaara.Push(matti);
623
624            }
625        }
626
627        void KasitteleKaaranTormays(PhysicsObject kaara, PhysicsObject kohde)
628        {
629            if (kohde.Tag.ToString() == "TT")
630            {
631                GoToShop();
632            }
633            if (kohde.Tag.ToString() == "0")
634            {
635                goal = new Vector(1, 1);
636                nuoli.IsVisible = true;
637                nuoli.Angle = goal.Angle + Angle.FromDegrees(180);
638                for (int i = 0; i < kisat.Length; i++) { kisat[i].Destroy(); }
639                kisa_aika.Interval = 2;
640                kisa_aika.Trigger += Loss;
641                kisa_aika.Start();
642            }
643        }
644
645        void LuoSiviilit()
646        {
647            siviilit = new Automobile[1];
648            kohteet = new Vector[1];
649            siviilit[0] = new Automobile(100, 50);
650            siviilit[0].X = -800;
651            siviilit[0].Y = 0;
652            siviilit[0].Angle = Angle.FromDegrees(0);
653            Add(siviilit[0]);
654            siviilit[0].Accelerate(100);
655            AddCollisionHandler(siviilit[0], Siviiliuhri);
656
657            siviilimaara = 1;
658        }
659
660        void Siviiliuhri(PhysicsObject siviili, PhysicsObject kohde)
661        {
662            if (kohde != kaara)
663            {
664                siviilimaara -= 1;
665                siviili.Destroy();
666                if (siviilimaara == 0) { LuoSiviilit(); }
667            }
668        }
669
670        void Loss(Timer sender)
671        {
672            for (int i = 0; i < kisat.Length; i++) { kisat[i].Destroy(); }
673            LuoKisat();
674            nuoli.IsVisible = false;
675            sender.Stop();
676        }
677
678        void drive_Clicked()
679        {
680            Save();
681            new_game_Clicked();
682        }
683
684        void Save()
685        {
686            SaveGame(pelitallennus.ToString());
687        }
688    }
689}
Note: See TracBrowser for help on using the repository browser.