Example #1
0
        public Bullet(GunPowerup gunPowerup, string textureName, PrebuiltEmitter trailEmitterType, Color emitterColor, Direction dir, float distanceLimit, int damage, bool phasing = false)
            : base(new Vector2(0, 0), new Hitbox(0, 0))
        {
            this.gunPowerup = gunPowerup;
            this.textureName = textureName;
            this.setTexture(textureName);
            this.damage = damage;
            this.distanceLimit = distanceLimit;
            this.phasing = phasing;
            float emitterAngle = 0;
            switch (dir)
            {
                case Direction.Up:
                    velocity = new Vector2(0, -MOVE_SPEED);
                    emitterAngle = (float)Math.PI / 2;
                    rotation = 0;
                    break;
                case Direction.Down:
                    velocity = new Vector2(0, MOVE_SPEED);
                    emitterAngle = (float)Math.PI * 3 / 2;
                    rotation = (float)Math.PI;
                    break;
                case Direction.Left:
                    velocity = new Vector2(-MOVE_SPEED, 0);
                    emitterAngle = 0;
                    rotation = (float)Math.PI * 3 / 2;
                    break;
                case Direction.Right:
                    velocity = new Vector2(MOVE_SPEED, 0);
                    emitterAngle = (float)Math.PI;
                    rotation = (float)Math.PI / 2;
                    break;
            }
            trailEmitter = Emitter.getPrebuiltEmitter(trailEmitterType);
            //trailEmitter.targetAngle = emitterAngle;
            trailEmitter.angle = emitterAngle;
            trailEmitter.startColor = emitterColor;
            emitterColor.A = 0;
            trailEmitter.endColor = emitterColor;

            explosionEmitter = Emitter.getPrebuiltEmitter(PrebuiltEmitter.BulletHitExplosion);
            emitterColor = new Color(emitterColor.R / 2, emitterColor.G / 2, emitterColor.B / 2, 255);
            explosionEmitter.startColor = emitterColor;
            emitterColor.A = 0;
            explosionEmitter.endColor = emitterColor;
            explosionEmitter.active = false;
        }
Example #2
0
        //public float targetAngle;
        //public float ANGULAR_VELOCITY = (float)Math.PI * 8;

        /* Hard coded emitter temples to use... get the particle emitter using this function instead of building your own.*/
        public static Emitter getPrebuiltEmitter(PrebuiltEmitter prebuiltEmitter)
        #region Prebuilt Emitter Declarations
        {
            Emitter e = null;

            switch (prebuiltEmitter)
            {
            case PrebuiltEmitter.BulletHitExplosion:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 100
                                , 0
                                , ParticleDeathMode.Distance
                                , 32
                                , 0
                                , 0.4f
                                , 0.4f
                                , new Color(255, 0, 0, 255)
                                , new Color(255, 0, 0, 0)
                                , ParticleRandType.Uniform
                                , 0.1f
                                , 0.05f
                                , 5
                                , 50
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 10
                                , -1
                                , 10
                                , false
                                , true
                                );
                break;

            case PrebuiltEmitter.BurstBoostFire:
                break;

            case PrebuiltEmitter.ChargingSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 40
                                , 0
                                , ParticleDeathMode.Seconds
                                , 0.3f
                                , 16
                                , 0.3f
                                , -1
                                , new Color(255, 215, 0, 255)
                                , new Color(255, 215, 0, 0)
                                , ParticleRandType.Uniform
                                , 0
                                , 0
                                , 0.1f
                                , 20
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 35
                                , 35
                                , -1
                                , false
                                , false
                                );
                break;

            case PrebuiltEmitter.BlinkEndSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 40
                                , 0
                                , ParticleDeathMode.Seconds
                                , 0.3f
                                , 16
                                , 0.3f
                                , -1
                                , new Color(255, 215, 0, 255)
                                , new Color(255, 215, 0, 0)
                                , ParticleRandType.Uniform
                                , 0
                                , 0
                                , 0.1f
                                , 20
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 50
                                , 50
                                , 50
                                , false
                                , false
                                );
                break;

            case PrebuiltEmitter.CollectedSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 75
                                , 0
                                , ParticleDeathMode.Seconds
                                , 1f
                                , 0
                                , 0.3f
                                , 0.7f
                                , new Color(111, 176, 172, 255)
                                , new Color(111, 176, 172, 0)
                                , ParticleRandType.Uniform
                                , 0.1f
                                , 0.2f
                                , 0
                                , 100
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 100
                                , -1
                                , 20
                                , false
                                , false
                                );
                break;

            case PrebuiltEmitter.BlinkOriginSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 75
                                , 0
                                , ParticleDeathMode.Seconds
                                , 1f
                                , 0
                                , 0.3f
                                , 0.7f
                                , new Color(111, 176, 172, 255)
                                , new Color(111, 176, 172, 0)
                                , ParticleRandType.Uniform
                                , 0.1f
                                , 0.2f
                                , 0
                                , 100
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 100
                                , -1
                                , 20
                                , false
                                , false
                                );
                break;

            case PrebuiltEmitter.DrillSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 100
                                , 0
                                , ParticleDeathMode.Seconds
                                , 0.5f
                                , 0
                                , 0.8f
                                , -1
                                , new Color(30, 30, 30, 128)
                                , new Color(30, 30, 30, 20)
                                , ParticleRandType.Uniform
                                , 0.2f
                                , 0.2f
                                , 0
                                , 50
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 100
                                , 20
                                , -1
                                , false
                                , true
                                );
                break;

            case PrebuiltEmitter.EnemyDeathExplosion:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 100
                                , 0
                                , ParticleDeathMode.Distance
                                , 48
                                , 0
                                , 0.5f
                                , 0.5f
                                , new Color(71, 93, 65, 255)
                                , new Color(71, 93, 65, 0)
                                , ParticleRandType.Uniform
                                , 0
                                , 0
                                , 0
                                , 0
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 50
                                , -1
                                , 50
                                , false
                                , true
                                );
                break;

            case PrebuiltEmitter.IdleBoostFire:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 30
                                , 0
                                , ParticleDeathMode.Distance
                                , 12
                                , 0
                                , 0.3f
                                , 0.1f
                                , Color.White
                                , new Color(0, 200, 100, 50)
                                , ParticleRandType.Gaussian
                                , 0.1f
                                , 0.05f
                                , 3
                                , 15
                                , 0.25f
                                , 0
                                , (float)(Math.PI / 2)
                                , 100
                                , 30
                                , -1
                                , true
                                , true
                                );
                break;

            case PrebuiltEmitter.LargeBulletSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 80
                                , 0
                                , ParticleDeathMode.Seconds
                                , 0.75f
                                , 24
                                , 0.8f
                                , 0.3f
                                , new Color(0, 0, 0, 255)
                                , new Color(0, 0, 0, 0)
                                , ParticleRandType.Uniform
                                , 0.2f
                                , 0.1f
                                , 0.1f
                                , 75
                                , 0
                                , 0
                                , (float)(Math.PI)
                                , 100
                                , 70
                                , -1
                                , true
                                , true
                                );
                break;

            case PrebuiltEmitter.MediumBulletSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 125
                                , 0
                                , ParticleDeathMode.Seconds
                                , 1f
                                , 0
                                , 0.6f
                                , 0.2f
                                , new Color(0, 0, 0, 255)
                                , new Color(0, 0, 0, 0)
                                , ParticleRandType.Uniform
                                , 0.2f
                                , 0.1f
                                , 0.2f
                                , 50
                                , 0
                                , 0
                                , (float)(Math.PI) / 3
                                , 75
                                , 40
                                , -1
                                , true
                                , true
                                );
                break;

            case PrebuiltEmitter.PrisonerSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 75
                                , 0
                                , ParticleDeathMode.Seconds
                                , 3
                                , 0
                                , 0.5f
                                , 0.5f
                                , Color.White
                                , Color.White
                                , ParticleRandType.Uniform
                                , 0
                                , 0
                                , 0
                                , 0
                                , 0
                                , 0
                                , (float)(Math.PI * 2)
                                , 75
                                , -1
                                , 75
                                , false
                                , false
                                );
                break;

            case PrebuiltEmitter.RocketBoostFire:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 60
                                , 0
                                , ParticleDeathMode.Distance
                                , 20
                                , 0
                                , 0.5f
                                , 0.1f
                                , new Color(255, 0, 0, 255)
                                , new Color(255, 160, 0, 50)
                                , ParticleRandType.Gaussian
                                , 0.2f
                                , 0.05f
                                , 5
                                , 15
                                , 0.25f
                                , 0
                                , (float)(Math.PI / 2)
                                , 100
                                , 50
                                , -1
                                , true
                                , true
                                );
                break;

            case PrebuiltEmitter.SmallBulletSparks:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 100
                                , 0
                                , ParticleDeathMode.Seconds
                                , 1f
                                , 0
                                , 0.4f
                                , 0.2f
                                , new Color(0, 0, 0, 255)
                                , new Color(0, 0, 0, 0)
                                , ParticleRandType.Uniform
                                , 0.2f
                                , 0.1f
                                , 0.2f
                                , 50
                                , 0
                                , 0
                                , (float)(Math.PI / 8)
                                , 50
                                , 30
                                , -1
                                , true
                                , true
                                );
                break;

            case PrebuiltEmitter.FlameFire:
                e = new Emitter(TextureManager.Get("circle")
                                , new Vector2(0, 0)
                                , 40
                                , 0
                                , ParticleDeathMode.Distance
                                , 12
                                , 0
                                , 0.1f
                                , 0.9f
                                , new Color(255, 0, 0, 255)
                                , new Color(255, 70, 0, 0)
                                , ParticleRandType.Uniform
                                , 0.1f
                                , 0.2f
                                , 4f
                                , 0
                                , 0.25f
                                , 0.25f
                                , (float)(2 * Math.PI)
                                , 400
                                , 500
                                , -1
                                , true
                                , true
                                );
                break;
            }
            return(e);
        }
Example #3
0
        //public float targetAngle;
        //public float ANGULAR_VELOCITY = (float)Math.PI * 8;

        /* Hard coded emitter temples to use... get the particle emitter using this function instead of building your own.*/
        public static Emitter getPrebuiltEmitter(PrebuiltEmitter prebuiltEmitter)
        #region Prebuilt Emitter Declarations
        {
            Emitter e = null;
            switch (prebuiltEmitter)
            {
                case PrebuiltEmitter.BulletHitExplosion:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 100
                    , 0
                    , ParticleDeathMode.Distance
                    , 32
                    , 0
                    , 0.4f
                    , 0.4f
                    , new Color(255, 0, 0, 255)
                    , new Color(255, 0, 0, 0)
                    , ParticleRandType.Uniform
                    , 0.1f
                    , 0.05f
                    , 5
                    , 50
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 10
                    , -1
                    , 10
                    , false
                    , true
                    );
                    break;
                case PrebuiltEmitter.BurstBoostFire:
                    break;
                case PrebuiltEmitter.ChargingSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 40
                    , 0
                    , ParticleDeathMode.Seconds
                    , 0.3f
                    , 16
                    , 0.3f
                    , -1
                    , new Color(255, 215, 0, 255)
                    , new Color(255, 215, 0, 0)
                    , ParticleRandType.Uniform
                    , 0
                    , 0
                    , 0.1f
                    , 20
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 35
                    , 35
                    , -1
                    , false
                    , false
                    );
                    break;
                case PrebuiltEmitter.BlinkEndSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 40
                    , 0
                    , ParticleDeathMode.Seconds
                    , 0.3f
                    , 16
                    , 0.3f
                    , -1
                    , new Color(255, 215, 0, 255)
                    , new Color(255, 215, 0, 0)
                    , ParticleRandType.Uniform
                    , 0
                    , 0
                    , 0.1f
                    , 20
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 50
                    , 50
                    , 50
                    , false
                    , false
                    );
                    break;
                case PrebuiltEmitter.CollectedSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 75
                    , 0
                    , ParticleDeathMode.Seconds
                    , 1f
                    , 0
                    , 0.3f
                    , 0.7f
                    , new Color(111, 176, 172, 255)
                    , new Color(111, 176, 172, 0)
                    , ParticleRandType.Uniform
                    , 0.1f
                    , 0.2f
                    , 0
                    , 100
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 100
                    , -1
                    , 20
                    , false
                    , false
                    );
                    break;
                case PrebuiltEmitter.BlinkOriginSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 75
                    , 0
                    , ParticleDeathMode.Seconds
                    , 1f
                    , 0
                    , 0.3f
                    , 0.7f
                    , new Color(111, 176, 172, 255)
                    , new Color(111, 176, 172, 0)
                    , ParticleRandType.Uniform
                    , 0.1f
                    , 0.2f
                    , 0
                    , 100
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 100
                    , -1
                    , 20
                    , false
                    , false
                    );
                    break;
                case PrebuiltEmitter.DrillSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 100
                    , 0
                    , ParticleDeathMode.Seconds
                    , 0.5f
                    , 0
                    , 0.8f
                    , -1
                    , new Color(30, 30, 30, 128)
                    , new Color(30, 30, 30, 20)
                    , ParticleRandType.Uniform
                    , 0.2f
                    , 0.2f
                    , 0
                    , 50
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 100
                    , 20
                    , -1
                    , false
                    , true
                    );
                    break;
                case PrebuiltEmitter.EnemyDeathExplosion:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 100
                    , 0
                    , ParticleDeathMode.Distance
                    , 48
                    , 0
                    , 0.5f
                    , 0.5f
                    , new Color(71, 93, 65, 255)
                    , new Color(71, 93, 65, 0)
                    , ParticleRandType.Uniform
                    , 0
                    , 0
                    , 0
                    , 0
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 50
                    , -1
                    , 50
                    , false
                    , true
                    );
                    break;
                case PrebuiltEmitter.IdleBoostFire:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 30
                    , 0
                    , ParticleDeathMode.Distance
                    , 12
                    , 0
                    , 0.3f
                    , 0.1f
                    , Color.White
                    , new Color(0, 200, 100, 50)
                    , ParticleRandType.Gaussian
                    , 0.1f
                    , 0.05f
                    , 3
                    , 15
                    , 0.25f
                    , 0
                    , (float)(Math.PI / 2)
                    , 100
                    , 30
                    , -1
                    , true
                    , true
                    );
                    break;
                case PrebuiltEmitter.LargeBulletSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 80
                    , 0
                    , ParticleDeathMode.Seconds
                    , 0.75f
                    , 24
                    , 0.8f
                    , 0.3f
                    , new Color(0, 0, 0, 255)
                    , new Color(0, 0, 0, 0)
                    , ParticleRandType.Uniform
                    , 0.2f
                    , 0.1f
                    , 0.1f
                    , 75
                    , 0
                    , 0
                    , (float)(Math.PI)
                    , 100
                    , 70
                    , -1
                    , true
                    , true
                    );
                    break;
                case PrebuiltEmitter.MediumBulletSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 125
                    , 0
                    , ParticleDeathMode.Seconds
                    , 1f
                    , 0
                    , 0.6f
                    , 0.2f
                    , new Color(0, 0, 0, 255)
                    , new Color(0, 0, 0, 0)
                    , ParticleRandType.Uniform
                    , 0.2f
                    , 0.1f
                    , 0.2f
                    , 50
                    , 0
                    , 0
                    , (float)(Math.PI) / 3
                    , 75
                    , 40
                    , -1
                    , true
                    , true
                    );
                    break;
                case PrebuiltEmitter.PrisonerSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 75
                    , 0
                    , ParticleDeathMode.Seconds
                    , 3
                    , 0
                    , 0.5f
                    , 0.5f
                    , Color.White
                    , Color.White
                    , ParticleRandType.Uniform
                    , 0
                    , 0
                    , 0
                    , 0
                    , 0
                    , 0
                    , (float)(Math.PI * 2)
                    , 75
                    , -1
                    , 75
                    , false
                    , false
                    );
                    break;
                case PrebuiltEmitter.RocketBoostFire:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 60
                    , 0
                    , ParticleDeathMode.Distance
                    , 20
                    , 0
                    , 0.5f
                    , 0.1f
                    , new Color(255, 0, 0, 255)
                    , new Color(255, 160, 0, 50)
                    , ParticleRandType.Gaussian
                    , 0.2f
                    , 0.05f
                    , 5
                    , 15
                    , 0.25f
                    , 0
                    , (float)(Math.PI / 2)
                    , 100
                    , 50
                    , -1
                    , true
                    , true
                    );
                    break;
                case PrebuiltEmitter.SmallBulletSparks:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 100
                    , 0
                    , ParticleDeathMode.Seconds
                    , 1f
                    , 0
                    , 0.4f
                    , 0.2f
                    , new Color(0, 0, 0, 255)
                    , new Color(0, 0, 0, 0)
                    , ParticleRandType.Uniform
                    , 0.2f
                    , 0.1f
                    , 0.2f
                    , 50
                    , 0
                    , 0
                    , (float)(Math.PI / 8)
                    , 50
                    , 30
                    , -1
                    , true
                    , true
                    );
                    break;
                case PrebuiltEmitter.FlameFire:
                    e = new Emitter(TextureManager.Get("circle")
                    , new Vector2(0, 0)
                    , 40
                    , 0
                    , ParticleDeathMode.Distance
                    , 12
                    , 0
                    , 0.1f
                    , 0.9f
                    , new Color(255, 0, 0, 255)
                    , new Color(255, 70, 0, 0)
                    , ParticleRandType.Uniform
                    , 0.1f
                    , 0.2f
                    , 4f
                    , 0
                    , 0.25f
                    , 0.25f
                    , (float)(2 * Math.PI)
                    , 400
                    , 500
                    , -1
                    , true
                    , true
                    );
                    break;
            }
            return e;
        }