Ignore:
Timestamp:
2017-07-07 11:51:53 (2 years ago)
Author:
npo17_40
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2017/27/EeliN/Selviytyja/Selviytyja/Selviytyja/Selviytyja.cs

    r8965 r8999  
    2121    public Image stoneimg = LoadImage("Stone_0"); 
    2222    public Image appleimg = LoadImage("Apple_0"); 
     23    Drop valittuEsine = null; 
    2324 
    2425    public Image stoneitemimg = LoadImage("StoneItem_0"); 
     
    6465        ukko.PlayerImageLeft = Image.Mirror(idleRight.Clone()); 
    6566        ukko.PlayerImage = ukko.PlayerImageRight; 
    66         ukko.Tag = ""; 
     67        ukko.Tag = "ukko"; 
     68        AddCollisionHandler(ukko, "drop", PelaajatTormaavat); 
    6769        //idleLeft = Image.Mirror(idleRight); 
    6870        //playerWalkL = playerWalkR; 
     
    98100        stone.Image = stoneitemimg; 
    99101        apple.Image = appleimg; 
     102        wood.Tag = "wood"; 
    100103        //-------------------------------// 
    101104 
     
    146149            menu.IsVisible = false; 
    147150            menuopened = false; 
    148             Mouse.IsCursorVisible = false; 
     151            //Mouse.IsCursorVisible = false; 
    149152            foreach (GameObject nappi in menubuttonit) nappi.Color = Color.Transparent; 
    150153            FadeRuutu(false); 
     
    252255    void KuunteleLiiketta(AnalogState hiirentila) 
    253256    { 
     257        if (valittuEsine != null ) 
     258                { 
     259            valittuEsine.Position = Mouse.PositionOnWorld; 
     260            return; 
     261        } 
     262 
    254263        if (menuopened == false) 
    255264        { 
     265            foreach (Slot slotti in tavaraluettelo.ruudut) 
     266            { 
     267                if (Mouse.IsCursorOn(slotti)) 
     268                { 
     269                    slotti.Valittu = true; 
     270                } 
     271                else 
     272                { 
     273                    slotti.Valittu = false; 
     274                } 
     275            } 
    256276            return; 
    257277        } 
     
    307327        } 
    308328 
     329        if (menuopened == false) 
     330        { 
     331            foreach (Slot slotti in tavaraluettelo.ruudut) 
     332            { 
     333                if (slotti.Valittu && slotti.Resurssit.Count > 0) 
     334                { 
     335                    Raahaa(slotti); 
     336                    return; 
     337                } 
     338 
     339            } 
     340        } 
     341 
    309342        if (pausegame == false) 
    310343        { 
     
    314347 
    315348            List<GameObject> resurssit; 
     349            double verticalAttackDistance = 1.5; 
     350            double horizontalAttackDistance = 1.5; 
     351 
     352             
     353 
    316354 
    317355            if (ukko.PlayerRight) 
    318356            { 
    319                 resurssit = GetObjectsBetween((ukko.Position + new Vector(ukko.Width * 0.5, ukko.Height * 0.1)), (ukko.Position + new Vector(ukko.Width * 1, ukko.Height + 10))); 
     357                resurssit = GetObjectsBetween((ukko.Position + new Vector(ukko.Width * 0.8, ukko.Height * 0.2)), (ukko.Position + new Vector(ukko.Width * horizontalAttackDistance, ukko.Height + verticalAttackDistance))); 
    320358                ukko.Animation = ukko.PlayerHitR; 
    321359                 
     
    323361            else 
    324362            { 
    325                 resurssit = GetObjectsBetween((ukko.Position - new Vector(ukko.Width * 0.5, ukko.Height * 0.1)), (ukko.Position - new Vector(ukko.Width * 1, -ukko.Height - 10))); 
     363                resurssit = GetObjectsBetween((ukko.Position - new Vector(ukko.Width * 0.8, ukko.Height * 0.2)), (ukko.Position - new Vector(ukko.Width * horizontalAttackDistance, -ukko.Height - verticalAttackDistance))); 
    326364                ukko.Animation = ukko.PlayerHitL; 
    327365 
     
    346384 
    347385                        Slot slotti2 = null; 
    348                         const int OMENAMAHDOLLISUUS = 10; 
     386                        const int OMENAMAHDOLLISUUS = 20; 
    349387                        if (RandomGen.NextInt(OMENAMAHDOLLISUUS+1) >= OMENAMAHDOLLISUUS) slotti2 = tavaraluettelo.LisaaResurssi(apple, 1); 
    350388                         
     
    359397                    { 
    360398                        PlaySound("Hit"); 
    361                         MessageDisplay.Add("kivi!"); 
     399                        Stone stone = (Stone)resurssi; 
    362400 
    363401                        Slot slotti = tavaraluettelo.LisaaResurssi(stone, RandomGen.SelectOne(1, 2)); 
     402                        stone.ElamaLaskuri.Value -= 2; 
     403                        if (slotti != null) slotti.Image = stoneitemimg; 
     404 
    364405                         
    365                         if (slotti != null) slotti.Image = stoneitemimg; 
    366  
    367                          
    368406 
    369407                        //inventory.AddItem(wood, woodItem, RandomGen.SelectOne(5,6,7,8,9,10)); 
     
    377415    } 
    378416 
     417    void Raahaa(Slot slotti) 
     418    { 
     419        valittuEsine = new Drop(20,40); 
     420        valittuEsine.Tag = "drop"; 
     421        valittuEsine.luku = slotti.Maara; 
     422        valittuEsine.Resurssit = new List<GameObject>(slotti.Resurssit); 
     423        slotti.Maara = 0; 
     424        slotti.Teksti.Text = ""; 
     425        valittuEsine.Image = slotti.Image; 
     426        slotti.Image = null; 
     427        Add(valittuEsine,3); 
     428        valittuEsine.Position = Mouse.PositionOnWorld; 
     429        slotti.Resurssit.Clear(); 
     430        slotti.Maara = 0; 
     431    } 
     432 
     433    void PelaajatTormaavat(PhysicsObject tormaaja, PhysicsObject kohde) 
     434    { 
     435        Drop maatavara = (Drop)kohde; 
     436        Slot slotti = tavaraluettelo.LisaaResurssi(maatavara.Resurssit[0], maatavara.luku); 
     437        slotti.Image = kohde.Image; 
     438        kohde.Destroy(); 
     439        MessageDisplay.Add("Bump!"); 
     440    } 
     441 
    379442    public void HakkaaminenLoppuu(Player player) 
    380443    { 
     444        if (valittuEsine != null) 
     445        { 
     446            foreach(Slot slotti in tavaraluettelo.ruudut) 
     447            { 
     448                double etaisyys = (slotti.AbsolutePosition - valittuEsine.Position).Magnitude; 
     449                if (etaisyys < 100) 
     450                { 
     451                    slotti.Image = valittuEsine.Image; 
     452                     
     453                    MessageDisplay.Add("slotin " + tavaraluettelo.ruudut.IndexOf(slotti) + " etäisyys hiireen " + etaisyys); 
     454                     
     455                    slotti.Resurssit = new List<GameObject>(valittuEsine.Resurssit); 
     456                    slotti.Teksti.Text = slotti.Resurssit.Count.ToString(); 
     457                    valittuEsine.luku = 0; 
     458                    valittuEsine.Resurssit.Clear(); 
     459                    valittuEsine.Destroy(); 
     460                    valittuEsine = null; 
     461                    foreach (Slot slotti2 in tavaraluettelo.ruudut) 
     462                    { 
     463                        if (slotti2.Resurssit.Count > 0) {  
     464                        MessageDisplay.Add("slotin " + tavaraluettelo.ruudut.IndexOf(slotti2) + " tavaroita " + slotti2.Resurssit[0].Tag.ToString() + " määrä " + slotti2.Resurssit.Count); 
     465                    } 
     466                    } 
     467                    return; 
     468                } 
     469            } 
     470            valittuEsine = null; 
     471        } 
     472 
    381473        ukko.PelaajaHakkaamassa = false; 
    382474        ukko.Animation.Stop(); 
     
    563655 
    564656 
     657 
     658public class Drop : PhysicsObject 
     659{ 
     660    public int luku = 10; 
     661    public List<GameObject> Resurssit = new List<GameObject>(); 
     662 
     663    public Drop(double leveys, double korkeus) 
     664        : base(leveys, korkeus * 0.5) 
     665    { 
     666 
     667    } 
     668 
     669} 
    565670public class Tree : PhysicsObject 
    566671{ 
     
    593698    GameObject stonetop; 
    594699    PhysicsObject stonebottom; 
     700    private IntMeter elamaLaskuri = new IntMeter(15, 0, 15); 
     701    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
    595702 
    596703    public Image TopImage 
     
    604711        : base(leveys, korkeus * 0.5) 
    605712    { 
     713        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
    606714        stonetop = new GameObject(leveys, korkeus * 0.5); 
    607715        stonetop.Bottom = this.Top; 
     
    653761{ 
    654762    GameObject ruutu; 
    655     List<GameObject> ruudut = new List<GameObject>(); 
     763    public List<GameObject> ruudut = new List<GameObject>(); 
    656764 
    657765 
     
    709817            if (slotti.Resurssit.Count == 0) 
    710818            { 
    711                 slotti.Resurssit.Add(resurssi); 
    712                 slotti.Maara++; 
    713                 slotti.Teksti.Text = slotti.Maara.ToString(); 
    714                 slotti.Image = resurssi.Image; 
     819                for (int i = 0; i < count; i++) 
     820                { 
     821                    slotti.Resurssit.Add(resurssi); 
     822                    slotti.Maara = slotti.Resurssit.Count; 
     823                    if (slotti.Maara > slotti.MaxMaara) slotti.Maara = slotti.MaxMaara; 
     824                    slotti.Teksti.Text = slotti.Maara.ToString(); 
     825                    
     826                } 
    715827                return slotti; 
    716828            } 
     
    725837    public Vector initialpos; 
    726838    public int Maara = 0; 
    727     public int MaxMaara = 20; 
     839    public int MaxMaara = 255; 
    728840    public List<GameObject> Resurssit = new List<GameObject>(); 
     841    public bool Valittu = false; 
    729842    public Slot(double leveys, double korkeus) 
    730843        : base(leveys, korkeus) 
Note: See TracChangeset for help on using the changeset viewer.