Esempio n. 1
0
    private void countNeedIncrease()
    {
        _needIncrease = false;

        AttributeCalculateInfo info = _info;

        int[] attributes = _attributes;
        int   currentID;
        int   maxID;
        int   index;

        foreach (int k in info.increaseList)
        {
            index = info.increaseToIndex[k];
            //有值
            if (attributes[k] != 0)
            {
                //无上限值或还没满
                if (_increaseNeedSet[index] = ((maxID = info.currentToMaxMap[currentID = info.increaseToCurrentMap[k]]) <= 0 || attributes[currentID] < attributes[maxID]))
                {
                    _needIncrease = true;
                }
            }
            else
            {
                _increaseNeedSet[index] = false;
            }
        }
    }
Esempio n. 2
0
    /** 初始化 */
    public static void init()
    {
        attribute             = new AttributeCalculateInfo();
        attribute.formulaFunc = BaseC.logic.calculateAttribute;

        status = new StatusCalculateInfo();

        roleAttribute             = new AttributeCalculateInfo();
        roleAttribute.formulaFunc = BaseC.logic.calculateAttribute;
    }
Esempio n. 3
0
    /** 数据信息 */
    public void setInfo(AttributeCalculateInfo info)
    {
        _info = info;

        _attributes             = new int[info.size];
        _attributeModifications = new bool[info.size];
        _changeSet            = new bool[info.size];
        _normalLastAttributes = new int[info.size];
        _lastDispatch         = new int[info.size];

        _currentMaxCache = new int[info.currentList.Length];

        _dispatchList = new int[info.needDispatchList.Length];

        _increaseNeedSet = new bool[info.increaseList.Length];
    }
Esempio n. 4
0
    /** 加一次 */
    private void increaseOnce()
    {
        AttributeCalculateInfo info = _info;

        bool[] increaseNeedSet = _increaseNeedSet;

        int type;
        int value;

        for (int i = increaseNeedSet.Length - 1; i >= 0; --i)
        {
            if (increaseNeedSet[i])
            {
                value = getAttribute(type = info.increaseList[i]);
                addOneAttribute(info.increaseToCurrentMap[type], value);
            }
        }
    }