- Timestamp:
- 2015-06-11 21:47:25 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/24/ohjaajat/Dungeon/Dungeon/Dungeon/Dungeon.cs
r6041 r6042 38 38 39 39 /// <summary> 40 /// Tätä kutsutaan kun barbaari tulee kylään 40 /// Tätä kutsutaan kun barbaari tulee kylään. 41 41 /// </summary> 42 42 public virtual void Invasion(Dungeon peli, Barbaari barbaari, Room huone) { } 43 44 /// <summary> 45 /// Kutsutaan joka syklin alussa. 46 /// </summary> 47 public virtual void SykliPaivitys() { } 43 48 } 44 49 … … 47 52 public int Damage { get; set; } 48 53 54 public bool Active { 55 get { return LatausMittari.Value == LatausMittari.MaxValue; } 56 } 57 58 // Jos täynnä, niin ansa on aktiivinen. 59 public IntMeter LatausMittari { get; set; } 60 61 public TrapUpgrade() 62 { 63 LatausMittari = new IntMeter(4, 0, 4); 64 LatausMittari.UpperLimit += delegate 65 { 66 // Askelletaan vikasta framesta ekaan. 67 Animation.Step(); 68 }; 69 } 70 49 71 public override void Invasion(Dungeon peli, Barbaari barbaari, Room huone) 50 72 { 73 if (!Active) return; 74 51 75 peli.barbaarit.Remove(barbaari); 52 barbaari.Destroy(); //TODO: Mitä nyt oikeasti tapahtuu, kun barbaari astuu ansaan. Meidän tapauksessa kai tapetaan saman tien.76 barbaari.Destroy(); 53 77 peli.Splatter(huone.Position); 54 78 55 this.Animation.Start(1); 56 57 /* 58 if (peli.barbaarit.Count < 1) 59 { 60 peli.KierrosKaynnissa = false; 61 } 62 */ 79 // Barbaarin tappo pudottaa latausmittarin nollaan. 80 LatausMittari.Value = LatausMittari.MinValue; 81 82 Animation.StopOnLastFrame = true; 83 Animation.Start(1); 84 } 85 86 public override void SykliPaivitys() 87 { 88 base.SykliPaivitys(); 89 if (LatausMittari.Value < LatausMittari.MaxValue) 90 { 91 LatausMittari.Value++; 92 } 63 93 } 64 94 } … … 99 129 { 100 130 this.Destroy(); 101 peli.kohteet.Remove(huone);102 if (peli. kohteet.Count < 1)131 huone.Upgrade = null; 132 if (peli.KultuuriHuoneidenPaikat().Count < 1) 103 133 { 104 134 peli.LopetaPeli(); … … 144 174 public List<Point> Reitti { get; set; } 145 175 146 public RoomKohde { get; set; }176 public Point Kohde { get; set; } 147 177 148 178 public Point Location { get; set; } … … 190 220 191 221 Room[,] huoneet; 192 public List<Room> kohteet = new List<Room>();222 //public List<Room> kohteet = new List<Room>(); 193 223 public List<Barbaari> barbaarit = new List<Barbaari>(); 194 224 Room spawn; … … 229 259 LuoSpawn(); 230 260 231 Timer sykliAjastin = new Timer { Interval = 2.0 };261 Timer sykliAjastin = new Timer { Interval = 1.0 }; 232 262 sykliAjastin.Timeout += Sykli; 233 263 sykliAjastin.Start(); … … 365 395 void EtsiBarbaarinReitti(Barbaari barbaari) 366 396 { 397 var kohteet = KultuuriHuoneidenPaikat(); 367 398 barbaari.Kohde = kohteet[RandomGen.NextInt(kohteet.Count)]; 368 barbaari.Reitti = FindPath(barbaari.Kohde.Location, (barbaari.Location.Equals(spawn.Location)) ? spawn.Location : barbaari.Location); 399 barbaari.Reitti = FindPath(barbaari.Kohde, (barbaari.Location.Equals(spawn.Location)) ? spawn.Location : barbaari.Location); 400 } 401 402 public List<Point> KultuuriHuoneidenPaikat() 403 { 404 return RuutujenPaikat().Select(GetRoom).Where(r => r.Upgrade != null && r.Upgrade is CultureUpgrade).Select(r => r.Location).ToList(); 369 405 } 370 406 371 407 void Sykli() 372 408 { 409 // Päivitetään huoneiden päivityksiä. 410 RuutujenPaikat().Select(GetRoom).Where(r => r.Upgrade != null).ToList().ForEach(r => r.Upgrade.SykliPaivitys()); 411 412 // Päivitetään barbaareja. 373 413 foreach (var barbaari in barbaarit) 374 414 { 375 415 if (barbaari.Reitti.Count == 0) 376 416 { 377 EtsiBarbaarinReitti(barbaari); //Etsitään uusi reitti poiston sijaan 417 EtsiBarbaarinReitti(barbaari); //Etsitään uusi reitti poiston sijaan. 418 continue; 378 419 } 379 420 … … 543 584 // se on vain suoraan polun pituus. 544 585 upg.Culture.Value = polku.Count; 545 546 kohteet.Add(room);547 586 } 548 587 }
Note: See TracChangeset
for help on using the changeset viewer.