Changeset 6114 for 2015/24


Ignore:
Timestamp:
2015-06-16 09:40:22 (8 years ago)
Author:
sieerinn
Message:

Parhaiden pisteiden lista.

File:
1 edited

Legend:

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

    r6113 r6114  
    239239    public const int RUUDUN_KOKO = 64; 
    240240 
    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; 
    263246 
    264247    int[] hinnat = { 75, 200, 300, 100 }; 
     
    266249    int[] ansaHinnat = { 300, 600 }; 
    267250    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 
    271293    private Label kaivuuHintaLabel; 
    272294    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 
    274303    private int kierros; 
    275  
    276     public int KierrosKaynnissa 
     304    public int Kierros 
    277305    { 
    278306        get 
     
    283311        { 
    284312            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    } 
    297317 
    298318    private bool digging = false; 
    299  
    300319    public bool Digging 
    301320    { 
     
    311330    } 
    312331 
    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  
    328332    public override void Begin() 
    329333    { 
     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 
    330341        MediaPlayer.IsRepeating = true; 
    331342        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>(); 
    339343 
    340344        SmoothTextures = false; 
     
    345349        Window.Height = 768; 
    346350 
    347         ansaKuvat = new Image[] { piikkiAnsaKuvat[0], murskausAnsaKuvat[0] }; 
     351        ansaKuvat = new[] { piikkiAnsaKuvat[0], murskausAnsaKuvat[0] }; 
    348352        ansaAnimaatiot.Add(new Animation(piikkiAnsaKuvat)); 
    349353        ansaAnimaatiot.Add(new Animation(murskausAnsaKuvat)); 
     354 
     355        AlkuValikko(); 
     356    } 
     357 
     358    void AlkuValikko() 
     359    { 
     360        ClearAll(); 
     361 
    350362        menu = new MainMenu(this, "New game", "Highscores", "Help", "Quit"); 
    351363        menu.Painikkeet[0].Clicked += delegate 
     
    354366            menu = null; 
    355367        }; 
     368        menu.Painikkeet[1].Clicked += topLista.Show; 
    356369        menu.Painikkeet[3].Clicked += Exit; 
    357370    } 
     
    359372    void AloitaPeli() 
    360373    { 
     374        // Pelin aloituksen jälkeen pistelistalta mennään valikkoon. 
    361375        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 
    362384        Kontrollit(); 
    363385        UlkoAsuRoskaa(); 
     
    409431        kierrosIlmaisin.Y = Screen.Top - 150; 
    410432        Add(kierrosIlmaisin); 
    411         KierrosKaynnissa = KierrosKaynnissa; // Aiheuttaa labelin päivittymisen. 
     433        Kierros = Kierros; // Aiheuttaa labelin päivittymisen. 
    412434 
    413435        kaivuuHintaLabel = new Label("0"); 
     
    417439        Add(kaivuuHintaLabel); 
    418440 
    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); 
    426454    } 
    427455 
     
    458486 
    459487        Timer.SingleShot(3.5, HavioViesti); 
     488        Keyboard.Listen(Key.Escape, ButtonState.Pressed, HavioViesti, null); 
     489        Keyboard.Listen(Key.Space, ButtonState.Pressed, HavioViesti, null); 
    460490    } 
    461491 
     
    474504            hajotusAanet[1].Play(); 
    475505        }); 
     506 
     507        Timer.SingleShot(4.5, () => topLista.EnterAndShow(barbaarinTappoMittari.Value)); 
    476508 
    477509        Label havisit = new Label("Hävisit muuten belin"); 
     
    493525        }; 
    494526        fadeAjastin.Start(); 
    495  
    496         Keyboard.Listen(Key.Escape, ButtonState.Pressed, delegate { ClearAll(); Begin(); }, null); 
    497527    } 
    498528 
     
    517547        } 
    518548 
    519         LuoKauppaPainike(teleAnsaKuvat[0], teleAnsaHinta, kultuuriKuvat.Length + ansaKuvat.Length, delegate 
     549        LuoKauppaPainike(teleAnsaKuvat[0], TELEANSA_HINTA, kultuuriKuvat.Length + ansaKuvat.Length, delegate 
    520550        { 
    521551            ostamassa = LuoTeleAnsaPaivitys(); 
     
    559589        { 
    560590            Image = teleAnsaKuvat[0], 
    561             Size = new Vector(0.7, 0.7)*RUUDUN_KOKO, 
     591            Size = new Vector(0.7, 0.7) * RUUDUN_KOKO, 
    562592            Animation = new Animation(teleAnsaKuvat), 
    563             Price = teleAnsaHinta 
     593            Price = TELEANSA_HINTA 
    564594        }; 
    565595    } 
     
    570600        upg.HajotusAani = hajotusAani; 
    571601        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; 
    573603        upg.Price = hinta; 
    574604        upg.Max = kultuuriMaara; 
     
    583613        barbaari.Tenacity.LowerLimit += delegate 
    584614        { 
    585             //barbaarit.Remove(barbaari); 
    586615            barbaari.Destroy(); 
     616            barbaarinTappoMittari.Value++; 
    587617        }; 
    588618        //Barbaari barbaari = new Barbaari(RUUDUN_KOKO * 0.4, RUUDUN_KOKO * 0.4, 0); 
     
    651681 
    652682        // Tarkistetaan onko barbaariaalto jo ohi. 
    653         if (KierrosKaynnissa % 2 == 0 && barbaarit.Count == 0 && barbaariAjastin.Times == barbaariAjastin.Times.MinValue) 
    654         { 
    655             KierrosKaynnissa++; 
     683        if (Kierros % 2 == 0 && barbaarit.Count == 0 && barbaariAjastin.Times == barbaariAjastin.Times.MinValue) 
     684        { 
     685            Kierros++; 
    656686 
    657687            // Annetaan pelaajalle kultuuripisteet. 
     
    703733        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Näytä valikko"); 
    704734        //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"); 
    706736 
    707737        Keyboard.Listen(Key.Space, ButtonState.Pressed, SeuraavaAalto, "Anna kivan barbaariaallon tulla"); 
     
    710740    void SeuraavaAalto() 
    711741    { 
    712         if (KultuuriHuoneidenPaikat().Count == 0 || KierrosKaynnissa % 2 == 0) return; 
     742        if (KultuuriHuoneidenPaikat().Count == 0 || Kierros % 2 == 0) return; 
    713743 
    714744        barbaariAjastin.Interval = RandomGen.NextInt((int)sykliAjastin.Interval, 3); 
    715745        barbaariAjastin.Start(barbaariMaara); 
    716746        barbaariMaara = RandomGen.NextInt((int)(1 + kierros * 0.20), kierros); 
    717         KierrosKaynnissa++; 
     747        Kierros++; 
    718748    } 
    719749 
     
    858888    { 
    859889        Room kohdeHuone = GetRoom(MuunnaJypelista(Mouse.PositionOnWorld)); 
    860         if (kohdeHuone == null || KierrosKaynnissa % 2 == 0) 
     890        if (kohdeHuone == null || Kierros % 2 == 0) 
    861891        { 
    862892            return false; 
     
    10711101            digArrow.Angle = suunta.Angle; 
    10721102            digArrow.Width = pituus; 
    1073              
     1103 
    10741104            digArrowHead.Color = vari; 
    10751105            digArrowHead.Position = alku + suunta; 
Note: See TracChangeset for help on using the changeset viewer.