/// <summary> /// Recalculate a certain attribute. /// </summary> /// <param name="type"></param> private void RecalculateAttr(EAttrType type, bool isForced = false) { float _previous = GetAttr(type); attributes[(int)type].Recalculate(isForced); // trigger attribute change event OnAttrChange?.Invoke(type, _previous, GetAttr(type)); }
/// <summary> /// 初始化 /// </summary> /// <param name="iBlood">血量</param> /// <param name="iJumpCount">连跳次数</param> /// <param name="attrChange">属性变化通知</param> public void Init(int iBlood = 1, int iJumpCount = 0, OnAttrChange attrChange = null) { m_iBlood = iBlood; m_iJumpCount = iJumpCount; onAttrChange -= attrChange; onAttrChange += attrChange; PostChange(); }
public void RegisterRebuildFinish(T attrId, OnAttrChange handle) { rebuildFinishHandleMap[attrId] = handle; }