本文整理汇总了C#中Spell.CanOverride方法的典型用法代码示例。如果您正苦于以下问题:C# Spell.CanOverride方法的具体用法?C# Spell.CanOverride怎么用?C# Spell.CanOverride使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Spell
的用法示例。
在下文中一共展示了Spell.CanOverride方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckStackOrOverride
/// <summary>
/// Stack or removes the given Aura, if possible.
/// Returns whether the given incompatible Aura was removed or stacked.
/// <param name="err">Ok, if stacked or no incompatible Aura was found</param>
/// </summary>
public static bool CheckStackOrOverride(Aura oldAura, CasterInfo caster, Spell spell, ref SpellFailedReason err)
{
if (oldAura.Spell.IsPreventionDebuff)
{
err = SpellFailedReason.AuraBounced;
return false;
}
if (oldAura.Spell.CanStack && oldAura.Spell == spell)
{
// stack aura
oldAura.Stack(caster);
}
else
{
if (caster == oldAura.CasterInfo)
{
if (spell != oldAura.Spell &&
spell.AuraCasterGroup != null &&
spell.AuraCasterGroup == oldAura.Spell.AuraCasterGroup &&
spell.AuraCasterGroup.Count > 1)
{
err = SpellFailedReason.AuraBounced;
return false;
}
}
else if (!spell.CanOverride(oldAura.Spell))
{
err = SpellFailedReason.AuraBounced;
return false;
}
// cancel previously existing Aura
return oldAura.TryRemove(true);
}
return false;
}