public static int GetExtraEffectCorrectionValue(int areaId, List <ExtraEffectStatus> extraEffectStatusList, int baseValue, MonsterData[] chipPlayers, MonsterData[] chipEnemys, MonsterData chipTarget, AffectEffectProperty affectEffectProperty, EffectStatusBase.ExtraEffectType effectType) { List <ExtraEffectStatus> list = ChipEffectStatus.CheckStageEffectInvalid(areaId, extraEffectStatusList, chipPlayers, chipEnemys, chipTarget); if (list.Count == 0) { return(baseValue); } bool flag = chipEnemys.Where((MonsterData item) => item.userMonster.userMonsterId == chipTarget.userMonster.userMonsterId).Any <MonsterData>(); GameWebAPI.RespDataMA_GetMonsterMG.MonsterM group = MonsterMaster.GetMonsterMasterByMonsterGroupId(chipTarget.monsterM.monsterGroupId).Group; GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster responseMonsterIntegrationGroupMaster = MasterDataMng.Instance().ResponseMonsterIntegrationGroupMaster; GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup[] source = responseMonsterIntegrationGroupMaster.monsterIntegrationGroupM.Where((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterId == chipTarget.monsterM.monsterId).ToArray <GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup>(); string[] monsterIntegrationIds = source.Select((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterIntegrationId).ToArray <string>(); GameWebAPI.RespDataMA_GetMonsterResistanceM.MonsterResistanceM resistanceMaster = MonsterResistanceData.GetResistanceMaster(chipTarget.monsterM.resistanceId); List <GameWebAPI.RespDataMA_GetMonsterResistanceM.MonsterResistanceM> uniqueResistanceList = MonsterResistanceData.GetUniqueResistanceList(chipTarget.GetResistanceIdList()); GameWebAPI.RespDataMA_GetMonsterResistanceM.MonsterResistanceM data = MonsterResistanceData.AddResistanceFromMultipleTranceData(resistanceMaster, uniqueResistanceList); Tolerance tolerance = ServerToBattleUtility.ResistanceToTolerance(data); GrowStep growStep = MonsterGrowStepData.ToGrowStep(group.growStep); List <ExtraEffectStatus> totalExtraEffectStatusList = ExtraEffectStatus.GetTotalExtraEffectStatusList(list, monsterIntegrationIds, chipTarget.monsterM.monsterGroupId, tolerance, group.tribe, growStep, affectEffectProperty, null, (!flag) ? ExtraEffectStatus.ExtraTargetType.Player : ExtraEffectStatus.ExtraTargetType.Enemy, effectType); if (totalExtraEffectStatusList.Count > 0) { return((int)ExtraEffectStatus.GetCorrectionValue((float)baseValue, totalExtraEffectStatusList)); } return(baseValue); }
public void SetImage(string iconId, string growStep) { string resourcePath = GUIMonsterIcon.InternalGetMonsterIconPathByIconId(iconId); string monsterIconPathByIconId = GUIMonsterIcon.GetMonsterIconPathByIconId(iconId); this.monsterImage.enabled = false; GUIMonsterIcon.SetTextureMonsterParts(this.monsterImage, resourcePath, monsterIconPathByIconId, true); this.monsterImage.enabled = true; UISprite component = base.gameObject.GetComponent <UISprite>(); int growStep2 = (int)MonsterGrowStepData.ToGrowStep(growStep); GUIMonsterIcon.SetThumbnailFrame(component, this.frameImage, growStep2); }
private int GetGardenGrowingMonsterNum(List <MonsterData> monsterDataList) { int num = 0; for (int i = 0; i < monsterDataList.Count; i++) { int growStep = (int)MonsterGrowStepData.ToGrowStep(monsterDataList[i].monsterMG.growStep); if (MonsterGrowStepData.IsGardenDigimonScope(growStep) && (monsterDataList[i].userMonster.IsEgg() || monsterDataList[i].userMonster.IsGrowing())) { num++; } } return(num); }
private int GetDigiHouseMonsterNum(List <MonsterData> monsterDataList) { int num = 0; for (int i = 0; i < monsterDataList.Count; i++) { int growStep = (int)MonsterGrowStepData.ToGrowStep(monsterDataList[i].monsterMG.growStep); if (!MonsterGrowStepData.IsGardenDigimonScope(growStep)) { num++; } } return(num); }
public List <GameWebAPI.RespDataMA_GetMonsterEvolutionM.Evolution> GetAfterMonsterEvolutionList(string monsterId, string growStep) { List <GameWebAPI.RespDataMA_GetMonsterEvolutionM.Evolution> list = null; if (!this.monsterEvolutionDic.TryGetValue(monsterId, out list)) { int growStep2 = (int)MonsterGrowStepData.ToGrowStep(growStep); list = new List <GameWebAPI.RespDataMA_GetMonsterEvolutionM.Evolution>(); if (MonsterGrowStepData.IsEggScope(growStep2) || MonsterGrowStepData.IsChild1Scope(growStep2) || MonsterGrowStepData.IsChild2Scope(growStep2)) { this.GetAfterEvolutionChildList(monsterId, ref list); this.monsterEvolutionDic.Add(monsterId, list); } } return(list); }
public void AddMonsterData(EvolutionDiagramData.IconMonster monsterData) { switch (MonsterGrowStepData.ToGrowStep(monsterData.master.Group.growStep)) { case GrowStep.CHILD_1: case GrowStep.CHILD_2: this.monsterListChild.Add(monsterData); break; case GrowStep.GROWING: this.monsterListGrowing.Add(monsterData); break; case GrowStep.RIPE: this.monsterListPipe.Add(monsterData); break; case GrowStep.PERFECT: this.monsterListPerfect.Add(monsterData); break; case GrowStep.ULTIMATE: this.monsterListUltimate.Add(monsterData); break; case GrowStep.ARMOR_1: case GrowStep.ARMOR_2: this.monsterListArmor.Add(monsterData); break; case GrowStep.HYBRID_GROWING: case GrowStep.HYBRID_RIPE: case GrowStep.HYBRID_PERFECT: case GrowStep.HYBRID_ULTIMATE: this.monsterListHybrid.Add(monsterData); break; } }
public List <GameWebAPI.RespDataMA_GetMonsterEvolutionM.Evolution> GetBeforeMonsterEvolutionList(string monsterId, string growStep) { List <GameWebAPI.RespDataMA_GetMonsterEvolutionM.Evolution> list = null; if (!this.baseMonsterEvolutionTable.TryGetValue(monsterId, out list)) { int growStep2 = (int)MonsterGrowStepData.ToGrowStep(growStep); list = new List <GameWebAPI.RespDataMA_GetMonsterEvolutionM.Evolution>(); if (!MonsterGrowStepData.IsEggScope(growStep2)) { if (MonsterGrowStepData.IsChild1Scope(growStep2) || MonsterGrowStepData.IsChild2Scope(growStep2) || MonsterGrowStepData.IsGrowingScope(growStep2)) { this.GetBeforeEvolutionChildList(monsterId, ref list); } else { this.GetBeforeEvolutionList(monsterId, ref list); } } this.baseMonsterEvolutionTable.Add(monsterId, list); } return(list); }
private static int GetExtraChipValue(MonsterData monsterData, EffectStatusBase.ExtraEffectType effectType) { float num = 0f; int areaId = ExtraEffectUtil.GetAreaId(); GameWebAPI.RespDataMA_GetMonsterMG.MonsterM group = MonsterMaster.GetMonsterMasterByMonsterGroupId(monsterData.monsterM.monsterGroupId).Group; foreach (int num2 in monsterData.GetChipEquip().GetChipIdList()) { GameWebAPI.RespDataMA_ChipEffectM.ChipEffect[] chipEffectData = ChipDataMng.GetChipEffectData(num2.ToString()); if (chipEffectData != null) { GameWebAPI.RespDataMA_ChipEffectM.ChipEffect[] invocationList = ChipEffectStatus.GetInvocationList(chipEffectData, EffectStatusBase.EffectTriggerType.Area, monsterData.monsterM.monsterGroupId.ToInt32(), null, areaId); int num3 = 0; EffectStatusBase.ExtraEffectType effectType2 = EffectStatusBase.ExtraEffectType.Non; switch (effectType) { case EffectStatusBase.ExtraEffectType.Atk: num3 = monsterData.userMonster.attack.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Atk; break; case EffectStatusBase.ExtraEffectType.Def: num3 = monsterData.userMonster.defense.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Def; break; case EffectStatusBase.ExtraEffectType.Hp: num3 = monsterData.userMonster.hp.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Hp; break; case EffectStatusBase.ExtraEffectType.Speed: num3 = monsterData.userMonster.speed.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Speed; break; case EffectStatusBase.ExtraEffectType.Satk: num3 = monsterData.userMonster.spAttack.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Satk; break; case EffectStatusBase.ExtraEffectType.Sdef: num3 = monsterData.userMonster.spDefense.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Sdef; break; default: if (effectType == EffectStatusBase.ExtraEffectType.SkillPower || effectType == EffectStatusBase.ExtraEffectType.SkillHit) { num3 = 0; effectType2 = EffectStatusBase.ExtraEffectType.Non; } break; } GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster responseMonsterIntegrationGroupMaster = MasterDataMng.Instance().ResponseMonsterIntegrationGroupMaster; GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup[] source = responseMonsterIntegrationGroupMaster.monsterIntegrationGroupM.Where((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterId == monsterData.monsterM.monsterId).ToArray <GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup>(); string[] monsterIntegrationIds = source.Select((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterIntegrationId).ToArray <string>(); num += ChipEffectStatus.GetChipEffectValueToFloat(invocationList, (float)num3, false, monsterIntegrationIds, monsterData.monsterM.monsterGroupId, ExtraEffectUtil.ResistanceToTolerance(monsterData), group.tribe, MonsterGrowStepData.ToGrowStep(group.growStep), null, null, ChipEffectStatus.TargetType.Actor, effectType2, 0); } } return(Mathf.FloorToInt(num)); }
public static List <ExtraEffectStatus> CheckStageEffectInvalid(int areaId, List <ExtraEffectStatus> extraEffectStatusList, MonsterData[] chipPlayers, MonsterData[] chipEnemys, MonsterData chipTarget) { List <ExtraEffectStatus> list = new List <ExtraEffectStatus>(); bool flag = chipEnemys.Where((MonsterData item) => item.userMonster.userMonsterId == chipTarget.userMonster.userMonsterId).Any <MonsterData>(); GameWebAPI.RespDataMA_GetMonsterMG.MonsterM group = MonsterMaster.GetMonsterMasterByMonsterGroupId(chipTarget.monsterM.monsterGroupId).Group; GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster responseMonsterIntegrationGroupMaster = MasterDataMng.Instance().ResponseMonsterIntegrationGroupMaster; GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup[] source = responseMonsterIntegrationGroupMaster.monsterIntegrationGroupM.Where((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterId == chipTarget.monsterM.monsterId).ToArray <GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup>(); string[] monsterIntegrationIds = source.Select((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterIntegrationId).ToArray <string>(); GameWebAPI.RespDataMA_GetMonsterResistanceM.MonsterResistanceM resistanceMaster = MonsterResistanceData.GetResistanceMaster(chipTarget.monsterM.resistanceId); List <GameWebAPI.RespDataMA_GetMonsterResistanceM.MonsterResistanceM> uniqueResistanceList = MonsterResistanceData.GetUniqueResistanceList(chipTarget.GetResistanceIdList()); GameWebAPI.RespDataMA_GetMonsterResistanceM.MonsterResistanceM data = MonsterResistanceData.AddResistanceFromMultipleTranceData(resistanceMaster, uniqueResistanceList); Tolerance tolerance = ServerToBattleUtility.ResistanceToTolerance(data); GrowStep growStep = MonsterGrowStepData.ToGrowStep(group.growStep); foreach (ExtraEffectStatus extraEffectStatus in extraEffectStatusList) { bool flag2 = true; for (int i = 0; i < chipPlayers.Length; i++) { MonsterData chipActer = chipPlayers[i]; if (chipActer != null) { ChipEffectStatus.TargetType targetType; if (chipActer.userMonster.userMonsterId == chipTarget.userMonster.userMonsterId) { targetType = ChipEffectStatus.TargetType.Actor; } else if (!chipEnemys.Where((MonsterData item) => item.userMonster.userMonsterId == chipActer.userMonster.userMonsterId).Any <MonsterData>()) { if (!flag) { targetType = ChipEffectStatus.TargetType.Player; } else { targetType = ChipEffectStatus.TargetType.Enemy; } } else if (flag) { targetType = ChipEffectStatus.TargetType.Player; } else { targetType = ChipEffectStatus.TargetType.Enemy; } foreach (int num in chipActer.GetChipEquip().GetChipIdList()) { GameWebAPI.RespDataMA_ChipEffectM.ChipEffect[] array = ChipDataMng.GetChipEffectData(num.ToString()); array = ChipEffectStatus.GetStageEffectInvalidList(areaId, array, extraEffectStatus).ToArray(); if (array.Length > 0) { List <GameWebAPI.RespDataMA_ChipEffectM.ChipEffect> totalChipEffectStatusList = ChipEffectStatus.GetTotalChipEffectStatusList(array, flag, monsterIntegrationIds, chipTarget.monsterM.monsterGroupId, tolerance, group.tribe, growStep, null, null, targetType, EffectStatusBase.ExtraEffectType.StageEffextInvalid); if (totalChipEffectStatusList.Count > 0) { flag2 = false; break; } } } } } if (flag2) { list.Add(extraEffectStatus); } } return(list); }