Beispiel #1
0
    /// <summary>
    /// 读完所有表后处理
    /// </summary>
    public static void afterReadConfigAll()
    {
        activityIDToUIIDdic.clear();
        functionIDToUIIDdic.clear();

        foreach (UIConfig config in _dic)
        {
            if (config != null)
            {
                if (config.activityIDs.Length > 0)
                {
                    for (int i = 0; i < config.activityIDs.Length; ++i)
                    {
                        activityIDToUIIDdic.put(config.activityIDs[i], config.id);
                    }
                }

                if (config.functionIDs.Length > 0)
                {
                    for (int i = 0; i < config.functionIDs.Length; ++i)
                    {
                        functionIDToUIIDdic.put(config.functionIDs[i], config.id);
                    }
                }
            }
        }
    }
    public override void dispose()
    {
        base.dispose();

        _equipNumDic.clear();
        _mLogic = null;
    }
Beispiel #3
0
    /** 清理数据 */
    public void clear()
    {
        //属性归零
        _attributesDataDic.clear();

        clearAttributesToDefault();
    }
Beispiel #4
0
    public void clear()
    {
        _data.modelID = -1;
        _dataParts.clear();

        //属性归零
        int[]       nowParts       = _nowParts;
        IntIntMap[] normalPartsDic = _normalPartsDic;
        IntIntMap   partDic;

        int[] normalParts    = _normalParts;
        int[] lastDispatches = _lastDispatches;

        for (int i = nowParts.Length - 1; i >= 0; --i)
        {
            nowParts[i]       = 0;
            normalParts[i]    = 0;
            lastDispatches[i] = 0;

            if ((partDic = normalPartsDic[i]) != null)
            {
                partDic.clear();
            }
        }

        _changeFacadeID = -1;
        _changeFacadeDic.clear();
    }
    /** 是否有物品位置 */
    public bool hasItemPlace(SList <ItemData> list)
    {
        if (list.size() == 1)
        {
            return(hasItemPlace(list.get(0)));
        }

        _tempDic.clear();

        ItemData[] values = list.getValues();
        ItemData   data;

        for (int i = 0, len = list.size(); i < len; ++i)
        {
            data = values[i];

            if (!ensureNum(data.num))
            {
                _tempDic.clear();
                return(false);
            }

            //有必要
            if (ItemConfig.get(data.id).totalPlusMax > 0)
            {
                _tempDic.put(data.id, data.num);
            }
        }

        if (!_tempDic.isEmpty())
        {
            ItemConfig config;

            foreach (var kv in _tempDic.entrySet())
            {
                config = ItemConfig.get(kv.key);

                //超出总上限
                if ((getItemNum(kv.key) + kv.value) > config.totalPlusMax)
                {
                    return(false);
                }
            }
        }

        return(hasFreeGrid(list.size()));
    }
Beispiel #6
0
 public void clear()
 {
     _cds.clear();
     _groupMaxCDs.clear();
     _groupCDCount.clear();
     _groupCDChangePercents.clear();
     _groupCDChangeValues.clear();
 }
Beispiel #7
0
    /** 重新获取 */
    public void refresh()
    {
        _lockDic.clear();
        _needSendSet.clear();

        if (_currentPage != -1)
        {
            getOnePage(_currentPage);
        }
    }
Beispiel #8
0
    public virtual void clear()
    {
        if (_buffDataDic != null)
        {
            _buffDataDic.clear();
        }

        _buffDatas.clear();
        _buffDatasByID.clear();
        _buffDatasForAllExist.clear();

        foreach (IntObjectMap <BuffData> v in _buffDatasBySubNums)
        {
            if (v != null)
            {
                v.clear();
            }
        }

        _buffInstanceIDMaker.reset();
        _skillProbChanges.clear();
        _intervalActions.clear();

        foreach (IntObjectMap <int[]> v in _attackProbActions)
        {
            if (v != null)
            {
                v.clear();
            }
        }

        _useSkillProbActions.clear();

        SList <DIntData>[] values = _shieldBuffDic.getValues();
        SList <DIntData>   v2;

        for (int i = values.Length - 1; i >= 0; --i)
        {
            if ((v2 = values[i]) != null)
            {
                v2.clear();
            }
        }

        _skillReplaceDic.clear();
        _skillProbReplaceDic.clear();

        _skillLevelUpDic.clear();
        _buffLevelUpDic.clear();
        _buffLastTimeAddDic.clear();

        _attributeRefreshVarDic.clear();
        _addAttributeRefreshVarASet.clear();
    }
    /** 缓存到当前数据(见BuffKeepType) */
    public void saveCache(MUnitCacheData data, int keepType)
    {
        data.cacheTime = getTimeMillis();

        //当前属性
        IntIntMap currentAttributes = data.currentAttributes;

        currentAttributes.clear();

        int[] currentList = AttributeControl.attribute.currentList;

        for (int i = currentList.Length - 1; i >= 0; --i)
        {
            currentAttributes.put(currentList[i], attribute.getAttribute(currentList[i]));
        }

        //buff
        IntObjectMap <BuffData> buffs = data.buffs;

        buffs.clear();

        BuffData[] values = buff.getBuffDatas().getValues();
        BuffData   v;

        for (int i = values.Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                if (v.config.keepType == keepType)
                {
                    buffs.put(v.instanceID, (BuffData)v.clone());                   //clone
                }
            }
        }

        //cd
        IntObjectMap <CDData> cds = data.cds;

        cds.clear();

        CDData[] cdValues = cd.getCDs().getValues();
        CDData   cdV;

        for (int i = cdValues.Length - 1; i >= 0; --i)
        {
            if ((cdV = cdValues[i]) != null)
            {
                if (CDConfig.get(cdV.id).keepType == keepType)
                {
                    cds.put(cdV.id, (CDData)cdV.clone());                   //clone
                }
            }
        }
    }
Beispiel #10
0
    public override void dispose()
    {
        if (!_effectList.isEmpty())
        {
            SList <UnitEffect> unitEffects = _effectList;
            UnitEffect         effect;

            for (int i = unitEffects.size() - 1; i >= 0; --i)
            {
                effect = unitEffects[i];
                effect.dispose();
                GameC.pool.unitEffectPool.back(effect);
            }

            unitEffects.clear();
        }

        _effectNumDic.clear();

        disposeMainShow();

        //析构GameObject
        _transform = null;

        //TODO:拆掉Part


        _modelLoadTool.clear();

        AssetPoolLoadTool[] values;
        AssetPoolLoadTool   v;

        for (int i = (values = _partLoadToolDic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                v.clear();
            }
        }

        AssetPoolControl.unloadOne(AssetPoolType.UnitMain, AssetCustomType.UnitMainObj, _gameObject);
        _gameObject = null;

        _actionID    = MotionType.Idle;
        _showModelID = -1;
        _modelReady  = false;
        _partDic.clear();
        _partReady.clear();

        clearMotion();

        base.dispose();
    }
    /** 重新构造辅助数据 */
    private void reMakeData()
    {
        _itemNums.clear();
        _dicByID.clear();

        foreach (var kv in _dic.entrySet())
        {
            ItemData v = kv.value;
            //绑定index
            v.index = kv.key;
            v.reloadConfig();

            getItemDicByIDAbs(v.id).put(v.index, v);

            _itemNums.addValue(v.id, v.num);
        }
    }
Beispiel #12
0
    public void writeForCopy()
    {
        doRefresh();

        IntIntMap dic = _attributesDataDic;

        dic.clear();

        int[] attributes = _attributes;
        int   v;

        for (int i = attributes.Length - 1; i >= 0; --i)
        {
            if ((v = (attributes[i])) != 0)
            {
                dic.put(i, v);
            }
        }
    }
Beispiel #13
0
    public override void dispose()
    {
        base.dispose();

        _scenePosLogic   = null;
        _targetUnit      = null;
        _targetPosSource = null;
        _attackConfig    = null;
        _hitEnabled      = true;

        _hitTimePass = 0;
        _hitDelay    = 0;

        if (_hitTargetNums != null)
        {
            _hitTargetNums.clear();
        }

        if (_tempUnitList != null)
        {
            _tempUnitList.clear();
        }
    }
Beispiel #14
0
    /// <summary>
    /// 添加一组物品
    /// </summary>
    public bool addItems(SList <ItemData> list, int way)
    {
        _tempMap.clear();
        ItemData data;

        for (int i = list.size() - 1; i >= 0; --i)
        {
            _tempMap.addValue((data = list.get(i)).id, data.num);
        }

        if (toAddItems(list, way))
        {
            toLogTempMap(way);
            return(true);
        }
        else
        {
            _tempMap.clear();
            return(false);
        }
    }