using UnityEngine; using YachtDice.Modifiers.Core; using YachtDice.Modifiers.Definition; using YachtDice.Modifiers.Runtime; namespace YachtDice.Modifiers.Conditions { [CreateAssetMenu(fileName = "DiceValueCondition", menuName = "YachtDice/Modifiers/Conditions/Dice Value")] public class DiceValueCondition : Condition { [SerializeField, Range(1, 6)] private int targetValue = 1; [SerializeField] private int minCount = 1; public override bool Evaluate(ModifierContext context, ModifierInstance instance) { if (context.DiceValues == null) return false; var count = 0; foreach (var t in context.DiceValues) { if (t == targetValue) count++; } return count >= minCount; } #if UNITY_EDITOR public static DiceValueCondition CreateForTest(int targetValue, int minCount = 1) { var so = CreateInstance(); so.targetValue = targetValue; so.minCount = minCount; return so; } #endif } }