public void Add(ProjectileType type, Dude owner, Vector2 position, Vector2 direction, bool canCollide) { direction.Normalize(); switch (type) { case ProjectileType.Knife: Add(position, Vector2.Zero, 10, true, new Rectangle(8, 0, 1, 1), 0f, 15f, owner, type); break; case ProjectileType.Pistol: Add(position, direction * 20f, 2000, canCollide, new Rectangle(0, 0, 2, 4), Helper.V2ToAngle(direction) + MathHelper.PiOver2, 5f, owner, type); break; case ProjectileType.Shot: Add(position, direction * (10f+((float)Helper.Random.NextDouble()*10f)), 1000, canCollide, new Rectangle(0, 0, 2, 2), Helper.V2ToAngle(direction) + MathHelper.PiOver2, 3f, owner, type); break; case ProjectileType.SMG: Add(position, direction * 17f, 1500, canCollide, new Rectangle(0, 0, 2, 2), Helper.V2ToAngle(direction) + MathHelper.PiOver2, 2f, owner, type); break; case ProjectileType.Rifle: Add(position, direction * 30f, 1500, canCollide, new Rectangle(0, 0, 2, 4), Helper.V2ToAngle(direction) + MathHelper.PiOver2, 8f, owner, type); break; } }
internal void AddVehicleWound(Dude d) { for (int i = 0; i < Helper.Random.Next(20); i++) { float a = (float)Helper.Random.NextDouble() * MathHelper.TwoPi; Vector2 dir = Helper.AngleToVector(a, ((float)Helper.Random.NextDouble() * 10f)); Add(d.Position, dir, 10000f, true, new Rectangle(0, 0, 7, 7), -0.01f + ((float)Helper.Random.NextDouble() * 0.02f), 3f, Color.White, 0.5f, SpecialParticle.Blood, ParticleBlendMode.Alpha, false); } }
public void Add(Vector2 spawnPos, Vector2 velocity, float life, bool canCollide, Rectangle sourcerect, float rot, float damage, Dude owner, ProjectileType type) { Projectile p = new Projectile(); p.Type = type; p.Owner = owner; p.Damage = damage; p.Position = spawnPos; p.Velocity = velocity; p.Life = life; p.CanCollide = canCollide; p.SourceRect = sourcerect; p.Active = true; //p.RotationSpeed = rot; p.Rotation = rot; Projectiles.Add(p); }