// 添加新Buff public void _internal_add_new_buff(BaseEntity caster, BuffCnf buffCnf) { BuffLog.Log("Attach Buff--> [{0}] add buff [{1}] ", _owner.ToDes(), buffCnf.desc); BaseBuff newBuff = _attach_buff(caster, buffCnf.id); /*//新Buff 默认情况下在OnAttach下会增加一层 TODO 剔除*/ bool result = newBuff.AddLayer(); // 触发回调 if (result) { newBuff.RaiseEvent(E_BuffEvent.BUFF_ADD_LAYER); } }
// buff 叠加 public void _internal_buff_overlap(BaseBuff oldBuff, BuffCnf buffCnf) { // 层级+1 bool result = oldBuff.AddLayer(); if (!result) { BuffLog.Log("Buff Add Layer 达到最大等级"); _internal_buff_refresh_time(oldBuff); return; } if (oldBuff.Info.RefreshOnAttach) { _internal_buff_refresh_time(oldBuff); } // 触发回调 // old_buff.RaiseEvent(E_BuffEvent.buff_add_layer); }