/// <summary> /// Moves player into the specified direction. /// </summary> /// <param name="direction">The direction in which player should be moved.</param> public void MovePlayer(Direction direction) { if (!_movementChecker.CheckMovement(_player, direction)) { return; } _player.Move(direction); }
/// <summary> /// Moves all the enemies. This is explicit interface implementation. /// </summary> void IEnemyMovementManager.MoveEnemies() { foreach (var enemy in Enemies) { Direction direction = enemy?.MovementAlgorithm?.ProvideDirection(enemy) ?? Direction.None; if (_movementChecker.CheckMovement(enemy, direction) && !_movementChecker.IsElementNextTo <Enemy>(enemy, direction)) { enemy?.Move(direction); } } }