Class AIHealthCondition
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
-
ObjectScriptableObjectAIHealthCondition
- 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.nameObject.hideFlags
Fields
Operator
The comparison operator to use against the health percentage.
[Tooltip("How to compare the health percentage.")]
public ComparisonOperator Operator
Field Value
Subject
Which character's health to evaluate.
[Tooltip("Which character's health to evaluate.")]
public ConditionSubject Subject
Field Value
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
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
controllerAIControllerThe AI controller of the NPC.
selfICharacterThe NPC's character.
targetICharacterThe NPC's current target (may be null).
Returns
- bool
True if the health comparison holds, false otherwise.