Class AIUtilities
- Namespace
- AshesOfVelsingrad.AI
- Assembly
- Ashes of Velsingrad.dll
Static utility methods for AI decision-making.
public static class AIUtilities
- Inheritance
-
AIUtilities
- Inherited Members
Methods
CalculateManhattanDistance(Vector3I, Vector3I)
Calculates Manhattan distance between two grid positions. Uses 3D Euclidean distance for more accurate pathfinding.
public static int CalculateManhattanDistance(Vector3I pos1, Vector3I pos2)
Parameters
pos1Vector3Ipos2Vector3I
Returns
CalculateMoveAway(UnitSystem, BattleState, Vector3I, int)
Calculates the best position to move away from the target.
public static Vector3I? CalculateMoveAway(UnitSystem unit, BattleState battleState, Vector3I targetPos, int minDistance)
Parameters
unitUnitSystembattleStateBattleStatetargetPosVector3IminDistanceint
Returns
- Vector3I?
CalculateMoveToRange(UnitSystem, BattleState, Vector3I, int)
Calculates the best position to move to get within skill range of the target.
public static Vector3I? CalculateMoveToRange(UnitSystem unit, BattleState battleState, Vector3I targetPos, int skillRange = 0)
Parameters
unitUnitSystembattleStateBattleStatetargetPosVector3IskillRangeint
Returns
- Vector3I?
CalculateThreatLevel(Vector3I, BattleState, int)
Calculates the total threat level of nearby enemies.
public static float CalculateThreatLevel(Vector3I position, BattleState battleState, int range)
Parameters
positionVector3IbattleStateBattleStaterangeint
Returns
CanKillThisTurn(UnitSystem, UnitSystem)
Determines if the AI can likely kill the target this turn.
public static bool CanKillThisTurn(UnitSystem attacker, UnitSystem target)
Parameters
attackerUnitSystemtargetUnitSystem
Returns
CountEnemyAlliesNear(UnitSystem, Vector3I, BattleState, int)
Counts the number of enemy allies near a given position within a specified range.
public static int CountEnemyAlliesNear(UnitSystem unit, Vector3I position, BattleState battleState, int range)
Parameters
unitUnitSystempositionVector3IbattleStateBattleStaterangeint
Returns
CountPlayerUnitsNear(UnitSystem, Vector3I, BattleState, int)
Counts the number of player units near a given position within a specified range.
public static int CountPlayerUnitsNear(UnitSystem unit, Vector3I position, BattleState battleState, int range)
Parameters
unitUnitSystempositionVector3IbattleStateBattleStaterangeint
Returns
EvaluatePositionDefensibility(Vector3I, BattleState)
Evaluates how defensible a position is.
public static float EvaluatePositionDefensibility(Vector3I position, BattleState battleState)
Parameters
positionVector3IbattleStateBattleState
Returns
FindCenterPoint(List<UnitSystem>, MapSystem)
Finds the center point between multiple units (useful for AOE positioning).
public static Vector3I? FindCenterPoint(List<UnitSystem> units, MapSystem mapSystem)
Parameters
unitsList<UnitSystem>mapSystemMapSystem
Returns
- Vector3I?
FindNearestThreat(UnitSystem, BattleState)
Finds the nearest threatening enemy unit.
public static UnitSystem? FindNearestThreat(UnitSystem unit, BattleState battleState)
Parameters
unitUnitSystembattleStateBattleState
Returns
GetUnitsInRange(Vector3I, int, List<UnitSystem>, MapSystem)
Gets all units within a certain range of a position.
public static List<UnitSystem> GetUnitsInRange(Vector3I position, int range, List<UnitSystem> units, MapSystem mapSystem)
Parameters
positionVector3IrangeintunitsList<UnitSystem>mapSystemMapSystem
Returns
HasLineOfSight(Vector3I, Vector3I, MapSystem)
Checks if there's a clear line of sight between two positions.
public static bool HasLineOfSight(Vector3I from, Vector3I to, MapSystem mapSystem)
Parameters
fromVector3ItoVector3ImapSystemMapSystem