1
0
forked from 0ad/0ad

Differentiate Persians.

- Allows the immortals to be "upgraded" between sword and bow yielding.
- Reduces batch training time per progressing phase.
- Don't kill the immortals partly when reducing their training time.
- More units from the CC.
- Enable the Ice House.

Patch by: @borg-
Differential revision: https://code.wildfiregames.com/D4724
Accepted by: @chrstgtr, @real_tabasco_sauce
Comments by: @marder, @Stan
This was SVN commit r26996.
This commit is contained in:
Freagarach 2022-07-03 05:44:37 +00:00
parent 6e3ddadc7e
commit b6caf5eb63
23 changed files with 239 additions and 63 deletions

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant>
<mesh>skeletal/new/m_armor_pants_tunic_long.dae</mesh>
<props>
<prop actor="props/units/heads/new/head_pers_tiara.xml" attachpoint="head"/>
<prop actor="props/units/helmets/pers_kidaris_tied.xml" attachpoint="helmet"/>
<prop actor="props/units/weapons/arrow_back.xml" attachpoint="weapon_R"/>
<prop actor="props/units/weapons/bow_recurve.xml" attachpoint="weapon_bow"/>
<prop actor="props/units/pers_quiver_back.xml" attachpoint="back"/>
</props>
<textures>
<texture file="skeletal/pers/scale_01_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="Armor Bronze Scales">
<textures>
<texture file="skeletal/pers/scale_04_02.png" name="baseTex"/>
<texture file="skeletal/pers/scale_04_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="3" name="Armor Iron Scales">
<textures>
<texture file="skeletal/pers/scale_03_01.dds" name="baseTex"/>
<texture file="skeletal/pers/scale_04_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="3" name="scale-1a">
<textures>
<texture file="skeletal/pers/scale_01_01.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="scale-1b">
<textures>
<texture file="skeletal/pers/scale_01_02.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="3" name="scale-1c">
<textures>
<texture file="skeletal/pers/scale_01_03.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="scale-1d">
<textures>
<texture file="skeletal/pers/scale_01_04.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="scale-1e">
<textures>
<texture file="skeletal/pers/scale_01_05.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="3" name="scale-1f">
<textures>
<texture file="skeletal/pers/scale_01_06.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="scale-1g">
<textures>
<texture file="skeletal/pers/scale_01_07.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="scale-1h">
<textures>
<texture file="skeletal/pers/scale_01_08.png" name="baseTex"/>
</textures>
</variant>
</group>
<group>
<variant file="biped/base_archer_relax.xml" frequency="1" name="Archer-Relax"/>
<variant file="biped/attack_capture.xml"/>
<variant file="biped/attack_slaughter.xml"/>
<variant file="biped/attack_ranged_archer_hip.xml"/>
<variant file="biped/gather_praise.xml"/>
<variant file="biped/death_infantry.xml"/>
</group>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -29,6 +29,11 @@
"Name": "Large Rams", "Name": "Large Rams",
"History": "", "History": "",
"Description": "Battering Rams +20% attack damage and +2 garrison capacity." "Description": "Battering Rams +20% attack damage and +2 garrison capacity."
},
{
"Name": "Time of War",
"History": "The Persians were known for their large cavalry contingent",
"Description": "Stable −10% batch training time per phase advance."
} }
], ],
"WallSets": [ "WallSets": [

View File

@ -4,7 +4,12 @@
"cost": { "cost": {
"food": 500 "food": 500
}, },
"requirements": { "tech": "phase_city" }, "requirements": {
"all": [
{ "tech": "phase_city" },
{ "notciv": "pers" }
]
},
"requirementsTooltip": "Unlocked in City Phase.", "requirementsTooltip": "Unlocked in City Phase.",
"icon": "fist_spear_fire.png", "icon": "fist_spear_fire.png",
"researchTime": 40, "researchTime": 40,

View File

@ -1,22 +0,0 @@
{
"genericName": "Levy Cavalry",
"description": "Calling up cavalry levies in time of war helps bolster the ranks of a king's army.",
"cost": {
"food": 300
},
"requirements": {
"all": [
{ "tech": "phase_town" },
{ "civ": "pers" }
]
},
"requirementsTooltip": "Unlocked in Town Phase.",
"icon": "horseshoe_silver.png",
"researchTime": 40,
"tooltip": "Cavalry −10% training time.",
"modifications": [
{ "value": "Cost/BuildTime", "multiply": 0.9 }
],
"affects": ["Cavalry"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -14,10 +14,9 @@
"requirementsTooltip": "Unlocked in City Phase.", "requirementsTooltip": "Unlocked in City Phase.",
"icon": "immortals.png", "icon": "immortals.png",
"researchTime": 60, "researchTime": 60,
"tooltip": "Immortals −50% training time, but −10% health.", "tooltip": "Immortals −50% training time.",
"modifications": [ "modifications": [
{ "value": "Cost/BuildTime", "multiply": 0.5 }, { "value": "Cost/BuildTime", "multiply": 0.5 }
{ "value": "Health/Max", "multiply": 0.9 }
], ],
"affects": ["Immortal"], "affects": ["Immortal"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml" "soundComplete": "interface/alarm/alarm_upgradearmory.xml"

View File

@ -1,22 +0,0 @@
{
"genericName": "Levy Infantry",
"description": "Calling up infantry levies in time of war helps bolster the ranks of a king's army.",
"cost": {
"food": 300
},
"requirements": {
"all": [
{ "tech": "phase_town" },
{ "civ": "pers" }
]
},
"requirementsTooltip": "Unlocked in Town Phase.",
"icon": "fist_spear.png",
"researchTime": 40,
"tooltip": "Infantry −10% training time.",
"modifications": [
{ "value": "Cost/BuildTime", "multiply": 0.9 }
],
"affects": ["Infantry"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,23 @@
{
"genericName": "Subterraneam Aqueducts",
"description": "Qanat, network of underground aqueducts connected to the yakhchal.",
"cost": {
"wood": 300,
"stone": 300
},
"requirements": {
"all": [
{ "tech": "phase_city" },
{ "civ": "pers" }
]
},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "cornucopia.png",
"researchTime": 40,
"tooltip": "IceHouse +1 trickle food rate per second.",
"modifications": [
{ "value": "ResourceTrickle/Rates/food", "add": 1 }
],
"affects": ["IceHouse"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,26 @@
{
"genericName": "City Phase",
"description": "Advances from a bustling town to a veritable metropolis, full of the wonders of modern technology. This is the Persian city phase, where stable training rates are decreased because of the 'Times of War' bonus.",
"cost": {
"stone": 750,
"metal": 750
},
"requirements": {
"entity": {
"class": "Town",
"number": 3
}
},
"requirementsTooltip": "Requires three Town Structures.",
"supersedes": "phase_town_pers",
"replaces": ["phase_city"],
"icon": "city_phase.png",
"researchTime": 60,
"tooltip": "Advance to City Phase, which unlocks more entities and technologies. Civic Centers +50% territory influence radius. Structures +9 capture points regeneration rate per garrisoned unit. Stable −10% batch training time.",
"modifications": [
{ "value": "Capturable/GarrisonRegenRate", "add": 9, "affects": "Structure" },
{ "value": "Trainer/BatchTimeModifier", "add": -0.1, "affects": "Stable" },
{ "value": "TerritoryInfluence/Radius", "multiply": 1.5, "affects": "CivCentre" }
],
"soundComplete": "interface/alarm/alarm_phase.xml"
}

View File

@ -0,0 +1,26 @@
{
"genericName": "Town Phase",
"description": "Advances from a small village to a bustling town, ready to expand rapidly. This is the Persian town phase, where stable training rates are decreased because of the 'Times of War' bonus.",
"cost": {
"food": 500,
"wood": 500
},
"requirements": {
"entity": {
"class": "Village",
"number": 5
}
},
"requirementsTooltip": "Requires five Village Structures.",
"supersedes": "phase_village",
"replaces": ["phase_town"],
"icon": "town_phase.png",
"researchTime": 30,
"tooltip": "Advance to Town Phase, which unlocks more entities and technologies. Civic Centers +30% territory influence radius. Structures +7 capture points regeneration rate per garrisoned unit. Stable −10% batch training time.",
"modifications": [
{ "value": "Capturable/GarrisonRegenRate", "add": 7, "affects": "Structure" },
{ "value": "Trainer/BatchTimeModifier", "add": -0.1, "affects": "Stable" },
{ "value": "TerritoryInfluence/Radius", "multiply": 1.3, "affects": "CivCentre" }
],
"soundComplete": "interface/alarm/alarm_phase.xml"
}

View File

@ -4,7 +4,12 @@
"cost": { "cost": {
"food": 500 "food": 500
}, },
"requirements": { "tech": "phase_city" }, "requirements": {
"all": [
{ "tech": "phase_city" },
{ "notciv": "pers" }
]
},
"requirementsTooltip": "Unlocked in City Phase.", "requirementsTooltip": "Unlocked in City Phase.",
"icon": "horseshoe_gold.png", "icon": "horseshoe_gold.png",
"researchTime": 40, "researchTime": 40,

View File

@ -6,7 +6,7 @@
<Cost> <Cost>
<BuildTime>300</BuildTime> <BuildTime>300</BuildTime>
<Resources> <Resources>
<stone>300</stone> <stone>200</stone>
<metal>200</metal> <metal>200</metal>
</Resources> </Resources>
</Cost> </Cost>
@ -31,7 +31,7 @@
<Icon>structures/palace.png</Icon> <Icon>structures/palace.png</Icon>
</Identity> </Identity>
<Loot> <Loot>
<stone>60</stone> <stone>40</stone>
<metal>40</metal> <metal>40</metal>
</Loot> </Loot>
<Obstruction> <Obstruction>
@ -47,10 +47,8 @@
<Rates> <Rates>
<food>1.0</food> <food>1.0</food>
<wood>1.0</wood> <wood>1.0</wood>
<stone>0.75</stone>
<metal>0.75</metal>
</Rates> </Rates>
<Interval>2000</Interval> <Interval>1000</Interval>
</ResourceTrickle> </ResourceTrickle>
<Sound> <Sound>
<SoundGroups> <SoundGroups>

View File

@ -4,6 +4,11 @@
<Civ>pers</Civ> <Civ>pers</Civ>
<SpecificName>Padgan</SpecificName> <SpecificName>Padgan</SpecificName>
</Identity> </Identity>
<Trainer>
<Entities datatype="tokens">
-units/{civ}/champion_infantry_archer
</Entities>
</Trainer>
<VisualActor> <VisualActor>
<Actor>structures/persians/barracks.xml</Actor> <Actor>structures/persians/barracks.xml</Actor>
</VisualActor> </VisualActor>

View File

@ -17,7 +17,12 @@
<Entities datatype="tokens"> <Entities datatype="tokens">
units/{civ}/infantry_spearman_b units/{civ}/infantry_spearman_b
units/{civ}/infantry_archer_b units/{civ}/infantry_archer_b
units/{civ}/cavalry_axeman_b
units/{civ}/cavalry_swordsman_b
units/{civ}/cavalry_spearman_b
units/{civ}/cavalry_javelineer_b units/{civ}/cavalry_javelineer_b
units/{civ}/cavalry_archer_b
units/{civ}/cavalry_crossbowman_b
</Entities> </Entities>
</Trainer> </Trainer>
<VisualActor> <VisualActor>

View File

@ -1,15 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_structure_special"> <Entity parent="template_structure_special">
<BuildRestrictions> <BuildRestrictions>
<Territory>own neutral</Territory> <Territory>own</Territory>
<Category>Yakhchal</Category> <Category>Yakhchal</Category>
</BuildRestrictions> </BuildRestrictions>
<Cost> <Cost>
<BuildTime>100</BuildTime> <BuildTime>60</BuildTime>
<Resources> <Resources>
<stone>100</stone> <stone>100</stone>
<wood>100</wood> <wood>100</wood>
<metal>0</metal>
</Resources> </Resources>
</Cost> </Cost>
<Footprint replace=""> <Footprint replace="">
@ -32,9 +31,19 @@
<RequiredTechnology>phase_village</RequiredTechnology> <RequiredTechnology>phase_village</RequiredTechnology>
<Icon>structures/yakhchal.png</Icon> <Icon>structures/yakhchal.png</Icon>
</Identity> </Identity>
<Loot>
<stone>20</stone>
<wood>20</wood>
</Loot>
<Obstruction> <Obstruction>
<Static width="16.0" depth="16.0"/> <Static width="16.0" depth="16.0"/>
</Obstruction> </Obstruction>
<ProductionQueue/>
<Researcher>
<Technologies datatype="tokens">
pers_food_trickle
</Technologies>
</Researcher>
<Sound> <Sound>
<SoundGroups> <SoundGroups>
<select>interface/select/building/sel_farmstead.xml</select> <select>interface/select/building/sel_farmstead.xml</select>
@ -42,10 +51,14 @@
<death>attack/destruction/building_collapse_large.xml</death> <death>attack/destruction/building_collapse_large.xml</death>
</SoundGroups> </SoundGroups>
</Sound> </Sound>
<TerritoryDecay> <TerritoryInfluence>
<Territory>enemy</Territory> <Root>false</Root>
</TerritoryDecay> <Radius>20</Radius>
<TerritoryInfluence disable=""/> <Weight>30000</Weight>
</TerritoryInfluence>
<Vision>
<Range>20</Range>
</Vision>
<VisualActor> <VisualActor>
<Actor>structures/persians/ice_house.xml</Actor> <Actor>structures/persians/ice_house.xml</Actor>
<FoundationActor>structures/fndn_4x4.xml</FoundationActor> <FoundationActor>structures/fndn_4x4.xml</FoundationActor>

View File

@ -29,6 +29,7 @@
<TempleOfAmun>1</TempleOfAmun> <TempleOfAmun>1</TempleOfAmun>
<TempleOfVesta>1</TempleOfVesta> <TempleOfVesta>1</TempleOfVesta>
<Theater>1</Theater> <Theater>1</Theater>
<Yakhchal>5</Yakhchal>
<WarDog>20</WarDog> <WarDog>20</WarDog>
<Wonder>1</Wonder> <Wonder>1</Wonder>
</Limits> </Limits>

View File

@ -41,7 +41,6 @@
<Researcher> <Researcher>
<Technologies datatype="tokens"> <Technologies datatype="tokens">
barracks_batch_training barracks_batch_training
infantry_cost_time
unlock_champion_infantry unlock_champion_infantry
pair_unlock_champions_sele pair_unlock_champions_sele
</Technologies> </Technologies>

View File

@ -41,7 +41,6 @@
<Researcher> <Researcher>
<Technologies datatype="tokens"> <Technologies datatype="tokens">
stable_batch_training stable_batch_training
cavalry_cost_time
cavalry_movement_speed cavalry_movement_speed
cavalry_health cavalry_health
nisean_horses nisean_horses

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Entity parent="template_unit_champion_infantry_spearman"> <Entity parent="template_unit_champion_infantry_spearman">
<Health>
<Max>140</Max>
</Health>
<Identity> <Identity>
<Civ>pers</Civ> <Civ>pers</Civ>
<Lang>persian</Lang> <Lang>persian</Lang>
@ -8,6 +11,25 @@
<VisibleClasses datatype="tokens">Immortal</VisibleClasses> <VisibleClasses datatype="tokens">Immortal</VisibleClasses>
<Icon>units/pers_champion_infantry.png</Icon> <Icon>units/pers_champion_infantry.png</Icon>
</Identity> </Identity>
<Resistance>
<Entity>
<Damage>
<Hack op="add">-3</Hack>
<Pierce op="add">-3</Pierce>
</Damage>
</Entity>
</Resistance>
<Upgrade>
<Immortal_archer>
<Entity>units/pers/champion_infantry_archer</Entity>
<Tooltip>Switch to using the bow and arrow.</Tooltip>
<Variant>upgrading</Variant>
<Time>8</Time>
</Immortal_archer>
</Upgrade>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
</UnitMotion>
<VisualActor> <VisualActor>
<Actor>units/persians/infantry_spearman_c2.xml</Actor> <Actor>units/persians/infantry_spearman_c2.xml</Actor>
</VisualActor> </VisualActor>

View File

@ -3,6 +3,7 @@
<Builder> <Builder>
<Entities datatype="tokens"> <Entities datatype="tokens">
structures/pers/apadana structures/pers/apadana
structures/pers/ice_house
</Entities> </Entities>
</Builder> </Builder>
<Identity> <Identity>

View File

@ -3,6 +3,7 @@
<Builder> <Builder>
<Entities datatype="tokens"> <Entities datatype="tokens">
structures/pers/apadana structures/pers/apadana
structures/pers/ice_house
</Entities> </Entities>
</Builder> </Builder>
<Identity> <Identity>

View File

@ -3,6 +3,7 @@
<Builder> <Builder>
<Entities datatype="tokens"> <Entities datatype="tokens">
structures/pers/apadana structures/pers/apadana
structures/pers/ice_house
</Entities> </Entities>
</Builder> </Builder>
<Identity> <Identity>

View File

@ -3,6 +3,7 @@
<Builder> <Builder>
<Entities datatype="tokens"> <Entities datatype="tokens">
structures/pers/apadana structures/pers/apadana
structures/pers/ice_house
</Entities> </Entities>
</Builder> </Builder>
<Identity> <Identity>