本文整理汇总了C#中Buff.OnAdd方法的典型用法代码示例。如果您正苦于以下问题:C# Buff.OnAdd方法的具体用法?C# Buff.OnAdd怎么用?C# Buff.OnAdd使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Buff
的用法示例。
在下文中一共展示了Buff.OnAdd方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddBuff
public void AddBuff(int buffID, ActorController caster)
{
if (this.Unattacked || this.Unhealed)
{
return;
}
BuffInfo info = Globals.Instance.AttDB.BuffDict.GetInfo(buffID);
if (info == null)
{
global::Debug.LogErrorFormat("Get BuffInfo Error ID = {0}", new object[]
{
buffID
});
return;
}
if (this.IsDead)
{
return;
}
if (this.IsBuffResist(info))
{
return;
}
for (int i = 0; i < this.buffs.Count; i++)
{
if (!this.buffs[i].Deleted)
{
if (this.buffs[i].Info.ID == buffID)
{
int num;
if (this.buffs[i].Caster == caster)
{
num = info.SSrcStackType;
}
else
{
num = info.DSrcStackType;
}
switch (num)
{
case 0:
{
this.buffs[i].Duration = info.MaxDuration;
bool flag = false;
if (!this.buffs[i].Periodic && this.buffs[i].StackCount != info.InitStackCount)
{
this.buffs[i].ApplyEffect(false, false);
flag = true;
}
this.buffs[i].StackCount = info.InitStackCount;
Globals.Instance.ActorMgr.OnBuffUpdate(this.buffs[i].Owner, this.buffs[i].SerialID, this.buffs[i].Info, this.buffs[i].Duration, this.buffs[i].StackCount);
if (flag)
{
this.buffs[i].ApplyEffect(true, false);
}
this.buffs[i].OnAdd();
return;
}
case 1:
{
this.buffs[i].Duration = info.MaxDuration;
int num2 = this.buffs[i].StackCount + info.InitStackCount;
if (num2 > info.MaxStackCount)
{
num2 = info.MaxStackCount;
}
bool flag2 = false;
if (!this.buffs[i].Periodic && this.buffs[i].StackCount != num2)
{
this.buffs[i].ApplyEffect(false, false);
flag2 = true;
}
this.buffs[i].StackCount = num2;
Globals.Instance.ActorMgr.OnBuffUpdate(this.buffs[i].Owner, this.buffs[i].SerialID, this.buffs[i].Info, this.buffs[i].Duration, this.buffs[i].StackCount);
if (flag2)
{
this.buffs[i].ApplyEffect(true, false);
}
this.buffs[i].OnAdd();
return;
}
case 2:
break;
case 3:
return;
default:
global::Debug.LogErrorFormat("BuffID = {0}, invalid StackType = {1}", new object[]
{
info.ID,
num
});
break;
}
}
}
}
if (info.ReplaceType != 0)
{
for (int j = 0; j < this.buffs.Count; j++)
{
//.........这里部分代码省略.........