1
0
forked from 0ad/0ad

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

View File

@ -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>

View File

@ -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."
}

View File

@ -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": [

View File

@ -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 }

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -9,6 +9,7 @@
</Attack>
<Builder>
<Entities datatype="tokens">
structures/spart/gerousia
structures/spart/syssiton
-structures/{civ}/wallset_stone
</Entities>