Exemplo n.º 1
0
    /// <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();
    }
Exemplo n.º 2
0
    /// <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);
        }
    }