private void Start() { GameActor gameActor = ActorSys.Instance.GetMainActor(); mGameActor = gameActor; BuffCmpt buffCmpt = mGameActor.GetBuffCmpt(); buffCmpt.AddOnBuffAddListener(OnAddBuff); buffCmpt.AddOnRemoveAddListener(OnRemoveBuff); }
public float GetBuffedValue(GValueType type, BuffCmpt cmpt) { var buffList = cmpt.GetBuffList(); var srcValue = GetValue(type); var dstValue = srcValue; foreach (var buff in buffList) { var valueEffectCfg = buff.mBuffCfg.mValueEffectCfg; if (valueEffectCfg.mId > 0) { var process = valueEffectCfg.Process(srcValue); var delta = process - srcValue; srcValue += delta; } } return(0); }