/// <summary> /// 移除Buff /// </summary> /// <param name="buf"></param> public void RemoveBuff(BaseBuff buf) { ShowType curType = buf.BuffShowType; if (!m_mountDict.ContainsKey(curType)) { Debug.Log("Dict缺少key=" + curType); return; } if (!m_mountDict[curType].ContainsKey(buf.OnlyID)) { Debug.Log("Buff->" + buf.OnlyID + "不存在"); return; } m_mountDict[curType].Remove(buf.OnlyID); if (buf.Check(1)) { OnPreAttackFunc -= buf.OnPreAttack; } if (buf.Check(2)) { OnNextAttackFunc -= buf.OnNextAttack; } if (buf.Check(3)) { OnPreHurtFunc -= buf.OnPreHurted; } if (buf.Check(4)) { OnNextHurtFunc -= buf.OnNextHurted; } buf.Remove(); }
/// <summary> /// 挂载Buff /// </summary> /// <param name="buf"></param> public void MountBuff(BaseBuff buf) { ShowType curType = buf.BuffShowType; if (!m_mountDict.ContainsKey(curType)) { Debug.Log("Dict缺少key=" + curType); return; } if (m_mountDict[curType].ContainsKey(buf.OnlyID)) { m_mountDict[curType][buf.OnlyID].Overlying(buf); } else { if (buf.Check(1)) { OnPreAttackFunc += buf.OnPreAttack; } if (buf.Check(2)) { OnNextAttackFunc += buf.OnNextAttack; } if (buf.Check(3)) { OnPreHurtFunc += buf.OnPreHurted; } if (buf.Check(4)) { OnNextHurtFunc += buf.OnNextHurted; } buf.Mount(m_addLive); m_mountDict[curType].Add(buf.OnlyID, buf); } }