红雾🌌管弦乐队 EugenEugen欧
关注数: 28 粉丝数: 89 发帖数: 6,096 关注贴吧数: 47
2代弩对盾伤害比例是和弓箭一样的 对盾加成大概再X2,穿盾再X0.5 // Token: 0x06002522 RID: 9506 RVA: 0x00088ABC File Offset: 0x00086CBC private static void ComputeBlowDamageOnShield(in AttackInformation attackInformation, in AttackCollisionData attackCollisionData, WeaponComponentData attackerWeapon, float blowMagnitude, out int inflictedDamage) { inflictedDamage = 0; MissionWeapon victimShield = attackInformation.VictimShield; if (victimShield.CurrentUsageItem.WeaponFlags.HasAnyFlag(WeaponFlags.CanBlockRanged) && attackInformation.CanGiveDamageToAgentShield) { AttackCollisionData attackCollisionData2 = attackCollisionData; DamageTypes damageType = (DamageTypes)attackCollisionData2.DamageType; int getModifiedArmorForCurrentUsage = victimShield.GetGetModifiedArmorForCurrentUsage(); float absorbedDamageRatio = 1f; float num = MissionGameModels.Current.StrikeMagnitudeModel.ComputeRawDamage(damageType, blowMagnitude, (float)getModifiedArmorForCurrentUsage, absorbedDamageRatio); attackCollisionData2 = attackCollisionData; if (attackCollisionData2.IsMissile) { if (attackerWeapon.WeaponClass == WeaponClass.ThrowingAxe) { num *= 0.3f; } else if (attackerWeapon.WeaponClass == WeaponClass.Javelin) { num *= 0.5f; } else if (attackerWeapon.WeaponFlags.HasAnyFlag(WeaponFlags.CanPenetrateShield) && attackerWeapon.WeaponFlags.HasAnyFlag(WeaponFlags.MultiplePenetration)) { num *= 0.5f; } else { num *= 0.15f; } } else { attackCollisionData2 = attackCollisionData; switch (attackCollisionData2.DamageType) { case 0: case 2: num *= 0.7f; break; case 1: num *= 0.5f; break; } } if (attackerWeapon != null && attackerWeapon.WeaponFlags.HasAnyFlag(WeaponFlags.BonusAgainstShield)) { num *= 2f; } if (num > 0f) { if (!attackInformation.IsVictimAgentLeftStance) { num *= ManagedParameters.Instance.GetManagedParameter(ManagedParametersEnum.ShieldRightStanceBlockDamageMultiplier); } attackCollisionData2 = attackCollisionData; if (attackCollisionData2.CorrectSideShieldBlock) { num *= ManagedParameters.Instance.GetManagedParameter(ManagedParametersEnum.ShieldCorrectSideBlockDamageMultiplier); } num = MissionGameModels.Current.AgentApplyDamageModel.CalculateShieldDamage(attackInformation, num); inflictedDamage = (int)num; } } }
1 下一页