private void PlayerAttackCollision(ICollideable collision, IEnemy roomEnemy) { if (!_player.Alive || _enemiesAttackThrottle.ContainsKey(roomEnemy) || !collision.CollidesWith(roomEnemy.Bounds)) { return; } collision.EnemyEffect(roomEnemy).Execute(); _enemiesAttackThrottle[roomEnemy] = ThrottleFrameDuration; if (roomEnemy.Alive) { return; } if (--_enemyCount == 0) { foreach (var door in _room.Doors.Values) { door.Activate(); } } if (roomEnemy is Stalfos || roomEnemy is Goriya || roomEnemy is WallMaster) { AddDroppedItem(roomEnemy.Bounds.Location); } }
private void PlayerAttackCollision(ICollideable collision, IEnemy roomEnemy) { if (!_player.Alive || _enemiesAttackThrottle.ContainsKey(roomEnemy) || !collision.CollidesWith(roomEnemy.Bounds)) { return; } collision.EnemyEffect(roomEnemy).Execute(); _enemiesAttackThrottle[roomEnemy] = ThrottleFrameDuration; if (roomEnemy.Alive) { return; } AddDroppedItem(roomEnemy.Bounds.Location); }