From 4ba618563cf9dce783cb8bab8f2fc0cc377e372d Mon Sep 17 00:00:00 2001 From: real_tabasco_sauce Date: Sat, 20 Sep 2025 22:43:59 -0700 Subject: [PATCH] Add civ bonuses for Carth and differentiate embassies and their mercenaries. --- .../carthaginians/infantry_spearman_a_m.xml | 100 +++++++++++++++ .../carthaginians/infantry_spearman_b_m.xml | 98 +++++++++++++++ .../carthaginians/infantry_spearman_e_m.xml | 114 ++++++++++++++++++ .../units/cart/infantry_spearman_2.png | 3 + .../public/simulation/data/civs/cart.json | 17 ++- .../data/technologies/celtic_auxiliaries.json | 25 ++++ .../civbonuses/cart_stone_01.json | 17 +++ .../civbonuses/cart_stone_02.json | 17 +++ .../civbonuses/cart_stone_03.json | 17 +++ .../technologies/civbonuses/cart_walls.json | 2 +- .../technologies/gather_mining_serfs.json | 7 +- .../technologies/gather_mining_servants.json | 7 +- .../technologies/gather_mining_slaves.json | 7 +- .../structures/cart/embassy_celtic.xml | 5 + .../structures/cart/embassy_iberian.xml | 7 +- .../structures/cart/embassy_italic.xml | 8 +- .../units/cart/cavalry_javelineer_b.xml | 3 + .../units/cart/infantry_javelineer_iber_a.xml | 2 +- .../units/cart/infantry_javelineer_iber_b.xml | 24 +++- .../units/cart/infantry_javelineer_iber_e.xml | 2 +- .../units/cart/infantry_slinger_iber_b.xml | 17 +++ .../units/cart/infantry_spearman_ital_a.xml | 12 ++ .../units/cart/infantry_spearman_ital_b.xml | 27 +++++ .../units/cart/infantry_spearman_ital_e.xml | 10 ++ 24 files changed, 529 insertions(+), 19 deletions(-) create mode 100644 binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_a_m.xml create mode 100644 binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_b_m.xml create mode 100644 binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_e_m.xml create mode 100644 binaries/data/mods/public/art/textures/ui/session/portraits/units/cart/infantry_spearman_2.png create mode 100644 binaries/data/mods/public/simulation/data/technologies/celtic_auxiliaries.json create mode 100644 binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_01.json create mode 100644 binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_02.json create mode 100644 binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_03.json create mode 100644 binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_e.xml diff --git a/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_a_m.xml b/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_a_m.xml new file mode 100644 index 0000000000..0cbed1602f --- /dev/null +++ b/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_a_m.xml @@ -0,0 +1,100 @@ + + + + + + skeletal/new/m_tunic_short.dae + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + player_trans_norm_spec.xml + diff --git a/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_b_m.xml b/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_b_m.xml new file mode 100644 index 0000000000..6dc4efc300 --- /dev/null +++ b/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_b_m.xml @@ -0,0 +1,98 @@ + + + + + + skeletal/new/m_tunic_short.dae + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + player_trans_norm_spec.xml + diff --git a/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_e_m.xml b/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_e_m.xml new file mode 100644 index 0000000000..b526d822a1 --- /dev/null +++ b/binaries/data/mods/public/art/actors/units/carthaginians/infantry_spearman_e_m.xml @@ -0,0 +1,114 @@ + + + + + + skeletal/new/m_armor_tunic_short.dae + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + player_trans_norm_spec.xml + diff --git a/binaries/data/mods/public/art/textures/ui/session/portraits/units/cart/infantry_spearman_2.png b/binaries/data/mods/public/art/textures/ui/session/portraits/units/cart/infantry_spearman_2.png new file mode 100644 index 0000000000..0a98003695 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/session/portraits/units/cart/infantry_spearman_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb6408f9af869767bd402a2b58b3af19adf6621bc54ad16b741319b02df9421 +size 101835 diff --git a/binaries/data/mods/public/simulation/data/civs/cart.json b/binaries/data/mods/public/simulation/data/civs/cart.json index 19db79ade6..010d544e3c 100644 --- a/binaries/data/mods/public/simulation/data/civs/cart.json +++ b/binaries/data/mods/public/simulation/data/civs/cart.json @@ -21,14 +21,19 @@ ], "CivBonuses": [ { - "Name": "Commercial Acumen", - "History": "", - "Description": "Merchant Ships +25% trade gain." + "Name": "Trademasters", + "History": "The Carthaginians were broadly known for their extensive trade over the Mediterranean Sea.", + "Description": "Trade ships are available in the Village Phase." }, { - "Name": "Desirable Products", - "History": "", - "Description": "Docks and Markets +10% international trade bonus." + "Name": "Mining Economy", + "History": "The Carthaginian economy was centered around mining, with stone comprising much of Carthage's structures.", + "Description": "Stone mining technologies are free and instant." + }, + { + "Name": "Numidian Cavalry", + "History": "The Numidian cavalry's horses, ancestors of the Berber horse, were small compared with other horses of the era, and were well adapted for faster movement over long distances.", + "Description": "Cavalry Javelineers +10% walk speed." } ], "WallSets": [ diff --git a/binaries/data/mods/public/simulation/data/technologies/celtic_auxiliaries.json b/binaries/data/mods/public/simulation/data/technologies/celtic_auxiliaries.json new file mode 100644 index 0000000000..dbc6066a92 --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/celtic_auxiliaries.json @@ -0,0 +1,25 @@ +{ + "genericName": "Celtic Auxiliaries", + "description": "The Second Punic War, Celtic troops were mainly auxiliaries.", + "cost": { + "metal": 550 + }, + "requirements": { + "all": [ + { "tech": "phase_city" }, + { "civ": "cart" } + ] + }, + "requirementsTooltip": "Unlocked in City Phase.", + "icon": "handshake.png", + "researchTime": 45, + "tooltip": "Mercenaries −50% metal cost but +50 food cost.", + "modifications": [ + { "value": "Cost/Resources/metal", "multiply": 0.5 }, + { "value": "Cost/Resources/food", "add": 50 }, + { "value": "Loot/metal", "multiply": 0.5 }, + { "value": "Loot/food", "add": 5 } + ], + "affects": ["Mercenary Swordsman"], + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} diff --git a/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_01.json b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_01.json new file mode 100644 index 0000000000..c9aa137fd7 --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_01.json @@ -0,0 +1,17 @@ +{ + "genericName": "Servants", + "autoResearch": true, + "description": "Hire servants to help quarry stone. Increases stone gathering rates.", + "requirements": { + "all": [ + { "tech": "phase_village" } + ] + }, + "icon": "mining_stone_01.png", + "tooltip": "Workers +25% stone gather rate.", + "modifications": [ + { "value": "ResourceGatherer/Rates/stone.rock", "multiply": 1.25 } + ], + "affects": ["Worker"], + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} \ No newline at end of file diff --git a/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_02.json b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_02.json new file mode 100644 index 0000000000..d2f0fbd043 --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_02.json @@ -0,0 +1,17 @@ +{ + "genericName": "Servants", + "autoResearch": true, + "description": "Hire servants to help quarry stone. Increases stone gathering rates.", + "requirements": { + "all": [ + { "tech": "phase_town" } + ] + }, + "icon": "mining_stone_02.png", + "tooltip": "Workers +25% stone gather rate.", + "modifications": [ + { "value": "ResourceGatherer/Rates/stone.rock", "multiply": 1.25 } + ], + "affects": ["Worker"], + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} \ No newline at end of file diff --git a/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_03.json b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_03.json new file mode 100644 index 0000000000..1fee1662f1 --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_03.json @@ -0,0 +1,17 @@ +{ + "genericName": "Servants", + "autoResearch": true, + "description": "Hire servants to help quarry stone. Increases stone gathering rates.", + "requirements": { + "all": [ + { "tech": "phase_city" } + ] + }, + "icon": "mining_stone_03.png", + "tooltip": "Workers +25% stone gather rate.", + "modifications": [ + { "value": "ResourceGatherer/Rates/stone.rock", "multiply": 1.25 } + ], + "affects": ["Worker"], + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} \ No newline at end of file diff --git a/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_walls.json b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_walls.json index d19872074f..9dcf158908 100644 --- a/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_walls.json +++ b/binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_walls.json @@ -3,7 +3,7 @@ "autoResearch": true, "description": "Carthaginians built their city walls in three concentric circuits. These walls were never breached. Even when the city was taken by the Romans, it was via the city's harbor, not by storming its walls.", "icon": "wall.png", - "tooltip": "City Walls +100% build time, +100% stone cost, and +200% health.", + "tooltip": "City Walls +200% health, but +100% build time and stone cost.", "requirements": { "civ": "cart" }, "modifications": [ { "value": "Cost/BuildTime", "multiply": 2 }, diff --git a/binaries/data/mods/public/simulation/data/technologies/gather_mining_serfs.json b/binaries/data/mods/public/simulation/data/technologies/gather_mining_serfs.json index c5d39f55fd..9eb59ceb93 100644 --- a/binaries/data/mods/public/simulation/data/technologies/gather_mining_serfs.json +++ b/binaries/data/mods/public/simulation/data/technologies/gather_mining_serfs.json @@ -9,7 +9,12 @@ "stone": 200 }, "supersedes": "gather_mining_servants", - "requirements": { "tech": "phase_town" }, + "requirements": { + "all": [ + { "tech": "phase_town" }, + { "notciv": "cart" } + ] + }, "requirementsTooltip": "Unlocked in Town Phase.", "icon": "mining_stone_02.png", "researchTime": 50, diff --git a/binaries/data/mods/public/simulation/data/technologies/gather_mining_servants.json b/binaries/data/mods/public/simulation/data/technologies/gather_mining_servants.json index ebe606de7d..9379846fac 100644 --- a/binaries/data/mods/public/simulation/data/technologies/gather_mining_servants.json +++ b/binaries/data/mods/public/simulation/data/technologies/gather_mining_servants.json @@ -12,7 +12,12 @@ "food": 200, "stone": 100 }, - "requirements": { "tech": "phase_village" }, + "requirements": { + "all": [ + { "tech": "phase_village" }, + { "notciv": "cart" } + ] + }, "icon": "mining_stone_01.png", "researchTime": 40, "tooltip": "Workers +25% stone gather rate.", diff --git a/binaries/data/mods/public/simulation/data/technologies/gather_mining_slaves.json b/binaries/data/mods/public/simulation/data/technologies/gather_mining_slaves.json index b0625bd3fb..8d78642f0a 100644 --- a/binaries/data/mods/public/simulation/data/technologies/gather_mining_slaves.json +++ b/binaries/data/mods/public/simulation/data/technologies/gather_mining_slaves.json @@ -14,7 +14,12 @@ "stone": 300 }, "supersedes": "gather_mining_serfs", - "requirements": { "tech": "phase_city" }, + "requirements": { + "all": [ + { "tech": "phase_city" }, + { "notciv": "cart" } + ] + }, "requirementsTooltip": "Unlocked in City Phase.", "icon": "mining_stone_03.png", "researchTime": 60, diff --git a/binaries/data/mods/public/simulation/templates/structures/cart/embassy_celtic.xml b/binaries/data/mods/public/simulation/templates/structures/cart/embassy_celtic.xml index f9329b899a..dbfbd48797 100644 --- a/binaries/data/mods/public/simulation/templates/structures/cart/embassy_celtic.xml +++ b/binaries/data/mods/public/simulation/templates/structures/cart/embassy_celtic.xml @@ -25,6 +25,11 @@ + + + celtic_auxiliaries + + units/{native}/infantry_swordsman_gaul_b diff --git a/binaries/data/mods/public/simulation/templates/structures/cart/embassy_iberian.xml b/binaries/data/mods/public/simulation/templates/structures/cart/embassy_iberian.xml index 91f007329d..49cf6a5847 100644 --- a/binaries/data/mods/public/simulation/templates/structures/cart/embassy_iberian.xml +++ b/binaries/data/mods/public/simulation/templates/structures/cart/embassy_iberian.xml @@ -2,7 +2,8 @@ - 200 + 100 + 100 @@ -13,7 +14,8 @@ structures/embassy_iberian.png - 40 + 20 + 20 @@ -22,7 +24,6 @@ units/{native}/infantry_javelineer_iber_b units/{native}/infantry_slinger_iber_b - units/{native}/cavalry_swordsman_iber_b diff --git a/binaries/data/mods/public/simulation/templates/structures/cart/embassy_italic.xml b/binaries/data/mods/public/simulation/templates/structures/cart/embassy_italic.xml index 1a675d1c53..28aee99141 100644 --- a/binaries/data/mods/public/simulation/templates/structures/cart/embassy_italic.xml +++ b/binaries/data/mods/public/simulation/templates/structures/cart/embassy_italic.xml @@ -2,7 +2,8 @@ - 200 + 100 + 100 @@ -20,14 +21,15 @@ structures/embassy_italic.png - 40 + 20 + 20 - units/{native}/infantry_swordsman_ital_b + units/{native}/infantry_spearman_ital_b units/{native}/cavalry_spearman_ital_b diff --git a/binaries/data/mods/public/simulation/templates/units/cart/cavalry_javelineer_b.xml b/binaries/data/mods/public/simulation/templates/units/cart/cavalry_javelineer_b.xml index 83069d090a..a8438c2b6c 100644 --- a/binaries/data/mods/public/simulation/templates/units/cart/cavalry_javelineer_b.xml +++ b/binaries/data/mods/public/simulation/templates/units/cart/cavalry_javelineer_b.xml @@ -10,6 +10,9 @@ units/cart/cavalry_javelineer_a + + 1.1 + units/carthaginians/cavalry_javelinist_b_m.xml diff --git a/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_a.xml b/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_a.xml index 5289547be5..a9bde8a9f5 100644 --- a/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_a.xml +++ b/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_a.xml @@ -7,6 +7,6 @@ units/cart/infantry_javelineer_iber_e - units/iberians/infantry_javelinist_a.xml + units/iberians/infantry_javelinist_a_fire.xml diff --git a/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_b.xml b/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_b.xml index be95326ab9..c7c3085eb0 100644 --- a/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_b.xml +++ b/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_b.xml @@ -1,5 +1,19 @@ + + + + + 3000 + + 1 + + Stack + 9000 + + + + structures/{civ}/super_dock @@ -8,6 +22,11 @@ structures/{civ}/embassy_italic + + + 80 + + cart Iberian Mercenary Skirmisher @@ -18,10 +37,13 @@ phase_town + + 8 + units/cart/infantry_javelineer_iber_a - units/iberians/infantry_javelinist_b.xml + units/iberians/infantry_javelinist_b_fire.xml diff --git a/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_e.xml b/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_e.xml index 4e9907eaa0..1ee54696b2 100644 --- a/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_e.xml +++ b/binaries/data/mods/public/simulation/templates/units/cart/infantry_javelineer_iber_e.xml @@ -5,6 +5,6 @@ - units/iberians/infantry_javelinist_e.xml + units/iberians/infantry_javelinist_e_fire.xml diff --git a/binaries/data/mods/public/simulation/templates/units/cart/infantry_slinger_iber_b.xml b/binaries/data/mods/public/simulation/templates/units/cart/infantry_slinger_iber_b.xml index 177c1bae18..a1663de89f 100644 --- a/binaries/data/mods/public/simulation/templates/units/cart/infantry_slinger_iber_b.xml +++ b/binaries/data/mods/public/simulation/templates/units/cart/infantry_slinger_iber_b.xml @@ -1,5 +1,14 @@ + + + + 1.15 + + 50 + 1750 + + structures/{civ}/super_dock @@ -8,6 +17,11 @@ structures/{civ}/embassy_italic + + + 75 + + cart Balearic Slinger @@ -18,6 +32,9 @@ phase_town + + 7 + units/cart/infantry_slinger_iber_a diff --git a/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_a.xml b/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_a.xml new file mode 100644 index 0000000000..b693f134a5 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_a.xml @@ -0,0 +1,12 @@ + + + + Advanced + + + units/cart/infantry_spearman_ital_e + + + units/carthaginians/infantry_spearman_a_m.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_b.xml b/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_b.xml new file mode 100644 index 0000000000..2b712baed1 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_b.xml @@ -0,0 +1,27 @@ + + + + + structures/{civ}/super_dock + structures/{civ}/embassy_celtic + structures/{civ}/embassy_iberian + structures/{civ}/embassy_italic + + + + cart + Samnite Spearman + Seḫīr Romaḥ + units/cart/infantry_spearman_ital_b + units/cart/infantry_spearman_2.png + + phase_town + + + + units/cart/infantry_spearman_ital_a + + + units/carthaginians/infantry_spearman_b_m.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_e.xml b/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_e.xml new file mode 100644 index 0000000000..fa5a00a06d --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/cart/infantry_spearman_ital_e.xml @@ -0,0 +1,10 @@ + + + + Elite + + + + units/carthaginians/infantry_spearman_e_m.xml + +