public static bool Prefix(CharacterObject attackerTroop, CharacterObject attackedTroop, int damage, bool isFatal, CombatXpModel.MissionTypeEnum missionType, out int xpAmount) { int val2 = 100; double num1; if (attackedTroop == null) { num1 = 0.400000005960464 * 2.0 * Math.Min(damage, val2); } else { val2 = attackedTroop.MaxHitPoints(); num1 = 0.400000005960464 * (((double)attackedTroop.GetPower() + 0.5) * (double)(Math.Min(damage, val2) + (isFatal ? val2 : 0))); } double num2; switch (missionType) { case CombatXpModel.MissionTypeEnum.Battle: num2 = 1.0; break; case CombatXpModel.MissionTypeEnum.PracticeFight: num2 = 1.0 / 16.0; break; case CombatXpModel.MissionTypeEnum.Tournament: num2 = 0.330000013113022; break; case CombatXpModel.MissionTypeEnum.SimulationBattle: num2 = 0.899999976158142; break; case CombatXpModel.MissionTypeEnum.NoXp: num2 = 0.0; break; default: num2 = 1.0; break; } float f = (float)(num1 * num2 * SubModule.Settings.Battle_SendAllTroops_XPMultiplier); xpAmount = MathF.Round(f); return(false); }
public static void GetXpFromHit( ref CharacterObject attackerTroop, ref CharacterObject captain, ref CharacterObject attackedTroop, ref PartyBase party, ref int damage, ref bool isFatal, ref CombatXpModel.MissionTypeEnum missionType, ref int xpAmount) { try { if (party.IsPlayerParty() && !attackerTroop.IsPlayer() && BannerlordCheatsSettings.Instance?.TroopExperienceMultiplier > 1f) { xpAmount = (int)Math.Round(xpAmount * BannerlordCheatsSettings.Instance.TroopExperienceMultiplier); } } catch (Exception e) { SubModule.LogError(e, typeof(TroopExperienceMultiplier)); } }
private static bool Prefix(CharacterObject attackerTroop, CharacterObject attackedTroop, int damage, bool isFatal, CombatXpModel.MissionTypeEnum missionType, out int xpAmount) { #if VERSION111 int num = attackedTroop.MaxHitPoints(); xpAmount = MBMath.Round(0.4f * ((attackedTroop.GetPower() + 0.5f) * (float)(Math.Min(damage, num) + (isFatal ? num : 0)))); if (missionType == CombatXpModel.MissionTypeEnum.SimulationBattle) { #pragma warning disable CS1717 // Assignment made to same variable xpAmount = xpAmount; #pragma warning restore CS1717 // Assignment made to same variable } if (missionType == CombatXpModel.MissionTypeEnum.PracticeFight) { xpAmount = MathF.Round((float)xpAmount * TournamentXPSettings.Instance.ArenaXPAdjustment); } if (missionType == CombatXpModel.MissionTypeEnum.Tournament) { xpAmount = MathF.Round((float)xpAmount * TournamentXPSettings.Instance.TournamentXPAdjustment); } #endif #if VERSION120 float single; int num = attackedTroop.MaxHitPoints(); float power = 0.4f * ((attackedTroop.GetPower() + 0.5f) * (Math.Min(damage, num) + (isFatal ? num : 0))); if (missionType == CombatXpModel.MissionTypeEnum.NoXp) { single = 0f; } else if (missionType == CombatXpModel.MissionTypeEnum.PracticeFight) { single = TournamentXPSettings.Instance.ArenaXPAdjustment; } else if (missionType == CombatXpModel.MissionTypeEnum.Tournament) { single = TournamentXPSettings.Instance.TournamentXPAdjustment; } else if (missionType == CombatXpModel.MissionTypeEnum.SimulationBattle) { single = 0.9f; } else { single = (missionType == CombatXpModel.MissionTypeEnum.Battle ? 1f : 1f); } xpAmount = MathF.Round(power * single); #endif return(false); }
static void Postfix(CharacterObject attackerTroop, CharacterObject attackedTroop, int damage, bool isFatal, CombatXpModel.MissionTypeEnum missionType, out int xpAmount) { int num = attackedTroop.MaxHitPoints(); float num2 = 0.4f * ((attackedTroop.GetPower() + 0.5f) * (float)(Math.Min(damage, num) + (isFatal ? num : 0))); float num3; if (missionType == CombatXpModel.MissionTypeEnum.NoXp) { num3 = 0f; } else if (missionType == CombatXpModel.MissionTypeEnum.PracticeFight) { num3 = Settings.ArenaHitXP; } else if (missionType == CombatXpModel.MissionTypeEnum.Tournament) { num3 = Settings.TournamentHitXP; } else if (missionType == CombatXpModel.MissionTypeEnum.SimulationBattle) { num3 = 0.9f; } else { num3 = ((missionType == CombatXpModel.MissionTypeEnum.Battle) ? 1f : 1f); } xpAmount = MBMathF.Round(num2 * num3); }
private static void Postfix(CharacterObject attackerTroop, CharacterObject attackedTroop, int damage, bool isFatal, CombatXpModel.MissionTypeEnum missionType, out int xpAmount) { int num = attackedTroop.MaxHitPoints(); xpAmount = MBMath.Round(0.4f * ((attackedTroop.GetPower() + 0.5f) * (float)(Math.Min(damage, num) + (isFatal ? num : 0)))); if (missionType == CombatXpModel.MissionTypeEnum.SimulationBattle) { #pragma warning disable CS1717 // Assignment made to same variable xpAmount = xpAmount; #pragma warning restore CS1717 // Assignment made to same variable } if (missionType == CombatXpModel.MissionTypeEnum.PracticeFight) { xpAmount = MathF.Round((float)xpAmount * TournamentXPSettings.Instance.ArenaXPAdjustment); } if (missionType == CombatXpModel.MissionTypeEnum.Tournament) { xpAmount = MathF.Round((float)xpAmount * TournamentXPSettings.Instance.TournamentXPAdjustment); } }
private static bool Prefix(CharacterObject attackerTroop, CharacterObject attackedTroop, int damage, bool isFatal, CombatXpModel.MissionTypeEnum missionType, out int xpAmount) { float single; int num = attackedTroop.MaxHitPoints(); float power = 0.4f * ((attackedTroop.GetPower() + 0.5f) * (Math.Min(damage, num) + (isFatal ? num : 0))); if (missionType == CombatXpModel.MissionTypeEnum.NoXp) { single = 0f; } else if (missionType == CombatXpModel.MissionTypeEnum.PracticeFight) { single = TournamentXPSettings.Instance.ArenaXPAdjustment; } else if (missionType == CombatXpModel.MissionTypeEnum.Tournament) { single = TournamentXPSettings.Instance.TournamentXPAdjustment; } else if (missionType == CombatXpModel.MissionTypeEnum.SimulationBattle) { single = 0.9f; } else { single = (missionType == CombatXpModel.MissionTypeEnum.Battle ? 1f : 1f); } xpAmount = MathF.Round(power * single); return(false); }