1 | using System; |
---|
2 | using System.Collections.Generic; |
---|
3 | using Jypeli; |
---|
4 | using Jypeli.Assets; |
---|
5 | using Jypeli.Controls; |
---|
6 | using Jypeli.Effects; |
---|
7 | using Jypeli.Widgets; |
---|
8 | |
---|
9 | |
---|
10 | public class Pelaaja : PhysicsObject |
---|
11 | { |
---|
12 | public DoubleMeter elamaMittari; |
---|
13 | public DoubleMeter turbomittari; |
---|
14 | public DoubleMeter Ammusmittari; |
---|
15 | public DoubleMeter Pistemittari; |
---|
16 | public double Latausnopeus; |
---|
17 | public double Latapati; |
---|
18 | public bool lataamassa = false; |
---|
19 | public bool Recoil = false; |
---|
20 | public bool kuollut = false; |
---|
21 | public bool HasFlag = false; |
---|
22 | public double liikkumisnopeus; |
---|
23 | public DoubleMeter Pisteputki; |
---|
24 | public Explosion Viimeisinrajahdus = null; |
---|
25 | public double Ampumisnopeus; |
---|
26 | public Image Asekuva; |
---|
27 | public string Ase; |
---|
28 | public Vector viimeisinSuunta = Vector.Zero; |
---|
29 | public PhysicsObject apupallo; |
---|
30 | |
---|
31 | |
---|
32 | |
---|
33 | public Pelaaja(double leveys, double korkeus) |
---|
34 | : base(leveys, korkeus) |
---|
35 | { |
---|
36 | elamaMittari = new DoubleMeter(500, 0, 500); |
---|
37 | turbomittari = new DoubleMeter(50, 0, 100); |
---|
38 | Ammusmittari = new DoubleMeter(250, 0, 250); |
---|
39 | Pistemittari = new DoubleMeter(0, 0, 3000); |
---|
40 | Pisteputki = new DoubleMeter(0, 0, 10); |
---|
41 | Ampumisnopeus = 512; |
---|
42 | Latausnopeus = 6.0; |
---|
43 | Latapati = 250; |
---|
44 | liikkumisnopeus = 155; |
---|
45 | } |
---|
46 | |
---|
47 | public override void Destroy() |
---|
48 | { |
---|
49 | if (apupallo != null) this.apupallo.Destroy(); |
---|
50 | base.Destroy(); |
---|
51 | } |
---|
52 | } |
---|
53 | public class Zombi : PhysicsObject |
---|
54 | { |
---|
55 | public DoubleMeter elamaMittari; |
---|
56 | public Explosion Viimeisinrajahdus = null; |
---|
57 | public static int Zombinvauhti = 100; |
---|
58 | public static int Zombinelpit = 200; |
---|
59 | public static int Zombinvahinko = 50; |
---|
60 | |
---|
61 | public Zombi(double leveys, double korkeus) |
---|
62 | : base(leveys, korkeus) |
---|
63 | { |
---|
64 | elamaMittari = new DoubleMeter(Zombinelpit, 0, Zombinelpit); |
---|
65 | } |
---|
66 | } |
---|
67 | public class Flag : PhysicsObject |
---|
68 | { |
---|
69 | public bool OnLippu = false; |
---|
70 | public bool OnPunainen = false; |
---|
71 | |
---|
72 | public Flag(double leveys, double korkeus) |
---|
73 | : base(leveys, korkeus) |
---|
74 | { |
---|
75 | |
---|
76 | } |
---|
77 | |
---|
78 | } |
---|
79 | public class Hautausmaa : PhysicsObject |
---|
80 | { |
---|
81 | public DoubleMeter Elpit; |
---|
82 | public bool OnKunnossa = true; |
---|
83 | |
---|
84 | public Hautausmaa(double leveys, double korkeus) |
---|
85 | : base(leveys, korkeus) |
---|
86 | { |
---|
87 | Elpit = new DoubleMeter(1500, 0, 1500); |
---|
88 | } |
---|
89 | |
---|
90 | } |
---|
91 | public class FromAbove : PhysicsGame |
---|
92 | { |
---|
93 | Pelaaja pallo; |
---|
94 | Pelaaja pallo2; |
---|
95 | Vector syntymispaikka; |
---|
96 | Vector spawni2; |
---|
97 | Flag sinilippu; |
---|
98 | Flag punalippu; |
---|
99 | Label pisteLukub = new Label(); |
---|
100 | |
---|
101 | ScoreList topZombeissa = new ScoreList(10, false, 0); |
---|
102 | |
---|
103 | Vector siirtyma = new Vector(0, 130); |
---|
104 | List<Vector> kultaLista = new List<Vector>(); |
---|
105 | List<Vector> elppibonusLista = new List<Vector>(); |
---|
106 | List<Vector> spawnilista1 = new List<Vector>(); |
---|
107 | List<Vector> spawnilista2 = new List<Vector>(); |
---|
108 | List<Vector> Hautausmaalista = new List<Vector>(); |
---|
109 | |
---|
110 | PhysicsObject alareuna; |
---|
111 | GameObject Sinikuva; |
---|
112 | GameObject Punakuva; |
---|
113 | GameObject Text; |
---|
114 | GameObject Text2; |
---|
115 | int kuolemat = 0; |
---|
116 | BarGauge elppiPalkki = new BarGauge(150, 122); |
---|
117 | BarGauge elppiPalkki2 = new BarGauge(150, 122); |
---|
118 | ProgressBar turboPalkki = new ProgressBar(150, 50); |
---|
119 | ProgressBar turboPalkki2 = new ProgressBar(150, 50); |
---|
120 | BarGauge ammusPalkki = new BarGauge(50, 150); |
---|
121 | BarGauge ammusPalkki2 = new BarGauge(50, 150); |
---|
122 | BarGauge pistePalkki = new BarGauge(200, 40); |
---|
123 | BarGauge pistePalkkib = new BarGauge(200, 40); |
---|
124 | Image pPallo = LoadImage("Punapallo"); |
---|
125 | Image sPallo = LoadImage("Sinipallo"); |
---|
126 | Image sPati = LoadImage("Punapati"); |
---|
127 | Image Boom = LoadImage("Boom!++++++"); |
---|
128 | Image Elppilaatikko = LoadImage("Elppilaatikko"); |
---|
129 | Image pPati = LoadImage("Sinipati"); |
---|
130 | Image kransu = LoadImage("kransu"); |
---|
131 | Image Sydan = LoadImage("Heart"); |
---|
132 | Image salama = LoadImage("Lightning"); |
---|
133 | Image Shotgun = LoadImage("Striker"); |
---|
134 | Image Famas = LoadImage("Famas"); |
---|
135 | Image Caliber = LoadImage("Caliber 89"); |
---|
136 | Image Ak47u = LoadImage("Aku"); |
---|
137 | Image Flag = LoadImage("Flag"); |
---|
138 | Image Sniper = LoadImage("Barret"); |
---|
139 | Image Light = LoadImage("Light"); |
---|
140 | Image HMG = LoadImage("HMG"); |
---|
141 | Image MGH = LoadImage("Dragunov"); |
---|
142 | Image Spas = LoadImage("Spas12"); |
---|
143 | Image kulta = LoadImage("Kulta"); |
---|
144 | |
---|
145 | Image Sinitanko = LoadImage("SiniLippuTanko"); |
---|
146 | Image Sinilippu = LoadImage("SiniLippuTankoLippu"); |
---|
147 | Image Blulippu = LoadImage("BluFlag"); |
---|
148 | Image Redlippu = LoadImage("RedFlag"); |
---|
149 | Image Punatanko = LoadImage("PunaLippuTanko"); |
---|
150 | Image Punalippu = LoadImage("PunaLippuTankoLippu"); |
---|
151 | |
---|
152 | Image elppibonus = LoadImage("Elppibonus"); |
---|
153 | Image energiabonus = LoadImage("Energiabonus"); |
---|
154 | Image palikka = LoadImage("Palikka"); |
---|
155 | Image vaarapalikka = LoadImage("Vaara"); |
---|
156 | |
---|
157 | Image ZOMBI = LoadImage("Zombi"); |
---|
158 | Image Hauta = LoadImage("Hautakivikakkaperkele"); |
---|
159 | Image HautaRikki = LoadImage("Hautakivikakkaperkelehakattupaska"); |
---|
160 | |
---|
161 | SoundEffect Kolikonkerays = LoadSoundEffect("coin-drop-5"); |
---|
162 | SoundEffect Healaus = LoadSoundEffect("tablet-bottle-1"); |
---|
163 | SoundEffect Lataus = LoadSoundEffect("gun-cocking-01"); |
---|
164 | /// <summary> |
---|
165 | /// Kenttä ladattu? |
---|
166 | /// </summary> |
---|
167 | bool Kenttalad; |
---|
168 | bool CTF; |
---|
169 | bool Zsurvival; |
---|
170 | |
---|
171 | public override void Begin() |
---|
172 | { |
---|
173 | AloitaAlusta(); |
---|
174 | |
---|
175 | } |
---|
176 | |
---|
177 | void AloitaAlusta() |
---|
178 | { |
---|
179 | Kenttalad = false; |
---|
180 | CTF = false; |
---|
181 | Zsurvival = false; |
---|
182 | |
---|
183 | topZombeissa = DataStorage.TryLoad<ScoreList>(topZombeissa, "pisteet.xml"); |
---|
184 | |
---|
185 | //Kirjoita ohjelmakoodisi tähän |
---|
186 | pallo = Luopallo(Color.Blue, Level.Left + 20, Level.Top - 50); |
---|
187 | pallo2 = Luopallo(Color.Red, Level.Right - 20, Level.Top - 50); |
---|
188 | pallo.Image = sPallo; |
---|
189 | pallo2.Image = pPallo; |
---|
190 | |
---|
191 | Level.Background.CreateGradient(Color.Black, Color.Black); |
---|
192 | |
---|
193 | Pause(); |
---|
194 | Luokentta(); |
---|
195 | AsetaOhjaimet(); |
---|
196 | Luoajastin(); |
---|
197 | Alkuvalikko(); |
---|
198 | |
---|
199 | } |
---|
200 | |
---|
201 | Pelaaja Luopallo(Color vari, double x, double y) |
---|
202 | { |
---|
203 | Pelaaja pallo = new Pelaaja(25, 25); |
---|
204 | pallo.elamaMittari.LowerLimit += delegate { Pelaajakuoli(pallo); }; |
---|
205 | pallo.Pistemittari.UpperLimit += delegate { Maxpointsreached(pallo); }; |
---|
206 | pallo.Shape = Shape.Circle; |
---|
207 | pallo.Restitution = 0.0; |
---|
208 | pallo.X = x; |
---|
209 | pallo.Y = y; |
---|
210 | pallo.CanRotate = false; |
---|
211 | pallo.Tag = "pallo"; |
---|
212 | pallo.Ase = "Heavy"; |
---|
213 | pallo.Asekuva = HMG; |
---|
214 | pallo.Color = vari; |
---|
215 | |
---|
216 | PhysicsObject apupallo = new PhysicsObject(5, 5); |
---|
217 | apupallo.IgnoresCollisionResponse = true; |
---|
218 | apupallo.IgnoresGravity = true; |
---|
219 | apupallo.IsVisible = false; |
---|
220 | apupallo.Position = pallo.Position; |
---|
221 | FollowerBrain fb = new FollowerBrain(pallo); |
---|
222 | fb.Speed = 100000; |
---|
223 | apupallo.Brain = fb; |
---|
224 | pallo.apupallo = apupallo; |
---|
225 | AddCollisionHandler(apupallo, "Vaara!", delegate(PhysicsObject p, PhysicsObject o) { pallo.elamaMittari.Value = pallo.elamaMittari.MinValue; }); |
---|
226 | AddCollisionHandler(apupallo, "Flag", delegate(PhysicsObject p, Flag f) { LippuTankoKosketus(pallo, f); }); |
---|
227 | // AddCollisionHandler(apupallo, "BlueFlag", delegate(PhysicsObject p, Flag f) { LippuTankoKosketus(pallo, f); }); |
---|
228 | Add(pallo); |
---|
229 | Add(apupallo, 1); |
---|
230 | AddCollisionHandler(pallo, "Kulta", Kullankerays); |
---|
231 | AddCollisionHandler(pallo, "Elppibonus", Elppibonuskerays); |
---|
232 | AddCollisionHandler(pallo, "Turbobonus", Vauhtibonuskerays); |
---|
233 | AddCollisionHandler<Pelaaja,Zombi>(pallo, "Zombi", ZombiHyokkaa); |
---|
234 | return pallo; |
---|
235 | } |
---|
236 | |
---|
237 | void Luoajastin() |
---|
238 | { |
---|
239 | Timer ajastin = new Timer(); |
---|
240 | ajastin.Interval = 1.0; |
---|
241 | ajastin.Timeout += delegate { pallo.turbomittari.Value += 5; }; |
---|
242 | ajastin.Timeout += delegate { pallo2.turbomittari.Value += 5; }; |
---|
243 | ajastin.Start(); |
---|
244 | } |
---|
245 | |
---|
246 | void Luokentta() |
---|
247 | { |
---|
248 | Sinikuva = new GameObject(HMG); |
---|
249 | Sinikuva.Position = new Vector(-165, -300); |
---|
250 | Add(Sinikuva); |
---|
251 | |
---|
252 | Punakuva = new GameObject(HMG); |
---|
253 | Punakuva.Position = new Vector(165, -300); |
---|
254 | Add(Punakuva); |
---|
255 | |
---|
256 | elppiPalkki.BindTo(pallo.elamaMittari); |
---|
257 | elppiPalkki.BarColor = Color.Red; |
---|
258 | elppiPalkki.BorderColor = Color.Black; |
---|
259 | elppiPalkki.Position = new Vector(-400, -300); |
---|
260 | Add(elppiPalkki, 0); |
---|
261 | Label laatikko = new Label(); |
---|
262 | laatikko.Size = new Vector(150, 150); |
---|
263 | laatikko.Image = Elppilaatikko; |
---|
264 | laatikko.Position = new Vector(-400, -300); |
---|
265 | Add(laatikko, 1); |
---|
266 | |
---|
267 | elppiPalkki2.BindTo(pallo2.elamaMittari); |
---|
268 | elppiPalkki2.BarColor = Color.Red; |
---|
269 | elppiPalkki2.BorderColor = Color.Black; |
---|
270 | elppiPalkki2.Position = new Vector(400, -300); |
---|
271 | Add(elppiPalkki2, 0); |
---|
272 | Label laatikko2 = new Label(); |
---|
273 | laatikko2.Size = new Vector(150, 150); |
---|
274 | laatikko2.Image = Elppilaatikko; |
---|
275 | laatikko2.Position = new Vector(400, -300); |
---|
276 | Add(laatikko2, 1); |
---|
277 | |
---|
278 | turboPalkki.BindTo(pallo.turbomittari); |
---|
279 | turboPalkki.BarColor = Color.DarkBlue; |
---|
280 | turboPalkki.BorderColor = Color.Black; |
---|
281 | turboPalkki.Position = new Vector(-400, -190); |
---|
282 | Add(turboPalkki); |
---|
283 | |
---|
284 | turboPalkki2.BindTo(pallo2.turbomittari); |
---|
285 | turboPalkki2.BarColor = Color.DarkBlue; |
---|
286 | turboPalkki2.BorderColor = Color.Black; |
---|
287 | turboPalkki2.Position = new Vector(400, -190); |
---|
288 | Add(turboPalkki2); |
---|
289 | |
---|
290 | ammusPalkki.BindTo(pallo.Ammusmittari); |
---|
291 | ammusPalkki.BarColor = Color.Yellow; |
---|
292 | ammusPalkki.BorderColor = Color.Black; |
---|
293 | ammusPalkki.Position = new Vector(-295, -300); |
---|
294 | Add(ammusPalkki); |
---|
295 | |
---|
296 | ammusPalkki2.BindTo(pallo2.Ammusmittari); |
---|
297 | ammusPalkki2.BarColor = Color.Yellow; |
---|
298 | ammusPalkki2.BorderColor = Color.Black; |
---|
299 | ammusPalkki2.Position = new Vector(295, -300); |
---|
300 | Add(ammusPalkki2); |
---|
301 | |
---|
302 | pistePalkki.BindTo(pallo.Pistemittari); |
---|
303 | pistePalkki.BarColor = Color.DarkBlue; |
---|
304 | pistePalkki.BorderColor = Color.Black; |
---|
305 | pistePalkki.Position = new Vector(-200, -190); |
---|
306 | pistePalkki.Direction = BarGauge.BarDirection.BarHorizontalLeft; |
---|
307 | Add(pistePalkki); |
---|
308 | Label pisteLuku = new Label(); |
---|
309 | pisteLuku.BindTo(pallo.Pistemittari); |
---|
310 | pisteLuku.Position = new Vector(-200, -190); |
---|
311 | pisteLuku.TextColor = Color.Red; |
---|
312 | Add(pisteLuku); |
---|
313 | |
---|
314 | |
---|
315 | pistePalkkib.BindTo(pallo2.Pistemittari); |
---|
316 | pistePalkkib.BarColor = Color.Red; |
---|
317 | pistePalkkib.BorderColor = Color.Black; |
---|
318 | pistePalkkib.Position = new Vector(200, -190); |
---|
319 | pistePalkkib.Direction = BarGauge.BarDirection.BarHorizontalLeft; |
---|
320 | Add(pistePalkkib); |
---|
321 | |
---|
322 | pisteLukub.BindTo(pallo2.Pistemittari); |
---|
323 | pisteLukub.Position = new Vector(200, -190); |
---|
324 | pisteLukub.TextColor = Color.DarkBlue; |
---|
325 | Add(pisteLukub); |
---|
326 | |
---|
327 | |
---|
328 | |
---|
329 | } |
---|
330 | void AsetaOhjaimet() |
---|
331 | { |
---|
332 | // Pelaaja 1 |
---|
333 | Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Pelaaja 1 liiku oikealle", pallo, new Vector(pallo.liikkumisnopeus * 1, 0)); |
---|
334 | Keyboard.Listen(Key.D, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
335 | Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, "Pelaaja 1 liiku ylös", pallo, new Vector(0, pallo.liikkumisnopeus * 1)); |
---|
336 | Keyboard.Listen(Key.W, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
337 | Keyboard.Listen(Key.S, ButtonState.Down, Liikuta, "Pelaaja 1 liiku alas", pallo, new Vector(0, -pallo.liikkumisnopeus * 1)); |
---|
338 | Keyboard.Listen(Key.S, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
339 | Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Pelaaja 1 liiku vasemmalle", pallo, new Vector(-pallo.liikkumisnopeus * 1, 0)); |
---|
340 | Keyboard.Listen(Key.A, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
341 | Keyboard.Listen(Key.Q, ButtonState.Pressed, Kayta, "Pelaaja 1:Käytä turbo", pallo); |
---|
342 | Keyboard.Listen(Key.U, ButtonState.Pressed, Tayta, "Pelaaja 1:Paranna elamia", pallo); |
---|
343 | Keyboard.Listen(Key.E, ButtonState.Pressed, Lataa, "Pelaaja 1:Lataa ase", pallo); |
---|
344 | Keyboard.Listen(Key.T, ButtonState.Pressed, HKranaatti, "Pelaaja 1:Heita kranaatti", pallo); // heitetään kranaatti siihen suuntaan mihin on viimeksi liikuttu |
---|
345 | Keyboard.Listen(Key.Y, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(0, 1), pPati); |
---|
346 | Keyboard.Listen(Key.H, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(0, -1), pPati); |
---|
347 | Keyboard.Listen(Key.G, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(-1, 0), pPati); |
---|
348 | Keyboard.Listen(Key.J, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(1, 0), pPati); |
---|
349 | |
---|
350 | ControllerOne.ListenAnalog(AnalogControl.LeftStick, -1, LiikutaTatilla, "Liikuta", pallo); |
---|
351 | ControllerOne.ListenAnalog(AnalogControl.RightStick, 0, TahtaaTatilla, "tahtaa", pallo); |
---|
352 | ControllerOne.Listen(Button.LeftStick, ButtonState.Pressed, Kayta, "Pelaaja 1:Käytä turbo", pallo); |
---|
353 | ControllerOne.Listen(Button.B, ButtonState.Pressed, Tayta, "Pelaaja 1:Paranna elamia", pallo); |
---|
354 | ControllerOne.Listen(Button.A, ButtonState.Pressed, Lataa, "Pelaaja 1:Lataa ase", pallo); |
---|
355 | ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, HKranaatti, "Pelaaja 1:Heita kranaatti", pallo, ControllerOne); // heitetään kranaatti siihen suuntaan mihin on viimeksi liikuttu |
---|
356 | ControllerOne.Listen(Button.RightShoulder, ButtonState.Down, AmmuOhjaimella, "Pelaaja 1: ammu", pallo, pPati); |
---|
357 | |
---|
358 | // Pelaaja 2 |
---|
359 | Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Pelaaja 2 liiku oikealle", pallo2, new Vector(pallo2.liikkumisnopeus * 1, 0)); |
---|
360 | Keyboard.Listen(Key.Right, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
361 | Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Pelaaja 2 liiku ylös", pallo2, new Vector(0, pallo2.liikkumisnopeus * 1)); |
---|
362 | Keyboard.Listen(Key.Up, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
363 | Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Pelaaja 2 liiku alas", pallo2, new Vector(0, -pallo2.liikkumisnopeus * 1)); |
---|
364 | Keyboard.Listen(Key.Down, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
365 | Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Pelaaja 2 liiku vasemmalle", pallo2, new Vector(-pallo2.liikkumisnopeus * 1, 0)); |
---|
366 | Keyboard.Listen(Key.Left, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
367 | Keyboard.Listen(Key.RightControl, ButtonState.Pressed, Kayta, "Pelaaja 2:Käytä turbo", pallo2); |
---|
368 | Keyboard.Listen(Key.NumPad9, ButtonState.Pressed, Tayta, "Pelaaja 2:Paranna elamia", pallo2); |
---|
369 | Keyboard.Listen(Key.NumPad2, ButtonState.Pressed, Lataa, "Pelaaja 2:Lataa ase", pallo2); |
---|
370 | Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, HKranaatti, "Pelaaja 2:Heita kranaatti", pallo2); |
---|
371 | Keyboard.Listen(Key.NumPad8, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(0, 1), sPati); |
---|
372 | Keyboard.Listen(Key.NumPad5, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(0, -1), sPati); |
---|
373 | Keyboard.Listen(Key.NumPad4, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(-1, 0), sPati); |
---|
374 | Keyboard.Listen(Key.NumPad6, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(1, 0), sPati); |
---|
375 | |
---|
376 | ControllerTwo.ListenAnalog(AnalogControl.LeftStick, -1, LiikutaTatilla, "Liikuta", pallo2); |
---|
377 | ControllerTwo.ListenAnalog(AnalogControl.RightStick, 0, TahtaaTatilla, "tahtaa", pallo2); |
---|
378 | ControllerTwo.Listen(Button.LeftStick, ButtonState.Pressed, Kayta, "Pelaaja 2:Käytä turbo", pallo2); |
---|
379 | ControllerTwo.Listen(Button.B, ButtonState.Pressed, Tayta, "Pelaaja 2:Paranna elamia", pallo2); |
---|
380 | ControllerTwo.Listen(Button.A, ButtonState.Pressed, Lataa, "Pelaaja 2:Lataa ase", pallo2); |
---|
381 | ControllerTwo.Listen(Button.RightTrigger, ButtonState.Pressed, HKranaatti, "Pelaaja heitä kranaatti", pallo2, ControllerTwo); // heitetään kranaatti siihen suuntaan mihin on viimeksi tähdatty |
---|
382 | ControllerTwo.Listen(Button.RightShoulder, ButtonState.Down, AmmuOhjaimella, "Pelaaja 2: ammu", pallo2, sPati); |
---|
383 | |
---|
384 | //General |
---|
385 | |
---|
386 | Keyboard.Listen(Key.P, ButtonState.Pressed, Alkuvalikko, "Vaihda aseita"); |
---|
387 | |
---|
388 | } |
---|
389 | void AmmuOhjaimella(Pelaaja pallo, Image i) |
---|
390 | { |
---|
391 | if (pallo.viimeisinSuunta != Vector.Zero) |
---|
392 | Ammu(pallo, pallo.viimeisinSuunta.Normalize(), i); |
---|
393 | } |
---|
394 | void Ammu(Pelaaja pallo, Vector suunta, Image P) |
---|
395 | { |
---|
396 | if (pallo.kuollut == true) return; |
---|
397 | if (pallo.Ammusmittari < 1) return; |
---|
398 | if (pallo.Recoil == true) return; |
---|
399 | |
---|
400 | PhysicsObject ammus = new PhysicsObject(4, 4); |
---|
401 | ammus.Position = pallo.Position + suunta * 25; |
---|
402 | ammus.Image = P; |
---|
403 | ammus.Restitution = 0.0; |
---|
404 | pallo.Ammusmittari.Value -= 1; |
---|
405 | ammus.Velocity = suunta * pallo.Ampumisnopeus; |
---|
406 | AddCollisionHandler(ammus, "tuhottava", AmmusOsui); |
---|
407 | AddCollisionHandler(ammus, ammusosui); |
---|
408 | |
---|
409 | Add(ammus); |
---|
410 | ammus.Tag = "ammus"; |
---|
411 | ammus.CollisionIgnoreGroup = 1; |
---|
412 | |
---|
413 | double vahinko = 0; |
---|
414 | |
---|
415 | if (pallo.HasFlag == true) |
---|
416 | { |
---|
417 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 700); |
---|
418 | vahinko = 150; |
---|
419 | pallo.Recoil = true; |
---|
420 | Timer.SingleShot(0.5, delegate |
---|
421 | { |
---|
422 | pallo.Recoil = false; |
---|
423 | }); |
---|
424 | } |
---|
425 | else if (pallo.Ase == "Heavy") |
---|
426 | { |
---|
427 | |
---|
428 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 700); |
---|
429 | vahinko = 9; |
---|
430 | } |
---|
431 | else if (pallo.Ase == "Famas") |
---|
432 | { |
---|
433 | |
---|
434 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 190); |
---|
435 | pallo.Recoil = true; |
---|
436 | vahinko = 23; |
---|
437 | Timer.SingleShot(0.03, delegate |
---|
438 | { |
---|
439 | pallo.Recoil = false; |
---|
440 | }); |
---|
441 | |
---|
442 | |
---|
443 | } |
---|
444 | else if (pallo.Ase == "LMG Type") |
---|
445 | { |
---|
446 | |
---|
447 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 500); |
---|
448 | pallo.Recoil = true; |
---|
449 | vahinko = 14; |
---|
450 | Timer.SingleShot(0.01, delegate |
---|
451 | { |
---|
452 | pallo.Recoil = false; |
---|
453 | }); |
---|
454 | |
---|
455 | |
---|
456 | } |
---|
457 | else if (pallo.Ase == "Dragunov") |
---|
458 | { |
---|
459 | pallo.Recoil = true; |
---|
460 | vahinko = 139; |
---|
461 | Timer.SingleShot(0.4, delegate |
---|
462 | { |
---|
463 | pallo.Recoil = false; |
---|
464 | }); |
---|
465 | |
---|
466 | } |
---|
467 | else if (pallo.Ase == "Barret") |
---|
468 | { |
---|
469 | vahinko = 298; |
---|
470 | } |
---|
471 | |
---|
472 | else if (pallo.Ase == "Ak") |
---|
473 | { |
---|
474 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 600); |
---|
475 | pallo.Recoil = true; |
---|
476 | vahinko = 13; |
---|
477 | Timer.SingleShot(0.01, delegate |
---|
478 | { |
---|
479 | pallo.Recoil = false; |
---|
480 | }); |
---|
481 | } |
---|
482 | else if (pallo.Ase == "Cal89") |
---|
483 | { |
---|
484 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 500); |
---|
485 | pallo.Recoil = true; |
---|
486 | vahinko = 26; |
---|
487 | Timer.SingleShot(0.1, delegate |
---|
488 | { |
---|
489 | pallo.Recoil = false; |
---|
490 | }); |
---|
491 | } |
---|
492 | else if (pallo.Ase == "Spas") |
---|
493 | { |
---|
494 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 100); |
---|
495 | pallo.Recoil = true; |
---|
496 | vahinko = 219; |
---|
497 | Timer.SingleShot(0.5, delegate |
---|
498 | { |
---|
499 | pallo.Recoil = false; |
---|
500 | }); |
---|
501 | } |
---|
502 | |
---|
503 | |
---|
504 | else if (pallo.Ase == "Shotgun") |
---|
505 | { |
---|
506 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 100); |
---|
507 | pallo.Recoil = true; |
---|
508 | vahinko = 90; |
---|
509 | Timer.SingleShot(0.4, delegate |
---|
510 | { |
---|
511 | pallo.Recoil = false; |
---|
512 | }); |
---|
513 | |
---|
514 | |
---|
515 | PhysicsObject hauli = new PhysicsObject(4, 4); |
---|
516 | hauli.Position = pallo.Position + suunta * 25; |
---|
517 | hauli.Image = P; |
---|
518 | hauli.Tag = "ammus"; |
---|
519 | hauli.CollisionIgnoreGroup = 1; |
---|
520 | hauli.Restitution = 0.0; |
---|
521 | hauli.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 70); |
---|
522 | AddCollisionHandler(hauli, "tuhottava", AmmusOsui); |
---|
523 | AddCollisionHandler(hauli, CollisionHandler.DestroyObject); |
---|
524 | Add(hauli); |
---|
525 | hauli.Velocity = suunta * pallo.Ampumisnopeus; |
---|
526 | hauli.Velocity = Vector.FromLengthAndAngle(suunta.Magnitude, suunta.Angle + Angle.FromDegrees(-20)) * pallo.Ampumisnopeus; |
---|
527 | AddCollisionHandler(hauli, "pallo", delegate(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
528 | { |
---|
529 | Pelaaja kohdepelaaja = (Pelaaja)kohde; |
---|
530 | kohdepelaaja.elamaMittari.Value -= vahinko; |
---|
531 | |
---|
532 | }); |
---|
533 | |
---|
534 | PhysicsObject hauli2 = new PhysicsObject(4, 4); |
---|
535 | hauli2.Position = pallo.Position + suunta * 25; |
---|
536 | hauli2.Image = P; |
---|
537 | hauli2.Tag = "ammus"; |
---|
538 | hauli2.CollisionIgnoreGroup = 1; |
---|
539 | hauli2.Restitution = 0.0; |
---|
540 | hauli2.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 70); |
---|
541 | AddCollisionHandler(hauli2, "tuhottava", AmmusOsui); |
---|
542 | AddCollisionHandler(hauli2, CollisionHandler.DestroyObject); |
---|
543 | Add(hauli2); |
---|
544 | |
---|
545 | hauli2.Velocity = Vector.FromLengthAndAngle(suunta.Magnitude, suunta.Angle + Angle.FromDegrees(20)) * pallo.Ampumisnopeus; |
---|
546 | AddCollisionHandler(hauli2, "pallo", delegate(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
547 | { |
---|
548 | Pelaaja kohdepelaaja = (Pelaaja)kohde; |
---|
549 | kohdepelaaja.elamaMittari.Value -= vahinko; |
---|
550 | |
---|
551 | }); |
---|
552 | } |
---|
553 | AddCollisionHandler(ammus, "pallo", delegate(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
554 | { |
---|
555 | Pelaaja kohdepelaaja = (Pelaaja)kohde; |
---|
556 | kohdepelaaja.elamaMittari.Value -= vahinko; |
---|
557 | }); |
---|
558 | |
---|
559 | AddCollisionHandler(ammus, "Hautausmaa", delegate(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
560 | { |
---|
561 | Hautausmaa hautausmaa = (Hautausmaa)kohde; |
---|
562 | if (!hautausmaa.OnKunnossa) return; |
---|
563 | hautausmaa.Elpit.Value -= vahinko; |
---|
564 | pallo.Pistemittari.Value += vahinko; |
---|
565 | }); |
---|
566 | |
---|
567 | |
---|
568 | AddCollisionHandler(ammus, "Zombi", delegate(PhysicsObject tormaaja, PhysicsObject zombi) |
---|
569 | { |
---|
570 | Zombi zombi1 = (Zombi)zombi; |
---|
571 | zombi1.elamaMittari.Value -= vahinko; |
---|
572 | pallo.Pistemittari.Value += vahinko; |
---|
573 | |
---|
574 | }); |
---|
575 | } |
---|
576 | void ammusosui(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
577 | { |
---|
578 | if (kohde.Tag == "Vaara!") return; |
---|
579 | if (kohde.Tag == "Flag") return; |
---|
580 | else tormaaja.Destroy(); |
---|
581 | } |
---|
582 | void Liikuta(Pelaaja pallo, Vector suunta) |
---|
583 | { |
---|
584 | // pallo.Velocity = suunta; |
---|
585 | if (suunta.Magnitude != 0) |
---|
586 | { |
---|
587 | pallo.Velocity = Vector.ComponentProduct(suunta.Normalize(), new Vector(pallo.liikkumisnopeus, pallo.liikkumisnopeus)); |
---|
588 | pallo.viimeisinSuunta = Vector.ComponentProduct(suunta.Normalize(), new Vector(pallo.liikkumisnopeus, pallo.liikkumisnopeus)); |
---|
589 | return; |
---|
590 | } |
---|
591 | pallo.Velocity = suunta; |
---|
592 | pallo.viimeisinSuunta = suunta; |
---|
593 | } |
---|
594 | |
---|
595 | void LiikutaTatilla(AnalogState tatinTila, Pelaaja pallo) |
---|
596 | { |
---|
597 | pallo.Velocity = tatinTila.StateVector * pallo.liikkumisnopeus; |
---|
598 | } |
---|
599 | void TahtaaTatilla(AnalogState tatintila, Pelaaja pallo) |
---|
600 | { |
---|
601 | pallo.Angle = tatintila.StateVector.Angle; |
---|
602 | pallo.viimeisinSuunta = Vector.ComponentProduct(tatintila.StateVector.Normalize(), new Vector(pallo.liikkumisnopeus, pallo.liikkumisnopeus)); |
---|
603 | } |
---|
604 | |
---|
605 | void Luoseina(Vector paikka, double leveys, double korkeus) |
---|
606 | { |
---|
607 | PhysicsObject m = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
608 | m.Shape = Shape.Rectangle; |
---|
609 | m.Position = paikka + siirtyma; |
---|
610 | m.Image = palikka; |
---|
611 | Add(m); |
---|
612 | } |
---|
613 | void LuoLapiammuttavaSeina(Vector paikka, double leveys, double korkeus) |
---|
614 | { |
---|
615 | PhysicsObject m = PhysicsObject.CreateStaticObject(leveys - 10, korkeus - 10); |
---|
616 | m.Shape = Shape.Rectangle; |
---|
617 | m.Position = paikka + siirtyma; |
---|
618 | m.Image = palikka; |
---|
619 | m.CollisionIgnoreGroup = 1; |
---|
620 | Add(m, -3); |
---|
621 | Luomaa(paikka, leveys + 10, korkeus + 10); |
---|
622 | } |
---|
623 | |
---|
624 | void Luovaara(Vector paikka, double leveys, double korkeus) |
---|
625 | { |
---|
626 | PhysicsObject m = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
627 | m.Shape = Shape.Rectangle; |
---|
628 | m.Position = paikka + siirtyma; |
---|
629 | m.Image = vaarapalikka; |
---|
630 | m.IgnoresCollisionResponse = true; |
---|
631 | m.Tag = "Vaara!"; |
---|
632 | Add(m, -2); |
---|
633 | Luomaa(paikka, leveys, korkeus); |
---|
634 | } |
---|
635 | void CreateBluFlag(Vector paikka, double leveys, double korkeus) |
---|
636 | { |
---|
637 | Flag f = new Flag(leveys, korkeus); |
---|
638 | f.MakeStatic(); |
---|
639 | f.OnPunainen = false; |
---|
640 | f.OnLippu = true; |
---|
641 | f.Shape = Shape.Rectangle; |
---|
642 | f.Position = paikka + siirtyma; |
---|
643 | f.Image = Sinilippu; |
---|
644 | f.IgnoresCollisionResponse = true; |
---|
645 | f.Tag = "Flag"; |
---|
646 | Add(f, -2); |
---|
647 | sinilippu = f; |
---|
648 | Luomaa(paikka, leveys, korkeus); |
---|
649 | } |
---|
650 | void CreateRedFlag(Vector paikka, double leveys, double korkeus) |
---|
651 | { |
---|
652 | Flag f = new Flag(leveys, korkeus); |
---|
653 | f.MakeStatic(); |
---|
654 | f.OnPunainen = true; |
---|
655 | f.OnLippu = true; |
---|
656 | f.Shape = Shape.Rectangle; |
---|
657 | f.Position = paikka + siirtyma; |
---|
658 | f.Image = Punalippu; |
---|
659 | f.IgnoresCollisionResponse = true; |
---|
660 | f.Tag = "Flag"; |
---|
661 | Add(f, -2); |
---|
662 | punalippu = f; |
---|
663 | Luomaa(paikka, leveys, korkeus); |
---|
664 | } |
---|
665 | |
---|
666 | void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) |
---|
667 | { |
---|
668 | kohde.Destroy(); |
---|
669 | } |
---|
670 | void Kayta(Pelaaja p) |
---|
671 | { |
---|
672 | if (p.kuollut == true) return; |
---|
673 | if (p.turbomittari > 99) |
---|
674 | { |
---|
675 | ExplosionSystem ss = new ExplosionSystem(salama, 100); |
---|
676 | ss.MaxScale = 30; |
---|
677 | ss.MinScale = 20; |
---|
678 | ss.MaxVelocity = 150; |
---|
679 | ss.MaxLifetime = 0.5; |
---|
680 | ss.MinRotation = 0.0; |
---|
681 | ss.MaxRotation = 365.0; |
---|
682 | ss.MinRotationSpeed = 2.0; |
---|
683 | |
---|
684 | Add(ss); |
---|
685 | ss.AddEffect(p.Position, 50); |
---|
686 | p.liikkumisnopeus = p.liikkumisnopeus * 2; |
---|
687 | p.turbomittari.Value = 0.0; |
---|
688 | Timer.SingleShot(5.0, delegate { p.liikkumisnopeus = p.liikkumisnopeus / 2; }); |
---|
689 | |
---|
690 | } |
---|
691 | } |
---|
692 | |
---|
693 | void Lataa(Pelaaja x) |
---|
694 | { |
---|
695 | if (x.kuollut == true) return; |
---|
696 | if (!x.lataamassa) |
---|
697 | { |
---|
698 | Lataus.Play(); |
---|
699 | x.lataamassa = true; |
---|
700 | x.Ammusmittari.Value = 0; |
---|
701 | Timer.SingleShot(x.Latausnopeus, delegate { x.Ammusmittari.Value += x.Latapati; x.lataamassa = false; }); |
---|
702 | } |
---|
703 | } |
---|
704 | |
---|
705 | void Luopelikentta() |
---|
706 | { |
---|
707 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Testikartta DM"); |
---|
708 | |
---|
709 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
710 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
711 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
712 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
713 | ruudut.SetTileMethod(Color.FromHexCode("#FF6A00"), Luovaara); |
---|
714 | ruudut.SetTileMethod(Color.FromHexCode("#B6FF00"), Luoelppibonuspaikka); |
---|
715 | |
---|
716 | Timer elppiajastin = new Timer(); |
---|
717 | elppiajastin.Interval = 30.0; |
---|
718 | elppiajastin.Timeout += Syntyykoelppibonus; |
---|
719 | elppiajastin.Start(); |
---|
720 | ruudut.Execute(35, 35); |
---|
721 | |
---|
722 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
723 | pallo.X = spawnilista1[spawninumero].X; |
---|
724 | pallo.Y = spawnilista1[spawninumero].Y; |
---|
725 | pallo.apupallo.Position = pallo.Position; |
---|
726 | |
---|
727 | int spawninumero2 = RandomGen.NextInt(spawnilista2.Count); |
---|
728 | pallo2.X = spawnilista2[spawninumero2].X; |
---|
729 | pallo2.Y = spawnilista2[spawninumero2].Y; |
---|
730 | pallo2.apupallo.Position = pallo2.Position; |
---|
731 | |
---|
732 | } |
---|
733 | |
---|
734 | void Syntyykokulta() |
---|
735 | { |
---|
736 | int paikka = RandomGen.NextInt(kultaLista.Count); |
---|
737 | Spawnkulta(paikka); |
---|
738 | } |
---|
739 | void Syntyykozombi() |
---|
740 | { |
---|
741 | int paikka = RandomGen.NextInt(Hautausmaalista.Count); |
---|
742 | SpawnZombie(paikka); |
---|
743 | } |
---|
744 | |
---|
745 | void Syntyykoelppibonus() |
---|
746 | { |
---|
747 | int kumpi = RandomGen.NextInt(1, 3); |
---|
748 | int paikka = RandomGen.NextInt(elppibonusLista.Count); |
---|
749 | if (kumpi == 1) Spawnelppibonus(paikka); |
---|
750 | if (kumpi == 2) Spawnvauhtibonus(paikka); |
---|
751 | } |
---|
752 | |
---|
753 | void Luopelikentta2() |
---|
754 | { |
---|
755 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Yang DM"); |
---|
756 | |
---|
757 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
758 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
759 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
760 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
761 | ruudut.SetTileMethod(Color.FromHexCode("#FF6A00"), Luovaara); |
---|
762 | ruudut.SetTileMethod(Color.FromHexCode("#B6FF00"), Luoelppibonuspaikka); |
---|
763 | |
---|
764 | Timer elppiajastin = new Timer(); |
---|
765 | elppiajastin.Interval = 30.0; |
---|
766 | elppiajastin.Timeout += Syntyykoelppibonus; |
---|
767 | elppiajastin.Start(); |
---|
768 | ruudut.Execute(35, 35); |
---|
769 | |
---|
770 | ruudut.Execute(35, 35); |
---|
771 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
772 | pallo.X = spawnilista1[spawninumero].X; |
---|
773 | pallo.Y = spawnilista1[spawninumero].Y; |
---|
774 | pallo.apupallo.Position = pallo.Position; |
---|
775 | |
---|
776 | int spawninumero2 = RandomGen.NextInt(spawnilista2.Count); |
---|
777 | pallo2.X = spawnilista2[spawninumero2].X; |
---|
778 | pallo2.Y = spawnilista2[spawninumero2].Y; |
---|
779 | pallo2.apupallo.Position = pallo2.Position; |
---|
780 | |
---|
781 | } |
---|
782 | void Luopelikentta3() |
---|
783 | { |
---|
784 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Testikartta"); |
---|
785 | |
---|
786 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
787 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
788 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
789 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
790 | ruudut.SetTileMethod(Color.FromHexCode("#FFE14F"), Luokultapaikka); |
---|
791 | ruudut.SetTileMethod(Color.FromHexCode("#FF6A00"), Luovaara); |
---|
792 | ruudut.SetTileMethod(Color.FromHexCode("#B6FF00"), Luoelppibonuspaikka); |
---|
793 | |
---|
794 | Timer elppiajastin = new Timer(); |
---|
795 | elppiajastin.Interval = 30.0; |
---|
796 | elppiajastin.Timeout += Syntyykoelppibonus; |
---|
797 | elppiajastin.Start(); |
---|
798 | ruudut.Execute(35, 35); |
---|
799 | |
---|
800 | Timer ajastin = new Timer(); |
---|
801 | ajastin.Interval = 3.0; |
---|
802 | ajastin.Timeout += Syntyykokulta; |
---|
803 | ajastin.Start(); |
---|
804 | |
---|
805 | ruudut.Execute(35, 35); |
---|
806 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
807 | pallo.X = spawnilista1[spawninumero].X; |
---|
808 | pallo.Y = spawnilista1[spawninumero].Y; |
---|
809 | pallo.apupallo.Position = pallo.Position; |
---|
810 | |
---|
811 | int spawninumero2 = RandomGen.NextInt(spawnilista2.Count); |
---|
812 | pallo2.X = spawnilista2[spawninumero2].X; |
---|
813 | pallo2.Y = spawnilista2[spawninumero2].Y; |
---|
814 | pallo2.apupallo.Position = pallo2.Position; |
---|
815 | |
---|
816 | } |
---|
817 | void Luopelikentta4() |
---|
818 | { |
---|
819 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Yang"); |
---|
820 | |
---|
821 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
822 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
823 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
824 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
825 | ruudut.SetTileMethod(Color.FromHexCode("#FFE14F"), Luokultapaikka); |
---|
826 | ruudut.SetTileMethod(Color.FromHexCode("#FF6A00"), Luovaara); |
---|
827 | ruudut.SetTileMethod(Color.FromHexCode("#B6FF00"), Luoelppibonuspaikka); |
---|
828 | |
---|
829 | Timer elppiajastin = new Timer(); |
---|
830 | elppiajastin.Interval = 30.0; |
---|
831 | elppiajastin.Timeout += Syntyykoelppibonus; |
---|
832 | elppiajastin.Start(); |
---|
833 | ruudut.Execute(35, 35); |
---|
834 | |
---|
835 | Timer ajastin = new Timer(); |
---|
836 | ajastin.Interval = 3.0; |
---|
837 | ajastin.Timeout += Syntyykokulta; |
---|
838 | ajastin.Start(); |
---|
839 | |
---|
840 | ruudut.Execute(35, 35); |
---|
841 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
842 | pallo.X = spawnilista1[spawninumero].X; |
---|
843 | pallo.Y = spawnilista1[spawninumero].Y; |
---|
844 | pallo.apupallo.Position = pallo.Position; |
---|
845 | |
---|
846 | int spawninumero2 = RandomGen.NextInt(spawnilista2.Count); |
---|
847 | pallo2.X = spawnilista2[spawninumero2].X; |
---|
848 | pallo2.Y = spawnilista2[spawninumero2].Y; |
---|
849 | pallo2.apupallo.Position = pallo2.Position; |
---|
850 | |
---|
851 | } |
---|
852 | void Luopelikentta5() |
---|
853 | { |
---|
854 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("CTF Middle"); |
---|
855 | |
---|
856 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
857 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
858 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
859 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
860 | ruudut.SetTileMethod(Color.FromHexCode("#FF6A00"), Luovaara); |
---|
861 | ruudut.SetTileMethod(Color.FromHexCode("#B6FF00"), Luoelppibonuspaikka); |
---|
862 | ruudut.SetTileMethod(Color.FromHexCode("#00137F"), CreateBluFlag); |
---|
863 | ruudut.SetTileMethod(Color.FromHexCode("#7F0000"), CreateRedFlag); |
---|
864 | |
---|
865 | Timer elppiajastin = new Timer(); |
---|
866 | elppiajastin.Interval = 30.0; |
---|
867 | elppiajastin.Timeout += Syntyykoelppibonus; |
---|
868 | elppiajastin.Start(); |
---|
869 | |
---|
870 | ruudut.Execute(35, 35); |
---|
871 | |
---|
872 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
873 | pallo.X = spawnilista1[spawninumero].X; |
---|
874 | pallo.Y = spawnilista1[spawninumero].Y; |
---|
875 | pallo.apupallo.Position = pallo.Position; |
---|
876 | |
---|
877 | int spawninumero2 = RandomGen.NextInt(spawnilista2.Count); |
---|
878 | pallo2.X = spawnilista2[spawninumero2].X; |
---|
879 | pallo2.Y = spawnilista2[spawninumero2].Y; |
---|
880 | pallo2.apupallo.Position = pallo2.Position; |
---|
881 | |
---|
882 | } |
---|
883 | void Luopelikentta6() |
---|
884 | { |
---|
885 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Zsurvival Arena"); |
---|
886 | |
---|
887 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
888 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
889 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
890 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
891 | ruudut.SetTileMethod(Color.FromHexCode("#C0C0C0"), LuoHautausmaa); |
---|
892 | ruudut.SetTileMethod(Color.FromHexCode("#FF6A00"), Luovaara); |
---|
893 | ruudut.SetTileMethod(Color.FromHexCode("#B6FF00"), Luoelppibonuspaikka); |
---|
894 | |
---|
895 | Timer elppiajastin = new Timer(); |
---|
896 | elppiajastin.Interval = 30.0; |
---|
897 | elppiajastin.Timeout += Syntyykoelppibonus; |
---|
898 | elppiajastin.Start(); |
---|
899 | ruudut.Execute(35, 35); |
---|
900 | |
---|
901 | ruudut.Execute(35, 35); |
---|
902 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
903 | pallo.X = spawnilista1[spawninumero].X; |
---|
904 | pallo.Y = spawnilista1[spawninumero].Y; |
---|
905 | pallo.apupallo.Position = pallo.Position; |
---|
906 | |
---|
907 | int spawninumero2 = RandomGen.NextInt(spawnilista2.Count); |
---|
908 | pallo2.X = spawnilista2[spawninumero2].X; |
---|
909 | pallo2.Y = spawnilista2[spawninumero2].Y; |
---|
910 | pallo2.apupallo.Position = pallo2.Position; |
---|
911 | |
---|
912 | } |
---|
913 | |
---|
914 | //Valikot!!!! |
---|
915 | void Alkuvalikko() |
---|
916 | { |
---|
917 | MultiSelectWindow alkuv = new MultiSelectWindow("Welcome", "Start game/Continue", "Game settings", "Player 1 weapon", "Player 2 weapon", "Restart", "Quit"); |
---|
918 | alkuv.ItemSelected += PainettiinValikonNappia; |
---|
919 | alkuv.Color = Color.MediumBlue; |
---|
920 | Add(alkuv); |
---|
921 | } |
---|
922 | void PainettiinValikonNappia(int valinta) |
---|
923 | { |
---|
924 | switch (valinta) |
---|
925 | { |
---|
926 | case 0: |
---|
927 | //Sulje ikkuna,Pelaa norm.asetuksilla |
---|
928 | if (IsPaused) Pause(); |
---|
929 | if (Zsurvival) |
---|
930 | { |
---|
931 | Timer ajastin = new Timer(); |
---|
932 | ajastin.Interval = 3.0; |
---|
933 | ajastin.Timeout += Syntyykozombi; |
---|
934 | ajastin.Start(); |
---|
935 | } |
---|
936 | break; |
---|
937 | case 1: |
---|
938 | Gasetukset(); |
---|
939 | //Kartta |
---|
940 | break; |
---|
941 | case 2: |
---|
942 | Asetukset1(); |
---|
943 | //Pelaajan 1 asevalinta |
---|
944 | break; |
---|
945 | case 3: |
---|
946 | Asetukset2(); |
---|
947 | //Pelaajan 2 asevalinta |
---|
948 | break; |
---|
949 | case 4: |
---|
950 | //if (m != null) |
---|
951 | // m.Destroy(); |
---|
952 | //if (n != null) |
---|
953 | // n.Destroy(); |
---|
954 | //Alkuvalikko(); |
---|
955 | kultaLista.Clear(); |
---|
956 | elppibonusLista.Clear(); |
---|
957 | spawnilista1.Clear(); |
---|
958 | spawnilista2.Clear(); |
---|
959 | Hautausmaalista.Clear(); |
---|
960 | |
---|
961 | ClearAll(); |
---|
962 | AloitaAlusta(); |
---|
963 | break; |
---|
964 | case 5: |
---|
965 | Exit(); |
---|
966 | break; |
---|
967 | } |
---|
968 | |
---|
969 | } |
---|
970 | void Asetukset1() |
---|
971 | { |
---|
972 | MultiSelectWindow p1 = new MultiSelectWindow("Choose your gun", |
---|
973 | "Sniper rifle", "Assault rifle", "Heavy machine gun", "Shotgun", "Light machine gun", "Back"); |
---|
974 | p1.Color = Color.MediumBlue; |
---|
975 | p1.ItemSelected += PVN1; |
---|
976 | Add(p1); |
---|
977 | } |
---|
978 | void Asetukset2() |
---|
979 | { |
---|
980 | MultiSelectWindow p2 = new MultiSelectWindow("Choose your gun", |
---|
981 | "Sniper rifle", "Assault rifle", "Heavy machine gun", "Shotgun", "Light machine gun", "Back"); |
---|
982 | p2.Color = Color.Ruby; |
---|
983 | p2.ItemSelected += PVN2; |
---|
984 | Add(p2); |
---|
985 | } |
---|
986 | void PVN1(int s) |
---|
987 | { |
---|
988 | switch (s) |
---|
989 | { |
---|
990 | case 0: |
---|
991 | pallo.Ase = "Sniper"; |
---|
992 | Sni(); |
---|
993 | break; |
---|
994 | case 1: |
---|
995 | As(); |
---|
996 | break; |
---|
997 | case 2: |
---|
998 | pallo.Ase = "Heavy"; |
---|
999 | pallo.Ampumisnopeus = 512; |
---|
1000 | pallo.Ammusmittari.MaxValue = 400; |
---|
1001 | pallo.Ammusmittari.Value = 400; |
---|
1002 | pallo.Latausnopeus = 6.0; |
---|
1003 | pallo.Latapati = 400; |
---|
1004 | pallo.Asekuva = HMG; |
---|
1005 | Sinikuva.Image = HMG; |
---|
1006 | Alkuvalikko(); |
---|
1007 | break; |
---|
1008 | case 3: |
---|
1009 | sho(); |
---|
1010 | break; |
---|
1011 | case 4: |
---|
1012 | LMG(); |
---|
1013 | break; |
---|
1014 | case 5: |
---|
1015 | Alkuvalikko(); |
---|
1016 | //Palaa takaisin |
---|
1017 | break; |
---|
1018 | } |
---|
1019 | } |
---|
1020 | void PVN2(int s) |
---|
1021 | { |
---|
1022 | switch (s) |
---|
1023 | { |
---|
1024 | case 0: |
---|
1025 | Snib(); |
---|
1026 | break; |
---|
1027 | case 1: |
---|
1028 | Asb(); |
---|
1029 | break; |
---|
1030 | case 2: |
---|
1031 | pallo2.Ase = "Heavy"; |
---|
1032 | pallo2.Ampumisnopeus = 512; |
---|
1033 | pallo2.Ammusmittari.MaxValue = 400; |
---|
1034 | pallo2.Ammusmittari.Value = 400; |
---|
1035 | pallo2.Latausnopeus = 6.0; |
---|
1036 | pallo2.Latapati = 400; |
---|
1037 | pallo2.Asekuva = HMG; |
---|
1038 | Punakuva.Image = HMG; |
---|
1039 | Alkuvalikko(); |
---|
1040 | break; |
---|
1041 | case 3: |
---|
1042 | shob(); |
---|
1043 | break; |
---|
1044 | case 4: |
---|
1045 | LMGb(); |
---|
1046 | break; |
---|
1047 | case 5: |
---|
1048 | Alkuvalikko(); |
---|
1049 | //Palaa takaisin |
---|
1050 | break; |
---|
1051 | } |
---|
1052 | } |
---|
1053 | void Gasetukset() |
---|
1054 | { |
---|
1055 | MultiSelectWindow a1 = new MultiSelectWindow("Maps:", |
---|
1056 | "Caves DM", "Yin DM", "Caves Gold rush", "Yin Gold rush", "CTF Middle","Zsurvival Arena", "Back"); |
---|
1057 | a1.Color = Color.Azure; |
---|
1058 | a1.ItemSelected += PVN3; |
---|
1059 | Add(a1); |
---|
1060 | } |
---|
1061 | void PVN3(int Valinta) |
---|
1062 | { |
---|
1063 | if (Kenttalad == true) |
---|
1064 | { |
---|
1065 | Alkuvalikko(); |
---|
1066 | return; |
---|
1067 | }//Estaa Kenttien synnyn paallekkain |
---|
1068 | |
---|
1069 | switch (Valinta) |
---|
1070 | { |
---|
1071 | case 0: |
---|
1072 | //Caves-dm |
---|
1073 | Luopelikentta(); |
---|
1074 | Kenttalad = true; |
---|
1075 | Gasetukset3(); |
---|
1076 | break; |
---|
1077 | case 1: |
---|
1078 | //yin-dm |
---|
1079 | Luopelikentta2(); |
---|
1080 | Kenttalad = true; |
---|
1081 | Gasetukset3(); |
---|
1082 | break; |
---|
1083 | case 2: |
---|
1084 | //caves-goru |
---|
1085 | Luopelikentta3(); |
---|
1086 | Kenttalad = true; |
---|
1087 | Gasetukset3(); |
---|
1088 | break; |
---|
1089 | case 3: |
---|
1090 | //yin-goru |
---|
1091 | Luopelikentta4(); |
---|
1092 | Kenttalad = true; |
---|
1093 | Gasetukset3(); |
---|
1094 | break; |
---|
1095 | case 4: |
---|
1096 | //CTF-Middle |
---|
1097 | Luopelikentta5(); |
---|
1098 | Kenttalad = true; |
---|
1099 | CTF = true; |
---|
1100 | Gasetukset3(); |
---|
1101 | break; |
---|
1102 | case 5: |
---|
1103 | //Zsurvival Arena |
---|
1104 | Luopelikentta6(); |
---|
1105 | Kenttalad = true; |
---|
1106 | Zsurvival = true; |
---|
1107 | pallo.Pistemittari.MaxValue = 3000000; |
---|
1108 | pallo2.Pistemittari.MaxValue = 3000000; |
---|
1109 | pisteLukub.BindTo(pallo.Pistemittari); |
---|
1110 | Alkuvalikko(); |
---|
1111 | break; |
---|
1112 | case 6: |
---|
1113 | Alkuvalikko(); |
---|
1114 | break; |
---|
1115 | } |
---|
1116 | |
---|
1117 | |
---|
1118 | } |
---|
1119 | |
---|
1120 | void Gasetukset3() |
---|
1121 | { |
---|
1122 | MultiSelectWindow a1 = new MultiSelectWindow("Points limit", "1000", "3000", "5000", "10000", "15000"); |
---|
1123 | a1.Color = Color.Azure; |
---|
1124 | a1.ItemSelected += PVN33; |
---|
1125 | Add(a1); |
---|
1126 | } |
---|
1127 | void PVN33(int Valinta) |
---|
1128 | { |
---|
1129 | switch (Valinta) |
---|
1130 | { |
---|
1131 | case 0: |
---|
1132 | pallo.Pistemittari.MaxValue = 1000; |
---|
1133 | pallo2.Pistemittari.MaxValue = 1000; |
---|
1134 | Alkuvalikko(); |
---|
1135 | break; |
---|
1136 | case 1: |
---|
1137 | pallo.Pistemittari.MaxValue = 3000; |
---|
1138 | pallo2.Pistemittari.MaxValue = 3000; |
---|
1139 | Alkuvalikko(); |
---|
1140 | break; |
---|
1141 | case 2: |
---|
1142 | pallo.Pistemittari.MaxValue = 5000; |
---|
1143 | pallo2.Pistemittari.MaxValue = 5000; |
---|
1144 | Alkuvalikko(); |
---|
1145 | break; |
---|
1146 | case 3: |
---|
1147 | pallo.Pistemittari.MaxValue = 10000; |
---|
1148 | pallo2.Pistemittari.MaxValue = 10000; |
---|
1149 | Alkuvalikko(); |
---|
1150 | break; |
---|
1151 | case 4: |
---|
1152 | pallo.Pistemittari.MaxValue = 15000; |
---|
1153 | pallo2.Pistemittari.MaxValue = 15000; |
---|
1154 | Alkuvalikko(); |
---|
1155 | break; |
---|
1156 | } |
---|
1157 | |
---|
1158 | |
---|
1159 | } |
---|
1160 | //Light machine gunit |
---|
1161 | void LMG() |
---|
1162 | { |
---|
1163 | MultiSelectWindow LMG = new MultiSelectWindow("Light machine guns", "Famas", "LMG Type `95", "Back"); |
---|
1164 | LMG.Color = Color.MediumBlue; |
---|
1165 | LMG.ItemSelected += LMG2; |
---|
1166 | Add(LMG); |
---|
1167 | } |
---|
1168 | void LMGb() |
---|
1169 | { |
---|
1170 | MultiSelectWindow LMG = new MultiSelectWindow("Light machine guns", "Famas", "LMG Type `95", "Back"); |
---|
1171 | LMG.Color = Color.Ruby; |
---|
1172 | LMG.ItemSelected += LMG2b; |
---|
1173 | Add(LMG); |
---|
1174 | } |
---|
1175 | void LMG2(int s) |
---|
1176 | { |
---|
1177 | switch (s) |
---|
1178 | { |
---|
1179 | |
---|
1180 | case 0: |
---|
1181 | pallo.Ase = "Famas"; |
---|
1182 | pallo.Ampumisnopeus = 1024; |
---|
1183 | pallo.Ammusmittari.MaxValue = 100; |
---|
1184 | pallo.Ammusmittari.Value = 100; |
---|
1185 | pallo.Latausnopeus = 1.9; |
---|
1186 | pallo.Latapati = 100; |
---|
1187 | pallo.Asekuva = Famas; |
---|
1188 | Sinikuva.Image = Famas; |
---|
1189 | Alkuvalikko(); |
---|
1190 | break; |
---|
1191 | case 1: |
---|
1192 | pallo.Ase = "LMG Type"; |
---|
1193 | pallo.Ampumisnopeus = 448; |
---|
1194 | pallo.Ammusmittari.MaxValue = 400; |
---|
1195 | pallo.Ammusmittari.Value = 400; |
---|
1196 | pallo.Latausnopeus = 5.0; |
---|
1197 | pallo.Latapati = 400; |
---|
1198 | pallo.Asekuva = Light; |
---|
1199 | Sinikuva.Image = Light; |
---|
1200 | Alkuvalikko(); |
---|
1201 | break; |
---|
1202 | case 2: |
---|
1203 | Asetukset1(); |
---|
1204 | break; |
---|
1205 | } |
---|
1206 | } |
---|
1207 | void LMG2b(int s) |
---|
1208 | { |
---|
1209 | switch (s) |
---|
1210 | { |
---|
1211 | |
---|
1212 | case 0: |
---|
1213 | pallo2.Ase = "Famas"; |
---|
1214 | pallo2.Ampumisnopeus = 1024; |
---|
1215 | pallo2.Ammusmittari.MaxValue = 100; |
---|
1216 | pallo2.Ammusmittari.Value = 100; |
---|
1217 | pallo2.Latausnopeus = 1.9; |
---|
1218 | pallo2.Latapati = 100; |
---|
1219 | pallo2.Asekuva = Famas; |
---|
1220 | Punakuva.Image = Famas; |
---|
1221 | Alkuvalikko(); |
---|
1222 | break; |
---|
1223 | case 1: |
---|
1224 | pallo2.Ase = "LMG Type"; |
---|
1225 | pallo2.Ampumisnopeus = 448; |
---|
1226 | pallo2.Ammusmittari.MaxValue = 400; |
---|
1227 | pallo2.Ammusmittari.Value = 400; |
---|
1228 | pallo2.Latausnopeus = 5.0; |
---|
1229 | pallo2.Latapati = 400; |
---|
1230 | pallo2.Asekuva = Light; |
---|
1231 | Punakuva.Image = Light; |
---|
1232 | Alkuvalikko(); |
---|
1233 | break; |
---|
1234 | case 2: |
---|
1235 | Asetukset2(); |
---|
1236 | break; |
---|
1237 | } |
---|
1238 | } |
---|
1239 | //Assault Riflet |
---|
1240 | void As() |
---|
1241 | { |
---|
1242 | MultiSelectWindow As = new MultiSelectWindow("Assault rifles", "Ak-47u", "Caliber `89", "Back"); |
---|
1243 | As.Color = Color.MediumBlue; |
---|
1244 | As.ItemSelected += As2; |
---|
1245 | Add(As); |
---|
1246 | } |
---|
1247 | void As2(int s) |
---|
1248 | { |
---|
1249 | switch (s) |
---|
1250 | { |
---|
1251 | |
---|
1252 | case 0: |
---|
1253 | pallo.Ase = "Ak"; |
---|
1254 | pallo.Ampumisnopeus = 890; |
---|
1255 | pallo.Ammusmittari.MaxValue = 64; |
---|
1256 | pallo.Ammusmittari.Value = 64; |
---|
1257 | pallo.Latausnopeus = 0.8; |
---|
1258 | pallo.Latapati = 64; |
---|
1259 | pallo.Asekuva = Ak47u; |
---|
1260 | Sinikuva.Image = Ak47u; |
---|
1261 | Alkuvalikko(); |
---|
1262 | break; |
---|
1263 | case 1: |
---|
1264 | pallo.Ase = "Cal89"; |
---|
1265 | pallo.Ampumisnopeus = 1024; |
---|
1266 | pallo.Ammusmittari.MaxValue = 25; |
---|
1267 | pallo.Ammusmittari.Value = 25; |
---|
1268 | pallo.Latausnopeus = 2.1; |
---|
1269 | pallo.Latapati = 25; |
---|
1270 | pallo.Asekuva = Caliber; |
---|
1271 | Sinikuva.Image = Caliber; |
---|
1272 | Alkuvalikko(); |
---|
1273 | break; |
---|
1274 | case 2: |
---|
1275 | Asetukset1(); |
---|
1276 | break; |
---|
1277 | } |
---|
1278 | } |
---|
1279 | void Asb() |
---|
1280 | { |
---|
1281 | MultiSelectWindow As = new MultiSelectWindow("Assault rifles", "Ak-47u", "Caliber `89", "Back"); |
---|
1282 | As.Color = Color.Ruby; |
---|
1283 | As.ItemSelected += As2b; |
---|
1284 | Add(As); |
---|
1285 | } |
---|
1286 | void As2b(int s) |
---|
1287 | { |
---|
1288 | switch (s) |
---|
1289 | { |
---|
1290 | |
---|
1291 | case 0: |
---|
1292 | pallo2.Ase = "Ak"; |
---|
1293 | pallo2.Ampumisnopeus = 890; |
---|
1294 | pallo2.Ammusmittari.MaxValue = 64; |
---|
1295 | pallo2.Ammusmittari.Value = 64; |
---|
1296 | pallo2.Latausnopeus = 0.8; |
---|
1297 | pallo2.Latapati = 64; |
---|
1298 | pallo2.Asekuva = Ak47u; |
---|
1299 | Punakuva.Image = Ak47u; |
---|
1300 | Alkuvalikko(); |
---|
1301 | break; |
---|
1302 | case 1: |
---|
1303 | pallo2.Ase = "Cal89"; |
---|
1304 | pallo2.Ampumisnopeus = 1024; |
---|
1305 | pallo2.Ammusmittari.MaxValue = 25; |
---|
1306 | pallo2.Ammusmittari.Value = 25; |
---|
1307 | pallo2.Latausnopeus = 2.1; |
---|
1308 | pallo2.Latapati = 25; |
---|
1309 | pallo2.Asekuva = Caliber; |
---|
1310 | Punakuva.Image = Caliber; |
---|
1311 | Alkuvalikko(); |
---|
1312 | break; |
---|
1313 | case 2: |
---|
1314 | Asetukset2(); |
---|
1315 | break; |
---|
1316 | } |
---|
1317 | } |
---|
1318 | //Sniput |
---|
1319 | void Sni() |
---|
1320 | { |
---|
1321 | MultiSelectWindow Sni = new MultiSelectWindow("Sniper rifles", "Dragunov", "L84 Mod.", "Back"); |
---|
1322 | Sni.Color = Color.MediumBlue; |
---|
1323 | Sni.ItemSelected += Sni2; |
---|
1324 | Add(Sni); |
---|
1325 | } |
---|
1326 | void Sni2(int s) |
---|
1327 | { |
---|
1328 | switch (s) |
---|
1329 | { |
---|
1330 | |
---|
1331 | case 0: |
---|
1332 | pallo.Ase = "Dragunov"; |
---|
1333 | pallo.Ampumisnopeus = 1024; |
---|
1334 | pallo.Ammusmittari.MaxValue = 11; |
---|
1335 | pallo.Ammusmittari.Value = 11; |
---|
1336 | pallo.Latausnopeus = 5.3; |
---|
1337 | pallo.Latapati = 11; |
---|
1338 | Sinikuva.Image = MGH; |
---|
1339 | Alkuvalikko(); |
---|
1340 | break; |
---|
1341 | case 1: |
---|
1342 | pallo.Ase = "Barret"; |
---|
1343 | pallo.Ampumisnopeus = 1024; |
---|
1344 | pallo.Ammusmittari.MaxValue = 1; |
---|
1345 | pallo.Ammusmittari.Value = 1; |
---|
1346 | pallo.Latausnopeus = 2.0; |
---|
1347 | pallo.Latapati = 1; |
---|
1348 | Sinikuva.Image = Sniper; |
---|
1349 | Alkuvalikko(); |
---|
1350 | break; |
---|
1351 | case 2: |
---|
1352 | Asetukset1(); |
---|
1353 | break; |
---|
1354 | } |
---|
1355 | } |
---|
1356 | void Snib() |
---|
1357 | { |
---|
1358 | MultiSelectWindow Sni = new MultiSelectWindow("Sniper rifles", "Dragunov", "L84 Mod.", "Back"); |
---|
1359 | Sni.Color = Color.Ruby; |
---|
1360 | Sni.ItemSelected += Sni2b; |
---|
1361 | Add(Sni); |
---|
1362 | } |
---|
1363 | void Sni2b(int s) |
---|
1364 | { |
---|
1365 | switch (s) |
---|
1366 | { |
---|
1367 | |
---|
1368 | case 0: |
---|
1369 | pallo2.Ase = "Dragunov"; |
---|
1370 | pallo2.Ampumisnopeus = 1024; |
---|
1371 | pallo2.Ammusmittari.MaxValue = 11; |
---|
1372 | pallo2.Ammusmittari.Value = 11; |
---|
1373 | pallo2.Latausnopeus = 5.3; |
---|
1374 | pallo2.Latapati = 11; |
---|
1375 | Punakuva.Image = MGH; |
---|
1376 | Alkuvalikko(); |
---|
1377 | break; |
---|
1378 | case 1: |
---|
1379 | pallo2.Ase = "Barret"; |
---|
1380 | pallo2.Ampumisnopeus = 1024; |
---|
1381 | pallo2.Ammusmittari.MaxValue = 1; |
---|
1382 | pallo2.Ammusmittari.Value = 1; |
---|
1383 | pallo2.Latausnopeus = 2.0; |
---|
1384 | pallo2.Latapati = 1; |
---|
1385 | Punakuva.Image = Sniper; |
---|
1386 | Alkuvalikko(); |
---|
1387 | break; |
---|
1388 | case 2: |
---|
1389 | Asetukset2(); |
---|
1390 | break; |
---|
1391 | } |
---|
1392 | } |
---|
1393 | void sho() |
---|
1394 | { |
---|
1395 | MultiSelectWindow Sni = new MultiSelectWindow("Shotguns", "Striker", "Spas12", "Back"); |
---|
1396 | Sni.Color = Color.MediumBlue; |
---|
1397 | Sni.ItemSelected += sho2; |
---|
1398 | Add(Sni); |
---|
1399 | } |
---|
1400 | void sho2(int s) |
---|
1401 | { |
---|
1402 | switch (s) |
---|
1403 | { |
---|
1404 | |
---|
1405 | case 0: |
---|
1406 | pallo.Ase = "Shotgun"; |
---|
1407 | pallo.Ampumisnopeus = 1224; |
---|
1408 | pallo.Ammusmittari.MaxValue = 11; |
---|
1409 | pallo.Ammusmittari.Value = 11; |
---|
1410 | pallo.Latausnopeus = 5.3; |
---|
1411 | pallo.Latapati = 11; |
---|
1412 | Sinikuva.Image = Shotgun; |
---|
1413 | Alkuvalikko(); |
---|
1414 | break; |
---|
1415 | case 1: |
---|
1416 | pallo.Ase = "Spas"; |
---|
1417 | pallo.Ampumisnopeus = 1224; |
---|
1418 | pallo.Ammusmittari.MaxValue = 2; |
---|
1419 | pallo.Ammusmittari.Value = 2; |
---|
1420 | pallo.Latausnopeus = 1.6; |
---|
1421 | pallo.Latapati = 2; |
---|
1422 | Sinikuva.Image = Spas; |
---|
1423 | Alkuvalikko(); |
---|
1424 | break; |
---|
1425 | case 2: |
---|
1426 | Asetukset1(); |
---|
1427 | break; |
---|
1428 | } |
---|
1429 | } |
---|
1430 | void shob() |
---|
1431 | { |
---|
1432 | MultiSelectWindow Sni = new MultiSelectWindow("Shotguns", "Striker", "Spas12", "Back"); |
---|
1433 | Sni.Color = Color.Ruby; |
---|
1434 | Sni.ItemSelected += sho2b; |
---|
1435 | Add(Sni); |
---|
1436 | } |
---|
1437 | void sho2b(int s) |
---|
1438 | { |
---|
1439 | switch (s) |
---|
1440 | { |
---|
1441 | case 0: |
---|
1442 | pallo2.Ase = "Shotgun"; |
---|
1443 | pallo2.Ampumisnopeus = 1224; |
---|
1444 | pallo2.Ammusmittari.MaxValue = 11; |
---|
1445 | pallo2.Ammusmittari.Value = 11; |
---|
1446 | pallo2.Latausnopeus = 5.3; |
---|
1447 | pallo2.Latapati = 11; |
---|
1448 | Punakuva.Image = Shotgun; |
---|
1449 | Alkuvalikko(); |
---|
1450 | break; |
---|
1451 | case 1: |
---|
1452 | pallo2.Ase = "Spas"; |
---|
1453 | pallo2.Ampumisnopeus = 1224; |
---|
1454 | pallo2.Ammusmittari.MaxValue = 2; |
---|
1455 | pallo2.Ammusmittari.Value = 2; |
---|
1456 | pallo2.Latausnopeus = 1.6; |
---|
1457 | pallo2.Latapati = 2; |
---|
1458 | Punakuva.Image = Spas; |
---|
1459 | Alkuvalikko(); |
---|
1460 | break; |
---|
1461 | case 2: |
---|
1462 | Asetukset2(); |
---|
1463 | break; |
---|
1464 | } |
---|
1465 | } |
---|
1466 | //Respaus |
---|
1467 | void Pelaajakuoli(Pelaaja p) |
---|
1468 | { |
---|
1469 | Remove(p); |
---|
1470 | p.HasFlag = false; |
---|
1471 | kuolemat += 1; |
---|
1472 | if (Zsurvival) { |
---|
1473 | String jaljella = (6 - kuolemat).ToString(); |
---|
1474 | Label elamia = new Label(150, 20, "Lifes left: " + jaljella); |
---|
1475 | elamia.Y = Screen.Top - 20; |
---|
1476 | elamia.TextColor = Color.Red; |
---|
1477 | Add(elamia); |
---|
1478 | elamia.LifetimeLeft = TimeSpan.FromSeconds(4); |
---|
1479 | if (kuolemat == 7) |
---|
1480 | { |
---|
1481 | Pause(); |
---|
1482 | toplista(); |
---|
1483 | } |
---|
1484 | |
---|
1485 | else if (kuolemat > 5) |
---|
1486 | return; |
---|
1487 | } |
---|
1488 | |
---|
1489 | if (p == pallo) |
---|
1490 | { |
---|
1491 | pallo.kuollut = true; |
---|
1492 | pallo.Stop(); |
---|
1493 | if (!Zsurvival) { pallo2.Pistemittari.Value += 1000; } |
---|
1494 | if (CTF) |
---|
1495 | { |
---|
1496 | punalippu.OnLippu = true; |
---|
1497 | punalippu.Image = Punalippu; |
---|
1498 | Sinikuva.Image = p.Asekuva; |
---|
1499 | } |
---|
1500 | |
---|
1501 | Timer.SingleShot(3.1, delegate |
---|
1502 | { |
---|
1503 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
1504 | pallo.X = spawnilista1[spawninumero].X; |
---|
1505 | pallo.Y = spawnilista1[spawninumero].Y; |
---|
1506 | pallo.apupallo.Position = pallo.Position; |
---|
1507 | pallo.kuollut = false; |
---|
1508 | Add(pallo); |
---|
1509 | Add(pallo.apupallo, 1); |
---|
1510 | pallo.turbomittari.Value = 100.0; |
---|
1511 | pallo.elamaMittari.Value = 500.0; |
---|
1512 | pallo.Ammusmittari.Value += pallo.Latapati; |
---|
1513 | }); |
---|
1514 | |
---|
1515 | } |
---|
1516 | if (p == pallo2) |
---|
1517 | { |
---|
1518 | pallo2.kuollut = true; |
---|
1519 | pallo2.Stop(); |
---|
1520 | if (!Zsurvival) { pallo.Pistemittari.Value += 1000; } |
---|
1521 | if (CTF) |
---|
1522 | { |
---|
1523 | sinilippu.OnLippu = true; |
---|
1524 | sinilippu.Image = Sinilippu; |
---|
1525 | Punakuva.Image = p.Asekuva; |
---|
1526 | } |
---|
1527 | Timer.SingleShot(3.1, delegate |
---|
1528 | { |
---|
1529 | int spawninumero = RandomGen.NextInt(spawnilista1.Count); |
---|
1530 | pallo2.X = spawnilista2[spawninumero].X; |
---|
1531 | pallo2.Y = spawnilista2[spawninumero].Y; |
---|
1532 | pallo2.apupallo.Position = pallo2.Position; |
---|
1533 | pallo2.kuollut = false; |
---|
1534 | |
---|
1535 | Add(pallo2); |
---|
1536 | Add(pallo2.apupallo, 1); |
---|
1537 | |
---|
1538 | pallo2.turbomittari.Value = 100.0; |
---|
1539 | pallo2.elamaMittari.Value = 500.0; |
---|
1540 | pallo2.Ammusmittari.Value += pallo.Latapati; |
---|
1541 | }); |
---|
1542 | } |
---|
1543 | } |
---|
1544 | //Kransu |
---|
1545 | void HKranaatti(Pelaaja Pallo) |
---|
1546 | { |
---|
1547 | HKranaatti(Pallo, null); |
---|
1548 | } |
---|
1549 | |
---|
1550 | void HKranaatti(Pelaaja Pallo, GamePad padi) |
---|
1551 | { |
---|
1552 | if (Pallo.turbomittari < Pallo.turbomittari.MaxValue) return; |
---|
1553 | if (Pallo.kuollut == true) return; |
---|
1554 | Pallo.turbomittari.Value = Pallo.turbomittari.MinValue; |
---|
1555 | |
---|
1556 | PhysicsObject Kransu = new PhysicsObject(20, 20); |
---|
1557 | Kransu.Image = kransu; |
---|
1558 | Add(Kransu); |
---|
1559 | Kransu.Position = Pallo.Position; |
---|
1560 | Kransu.IgnoresCollisionResponse = true; |
---|
1561 | |
---|
1562 | if (padi != null) |
---|
1563 | { |
---|
1564 | Pallo.viimeisinSuunta = Vector.ComponentProduct(padi.RightThumbDirection.Normalize(), new Vector(pallo.liikkumisnopeus, pallo.liikkumisnopeus)); |
---|
1565 | if (Double.IsNaN(Pallo.viimeisinSuunta.X)) |
---|
1566 | Pallo.viimeisinSuunta.X = 0; |
---|
1567 | if (Double.IsNaN(Pallo.viimeisinSuunta.Y)) |
---|
1568 | Pallo.viimeisinSuunta.Y = 0; |
---|
1569 | } |
---|
1570 | Kransu.Hit(Pallo.viimeisinSuunta * 1.2); |
---|
1571 | Kransu.IgnoresExplosions = true; |
---|
1572 | Timer.SingleShot(1.0, delegate |
---|
1573 | { |
---|
1574 | ExplosionSystem es = new ExplosionSystem(Boom, 80); |
---|
1575 | es.Position = Kransu.Position; |
---|
1576 | es.MaxScale = 30; |
---|
1577 | es.MinScale = 30; |
---|
1578 | es.MaxVelocity = 100; |
---|
1579 | Add(es); |
---|
1580 | es.AddEffect(Kransu.Position, 80); |
---|
1581 | Kransu.Destroy(); |
---|
1582 | Explosion es2 = new Explosion(100); |
---|
1583 | es2.Position = Kransu.Position; |
---|
1584 | es2.IsVisible = false; |
---|
1585 | es2.ShockwaveReachesObject += delegate(IPhysicsObject kohde, Vector suunta) { Rajahdusosui(Pallo, kohde, suunta, es2); }; |
---|
1586 | Add(es2); |
---|
1587 | }); |
---|
1588 | } |
---|
1589 | void Rajahdusosui(Pelaaja ampuja, IPhysicsObject kohde, Vector v, Explosion es) |
---|
1590 | { |
---|
1591 | if (kohde is Pelaaja) |
---|
1592 | { |
---|
1593 | Pelaaja kohdePelaaja = kohde as Pelaaja; |
---|
1594 | if (kohdePelaaja == null) return; |
---|
1595 | if (kohdePelaaja.Viimeisinrajahdus == es) return; |
---|
1596 | double etaisyys = Vector.Distance(kohdePelaaja.Position, es.Position); |
---|
1597 | int damage = (int)Math.Floor(15000 / etaisyys); |
---|
1598 | kohdePelaaja.elamaMittari.Value -= damage; |
---|
1599 | } |
---|
1600 | else if (kohde is Zombi) |
---|
1601 | { |
---|
1602 | Zombi kohdezombi = kohde as Zombi; |
---|
1603 | if (kohdezombi == null) return; |
---|
1604 | if (kohdezombi.Viimeisinrajahdus == es) return; |
---|
1605 | double etaisyys = Vector.Distance(kohdezombi.Position, es.Position); |
---|
1606 | int damage = (int)Math.Floor(15000 / etaisyys); |
---|
1607 | pallo.Pistemittari.Value += damage; |
---|
1608 | kohdezombi.elamaMittari.Value -= damage; |
---|
1609 | |
---|
1610 | } |
---|
1611 | |
---|
1612 | } |
---|
1613 | void Tayta(Pelaaja p) |
---|
1614 | { |
---|
1615 | if (p.turbomittari < p.turbomittari.MaxValue) return; |
---|
1616 | if (p.kuollut == true) return; |
---|
1617 | p.turbomittari.Value = p.turbomittari.MinValue; |
---|
1618 | Healaus.Play(); |
---|
1619 | ExplosionSystem ss = new ExplosionSystem(Sydan, 100); |
---|
1620 | ss.MaxScale = 30; |
---|
1621 | ss.MinScale = 15; |
---|
1622 | ss.MaxVelocity = 40; |
---|
1623 | ss.MaxLifetime = 0.6; |
---|
1624 | Add(ss); |
---|
1625 | ss.AddEffect(p.Position, 15); |
---|
1626 | p.elamaMittari.Value += 150; |
---|
1627 | } |
---|
1628 | void Luomaa(Vector paikka, double leveys, double korkeus) |
---|
1629 | { |
---|
1630 | GameObject maa = new GameObject(leveys, korkeus); |
---|
1631 | maa.Position = paikka + siirtyma; |
---|
1632 | maa.Color = Color.DarkGray; |
---|
1633 | Add(maa, -3); |
---|
1634 | } |
---|
1635 | |
---|
1636 | void setspawn2(Vector paikka, double leveys, double korkeus) |
---|
1637 | { |
---|
1638 | Luomaa(paikka, leveys, korkeus); |
---|
1639 | spawnilista2.Add(paikka + siirtyma); |
---|
1640 | } |
---|
1641 | |
---|
1642 | void setspawn1(Vector paikka, double leveys, double korkeus) |
---|
1643 | { |
---|
1644 | Luomaa(paikka, leveys, korkeus); |
---|
1645 | spawnilista1.Add(paikka + siirtyma); |
---|
1646 | } |
---|
1647 | |
---|
1648 | void Luokultapaikka(Vector paikka, double leveys, double korkeus) |
---|
1649 | { |
---|
1650 | Luomaa(paikka, leveys, korkeus); |
---|
1651 | kultaLista.Add(paikka + siirtyma); |
---|
1652 | } |
---|
1653 | void Luoelppibonuspaikka(Vector paikka, double leveys, double korkeus) |
---|
1654 | { |
---|
1655 | Luomaa(paikka, leveys, korkeus); |
---|
1656 | elppibonusLista.Add(paikka + siirtyma); |
---|
1657 | } |
---|
1658 | void LuoHautausmaa(Vector paikka, double leveys, double korkeus) |
---|
1659 | { |
---|
1660 | Luomaa(paikka, leveys, korkeus); |
---|
1661 | Hautausmaalista.Add(paikka + siirtyma); |
---|
1662 | |
---|
1663 | Hautausmaa hautausmaa = new Hautausmaa(35, 35); |
---|
1664 | hautausmaa.Image = Hauta; |
---|
1665 | hautausmaa.Tag = "Hautausmaa"; |
---|
1666 | hautausmaa.Elpit.LowerLimit += delegate { |
---|
1667 | hautausmaa.OnKunnossa = false; |
---|
1668 | Hautausmaalista.Remove(hautausmaa.Position); |
---|
1669 | hautausmaa.Image = HautaRikki; |
---|
1670 | Timer.SingleShot(10, delegate { |
---|
1671 | hautausmaa.OnKunnossa = true; |
---|
1672 | hautausmaa.Image = Hauta; |
---|
1673 | Hautausmaalista.Add(paikka + siirtyma); |
---|
1674 | hautausmaa.Elpit.Value = hautausmaa.Elpit.MaxValue; |
---|
1675 | }); |
---|
1676 | |
---|
1677 | }; |
---|
1678 | hautausmaa.CollisionIgnoreGroup = 2; |
---|
1679 | hautausmaa.Position = paikka + siirtyma; |
---|
1680 | hautausmaa.MakeStatic(); |
---|
1681 | Add(hautausmaa, -2); |
---|
1682 | |
---|
1683 | } |
---|
1684 | void Spawnkulta(int numero) |
---|
1685 | { |
---|
1686 | PhysicsObject Kultapala = new PhysicsObject(35, 35); |
---|
1687 | |
---|
1688 | Kultapala.X = kultaLista[numero].X; |
---|
1689 | Kultapala.Y = kultaLista[numero].Y; |
---|
1690 | Kultapala.MaximumLifetime = TimeSpan.FromSeconds(15); |
---|
1691 | Kultapala.Image = kulta; |
---|
1692 | Kultapala.MakeStatic(); |
---|
1693 | Kultapala.Tag = "Kulta"; |
---|
1694 | |
---|
1695 | Add(Kultapala); |
---|
1696 | } |
---|
1697 | void Spawnelppibonus(int numero) |
---|
1698 | { |
---|
1699 | PhysicsObject Elppilaatikko = new PhysicsObject(35, 35); |
---|
1700 | |
---|
1701 | Elppilaatikko.X = elppibonusLista[numero].X; |
---|
1702 | Elppilaatikko.Y = elppibonusLista[numero].Y; |
---|
1703 | Elppilaatikko.MaximumLifetime = TimeSpan.FromSeconds(20); |
---|
1704 | Elppilaatikko.Image = elppibonus; |
---|
1705 | Elppilaatikko.MakeStatic(); |
---|
1706 | Elppilaatikko.Tag = "Elppibonus"; |
---|
1707 | |
---|
1708 | Add(Elppilaatikko); |
---|
1709 | } |
---|
1710 | void SpawnZombie(int numero) |
---|
1711 | { |
---|
1712 | if(Hautausmaalista.Count == 0)return; |
---|
1713 | Zombi Zombie = new Zombi(20, 20); |
---|
1714 | |
---|
1715 | Zombie.X = Hautausmaalista[numero].X; |
---|
1716 | Zombie.Y = Hautausmaalista[numero].Y; |
---|
1717 | Zombie.Image = ZOMBI; |
---|
1718 | Zombie.Tag = "Zombi"; |
---|
1719 | Zombie.CollisionIgnoreGroup = 2; |
---|
1720 | Zombie.Shape = Shape.Circle; |
---|
1721 | |
---|
1722 | FollowerBrain zombinAivot = new FollowerBrain("pallo"); |
---|
1723 | zombinAivot.Speed = Zombi.Zombinvauhti; |
---|
1724 | zombinAivot.TurnWhileMoving = true; |
---|
1725 | Zombie.Brain = zombinAivot; |
---|
1726 | |
---|
1727 | Add(Zombie, 3); |
---|
1728 | Zombie.elamaMittari.LowerLimit += delegate { Zombie.Destroy(); }; |
---|
1729 | |
---|
1730 | Zombi.Zombinvauhti += 1; |
---|
1731 | Zombi.Zombinelpit += 1; |
---|
1732 | Zombi.Zombinvahinko += 1; |
---|
1733 | } |
---|
1734 | void Spawnvauhtibonus(int numero) |
---|
1735 | { |
---|
1736 | PhysicsObject turbolaatikko = new PhysicsObject(35, 35); |
---|
1737 | |
---|
1738 | turbolaatikko.X = elppibonusLista[numero].X; |
---|
1739 | turbolaatikko.Y = elppibonusLista[numero].Y; |
---|
1740 | turbolaatikko.MaximumLifetime = TimeSpan.FromSeconds(20); |
---|
1741 | turbolaatikko.Image = energiabonus; |
---|
1742 | turbolaatikko.MakeStatic(); |
---|
1743 | turbolaatikko.Tag = "Turbobonus"; |
---|
1744 | Add(turbolaatikko); |
---|
1745 | } |
---|
1746 | |
---|
1747 | void Kullankerays(PhysicsObject olio, PhysicsObject kulta) |
---|
1748 | { |
---|
1749 | if (olio is Pelaaja) |
---|
1750 | { |
---|
1751 | Pelaaja p = (Pelaaja)olio; |
---|
1752 | p.Pistemittari.Value += 500; |
---|
1753 | kulta.Destroy(); |
---|
1754 | Kolikonkerays.Play(); |
---|
1755 | } |
---|
1756 | } |
---|
1757 | void Elppibonuskerays(PhysicsObject olio, PhysicsObject elppibonus) |
---|
1758 | { |
---|
1759 | if (olio is Pelaaja) |
---|
1760 | { |
---|
1761 | Pelaaja p = (Pelaaja)olio; |
---|
1762 | p.elamaMittari.Value += 150; |
---|
1763 | elppibonus.Destroy(); |
---|
1764 | Healaus.Play(); |
---|
1765 | ExplosionSystem ss = new ExplosionSystem(Sydan, 100); |
---|
1766 | ss.MaxScale = 30; |
---|
1767 | ss.MinScale = 15; |
---|
1768 | ss.MaxVelocity = 40; |
---|
1769 | ss.MaxLifetime = 0.6; |
---|
1770 | Add(ss); |
---|
1771 | ss.AddEffect(p.Position, 15); |
---|
1772 | } |
---|
1773 | } |
---|
1774 | void Vauhtibonuskerays(PhysicsObject olio, PhysicsObject energiabonus) |
---|
1775 | { |
---|
1776 | if (olio is Pelaaja) |
---|
1777 | { |
---|
1778 | Pelaaja p = (Pelaaja)olio; |
---|
1779 | ExplosionSystem ss = new ExplosionSystem(salama, 100); |
---|
1780 | ss.MaxScale = 30; |
---|
1781 | ss.MinScale = 20; |
---|
1782 | ss.MaxVelocity = 150; |
---|
1783 | ss.MaxLifetime = 0.5; |
---|
1784 | ss.MinRotation = 0.0; |
---|
1785 | ss.MaxRotation = 365.0; |
---|
1786 | ss.MinRotationSpeed = 2.0; |
---|
1787 | Add(ss); |
---|
1788 | ss.AddEffect(p.Position, 50); |
---|
1789 | p.liikkumisnopeus = p.liikkumisnopeus * 2; |
---|
1790 | energiabonus.Destroy(); |
---|
1791 | Timer.SingleShot(5.0, delegate { p.liikkumisnopeus = p.liikkumisnopeus / 2; }); |
---|
1792 | |
---|
1793 | } |
---|
1794 | } |
---|
1795 | void ZombiHyokkaa (Pelaaja olio, PhysicsObject zombi) |
---|
1796 | { |
---|
1797 | if (olio is Pelaaja) |
---|
1798 | { |
---|
1799 | olio.elamaMittari.Value -= Zombi.Zombinvahinko; |
---|
1800 | } |
---|
1801 | } |
---|
1802 | |
---|
1803 | |
---|
1804 | void LippuTankoKosketus(Pelaaja p, Flag f) |
---|
1805 | { |
---|
1806 | if (!f.OnLippu) return; |
---|
1807 | |
---|
1808 | if (p == pallo && f.OnPunainen) |
---|
1809 | { |
---|
1810 | p.HasFlag = true; |
---|
1811 | Sinikuva.Image = Flag; |
---|
1812 | f.OnLippu = false; |
---|
1813 | punalippu.Image = Punatanko; |
---|
1814 | } |
---|
1815 | if (p == pallo2 && !f.OnPunainen) |
---|
1816 | { |
---|
1817 | p.HasFlag = true; |
---|
1818 | Punakuva.Image = Flag; |
---|
1819 | f.OnLippu = false; |
---|
1820 | sinilippu.Image = Sinitanko; |
---|
1821 | } |
---|
1822 | if (p == pallo && !f.OnPunainen && p.HasFlag) |
---|
1823 | { |
---|
1824 | p.HasFlag = false; |
---|
1825 | p.Pistemittari.Value += 2000; |
---|
1826 | sinilippu.Image = Sinilippu; |
---|
1827 | punalippu.Image = Punalippu; |
---|
1828 | punalippu.OnLippu = true; |
---|
1829 | sinilippu.OnLippu = true; |
---|
1830 | Sinikuva.Image = p.Asekuva; |
---|
1831 | ExplosionSystem es = new ExplosionSystem(Redlippu, 5); |
---|
1832 | es.Position = f.Position; |
---|
1833 | es.MaxScale = 30; |
---|
1834 | es.MinScale = 30; |
---|
1835 | es.MaxVelocity = 50; |
---|
1836 | Add(es); |
---|
1837 | es.AddEffect(f.Position, 5); |
---|
1838 | } |
---|
1839 | if (p == pallo2 && f.OnPunainen && p.HasFlag) |
---|
1840 | { |
---|
1841 | p.HasFlag = false; |
---|
1842 | p.Pistemittari.Value += 2000; |
---|
1843 | punalippu.Image = Punalippu; |
---|
1844 | sinilippu.Image = Sinilippu; |
---|
1845 | Punakuva.Image = p.Asekuva; |
---|
1846 | punalippu.OnLippu = true; |
---|
1847 | sinilippu.OnLippu = true; |
---|
1848 | ExplosionSystem es = new ExplosionSystem(Blulippu, 5); |
---|
1849 | es.Position = f.Position; |
---|
1850 | es.MaxScale = 30; |
---|
1851 | es.MinScale = 30; |
---|
1852 | es.MaxVelocity = 50; |
---|
1853 | Add(es); |
---|
1854 | es.AddEffect(f.Position, 5); |
---|
1855 | } |
---|
1856 | } |
---|
1857 | |
---|
1858 | void Maxpointsreached(Pelaaja pallow) |
---|
1859 | { |
---|
1860 | if (pallow == pallo2) |
---|
1861 | { |
---|
1862 | Label voitto = new Label("The red ball wins!"); |
---|
1863 | voitto.Color = Color.White; |
---|
1864 | voitto.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 5000); |
---|
1865 | voitto.Position = new Vector(0, 100); |
---|
1866 | voitto.Size = new Vector(300, 50); |
---|
1867 | Add(voitto); |
---|
1868 | } |
---|
1869 | if (pallow == pallo) |
---|
1870 | { |
---|
1871 | Label voitto2 = new Label("The blue ball wins!"); |
---|
1872 | voitto2.Color = Color.White; |
---|
1873 | voitto2.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 5000); |
---|
1874 | voitto2.Position = new Vector(0, 100); |
---|
1875 | voitto2.Size = new Vector(300, 50); |
---|
1876 | Add(voitto2); |
---|
1877 | } |
---|
1878 | } |
---|
1879 | void toplista() |
---|
1880 | { |
---|
1881 | HighScoreWindow topIkkuna = new HighScoreWindow( |
---|
1882 | "The best survivors", |
---|
1883 | "Congrats, you made it to the top list with points %p, please enter your nic.", |
---|
1884 | topZombeissa, pallo.Pistemittari.Value); |
---|
1885 | topIkkuna.Closed += TallennaPisteet; |
---|
1886 | Add( topIkkuna ); |
---|
1887 | } |
---|
1888 | void TallennaPisteet(Window sender) |
---|
1889 | { |
---|
1890 | DataStorage.Save<ScoreList>(topZombeissa, "pisteet.xml"); |
---|
1891 | } |
---|
1892 | } |
---|