- Timestamp:
- 2015-06-15 13:15:08 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/24/ohjaajat/Dungeon/Dungeon/Dungeon/Dungeon.cs
r6092 r6093 22 22 * - Pahempia vihollisia, joihin ei tehoa piikkiansat 23 23 * vaan pitää ostaa kalliimpia ansoja niitä varten. 24 * - Kultuurihuoneita, jotka tuottavat eriäviä määriä 25 * kultuuria tai kestävät yhden barbaarin iskun. 24 26 */ 25 27 … … 78 80 if (!Active) return; 79 81 80 peli.barbaarit.Remove(barbaari);81 barbaari.Destroy(); 82 barbaari.Tenacity.Value -= ((TrapUpgrade)(huone.Upgrade)).Damage; 83 82 84 peli.Splatter(huone.Position); 83 85 … … 183 185 public Point Location { get; set; } 184 186 187 public IntMeter Tenacity { get; set; } 188 185 189 public Barbaari(double width, double height) 186 : base(width, height)190 : this(width, height, 0, new Image[1]) 187 191 { 188 192 Reitti = new List<Point>(); 193 } 194 195 public Barbaari(double width, double height, int tenacity, Image[] animaatio) : base(width, height) 196 { 197 this.Animation = new Animation (animaatio); 198 this.Tenacity = new IntMeter(tenacity, 0, 2); 199 189 200 } 190 201 } … … 208 219 public Image[] kirvesVihuKuvat = LoadImages2(1, 10, "kirvesvihu/kv{0:0000}"); 209 220 Image[] ansaKuvat; 221 List<Animation> ansaAnimaatiot = new List<Animation>(); 210 222 Image partikkeliKuva = LoadImage("partikkeli"); 211 223 Image taideVeri = LoadImage("taideveri"); … … 217 229 218 230 private Label kierrosIlmaisin; 219 private bool kierrosKaynnissa; 220 public bool KierrosKaynnissa 231 //private bool kierrosKaynnissa; 232 private int kierros; 233 234 public int KierrosKaynnissa 221 235 { 222 236 get 223 237 { 224 return kierros Kaynnissa;238 return kierros; 225 239 } 226 240 set 227 241 { 228 kierros Kaynnissa= value;229 kierrosIlmaisin.Text = "Vaihe: " + (kierros Kaynnissa? "Barbaari-invaasio" : "Rakennusvaihe");242 kierros = value; 243 kierrosIlmaisin.Text = "Vaihe: " + (kierros % 2 == 0 ? "Barbaari-invaasio" : "Rakennusvaihe"); 230 244 } 231 245 } … … 243 257 GameObject digArrowHead; 244 258 245 IntMeter kultuuri = new IntMeter(1 000, 0, 2000);259 IntMeter kultuuri = new IntMeter(1500, 0, 2000); 246 260 247 261 const int VAAKA_HUONEET = 12; … … 255 269 public override void Begin() 256 270 { 271 ClearAll(); 257 272 SmoothTextures = false; 258 273 IsMouseVisible = true; 259 274 260 //SetWindowSize(1024, 768); Riippuu vähänJypelin versiosta.275 //SetWindowSize(1024, 768); Riippuu Jypelin versiosta. 261 276 Window.Width = 1024; 262 277 Window.Height = 768; 263 278 264 279 ansaKuvat = new Image[] {piikkiAnsaKuvat[0], murskausAnsaKuvat[0]}; 280 ansaAnimaatiot.Add(new Animation(piikkiAnsaKuvat)); 281 ansaAnimaatiot.Add(new Animation(murskausAnsaKuvat)); 265 282 menu = new MainMenu(this, "New game", "Highscores", "Help", "Quit"); 266 283 menu.Painikkeet[0].Clicked += AloitaPeli; … … 342 359 havisit.Color = Color.HotPink; 343 360 havisit.Size = new Vector(300, 300); 344 havisit.Position = new Vector(Level.Right - havisit.Width * 0.5, Level.Top - havisit.Height * 0.5);345 Add(havisit );361 havisit.Position = new Vector(Level.Right - havisit.Width, Level.Top - havisit.Height * 0.5); 362 Add(havisit, 2); 346 363 } 347 364 … … 361 378 kuva.Clicked += delegate 362 379 { 363 ostamassa = LuoKultuuriPaivitys(kultuuriKuvat[indeksi], hinnat[indeksi]); 380 ostamassa = LuoKultuuriPaivitys(kultuuriKuvat[indeksi], hinnat[indeksi]); // TODO: tuotto[indeksi] 364 381 }; 365 382 … … 372 389 } 373 390 391 LuoAnsaHuoneenPainike(ansaKuvat[0], ansaHinnat[0], ansaAnimaatiot[0], 0); 392 LuoAnsaHuoneenPainike(ansaKuvat[1], ansaHinnat[1], ansaAnimaatiot[1], 1); 393 394 /* 374 395 for (int i = 0; i < ansaKuvat.Length; i++) 375 396 { … … 385 406 kuva.Clicked += delegate 386 407 { 387 ostamassa = LuoAnsaPaivitys(ansaKuvat[ ansaKuvat.Length - 1], ansaHinnat[indeksi]);408 ostamassa = LuoAnsaPaivitys(ansaKuvat[indeksi], ansaHinnat[indeksi], ansaAnimaatiot[indeksi]); 388 409 }; 389 410 … … 394 415 Text = ansaHinnat[i].ToString() 395 416 }); 396 } 397 } 398 399 Upgrade LuoAnsaPaivitys(Image kuva, int hinta) 417 } */ 418 } 419 420 private void LuoAnsaHuoneenPainike(Image image, int hinta, Animation animation, int paikka) 421 { 422 PushButton kuva = new PushButton(image); 423 kuva.Size = new Vector(1, 1) * RUUDUN_KOKO; 424 kuva.Color = Color.Gray; 425 kuva.X = Window.ClientBounds.Width / 2 - 200; 426 kuva.Y = Window.ClientBounds.Height / 2 - (100 + RUUDUN_KOKO * (kultuuriKuvat.Count() + paikka)); 427 //kuva.Position = new Vector((Level.Right + Level.Width * 0.05), (Level.Top - Level.Height * 0.25 - ((kultuuriKuvat.Count() + i) * RUUDUN_KOKO))); 428 Add(kuva); 429 430 kuva.Clicked += delegate 431 { 432 ostamassa = LuoAnsaPaivitys(image, hinta, animation); 433 }; 434 435 Add(new Label 436 { 437 Position = kuva.Position + new Vector((RUUDUN_KOKO * 1.2), 0), 438 TextColor = Color.White, 439 Text = hinta.ToString() 440 }); 441 } 442 443 444 445 Upgrade LuoAnsaPaivitys(Image kuva, int hinta, Animation animaatio) 400 446 { 401 447 return new TrapUpgrade … … 404 450 Size = new Vector(0.5, 0.5) * RUUDUN_KOKO, 405 451 Price = hinta, 406 Animation = new Animation(piikkiAnsaKuvat) 452 Damage = 1, 453 Animation = new Animation(animaatio) 407 454 }; 408 455 } … … 420 467 void LuoBarbaareja() 421 468 { 422 Barbaari barbaari = new Barbaari(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4); 469 Barbaari barbaari = ((RandomGen.NextInt(10) > kierros) ? new Barbaari(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4, 1, vihuKuvat) : new Barbaari(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4, 2, kirvesVihuKuvat)); 470 471 barbaari.Tenacity.LowerLimit += delegate 472 { 473 barbaarit.Remove(barbaari); 474 barbaari.Destroy(); 475 }; 476 477 //Barbaari barbaari = new Barbaari(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4, 0); 423 478 barbaari.Color = Color.Red; 424 479 barbaari.Position = spawn.Position; 425 barbaari.Animation = new Animation(vihuKuvat) { FPS = 10 }; 480 barbaari.Location = spawn.Location; 481 //barbaari.Animation = new Animation(vihuKuvat) { FPS = 10 }; 426 482 barbaari.Animation.Start(); 427 barbaari.Location = spawn.Location;428 483 Add(barbaari); 429 484 barbaarit.Add(barbaari); 430 485 431 486 EtsiBarbaarinReitti(barbaari); 432 487 } … … 465 520 466 521 // Tarkistetaan onko barbaariaalto jo ohi. 467 if (KierrosKaynnissa && barbaarit.Count == 0 && barbaariAjastin.Times == barbaariAjastin.Times.MinValue)468 { 469 KierrosKaynnissa = false;522 if (KierrosKaynnissa % 2 == 0 && barbaarit.Count == 0 && barbaariAjastin.Times == barbaariAjastin.Times.MinValue) 523 { 524 KierrosKaynnissa++; 470 525 471 526 // Annetaan pelaajalle kultuuripisteet. … … 515 570 { 516 571 IsMouseVisible = true; 517 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Näytä valikko"); 518 Keyboard.Listen(Key.F1, ButtonState.Pressed, Begin, null); 572 //Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Näytä valikko"); 573 //Keyboard.Listen(Key.F1, ButtonState.Pressed, Begin, null); 574 Keyboard.Listen(Key.Escape, ButtonState.Pressed, delegate { ClearAll(); Begin(); }, "Aloita uudestaan"); 519 575 520 576 Keyboard.Listen(Key.Space, ButtonState.Pressed, SeuraavaAalto, "Anna kivan barbaariaallon tulla"); … … 523 579 void SeuraavaAalto() 524 580 { 525 if (KultuuriHuoneidenPaikat().Count == 0 || KierrosKaynnissa ) return;581 if (KultuuriHuoneidenPaikat().Count == 0 || KierrosKaynnissa % 2 == 0) return; 526 582 527 583 barbaariAjastin.Start(barbaariMaara); 528 584 barbaariMaara += 2; 529 KierrosKaynnissa = true;585 KierrosKaynnissa++; 530 586 } 531 587 … … 670 726 { 671 727 Room kohdeHuone = GetRoom(MuunnaJypelista(Mouse.PositionOnWorld)); 672 if (kohdeHuone == null || kierrosKaynnissa)728 if (kohdeHuone == null || KierrosKaynnissa % 2 == 0) 673 729 { 674 730 return false;
Note: See TracChangeset
for help on using the changeset viewer.