You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.4 KiB
C#

using MalbersAnimations.Scriptables;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace MalbersAnimations.Controller.AI
{
[CreateAssetMenu(menuName = "Malbers Animations/Pluggable AI/Decision/Compare Stats", order = 4)]
public class CompareStatsDecision : MAIDecision
{
public override string DisplayName => "General/Compare Stats";
[Tooltip("Stats you want to find on the AI Animal")]
public StatID OwnStat;
[Tooltip("Compare values of the Stat")]
public ComparerInt compare = ComparerInt.Less;
[Tooltip("Stats you want to find on the Target")]
public StatID TargetStat;
public override bool Decide(MAnimalBrain brain, int index)
{
bool result = false;
var OwnStats = brain.AnimalStats;
var TargetStats = brain.TargetStats;
if (OwnStats != null && TargetStats != null)
{
if (OwnStats.TryGetValue(OwnStat, out Stat own) &&
TargetStats.TryGetValue(TargetStat, out Stat target))
{
return own.Value.CompareFloat(target.value, compare);
}
}
return result;
}
private void Reset() { Description = "Checks for a Stat value in the AI Animal and the Current Target, Compares the values using the condition"; }
}
}