public override void Update( GameTime gameTime, Model model, Game1 game )
 {
     base.Update( gameTime, model, game );
     foreach( EntityEnemy enemy in model.Enemies )
         if( !_enemies.Contains( enemy ) && Collision( enemy ) )
         {
             _enemies.Add( enemy );
             enemy.DealDamage( this );
         }
 }
        public override void Update( GameTime gameTime, Model model, Game1 game )
        {
            if( model.DisplayingMessage )
                return;

            _updateTimer += gameTime.ElapsedGameTime.Milliseconds * 0.001f;

            if( _updateTimer >= _coolDown )
            {
                model.Add( new EntityEnemyZombee( new Vector2( Position.X, Position.Y ) ) );
                _updateTimer = 0f;
            }
        }
        public override void Update( GameTime gameTime, Model model, Game1 game )
        {
            base.Update( gameTime, model, game );

            foreach( EntityEnemy enemy in model.Enemies )
                if( !model.DisplayingMessage && Collision( enemy ) )
                {
                    IsAlive = false;
                    model.Bullets.Remove( this );
                    enemy.DealDamage( this );
                    return;
                }
        }
        public override void Update( GameTime gameTime, Model model, Game1 game )
        {
            UpdateMeleeTimer( gameTime );

            EntityPlayer player = model.Player;

            _rotation = (float) Math.Atan2( player.Position.Y - Position.Y, player.Position.X - Position.X );

            if( model.DisplayingMessage )
                return;

            if( Collision( player ) )
            {
                if( _canMeleeAttack )
                {
                    _canMeleeAttack = false;
                    player.DealDamage( (int) Entity.PLAYER_HEALTH / 20 );
                }

                return;
            }

            float xDifference = _speed * (float) Math.Cos( _rotation );
            float yDifference = _speed * (float) Math.Sin( _rotation );

            _sprite.X += xDifference;
            _sprite.Y += yDifference;

            // If there is a collision after the movement, undo the movement
            foreach( EntityEnemy enemy in model.Enemies )
                if( enemy.IsAlive && PlayingCollision( enemy ) )
                {
                    _sprite.X -= xDifference;
                    _sprite.Y -= yDifference;
                    return;
                }
        }