From 6decff312d7bd89f76dadf6228f2afb8772c7f9f Mon Sep 17 00:00:00 2001 From: wowgetoffyourcellphone Date: Fri, 27 Oct 2023 16:52:03 +0000 Subject: [PATCH] [Gameplay] "Marian Reforms" update for the Roman civilization This is a very unique technology that trades in melee citizen-soldier infantry in exchange for unlocking Legionaries. Legionaries are similar to Skiritai except they are cheaper.The idea is that these units can form the bulk of the Roman army, so they should be cheap, but powerful. Additional champions remain to supplement these units. And for improved engagement with Centurions, they gain a special second aura just for Legionaries, called 'Century Maneuvers" Patch by: @real_tabasco_sauce Accepted by: @borg-, @wowgetoffyourcellphone Comments by: @chrstgtr, @Freagarach, This was SVN commit r27900. --- .../romans/infantry_javelinist_reform.xml | 87 +++++++++++++++++++ .../units/romans/infantry_swordsman_c2.xml | 1 + .../data/auras/units/centurion_1.json | 17 ++++ .../data/auras/units/centurion_2.json | 11 +++ .../data/technologies/roman_reforms.json | 30 +++++++ .../templates/structures/rome/army_camp.xml | 4 +- .../templates/structures/rome/barracks.xml | 6 ++ .../structures/rome/civil_centre.xml | 2 + .../templates/structures/rome/fortress.xml | 1 + .../template_structure_military_fortress.xml | 1 + .../units/rome/cavalry_javelineer_02_a.xml | 12 +++ .../units/rome/cavalry_javelineer_02_b.xml | 20 +++++ .../units/rome/cavalry_javelineer_02_e.xml | 10 +++ .../units/rome/infantry_lanciarius.xml | 35 ++++++++ .../units/rome/infantry_legionary.xml | 35 ++++++++ .../rome/infantry_swordsman_e_centurion.xml | 19 +++- 16 files changed, 289 insertions(+), 2 deletions(-) create mode 100644 binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_reform.xml create mode 100644 binaries/data/mods/public/simulation/data/auras/units/centurion_1.json create mode 100644 binaries/data/mods/public/simulation/data/auras/units/centurion_2.json create mode 100644 binaries/data/mods/public/simulation/data/technologies/roman_reforms.json create mode 100644 binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/rome/infantry_lanciarius.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/rome/infantry_legionary.xml diff --git a/binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_reform.xml b/binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_reform.xml new file mode 100644 index 0000000000..9d88cb03ef --- /dev/null +++ b/binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_reform.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + skeletal/new/m_armor_tunic_short.dae + + + + + + + skeletal/new/m_armor_tunic_long.dae + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + player_trans_norm_spec.xml + diff --git a/binaries/data/mods/public/art/actors/units/romans/infantry_swordsman_c2.xml b/binaries/data/mods/public/art/actors/units/romans/infantry_swordsman_c2.xml index 02d75d181e..f1af19db19 100644 --- a/binaries/data/mods/public/art/actors/units/romans/infantry_swordsman_c2.xml +++ b/binaries/data/mods/public/art/actors/units/romans/infantry_swordsman_c2.xml @@ -46,6 +46,7 @@ + player_trans_norm_spec.xml diff --git a/binaries/data/mods/public/simulation/data/auras/units/centurion_1.json b/binaries/data/mods/public/simulation/data/auras/units/centurion_1.json new file mode 100644 index 0000000000..ab8c746e9a --- /dev/null +++ b/binaries/data/mods/public/simulation/data/auras/units/centurion_1.json @@ -0,0 +1,17 @@ +{ + "type": "range", + "radius": 30, + "affects": ["Soldier"], + "modifications": [ + { "value": "Attack/Melee/Damage/Hack", "multiply": 1.1 }, + { "value": "Attack/Melee/Damage/Pierce", "multiply": 1.1 }, + { "value": "Attack/Melee/Damage/Crush", "multiply": 1.1 }, + { "value": "Attack/Ranged/Damage/Hack", "multiply": 1.1 }, + { "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.1 }, + { "value": "Attack/Ranged/Damage/Crush", "multiply": 1.1 }, + { "value": "Promotion/RequiredXp", "multiply": 0.75 } + ], + "auraName": "Combat Leadership", + "auraDescription": "Soldiers +10% attack damage and −25% experience points for promotion.", + "overlayIcon": "art/textures/ui/session/auras/attack_bonus.png" +} diff --git a/binaries/data/mods/public/simulation/data/auras/units/centurion_2.json b/binaries/data/mods/public/simulation/data/auras/units/centurion_2.json new file mode 100644 index 0000000000..1b2af50a6d --- /dev/null +++ b/binaries/data/mods/public/simulation/data/auras/units/centurion_2.json @@ -0,0 +1,11 @@ +{ + "type": "range", + "radius": 30, + "affects": ["Legionary","Centurion"], + "modifications": [ + { "value": "UnitMotion/WalkSpeed", "multiply": 1.1 } + ], + "auraName": "Century Maneuvers", + "auraDescription": "Marian Legionaries and Centurions +10% movement speed.", + "overlayIcon": "art/textures/ui/session/auras/speed_bonus.png" +} diff --git a/binaries/data/mods/public/simulation/data/technologies/roman_reforms.json b/binaries/data/mods/public/simulation/data/technologies/roman_reforms.json new file mode 100644 index 0000000000..d58d16de8f --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/roman_reforms.json @@ -0,0 +1,30 @@ +{ + "genericName": "Marian Reforms", + "description": "Regularize the army into a professional, organized force. The Marian reforms were a series of military reforms in the last century BC attributed to Gaius Marius involving the abolition of citzen cavalry, equipment changes, and standardization of the heavy infantry unit: the Legionary.", + "cost": { + "food": 800, + "metal": 800 + }, + "researchTime": 60, + "requirements": { + "all": [ + { "tech": "phase_city" }, + { "civ": "rome" } + ] + }, + "requirementsTooltip": "Unlocked in City Phase.", + "icon": "shield_scutum.png", + "modifications":[ + { + "value": "Trainer/Entities/_string", + "tokens": "-units/{civ}/infantry_swordsman_b -units/{civ}/infantry_spearman_b -units/{civ}/infantry_swordsman_a -units/{civ}/infantry_spearman_a -units/{civ}/cavalry_spearman_b -units/{civ}/champion_infantry_swordsman units/{civ}/cavalry_javelineer_b>units/{civ}/cavalry_javelineer_02_b -units/{civ}/infantry_javelineer_b" + }, + { + "value": "Researcher/Technologies/_string", + "tokens": "-unlock_champion_infantry" + } + ], + "affects": ["Structure"], + "tooltip": "Train Marian Legionaries, Centurions, and Onagers, but lose access to basic Citizen Infantry, Spear Cavalry, and Italic Heavy Infantry.", + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} diff --git a/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml b/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml index 8366a0e6fa..b35da63f9d 100644 --- a/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml +++ b/binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml @@ -70,7 +70,7 @@ rome Army Camp Castra - Build in neutral or enemy territory. Train Advanced Melee Infantry. Construct Rams. Garrison Soldiers for additional arrows. + Build in neutral or enemy territory. Train Advanced Melee Infantry and Marian Legionaries. Construct Rams. Garrison Soldiers for additional arrows. ConquestCritical CivSpecific Town ArmyCamp structures/roman_camp.png @@ -113,6 +113,8 @@ units/{civ}/infantry_swordsman_a units/{civ}/infantry_spearman_a units/{civ}/infantry_pikeman_a + units/{civ}/infantry_legionary + units/{civ}/infantry_lanciarius units/{civ}/siege_ram diff --git a/binaries/data/mods/public/simulation/templates/structures/rome/barracks.xml b/binaries/data/mods/public/simulation/templates/structures/rome/barracks.xml index 6265efa2ae..dd9fc07d07 100644 --- a/binaries/data/mods/public/simulation/templates/structures/rome/barracks.xml +++ b/binaries/data/mods/public/simulation/templates/structures/rome/barracks.xml @@ -11,6 +11,12 @@ rome Castrum + + + units/{civ}/infantry_legionary + units/{civ}/infantry_lanciarius + + diff --git a/binaries/data/mods/public/simulation/templates/structures/rome/civil_centre.xml b/binaries/data/mods/public/simulation/templates/structures/rome/civil_centre.xml index bfbd1d8d3e..66046f9dfd 100644 --- a/binaries/data/mods/public/simulation/templates/structures/rome/civil_centre.xml +++ b/binaries/data/mods/public/simulation/templates/structures/rome/civil_centre.xml @@ -19,6 +19,8 @@ units/{civ}/infantry_swordsman_b units/{civ}/infantry_javelineer_b units/{civ}/cavalry_spearman_b + units/rome/infantry_legionary + units/rome/infantry_lanciarius diff --git a/binaries/data/mods/public/simulation/templates/structures/rome/fortress.xml b/binaries/data/mods/public/simulation/templates/structures/rome/fortress.xml index 505e46cb19..d4f9e1e577 100644 --- a/binaries/data/mods/public/simulation/templates/structures/rome/fortress.xml +++ b/binaries/data/mods/public/simulation/templates/structures/rome/fortress.xml @@ -10,6 +10,7 @@ units/{civ}/hero_marcellus units/{civ}/hero_maximus units/{civ}/hero_scipio + units/{civ}/infantry_swordsman_e_centurion diff --git a/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml b/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml index 981c2b9fae..10afac6094 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml @@ -86,6 +86,7 @@ art_of_war poison_arrows poison_blades + roman_reforms diff --git a/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_a.xml b/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_a.xml new file mode 100644 index 0000000000..9b149291cf --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_a.xml @@ -0,0 +1,12 @@ + + + + Advanced + + + units/rome/cavalry_javelineer_e + + + units/romans/cavalry_javelinist_a_m.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_b.xml b/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_b.xml new file mode 100644 index 0000000000..201d88a9f7 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_b.xml @@ -0,0 +1,20 @@ + + + + rome + latin + Auxiliary Cavalry + Eques Alaris + units/rome/cavalry_javelineer_02_b + units/rome/cavalry_javelinist.png + + phase_town + + + + units/rome/cavalry_javelineer_02_a + + + units/romans/cavalry_javelinist_b_m.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_e.xml b/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_e.xml new file mode 100644 index 0000000000..909f6606e5 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/rome/cavalry_javelineer_02_e.xml @@ -0,0 +1,10 @@ + + + + Elite + + + + units/romans/cavalry_javelinist_e_m.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/rome/infantry_lanciarius.xml b/binaries/data/mods/public/simulation/templates/units/rome/infantry_lanciarius.xml new file mode 100644 index 0000000000..299757afe0 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/rome/infantry_lanciarius.xml @@ -0,0 +1,35 @@ + + + + + structures/rome/army_camp + structures/rome/temple_vesta + units/rome/siege_onager + + + + + 15 + + + + 2 + + + rome + latin + units/rome/infantry_lanciarius + Legionary Skirmisher + lanciārius + Legionary + Elite + units/rome/infantry_javelinist.png + + roman_reforms + + + + + units/romans/infantry_javelinist_reform.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/rome/infantry_legionary.xml b/binaries/data/mods/public/simulation/templates/units/rome/infantry_legionary.xml new file mode 100644 index 0000000000..123c8987e9 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/rome/infantry_legionary.xml @@ -0,0 +1,35 @@ + + + + + structures/rome/army_camp + structures/rome/temple_vesta + units/rome/siege_onager + + + + + 5 + 10 + + + + 5 + 2 + + + Marian Legionary + latin + Legiōnārius + Elite + units/rome/champion_legion_marian.png + Legionary + + roman_reforms + + + + + units/romans/infantry_swordsman_c2.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/rome/infantry_swordsman_e_centurion.xml b/binaries/data/mods/public/simulation/templates/units/rome/infantry_swordsman_e_centurion.xml index 3e177eadce..4bedf4b1a3 100644 --- a/binaries/data/mods/public/simulation/templates/units/rome/infantry_swordsman_e_centurion.xml +++ b/binaries/data/mods/public/simulation/templates/units/rome/infantry_swordsman_e_centurion.xml @@ -4,14 +4,31 @@ Centurion - units/centurion + units/centurion_1 + units/centurion_2 + + 1.25 + + 40 + 20 + + + + 4 + 2 + rome latin Roman Centurion Centuriō units/rome/champion_infantry_centurion.png + Centurions may be promoted from elite melee citizen infantry, and train from the Fortress after Marian Reforms. + Centurion + + roman_reforms -phase_city + units/romans/infantry_swordsman_f.xml