// Token: 0x060036CA RID: 14026 RVA: 0x000F3424 File Offset: 0x000F1624 private static Fix64 ComputeMagicDamageValue(BattleProperty attackerProperty, BattleProperty targetProperty, ConfigDataSkillInfo skillInfo, bool isCritical, int targetTerrainBonus, int armyMagic, int armyMagicDefend, int meleePunish, bool useAttackAsMagic) { int num = attackerProperty.Magic; if (useAttackAsMagic) { num = attackerProperty.Attack; } Fix64 x = (Fix64)((long)num) * (Fix64.One + (Fix64)((long)armyMagic) * BattleFormula.d100) - (Fix64)((long)targetProperty.MagicDefense) * (Fix64.One - (Fix64)((long)attackerProperty.Buff_IgnoreDFMul) * BattleFormula.d10000) * (Fix64.One + (Fix64)((long)targetTerrainBonus) * BattleFormula.d100 + (Fix64)((long)armyMagicDefend) * BattleFormula.d100); if (x < Fix64.Zero) { x = Fix64.Zero; } Fix64 fix = x * (Fix64.One + (Fix64)((long)skillInfo.Power) * BattleFormula.d100); if (skillInfo.IsRangeSkill && !skillInfo.IsBattlefieldSkill() && meleePunish != 0) { fix *= Fix64.One - (Fix64)((long)meleePunish) * BattleFormula.d100; } Fix64 fix2 = fix; int num2 = attackerProperty.Buff_MagicalDamageMul + targetProperty.Buff_MagicalDamageReceiveMul; if (num2 != 0) { fix2 *= Fix64.One + (Fix64)((long)num2) * BattleFormula.d10000; } if (isCritical) { fix2 *= Fix64.One + (Fix64)((long)attackerProperty.CriticalDamage) * BattleFormula.d10000; } if (targetProperty.Buff_SuperMagicalDamageReceiveMul != 0) { fix2 *= Fix64.One + (Fix64)((long)targetProperty.Buff_SuperMagicalDamageReceiveMul) * BattleFormula.d10000; } int num3 = 0; if (skillInfo.IsActiveSkill) { num3 = attackerProperty.Buff_SkillDamageMul; } if (skillInfo.IsBattlefieldSkill()) { num3 += attackerProperty.Buff_BFSkillDamageMul; } if (num3 != 0) { fix2 *= Fix64.One + (Fix64)((long)num3) * BattleFormula.d10000; } if (skillInfo.IsRangeSkill && targetProperty.Buff_RangeDamageReceiveMul != 0) { fix2 *= Fix64.One + (Fix64)((long)targetProperty.Buff_RangeDamageReceiveMul) * BattleFormula.d10000; } if (fix2 < Fix64.One) { fix2 = Fix64.One; } return(fix2); }
// Token: 0x060036CE RID: 14030 RVA: 0x000F37B0 File Offset: 0x000F19B0 public static int ComputeSkillHpModifyValue(BattleProperty attackerProperty, BattleProperty targetProperty, ArmyRelationData armyRelation, ConfigDataSkillInfo skillInfo, bool isCritical, bool isBuffForceMagicDamage, bool isBanMeleePunish, ConfigDataTerrainInfo targetTerrain, int gridDistance, bool isSameTeam, RandomNumber randomNumber, IConfigDataLoader configDataLoader) { Fix64 value = Fix64.Zero; bool flag = false; if (skillInfo.SkillType == SkillType.SkillType_BF_DamageHeal) { if (isSameTeam) { flag = true; } } else if (skillInfo.IsHealSkill() || skillInfo.IsBuffSkill()) { flag = true; } if (flag) { value = BattleFormula.ComputeHealValue(attackerProperty, targetProperty, skillInfo); } else { int targetTerrainBonus = 0; if (targetTerrain != null) { targetTerrainBonus = targetTerrain.BattleBonus; } int meleePunish = 0; if (gridDistance <= 1 && !isBanMeleePunish) { meleePunish = configDataLoader.Const_MeleeATKPunish_Mult; } if (skillInfo.IsMagic) { value = -BattleFormula.ComputeMagicDamageValue(attackerProperty, targetProperty, skillInfo, isCritical, targetTerrainBonus, armyRelation.Magic, armyRelation.MagicDefend, meleePunish, false); } else if (isBuffForceMagicDamage) { value = -BattleFormula.ComputeMagicDamageValue(attackerProperty, targetProperty, skillInfo, isCritical, targetTerrainBonus, armyRelation.Attack, armyRelation.MagicDefend, meleePunish, true); } else { value = -BattleFormula.ComputePhysicalDamageValue(attackerProperty, targetProperty, skillInfo, isCritical, targetTerrainBonus, armyRelation.Attack, armyRelation.Defend, meleePunish); } } return((int)((long)Fix64.Round(value))); }
// Token: 0x060036CC RID: 14028 RVA: 0x000F36FC File Offset: 0x000F18FC public static Fix64 ComputeHealValue(BattleProperty attackerProperty, BattleProperty targetProperty, int skillPower, bool isPercent, bool useAttackAsMagic) { Fix64 baseHeal; if (isPercent) { baseHeal = (Fix64)((long)targetProperty.HealthPointMax) * (Fix64)((long)skillPower) * BattleFormula.d100; } else { int num = attackerProperty.Magic; if (useAttackAsMagic) { num = attackerProperty.Attack; } baseHeal = (Fix64)((long)num) * (Fix64.One + (Fix64)((long)skillPower) * BattleFormula.d100); } return(BattleFormula.ComputeHealFinalValue(baseHeal, attackerProperty.Buff_HealMul, targetProperty.Buff_HealReceiveMul)); }
// Token: 0x060036E6 RID: 14054 RVA: 0x000F3F58 File Offset: 0x000F2158 public static Fix64 ComputeHealValue(BattleProperty attackerProperty, BattleProperty targetProperty, ConfigDataSkillInfo skillInfo) { return(BattleFormula.ComputeHealValue(attackerProperty, targetProperty, skillInfo)); }
// Token: 0x060036E5 RID: 14053 RVA: 0x000F3F38 File Offset: 0x000F2138 public static Fix64 ComputeMagicDamageValue(BattleProperty attackerProperty, BattleProperty targetProperty, ConfigDataSkillInfo skillInfo, bool isCritical, int targetTerrainBonus, int armyMagic, int armyMagicDefend, int meleePunish, bool useAttackAsMagic) { return(BattleFormula.ComputeMagicDamageValue(attackerProperty, targetProperty, skillInfo, isCritical, targetTerrainBonus, armyMagic, armyMagicDefend, meleePunish, useAttackAsMagic)); }
// Token: 0x060036E4 RID: 14052 RVA: 0x000F3F24 File Offset: 0x000F2124 public static Fix64 ComputePhysicalDamageValue(BattleProperty attackerProperty, BattleProperty targetProperty, ConfigDataSkillInfo skillInfo, bool isCritical, int targetTerrainBonus, int armyAttack, int armyDefend, int meleePunish) { return(BattleFormula.ComputePhysicalDamageValue(attackerProperty, targetProperty, skillInfo, isCritical, targetTerrainBonus, armyAttack, armyDefend, meleePunish)); }
// Token: 0x060036CD RID: 14029 RVA: 0x000F3788 File Offset: 0x000F1988 private static Fix64 ComputeHealValue(BattleProperty attackerProperty, BattleProperty targetProperty, ConfigDataSkillInfo skillInfo) { bool isPercent = skillInfo.SkillType == SkillType.SkillType_BF_HealPercent; return(BattleFormula.ComputeHealValue(attackerProperty, targetProperty, skillInfo.Power, isPercent, false)); }
// Token: 0x06003725 RID: 14117 RVA: 0x000F6904 File Offset: 0x000F4B04 public static int ClampNegativeValue(int value) { return(BattleProperty.ClampNegativeValue(value)); }
// Token: 0x06003724 RID: 14116 RVA: 0x000F68F4 File Offset: 0x000F4AF4 public LuaExportHelper(BattleProperty owner) { this.m_owner = owner; }
// Token: 0x0600371C RID: 14108 RVA: 0x000F5AEC File Offset: 0x000F3CEC public void ComputeHeroProperties(IConfigDataLoader configDataLoader, ConfigDataHeroInfo heroInfo, ConfigDataJobConnectionInfo jobConnectionInfo, int jobLevel, int heroLevel, int heroStar, BattlePropertyModifier pm) { if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_ComputeHeroPropertiesIConfigDataLoaderConfigDataHeroInfoConfigDataJobConnectionInfoInt32Int32Int32BattlePropertyModifier_hotfix != null) { this.m_ComputeHeroPropertiesIConfigDataLoaderConfigDataHeroInfoConfigDataJobConnectionInfoInt32Int32Int32BattlePropertyModifier_hotfix.call(new object[] { this, configDataLoader, heroInfo, jobConnectionInfo, jobLevel, heroLevel, heroStar, pm }); return; } BJLuaObjHelper.IsSkipLuaHotfix = false; int growMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_HPMul); int growAdd = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_HPAdd); int buffMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HPMul); int buffAdd = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HPAdd); int selfMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_HPMul); int selfAdd = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_HPAdd); int growMul2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_ATMul); int growAdd2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_ATAdd); int buffMul2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_ATMul); int buffAdd2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_ATAdd); int selfMul2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_ATMul); int selfAdd2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_ATAdd); int growMul3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_DFMul); int growAdd3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_DFAdd); int buffMul3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_DFMul); int buffAdd3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_DFAdd); int selfMul3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_DFMul); int selfAdd3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_DFAdd); int growMul4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_MagicMul); int growAdd4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_MagicAdd); int buffMul4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicMul); int buffAdd4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicAdd); int selfMul4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_MagicMul); int selfAdd4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_MagicAdd); int growMul5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_MagicDFMul); int growAdd5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_MagicDFAdd); int buffMul5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicDFMul); int buffAdd5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicDFAdd); int selfMul5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_MagicDFMul); int selfAdd5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_MagicDFAdd); int growMul6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_DEXMul); int growAdd6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_DEXAdd); int buffMul6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_DEXMul); int buffAdd6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_DEXAdd); int selfMul6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_DEXMul); int selfAdd6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_DEXAdd); int heroStarMul = 0; int heroStarMul2 = 0; int heroStarMul3 = 0; int heroStarMul4 = 0; int heroStarMul5 = 0; int heroStarMul6 = 0; if (heroStar > 0) { int index = heroStar - 1; heroStarMul = heroInfo.HPStar[index]; heroStarMul2 = heroInfo.ATStar[index]; heroStarMul3 = heroInfo.DFStar[index]; heroStarMul4 = heroInfo.MagicStar[index]; heroStarMul5 = heroInfo.MagicDFStar[index]; heroStarMul6 = heroInfo.DEXStar[index]; } ConfigDataJobLevelInfo configDataJobLevelInfo = jobConnectionInfo.m_jobLevelInfos[jobLevel]; this.HealthPointMax = BattleFormula.ComputeHeroBattleProperty(configDataJobLevelInfo.HP_INI, configDataJobLevelInfo.HP_UP, heroLevel, heroStarMul, growMul, growAdd, buffMul, buffAdd, selfMul, selfAdd); this.Attack = BattleFormula.ComputeHeroBattleProperty(configDataJobLevelInfo.AT_INI, configDataJobLevelInfo.AT_UP, heroLevel, heroStarMul2, growMul2, growAdd2, buffMul2, buffAdd2, selfMul2, selfAdd2); this.Defense = BattleFormula.ComputeHeroBattleProperty(configDataJobLevelInfo.DF_INI, configDataJobLevelInfo.DF_UP, heroLevel, heroStarMul3, growMul3, growAdd3, buffMul3, buffAdd3, selfMul3, selfAdd3); this.Magic = BattleFormula.ComputeHeroBattleProperty(configDataJobLevelInfo.Magic_INI, configDataJobLevelInfo.Magic_UP, heroLevel, heroStarMul4, growMul4, growAdd4, buffMul4, buffAdd4, selfMul4, selfAdd4); this.MagicDefense = BattleFormula.ComputeHeroBattleProperty(configDataJobLevelInfo.MagicDF_INI, configDataJobLevelInfo.MagicDF_UP, heroLevel, heroStarMul5, growMul5, growAdd5, buffMul5, buffAdd5, selfMul5, selfAdd5); this.Dexterity = BattleFormula.ComputeHeroBattleProperty(configDataJobLevelInfo.DEX_INI, configDataJobLevelInfo.DEX_UP, heroLevel, heroStarMul6, growMul6, growAdd6, buffMul6, buffAdd6, selfMul6, selfAdd6); this.Buff_PhysicalDamageMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_PsyDmgMul); this.Buff_PhysicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_PsyDmgRecvMul); this.Buff_SuperPhysicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_SuperPsyDmgRecvMul); this.Buff_HealMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HealMul); this.Buff_HealReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HealRecvMul); this.Buff_MagicalDamageMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicDmgMul); this.Buff_MagicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicDmgRecvMul); this.Buff_SuperMagicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_SuperMagicDmgRecvMul); this.Buff_IgnoreDFMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_IgnoreDFMul); if (this.Buff_IgnoreDFMul > 10000) { this.Buff_IgnoreDFMul = 10000; } this.Buff_SkillDamageMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_SkillDmgMul); this.Buff_BFSkillDamageMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_BFSkillDmgMul); this.Buff_RangeDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_RangeDmgRecvMul); this.Buff_ReceiveCriticalRateAdd = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_RecvCriticalRateAdd); int const_CriticalDamageBase = configDataLoader.Const_CriticalDamageBase; int num = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_CriticalDamageAdd); int num2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_CriticalDamageAdd); int num3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_CriticalDamageAdd); this.CriticalDamage = const_CriticalDamageBase + (num + num2 + num3); int num4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_CriticalRateAdd); int num5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_CriticalRateAdd); int num6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_CriticalRateAdd); this.CriticalRate = this.Dexterity * 10 + (num4 + num5 + num6); if (this.CriticalRate > 10000) { this.CriticalRate = 10000; } int num7 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_HPCmdAdd); int num8 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HPCmdAdd); int num9 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_HPCmdAdd); int num10 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_ATCmdAdd); int num11 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_ATCmdAdd); int num12 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_ATCmdAdd); int num13 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_DFCmdAdd); int num14 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_DFCmdAdd); int num15 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_DFCmdAdd); int num16 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_MagicDFCmdAdd); int num17 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicDFCmdAdd); int num18 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_MagicDFCmdAdd); this.Cmd_HealthPoint = heroInfo.HPCmd_INI + num7 + num8 + num9; this.Cmd_Attack = heroInfo.ATCmd_INI + num10 + num11 + num12; this.Cmd_Defense = heroInfo.DFCmd_INI + num13 + num14 + num15; this.Cmd_MagicDefense = heroInfo.MagicDFCmd_INI + num16 + num17 + num18; int num19 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_BFAttackDistanceAdd); int num20 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_BFAttackDistanceAdd); this.AttackDistance = jobConnectionInfo.m_jobInfo.BF_AttackDistance + num19 + num20; this.AttackDistance = BattleProperty.ClampNegativeValue(this.AttackDistance); this.MagicSkillDistanceAdd = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicDistanceAdd); this.PhysicalSkillDistanceAdd = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_PsyDistanceAdd); int num21 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_BFMovePointAdd); int num22 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_BFMovePointAdd); this.MovePoint = jobConnectionInfo.m_jobInfo.BF_MovePoint + num21 + num22; this.MovePoint = BattleProperty.ClampNegativeValue(this.MovePoint); }
// Token: 0x0600371F RID: 14111 RVA: 0x000F6284 File Offset: 0x000F4484 public void ComputeSoldierProperties(IConfigDataLoader configDataLoader, ConfigDataSoldierInfo soldierInfo, ConfigDataHeroInfo heroInfo, int heroLevel, BattlePropertyModifier pm) { if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_ComputeSoldierPropertiesIConfigDataLoaderConfigDataSoldierInfoConfigDataHeroInfoInt32BattlePropertyModifier_hotfix != null) { this.m_ComputeSoldierPropertiesIConfigDataLoaderConfigDataSoldierInfoConfigDataHeroInfoInt32BattlePropertyModifier_hotfix.call(new object[] { this, configDataLoader, soldierInfo, heroInfo, heroLevel, pm }); return; } BJLuaObjHelper.IsSkipLuaHotfix = false; int growMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_HPMul); int growAdd = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_HPAdd); int buffMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_HPMul); int buffAdd = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_HPAdd); int growMul2 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_ATMul); int growAdd2 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_ATAdd); int buffMul2 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_ATMul); int buffAdd2 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_ATAdd); int growMul3 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_DFMul); int growAdd3 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_DFAdd); int buffMul3 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_DFMul); int buffAdd3 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_DFAdd); int growMul4 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_MagicDFMul); int growAdd4 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_MagicDFAdd); int buffMul4 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_MagicDFMul); int buffAdd4 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_MagicDFAdd); if (heroInfo != null) { int num = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_HPCmdAdd); int num2 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HPCmdAdd); int num3 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_HPCmdAdd); int num4 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_ATCmdAdd); int num5 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_ATCmdAdd); int num6 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_ATCmdAdd); int num7 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_DFCmdAdd); int num8 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_DFCmdAdd); int num9 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_DFCmdAdd); int num10 = pm.Get(PropertyModifyType.PropertyModifyType_Hero1_MagicDFCmdAdd); int num11 = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_MagicDFCmdAdd); int num12 = pm.Get(PropertyModifyType.PropertyModifyType_Hero3_MagicDFCmdAdd); this.Cmd_HealthPoint = heroInfo.HPCmd_INI + num + num2 + num3; this.Cmd_Attack = heroInfo.ATCmd_INI + num4 + num5 + num6; this.Cmd_Defense = heroInfo.DFCmd_INI + num7 + num8 + num9; this.Cmd_MagicDefense = heroInfo.MagicDFCmd_INI + num10 + num11 + num12; } else { this.Cmd_HealthPoint = 0; this.Cmd_Attack = 0; this.Cmd_Defense = 0; this.Cmd_MagicDefense = 0; } this.HealthPointMax = BattleFormula.ComputeSoldierBattleProperty(soldierInfo.HP_INI, soldierInfo.HP_UP, heroLevel, this.Cmd_HealthPoint, growMul, growAdd, buffMul, buffAdd); this.Attack = BattleFormula.ComputeSoldierBattleProperty(soldierInfo.AT_INI, soldierInfo.AT_UP, heroLevel, this.Cmd_Attack, growMul2, growAdd2, buffMul2, buffAdd2); this.Defense = BattleFormula.ComputeSoldierBattleProperty(soldierInfo.DF_INI, soldierInfo.DF_UP, heroLevel, this.Cmd_Defense, growMul3, growAdd3, buffMul3, buffAdd3); this.Magic = 0; this.MagicDefense = BattleFormula.ComputeSoldierBattleProperty(soldierInfo.MagicDF_INI, soldierInfo.MagicDF_UP, heroLevel, this.Cmd_MagicDefense, growMul4, growAdd4, buffMul4, buffAdd4); this.Dexterity = 0; this.Buff_PhysicalDamageMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_PsyDmgMul); this.Buff_PhysicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_PsyDmgRecvMul); this.Buff_SuperPhysicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_SuperPsyDmgRecvMul); this.Buff_HealMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HealMul); this.Buff_HealReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Hero2_HealRecvMul); this.Buff_MagicalDamageMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_MagicDmgMul); this.Buff_MagicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_MagicDmgRecvMul); this.Buff_SuperMagicalDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_SuperMagicDmgRecvMul); this.Buff_IgnoreDFMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_IgnoreDFMul); if (this.Buff_IgnoreDFMul > 10000) { this.Buff_IgnoreDFMul = 10000; } this.Buff_SkillDamageMul = 0; this.Buff_BFSkillDamageMul = 0; this.Buff_RangeDamageReceiveMul = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_RangeDmgRecvMul); this.Buff_ReceiveCriticalRateAdd = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_RecvCriticalRateAdd); int num13 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_CriticalDamageAdd); int num14 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_CriticalDamageAdd); this.CriticalDamage = soldierInfo.CriticalDamage + num13 + num14; int num15 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_CriticalRateAdd); int num16 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_CriticalRateAdd); this.CriticalRate = soldierInfo.CriticalRate + num15 + num16; if (this.CriticalRate > 10000) { this.CriticalRate = 10000; } int num17 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_BFAttackDistanceAdd); int num18 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_BFAttackDistanceAdd); this.AttackDistance = soldierInfo.BF_AttackDistance + num17 + num18; this.AttackDistance = BattleProperty.ClampNegativeValue(this.AttackDistance); int num19 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier1_BFMovePointAdd); int num20 = pm.Get(PropertyModifyType.PropertyModifyType_Soldier2_BFMovePointAdd); this.MovePoint = soldierInfo.BF_MovePoint + num19 + num20; this.MovePoint = BattleProperty.ClampNegativeValue(this.MovePoint); }