Ejemplo n.º 1
0
    /// <summary>
    /// 增加减益Buff
    /// </summary>
    /// <param name="type"></param>
    /// <param name="time"></param>
    /// <param name="value"></param>
    public void AddDeBuff(EnumDefine.DeBuffType type, float time, float value)
    {
        Debug.Log(this.gameObject.name + "--->:测试增加一个debuff" + "--->" + type.ToString());
        MMORPG_BaseDeBuff debuff = m_debuffs.Find(x => x.GetDeBuffType() == type);

        if (debuff != null)
        {
            debuff.OnInit(type, time, this, value);
        }
        else
        {
            MMORPG_BaseDeBuff instance = MMORPG_BaseDeBuff.GetInstance(type);
            instance.OnInit(type, time, this, value);
            this.m_debuffs.Add(instance);
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 更新减益buff
    /// </summary>
    protected void UpdateDeBuffs()
    {
        for (int i = 0; i < m_debuffs.Count; i++)
        {
            m_debuffs[i].OnUpdate();
        }

        for (int j = m_debuffs.Count - 1; j >= 0; j--)
        {
            MMORPG_BaseDeBuff debuff = this.m_debuffs[j];
            debuff.m_Time -= Time.deltaTime;
            if (m_debuffs[j].m_Time <= 0)
            {
                m_debuffs[j].OnDestory();
                m_debuffs.RemoveAt(j);
            }
        }
    }