Files
VOIDRPG/Assets/90 - Scripts/Generic/AI/Schema/Conditionals/IsUnitInSight.cs
T
2026-07-09 21:33:33 +02:00

30 lines
1008 B
C#

using System.Text;
using Schema;
using UnityEngine;
using VOID.Generic.Dict;
using VOID.Generic.Objects.Unit;
namespace VOID.Generic.AI.Schema.Conditionals
{
[DarkIcon("Conditionals/d_IsNull")]
[LightIcon("Conditionals/IsNull")]
[Category(SchemaCategory.ThisUnit)]
public class IsUnitInSight : Conditional
{
[SerializeField] private AttitudeType _attitudeType;
public override bool Evaluate(object nodeMemory, SchemaAgent agent)
{
return (agent as UnitObjectSchemaAgent)?.unit.unitSenses.GetUnitsInSightByAttitude(_attitudeType).Count > 0;
}
public override GUIContent GetConditionalContent()
{
var sb = new StringBuilder();
if (invert) sb.Append("<color=red>NOT</color> ");
sb.Append(
$"<color=red>{nameof(UnitObjectSenses)}</color> has at least one <color=red>{_attitudeType}</color> in range");
return new GUIContent(sb.ToString());
}
}
}