public VihollinenSplortsi(LegendOfPallo peli, Vector paikka, double leveys, double korkeus) : base(peli, leveys, korkeus) { Score = 1000; Hp = 150; Tag = "vihollinen"; Position = paikka; Width = Animaatiot.SplortsiImages[0].Width * 4; Height = Animaatiot.SplortsiImages[0].Height * 4; aivot = new LabyrinthWandererBrain(64); aivot.Speed = 300.0; aivot.LabyrinthWallTag = "seina"; aivot.DirectionChangeTimeout = 0.5; Mass = 10000; Brain = aivot; LinearDamping = 0.7; CanRotate = false; Animation = new Animation(Animaatiot.SplortsiImages); Animation.Start(); Animation.FPS = 5; Tavarat.LisaaTavara((int)TavaraTyypit.Avaimet, 1); Tavarat.LisaaTavara((int)TavaraTyypit.Raha, 10); Tavarat.LisaaTavara((int)TavaraTyypit.Sydan, 10); LuoSplortsilleKanuunaTavallinen(peli, new Vector(96, 96), 1, true); LuoSplortsilleKanuunaTavallinen(peli, new Vector(-96, -96), 3, true); LuoSplortsilleKanuunaTavallinen(peli, new Vector(-96, 96), 2, false); LuoSplortsilleKanuunaTavallinen(peli, new Vector(96, -96), 4, false); kanuunaHakeutuva = LuoSplortsilleKanuunaHakeutuva(peli); }
/// <summary> /// Rakentaja, jossa pelaajan tiedot asetetaan. /// </summary> /// <param name="peli">Pelin viite.</param> /// <param name="width">Pelaajan korkeus.</param> /// <param name="height">Pelaajan leveys.</param> /// <param name="tiedot">Pelaajan tiedot.</param> public Pelaaja(LegendOfPallo peli, double width, double height, PelaajanTiedot tiedot) : base(peli, width, height) { Hp = tiedot.MaxHp; CurrentHp = Math.Min(Math.Max(1, tiedot.CurrentHp), tiedot.MaxHp); Tavarat.LisaaTavara((int)TavaraTyypit.Pommit, (byte)tiedot.Pommit); Tavarat.LisaaTavara((int)TavaraTyypit.Elama, (byte)tiedot.Elamat); Image = Animaatiot.pelaajanKuvaN; Width = 56; Height = 56; Shape = Shape.Ellipse; Color = Color.Red; Restitution = 0.0; CanRotate = false; MaxVelocity = 160; LinearDamping = 0.7; IsUpdated = true; Tag = "pelaaja"; CollisionIgnoreGroup = (int)Types.Player; AmpumisAjastin = new Timer(); AmpumisAjastin.Interval = AmpumisVali; KranaattiAjastin = new Timer(); KranaattiAjastin.Interval = KranaatinHeittoVali; }
/// <summary> /// Käydään läpi peliolion kuollessa. /// </summary> public override void Destroy() { //Jos olio on tuhoutumaton, älä tuhoa sitä if (Hp == -1) { return; } //Jos destroy aliohjelmaa kutsutaan itsenäisesti, laitetaan CurrentHp nollaksi if (CurrentHp != 0) { CurrentHp = 0; } //Pudota olion tavarat maahan Tavarat.PudotaTavarat(); //Lisää pisteet olion kuolemasta, jos olio on vihollinen if ((string)Tag == "vihollinen" || (string)Tag == "immuuniLuodeille") { HUD.Pisteet += Score; } base.Destroy(); }
public VihollinenAmpuja(LegendOfPallo peli, double leveys, double korkeus) : base(peli, leveys, korkeus) { Score = 80; List <string> tagit = new List <string>() { "pelaaja" }; Color = Color.MediumPurple; LabyrinthWandererBrain aivot2 = new LabyrinthWandererBrain(64); aivot2.Speed = 150.0; aivot2.LabyrinthWallTag = "seina"; aivot2.DirectionChangeTimeout = 2.0; aivot = new FollowerBrain(); aivot.DistanceFar = 500; aivot.Speed = 200.0; aivot.TagsToFollow = tagit; aivot.FarBrain = aivot2; aivot.StopWhenTargetClose = true; aivot.DistanceClose = 400; Mass = 0.3; Hp = 10; Brain = aivot; CanRotate = false; LinearDamping = 0.7; IsUpdated = true; Tag = "vihollinen"; Animation = new Animation(Animaatiot.DemonImages); Animation.FPS = 4; Animation.Start(); kanuuna = new Kanuuna <Ammus>(Peli, 10, 10); kanuuna.IsVisible = false; kanuuna.AloitaTyhjana = false; kanuuna.AsetaKanuuna(0.2, 5.0, 3); kanuuna.Tag = "neutraali"; kanuuna.AmpumisKohde = null; kanuuna.MaxEtaisyysKohteeseen = 500; kanuuna.IgnoresCollisionResponse = true; kanuuna.Position = new Vector(0, 0); kanuuna.ammus += Peli.AmmusKimpoileva1Malli; Add(kanuuna); Tavarat.LisaaTavara((int)TavaraTyypit.Raha, 1); }
/// <summary> /// Käydään läpi pelaajan tuhoutuessa/kuollessa. /// </summary> public override void Destroy() { if (Hp == -1) { return; } if (CurrentHp != 0) { CurrentHp = 0; } Peli.pelaajanTiedot.Elamat = Tavarat.TavaranMaara((int)TavaraTyypit.Elama); --Peli.pelaajanTiedot.Elamat; Tavarat.KaytaTavara((int)TavaraTyypit.Elama, 1); Peli.PrinttaaTekstiJaOdotaInput("You died.", Peli.JatkaKuolemanJalkeen); base.Destroy(); }
/// <summary> /// Suoritetaan kun vihollinen tuhoutuu/kuolee. /// </summary> public override void Destroy() { if ((string)Tag == "vihollinen") //vihollinen ei kuole kokonaan, vaan herää henkiin vähän ajan päästä. { Tavarat.PudotaTavarat(); Animation = new Animation(Animaatiot.SwampyMeltImages); Animation.FPS = 4; Animation.Start(1); Animation.StopOnLastFrame = true; aivot.Speed = 0; aivot2.Speed = 0; KuolemaAjastin.Start(1); Clear(); Tag = "immuuniLuodeille"; //vihollista ei pysty tappamaaan luodeilla, kun se on tilapäisesti kuollut. Vain pommit tehoavat. Hp = 1; IgnoresCollisionResponse = true; IgnoresExplosions = false; } else //Jos vihollinen on jo tilapäisesti kullut ja se tapetaan pommeilla, tuhoa vihollinen lopullisesti. { Tavarat.PudotaTavarat(); base.Destroy(); } }
public void LisaaTavara(Lab02 tavara) { Tavarat.Add(tavara); tuoteLaskuri += tavara.Maara; Console.WriteLine("\nLisätty {0} jääkaappiin. Määrä yhteensä: {1}", tavara.Nimi, tavara.Maara); }