- Timestamp:
- 2015-06-16 09:40:22 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/24/ohjaajat/Dungeon/Dungeon/Dungeon/Dungeon.cs
r6113 r6114 239 239 public const int RUUDUN_KOKO = 64; 240 240 241 public static Func<int, int, string, Image[]> LoadImages2 = (a, b, fmt) => 242 LoadImages((from i in Enumerable.Range(a, b) select string.Format(fmt, i)).ToArray()); 243 244 #region Kuvat 245 Image lattiaKuva = LoadImage("floor"); 246 Image seinaKuva = LoadImage("wall"); 247 Image reikaSeinaKuva = LoadImage("wallhole"); 248 Image kiviKuva = LoadImage("rock"); 249 private Image[][] kultuuriKuvat = {LoadImages2(1, 6, "fountain/f{0:0000}"), LoadImages("patsas"), LoadImages("piano")}; 250 private Image[] piikkiAnsaKuvat = LoadImages2(1, 7, "piikit/piikit{0:0000}"); 251 private Image[] murskausAnsaKuvat = LoadImages2(1, 9, "smash/smash{0:0000}"); 252 public Image[] vihuKuvat = LoadImages2(1, 10, "vihu/v{0:0000}"); 253 public Image[] kirvesVihuKuvat = LoadImages2(1, 10, "kirvesvihu/kv{0:0000}"); 254 Image[] ansaKuvat; 255 List<Animation> ansaAnimaatiot = new List<Animation>(); 256 Image partikkeliKuva = LoadImage("partikkeli"); 257 Image taideVeri = LoadImage("taideveri"); 258 private Image[] loppuKuvat = LoadImages2(1, 35, "break/b{0:0000}"); 259 private Image[] teleAnsaKuvat = LoadImages2(1, 8, "teletrap/tele{0:0000}"); 260 #endregion 261 262 private SoundEffect[] hajotusAanet = { LoadSoundEffect("fountainbreak"), LoadSoundEffect("boom"), LoadSoundEffect("piano2") }; 241 const int MASSI = 2000; 242 const int VAAKA_HUONEET = 12; 243 const int PYSTY_HUONEET = 8; 244 const int HUONE_KAIVUU_HINTA = 50; 245 const int TELEANSA_HINTA = 1000; 263 246 264 247 int[] hinnat = { 75, 200, 300, 100 }; … … 266 249 int[] ansaHinnat = { 300, 600 }; 267 250 int[] kultuuriTuotot = { 100, 200, 400 }; 268 private int teleAnsaHinta = 1000; 269 private int barbaariMaara = 2; 270 251 252 // Paljonko peliruudukko on siirtynyt origosta. 253 readonly Vector huoneSiirtyma = new Vector(-200, 0); 254 255 #region Resurssit 256 public static Func<int, int, string, Image[]> LoadImages2 = (a, b, fmt) => 257 LoadImages((from i in Enumerable.Range(a, b) select string.Format(fmt, i)).ToArray()); 258 259 public Image[] vihuKuvat = LoadImages2(1, 10, "vihu/v{0:0000}"); 260 public Image[] kirvesVihuKuvat = LoadImages2(1, 10, "kirvesvihu/kv{0:0000}"); 261 262 private Image lattiaKuva = LoadImage("floor"); 263 private Image seinaKuva = LoadImage("wall"); 264 private Image reikaSeinaKuva = LoadImage("wallhole"); 265 private Image kiviKuva = LoadImage("rock"); 266 private Image[][] kultuuriKuvat = { LoadImages2(1, 6, "fountain/f{0:0000}"), LoadImages("patsas"), LoadImages("piano") }; 267 private Image[] piikkiAnsaKuvat = LoadImages2(1, 7, "piikit/piikit{0:0000}"); 268 private Image[] murskausAnsaKuvat = LoadImages2(1, 9, "smash/smash{0:0000}"); 269 private Image[] ansaKuvat; 270 private Image partikkeliKuva = LoadImage("partikkeli"); 271 private Image taideVeri = LoadImage("taideveri"); 272 private Image[] loppuKuvat = LoadImages2(1, 35, "break/b{0:0000}"); 273 private Image[] teleAnsaKuvat = LoadImages2(1, 8, "teletrap/tele{0:0000}"); 274 275 private List<Animation> ansaAnimaatiot = new List<Animation>(); 276 277 private SoundEffect[] hajotusAanet = { LoadSoundEffect("fountainbreak"), LoadSoundEffect("boom"), LoadSoundEffect("piano2") }; 278 #endregion 279 280 private MainMenu menu; 281 282 // Pelimekaniikan kannalta oleelliset muuttujat. 283 public List<Barbaari> barbaarit; 284 private Room[,] huoneet; 285 private Room spawn; 286 private Timer barbaariAjastin; 287 private Timer sykliAjastin; 288 private Upgrade ostamassa; 289 private int barbaariMaara; 290 private Point digStart; // Huoneen sijainti, josta kaivuu aloitetaan. 291 292 // Visuaaliset extra jutut 271 293 private Label kaivuuHintaLabel; 272 294 private Label kierrosIlmaisin; 273 //private bool kierrosKaynnissa; 295 private GameObject digArrow; 296 private GameObject digArrowHead; 297 298 // Pistelasku 299 EasyHighScore topLista = new EasyHighScore(); 300 IntMeter kultuuri = new IntMeter(0, 0, 2000); 301 IntMeter barbaarinTappoMittari = new IntMeter(0); 302 274 303 private int kierros; 275 276 public int KierrosKaynnissa 304 public int Kierros 277 305 { 278 306 get … … 283 311 { 284 312 kierros = value; 285 kierrosIlmaisin.Text = "Vaihe: " + (kierros % 2 == 0 ? "Barbaari-invaasio" : "Rakennusvaihe"); 286 } 287 } 288 289 Room[,] huoneet; 290 //public List<Room> kohteet = new List<Room>(); 291 public List<Barbaari> barbaarit; 292 Room spawn; 293 Timer barbaariAjastin; 294 Timer sykliAjastin; 295 Upgrade ostamassa; 296 Point digStart; // Huoneen sijainti, josta kaivuu aloitetaan. 313 var vaiheTeksti = "Vaihe: " + (kierros % 2 == 0 ? "Barbaari-invaasio" : "Rakennusvaihe"); 314 kierrosIlmaisin.Text = vaiheTeksti + "\nKierros: " + (kierros / 2); 315 } 316 } 297 317 298 318 private bool digging = false; 299 300 319 public bool Digging 301 320 { … … 311 330 } 312 331 313 GameObject digArrow;314 GameObject digArrowHead;315 316 IntMeter kultuuri = new IntMeter(0, 0, 2000);317 318 const int MASSI = 2000;319 const int VAAKA_HUONEET = 12;320 const int PYSTY_HUONEET = 8;321 const int HUONE_KAIVUU_HINTA = 50;322 323 // Paljonko peliruudukko on siirtynyt origosta.324 Vector huoneSiirtyma = new Vector(-200, 0);325 326 private MainMenu menu;327 328 332 public override void Begin() 329 333 { 334 topLista.HighScoreWindow.Closed += delegate 335 { 336 // Ennätyslistan sulkemisen jälkeen mennään valikkoon jos ei oltu siell jo. 337 if (menu == null) 338 AlkuValikko(); 339 }; 340 330 341 MediaPlayer.IsRepeating = true; 331 342 MediaPlayer.Play("In_The_Dark_Flashes"); 332 333 ClearAll();334 335 kultuuri.Value = MASSI;336 kierros = 0;337 barbaariAjastin = new Timer();338 barbaarit = new List<Barbaari>();339 343 340 344 SmoothTextures = false; … … 345 349 Window.Height = 768; 346 350 347 ansaKuvat = new Image[] { piikkiAnsaKuvat[0], murskausAnsaKuvat[0] };351 ansaKuvat = new[] { piikkiAnsaKuvat[0], murskausAnsaKuvat[0] }; 348 352 ansaAnimaatiot.Add(new Animation(piikkiAnsaKuvat)); 349 353 ansaAnimaatiot.Add(new Animation(murskausAnsaKuvat)); 354 355 AlkuValikko(); 356 } 357 358 void AlkuValikko() 359 { 360 ClearAll(); 361 350 362 menu = new MainMenu(this, "New game", "Highscores", "Help", "Quit"); 351 363 menu.Painikkeet[0].Clicked += delegate … … 354 366 menu = null; 355 367 }; 368 menu.Painikkeet[1].Clicked += topLista.Show; 356 369 menu.Painikkeet[3].Clicked += Exit; 357 370 } … … 359 372 void AloitaPeli() 360 373 { 374 // Pelin aloituksen jälkeen pistelistalta mennään valikkoon. 361 375 ClearAll(); 376 377 barbaarinTappoMittari.Value = 0; 378 kultuuri.Value = MASSI; 379 kierros = 0; 380 barbaariMaara = 2; 381 barbaariAjastin = new Timer(); 382 barbaarit = new List<Barbaari>(); 383 362 384 Kontrollit(); 363 385 UlkoAsuRoskaa(); … … 409 431 kierrosIlmaisin.Y = Screen.Top - 150; 410 432 Add(kierrosIlmaisin); 411 Kierros Kaynnissa = KierrosKaynnissa; // Aiheuttaa labelin päivittymisen.433 Kierros = Kierros; // Aiheuttaa labelin päivittymisen. 412 434 413 435 kaivuuHintaLabel = new Label("0"); … … 417 439 Add(kaivuuHintaLabel); 418 440 419 Label rahat = new Label(); 420 rahat.BindTo(kultuuri); 421 rahat.Position = new Vector(Screen.Right - 200, Screen.Bottom + 50); 422 //rahat.Position = new Vector(Level.Right + Level.Width * 0.2, Level.Bottom + Level.Height * 0.1); 423 rahat.TextColor = Color.White; 424 rahat.IntFormatString = "Käytettävää kulttuuria: {0:D3}"; 425 Add(rahat); 441 var kultuuriLabel = new Label(); 442 kultuuriLabel.BindTo(kultuuri); 443 kultuuriLabel.Position = new Vector(Screen.Right - 200, Screen.Bottom + 50); 444 kultuuriLabel.TextColor = Color.White; 445 kultuuriLabel.IntFormatString = "Käytettävää kulttuuria: {0:D3}"; 446 Add(kultuuriLabel); 447 448 var tappoLabel = new Label(); 449 tappoLabel.Position = new Vector(Screen.Left + 200, kultuuriLabel.Y); 450 tappoLabel.TextColor = Color.Red; 451 tappoLabel.IntFormatString = "Barbaareja murhattu: {0}"; 452 tappoLabel.BindTo(barbaarinTappoMittari); 453 Add(tappoLabel); 426 454 } 427 455 … … 458 486 459 487 Timer.SingleShot(3.5, HavioViesti); 488 Keyboard.Listen(Key.Escape, ButtonState.Pressed, HavioViesti, null); 489 Keyboard.Listen(Key.Space, ButtonState.Pressed, HavioViesti, null); 460 490 } 461 491 … … 474 504 hajotusAanet[1].Play(); 475 505 }); 506 507 Timer.SingleShot(4.5, () => topLista.EnterAndShow(barbaarinTappoMittari.Value)); 476 508 477 509 Label havisit = new Label("Hävisit muuten belin"); … … 493 525 }; 494 526 fadeAjastin.Start(); 495 496 Keyboard.Listen(Key.Escape, ButtonState.Pressed, delegate { ClearAll(); Begin(); }, null);497 527 } 498 528 … … 517 547 } 518 548 519 LuoKauppaPainike(teleAnsaKuvat[0], teleAnsaHinta, kultuuriKuvat.Length + ansaKuvat.Length, delegate549 LuoKauppaPainike(teleAnsaKuvat[0], TELEANSA_HINTA, kultuuriKuvat.Length + ansaKuvat.Length, delegate 520 550 { 521 551 ostamassa = LuoTeleAnsaPaivitys(); … … 559 589 { 560 590 Image = teleAnsaKuvat[0], 561 Size = new Vector(0.7, 0.7) *RUUDUN_KOKO,591 Size = new Vector(0.7, 0.7) * RUUDUN_KOKO, 562 592 Animation = new Animation(teleAnsaKuvat), 563 Price = teleAnsaHinta593 Price = TELEANSA_HINTA 564 594 }; 565 595 } … … 570 600 upg.HajotusAani = hajotusAani; 571 601 upg.Image = kuvat[0]; 572 upg.Size = new Vector(0.7, 0.7) *RUUDUN_KOKO;602 upg.Size = new Vector(0.7, 0.7) * RUUDUN_KOKO; 573 603 upg.Price = hinta; 574 604 upg.Max = kultuuriMaara; … … 583 613 barbaari.Tenacity.LowerLimit += delegate 584 614 { 585 //barbaarit.Remove(barbaari);586 615 barbaari.Destroy(); 616 barbaarinTappoMittari.Value++; 587 617 }; 588 618 //Barbaari barbaari = new Barbaari(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4, 0); … … 651 681 652 682 // Tarkistetaan onko barbaariaalto jo ohi. 653 if (Kierros Kaynnissa% 2 == 0 && barbaarit.Count == 0 && barbaariAjastin.Times == barbaariAjastin.Times.MinValue)654 { 655 Kierros Kaynnissa++;683 if (Kierros % 2 == 0 && barbaarit.Count == 0 && barbaariAjastin.Times == barbaariAjastin.Times.MinValue) 684 { 685 Kierros++; 656 686 657 687 // Annetaan pelaajalle kultuuripisteet. … … 703 733 //Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Näytä valikko"); 704 734 //Keyboard.Listen(Key.F1, ButtonState.Pressed, Begin, null); 705 Keyboard.Listen(Key.Escape, ButtonState.Pressed, delegate { ClearAll(); Begin(); }, "Aloita uudestaan"); //Ei toimi vielä735 Keyboard.Listen(Key.Escape, ButtonState.Pressed, AlkuValikko, "Aloita uudestaan"); 706 736 707 737 Keyboard.Listen(Key.Space, ButtonState.Pressed, SeuraavaAalto, "Anna kivan barbaariaallon tulla"); … … 710 740 void SeuraavaAalto() 711 741 { 712 if (KultuuriHuoneidenPaikat().Count == 0 || Kierros Kaynnissa% 2 == 0) return;742 if (KultuuriHuoneidenPaikat().Count == 0 || Kierros % 2 == 0) return; 713 743 714 744 barbaariAjastin.Interval = RandomGen.NextInt((int)sykliAjastin.Interval, 3); 715 745 barbaariAjastin.Start(barbaariMaara); 716 746 barbaariMaara = RandomGen.NextInt((int)(1 + kierros * 0.20), kierros); 717 Kierros Kaynnissa++;747 Kierros++; 718 748 } 719 749 … … 858 888 { 859 889 Room kohdeHuone = GetRoom(MuunnaJypelista(Mouse.PositionOnWorld)); 860 if (kohdeHuone == null || Kierros Kaynnissa% 2 == 0)890 if (kohdeHuone == null || Kierros % 2 == 0) 861 891 { 862 892 return false; … … 1071 1101 digArrow.Angle = suunta.Angle; 1072 1102 digArrow.Width = pituus; 1073 1103 1074 1104 digArrowHead.Color = vari; 1075 1105 digArrowHead.Position = alku + suunta;
Note: See TracChangeset
for help on using the changeset viewer.