Esempio n. 1
0
        public override void Update(GameTime gameTime)
        {
            DelayCount = DelayCount + gameTime.ElapsedGameTime.Milliseconds;

            Delay = (TotalEnemiesSpawned * 200) + 1000;

            if (Delay < DelayCount)
            {
                DelayCount = 0;

                TotalEnemiesSpawned = TotalEnemiesSpawned + 1;

                float scale = Math.Max(TotalEnemiesSpawned / 10f, 0.3f);
                int armor = Math.Max((int)Math.Round(10 * scale), 10);
                int hp = (int)Convert.ToDouble(100 * scale);

                td_Enemy tempEnemy = new td_Enemy(this.Game, this.spriteBatch, scale, this.level, armor, hp);

                Game.Components.Add(tempEnemy);
                EnemiesAlive.Add(tempEnemy);
            }

            //EnemiesAlive = EnemiesAlive.Where(x => x.IsDead != true).ToList();

            base.Update(gameTime);
        }
Esempio n. 2
0
 private void Explode(td_Enemy enemy)
 {
     // base damage = this.Damage
     // enemy armor = enemy.Armor - this.ArmorPierce
     // final damage = base damage - enemy armor
     enemy.HP = enemy.HP - (this.Damage - (enemy.Armor - this.ArmorPierce));
 }
Esempio n. 3
0
        private Vector2 FindAngle(td_Enemy target, TimeSpan elapsedTime)
        {
            Vector2 enemy = target.Position;

            Vector2 direction = enemy - this.Position;

            direction.Normalize();

            direction = direction * 500;

            return direction;
        }
Esempio n. 4
0
        public override void Update(GameTime gameTime)
        {
            Target = FindTarget();

            if (Target != null)
            {
                Angle = FindAngle(Target, gameTime.ElapsedGameTime);

                FireCooldown = FireCooldown + FireCooldownRate;

                if (FireRate < FireCooldown)
                {
                    FireCooldown = 0;

                    Fire(Angle);
                }
            }
        }