public MotherBombBullet(Vector2 startingPoint, float speed, float direction, float maxDistance)
            : base(startingPoint, speed, direction, maxDistance)
        {
            this.damage = 400;
            this.originalSpeed = speed;
            this.baseSpeed = 15;
            this.grenadeDistance = 0.3f * OGE.WorldCamera.Width;
            this.texture = OGE.Content.Load<Texture2D>(@"Graphics\Entities\Bullets\RedGrenade");
            this.baseMask = new HitboxMask(texture.Height, texture.Height, texture.Height / 2, texture.Height / 2);

            Particle particlePrototype = new Particle();
            particlePrototype.ParticleColor = new Color(255, 60, 50);
            particlePrototype.DeltaScale = -0.1f;
            particlePrototype.DeltaSpeed = -0.1f;

            this.trailParticleGenerator = new TrailParticleGenerator(OGE.CurrentWorld.TrailEffectSystem, particlePrototype);
            this.trailParticleGenerator.Angle = direction + 180;
            this.trailParticleGenerator.ParticleTexture = ParticleTextureType.BlurredCircle;
            this.trailParticleGenerator.Speed = 2f;
            this.trailParticleGenerator.Scale = 0.5f;

            this.ExplosionColor = new Color(255, 60, 50);
            this.ExplosionRadius = 180;
            this.ExplosionPower = 20;
        }
Beispiel #2
0
        public UziBullet(Vector2 startingPoint, float speed, float direction, float maxDistance)
            : base(startingPoint, speed, direction, maxDistance)
        {
            this.damage = 10;

            Particle particlePrototype = new Particle();
            particlePrototype.ParticleColor = new Color(255, 250, 50);
            particlePrototype.DeltaScale = -0.03f;
            particlePrototype.DeltaAlpha = -0.03f;

            this.trailParticleGenerator = new TrailParticleGenerator(OGE.CurrentWorld.TrailEffectSystem, particlePrototype);
            this.trailParticleGenerator.Angle = direction + 180;
            this.trailParticleGenerator.ParticleTexture = ParticleTextureType.BlurredCircle;
            this.trailParticleGenerator.Speed = 10f;
            this.trailParticleGenerator.Scale = 0.25f;
        }
Beispiel #3
0
        public XenaBullet(Vector2 startingPoint, float speed, float direction, float maxDistance)
            : base(startingPoint, speed, direction, maxDistance)
        {
            this.damage = 25;

            Particle particlePrototype = new Particle();
            particlePrototype.ParticleColor = new Color(150, 255, 130);
            particlePrototype.DeltaScale = -0.005f;
            particlePrototype.DeltaAlpha = -0.01f;

            this.trailParticleGenerator = new TrailParticleGenerator(OGE.CurrentWorld.TrailEffectSystem, particlePrototype);
            this.trailParticleGenerator.Angle = direction + 180;
            this.trailParticleGenerator.AngleDisplacement = 1;
            this.trailParticleGenerator.ParticleTexture = ParticleTextureType.BlurredCircle;
            this.trailParticleGenerator.Speed = 5f;
            this.trailParticleGenerator.Scale = 0.1f;
        }
Beispiel #4
0
        public GrenadeBullet(Vector2 startingPoint, float speed, float direction, float maxDistance)
            : base(startingPoint, speed, direction, maxDistance)
        {
            this.damage = 400;
            this.originalSpeed = speed;

            Particle particlePrototype = new Particle();
            particlePrototype.ParticleColor = new Color(255, 60, 50);
            particlePrototype.DeltaScale = -0.1f;
            particlePrototype.DeltaSpeed = -0.1f;

            this.trailParticleGenerator = new TrailParticleGenerator(OGE.CurrentWorld.TrailEffectSystem, particlePrototype);
            this.trailParticleGenerator.Angle = direction + 180;
            this.trailParticleGenerator.ParticleTexture = ParticleTextureType.BlurredCircle;
            this.trailParticleGenerator.Speed = 2f;
            this.trailParticleGenerator.Scale = 0.5f;

            this.ExplosionColor = new Color(255, 60, 50);
            this.ExplosionRadius = 180;
            this.ExplosionPower = 20;
        }
        public BulletGrenadeBullet(Vector2 startingPoint, float speed, float direction, float maxDistance)
            : base(startingPoint, speed, direction, maxDistance)
        {
            this.damage = 0;
            this.originalSpeed = speed;

            Particle particlePrototype = new Particle();
            particlePrototype.ParticleColor = new Color(255, 250, 50);
            particlePrototype.DeltaScale = -0.1f;
            particlePrototype.DeltaSpeed = -0.1f;

            this.trailParticleGenerator = new TrailParticleGenerator(OGE.CurrentWorld.TrailEffectSystem, particlePrototype);
            this.trailParticleGenerator.Angle = direction + 180;
            this.trailParticleGenerator.ParticleTexture = ParticleTextureType.BlurredCircle;
            this.trailParticleGenerator.Speed = 2f;
            this.trailParticleGenerator.Scale = 0.5f;

            this.texture = OGE.Content.Load<Texture2D>(@"Graphics\Entities\Bullets\YellowBullet");
            this.baseMask = new HitboxMask(texture.Height, texture.Height, texture.Height / 2, texture.Height / 2);
            this.bulletSpeed = 15;
        }
Beispiel #6
0
        public SpikeBullet(Vector2 startingPoint, float speed, float direction, float maxDistance, float timeToRemove = 3)
            : base(startingPoint, speed, direction, maxDistance)
        {
            this.damage = 10;
            this.originalSpeed = speed;

            Particle particlePrototype = new Particle();
            particlePrototype.ParticleColor = new Color(255, 60, 50);
            particlePrototype.DeltaScale = -0.1f;
            particlePrototype.DeltaSpeed = -0.1f;

            this.trailParticleGenerator = new TrailParticleGenerator(OGE.CurrentWorld.TrailEffectSystem, particlePrototype);
            this.trailParticleGenerator.Angle = direction + 180;
            this.trailParticleGenerator.ParticleTexture = ParticleTextureType.BlurredCircle;
            this.trailParticleGenerator.Speed = 2f;
            this.trailParticleGenerator.Scale = 0f;

            this.ExplosionColor = new Color(255, 60, 50);
            this.ExplosionRadius = 20;
            this.ExplosionPower = 1;

            this.removalAlarm = new Alarm(timeToRemove, TweenType.OneShot, () => { OGE.CurrentWorld.RemoveEntity(this); });
            AddTween(removalAlarm, true);
        }
Beispiel #7
0
        private void IntializeParticleGenerators()
        {
            Particle particlePrototype = new Particle();
            particlePrototype.ParticleColor = new Color(40, 72, 127);
            particlePrototype.DeltaScale = -0.06f;
            particlePrototype.DeltaAlpha = -0.1f;

            this.trailParticleGenerator = new TrailParticleGenerator(OGE.CurrentWorld.TrailEffectSystem, particlePrototype);
            this.trailParticleGenerator.AngleDisplacement = 15;
            this.trailParticleGenerator.Speed = 2;
            this.trailParticleGenerator.Scale = 0.5f;

            Particle prototype = new Particle();
            prototype.DeltaScale = -0.03f;
            prototype.DeltaSpeed = -0.02f;
            prototype.DeltaAngle = 5f;

            this.fractionalGenerator = new FractionalParticleGenerator(OGE.CurrentWorld.ExplosionEffectSystem, prototype, 6);
            this.fractionalGenerator.Speed = 5;
            this.fractionalGenerator.NumberOfCircles = 3;
        }