From 457588a2c9ec2752c06bd09cccea374ac0a067b9 Mon Sep 17 00:00:00 2001 From: SpacedOutChicken <58439827+SpacedOutChicken@users.noreply.github.com> Date: Fri, 29 Jan 2021 03:31:52 -0700 Subject: [PATCH] Parameterize Civ Unique for increased XP gain (#3561) * no message * Revert "no message" This reverts commit 9ece60bd583a02e80d2c4886dceb1e5d3e9996a9. * Renamed Haka War Dance effect to Intimidation, to make it more applicable to non-Maori Warrior units. * no message * Parameterized civUnique for extra experience from combat * Update build.gradle.kts * Update BattleDamage.kt * Update Policies.json * Update Battle.kt * Fully parameterized nationwide XP gain --- android/assets/jsons/Civ V - Vanilla/Policies.json | 2 +- core/src/com/unciv/logic/battle/Battle.kt | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/android/assets/jsons/Civ V - Vanilla/Policies.json b/android/assets/jsons/Civ V - Vanilla/Policies.json index 670b8684f9..08c7df4a3f 100644 --- a/android/assets/jsons/Civ V - Vanilla/Policies.json +++ b/android/assets/jsons/Civ V - Vanilla/Policies.json @@ -105,7 +105,7 @@ }, { "name": "Military Tradition", - "uniques":["Military units gain 50% more Experience from combat"], + "uniques":["[Military] units gain [50]% more Experience from combat"], "requires": ["Warrior Code"], "row": 2, "column": 2 diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index a180768cfe..080a0e6814 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -258,7 +258,12 @@ object Battle { return var XPModifier = 1f + // deprecated as of 3.12.10, keeping this for now in to avoid breaking mods if (thisCombatant.getCivInfo().hasUnique("Military units gain 50% more Experience from combat")) XPModifier += 0.5f + for (unique in thisCombatant.getCivInfo().getMatchingUniques("[] units gain []% more Experience from combat")) { + if (thisCombatant.unit.matchesFilter(unique.params[0])) + XPModifier += unique.params[1].toFloat() / 100 + } for (unique in thisCombatant.unit.getMatchingUniques("[]% Bonus XP gain")) XPModifier += unique.params[0].toFloat() / 100 @@ -504,4 +509,4 @@ object Battle { return true } -} \ No newline at end of file +}