Method FindNearestEnemies
- Namespace
- GrindFest
- Assembly
- GrindFest.dll
FindNearestEnemies(string, string, string, float, float)
Finds all hostile enemies within range that the hero can reach, sorted by distance.
public static IReadOnlyList<MonsterBehaviour> FindNearestEnemies(string name1 = "", string name2 = null, string name3 = null, float maxDistance = 15, float howNear = 2)
Parameters
name1
stringPrimary name to search for. Monster name must contain this string. If empty, matches any name.
name2
stringOptional secondary name to search for. If provided, monster name must contain either this or name1.
name3
stringOptional tertiary name to search for. If provided, monster name must contain either this, name2, or name1.
maxDistance
floatMaximum search distance from the hero. Enemies beyond this range will be ignored.
howNear
floatHow close the hero needs to be able get to the enemy. Most melee attacks require you to stand at distance 2. Used for pathfinding checks.
Returns
- IReadOnlyList<MonsterBehaviour>
A list of reachable enemies sorted by distance (nearest first), or empty list if no valid enemies are found.
Remarks
Similar to FindNearestEnemy(string, string, string, float, float) but returns all matching enemies instead of just the closest one. The method filters enemies based on several criteria:
- Must be alive (not dead)
- Must be within maxDistance
- Must be hostile to the hero
- Must be reachable via navigation system
- Must match one of the provided name patterns if specified
var enemies = Hero.FindNearestEnemies(maxDistance: 20);
if (enemies.Count > 0)
{
var enemyNames = enemies.Select(e => e.name).ToArray();
Hero.Say($"I see {enemies.Count} enemies: {string.Join(", ", enemyNames)}");
}
var skeletons = Hero.FindNearestEnemies("Skeleton", maxDistance: 15);
Hero.Say($"Found {skeletons.Count} skeletons nearby!");