Changeset 6031 for 2015/24


Ignore:
Timestamp:
2015-06-11 15:42:22 (4 years ago)
Author:
sieerinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/24/ohjaajat/Dungeon/Dungeon/Dungeon/Dungeon.cs

    r6008 r6031  
    2323/// Päivitys joka voi olla huoneessa. 
    2424/// </summary> 
    25 abstract class Upgrade : GameObject // Tämä on abstrakti luokka, koska tästä ei ole tarkoitus luoda instanssia suoraan. 
     25abstract class Upgrade : GameObject 
    2626{ 
    2727    public int Price { get; set; } 
     
    111111public class Barbaari : GameObject 
    112112{ 
     113    public List<Point> Reitti { get; set; } 
     114     
    113115    public Barbaari(double width, double height) 
    114116        :base(width, height) 
    115     { } 
     117    { 
     118        Reitti = new List<Point>(); 
     119    } 
    116120 
    117121    public int Askel { get; set; } 
     
    141145    Room[,] huoneet; 
    142146    List<Room> kohteet = new List<Room>(); 
     147    List<Barbaari> barbaarit = new List<Barbaari>(); 
    143148    Room spawn; 
    144149    Timer barbaariAjastin = new Timer(); 
     
    177182 
    178183        LuoSpawn(); 
     184 
     185        Timer sykliAjastin = new Timer(); 
     186        sykliAjastin.Interval = 2.0; 
     187        sykliAjastin.Timeout += Sykli; 
     188        sykliAjastin.Start(); 
    179189 
    180190        barbaariAjastin.Timeout += delegate { LuoBarbaareja(); }; 
     
    262272        barbaari.Animation.Start(); 
    263273        Add(barbaari); 
     274        barbaarit.Add(barbaari); 
    264275 
    265276        EtsiBarbaarinReitti(barbaari); 
     
    273284        //polku.Reverse();  
    274285 
     286        barbaari.Reitti = polku; 
     287 
     288        /* 
    275289        Timer siirtoAjastin = new Timer(); 
    276290        siirtoAjastin.Interval = 2; 
     
    280294        }; 
    281295        siirtoAjastin.Start(polku.Count); 
    282  
     296        */ 
     297    } 
     298 
     299    void Sykli() 
     300    { 
     301        List<Barbaari> poistettavat = new List<Barbaari>(); 
     302        foreach (var barbaari in barbaarit) 
     303        { 
     304            if (barbaari.Reitti.Count == 0) 
     305            { 
     306                // Barbaari saapui tiensä päähän. 
     307                // Voisi etsiä uutta huonetta poiston sijaan? 
     308                poistettavat.Add(barbaari); 
     309                barbaari.Destroy(); 
     310                continue; 
     311            } 
     312 
     313            Point seuraavaPaikka = barbaari.Reitti[0]; 
     314            barbaari.Reitti.RemoveAt(0); 
     315            barbaari.MoveTo(huoneet[seuraavaPaikka.X, seuraavaPaikka.Y].Position, 100, () => SyklinPaatteeksi(barbaari, seuraavaPaikka)); 
     316        } 
     317 
     318        foreach (var poista in poistettavat) 
     319            barbaarit.Remove(poista); 
     320    } 
     321 
     322    void SyklinPaatteeksi(Barbaari barbaari, Point uusiPaikka) 
     323    { 
     324        // Barbaari saapui juuri uusiPaikka kohdassa olevaan huoneeseen. 
     325        // Tässä pitäisi katsoa mitä huoneessa tapahtuu. 
    283326    } 
    284327 
Note: See TracChangeset for help on using the changeset viewer.