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