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