Table of Contents

Class AIHealthCondition

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

Condition that evaluates based on a character's health percentage. Can check either the NPC's own health or the current target's health.

Examples:
- "Self health ≤ 40%" → use a defensive or healing ability.
- "Target health ≤ 20%" → use an execute ability.
- "Self health ≥ 80%" → use an offensive stance ability.

[CreateAssetMenu(fileName = "New AI Health Condition", menuName = "FishMMO/Character/NPC/AI/Conditions/Health Condition")]
public class AIHealthCondition : AIAbilityCondition
Inheritance
Object
ScriptableObject
AIHealthCondition
Inherited Members
ScriptableObject.SetDirty()
ScriptableObject.CreateInstance<T>()
Object.GetEntityId()
Object.GetInstanceID()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags

Fields

Operator

The comparison operator to use against the health percentage.

[Tooltip("How to compare the health percentage.")]
public ComparisonOperator Operator

Field Value

ComparisonOperator

Subject

Which character's health to evaluate.

[Tooltip("Which character's health to evaluate.")]
public ConditionSubject Subject

Field Value

ConditionSubject

Threshold

Health percentage threshold (0–1). E.g., 0.4 = 40%.

[Range(0, 1)]
[Tooltip("Health percentage threshold (0 = 0%, 1 = 100%).")]
public float Threshold

Field Value

float

Methods

Evaluate(AIController, ICharacter, ICharacter)

Evaluates whether the subject's health percentage satisfies the comparison. Returns false if the subject is null, dead, or has no health resource.

public override bool Evaluate(AIController controller, ICharacter self, ICharacter target)

Parameters

controller AIController

The AI controller of the NPC.

self ICharacter

The NPC's character.

target ICharacter

The NPC's current target (may be null).

Returns

bool

True if the health comparison holds, false otherwise.