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 | public class Pelaaja : PhysicsObject |
---|
10 | { |
---|
11 | public DoubleMeter elamaMittari; |
---|
12 | public DoubleMeter turbomittari; |
---|
13 | public DoubleMeter Ammusmittari; |
---|
14 | public DoubleMeter Pistemittari; |
---|
15 | public double Latausnopeus; |
---|
16 | public double Latapati; |
---|
17 | public bool lataamassa = false; |
---|
18 | public bool Recoil = false; |
---|
19 | public double liikkumisnopeus; |
---|
20 | public DoubleMeter Pisteputki; |
---|
21 | public Explosion Viimeisinrajahdus = null; |
---|
22 | public double Ampumisnopeus; |
---|
23 | public double Combo = 1; |
---|
24 | public String Asekuva; |
---|
25 | public string Ase; |
---|
26 | public Vector viimeisinSuunta = Vector.Zero; |
---|
27 | |
---|
28 | |
---|
29 | |
---|
30 | public Pelaaja(double leveys, double korkeus) |
---|
31 | : base(leveys, korkeus) |
---|
32 | { |
---|
33 | elamaMittari = new DoubleMeter(500, 0, 500); |
---|
34 | turbomittari = new DoubleMeter(50, 0, 100); |
---|
35 | Ammusmittari = new DoubleMeter(250, 0, 250); |
---|
36 | Pistemittari = new DoubleMeter(0, 0, 3000); |
---|
37 | Pisteputki = new DoubleMeter(0, 0, 10); |
---|
38 | Ampumisnopeus = 512; |
---|
39 | Ase = "Heavy"; |
---|
40 | Asekuva = "HMG"; |
---|
41 | Latausnopeus = 6.0; |
---|
42 | Latapati = 250; |
---|
43 | liikkumisnopeus = 155; |
---|
44 | } |
---|
45 | } |
---|
46 | |
---|
47 | public class FromAbove : PhysicsGame |
---|
48 | { |
---|
49 | Pelaaja pallo; |
---|
50 | Pelaaja pallo2; |
---|
51 | Vector spawni; |
---|
52 | Vector spawni2; |
---|
53 | |
---|
54 | Vector siirtyma = new Vector(0, 130); |
---|
55 | List<Vector> kultaLista = new List<Vector>(); |
---|
56 | |
---|
57 | PhysicsObject alareuna; |
---|
58 | GameObject Sinikuva; |
---|
59 | GameObject Punakuva; |
---|
60 | GameObject Text; |
---|
61 | GameObject Text2; |
---|
62 | PhysicsObject m; |
---|
63 | PhysicsObject n; |
---|
64 | PhysicsObject n2; |
---|
65 | PhysicsObject m2; |
---|
66 | BarGauge elppiPalkki = new BarGauge(50, 150); |
---|
67 | BarGauge elppiPalkki2 = new BarGauge(50, 150); |
---|
68 | BarGauge turboPalkki = new BarGauge(50, 150); |
---|
69 | BarGauge turboPalkki2 = new BarGauge(50, 150); |
---|
70 | BarGauge ammusPalkki = new BarGauge(50, 150); |
---|
71 | BarGauge ammusPalkki2 = new BarGauge(50, 150); |
---|
72 | BarGauge pistePalkki = new BarGauge(150, 40); |
---|
73 | BarGauge pistePalkkib = new BarGauge(150, 40); |
---|
74 | Image pPallo = LoadImage("Punapallo"); |
---|
75 | Image sPallo = LoadImage("Sinipallo"); |
---|
76 | Image sPati = LoadImage("Punapati"); |
---|
77 | Image Boom = LoadImage("Boom!++++++"); |
---|
78 | Image pPati = LoadImage("Sinipati"); |
---|
79 | Image kransu = LoadImage("kransu"); |
---|
80 | Image Sydan = LoadImage("Heart"); |
---|
81 | Image salama = LoadImage("Lightning"); |
---|
82 | Image Shotgun = LoadImage("Striker"); |
---|
83 | Image Famas = LoadImage("Famas"); |
---|
84 | Image Caliber = LoadImage("Caliber 89"); |
---|
85 | Image Ak47u = LoadImage("Aku"); |
---|
86 | Image Sniper = LoadImage("Barret"); |
---|
87 | Image Light = LoadImage("Light"); |
---|
88 | Image HMG = LoadImage("HMG"); |
---|
89 | Image tausta = LoadImage("Hpboost"); |
---|
90 | Image tausta2 = LoadImage("Hpboost2"); |
---|
91 | Image MGH = LoadImage("Dragunov"); |
---|
92 | Image Spas = LoadImage("Spas12"); |
---|
93 | Image kulta = LoadImage("Kulta"); |
---|
94 | bool Kenttalad; |
---|
95 | |
---|
96 | public override void Begin() |
---|
97 | { |
---|
98 | Kenttalad = false; |
---|
99 | |
---|
100 | |
---|
101 | |
---|
102 | |
---|
103 | //Kirjoita ohjelmakoodisi tähän |
---|
104 | |
---|
105 | |
---|
106 | pallo = Luopallo(Color.Blue, Level.Left + 20, Level.Top - 50); |
---|
107 | pallo2 = Luopallo(Color.Red, Level.Right - 20, Level.Top - 50); |
---|
108 | pallo.Image = sPallo; |
---|
109 | pallo2.Image = pPallo; |
---|
110 | |
---|
111 | |
---|
112 | Level.Background.CreateGradient(Color.Black, Color.White); |
---|
113 | |
---|
114 | |
---|
115 | Luokentta(); |
---|
116 | Liikkeet(); |
---|
117 | Luoajastin(); |
---|
118 | Kutsuvalikko(); |
---|
119 | |
---|
120 | } |
---|
121 | |
---|
122 | Pelaaja Luopallo(Color vari, double x, double y) |
---|
123 | { |
---|
124 | Pelaaja pallo = new Pelaaja(25, 25); |
---|
125 | pallo.elamaMittari.LowerLimit += delegate { Pelaajakuoli(pallo); }; |
---|
126 | pallo.Pistemittari.UpperLimit += delegate { Maxpointsreached(pallo); }; |
---|
127 | pallo.Shape = Shape.Circle; |
---|
128 | pallo.Restitution = 0.0; |
---|
129 | pallo.X = x; |
---|
130 | pallo.Y = y; |
---|
131 | pallo.CanRotate = false; |
---|
132 | pallo.Tag = "pallo"; |
---|
133 | pallo.Color = vari; |
---|
134 | Add(pallo); |
---|
135 | AddCollisionHandler(pallo, "Kulta", Kullankerays); |
---|
136 | return pallo; |
---|
137 | } |
---|
138 | |
---|
139 | void Luoajastin() |
---|
140 | { |
---|
141 | Timer ajastin = new Timer(); |
---|
142 | ajastin.Interval = 1.0; |
---|
143 | ajastin.Timeout += delegate { pallo.turbomittari.Value += 5; }; |
---|
144 | ajastin.Timeout += delegate { pallo2.turbomittari.Value += 5; }; |
---|
145 | ajastin.Start(); |
---|
146 | } |
---|
147 | |
---|
148 | void Luokentta() |
---|
149 | { |
---|
150 | Surface vasenReuna = Surface.CreateLeft(Level); |
---|
151 | vasenReuna.Color = Color.DarkBlue; |
---|
152 | Add(vasenReuna); |
---|
153 | Surface oikeaReuna = Surface.CreateRight(Level); |
---|
154 | oikeaReuna.Color = Color.DarkBlue; |
---|
155 | Add(oikeaReuna); |
---|
156 | Surface ylaReuna = Surface.CreateTop(Level); |
---|
157 | ylaReuna.Color = Color.DarkBlue; |
---|
158 | Add(ylaReuna); |
---|
159 | Surface alaReuna = Surface.CreateBottom(Level); |
---|
160 | alaReuna.Color = Color.DarkBlue; |
---|
161 | Add(alaReuna); |
---|
162 | PhysicsObject alareuna = PhysicsObject.CreateStaticObject(1000, 10); |
---|
163 | alareuna.Color = Color.DarkBlue; |
---|
164 | alareuna.X = 0; |
---|
165 | alareuna.Y = -150; |
---|
166 | Add(alareuna); |
---|
167 | |
---|
168 | PhysicsObject vali = PhysicsObject.CreateStaticObject(10, 290); |
---|
169 | vali.Color = Color.DarkBlue; |
---|
170 | vali.X = 0; |
---|
171 | vali.Y = -300; |
---|
172 | Add(vali); |
---|
173 | |
---|
174 | Sinikuva = new GameObject(HMG); |
---|
175 | Sinikuva.Position = new Vector(-165,-300); |
---|
176 | Add(Sinikuva); |
---|
177 | |
---|
178 | Punakuva = new GameObject(HMG); |
---|
179 | Punakuva.Position = new Vector(165, -300); |
---|
180 | Add(Punakuva); |
---|
181 | |
---|
182 | GameObject Text = new GameObject(tausta); |
---|
183 | Text.Position = new Vector(-399, -190); |
---|
184 | Add(Text); |
---|
185 | |
---|
186 | GameObject Text2 = new GameObject(tausta2); |
---|
187 | Text2.Position = new Vector(399, -190); |
---|
188 | Add(Text2); |
---|
189 | |
---|
190 | elppiPalkki.BindTo(pallo.elamaMittari); |
---|
191 | elppiPalkki.BarColor = Color.Red; |
---|
192 | elppiPalkki.BorderColor = Color.Black; |
---|
193 | elppiPalkki.Position = new Vector(-450, -300); |
---|
194 | Add(elppiPalkki); |
---|
195 | |
---|
196 | elppiPalkki2.BindTo(pallo2.elamaMittari); |
---|
197 | elppiPalkki2.BarColor = Color.Red; |
---|
198 | elppiPalkki2.BorderColor = Color.Black; |
---|
199 | elppiPalkki2.Position = new Vector(350, -300); |
---|
200 | Add(elppiPalkki2); |
---|
201 | |
---|
202 | turboPalkki.BindTo(pallo.turbomittari); |
---|
203 | turboPalkki.BarColor = Color.DarkBlue; |
---|
204 | turboPalkki.BorderColor = Color.Black; |
---|
205 | turboPalkki.Position = new Vector(-400, -300); |
---|
206 | Add(turboPalkki); |
---|
207 | |
---|
208 | turboPalkki2.BindTo(pallo2.turbomittari); |
---|
209 | turboPalkki2.BarColor = Color.DarkBlue; |
---|
210 | turboPalkki2.BorderColor = Color.Black; |
---|
211 | turboPalkki2.Position = new Vector(400, -300); |
---|
212 | Add(turboPalkki2); |
---|
213 | |
---|
214 | ammusPalkki.BindTo(pallo.Ammusmittari); |
---|
215 | ammusPalkki.BarColor = Color.Yellow; |
---|
216 | ammusPalkki.BorderColor = Color.Black; |
---|
217 | ammusPalkki.Position = new Vector(-350, -300); |
---|
218 | Add(ammusPalkki); |
---|
219 | |
---|
220 | ammusPalkki2.BindTo(pallo2.Ammusmittari); |
---|
221 | ammusPalkki2.BarColor = Color.Yellow; |
---|
222 | ammusPalkki2.BorderColor = Color.Black; |
---|
223 | ammusPalkki2.Position = new Vector(450, -300); |
---|
224 | Add(ammusPalkki2); |
---|
225 | |
---|
226 | pistePalkki.BindTo(pallo.Pistemittari); |
---|
227 | pistePalkki.BarColor = Color.DarkBlue; |
---|
228 | pistePalkki.BorderColor = Color.Black; |
---|
229 | pistePalkki.Position = new Vector(-200, -200); |
---|
230 | pistePalkki.Direction = BarGauge.BarDirection.BarHorizontalLeft; |
---|
231 | Add(pistePalkki); |
---|
232 | Label pisteLuku = new Label(); |
---|
233 | pisteLuku.BindTo(pallo.Pistemittari); |
---|
234 | pisteLuku.Position = new Vector(-60, -200); |
---|
235 | Add(pisteLuku); |
---|
236 | |
---|
237 | |
---|
238 | pistePalkkib.BindTo(pallo2.Pistemittari); |
---|
239 | pistePalkkib.BarColor = Color.DarkRed; |
---|
240 | pistePalkkib.BorderColor = Color.Black; |
---|
241 | pistePalkkib.Position = new Vector(200, -200); |
---|
242 | pistePalkkib.Direction = BarGauge.BarDirection.BarHorizontalLeft; |
---|
243 | Add(pistePalkkib); |
---|
244 | Label pisteLukub = new Label(); |
---|
245 | pisteLukub.BindTo(pallo2.Pistemittari); |
---|
246 | pisteLukub.Position = new Vector(60, -200); |
---|
247 | Add(pisteLukub); |
---|
248 | |
---|
249 | |
---|
250 | |
---|
251 | } |
---|
252 | void Liikkeet() |
---|
253 | { |
---|
254 | // Pelaaja 1 |
---|
255 | Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Pelaaja 1 liiku oikealle", pallo, new Vector(pallo.liikkumisnopeus * 1, 0)); |
---|
256 | Keyboard.Listen(Key.D, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
257 | Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, "Pelaaja 1 liiku ylös", pallo, new Vector(0, pallo.liikkumisnopeus * 1)); |
---|
258 | Keyboard.Listen(Key.W, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
259 | Keyboard.Listen(Key.S, ButtonState.Down, Liikuta, "Pelaaja 1 liiku alas", pallo, new Vector(0, -pallo.liikkumisnopeus * 1)); |
---|
260 | Keyboard.Listen(Key.S, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
261 | Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Pelaaja 1 liiku vasemmalle", pallo, new Vector(-pallo.liikkumisnopeus * 1, 0)); |
---|
262 | Keyboard.Listen(Key.A, ButtonState.Released, Liikuta, null, pallo, Vector.Zero); |
---|
263 | Keyboard.Listen(Key.Q, ButtonState.Pressed, Kayta, "Pelaaja 1:Käytä turbo", pallo); |
---|
264 | Keyboard.Listen(Key.U, ButtonState.Pressed, Tayta, "Pelaaja 1:Paranna elamia", pallo); |
---|
265 | Keyboard.Listen(Key.E, ButtonState.Pressed, Lataa, "Pelaaja 1:Lataa ase", pallo); |
---|
266 | Keyboard.Listen(Key.T, ButtonState.Pressed, HKranaatti, "Pelaaja 1:Heita kranaatti", pallo); // heitetään kranaatti siihen suuntaan mihin on viimeksi liikuttu |
---|
267 | Keyboard.Listen(Key.Y, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(0, 1), pPati); |
---|
268 | Keyboard.Listen(Key.H, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(0, -1), pPati); |
---|
269 | Keyboard.Listen(Key.G, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(-1, 0), pPati); |
---|
270 | Keyboard.Listen(Key.J, ButtonState.Down, Ammu, "Pelaaja 1: ammu", pallo, new Vector(1, 0), pPati); |
---|
271 | |
---|
272 | // Pelaaja 2 |
---|
273 | Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Pelaaja 2 liiku oikealle", pallo2, new Vector(pallo2.liikkumisnopeus * 1, 0)); |
---|
274 | Keyboard.Listen(Key.Right, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
275 | Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Pelaaja 2 liiku ylös", pallo2, new Vector(0, pallo2.liikkumisnopeus * 1)); |
---|
276 | Keyboard.Listen(Key.Up, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
277 | Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Pelaaja 2 liiku alas", pallo2, new Vector(0, -pallo2.liikkumisnopeus * 1)); |
---|
278 | Keyboard.Listen(Key.Down, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
279 | Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Pelaaja 2 liiku vasemmalle", pallo2, new Vector(-pallo2.liikkumisnopeus * 1, 0)); |
---|
280 | Keyboard.Listen(Key.Left, ButtonState.Released, Liikuta, null, pallo2, Vector.Zero); |
---|
281 | Keyboard.Listen(Key.RightControl, ButtonState.Pressed, Kayta, "Pelaaja 2:Käytä turbo", pallo2); |
---|
282 | Keyboard.Listen(Key.NumPad9, ButtonState.Pressed, Tayta, "Pelaaja 2:Paranna elamia", pallo2); |
---|
283 | Keyboard.Listen(Key.NumPad2, ButtonState.Pressed, Lataa, "Pelaaja 2:Lataa ase", pallo2); |
---|
284 | Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, HKranaatti, "Pelaaja 2:Heita kranaatti", pallo2); |
---|
285 | Keyboard.Listen(Key.NumPad8, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(0, 1), sPati); |
---|
286 | Keyboard.Listen(Key.NumPad5, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(0, -1), sPati); |
---|
287 | Keyboard.Listen(Key.NumPad4, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(-1, 0), sPati); |
---|
288 | Keyboard.Listen(Key.NumPad6, ButtonState.Down, Ammu, "Pelaaja 2: ammu", pallo2, new Vector(1, 0), sPati); |
---|
289 | |
---|
290 | //General |
---|
291 | |
---|
292 | Keyboard.Listen(Key.P, ButtonState.Pressed,Kutsuvalikko,"Vaihda aseita"); |
---|
293 | |
---|
294 | } |
---|
295 | void Ammu(Pelaaja pallo, Vector suunta, Image P) |
---|
296 | { |
---|
297 | if (pallo.IsDestroyed) return; |
---|
298 | if (pallo.Ammusmittari < 1) return; |
---|
299 | if (pallo.Recoil == true) return; |
---|
300 | |
---|
301 | PhysicsObject ammus = new PhysicsObject(4, 4); |
---|
302 | ammus.Position = pallo.Position + suunta * 25; |
---|
303 | ammus.Image = P; |
---|
304 | ammus.Restitution = 0.0; |
---|
305 | pallo.Ammusmittari.Value -= 1; |
---|
306 | ammus.Velocity = suunta * pallo.Ampumisnopeus; |
---|
307 | AddCollisionHandler(ammus, "tuhottava", AmmusOsui); |
---|
308 | AddCollisionHandler(ammus, CollisionHandler.DestroyObject); |
---|
309 | Add(ammus); |
---|
310 | ammus.Tag = "ammus"; |
---|
311 | |
---|
312 | double vahinko = 0; |
---|
313 | |
---|
314 | if (pallo.Ase == "Heavy") |
---|
315 | { |
---|
316 | |
---|
317 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 700); |
---|
318 | vahinko = 9; |
---|
319 | } |
---|
320 | if (pallo.Ase == "Famas") |
---|
321 | { |
---|
322 | |
---|
323 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 190); |
---|
324 | pallo.Recoil = true; |
---|
325 | vahinko = 23; |
---|
326 | Timer.SingleShot(0.03, delegate |
---|
327 | { |
---|
328 | pallo.Recoil = false; |
---|
329 | }); |
---|
330 | |
---|
331 | |
---|
332 | } |
---|
333 | if (pallo.Ase == "LMG Type") |
---|
334 | { |
---|
335 | |
---|
336 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 500); |
---|
337 | pallo.Recoil = true; |
---|
338 | vahinko =14; |
---|
339 | Timer.SingleShot(0.01, delegate |
---|
340 | { |
---|
341 | pallo.Recoil = false; |
---|
342 | }); |
---|
343 | |
---|
344 | |
---|
345 | } |
---|
346 | if (pallo.Ase == "Dragunov") |
---|
347 | { |
---|
348 | pallo.Recoil = true; |
---|
349 | vahinko = 139; |
---|
350 | Timer.SingleShot(0.4, delegate |
---|
351 | { |
---|
352 | pallo.Recoil = false; |
---|
353 | }); |
---|
354 | |
---|
355 | } |
---|
356 | if (pallo.Ase == "Barret") |
---|
357 | { |
---|
358 | vahinko = 298; |
---|
359 | } |
---|
360 | |
---|
361 | if (pallo.Ase == "Ak") |
---|
362 | { |
---|
363 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 600); |
---|
364 | pallo.Recoil = true; |
---|
365 | vahinko = 13; |
---|
366 | Timer.SingleShot(0.01, delegate |
---|
367 | { |
---|
368 | pallo.Recoil = false; |
---|
369 | }); |
---|
370 | } |
---|
371 | if (pallo.Ase == "Cal89") |
---|
372 | { |
---|
373 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 500); |
---|
374 | pallo.Recoil = true; |
---|
375 | vahinko = 26; |
---|
376 | Timer.SingleShot(0.1, delegate |
---|
377 | { |
---|
378 | pallo.Recoil = false; |
---|
379 | }); |
---|
380 | } |
---|
381 | if (pallo.Ase == "Spas") |
---|
382 | { |
---|
383 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 100); |
---|
384 | pallo.Recoil = true; |
---|
385 | vahinko = 219; |
---|
386 | Timer.SingleShot(0.5, delegate |
---|
387 | { |
---|
388 | pallo.Recoil = false; |
---|
389 | }); |
---|
390 | } |
---|
391 | |
---|
392 | |
---|
393 | if (pallo.Ase == "Shotgun") |
---|
394 | { |
---|
395 | ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 100); |
---|
396 | pallo.Recoil = true; |
---|
397 | vahinko = 90; |
---|
398 | Timer.SingleShot(0.4, delegate |
---|
399 | { |
---|
400 | pallo.Recoil = false; |
---|
401 | }); |
---|
402 | |
---|
403 | |
---|
404 | PhysicsObject hauli = new PhysicsObject(4, 4); |
---|
405 | hauli.Position = pallo.Position + suunta * 25; |
---|
406 | hauli.Image = P; |
---|
407 | hauli.Tag = "ammus"; |
---|
408 | hauli.Restitution = 0.0; |
---|
409 | hauli.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 70); |
---|
410 | AddCollisionHandler(hauli, "tuhottava", AmmusOsui); |
---|
411 | AddCollisionHandler(hauli, CollisionHandler.DestroyObject); |
---|
412 | Add(hauli); |
---|
413 | hauli.Velocity = suunta * pallo.Ampumisnopeus; |
---|
414 | hauli.Velocity = Vector.FromLengthAndAngle(suunta.Magnitude, suunta.Angle + Angle.FromDegrees(-20)) * pallo.Ampumisnopeus; |
---|
415 | AddCollisionHandler(hauli, "pallo", delegate(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
416 | { |
---|
417 | Pelaaja kohdepelaaja = (Pelaaja)kohde; |
---|
418 | kohdepelaaja.elamaMittari.Value -= vahinko; |
---|
419 | pallo.Pistemittari.Value += vahinko; |
---|
420 | |
---|
421 | }); |
---|
422 | |
---|
423 | PhysicsObject hauli2 = new PhysicsObject(4, 4); |
---|
424 | hauli2.Position = pallo.Position + suunta * 25; |
---|
425 | hauli2.Image = P; |
---|
426 | hauli2.Tag = "ammus"; |
---|
427 | hauli2.Restitution = 0.0; |
---|
428 | hauli2.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 70); |
---|
429 | AddCollisionHandler(hauli2, "tuhottava", AmmusOsui); |
---|
430 | AddCollisionHandler(hauli2, CollisionHandler.DestroyObject); |
---|
431 | Add(hauli2); |
---|
432 | |
---|
433 | hauli2.Velocity = Vector.FromLengthAndAngle(suunta.Magnitude, suunta.Angle + Angle.FromDegrees(20)) * pallo.Ampumisnopeus; |
---|
434 | AddCollisionHandler(hauli2, "pallo", delegate(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
435 | { |
---|
436 | Pelaaja kohdepelaaja = (Pelaaja)kohde; |
---|
437 | kohdepelaaja.elamaMittari.Value -= vahinko; |
---|
438 | pallo.Pistemittari.Value += vahinko; |
---|
439 | |
---|
440 | }); |
---|
441 | } |
---|
442 | AddCollisionHandler(ammus, "pallo", delegate(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
443 | { |
---|
444 | Pelaaja kohdepelaaja = (Pelaaja)kohde; |
---|
445 | kohdepelaaja.elamaMittari.Value -= vahinko; |
---|
446 | pallo.Pistemittari.Value += vahinko * pallo.Combo; |
---|
447 | }); |
---|
448 | } |
---|
449 | void Liikuta(Pelaaja pallo, Vector suunta) |
---|
450 | { |
---|
451 | // pallo.Velocity = suunta; |
---|
452 | if (suunta.Magnitude != 0) |
---|
453 | { |
---|
454 | pallo.Velocity = Vector.ComponentProduct(suunta.Normalize(), new Vector(pallo.liikkumisnopeus, pallo.liikkumisnopeus)); |
---|
455 | pallo.viimeisinSuunta = Vector.ComponentProduct(suunta.Normalize(), new Vector(pallo.liikkumisnopeus, pallo.liikkumisnopeus)); |
---|
456 | return; |
---|
457 | } |
---|
458 | pallo.Velocity = suunta; |
---|
459 | pallo.viimeisinSuunta = suunta; |
---|
460 | } |
---|
461 | |
---|
462 | void Luoseina(Vector paikka, double leveys, double korkeus) |
---|
463 | { |
---|
464 | PhysicsObject m = PhysicsObject.CreateStaticObject(leveys, korkeus); |
---|
465 | m.Shape = Shape.Rectangle; |
---|
466 | m.Position = paikka + siirtyma; |
---|
467 | m.Color = Color.DarkBlue; |
---|
468 | Add(m); |
---|
469 | } |
---|
470 | |
---|
471 | void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) |
---|
472 | { |
---|
473 | kohde.Destroy(); |
---|
474 | } |
---|
475 | void Kayta(Pelaaja p) |
---|
476 | { |
---|
477 | if (p.turbomittari > 99) |
---|
478 | { |
---|
479 | ExplosionSystem ss = new ExplosionSystem(salama, 100); |
---|
480 | ss.MaxScale = 30; |
---|
481 | ss.MinScale = 20; |
---|
482 | ss.MaxVelocity = 150; |
---|
483 | ss.MaxLifetime = 0.5; |
---|
484 | ss.MinRotation = 0.0; |
---|
485 | ss.MaxRotation = 365.0; |
---|
486 | ss.MinRotationSpeed = 2.0; |
---|
487 | |
---|
488 | Add(ss); |
---|
489 | ss.AddEffect(p.Position, 50); |
---|
490 | p.liikkumisnopeus = p.liikkumisnopeus * 2; |
---|
491 | p.turbomittari.Value = 0.0; |
---|
492 | Timer.SingleShot(5.0, delegate { p.liikkumisnopeus = p.liikkumisnopeus / 2; }); |
---|
493 | |
---|
494 | } |
---|
495 | } |
---|
496 | |
---|
497 | void Lataa(Pelaaja x) |
---|
498 | { |
---|
499 | if (!x.lataamassa) |
---|
500 | { |
---|
501 | x.lataamassa = true; |
---|
502 | x.Ammusmittari.Value = 0; |
---|
503 | Timer.SingleShot(x.Latausnopeus, delegate { x.Ammusmittari.Value += x.Latapati; x.lataamassa = false; }); |
---|
504 | } |
---|
505 | } |
---|
506 | |
---|
507 | void Luopelikentta() |
---|
508 | { |
---|
509 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Testikartta DM"); |
---|
510 | |
---|
511 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
512 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
513 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
514 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
515 | |
---|
516 | ruudut.Execute(35, 35); |
---|
517 | } |
---|
518 | |
---|
519 | void Syntyykokulta() |
---|
520 | { |
---|
521 | int paikka = RandomGen.NextInt(kultaLista.Count); |
---|
522 | Spawnkulta(paikka); |
---|
523 | } |
---|
524 | |
---|
525 | void Luopelikentta2() |
---|
526 | { ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Yang DM"); |
---|
527 | |
---|
528 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
529 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
530 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
531 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
532 | |
---|
533 | ruudut.Execute(35, 35); |
---|
534 | } |
---|
535 | void Luopelikentta3() |
---|
536 | { |
---|
537 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Testikartta"); |
---|
538 | |
---|
539 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
540 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
541 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
542 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
543 | ruudut.SetTileMethod(Color.FromHexCode("#FFE14F"), Luokultapaikka); |
---|
544 | |
---|
545 | Timer ajastin = new Timer(); |
---|
546 | ajastin.Interval = 3.0; |
---|
547 | ajastin.Timeout += Syntyykokulta; |
---|
548 | ajastin.Start(); |
---|
549 | |
---|
550 | ruudut.Execute(35, 35); |
---|
551 | } |
---|
552 | void Luopelikentta4() |
---|
553 | { |
---|
554 | ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Yang"); |
---|
555 | |
---|
556 | ruudut.SetTileMethod(Color.White, Luomaa); |
---|
557 | ruudut.SetTileMethod(Color.Black, Luoseina); |
---|
558 | ruudut.SetTileMethod(Color.FromHexCode("#0026FF"), setspawn2); |
---|
559 | ruudut.SetTileMethod(Color.FromHexCode("#FF0000"), setspawn1); |
---|
560 | ruudut.SetTileMethod(Color.FromHexCode("#FFE14F"), Luokultapaikka); |
---|
561 | |
---|
562 | Timer ajastin = new Timer(); |
---|
563 | ajastin.Interval = 3.0; |
---|
564 | ajastin.Timeout += Syntyykokulta; |
---|
565 | ajastin.Start(); |
---|
566 | |
---|
567 | ruudut.Execute(35, 35); |
---|
568 | } |
---|
569 | |
---|
570 | //Valikot!!!! |
---|
571 | void Kutsuvalikko() |
---|
572 | { |
---|
573 | MultiSelectWindow alkuv = new MultiSelectWindow("Welcome", "Start game/Continue", "Game settings", "Player 1 weapon", "Player 2 weapon","Under work", "Quit"); |
---|
574 | alkuv.ItemSelected += PainettiinValikonNappia; |
---|
575 | alkuv.Color = Color.MediumBlue; |
---|
576 | Add(alkuv); |
---|
577 | } |
---|
578 | void PainettiinValikonNappia(int valinta) |
---|
579 | { |
---|
580 | switch (valinta) |
---|
581 | { |
---|
582 | case 0: |
---|
583 | //Sulje ikkuna,Pelaa norm.asetuksilla |
---|
584 | break; |
---|
585 | case 1: |
---|
586 | Gasetukset(); |
---|
587 | //Kartta |
---|
588 | break; |
---|
589 | case 2: |
---|
590 | Asetukset1(); |
---|
591 | //Pelaajan 1 asevalinta |
---|
592 | break; |
---|
593 | case 3: |
---|
594 | Asetukset2(); |
---|
595 | //Pelaajan 2 asevalinta |
---|
596 | break; |
---|
597 | case 4: |
---|
598 | if (m != null) |
---|
599 | m.Destroy(); |
---|
600 | if (n != null) |
---|
601 | n.Destroy(); |
---|
602 | Kutsuvalikko(); |
---|
603 | break; |
---|
604 | case 5: |
---|
605 | Exit(); |
---|
606 | break; |
---|
607 | } |
---|
608 | |
---|
609 | } |
---|
610 | void Asetukset1() |
---|
611 | { |
---|
612 | MultiSelectWindow p1 = new MultiSelectWindow("Choose your gun", |
---|
613 | "Sniper rifle", "Assault rifle", "Heavy machine gun", "Shotgun", "Light machine gun", "Back"); |
---|
614 | p1.Color = Color.MediumBlue; |
---|
615 | p1.ItemSelected += PVN1; |
---|
616 | Add(p1); |
---|
617 | } |
---|
618 | void Asetukset2() |
---|
619 | { |
---|
620 | MultiSelectWindow p2 = new MultiSelectWindow("Choose your gun", |
---|
621 | "Sniper rifle", "Assault rifle", "Heavy machine gun", "Shotgun", "Light machine gun", "Back"); |
---|
622 | p2.Color = Color.Ruby; |
---|
623 | p2.ItemSelected += PVN2; |
---|
624 | Add(p2); |
---|
625 | } |
---|
626 | void PVN1(int s) |
---|
627 | { |
---|
628 | switch (s) |
---|
629 | { |
---|
630 | case 0: |
---|
631 | pallo.Ase = "Sniper"; |
---|
632 | Sni(); |
---|
633 | break; |
---|
634 | case 1: |
---|
635 | As(); |
---|
636 | break; |
---|
637 | case 2: |
---|
638 | pallo.Ase = "Heavy"; |
---|
639 | pallo.Ampumisnopeus = 512; |
---|
640 | pallo.Ammusmittari.MaxValue = 400; |
---|
641 | pallo.Ammusmittari.Value = 400; |
---|
642 | pallo.Latausnopeus = 6.0; |
---|
643 | pallo.Latapati = 400; |
---|
644 | pallo.Asekuva = "HMG"; |
---|
645 | Sinikuva.Image = HMG; |
---|
646 | Kutsuvalikko(); |
---|
647 | break; |
---|
648 | case 3: |
---|
649 | sho(); |
---|
650 | break; |
---|
651 | case 4: |
---|
652 | LMG(); |
---|
653 | break; |
---|
654 | case 5: |
---|
655 | Kutsuvalikko(); |
---|
656 | //Palaa takaisin |
---|
657 | break; |
---|
658 | } |
---|
659 | } |
---|
660 | void PVN2(int s) |
---|
661 | { |
---|
662 | switch (s) |
---|
663 | { |
---|
664 | case 0: |
---|
665 | Snib(); |
---|
666 | break; |
---|
667 | case 1: |
---|
668 | Asb(); |
---|
669 | break; |
---|
670 | case 2: |
---|
671 | pallo2.Ase = "Heavy"; |
---|
672 | pallo2.Ampumisnopeus = 512; |
---|
673 | pallo2.Ammusmittari.MaxValue = 400; |
---|
674 | pallo2.Ammusmittari.Value = 400; |
---|
675 | pallo2.Latausnopeus = 6.0; |
---|
676 | pallo2.Latapati = 400; |
---|
677 | pallo2.Asekuva = "HMG2"; |
---|
678 | Punakuva.Image = HMG; |
---|
679 | Kutsuvalikko(); |
---|
680 | break; |
---|
681 | case 3: |
---|
682 | shob(); |
---|
683 | break; |
---|
684 | case 4: |
---|
685 | LMGb(); |
---|
686 | break; |
---|
687 | case 5: |
---|
688 | Kutsuvalikko(); |
---|
689 | //Palaa takaisin |
---|
690 | break; |
---|
691 | } |
---|
692 | } |
---|
693 | void Gasetukset() |
---|
694 | { |
---|
695 | MultiSelectWindow a1 = new MultiSelectWindow("Maps:", |
---|
696 | "Caves DM", "Yin DM", "Caves Gold rush","Yin Gold rush","exit"); |
---|
697 | a1.Color = Color.Azure; |
---|
698 | a1.ItemSelected += PVN3; |
---|
699 | Add(a1); |
---|
700 | } |
---|
701 | void PVN3(int Valinta) |
---|
702 | { |
---|
703 | if (Kenttalad == true) return; |
---|
704 | //Estaa Kenttien synnyn paallekkain |
---|
705 | |
---|
706 | switch (Valinta) |
---|
707 | { |
---|
708 | case 0: |
---|
709 | //Caves-dm |
---|
710 | Luopelikentta(); |
---|
711 | Kenttalad = true; |
---|
712 | Gasetukset3(); |
---|
713 | break; |
---|
714 | case 1: |
---|
715 | //yin-dm |
---|
716 | Luopelikentta2(); |
---|
717 | Kenttalad = true; |
---|
718 | Gasetukset3(); |
---|
719 | break; |
---|
720 | case 2: |
---|
721 | //caves-goru |
---|
722 | Luopelikentta3(); |
---|
723 | Kenttalad = true; |
---|
724 | Gasetukset3(); |
---|
725 | break; |
---|
726 | case 3: |
---|
727 | //yin-goru |
---|
728 | Luopelikentta4(); |
---|
729 | Kenttalad = true; |
---|
730 | Gasetukset3(); |
---|
731 | break; |
---|
732 | case 4: |
---|
733 | Kutsuvalikko(); |
---|
734 | break; |
---|
735 | } |
---|
736 | |
---|
737 | |
---|
738 | } |
---|
739 | |
---|
740 | void Gasetukset3() |
---|
741 | { |
---|
742 | MultiSelectWindow a1 = new MultiSelectWindow("Points limit","1000", "3000","5000","10000","15000", "Back"); |
---|
743 | a1.Color = Color.Azure; |
---|
744 | a1.ItemSelected += PVN33; |
---|
745 | Add(a1); |
---|
746 | } |
---|
747 | void PVN33(int Valinta) |
---|
748 | { |
---|
749 | switch (Valinta) |
---|
750 | { |
---|
751 | case 0: |
---|
752 | pallo.Pistemittari.MaxValue = 1000; |
---|
753 | pallo2.Pistemittari.MaxValue = 1000; |
---|
754 | Kutsuvalikko(); |
---|
755 | break; |
---|
756 | case 1: |
---|
757 | pallo.Pistemittari.MaxValue = 3000; |
---|
758 | pallo2.Pistemittari.MaxValue = 3000; |
---|
759 | Kutsuvalikko(); |
---|
760 | break; |
---|
761 | case 2: |
---|
762 | pallo.Pistemittari.MaxValue = 5000; |
---|
763 | pallo2.Pistemittari.MaxValue = 5000; |
---|
764 | Kutsuvalikko(); |
---|
765 | break; |
---|
766 | case 3: |
---|
767 | pallo.Pistemittari.MaxValue = 10000; |
---|
768 | pallo2.Pistemittari.MaxValue = 10000; |
---|
769 | Kutsuvalikko(); |
---|
770 | break; |
---|
771 | case 4: |
---|
772 | pallo.Pistemittari.MaxValue = 15000; |
---|
773 | pallo2.Pistemittari.MaxValue = 15000; |
---|
774 | Kutsuvalikko(); |
---|
775 | break; |
---|
776 | case 5: |
---|
777 | Kutsuvalikko(); |
---|
778 | break; |
---|
779 | } |
---|
780 | |
---|
781 | |
---|
782 | } |
---|
783 | //Light machine gun valikot |
---|
784 | void LMG() |
---|
785 | { |
---|
786 | MultiSelectWindow LMG = new MultiSelectWindow("Light machine guns", "Famas", "LMG Type `95","Back"); |
---|
787 | LMG.Color = Color.MediumBlue; |
---|
788 | LMG.ItemSelected += LMG2; |
---|
789 | Add(LMG); |
---|
790 | } |
---|
791 | void LMGb() |
---|
792 | { |
---|
793 | MultiSelectWindow LMG = new MultiSelectWindow("Light machine guns", "Famas", "LMG Type `95", "Back"); |
---|
794 | LMG.Color = Color.Ruby; |
---|
795 | LMG.ItemSelected += LMG2b; |
---|
796 | Add(LMG); |
---|
797 | } |
---|
798 | void LMG2(int s) |
---|
799 | { |
---|
800 | switch (s) |
---|
801 | { |
---|
802 | |
---|
803 | case 0: |
---|
804 | pallo.Ase = "Famas"; |
---|
805 | pallo.Ampumisnopeus = 1024; |
---|
806 | pallo.Ammusmittari.MaxValue = 100; |
---|
807 | pallo.Ammusmittari.Value = 100; |
---|
808 | pallo.Latausnopeus = 1.9; |
---|
809 | pallo.Latapati = 100; |
---|
810 | pallo.Asekuva = "Famas2"; |
---|
811 | Sinikuva.Image = Famas; |
---|
812 | Kutsuvalikko(); |
---|
813 | break; |
---|
814 | case 1: |
---|
815 | pallo.Ase = "LMG Type"; |
---|
816 | pallo.Ampumisnopeus = 448; |
---|
817 | pallo.Ammusmittari.MaxValue = 400; |
---|
818 | pallo.Ammusmittari.Value = 400; |
---|
819 | pallo.Latausnopeus = 5.0; |
---|
820 | pallo.Latapati = 400; |
---|
821 | pallo.Asekuva = "Light2"; |
---|
822 | Sinikuva.Image = Light; |
---|
823 | Kutsuvalikko(); |
---|
824 | break; |
---|
825 | case 2: |
---|
826 | Asetukset1(); |
---|
827 | break; |
---|
828 | } |
---|
829 | } |
---|
830 | void LMG2b(int s) |
---|
831 | { |
---|
832 | switch (s) |
---|
833 | { |
---|
834 | |
---|
835 | case 0: |
---|
836 | pallo2.Ase = "Famas"; |
---|
837 | pallo2.Ampumisnopeus = 1024; |
---|
838 | pallo2.Ammusmittari.MaxValue = 100; |
---|
839 | pallo2.Ammusmittari.Value = 100; |
---|
840 | pallo2.Latausnopeus = 1.9; |
---|
841 | pallo2.Latapati = 100; |
---|
842 | pallo2.Asekuva = "Famas2"; |
---|
843 | Punakuva.Image = Famas; |
---|
844 | Kutsuvalikko(); |
---|
845 | break; |
---|
846 | case 1: |
---|
847 | pallo2.Ase = "LMG Type"; |
---|
848 | pallo2.Ampumisnopeus = 448; |
---|
849 | pallo2.Ammusmittari.MaxValue = 400; |
---|
850 | pallo2.Ammusmittari.Value = 400; |
---|
851 | pallo2.Latausnopeus = 5.0; |
---|
852 | pallo2.Latapati = 400; |
---|
853 | pallo2.Asekuva = "Light2"; |
---|
854 | Punakuva.Image = Light; |
---|
855 | Kutsuvalikko(); |
---|
856 | break; |
---|
857 | case 2: |
---|
858 | Asetukset2(); |
---|
859 | break; |
---|
860 | } |
---|
861 | } |
---|
862 | //Assault Riflet |
---|
863 | void As() |
---|
864 | { |
---|
865 | MultiSelectWindow As = new MultiSelectWindow("Assault rifles", "Ak-47u", "Caliber `89", "Back"); |
---|
866 | As.Color = Color.MediumBlue; |
---|
867 | As.ItemSelected += As2; |
---|
868 | Add(As); |
---|
869 | } |
---|
870 | void As2(int s) |
---|
871 | { |
---|
872 | switch (s) |
---|
873 | { |
---|
874 | |
---|
875 | case 0: |
---|
876 | pallo.Ase = "Ak"; |
---|
877 | pallo.Ampumisnopeus = 890; |
---|
878 | pallo.Ammusmittari.MaxValue = 64; |
---|
879 | pallo.Ammusmittari.Value = 64; |
---|
880 | pallo.Latausnopeus = 0.8; |
---|
881 | pallo.Latapati = 64; |
---|
882 | pallo.Asekuva = "Ak47u2"; |
---|
883 | Sinikuva.Image = Ak47u; |
---|
884 | Kutsuvalikko(); |
---|
885 | break; |
---|
886 | case 1: |
---|
887 | pallo.Ase = "Cal89"; |
---|
888 | pallo.Ampumisnopeus = 1024; |
---|
889 | pallo.Ammusmittari.MaxValue = 25; |
---|
890 | pallo.Ammusmittari.Value = 25; |
---|
891 | pallo.Latausnopeus = 2.1; |
---|
892 | pallo.Latapati = 25; |
---|
893 | pallo.Asekuva = "Caliber2"; |
---|
894 | Sinikuva.Image = Caliber; |
---|
895 | Kutsuvalikko(); |
---|
896 | break; |
---|
897 | case 2: |
---|
898 | Asetukset1(); |
---|
899 | break; |
---|
900 | } |
---|
901 | } |
---|
902 | void Asb() |
---|
903 | { |
---|
904 | MultiSelectWindow As = new MultiSelectWindow("Assault rifles", "Ak-47u", "Caliber `89", "Back"); |
---|
905 | As.Color = Color.Ruby; |
---|
906 | As.ItemSelected += As2b; |
---|
907 | Add(As); |
---|
908 | } |
---|
909 | void As2b(int s) |
---|
910 | { |
---|
911 | switch (s) |
---|
912 | { |
---|
913 | |
---|
914 | case 0: |
---|
915 | pallo2.Ase = "Ak"; |
---|
916 | pallo2.Ampumisnopeus = 890; |
---|
917 | pallo2.Ammusmittari.MaxValue = 64; |
---|
918 | pallo2.Ammusmittari.Value = 64; |
---|
919 | pallo2.Latausnopeus = 0.8; |
---|
920 | pallo2.Latapati = 64; |
---|
921 | pallo2.Asekuva = "Ak47u2"; |
---|
922 | Punakuva.Image = Ak47u; |
---|
923 | Kutsuvalikko(); |
---|
924 | break; |
---|
925 | case 1: |
---|
926 | pallo2.Ase = "Cal89"; |
---|
927 | pallo2.Ampumisnopeus = 1024; |
---|
928 | pallo2.Ammusmittari.MaxValue = 25; |
---|
929 | pallo2.Ammusmittari.Value = 25; |
---|
930 | pallo2.Latausnopeus = 2.1; |
---|
931 | pallo2.Latapati = 25; |
---|
932 | pallo2.Asekuva = "Caliber2"; |
---|
933 | Punakuva.Image = Caliber; |
---|
934 | Kutsuvalikko(); |
---|
935 | break; |
---|
936 | case 2: |
---|
937 | Asetukset2(); |
---|
938 | break; |
---|
939 | } |
---|
940 | } |
---|
941 | //Sniput |
---|
942 | void Sni() |
---|
943 | { |
---|
944 | MultiSelectWindow Sni = new MultiSelectWindow("Sniper rifles", "Dragunov", "L84 Mod.", "Back"); |
---|
945 | Sni.Color = Color.MediumBlue; |
---|
946 | Sni.ItemSelected += Sni2; |
---|
947 | Add(Sni); |
---|
948 | } |
---|
949 | void Sni2(int s) |
---|
950 | { |
---|
951 | switch (s) |
---|
952 | { |
---|
953 | |
---|
954 | case 0: |
---|
955 | pallo.Ase = "Dragunov"; |
---|
956 | pallo.Ampumisnopeus = 1024; |
---|
957 | pallo.Ammusmittari.MaxValue = 11; |
---|
958 | pallo.Ammusmittari.Value = 11; |
---|
959 | pallo.Latausnopeus = 5.3; |
---|
960 | pallo.Latapati = 11; |
---|
961 | Sinikuva.Image = MGH; |
---|
962 | Kutsuvalikko(); |
---|
963 | break; |
---|
964 | case 1: |
---|
965 | pallo.Ase = "Barret"; |
---|
966 | pallo.Ampumisnopeus = 1024; |
---|
967 | pallo.Ammusmittari.MaxValue =1; |
---|
968 | pallo.Ammusmittari.Value =1; |
---|
969 | pallo.Latausnopeus = 2.0; |
---|
970 | pallo.Latapati =1; |
---|
971 | Sinikuva.Image = Sniper; |
---|
972 | Kutsuvalikko(); |
---|
973 | break; |
---|
974 | case 2: |
---|
975 | Asetukset1(); |
---|
976 | break; |
---|
977 | } |
---|
978 | } |
---|
979 | void Snib() |
---|
980 | { |
---|
981 | MultiSelectWindow Sni = new MultiSelectWindow("Sniper rifles", "Dragunov", "L84 Mod.", "Back"); |
---|
982 | Sni.Color = Color.Ruby; |
---|
983 | Sni.ItemSelected += Sni2b; |
---|
984 | Add(Sni); |
---|
985 | } |
---|
986 | void Sni2b(int s) |
---|
987 | { |
---|
988 | switch (s) |
---|
989 | { |
---|
990 | |
---|
991 | case 0: |
---|
992 | pallo2.Ase = "Dragunov"; |
---|
993 | pallo2.Ampumisnopeus = 1024; |
---|
994 | pallo2.Ammusmittari.MaxValue = 11; |
---|
995 | pallo2.Ammusmittari.Value = 11; |
---|
996 | pallo2.Latausnopeus = 5.3; |
---|
997 | pallo2.Latapati = 11; |
---|
998 | Punakuva.Image = MGH; |
---|
999 | Kutsuvalikko(); |
---|
1000 | break; |
---|
1001 | case 1: |
---|
1002 | pallo2.Ase = "Barret"; |
---|
1003 | pallo2.Ampumisnopeus = 1024; |
---|
1004 | pallo2.Ammusmittari.MaxValue = 1; |
---|
1005 | pallo2.Ammusmittari.Value = 1; |
---|
1006 | pallo2.Latausnopeus = 2.0; |
---|
1007 | pallo2.Latapati = 1; |
---|
1008 | Punakuva.Image = Sniper; |
---|
1009 | Kutsuvalikko(); |
---|
1010 | break; |
---|
1011 | case 2: |
---|
1012 | Asetukset2(); |
---|
1013 | break; |
---|
1014 | } |
---|
1015 | } |
---|
1016 | void sho() |
---|
1017 | { |
---|
1018 | MultiSelectWindow Sni = new MultiSelectWindow("Shotguns", "Striker", "Spas12", "Back"); |
---|
1019 | Sni.Color = Color.MediumBlue; |
---|
1020 | Sni.ItemSelected += sho2; |
---|
1021 | Add(Sni); |
---|
1022 | } |
---|
1023 | void sho2(int s) |
---|
1024 | { |
---|
1025 | switch (s) |
---|
1026 | { |
---|
1027 | |
---|
1028 | case 0: |
---|
1029 | pallo.Ase = "Shotgun"; |
---|
1030 | pallo.Ampumisnopeus = 1224; |
---|
1031 | pallo.Ammusmittari.MaxValue = 11; |
---|
1032 | pallo.Ammusmittari.Value = 11; |
---|
1033 | pallo.Latausnopeus = 5.3; |
---|
1034 | pallo.Latapati = 11; |
---|
1035 | Sinikuva.Image = Shotgun; |
---|
1036 | Kutsuvalikko(); |
---|
1037 | break; |
---|
1038 | case 1: |
---|
1039 | pallo.Ase = "Spas"; |
---|
1040 | pallo.Ampumisnopeus = 1224; |
---|
1041 | pallo.Ammusmittari.MaxValue = 2; |
---|
1042 | pallo.Ammusmittari.Value = 2; |
---|
1043 | pallo.Latausnopeus = 1.6; |
---|
1044 | pallo.Latapati = 2; |
---|
1045 | Sinikuva.Image = Spas; |
---|
1046 | Kutsuvalikko(); |
---|
1047 | break; |
---|
1048 | case 2: |
---|
1049 | Asetukset1(); |
---|
1050 | break; |
---|
1051 | } |
---|
1052 | } |
---|
1053 | void shob() |
---|
1054 | { |
---|
1055 | MultiSelectWindow Sni = new MultiSelectWindow("Shotguns", "Striker", "Spas12", "Back"); |
---|
1056 | Sni.Color = Color.Ruby; |
---|
1057 | Sni.ItemSelected += sho2b; |
---|
1058 | Add(Sni); |
---|
1059 | } |
---|
1060 | void sho2b(int s) |
---|
1061 | { |
---|
1062 | switch (s) |
---|
1063 | { |
---|
1064 | case 0: |
---|
1065 | pallo2.Ase = "Shotgun"; |
---|
1066 | pallo2.Ampumisnopeus = 1224; |
---|
1067 | pallo2.Ammusmittari.MaxValue = 11; |
---|
1068 | pallo2.Ammusmittari.Value = 11; |
---|
1069 | pallo2.Latausnopeus = 5.3; |
---|
1070 | pallo2.Latapati = 11; |
---|
1071 | Punakuva.Image = Shotgun; |
---|
1072 | Kutsuvalikko(); |
---|
1073 | break; |
---|
1074 | case 1: |
---|
1075 | pallo2.Ase = "Spas"; |
---|
1076 | pallo2.Ampumisnopeus = 1224; |
---|
1077 | pallo2.Ammusmittari.MaxValue = 2; |
---|
1078 | pallo2.Ammusmittari.Value = 2; |
---|
1079 | pallo2.Latausnopeus = 1.6; |
---|
1080 | pallo2.Latapati = 2; |
---|
1081 | Punakuva.Image = Spas; |
---|
1082 | Kutsuvalikko(); |
---|
1083 | break; |
---|
1084 | case 2: |
---|
1085 | Asetukset2(); |
---|
1086 | break; |
---|
1087 | } |
---|
1088 | } |
---|
1089 | //Respaus |
---|
1090 | void Pelaajakuoli(Pelaaja p) |
---|
1091 | { |
---|
1092 | if (p == pallo) |
---|
1093 | { |
---|
1094 | Remove(pallo); |
---|
1095 | Timer.SingleShot(3.1, delegate |
---|
1096 | { |
---|
1097 | Add(pallo); |
---|
1098 | pallo.Position = spawni; |
---|
1099 | pallo.turbomittari.Value = 100.0; |
---|
1100 | pallo.elamaMittari.Value = 500.0; |
---|
1101 | pallo.Ammusmittari.Value += pallo.Latapati; |
---|
1102 | }); |
---|
1103 | |
---|
1104 | } |
---|
1105 | if (p == pallo2) |
---|
1106 | { |
---|
1107 | Remove(pallo2); |
---|
1108 | Timer.SingleShot(3.1, delegate |
---|
1109 | { |
---|
1110 | Add(pallo2); |
---|
1111 | pallo2.Position =spawni2; |
---|
1112 | pallo2.turbomittari.Value = 100.0; |
---|
1113 | pallo2.elamaMittari.Value = 500.0; |
---|
1114 | pallo2.Ammusmittari.Value += pallo.Latapati; |
---|
1115 | }); |
---|
1116 | } |
---|
1117 | } |
---|
1118 | //Kransu |
---|
1119 | void HKranaatti(Pelaaja Pallo) |
---|
1120 | { |
---|
1121 | if (Pallo.turbomittari < Pallo.turbomittari.MaxValue ) return; |
---|
1122 | Pallo.turbomittari.Value = Pallo.turbomittari.MinValue; |
---|
1123 | |
---|
1124 | PhysicsObject Kransu = new PhysicsObject(20, 20); |
---|
1125 | Kransu.Image = kransu; |
---|
1126 | Add(Kransu); |
---|
1127 | Kransu.Position = Pallo.Position; |
---|
1128 | Kransu.IgnoresCollisionResponse = true; |
---|
1129 | Kransu.Hit(Pallo.viimeisinSuunta*1.4); |
---|
1130 | Kransu.IgnoresExplosions = true; |
---|
1131 | Timer.SingleShot(1.2, delegate |
---|
1132 | { |
---|
1133 | ExplosionSystem es = new ExplosionSystem(Boom, 80); |
---|
1134 | es.Position = Kransu.Position; |
---|
1135 | es.MaxScale = 30; |
---|
1136 | es.MinScale = 30; |
---|
1137 | es.MaxVelocity = 100; |
---|
1138 | Add(es); |
---|
1139 | es.AddEffect(Kransu.Position, 80); |
---|
1140 | Kransu.Destroy(); |
---|
1141 | Explosion es2 = new Explosion(100); |
---|
1142 | es2.Position = Kransu.Position; |
---|
1143 | es2.IsVisible = false; |
---|
1144 | es2.ShockwaveReachesObject += delegate(IPhysicsObject kohde, Vector suunta) { Rajahdusosui(Pallo, kohde, suunta, es2); }; |
---|
1145 | Add(es2); |
---|
1146 | }); |
---|
1147 | } |
---|
1148 | void Rajahdusosui(Pelaaja ampuja, IPhysicsObject kohde, Vector v, Explosion es) |
---|
1149 | { |
---|
1150 | if (!(kohde is Pelaaja)) return; |
---|
1151 | Pelaaja kohdePelaaja = kohde as Pelaaja; |
---|
1152 | if (kohdePelaaja == null) return; |
---|
1153 | if (kohdePelaaja.Viimeisinrajahdus == es) return; |
---|
1154 | double etaisyys = Vector.Distance(kohdePelaaja.Position, es.Position); |
---|
1155 | int damage = (int)Math.Floor(1000 / etaisyys); |
---|
1156 | kohdePelaaja.elamaMittari.Value -= damage; |
---|
1157 | if (ampuja == kohde) return; |
---|
1158 | ampuja.Pistemittari.Value += damage; |
---|
1159 | } |
---|
1160 | void Tayta(Pelaaja p) |
---|
1161 | { |
---|
1162 | if (p.turbomittari < p.turbomittari.MaxValue) return; |
---|
1163 | p.turbomittari.Value = p.turbomittari.MinValue; |
---|
1164 | ExplosionSystem ss = new ExplosionSystem(Sydan, 100); |
---|
1165 | ss.MaxScale = 30; |
---|
1166 | ss.MinScale = 15; |
---|
1167 | ss.MaxVelocity = 40; |
---|
1168 | ss.MaxLifetime = 0.6; |
---|
1169 | Add(ss); |
---|
1170 | ss.AddEffect(p.Position, 15); |
---|
1171 | p.elamaMittari.Value = p.elamaMittari.Value + 150; |
---|
1172 | if (p == pallo) |
---|
1173 | { |
---|
1174 | pallo2.Pistemittari.Value = pallo2.Pistemittari.Value -= 150; |
---|
1175 | } |
---|
1176 | if (p == pallo2) |
---|
1177 | { |
---|
1178 | pallo.Pistemittari.Value = pallo.Pistemittari.Value -= 150; |
---|
1179 | } |
---|
1180 | |
---|
1181 | } |
---|
1182 | void Luomaa(Vector paikka, double leveys, double korkeus) |
---|
1183 | { |
---|
1184 | GameObject maa = new GameObject(leveys, korkeus); |
---|
1185 | maa.Position = paikka + siirtyma; |
---|
1186 | maa.Color = Color.White; |
---|
1187 | Add(maa); |
---|
1188 | } |
---|
1189 | |
---|
1190 | void setspawn2(Vector paikka, double leveys, double korkeus) |
---|
1191 | { |
---|
1192 | Luomaa(paikka,leveys,korkeus); |
---|
1193 | spawni2 = paikka + siirtyma; |
---|
1194 | |
---|
1195 | pallo2.Position = spawni2; |
---|
1196 | } |
---|
1197 | void setspawn1(Vector paikka, double leveys, double korkeus) |
---|
1198 | { |
---|
1199 | Luomaa(paikka,leveys,korkeus); |
---|
1200 | spawni = paikka + siirtyma; |
---|
1201 | pallo.Position = spawni; |
---|
1202 | } |
---|
1203 | |
---|
1204 | void Luokultapaikka(Vector paikka, double leveys, double korkeus) |
---|
1205 | { |
---|
1206 | Luomaa(paikka, leveys, korkeus); |
---|
1207 | kultaLista.Add(paikka + siirtyma); |
---|
1208 | } |
---|
1209 | void Spawnkulta(int numero) |
---|
1210 | { |
---|
1211 | PhysicsObject Kultapala = new PhysicsObject(35, 35); |
---|
1212 | |
---|
1213 | Kultapala.X = kultaLista[numero].X; |
---|
1214 | Kultapala.Y = kultaLista[numero].Y; |
---|
1215 | Kultapala.MaximumLifetime = TimeSpan.FromSeconds(15); |
---|
1216 | Kultapala.Image = kulta; |
---|
1217 | Kultapala.Tag = "Kulta"; |
---|
1218 | |
---|
1219 | |
---|
1220 | Add(Kultapala); |
---|
1221 | } |
---|
1222 | |
---|
1223 | void Kullankerays(PhysicsObject olio,PhysicsObject kulta) |
---|
1224 | { |
---|
1225 | if (olio is Pelaaja) |
---|
1226 | { |
---|
1227 | Pelaaja p = (Pelaaja)olio; |
---|
1228 | p.Pistemittari.Value = p.Pistemittari.Value + 350; |
---|
1229 | kulta.Destroy(); |
---|
1230 | } |
---|
1231 | } |
---|
1232 | |
---|
1233 | void Maxpointsreached(Pelaaja pallow) |
---|
1234 | { |
---|
1235 | if (pallow == pallo2) |
---|
1236 | { |
---|
1237 | Label voitto = new Label("Punainen pallo voittaa pelin"); |
---|
1238 | voitto.Color = Color.White; |
---|
1239 | voitto.MaximumLifetime = new TimeSpan(0, 0, 0, 0, 5000); |
---|
1240 | voitto.Position = new Vector(0,100); |
---|
1241 | voitto.Size = new Vector(300, 50); |
---|
1242 | Add(voitto); |
---|
1243 | Timer.SingleShot(5.0, delegate |
---|
1244 | { |
---|
1245 | pallo.Pistemittari.Value = 0; |
---|
1246 | pallo2.Pistemittari.Value = 0; |
---|
1247 | pallo.Combo = 1; |
---|
1248 | pallo2.Combo = 1; |
---|
1249 | Kutsuvalikko(); |
---|
1250 | }); |
---|
1251 | } |
---|
1252 | if (pallow == pallo) |
---|
1253 | { |
---|
1254 | Label voitto2 = new Label("Sininen pallo voitti pelin"); |
---|
1255 | voitto2.Color = Color.White; |
---|
1256 | voitto2.MaximumLifetime = new TimeSpan (0,0,0,0,5000); |
---|
1257 | voitto2.Position = new Vector(0, 100); |
---|
1258 | voitto2.Size = new Vector(300, 50); |
---|
1259 | Add(voitto2); |
---|
1260 | Timer.SingleShot(5.0, delegate |
---|
1261 | { |
---|
1262 | pallo.Pistemittari.Value = 0; |
---|
1263 | pallo2.Pistemittari.Value = 0; |
---|
1264 | pallo.Combo = 1; |
---|
1265 | pallo2.Combo = 1; |
---|
1266 | Kutsuvalikko(); |
---|
1267 | }); |
---|
1268 | |
---|
1269 | } |
---|
1270 | } |
---|
1271 | } |
---|