/// <summary> /// Malli, jonka avulla hakeutuvia ammuksia tehdään peliin. /// </summary> public Ammus AmmusHakeutuva1Malli() { Ammus ammusHakeutuva = new Ammus(25, 250.0); ammusHakeutuva.Color = Color.Orange; ammusHakeutuva.IsUpdated = true; ammusHakeutuva.MaxVelocity = 220; ammusHakeutuva.Kohde = pelaaja; ammusHakeutuva.LifetimeLeft = TimeSpan.FromSeconds(10); ammusHakeutuva.IgnoresCollisionResponse = true; ammusHakeutuva.IgnoresExplosions = true; ammusHakeutuva.Tag = "ammus"; ammusHakeutuva.Animation = new Animation(Animaatiot.BulletCImages); ammusHakeutuva.Animation.FPS = 5.6; ammusHakeutuva.Animation.Start(); ammusHakeutuva.Rajahdys = new Explosion(30.0); ammusHakeutuva.Rajahdys.Speed = 500.0; ammusHakeutuva.Rajahdys.Force = 200; ammusHakeutuva.Rajahdys.ShockwaveColor = Color.Yellow; ammusHakeutuva.Rajahdys.Sound = null; return(ammusHakeutuva); }
/// <summary> /// Malli, jonka avulla pelaajan heittämät pommit luodaan. /// </summary> public Ammus AmmusPommi1Malli() { Ammus pommi = new Ammus(16, 1000); pommi.LinearDamping = 0.7; pommi.Tag = "pommi"; pommi.Color = Color.DarkBlue; pommi.LifetimeLeft = TimeSpan.FromSeconds(1.5); pommi.IgnoresExplosions = true; pommi.Animation = new Animation(Animaatiot.BombImages); pommi.Animation.FPS = 6; pommi.Animation.Start(); pommi.CanRotate = false; pommi.Width = 48; pommi.Height = 56; //pommi.Rajahdys = new Explosion(TILE_SIZE * 1.5); pommi.Rajahdys = new Explosion(TILE_SIZE * 1.8); pommi.Rajahdys.Speed = 800.0; pommi.Rajahdys.Force = 1; pommi.Rajahdys.ShockwaveColor = Color.Orange; pommi.Rajahdys.Sound = null; pommi.Rajahdys.AddShockwaveHandler("vihollinen", PaineaaltoOsuuPeliolioon); pommi.Rajahdys.AddShockwaveHandler("pelaaja", PaineaaltoOsuuPeliolioon); pommi.Rajahdys.AddShockwaveHandler("seina", PaineaaltoOsuuPeliolioon); pommi.Rajahdys.AddShockwaveHandler("immuuniLuodeille", PaineaaltoOsuuPeliolioon); return(pommi); }
/// <summary> /// Suoritetaan kun peliolioon osuu ammus (CollisionHandlerin avulla). /// </summary> /// <param name="p">Peliolion viite</param> /// <param name="a">Ammuksen viite</param> private void PeliolioonOsuiAmmus(Peliolio p, Ammus a) { if (a.Ampuja.Tag != p.Tag && (string)p.Tag != "neutraali" && (string)p.Tag != "immuuniLuodeille") { a.Destroy(); p.OtaOsumaa(1); } }
/// <summary> /// Kun painetaan ampumisnappia, pelaaja ampuu halutun ammuksen /// </summary> /// <param name="p">pelaaja</param> public void PelaajaAmmu(Pelaaja p) { if (p.AmpumisAjastin.Enabled || p.ShouldDie()) { return; } else { Ammus ammus = Peli.AmmusLuoti1Malli(); ammus.Speed = 700; ammus.Position = p.Position; ammus.Ampuja = this; p.Shoot(p.pelaajanSuunta, ammus); //p.AmpumisAjastin.Reset(); p.AmpumisAjastin.Start(1); } }
/// <summary> /// Kun painetaan pomminheittonappia, pelaaja heittää pommin. /// </summary> /// <param name="p">pelaaja</param> public void PelaajaHeitaKranaatti(Pelaaja p) { if (p.KranaattiAjastin.Enabled || p.ShouldDie()) { return; } else { if (p.Tavarat.KaytaTavara((int)TavaraTyypit.Pommit)) { Ammus ammus = Peli.AmmusPommi1Malli(); ammus.Position = p.Position; ammus.Ampuja = this; //ammus.Rajahdys.AddShockwaveHandler("pelaaja", Harjoittelutyö.PaineaaltoOsuu); p.Shoot(p.pelaajanSuunta, ammus); //p.KranaattiAjastin.Reset(); p.KranaattiAjastin.Start(1); } } }
/// <summary> /// Malli, jonka avulla tavallisia ammuksia tehdään peliin. /// </summary> public Ammus AmmusLuoti1Malli() { Ammus ammus = new Ammus(10, 300); ammus.Color = Color.Yellow; ammus.IgnoresCollisionResponse = true; ammus.Image = Animaatiot.BulletAImage; ammus.Width = 24; ammus.Height = 24; ammus.Rajahdys = new Explosion(40.0); ammus.Rajahdys.Speed = 500.0; ammus.Rajahdys.Force = 200; ammus.Rajahdys.ShockwaveColor = Color.Yellow; ammus.Rajahdys.Sound = null; ammus.IgnoresExplosions = true; ammus.Tag = "ammus"; return(ammus); }
/// <summary> /// Malli, jonka avulla kimpoilevia ammuksia tehdään peliin. /// </summary> public Ammus AmmusKimpoileva1Malli() { Ammus kimpoileva = new Ammus(15, 600); kimpoileva.Color = Color.Green; kimpoileva.Restitution = 1.0; kimpoileva.IgnoresExplosions = true; kimpoileva.Tag = "ammusKimpoileva"; kimpoileva.LifetimeLeft = TimeSpan.FromSeconds(3.7); kimpoileva.Image = Animaatiot.BulletBImage; kimpoileva.Width = 48; kimpoileva.Height = 48; kimpoileva.CanRotate = false; kimpoileva.Rajahdys = new Explosion(40.0); kimpoileva.Rajahdys.Speed = 500.0; kimpoileva.Rajahdys.Force = 200; kimpoileva.Rajahdys.ShockwaveColor = Color.LimeGreen; kimpoileva.Rajahdys.Sound = null; return(kimpoileva); }