using Articy.Touhou; using Articy.Unity; namespace Game { public static partial class UtilBuff { public static bool BuffPreCheck(int owner, int target, string buffId) { var buffCfg = Util.GetBuffConfig(buffId); foreach (var obj in buffCfg.Buff.BuffPreCheck) { var ret = true; if (obj is IObjectWithFeatureBuffPreCheckHasBuff) { ret = BuffPreCheckHasBuff(owner, target, obj); } if (!ret) { return false; } } return true; } private static bool BuffPreCheckHasBuff(int owner, int target, ArticyObject buffObj) { var buffHasBuff = ((IObjectWithFeatureBuffPreCheckHasBuff)buffObj).GetFeatureBuffPreCheckHasBuff(); var e = Util.GetEntity(target); if (e == null) { return false; } return Util.HasBuff(target, buffHasBuff.Buff.TechnicalName) == buffHasBuff.BooleanValue; } } }