protected void ProcessTargetSearch(Character currentCharacter) { var availableTargets = this.characterList .Where(t => this.IsWithinRange(currentCharacter.X, currentCharacter.Y, t.X, t.Y, currentCharacter.Range)) .ToList(); if (availableTargets.Count == 0) { return; } var target = currentCharacter.GetTarget(availableTargets); if (target == null) { return; } this.ProcessInteraction(currentCharacter, target); }