public Func <MonsterData, string, bool> GetMonsterChecker(string targetSubType) { ExtraEffectUtil.EventPointBonusTargetSubType key = (ExtraEffectUtil.EventPointBonusTargetSubType) int.Parse(targetSubType); Func <MonsterData, string, bool> result; if (!this.monsterCheckerTable.TryGetValue(key, out result)) { result = null; } return(result); }
public QuestBonusTargetCheck() { Dictionary <ExtraEffectUtil.EventPointBonusTargetSubType, Func <MonsterData, string, bool> > dictionary = new Dictionary <ExtraEffectUtil.EventPointBonusTargetSubType, Func <MonsterData, string, bool> >(); Dictionary <ExtraEffectUtil.EventPointBonusTargetSubType, Func <MonsterData, string, bool> > dictionary2 = dictionary; ExtraEffectUtil.EventPointBonusTargetSubType key = ExtraEffectUtil.EventPointBonusTargetSubType.MonsterTribe; if (QuestBonusTargetCheck.< > f__mg$cache0 == null) { QuestBonusTargetCheck.< > f__mg$cache0 = new Func <MonsterData, string, bool>(QuestBonusTargetCheck.CheckTribe); } dictionary2.Add(key, QuestBonusTargetCheck.< > f__mg$cache0); Dictionary <ExtraEffectUtil.EventPointBonusTargetSubType, Func <MonsterData, string, bool> > dictionary3 = dictionary; ExtraEffectUtil.EventPointBonusTargetSubType key2 = ExtraEffectUtil.EventPointBonusTargetSubType.MonsterGroup; if (QuestBonusTargetCheck.< > f__mg$cache1 == null) { QuestBonusTargetCheck.< > f__mg$cache1 = new Func <MonsterData, string, bool>(QuestBonusTargetCheck.CheckMonsterGroup); } dictionary3.Add(key2, QuestBonusTargetCheck.< > f__mg$cache1); Dictionary <ExtraEffectUtil.EventPointBonusTargetSubType, Func <MonsterData, string, bool> > dictionary4 = dictionary; ExtraEffectUtil.EventPointBonusTargetSubType key3 = ExtraEffectUtil.EventPointBonusTargetSubType.GrowStep; if (QuestBonusTargetCheck.< > f__mg$cache2 == null) { QuestBonusTargetCheck.< > f__mg$cache2 = new Func <MonsterData, string, bool>(QuestBonusTargetCheck.CheckGrowStep); } dictionary4.Add(key3, QuestBonusTargetCheck.< > f__mg$cache2); Dictionary <ExtraEffectUtil.EventPointBonusTargetSubType, Func <MonsterData, string, bool> > dictionary5 = dictionary; ExtraEffectUtil.EventPointBonusTargetSubType key4 = ExtraEffectUtil.EventPointBonusTargetSubType.SkillId; if (QuestBonusTargetCheck.< > f__mg$cache3 == null) { QuestBonusTargetCheck.< > f__mg$cache3 = new Func <MonsterData, string, bool>(QuestBonusTargetCheck.CheckSkill); } dictionary5.Add(key4, QuestBonusTargetCheck.< > f__mg$cache3); Dictionary <ExtraEffectUtil.EventPointBonusTargetSubType, Func <MonsterData, string, bool> > dictionary6 = dictionary; ExtraEffectUtil.EventPointBonusTargetSubType key5 = ExtraEffectUtil.EventPointBonusTargetSubType.MonsterIntegrationGroup; if (QuestBonusTargetCheck.< > f__mg$cache4 == null) { QuestBonusTargetCheck.< > f__mg$cache4 = new Func <MonsterData, string, bool>(QuestBonusTargetCheck.CheckMonsterIntegrationGroup); } dictionary6.Add(key5, QuestBonusTargetCheck.< > f__mg$cache4); this.monsterCheckerTable = dictionary; }
private static bool CheckExtraParams(MonsterData monsterData, GameWebAPI.RespDataMA_EventPointBonusM.EventPointBonus eventPointBonus) { if (float.Parse(eventPointBonus.effectValue) < 0f) { return(false); } ExtraEffectUtil.EventPointBonusTargetSubType eventPointBonusTargetSubType = (ExtraEffectUtil.EventPointBonusTargetSubType) int.Parse(eventPointBonus.targetSubType); switch (eventPointBonusTargetSubType) { case ExtraEffectUtil.EventPointBonusTargetSubType.MonsterTribe: if (monsterData.monsterMG.tribe.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.MonsterGroup: if (monsterData.monsterMG.monsterGroupId.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.GrowStep: if (monsterData.monsterMG.growStep.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.SkillId: if (monsterData.GetCommonSkill() != null && monsterData.GetCommonSkill().skillId.Equals(eventPointBonus.targetValue)) { return(true); } if (monsterData.GetLeaderSkill() != null && monsterData.GetLeaderSkill().skillId.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.ChipId: { MonsterChipEquipData chipEquip = monsterData.GetChipEquip(); int[] chipIdList = chipEquip.GetChipIdList(); if (chipIdList.Where((int item) => item == eventPointBonus.targetValue.ToInt32()).Any <int>()) { return(true); } break; } default: if (eventPointBonusTargetSubType == ExtraEffectUtil.EventPointBonusTargetSubType.MonsterIntegrationGroup) { GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup[] monsterIntegrationGroupM = MasterDataMng.Instance().ResponseMonsterIntegrationGroupMaster.monsterIntegrationGroupM; for (int i = 0; i < monsterIntegrationGroupM.Length; i++) { if (eventPointBonus.targetValue.Equals(monsterIntegrationGroupM[i].monsterIntegrationId) && monsterIntegrationGroupM[i].monsterId.Equals(monsterData.monsterM.monsterId)) { return(true); } } } break; } return(false); }
public void CheckEffectiveBonus() { BattleStateManager current = BattleStateManager.current; if (!current.onServerConnect) { return; } string b = string.Empty; if (current.battleMode == BattleMode.Multi) { b = DataMng.Instance().RespData_WorldMultiStartInfo.worldDungeonId; } else if (current.battleMode == BattleMode.PvP) { b = ClassSingleton <MultiBattleData> .Instance.PvPField.worldDungeonId; } else { b = ClassSingleton <QuestData> .Instance.RespDataWD_DungeonStart.worldDungeonId; } List <GameWebAPI.RespDataMA_EventPointBonusM.EventPointBonus> list = new List <GameWebAPI.RespDataMA_EventPointBonusM.EventPointBonus>(); GameWebAPI.RespDataMA_EventPointBonusM respDataMA_EventPointBonusMaster = MasterDataMng.Instance().RespDataMA_EventPointBonusMaster; foreach (GameWebAPI.RespDataMA_EventPointBonusM.EventPointBonus eventPointBonus2 in respDataMA_EventPointBonusMaster.eventPointBonusM) { if (eventPointBonus2.worldDungeonId == b && eventPointBonus2.effectType != "0") { list.Add(eventPointBonus2); } } using (List <GameWebAPI.RespDataMA_EventPointBonusM.EventPointBonus> .Enumerator enumerator = list.GetEnumerator()) { while (enumerator.MoveNext()) { GameWebAPI.RespDataMA_EventPointBonusM.EventPointBonus eventPointBonus = enumerator.Current; ExtraEffectUtil.EventPointBonusTargetSubType eventPointBonusTargetSubType = (ExtraEffectUtil.EventPointBonusTargetSubType) int.Parse(eventPointBonus.targetSubType); switch (eventPointBonusTargetSubType) { case ExtraEffectUtil.EventPointBonusTargetSubType.MonsterTribe: if (this.characterDatas.tribe.Equals(eventPointBonus.targetValue)) { this._effectiveBonus = true; return; } break; case ExtraEffectUtil.EventPointBonusTargetSubType.MonsterGroup: if (this.characterStatus.groupId.Equals(eventPointBonus.targetValue)) { this._effectiveBonus = true; return; } break; case ExtraEffectUtil.EventPointBonusTargetSubType.GrowStep: { string text = MonsterGrowStepData.ToGrowStepString(this.characterDatas.growStep); if (text.Equals(eventPointBonus.targetValue)) { this._effectiveBonus = true; return; } break; } case ExtraEffectUtil.EventPointBonusTargetSubType.SkillId: if (this.skillStatus.Length > 2 && this.skillStatus[2].skillId.Equals(eventPointBonus.targetValue)) { this._effectiveBonus = true; return; } if (this.leaderSkillStatus.leaderSkillId.Equals(eventPointBonus.targetValue)) { this._effectiveBonus = true; return; } break; case ExtraEffectUtil.EventPointBonusTargetSubType.ChipId: if (this.chipIds.Where((int item) => item == eventPointBonus.targetValue.ToInt32()).Any <int>()) { this._effectiveBonus = true; return; } break; default: if (eventPointBonusTargetSubType == ExtraEffectUtil.EventPointBonusTargetSubType.MonsterIntegrationGroup) { foreach (string value in this.characterStatus.monsterIntegrationIds) { if (eventPointBonus.targetValue.Equals(value)) { this._effectiveBonus = true; return; } } } break; } } } if (this.IsBonusQuest(this.characterStatus.groupId)) { this._effectiveBonus = true; return; } this._effectiveBonus = false; }