Beispiel #1
0
    /// <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();
    }
Beispiel #3
0
 public void RegisterRebuildFinish(T attrId, OnAttrChange handle)
 {
     rebuildFinishHandleMap[attrId] = handle;
 }