Table of Contents

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

pos1 Vector3I
pos2 Vector3I

Returns

int

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

unit UnitSystem
battleState BattleState
targetPos Vector3I
minDistance int

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

unit UnitSystem
battleState BattleState
targetPos Vector3I
skillRange int

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

position Vector3I
battleState BattleState
range int

Returns

float

CanKillThisTurn(UnitSystem, UnitSystem)

Determines if the AI can likely kill the target this turn.

public static bool CanKillThisTurn(UnitSystem attacker, UnitSystem target)

Parameters

attacker UnitSystem
target UnitSystem

Returns

bool

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

unit UnitSystem
position Vector3I
battleState BattleState
range int

Returns

int

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

unit UnitSystem
position Vector3I
battleState BattleState
range int

Returns

int

EvaluatePositionDefensibility(Vector3I, BattleState)

Evaluates how defensible a position is.

public static float EvaluatePositionDefensibility(Vector3I position, BattleState battleState)

Parameters

position Vector3I
battleState BattleState

Returns

float

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

units List<UnitSystem>
mapSystem MapSystem

Returns

Vector3I?

FindNearestThreat(UnitSystem, BattleState)

Finds the nearest threatening enemy unit.

public static UnitSystem? FindNearestThreat(UnitSystem unit, BattleState battleState)

Parameters

unit UnitSystem
battleState BattleState

Returns

UnitSystem

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

position Vector3I
range int
units List<UnitSystem>
mapSystem MapSystem

Returns

List<UnitSystem>

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

from Vector3I
to Vector3I
mapSystem MapSystem

Returns

bool