/// <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); } }
/// <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); } } }