/// <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);
    }
Beispiel #3
0
 /// <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);
     }
 }
Beispiel #4
0
    /// <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);
        }
    }
Beispiel #5
0
    /// <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);
    }