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); } } }
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(); } } }
/** 构造 */ 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(); } } }
/** 获取某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); }
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); } } } } }
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); } } } }
/** 通过组初始化 */ 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); }
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); } } } } }
/// <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); } } } } }
/** 统计可接与可见任务列表 */ 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(); }
/// <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(); } } } }
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); } } } } } }
/** 设置数据 */ 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); } } } }
/** 写拷贝 */ 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); } } }
/** 重新加载配置 */ 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(); } } }
/** 添加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(); }
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(); }
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(); }
/** 设置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); } } }
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(); } } }
/// <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); } } }
/** 读完所有表后处理 */ 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); } } }
/// <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); } } } }
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); } } } } } }
/** 通过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); }
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); } } } } }
/** 刷新变量属性 */ 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; } } } }
/// <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(); } }
/** 读数据后 */ 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); } } } } }
/// <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); } } } } }