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.
This commit is contained in:
Freagarach
2023-07-22 13:54:09 +00:00
parent e4ba25ba35
commit 7da94fc18f
20 changed files with 267 additions and 18 deletions
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<mesh>skeletal/new/m_tunic_short.dae</mesh>
<props>
<prop actor="props/units/heads/new/head_spart_a.xml" attachpoint="head"/>
<prop actor="props/units/shields/aspis_lambda_brasidas.xml" attachpoint="shield_arm"/>
<prop actor="props/units/weapons/spear_hoplite.xml" attachpoint="weapon_R"/>
<prop actor="props/units/helmets/hele_pilos.xml" attachpoint="helmet"/>
</props>
</variant>
</group>
<group>
<variant frequency="1" name="tunic_fur_01_01">
<textures>
<texture file="skeletal/hele/tunic_fur_01_01.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="tunic_fur_01_02">
<textures>
<texture file="skeletal/hele/tunic_fur_01_02.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="tunic_fur_01_03">
<textures>
<texture file="skeletal/hele/tunic_fur_01_03.png" name="baseTex"/>
</textures>
</variant>
</group>
<group>
<variant file="biped/base_hoplite.xml"/>
<variant file="biped/carry_food.xml"/>
<variant file="biped/carry_meat.xml"/>
<variant file="biped/carry_wood.xml"/>
<variant file="biped/carry_stone.xml"/>
<variant file="biped/carry_metal.xml"/>
<variant file="biped/approach_tree.xml"/>
<variant file="biped/approach_grain.xml"/>
<variant file="biped/approach_fruit.xml"/>
<variant file="biped/approach_meat.xml"/>
<variant file="biped/approach_rock.xml"/>
<variant file="biped/approach_ore.xml"/>
<variant file="biped/approach_ruins.xml"/>
<variant file="biped/approach_praise.xml"/>
</group>
<group>
<variant frequency="1" name="Idle"/>
<variant file="biped/formations/phalanx_front.xml"/>
<variant file="biped/formations/phalanx_mid.xml"/>
<variant file="biped/formations/phalanx_back.xml"/>
<variant file="biped/attack_capture.xml">
<props>
<prop actor="props/units/weapons/spear_lance_cavalry_reverse.xml" attachpoint="weapon_R"/>
</props>
</variant>
<variant file="biped/attack_slaughter.xml"/>
<variant file="biped/death_infantry.xml"/>
<variant file="biped/gather_tree.xml"/>
<variant file="biped/gather_grain.xml"/>
<variant file="biped/gather_fruit.xml"/>
<variant file="biped/gather_meat.xml"/>
<variant file="biped/gather_rock.xml"/>
<variant file="biped/gather_ore.xml"/>
<variant file="biped/gather_ruins.xml"/>
<variant file="biped/gather_praise.xml"/>
<variant file="biped/build.xml"/>
<variant file="biped/build_farm.xml"/>
</group>
<material>player_trans.xml</material>
</actor>
@@ -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."
}
@@ -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": [
@@ -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 }
@@ -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"
}
@@ -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"
}
@@ -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"
}
@@ -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"
}
@@ -14,6 +14,11 @@
<Obstruction>
<Static width="20.0" depth="20.0"/>
</Obstruction>
<Trainer>
<Entities datatype="tokens">
units/{civ}/infantry_spearman_neodamodes
</Entities>
</Trainer>
<VisualActor>
<Actor>structures/spartans/barracks.xml</Actor>
<FoundationActor>structures/fndn_7x7.xml</FoundationActor>
@@ -7,6 +7,11 @@
<Civ>spart</Civ>
<SpecificName>Agora</SpecificName>
</Identity>
<Researcher>
<Technologies datatype="tokens">
helot_economy
</Technologies>
</Researcher>
<Trainer>
<Entities datatype="tokens">
units/{civ}/infantry_spearman_b
@@ -21,10 +21,13 @@
<Civ>spart</Civ>
<GenericName>Spartan Senate</GenericName>
<SpecificName>Gerousia</SpecificName>
<Tooltip>Train Heroes.</Tooltip>
<Tooltip>Research technologies.</Tooltip>
<Classes datatype="tokens">ConquestCritical</Classes>
<VisibleClasses datatype="tokens">Council</VisibleClasses>
<VisibleClasses datatype="tokens">-City Town Council</VisibleClasses>
<Icon>structures/tholos.png</Icon>
<Requirements>
<Techs datatype="tokens">-phase_city phase_town</Techs>
</Requirements>
</Identity>
<Loot>
<stone>20</stone>
@@ -34,6 +37,14 @@
<Static width="20.0" depth="20.0"/>
</Obstruction>
<ProductionQueue/>
<Researcher>
<Technologies datatype="tokens">
agoge
krypteia
tyrtean_paeans
unlock_neodamodes
</Technologies>
</Researcher>
<Sound>
<SoundGroups>
<select>interface/select/building/sel_tholos.xml</select>
@@ -45,12 +56,6 @@
<Radius>38</Radius>
<Weight>40000</Weight>
</TerritoryInfluence>
<Trainer>
<BatchTimeModifier>0.7</BatchTimeModifier>
<Entities datatype="tokens">
units/{civ}/hero_leonidas
</Entities>
</Trainer>
<Vision>
<Range>40</Range>
</Vision>
@@ -24,8 +24,11 @@
<SpecificName>Syssition</SpecificName>
<Tooltip>Train Champions and Heroes.</Tooltip>
<Classes datatype="tokens">ConquestCritical CivSpecific</Classes>
<VisibleClasses datatype="tokens">Syssiton</VisibleClasses>
<VisibleClasses datatype="tokens">-City Village Syssiton</VisibleClasses>
<Icon>structures/syssition.png</Icon>
<Requirements>
<Techs datatype="tokens">-phase_city phase_village</Techs>
</Requirements>
</Identity>
<Loot>
<stone>40</stone>
@@ -35,11 +38,6 @@
<Static width="15.0" depth="25.0"/>
</Obstruction>
<ProductionQueue/>
<Researcher>
<Technologies datatype="tokens">
agoge
</Technologies>
</Researcher>
<Sound>
<SoundGroups>
<select>interface/select/building/sel_gymnasium.xml</select>
@@ -6,7 +6,14 @@
<GenericName>Spartan Hoplite</GenericName>
<SpecificName>Spartiátēs</SpecificName>
<Icon>units/spart/champion_infantry_spear.png</Icon>
<Requirements>
<Techs datatype="tokens">-phase_city phase_village</Techs>
</Requirements>
</Identity>
<Promotion>
<Entity>units/spart/champion_infantry_spear_olympian</Entity>
<RequiredXp>150</RequiredXp>
</Promotion>
<VisualActor>
<Actor>units/spartans/infantry_spearman_c.xml</Actor>
</VisualActor>
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="units/spart/champion_infantry_spear">
<Attack>
<Melee>
<Damage>
<Hack op="mul">1.2</Hack>
<Pierce op="mul">1.2</Pierce>
</Damage>
</Melee>
</Attack>
<Health>
<Max op="mul">1.2</Max>
</Health>
<Identity>
<GenericName>Spartan Olympic Hoplite</GenericName>
<Icon>units/spart/champion_infantry_olympian.png</Icon>
</Identity>
<Promotion disable=""/>
<VisualActor>
<Actor>units/spartans/infantry_spearman_c_olympian.xml</Actor>
</VisualActor>
</Entity>
@@ -2,6 +2,7 @@
<Entity parent="template_unit_infantry_melee_swordsman">
<Builder>
<Entities datatype="tokens">
structures/spart/gerousia
structures/spart/syssiton
-structures/{civ}/wallset_stone
</Entities>
@@ -2,6 +2,7 @@
<Entity parent="template_unit_infantry_ranged_javelineer">
<Builder>
<Entities datatype="tokens">
structures/spart/gerousia
structures/spart/syssiton
-structures/{civ}/wallset_stone
</Entities>
@@ -2,6 +2,7 @@
<Entity parent="hoplite|template_unit_infantry_melee_spearman">
<Builder>
<Entities datatype="tokens">
structures/spart/gerousia
structures/spart/syssiton
-structures/{civ}/wallset_stone
</Entities>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<Entity parent="hoplite|template_unit_infantry_melee_spearman">
<Builder disable=""/>
<Cost>
<Resources>
<food>30</food>
<wood>0</wood>
<metal>20</metal>
</Resources>
</Cost>
<Identity>
<Civ>spart</Civ>
<Lang>greek</Lang>
<SelectionGroupName>units/spart/infantry_spearman_neodamodes</SelectionGroupName>
<GenericName>Neodamodes Hoplite</GenericName>
<SpecificName>Neodamōdeis</SpecificName>
<Icon>units/spart/infantry_spearman_neodamodes.png</Icon>
<VisibleClasses datatype="tokens">-Builder -Worker</VisibleClasses>
<Requirements>
<Techs datatype="tokens">unlock_neodamodes</Techs>
</Requirements>
</Identity>
<Loot>
<food>3</food>
<wood>0</wood>
<metal>2</metal>
</Loot>
<ResourceGatherer disable=""/>
<Promotion disable=""/>
<VisualActor>
<Actor>units/spartans/infantry_spearman_neodamodes.xml</Actor>
</VisualActor>
</Entity>
@@ -9,6 +9,7 @@
</Attack>
<Builder>
<Entities datatype="tokens">
structures/spart/gerousia
structures/spart/syssiton
-structures/{civ}/wallset_stone
</Entities>