Changeset 6093 for 2015/24


Ignore:
Timestamp:
2015-06-15 13:15:08 (8 years ago)
Author:
empaheik
Message:

Nyt mukana myös bugitestaamaton barbaari.Tenacity ja huone.Upgrade.Damage, joilla pitäisi saada tehtyä vähän erilaisia vihuja. Kirvesviholliset kestävät tällä kertaa napakat kaksi osumaa ja spawnaavat jatkuvasti.

File:
1 edited

Legend:

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

    r6092 r6093  
    2222 *  - Pahempia vihollisia, joihin ei tehoa piikkiansat 
    2323 *    vaan pitää ostaa kalliimpia ansoja niitä varten. 
     24 *  - Kultuurihuoneita, jotka tuottavat eriäviä määriä 
     25 *    kultuuria tai kestävät yhden barbaarin iskun. 
    2426*/ 
    2527 
     
    7880        if (!Active) return; 
    7981 
    80         peli.barbaarit.Remove(barbaari); 
    81         barbaari.Destroy(); 
     82        barbaari.Tenacity.Value -= ((TrapUpgrade)(huone.Upgrade)).Damage; 
     83 
    8284        peli.Splatter(huone.Position); 
    8385 
     
    183185    public Point Location { get; set; } 
    184186 
     187    public IntMeter Tenacity { get; set; } 
     188 
    185189    public Barbaari(double width, double height) 
    186         : base(width, height) 
     190        : this(width, height, 0, new Image[1]) 
    187191    { 
    188192        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 
    189200    } 
    190201} 
     
    208219    public Image[] kirvesVihuKuvat = LoadImages2(1, 10, "kirvesvihu/kv{0:0000}"); 
    209220    Image[] ansaKuvat; 
     221    List<Animation> ansaAnimaatiot = new List<Animation>(); 
    210222    Image partikkeliKuva = LoadImage("partikkeli"); 
    211223    Image taideVeri = LoadImage("taideveri"); 
     
    217229 
    218230    private Label kierrosIlmaisin; 
    219     private bool kierrosKaynnissa; 
    220     public bool KierrosKaynnissa 
     231    //private bool kierrosKaynnissa; 
     232    private int kierros; 
     233 
     234    public int KierrosKaynnissa 
    221235    { 
    222236        get 
    223237        { 
    224             return kierrosKaynnissa; 
     238            return kierros; 
    225239        } 
    226240        set 
    227241        { 
    228             kierrosKaynnissa = value; 
    229             kierrosIlmaisin.Text = "Vaihe: " + (kierrosKaynnissa ? "Barbaari-invaasio" : "Rakennusvaihe"); 
     242            kierros = value; 
     243            kierrosIlmaisin.Text = "Vaihe: " + (kierros % 2 == 0 ? "Barbaari-invaasio" : "Rakennusvaihe"); 
    230244        } 
    231245    } 
     
    243257    GameObject digArrowHead; 
    244258 
    245     IntMeter kultuuri = new IntMeter(1000, 0, 2000); 
     259    IntMeter kultuuri = new IntMeter(1500, 0, 2000); 
    246260 
    247261    const int VAAKA_HUONEET = 12; 
     
    255269    public override void Begin() 
    256270    { 
     271        ClearAll(); 
    257272        SmoothTextures = false; 
    258273        IsMouseVisible = true; 
    259274 
    260         //SetWindowSize(1024, 768); Riippuu vähän Jypelin versiosta. 
     275        //SetWindowSize(1024, 768); Riippuu Jypelin versiosta. 
    261276        Window.Width = 1024; 
    262277        Window.Height = 768; 
    263278 
    264279        ansaKuvat = new Image[] {piikkiAnsaKuvat[0], murskausAnsaKuvat[0]}; 
     280        ansaAnimaatiot.Add(new Animation(piikkiAnsaKuvat)); 
     281        ansaAnimaatiot.Add(new Animation(murskausAnsaKuvat)); 
    265282        menu = new MainMenu(this, "New game", "Highscores", "Help", "Quit"); 
    266283        menu.Painikkeet[0].Clicked += AloitaPeli; 
     
    342359        havisit.Color = Color.HotPink; 
    343360        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); 
    346363    } 
    347364 
     
    361378            kuva.Clicked += delegate 
    362379            { 
    363                 ostamassa = LuoKultuuriPaivitys(kultuuriKuvat[indeksi], hinnat[indeksi]); 
     380                ostamassa = LuoKultuuriPaivitys(kultuuriKuvat[indeksi], hinnat[indeksi]);   // TODO: tuotto[indeksi] 
    364381            }; 
    365382              
     
    372389        } 
    373390 
     391        LuoAnsaHuoneenPainike(ansaKuvat[0], ansaHinnat[0], ansaAnimaatiot[0], 0); 
     392        LuoAnsaHuoneenPainike(ansaKuvat[1], ansaHinnat[1], ansaAnimaatiot[1], 1); 
     393 
     394        /* 
    374395        for (int i = 0; i < ansaKuvat.Length; i++) 
    375396        { 
     
    385406            kuva.Clicked += delegate 
    386407            { 
    387                 ostamassa = LuoAnsaPaivitys(ansaKuvat[ansaKuvat.Length - 1], ansaHinnat[indeksi]); 
     408                ostamassa = LuoAnsaPaivitys(ansaKuvat[indeksi], ansaHinnat[indeksi], ansaAnimaatiot[indeksi]); 
    388409            }; 
    389410 
     
    394415                Text = ansaHinnat[i].ToString() 
    395416            }); 
    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) 
    400446    { 
    401447        return new TrapUpgrade 
     
    404450            Size = new Vector(0.5, 0.5) * RUUDUN_KOKO, 
    405451            Price = hinta, 
    406             Animation = new Animation(piikkiAnsaKuvat) 
     452            Damage = 1, 
     453            Animation = new Animation(animaatio) 
    407454        }; 
    408455    } 
     
    420467    void LuoBarbaareja() 
    421468    { 
    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); 
    423478        barbaari.Color = Color.Red; 
    424479        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 }; 
    426482        barbaari.Animation.Start(); 
    427         barbaari.Location = spawn.Location; 
    428483        Add(barbaari); 
    429484        barbaarit.Add(barbaari); 
    430  
     485             
    431486        EtsiBarbaarinReitti(barbaari); 
    432487    } 
     
    465520 
    466521        // 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++; 
    470525 
    471526            // Annetaan pelaajalle kultuuripisteet. 
     
    515570    { 
    516571        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"); 
    519575 
    520576        Keyboard.Listen(Key.Space, ButtonState.Pressed, SeuraavaAalto, "Anna kivan barbaariaallon tulla"); 
     
    523579    void SeuraavaAalto()        
    524580    { 
    525         if (KultuuriHuoneidenPaikat().Count == 0 || KierrosKaynnissa) return; 
     581        if (KultuuriHuoneidenPaikat().Count == 0 || KierrosKaynnissa % 2 == 0) return; 
    526582 
    527583        barbaariAjastin.Start(barbaariMaara); 
    528584        barbaariMaara += 2; 
    529         KierrosKaynnissa = true; 
     585        KierrosKaynnissa++; 
    530586    } 
    531587 
     
    670726    { 
    671727        Room kohdeHuone = GetRoom(MuunnaJypelista(Mouse.PositionOnWorld)); 
    672         if (kohdeHuone == null || kierrosKaynnissa) 
     728        if (kohdeHuone == null || KierrosKaynnissa % 2 == 0) 
    673729        { 
    674730            return false; 
Note: See TracChangeset for help on using the changeset viewer.