From 7da94fc18f28dddba536b30e2f4287ce20886722 Mon Sep 17 00:00:00 2001 From: Freagarach Date: Sat, 22 Jul 2023 13:54:09 +0000 Subject: [PATCH] Differentiate Sparta. This differentiates Sparta by giving them P1 champions, a Hero-oriented team bonus and a new unit. Sparta should rely heavily on their extremely powerful melee infantry, hence the focus is on that with choice and upgrade. Patch by: @borg- Differential revision: https://code.wildfiregames.com/D4736 Accepted by: @chrstgtr, @real_tabasco_sauce Comments by: @Langbart, @marder, @wowgetoffyourcellphone This was SVN commit r27775. --- .../spartans/infantry_spearman_neodamodes.xml | 72 +++++++++++++++++++ .../spart/infantry_spearman_neodamodes.png | 3 + .../teambonuses/spart_player_teambonus.json | 9 ++- .../public/simulation/data/civs/spart.json | 5 ++ .../simulation/data/technologies/agoge.json | 2 +- .../data/technologies/helot_economy.json | 22 ++++++ .../data/technologies/krypteia.json | 24 +++++++ .../data/technologies/tyrtean_paeans.json | 23 ++++++ .../data/technologies/unlock_neodamodes.json | 18 +++++ .../templates/structures/spart/barracks.xml | 5 ++ .../structures/spart/civil_centre.xml | 5 ++ .../templates/structures/spart/gerousia.xml | 21 +++--- .../templates/structures/spart/syssiton.xml | 10 ++- .../units/spart/champion_infantry_spear.xml | 7 ++ .../champion_infantry_spear_olympian.xml | 22 ++++++ .../spart/champion_infantry_swordsman.xml | 1 + .../units/spart/infantry_javelineer_b.xml | 1 + .../units/spart/infantry_spearman_b.xml | 1 + .../spart/infantry_spearman_neodamodes.xml | 33 +++++++++ .../units/spart/support_female_citizen.xml | 1 + 20 files changed, 267 insertions(+), 18 deletions(-) create mode 100644 binaries/data/mods/public/art/actors/units/spartans/infantry_spearman_neodamodes.xml create mode 100644 binaries/data/mods/public/art/textures/ui/session/portraits/units/spart/infantry_spearman_neodamodes.png create mode 100644 binaries/data/mods/public/simulation/data/technologies/helot_economy.json create mode 100644 binaries/data/mods/public/simulation/data/technologies/krypteia.json create mode 100644 binaries/data/mods/public/simulation/data/technologies/tyrtean_paeans.json create mode 100644 binaries/data/mods/public/simulation/data/technologies/unlock_neodamodes.json create mode 100644 binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear_olympian.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_neodamodes.xml diff --git a/binaries/data/mods/public/art/actors/units/spartans/infantry_spearman_neodamodes.xml b/binaries/data/mods/public/art/actors/units/spartans/infantry_spearman_neodamodes.xml new file mode 100644 index 0000000000..6d442831a5 --- /dev/null +++ b/binaries/data/mods/public/art/actors/units/spartans/infantry_spearman_neodamodes.xml @@ -0,0 +1,72 @@ + + + + + + skeletal/new/m_tunic_short.dae + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + player_trans.xml + diff --git a/binaries/data/mods/public/art/textures/ui/session/portraits/units/spart/infantry_spearman_neodamodes.png b/binaries/data/mods/public/art/textures/ui/session/portraits/units/spart/infantry_spearman_neodamodes.png new file mode 100644 index 0000000000..3a00fc52fa --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/session/portraits/units/spart/infantry_spearman_neodamodes.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0c2d747f14847ff0a685577e27831cb1025b13612ee942847a21033a5121930 +size 95418 diff --git a/binaries/data/mods/public/simulation/data/auras/teambonuses/spart_player_teambonus.json b/binaries/data/mods/public/simulation/data/auras/teambonuses/spart_player_teambonus.json index 64d58c7264..5ecf738910 100644 --- a/binaries/data/mods/public/simulation/data/auras/teambonuses/spart_player_teambonus.json +++ b/binaries/data/mods/public/simulation/data/auras/teambonuses/spart_player_teambonus.json @@ -1,10 +1,13 @@ { "type": "global", - "affects": ["Citizen Infantry Spearman"], + "affects": ["Hero"], "affectedPlayers": ["MutualAlly"], "modifications": [ - { "value": "Health/Max", "multiply": 1.1 } + { "value": "Cost/Resources/food", "replace": 0 }, + { "value": "Cost/Resources/wood", "replace": 0 }, + { "value": "Cost/Resources/stone", "replace": 0 }, + { "value": "Cost/Resources/metal", "replace": 0 } ], "auraName": "Peloponnesian League", - "auraDescription": "Citizen Infantry Spearmen +10% health." + "auraDescription": "Heroes are trained for free." } diff --git a/binaries/data/mods/public/simulation/data/civs/spart.json b/binaries/data/mods/public/simulation/data/civs/spart.json index 2e24427230..ff1e79a33c 100644 --- a/binaries/data/mods/public/simulation/data/civs/spart.json +++ b/binaries/data/mods/public/simulation/data/civs/spart.json @@ -28,6 +28,11 @@ "Name": "Spartan Women", "History": "", "Description": "Female Citizens +40% health and +50% melee attack hack damage." + }, + { + "Name": "Laws of Lycurgus", + "History": "Under the constitution written by the mythical lawgiver Lycurgus, the institution of the Agoge was established, where Spartans were trained from the age of 6 to be superior warriors in defense of the Spartan state.", + "Description": "Champion Hoplites are available in village phase." } ], "WallSets": [ diff --git a/binaries/data/mods/public/simulation/data/technologies/agoge.json b/binaries/data/mods/public/simulation/data/technologies/agoge.json index 9c85113e0f..0e624ebf81 100644 --- a/binaries/data/mods/public/simulation/data/technologies/agoge.json +++ b/binaries/data/mods/public/simulation/data/technologies/agoge.json @@ -14,7 +14,7 @@ "requirementsTooltip": "Unlocked in City Phase.", "icon": "agoge.png", "researchTime": 60, - "tooltip": "Champion Infantry Spearmen +25% health, but +5% training time.", + "tooltip": "Champion Hoplites +25% health, but +5% training time.", "modifications": [ { "value": "Cost/BuildTime", "multiply": 1.05 }, { "value": "Health/Max", "multiply": 1.25 } diff --git a/binaries/data/mods/public/simulation/data/technologies/helot_economy.json b/binaries/data/mods/public/simulation/data/technologies/helot_economy.json new file mode 100644 index 0000000000..305979ad16 --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/helot_economy.json @@ -0,0 +1,22 @@ +{ + "genericName": "Helot Economy", + "description": "Helots were the servants of Greece. Unlike slaves, helots were owned by the state, which managed economic production. Helots must give a reasonable portion of their harvest to support a warrior and his family or widow.", + "cost": { + "food": 200, + "wood": 200 + }, + "requirements": { + "all": [ + { "civ": "spart" } + ] + }, + "icon": "sickle_2.png", + "researchTime": 40, + "tooltip": "Infantry Javelineers +100% grain gather rate, but −10% ranged attack pierce damage.", + "modifications": [ + { "value": "Attack/Ranged/Damage/Pierce", "multiply": 0.9 }, + { "value": "ResourceGatherer/Rates/food.grain", "multiply": 2 } + ], + "affects": ["Infantry Javelineer"], + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} diff --git a/binaries/data/mods/public/simulation/data/technologies/krypteia.json b/binaries/data/mods/public/simulation/data/technologies/krypteia.json new file mode 100644 index 0000000000..190a580e5a --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/krypteia.json @@ -0,0 +1,24 @@ +{ + "genericName": "Krypteia", + "description": "Krypteia was an Agoge rite of passage, during which soldiers learned how to camouflage themselves and gained combat experience. The Spartans declared war on the Helots annually, with no problem or guilt in murdering them. During this initiation, the youths slept during the day and roamed at night, murdering any Helot they encountered along the way.", + "cost": { + "food": 200, + "metal": 200 + }, + "requirements": { + "all": [ + { "tech": "phase_town" }, + { "civ": "spart" } + ] + }, + "requirementsTooltip": "Unlocked in Town Phase.", + "icon": "skull_swords.png", + "researchTime": 50, + "tooltip": "Champion Hoplites +10% melee attack damage, but Citizen Infantry Javelineers +30% training time.", + "modifications": [ + { "value": "Attack/Melee/Damage/Hack", "multiply": 1.1, "affects": "Champion" }, + { "value": "Attack/Melee/Damage/Pierce", "multiply": 1.1, "affects": "Champion" }, + { "value": "Cost/BuildTime", "multiply": 1.3, "affects": "Citizen Infantry Javelineer" } + ], + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} diff --git a/binaries/data/mods/public/simulation/data/technologies/tyrtean_paeans.json b/binaries/data/mods/public/simulation/data/technologies/tyrtean_paeans.json new file mode 100644 index 0000000000..fc1a20f22d --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/tyrtean_paeans.json @@ -0,0 +1,23 @@ +{ + "genericName": "Tyrtean Paeans", + "description": "Paeans were battle hymns that were sung by the Hoplites when they charged the enemy lines. One of the first known Paeans was composed by Tirteus, a warrior poet of Sparta, during the First Messenian War.", + "cost": { + "food": 200, + "metal": 200 + }, + "requirements": { + "all": [ + { "tech": "phase_town" }, + { "civ": "spart" } + ] + }, + "requirementsTooltip": "Unlocked in Town Phase.", + "icon": "walk.png", + "researchTime": 50, + "tooltip": "Champion Hoplites +10% movement speed.", + "modifications": [ + { "value": "UnitMotion/WalkSpeed", "multiply": 1.1 } + ], + "affects": ["Champion Melee Infantry !Hero"], + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} diff --git a/binaries/data/mods/public/simulation/data/technologies/unlock_neodamodes.json b/binaries/data/mods/public/simulation/data/technologies/unlock_neodamodes.json new file mode 100644 index 0000000000..cdec112416 --- /dev/null +++ b/binaries/data/mods/public/simulation/data/technologies/unlock_neodamodes.json @@ -0,0 +1,18 @@ +{ + "genericName": "Unlock Neodamodes", + "description": "In ancient Sparta, the Helots who were freed by the state in reward for military service were known as Neodamodes.", + "cost": { + "food": 500 + }, + "requirements": { + "all": [ + { "tech": "phase_city" }, + { "civ": "spart" } + ] + }, + "requirementsTooltip": "Unlocked in City Phase.", + "icon": "helmet_corinthian_bronze_old.png", + "researchTime": 60, + "tooltip": "Unlock the ability to train Spearman Neodamodes at the Barracks.", + "soundComplete": "interface/alarm/alarm_upgradearmory.xml" +} diff --git a/binaries/data/mods/public/simulation/templates/structures/spart/barracks.xml b/binaries/data/mods/public/simulation/templates/structures/spart/barracks.xml index da1e3815d5..6e32460a46 100644 --- a/binaries/data/mods/public/simulation/templates/structures/spart/barracks.xml +++ b/binaries/data/mods/public/simulation/templates/structures/spart/barracks.xml @@ -14,6 +14,11 @@ + + + units/{civ}/infantry_spearman_neodamodes + + structures/spartans/barracks.xml structures/fndn_7x7.xml diff --git a/binaries/data/mods/public/simulation/templates/structures/spart/civil_centre.xml b/binaries/data/mods/public/simulation/templates/structures/spart/civil_centre.xml index 84b87ea2f7..2049f0c907 100644 --- a/binaries/data/mods/public/simulation/templates/structures/spart/civil_centre.xml +++ b/binaries/data/mods/public/simulation/templates/structures/spart/civil_centre.xml @@ -7,6 +7,11 @@ spart Agora + + + helot_economy + + units/{civ}/infantry_spearman_b diff --git a/binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml b/binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml index 8d795357e0..0cb3594d29 100644 --- a/binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml +++ b/binaries/data/mods/public/simulation/templates/structures/spart/gerousia.xml @@ -21,10 +21,13 @@ spart Spartan Senate Gerousia - Train Heroes. + Research technologies. ConquestCritical - Council + -City Town Council structures/tholos.png + + -phase_city phase_town + 20 @@ -34,6 +37,14 @@ + + + agoge + krypteia + tyrtean_paeans + unlock_neodamodes + + @@ -45,12 +56,6 @@ 38 40000 - - 0.7 - - units/{civ}/hero_leonidas - - 40 diff --git a/binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml b/binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml index 720d25df20..facba3fae4 100644 --- a/binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml +++ b/binaries/data/mods/public/simulation/templates/structures/spart/syssiton.xml @@ -24,8 +24,11 @@ Syssition Train Champions and Heroes. ConquestCritical CivSpecific - Syssiton + -City Village Syssiton structures/syssition.png + + -phase_city phase_village + 40 @@ -35,11 +38,6 @@ - - - agoge - - diff --git a/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear.xml b/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear.xml index 13dd19b516..401a53eca2 100644 --- a/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear.xml +++ b/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear.xml @@ -6,7 +6,14 @@ Spartan Hoplite Spartiátēs units/spart/champion_infantry_spear.png + + -phase_city phase_village + + + units/spart/champion_infantry_spear_olympian + 150 + units/spartans/infantry_spearman_c.xml diff --git a/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear_olympian.xml b/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear_olympian.xml new file mode 100644 index 0000000000..076343f8a4 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_spear_olympian.xml @@ -0,0 +1,22 @@ + + + + + + 1.2 + 1.2 + + + + + 1.2 + + + Spartan Olympic Hoplite + units/spart/champion_infantry_olympian.png + + + + units/spartans/infantry_spearman_c_olympian.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_swordsman.xml b/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_swordsman.xml index 581a358d60..847308fe02 100644 --- a/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_swordsman.xml +++ b/binaries/data/mods/public/simulation/templates/units/spart/champion_infantry_swordsman.xml @@ -2,6 +2,7 @@ + structures/spart/gerousia structures/spart/syssiton -structures/{civ}/wallset_stone diff --git a/binaries/data/mods/public/simulation/templates/units/spart/infantry_javelineer_b.xml b/binaries/data/mods/public/simulation/templates/units/spart/infantry_javelineer_b.xml index 22b101c83f..3f6eaeded4 100644 --- a/binaries/data/mods/public/simulation/templates/units/spart/infantry_javelineer_b.xml +++ b/binaries/data/mods/public/simulation/templates/units/spart/infantry_javelineer_b.xml @@ -2,6 +2,7 @@ + structures/spart/gerousia structures/spart/syssiton -structures/{civ}/wallset_stone diff --git a/binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_b.xml b/binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_b.xml index 9e7391aa53..f203875d17 100644 --- a/binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_b.xml +++ b/binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_b.xml @@ -2,6 +2,7 @@ + structures/spart/gerousia structures/spart/syssiton -structures/{civ}/wallset_stone diff --git a/binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_neodamodes.xml b/binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_neodamodes.xml new file mode 100644 index 0000000000..a2bb54a120 --- /dev/null +++ b/binaries/data/mods/public/simulation/templates/units/spart/infantry_spearman_neodamodes.xml @@ -0,0 +1,33 @@ + + + + + + 30 + 0 + 20 + + + + spart + greek + units/spart/infantry_spearman_neodamodes + Neodamodes Hoplite + Neodamōdeis + units/spart/infantry_spearman_neodamodes.png + -Builder -Worker + + unlock_neodamodes + + + + 3 + 0 + 2 + + + + + units/spartans/infantry_spearman_neodamodes.xml + + diff --git a/binaries/data/mods/public/simulation/templates/units/spart/support_female_citizen.xml b/binaries/data/mods/public/simulation/templates/units/spart/support_female_citizen.xml index 42c76eae54..32fc7d41b4 100644 --- a/binaries/data/mods/public/simulation/templates/units/spart/support_female_citizen.xml +++ b/binaries/data/mods/public/simulation/templates/units/spart/support_female_citizen.xml @@ -9,6 +9,7 @@ + structures/spart/gerousia structures/spart/syssiton -structures/{civ}/wallset_stone