source: 2013/27/TeemuM/Game/Game/Game/Game.cs @ 4417

Revision 4417, 4.7 KB checked in by jumakall, 7 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
9public class G : PhysicsGame
10{
11    public static G game;
12    IntMeter scoreboard;
13    public Player player { get; private set; }
14
15    public override void Begin()
16    {
17        game = this;
18        Mouse.IsCursorVisible = true;
19
20        MultiSelectWindow menu = new MultiSelectWindow("TESTMODE", "Developer tools", "Start this thing", "Get me out of here");
21        menu.DefaultCancel = 2;
22        menu.AddItemHandler(0, delegate() { MessageDisplay.Add("Starting game..."); StartGame(); DeveloperCommand(); });
23        menu.AddItemHandler(1, StartGame);
24        menu.AddItemHandler(2, Exit);
25        Add(menu);
26    }
27
28    private void DeveloperCommand()
29    {
30        IsPaused = true;
31        InputWindow prompt = new InputWindow("");
32        prompt.TextEntered += delegate(InputWindow p)
33        {
34            if (p.InputBox.Text.Length == 0) { IsPaused = false; return; }
35            string[] commands = p.InputBox.Text.Split(' ');
36
37            if (commands[0] == "money")
38            {
39                if (commands[1] == "add")
40                {
41                    MessageDisplay.Add("+$" + int.Parse(commands[2]));
42                }
43                else if (commands[1] == "reduce")
44                {
45                    MessageDisplay.Add("-$" + int.Parse(commands[2]) + "!");
46                }
47            }
48            else if (commands[0] == "level")
49            {
50                if (commands[1] == "up")
51                {
52                    MessageDisplay.Add("+" + int.Parse(commands[2]) + " levels");
53                }
54                else if (commands[1] == "down")
55                {
56                    MessageDisplay.Add("-" + int.Parse(commands[2]) + " levels");
57                }
58            }
59            else if (commands[0] == "item")
60            {
61                if (player.GiveWeapon(commands[1]))
62                {
63                    MessageDisplay.Add("You got " + commands[1] + "!");
64                }
65                else
66                {
67                    MessageDisplay.Add("What " + commands[1] + "?");
68                }
69            }
70            else if (commands[0] == "powerup")
71            {
72                if (player.PowerUp(commands[1], int.Parse(commands[2])))
73                    MessageDisplay.Add("Activated " + commands[1] + " powerup");
74                else
75                    MessageDisplay.Add("No such powerup");
76            }
77            else if (commands[0] == "spawn")
78            {
79                if (commands[1] == "zombie")
80                {
81                    if (commands.Length > 2)
82                    {
83                        for (int i = 0; i < int.Parse(commands[2]); i++)
84                            createZ();
85                    } else { createZ(); }
86                }
87            }
88            else if (commands[0] == "exit")
89            {
90                Exit();
91            }
92            else { MessageDisplay.Add("Unknow command!"); }
93
94            DeveloperCommand();
95        };
96        Add(prompt);
97    }
98
99    private void StartGame()
100    {
101        Keyboard.Listen(Key.Escape, ButtonState.Pressed, delegate() { PauseMenu(); }, null);
102        Keyboard.Listen(Key.Tab, ButtonState.Pressed, DeveloperCommand, null);
103        AddScoreMeter();
104
105        player = new Player(50, 50, 1, true);
106        Add(player);
107        createZ();
108    }
109
110    void createZ()
111    {
112        Zombie1 zed1 = new Zombie1(50, 50, RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), 100);
113        Add(zed1);
114    }
115
116    void createPlayer()
117    {
118        player = new Player(50, 50, 100, true);
119        Add(player);
120    }
121
122    private void AddScoreMeter()
123    {
124        scoreboard = new IntMeter(0);
125        scoreboard.AddOverTime(100, 10);
126
127        Label ScoreScreen = new Label();
128        ScoreScreen.X = 0;
129        ScoreScreen.Y = Screen.Bottom + 100;
130        ScoreScreen.TextColor = Color.Black;
131        ScoreScreen.Color = Color.White;
132        ScoreScreen.BindTo(scoreboard);
133        Add(ScoreScreen);
134    }
135
136    private void SaveAndBackToMenu()
137    {
138        ClearAll();
139        MessageDisplay.Add("Saved!");
140        Begin();
141    }
142
143    public void PauseMenu()
144    {
145        MultiSelectWindow menu = new MultiSelectWindow("Pause Menu", "Resume Game", "Back to Menu", "Exit Game");
146        menu.DefaultCancel = 0;
147        menu.AddItemHandler(0, delegate { IsPaused = false; });
148        menu.AddItemHandler(1, SaveAndBackToMenu);
149        menu.AddItemHandler(2, Exit);
150        IsPaused = true;
151        Add(menu);
152
153    }
154}
Note: See TracBrowser for help on using the repository browser.