示例#1
0
 public void Add(Projectile item)
 {
     Debug.Assert(item != null, "item is null.");
     ProjectileList.Add(item);
     EntityList.Add(item);
     PhysicalObjectList.Add(item);
 }
示例#2
0
 public void Shooting(Player Player)
 {
     if (Vector2.Distance(Player.Position, Position) <= Radius && ShootingCooldown <= 0)
     {
         Projectile projectile = new Projectile(Game1.redProTex, Position, Player.GetPlayerCenter(), Damage, Range, projectileSpeed);
         ShootingCooldown = 1000;
         ProjectileList.Add(projectile);
     }
 }
示例#3
0
 public bool Auto()
 {
     if (KeyMouseReader.mouseState.LeftButton == ButtonState.Pressed && firstWeapon.GetWeaponType() == WeaponTypes.auto)
     {
         if (firstWeapon.GetCooldown() <= 0)
         {
             projectile = new Projectile(Game1.yellowProTex, playerCenter, target, firstWeapon.GetDamage(), firstWeapon.GetRange(), firstWeapon.GetProjectileSpeed());
             ProjectileList.Add(projectile);
             firstWeapon.SetCooldown(firstWeapon.GetOriginCooldown());
             return(true);
         }
     }
     return(false);
 }
示例#4
0
 public bool SemiAuto()
 {
     if (KeyMouseReader.LeftClick() && firstWeapon.GetWeaponType() == WeaponTypes.semiAuto)
     {
         if (firstWeapon.GetCooldown() <= 0)
         {
             projectile = new Projectile(Game1.greenProTex, playerCenter, target, firstWeapon.GetDamage(), firstWeapon.GetRange(), firstWeapon.GetProjectileSpeed());
             ProjectileList.Add(projectile);
             firstWeapon.SetCooldown(firstWeapon.GetOriginCooldown());
             return(true);
         }
     }
     return(false);
 }
示例#5
0
        /// <summary>
        /// Makes the player shoot a projectile.
        /// </summary>
        /// <param name="shootFactor">The number of projectiles the player can shoot.</param>
        public void ShootBeam(float shootFactor)
        {
            if (CreateNewProjectile && CanShootProjectile && _Mana.mana >= _Mana.maxMana / shootFactor - 1)
            {
                _Mana.mana -= shootFactor;
                Projectile projectile = new Projectile(new Vector2(Position.X - 5, Position.Y + 11), Color.White, ProjectileAnimationSet, myGame, this);
                ProjectileList.Add(projectile);
                myGame.gameManager.shootSFX.Play(1f, 0f, 0f);
                HasShotProjectile = true;
            }

            if (_Mana.mana < 0)
            {
                _Mana.mana = 0;
            }
        }
示例#6
0
        public override ProjectileList ThrowProjectile(CreepUnitList InRange)
        {
            ProjectileList Projectiles = new ProjectileList();
            if (InRange.Count > 3)
            {
                Random rand = new Random();
                int toAtk = rand.Next(2);
                toAtk += 2;

                for (int i = 0; i < toAtk; i++)
                {
                    Projectiles.Add(ThrowProjectile(InRange[i]));
                }
            }
            else
            {
                for (int i = 0; i < InRange.Count; i++)
                {
                    Projectiles.Add(ThrowProjectile(InRange[i]));
                }
            }

            return Projectiles;
        }
 public void Spawn(IProjectile spawnable)
 {
     ProjectileList.Add(spawnable);
 }