Esempio n. 1
0
    public override void forEachItem(Action <ItemData> consumer)
    {
        ItemData[] values;
        ItemData   v;

        for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                consumer(v);
            }
        }
    }
Esempio n. 2
0
    public void reloadConfig()
    {
        CDData[] values;
        CDData   v;

        for (int i = (values = _cds.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                v.reloadConfig();
            }
        }
    }
Esempio n. 3
0
    /** 构造 */
    public virtual void construct()
    {
        registLogics();

        UILogicBase[] values;
        UILogicBase   v;

        for (int i = (values = _logicDic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                v.construct();
            }
        }
    }
Esempio n. 4
0
    /** 获取某ID的第一个物品 */
    public override ItemData getItemByID(int id)
    {
        IntObjectMap <ItemData> dic = _dicByID.get(id);

        if (dic == null)
        {
            return(null);
        }

        if (!dic.isEmpty())
        {
            ItemData[] values;
            ItemData   v;

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

        return(null);
    }
Esempio n. 5
0
    protected void toCheckDic(IntObjectMap <FunctionConfig> dic)
    {
        //不是客户端驱动
        if (!CommonSetting.isClientDriveLogic)
        {
            return;
        }

        FunctionConfig[] values;
        FunctionConfig   v;

        for (int i = (values = dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                if (isFunctionOpen(v.id))
                {
                    if (v.needClose && checkConditions(v.closeConditions))
                    {
                        closeFunction(v.id);
                    }
                }
                else
                {
                    if (checkConditions(v.openConditions))
                    {
                        openFunction(v.id);
                    }
                }
            }
        }
    }
Esempio n. 6
0
    protected override void onEnter()
    {
        base.onEnter();

        int[]         keys   = _playerEventListenerDic.getKeys();
        EventAction[] values = _playerEventListenerDic.getValues();
        int           fv     = _playerEventListenerDic.getFreeValue();
        int           k;
        EventAction   v;

        for (int i = keys.Length - 1; i >= 0; --i)
        {
            if ((k = keys[i]) != fv)
            {
                v = values[i];

                _eventListenerList.add(me.addListener(k, v));

                if (_needCallListenerOnEnter)
                {
                    v.execute(null);
                }
            }
        }
    }
Esempio n. 7
0
    /** 通过组初始化 */
    public void init(int groupType, int groupID)
    {
        _configDic = TriggerConfig.getGroupDic(_groupType = groupType, _groupID = groupID);

        //没有配置
        if (_configDic == null)
        {
            return;
        }

        TriggerConfigData[] values;
        TriggerConfigData   v;

        for (int i = (values = _configDic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                if (v.isOpen)
                {
                    openTrigger(v.id);
                }
            }
        }

        onInit();

        //刚初始化好
        triggerEvent(TriggerEventType.OnInit);
    }
Esempio n. 8
0
    public static void init()
    {
        _sList = new SList <string> [LanguageType.size];

        SensitiveWordConfig[] values;
        SensitiveWordConfig   v;
        string         str;
        SList <string> list;

        for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                for (int j = 1; j < LanguageType.size; j++)
                {
                    if ((str = v.getStr(j)) != null)
                    {
                        if ((list = _sList[j]) == null)
                        {
                            _sList[j] = list = new SList <string>();
                        }

                        list.add(str);
                    }
                }
            }
        }
    }
Esempio n. 9
0
    /// <summary>
    /// 读完所有表后处理
    /// </summary>
    public static void afterReadConfigAll()
    {
        _randomDic = new IntObjectMap <RandomNameGroupData>();

        if (_dic != null)
        {
            RandomNameConfig[] values;
            RandomNameConfig   v;

            RandomNameGroupData gData;

            for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i)
            {
                if ((v = values[i]) != null)
                {
                    gData = _randomDic.computeIfAbsent(v.group, k => new RandomNameGroupData());

                    if (v.firstName.isEmpty())
                    {
                        gData.firstNames.add(v.firstName);
                    }

                    if (!v.secondName.isEmpty())
                    {
                        gData.secondNames.add(v.secondName);
                    }
                }
            }
        }
    }
Esempio n. 10
0
    /** 统计可接与可见任务列表 */
    private void countCanAcceptAndCanSeeQuests()
    {
        _canAcceptQuests.clear();
        _canSeeQuests.clear();

        QuestConfig[] values;
        QuestConfig   v;

        for (int i = (values = _waitAcceptQuests.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                if (checkSeeConditions(v))
                {
                    _canSeeQuests.put(v.id, v);
                }

                if (checkAcceptConditions(v, false))
                {
                    _canAcceptQuests.put(v.id, v);
                }
            }
        }

        me.dispatch(GameEventType.RefreshCanAcceptQuests);
        me.dispatch(GameEventType.RefreshCanSeeQuests);

        checkAutoAccept();
    }
Esempio n. 11
0
    /// <summary>
    /// 读完所有表后处理
    /// </summary>
    public static void afterReadConfigAll()
    {
        if (_dic == null)
        {
            return;
        }

        RewardConfig[] values;
        RewardConfig   v;

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

                v.needGrid = v.items.Length;

                if (v.randomListID > 0)
                {
                    v.needGrid += RandomItemListConfig.get(v.randomListID).getNeedGridNum();
                }
            }
        }
    }
Esempio n. 12
0
    public void setData(IntObjectMap <CDData> cds)
    {
        _cds = cds;

        if (cds != null && !cds.isEmpty())
        {
            IntObjectMap <CDData> groupMaxCDs  = _groupMaxCDs;
            IntIntMap             groupCDCount = _groupCDCount;

            CDData[] values = cds.getValues();
            CDData   data;

            for (int i = values.Length - 1; i >= 0; --i)
            {
                if ((data = values[i]) != null)
                {
                    int lastTime = data.getLastTime();

                    CDConfig config = data.config = CDConfig.get(data.id);

                    foreach (int v in config.groups)
                    {
                        groupCDCount.addValue(v, 1);

                        CDData oldMax = groupMaxCDs.get(v);

                        if (oldMax == null || oldMax.getLastTime() < lastTime)
                        {
                            groupMaxCDs.put(v, data);
                        }
                    }
                }
            }
        }
    }
Esempio n. 13
0
    /** 设置数据 */
    public void setData(IntObjectMap <BuffData> datas)
    {
        _buffDataDic = datas;

        if (datas != null && !datas.isEmpty())
        {
            BuffData[] values = datas.getValues();
            BuffData   data;

            for (int i = values.Length - 1; i >= 0; --i)
            {
                if ((data = values[i]) != null)
                {
                    data.config      = BuffConfig.get(data.id);
                    data.levelConfig = BuffLevelConfig.get(data.id, data.level);

                    toAddBuffToDic(data);

                    doAddActions(data, _parent.isDriveAll());
                }
            }

            for (int i = values.Length - 1; i >= 0; --i)
            {
                if ((data = values[i]) != null)
                {
                    data.timeMax = getBuffUseLastTime(data);
                }
            }
        }
    }
Esempio n. 14
0
    /** 写拷贝 */
    public void writeForCopy()
    {
        IntObjectMap <BuffData> dic = _buffDataDic;

        dic.clear();

        BuffData[] values = _buffDatas.getValues();
        BuffData   data;

        for (int i = values.Length - 1; i >= 0; --i)
        {
            if ((data = values[i]) != null)
            {
                dic.put(data.instanceID, data);
            }
        }
    }
Esempio n. 15
0
    /** 重新加载配置 */
    public void onReloadConfig()
    {
        int id = _config.id;

        _config      = SceneConfig.get(id);
        _placeConfig = ScenePlaceConfig.get(id);

        Unit[] values;
        Unit   v;

        for (int i = (values = _units.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                v.onReloadConfig();
            }
        }
    }
Esempio n. 16
0
    /** 添加CD组 */
    public void reAddCDs(IntObjectMap <CDData> dic, int dTime)
    {
        if (dic.isEmpty())
        {
            return;
        }

        IntObjectMap <CDData> cds = _cds;

        if (!cds.isEmpty())
        {
            Ctrl.throwError("这时cd组不应该有值");
        }

        IntObjectMap <CDData> groupMaxCDs  = _groupMaxCDs;
        IntIntMap             groupCDCount = _groupCDCount;
        UnitFightDataLogic    parent       = _parent;

        CDData[] values = dic.getValues();
        CDData   v;

        for (int i = values.Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                v.config    = CDConfig.get(v.id);
                v.timePass += dTime;

                //依然有效
                if (v.timePass < v.timeMax)
                {
                    cds.put(v.id, v);

                    foreach (int gv in v.config.groups)
                    {
                        groupCDCount.addValue(gv, 1);

                        CDData oldMax = groupMaxCDs.get(gv);

                        if (oldMax == null || oldMax.getLastTime() < v.getLastTime())
                        {
                            groupMaxCDs.put(gv, v);
                        }

                        //新的
                        if (oldMax == null)
                        {
                            parent.onStartGroupCD(gv);
                        }
                    }
                }
            }
        }

        _parent.onCDChange();
    }
Esempio n. 17
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();
    }
Esempio n. 18
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();
    }
Esempio n. 19
0
    /** 设置editor部分 */
    public static void setDic(IntObjectMap <ScenePlaceConfig> dic)
    {
        ScenePlaceConfig[] values;
        ScenePlaceConfig   v;

        for (int i = (values = dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                addSceneConfig(v);
            }
        }
    }
Esempio n. 20
0
    public void reloadConfig()
    {
        BuffData[] values;
        BuffData   v;

        for (int i = (values = _buffDataDic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                v.reloadConfig();
            }
        }
    }
Esempio n. 21
0
    /// <summary>
    /// 读完所有表后处理
    /// </summary>
    public static void afterReadConfigAll()
    {
        _dicT = new StringIntMap();

        BigFloatRankConfig[] values;
        BigFloatRankConfig   v;

        for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                _dicT.put(v.str, v.id);
            }
        }
    }
Esempio n. 22
0
    /** 读完所有表后处理 */
    public static void afterReadConfigAll()
    {
        _groupDic.clear();

        TriggerConfigData[] values;
        TriggerConfigData   v;

        for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                _groupDic.computeIfAbsent(v.groupType, k1 => new IntObjectMap <IntObjectMap <TriggerConfigData> >())
                .computeIfAbsent(v.groupID, k2 => new IntObjectMap <TriggerConfigData>())
                .put(v.id, v);
            }
        }
    }
Esempio n. 23
0
    /// <summary>
    /// 读完所有表后处理
    /// </summary>
    public static void afterReadConfigAll()
    {
        _vsDic = new IntObjectMap <CharacterConfig>();

        if (_dic != null)
        {
            CharacterConfig[] values;
            CharacterConfig   v;

            for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i)
            {
                if ((v = values[i]) != null)
                {
                    _vsDic.put(v.vocation << 4 | v.sex, v);
                }
            }
        }
    }
Esempio n. 24
0
    protected virtual void doAttackMoment(int moment, Unit from, Unit attacker, Unit target, AttackData lastData, DamageOneData damageOneData)
    {
        int[][] intArr;

        if ((intArr = lastData.levelConfig.momentActionsT[moment]) != null)
        {
            foreach (int[] args in intArr)
            {
                if (args[0] == moment)
                {
                    if (attacker.fight.randomProb(args[1]))
                    {
                        doOneAttackAction(args, 2, from, attacker, target, lastData);
                    }
                }
            }
        }

        IntObjectMap <int[]> momentDic = attacker.fight.getBuffLogic().getAttackProbActionDic(moment);

        if (momentDic != null && momentDic.size() > 0)
        {
            int[][] momentValues = momentDic.getValues();
            int[]   momentV;

            for (int j = momentValues.Length - 1; j >= 0; --j)
            {
                if ((momentV = momentValues[j]) != null)
                {
                    if (momentV[2] <= 0 || lastData.config.hasGroup(momentV[2]))
                    {
                        if (attacker.fight.randomProb(momentV[3]))
                        {
                            doOneAttackAction(momentV, 4, from, attacker, target, lastData);
                        }
                    }
                }
            }
        }
    }
Esempio n. 25
0
    /** 通过ID使用物品 */
    public override bool useItemByID(int id, UseItemArgData arg)
    {
        if (getItemNum(id) == 0)
        {
            return(false);
        }

        IntObjectMap <ItemData> dic = _dicByID.get(id);

        ItemData[] values;
        ItemData   v;

        for (int i = (values = dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                return(doUseItem(v, v.index, 1, arg));
            }
        }

        return(false);
    }
Esempio n. 26
0
    public virtual void dispose()
    {
        if (_d.funcTools != null)
        {
            IntObjectMap <FuncToolData> dic = _d.funcTools.get(FuncToolType.Rank);

            if (dic != null)
            {
                FuncToolData[] values2;
                FuncToolData   v2;

                for (int i2 = (values2 = dic.getValues()).Length - 1; i2 >= 0; --i2)
                {
                    if ((v2 = values2[i2]) != null)
                    {
                        //设置数据
                        me.func.getRoleGroupRankTool(v2.funcID).setData(v2);
                    }
                }
            }
        }
    }
Esempio n. 27
0
    /** 刷新变量属性 */
    private void refreshAttributesVar()
    {
        int value;

        BuffAddAttributeRefreshVarData[] values;
        BuffAddAttributeRefreshVarData   v;

        for (int i = (values = _attributeRefreshVarDic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                value = _parent.getSkillVarValueT(v.varID, v.adderInstanceID);

                if (value != v.value)
                {
                    _parent.attribute.addOneAttribute(v.type, value - v.value);

                    v.value = value;
                }
            }
        }
    }
Esempio n. 28
0
    /// <summary>
    /// 派发消息
    /// </summary>
    public void dispatch(int type, T data = default(T))
    {
        IntObjectMap <BaseEventAction> dic = _listenerDic.get(type);

        if (dic == null)
        {
            return;
        }

        int[]             keys   = dic.getKeys();
        BaseEventAction[] values = dic.getValues();
        int fv = dic.getFreeValue();
        int k;
        int safeIndex = dic.getLastFreeIndex();

        for (int i = safeIndex - 1; i != safeIndex; --i)
        {
            if (i < 0)
            {
                i = values.Length;
            }
            else if ((k = keys[i]) != fv)
            {
                values[i].execute(data);

                if (k != keys[i])
                {
                    ++i;
                }
            }
        }

        if (data != null && data is IEvt)
        {
            ((IEvt)data).clear();
        }
    }
Esempio n. 29
0
    /** 读数据后 */
    public void afterReadData()
    {
        PlayerRoleGroupMemberData[] values;
        PlayerRoleGroupMemberData   v;

        for (int i = (values = _d.members.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                if (v.title == RoleGroupTitleType.Leader)
                {
                    _leader = v;
                }
            }
        }

        if (_d.funcTools != null)
        {
            IntObjectMap <FuncToolData> dic = _d.funcTools.get(FuncToolType.Rank);

            if (dic != null)
            {
                FuncToolData[] values2;
                FuncToolData   v2;

                for (int i2 = (values2 = dic.getValues()).Length - 1; i2 >= 0; --i2)
                {
                    if ((v2 = values2[i2]) != null)
                    {
                        //设置数据
                        me.func.getRoleGroupRankTool(v2.funcID).setData(v2);
                    }
                }
            }
        }
    }
Esempio n. 30
0
    /// <summary>
    /// 读完所有表后处理
    /// </summary>
    public static void afterReadConfigAll()
    {
        if (_dic == null)
        {
            return;
        }

        AchievementConfig[] values;
        AchievementConfig   v;

        for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                if (v.pres.Length > 0)
                {
                    foreach (int v2 in v.pres)
                    {
                        _dic.get(v2).afters.add(v.id);
                    }
                }
            }
        }
    }