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.
38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
} |