Mythos_Ruler's Christmas update for SVN users!

Includes:

- Unit rank upgrades, based on a patch by Sanderd. Not all civs get all
rank upgrades. For instance, Spartans get the Infantry rank upgrades,
but not the cavalry rank upgrades. Conversely, the Persians get the
cavalry rank upgrades, but not the infantry rank upgrades. Carthaginians
get rank upgrades for their mercenaries, but not their native units.
etc.

- Updated and tweaked many of the skirmish maps. Too many tweaks to
mention. But I did add Iberian circuit walls to many of them! New
"Bactria" Skirmish Map. Will continue to tweak this one to make it more
unique. It's based on modern-day Afghanistan, which the ancients called
"Bactria." A 2nd Ptolemies sandbox demo map.

- Moved the Ptolemaic Lighthouse to Town Phase to have more impact for
the Ptolemy player on maps with water.

- New Thureos shield patterns by Enrique for a NEW unit: Mercenary
Thureos Spearman.

- TECHNOLOGIES: Some techs renamed and tweaked. Plus, a new "Iron Armor"
tech for Heroes. A new "Roman Logistics" tech for the Roman Army Camp
and Siege Walls. A new "Battlefield Medics" tech for the temple that
unlocks (slow) health regeneration for units. The portrait for this tech
is placeholder and needs replaced ASAP.

- Cavalry now have oval selection rings. Eventually I will implement a
selection ring system where the citizen-soldiers and support units have
round rings, while champions have arrows, and heroes have stars. This
helps visually differentiate the roles of these 3 classes of units. Not
yet implemented.

- Vision radius for infantry slightly reduced.

- Fixed sounds for Persian Wonder.

- Fixed footprint sizes for a few buildings and Ptolemaic walls.

- Ptolemies now have the "Military Settlement" system in place. But this
system might go to the Seleucids instead later for historical reasons.

- Cost of fields reduced. Gathering rates for grain reduced.

- Fixed some selection group names for some templates. (Double clicking
didn't select them all as it should have).

- Fixed/Changed/Added some unit and building names, specifically for the
Ptolemies, but for some others as well.

- Some new temp portraits for Ptolemaic units. Ongoing task.

Lastly, I hope these changes don't break anything. They are heavily
tested on my end, but I can't promise I caught all bugs.

This was SVN commit r14388.
This commit is contained in:
Michael D. Hafer 2013-12-25 15:49:49 +00:00
parent f7e68a4d4c
commit 4658cfa775
164 changed files with 1576 additions and 291 deletions

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="helmet-hellenistic-pilos-feathers">
<mesh>props/helmet/mace_helmet_hellenistic_pilos_feathers.dae</mesh>
<textures>
<texture file="props/helmet/mace_d1.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="helmet-hellenistic-pilos-nofeathers">
<mesh>props/helmet/mace_helmet_hellenistic_pilos.dae</mesh>
<textures>
<texture file="props/helmet/mace_d1.dds" name="baseTex"/>
</textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
</actor>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="helmet-hellenistic-pilos">
<mesh>props/helmet/mace_helmet_hellenistic_pilos.dae</mesh>
<textures>
<texture file="props/helmet/mace_d1.dds" name="baseTex"/>
</textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
</actor>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="helmet-hellenistic-thracian-crest">
<mesh>props/helmet/mace_helmet_hellenistic_a.dae</mesh>
<textures>
<texture file="props/helmet/mace_c.dds" name="baseTex"/>
</textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
</actor>

View File

@ -13,13 +13,17 @@
<variant frequency="1" name="mace_round_j_bronze_player">
<textures>
<texture file="props/shield/mace_round_j_bronze_player.png" name="baseTex"/>
<texture file="props/shield/mace_round_j_norm.png" name="normTex"/>
<texture file="props/shield/mace_round_j_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="mace_round_a_player">
<textures>
<texture file="props/shield/aspis_player_plain.png" name="baseTex"/>
<texture file="props/shield/aspis_smooth_a_norm.png" name="normTex"/>
<texture file="props/shield/aspis_smooth_a_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
<material>player_trans_parallax_spec.xml</material>
</actor>

View File

@ -13,18 +13,24 @@
<variant frequency="1" name="mace_round_i_bronze_player">
<textures>
<texture file="props/shield/mace_round_i_bronze_player.png" name="baseTex"/>
<texture file="props/shield/mace_round_i_norm.png" name="normTex"/>
<texture file="props/shield/mace_round_i_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="mace_round_a_player">
<textures>
<texture file="props/shield/mace_round_a_player.png" name="baseTex"/>
<texture file="props/shield/mace_round_a_norm.png" name="normTex"/>
<texture file="props/shield/mace_round_a_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="mace_round_h_bronze_player">
<textures>
<texture file="props/shield/mace_round_h_bronze_player.png" name="baseTex"/>
<texture file="props/shield/mace_round_h_norm.png" name="normTex"/>
<texture file="props/shield/mace_round_h_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
<material>player_trans_parallax_spec.xml</material>
</actor>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="100" name="Ptolemies Thureos Advanced">
<mesh>props/shield/ptol_thureos_curved.dae</mesh>
</variant>
</group>
<group>
<variant frequency="1" name="Thureos 01 star">
<textures>
<texture file="props/shield/ptol_thureos_01.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_a_metalcap_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="Thureos 03 beetle">
<textures>
<texture file="props/shield/ptol_thureos_03.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_b_wood_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="100" name="Ptolemies Thureos Basic">
<mesh>props/shield/ptol_thureos_curved.dae</mesh>
</variant>
</group>
<group>
<variant frequency="1" name="Thureos galatian a">
<textures>
<texture file="props/shield/ptol_thureos_galatian_a.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_a_wood_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="Thureos galatian b">
<textures>
<texture file="props/shield/ptol_thureos_galatian_b.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_b_wood_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="Thureos galatian c">
<textures>
<texture file="props/shield/ptol_thureos_galatian_c.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_c_wood_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="100" name="Ptolemies Thureos Advanced">
<mesh>props/shield/ptol_thureos_curved.dae</mesh>
</variant>
</group>
<group>
<variant frequency="1" name="Thureos 02 eagle">
<textures>
<texture file="props/shield/ptol_thureos_02.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_b_metal_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="Thureos 05 three stars">
<textures>
<texture file="props/shield/ptol_thureos_05.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_a_metalcap_spec.png" name="specTex"/>
</textures>
</variant>
<variant frequency="1" name="Thureos 04 four stars">
<textures>
<texture file="props/shield/ptol_thureos_04.png" name="baseTex"/>
<texture file="props/shield/ptol_thureos_a_wood_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -1,56 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="100" name="Ptolemaic Fortress">
<mesh>structural/ptol_civic_centre.dae</mesh>
<props>
<prop actor="props/structures/ptolemies/civic_centre_paintings.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_male.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_female.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_sphynx.xml" attachpoint="root"/>
<prop actor="particle/sparks.xml" attachpoint="fire1"/>
<prop actor="particle/flame_firepit_1.xml" attachpoint="fire1"/>
<prop actor="particle/flame_firepit_2.xml" attachpoint="fire1"/>
<prop actor="particle/smoke_small_light.xml" attachpoint="fire1"/>
<prop actor="particle/sparks.xml" attachpoint="fire2"/>
<prop actor="particle/flame_firepit_1.xml" attachpoint="fire2"/>
<prop actor="particle/flame_firepit_2.xml" attachpoint="fire2"/>
<prop actor="particle/smoke_small_light.xml" attachpoint="fire2"/>
<prop actor="props/special/eyecandy/obelisk.xml" attachpoint="obelisk1" minheight="-20" maxheight="20"/>
<prop actor="props/special/eyecandy/obelisk.xml" attachpoint="obelisk2" minheight="-20" maxheight="20"/>
<prop actor="props/structures/decals/dirt_7x7.xml" attachpoint="root"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
</props>
<textures>
<texture file="structural/ptol_struct.png" name="baseTex"/>
<texture file="structural/ptol_struct_norm.png" name="normTex"/>
<texture file="structural/ptol_struct_spec.png" name="specTex"/>
<texture file="structural/ao/ptol_civic_centre.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_ptol.xml" attachpoint="garrisoned"/>
<prop actor="props/special/common/garrison_flag_ptol.xml" attachpoint="garrisoned2"/>
</props>
</variant>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large_gray.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_paintings.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_male.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_female.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_sphynx.xml" attachpoint="root"/>
<prop actor="props/structures/decals/dirt_5x5.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="100" name="Ptolemaic Fortress">
<mesh>structural/ptol_civic_centre.dae</mesh>
<props>
<prop actor="props/structures/ptolemies/civic_centre_paintings.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_male.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_female.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_sphynx.xml" attachpoint="root"/>
<prop actor="particle/sparks.xml" attachpoint="fire1"/>
<prop actor="particle/flame_firepit_1.xml" attachpoint="fire1"/>
<prop actor="particle/flame_firepit_2.xml" attachpoint="fire1"/>
<prop actor="particle/smoke_small_light.xml" attachpoint="fire1"/>
<prop actor="particle/sparks.xml" attachpoint="fire2"/>
<prop actor="particle/flame_firepit_1.xml" attachpoint="fire2"/>
<prop actor="particle/flame_firepit_2.xml" attachpoint="fire2"/>
<prop actor="particle/smoke_small_light.xml" attachpoint="fire2"/>
<prop actor="props/special/eyecandy/obelisk.xml" attachpoint="obelisk1" maxheight="20" minheight="-20"/>
<prop actor="props/special/eyecandy/obelisk.xml" attachpoint="obelisk2" maxheight="20" minheight="-20"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
</props>
<textures>
<texture file="structural/ptol_struct.png" name="baseTex"/>
<texture file="structural/ptol_struct_norm.png" name="normTex"/>
<texture file="structural/ptol_struct_spec.png" name="specTex"/>
<texture file="structural/ao/ptol_civic_centre.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_ptol.xml" attachpoint="garrisoned"/>
<prop actor="props/special/common/garrison_flag_ptol.xml" attachpoint="garrisoned2"/>
</props>
</variant>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large_gray.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_paintings.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_male.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_female.xml" attachpoint="root"/>
<prop actor="props/structures/ptolemies/civic_centre_statue_sphynx.xml" attachpoint="root"/>
<prop actor="props/structures/decals/dirt_5x5.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>

View File

@ -18,7 +18,10 @@
<prop actor="units/persians/hero_darius_chariot_r.xml" attachpoint="rider1"/>
<prop actor="units/persians/cavalry_archer_e_d.xml" attachpoint="rider2"/>
</props>
<textures><texture file="structural/pers_chariot_darius.png" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_chariot_darius.png" name="baseTex"/>
<texture file="structural/pers_chariot_hero_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
@ -34,5 +37,5 @@
</props>
</variant>
</group>
<material>playercolor_spec.xml</material>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -18,7 +18,10 @@
<prop actor="units/persians/hero_xerxes_chariot_r.xml" attachpoint="rider1"/>
<prop actor="units/persians/hero_xerxes_chariot_d.xml" attachpoint="rider2"/>
</props>
<textures><texture file="structural/pers_chariot_xerxes.png" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_chariot_xerxes.png" name="baseTex"/>
<texture file="structural/pers_chariot_hero_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
@ -34,5 +37,5 @@
</props>
</variant>
</group>
<material>playercolor_spec.xml</material>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -0,0 +1,171 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<animations>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_food" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_meat" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_wood" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_stone" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_metal" speed="120"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_a.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_b.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="infantry/sword/attack/isw_s_def_06.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_a.psa" name="attack_slaughter" speed="100"/>
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="25"/>
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="30"/>
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="30"/>
<animation event="0.23" file="infantry/general/chop.psa" name="gather_tree" speed="250"/>
<animation file="biped/hoe.psa" name="gather_grain" speed="300"/>
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="110"/>
<animation file="infantry/general/forage.psa" name="gather_meat" speed="110"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_rock" speed="250"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_ore" speed="250"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_ruins" speed="250"/>
<animation event="0.6" file="infantry/general/dude/dudebuild.psa" name="Build" speed="220"/>
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="400"/>
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="700"/>
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="500"/>
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
<animation file="biped/inf_salute_c.psa" name="Promotion" speed="450"/>
</animations>
<mesh>skeletal/m_tunic_long.dae</mesh>
<props>
<prop actor="props/units/heads/ptol_thureophoros_a.xml" attachpoint="helmet"/>
<prop actor="props/units/heads/head_hele_b.xml" attachpoint="head"/>
<prop actor="props/units/shields/ptol_thureos_adv.xml" attachpoint="shield"/>
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
<prop actor="props/units/weapons/jav_ammo.xml" attachpoint="l_hand"/>
<prop actor="props/units/cape_hd.xml" attachpoint="shoulders"/>
</props>
</variant>
</group>
<group>
<variant frequency="1" name="Thureophoros Tunic">
<textures>
<texture file="skeletal/ptol_thureophoros_a_1.png" name="baseTex"/>
<texture file="skeletal/ptol_thureophoros_a_1_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="Idle"/>
<variant name="death">
<props>
<prop actor="props/units/blood_01.xml" attachpoint="root"/>
</props>
</variant>
<variant name="gather_tree">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_grain">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_fruit">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_meat">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_rock">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_ore">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_ruins">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="Build">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="carry_food">
<props>
<prop actor="props/units/shuttle_basket.xml" attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_meat">
<props>
<prop actor="props/units/shuttle_meat.xml" attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_wood">
<props>
<prop actor="props/units/shuttle_wood.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_stone">
<props>
<prop actor="props/units/shuttle_stone.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_metal">
<props>
<prop actor="props/units/shuttle_metal.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
</group>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<animations>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_food" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_meat" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_wood" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_stone" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_metal" speed="120"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_a.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_b.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="infantry/sword/attack/isw_s_def_06.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_a.psa" name="attack_slaughter" speed="100"/>
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="25"/>
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="30"/>
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="30"/>
<animation event="0.23" file="infantry/general/chop.psa" name="gather_tree" speed="250"/>
<animation file="biped/hoe.psa" name="gather_grain" speed="300"/>
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="110"/>
<animation file="infantry/general/forage.psa" name="gather_meat" speed="110"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_rock" speed="250"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_ore" speed="250"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_ruins" speed="250"/>
<animation event="0.6" file="infantry/general/dude/dudebuild.psa" name="Build" speed="220"/>
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="400"/>
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="700"/>
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="500"/>
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
<animation file="biped/inf_salute_c.psa" name="Promotion" speed="450"/>
</animations>
<mesh>skeletal/m_tunic_long.dae</mesh>
<props>
<prop actor="props/units/heads/head_hele_b.xml" attachpoint="head"/>
<prop actor="props/units/shields/ptol_thureos_basic.xml" attachpoint="shield"/>
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
<prop actor="props/units/weapons/jav_ammo.xml" attachpoint="l_hand"/>
</props>
</variant>
</group>
<group>
<variant frequency="1" name="Thureophoros Tunic">
<textures>
<texture file="skeletal/ptol_thureophoros_a_1.png" name="baseTex"/>
<texture file="skeletal/ptol_thureophoros_a_1_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="Idle"/>
<variant name="death">
<props>
<prop actor="props/units/blood_01.xml" attachpoint="root"/>
</props>
</variant>
<variant name="gather_tree">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_grain">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_fruit">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_meat">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_rock">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_ore">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_ruins">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="Build">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="carry_food">
<props>
<prop actor="props/units/shuttle_basket.xml" attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_meat">
<props>
<prop actor="props/units/shuttle_meat.xml" attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_wood">
<props>
<prop actor="props/units/shuttle_wood.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_stone">
<props>
<prop actor="props/units/shuttle_stone.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_metal">
<props>
<prop actor="props/units/shuttle_metal.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
</group>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<animations>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="130"/>
<animation file="biped/inf_sword_ready_c.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_d.dae" name="Idle" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_food" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_meat" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_wood" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_stone" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="carry_metal" speed="120"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_a.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_b.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="infantry/sword/attack/isw_s_def_06.psa" name="attack_melee" speed="100"/>
<animation event="0.5" file="biped/inf_spear_shield_atk_a.psa" name="attack_slaughter" speed="100"/>
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="25"/>
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="30"/>
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="30"/>
<animation event="0.23" file="infantry/general/chop.psa" name="gather_tree" speed="250"/>
<animation file="biped/hoe.psa" name="gather_grain" speed="300"/>
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="110"/>
<animation file="infantry/general/forage.psa" name="gather_meat" speed="110"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_rock" speed="250"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_ore" speed="250"/>
<animation event="0.43" file="infantry/general/mine.psa" name="gather_ruins" speed="250"/>
<animation event="0.6" file="infantry/general/dude/dudebuild.psa" name="Build" speed="220"/>
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="400"/>
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="700"/>
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="500"/>
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="400"/>
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="500"/>
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="400"/>
<animation file="biped/inf_salute_c.psa" name="Promotion" speed="450"/>
</animations>
<mesh>skeletal/m_tunic_long.dae</mesh>
<props>
<prop actor="props/units/heads/ptol_thureophoros_e.xml" attachpoint="helmet"/>
<prop actor="props/units/heads/head_hele_b.xml" attachpoint="head"/>
<prop actor="props/units/shields/ptol_thureos_elite.xml" attachpoint="shield"/>
<prop actor="props/units/weapons/spear_lance.xml" attachpoint="r_hand"/>
<prop actor="props/units/weapons/jav_ammo.xml" attachpoint="l_hand"/>
<prop actor="props/units/cape_hd.xml" attachpoint="shoulders"/>
</props>
</variant>
</group>
<group>
<variant frequency="1" name="Thureophoros Tunic Elite">
<textures>
<texture file="skeletal/ptol_thureophoros_e_1.png" name="baseTex"/>
<texture file="skeletal/ptol_thureophoros_e_1_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="Idle"/>
<variant name="death">
<props>
<prop actor="props/units/blood_01.xml" attachpoint="root"/>
</props>
</variant>
<variant name="gather_tree">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_grain">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_fruit">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_meat">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_rock">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_ore">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="gather_ruins">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="r_hand"/>
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="Build">
<props>
<prop attachpoint="shield"/>
<prop attachpoint="l_hand"/>
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
<prop attachpoint="helmet"/>
</props>
</variant>
<variant name="carry_food">
<props>
<prop actor="props/units/shuttle_basket.xml" attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_meat">
<props>
<prop actor="props/units/shuttle_meat.xml" attachpoint="r_hand"/>
<prop attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_wood">
<props>
<prop actor="props/units/shuttle_wood.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_stone">
<props>
<prop actor="props/units/shuttle_stone.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
<variant name="carry_metal">
<props>
<prop actor="props/units/shuttle_metal.xml" attachpoint="r_hand"/>
<prop actor="" attachpoint="l_hand"/>
<prop attachpoint="helmet"/>
<prop attachpoint="shield"/>
</props>
</variant>
</group>
<material>player_trans_spec.xml</material>
</actor>

View File

@ -4,33 +4,45 @@
<group>
<variant frequency="100" name="Base">
<animations>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="99"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="98"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="96"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="94"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="90"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="85"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="50"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_c.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_d.dae" name="Idle" speed="95"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="130"/>
<animation file="biped/inf_sword_ready_c.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_d.dae" name="Idle" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="115"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="125"/>

View File

@ -4,33 +4,45 @@
<group>
<variant frequency="100" name="Base">
<animations>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="99"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="98"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="96"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="94"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="90"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="85"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="50"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="75"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_c.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_d.dae" name="Idle" speed="95"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="125"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="110"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="115"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="130"/>
<animation file="biped/inf_sword_ready_c.dae" name="Idle" speed="120"/>
<animation file="biped/inf_sword_ready_d.dae" name="Idle" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="115"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="120"/>
<animation file="biped/walk_spearshield.psa" name="Walk" speed="125"/>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -26,8 +26,13 @@ function GetTechModifiedProperty(currentTechModifications, entityTemplateData, p
// Get the classes which this entity template belongs to
var rawClasses;
if (entityTemplateData && entityTemplateData.Identity)
{
rawClasses = entityTemplateData.Identity.Classes;
var classes = (rawClasses && "_string" in rawClasses ? rawClasses._string.split(/\s+/) : []);
rawClasses = "_string" in rawClasses ? rawClasses._string : "";
if (entityTemplateData.Identity.Rank)
rawClasses += " " + entityTemplateData.Identity.Rank;
}
var classes = rawClasses && rawClasses.length ? rawClasses.split(/\s+/) : [];
var retValue = propertyValue;

Binary file not shown.

Binary file not shown.

BIN
binaries/data/mods/public/maps/skirmishes/Bactria (2).pmp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
binaries/data/mods/public/maps/skirmishes/Bactria (2).xml (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -136,7 +136,16 @@ AuraManager.prototype.ApplyTemplateModifications = function(valueName, value, pl
if (!this.templateModificationsCache[valueName] || !this.templateModificationsCache[valueName][player])
return value;
var classes = template.Identity.Classes._string.split(/\s+/);
var rawClasses;
if (template && template.Identity)
{
rawClasses = template.Identity.Classes;
rawClasses = "_string" in rawClasses ? rawClasses._string : "";
if (template.Identity.Rank)
rawClasses += " " + template.Identity.Rank;
}
var classes = rawClasses && rawClasses.length ? rawClasses.split(/\s+/) : [];
var keyList = [];

View File

@ -95,14 +95,10 @@ Identity.prototype.GetRank = function()
Identity.prototype.GetClassesList = function()
{
if (this.template.Classes && "_string" in this.template.Classes)
{
var string = this.template.Classes._string;
return string.split(/\s+/);
}
else
{
return [];
}
return ( this.template.Classes._string + " " + this.GetRank() ).split(/\s+/);
if (this.GetRank().length)
return [this.GetRank()];
return [];
};
Identity.prototype.HasClass = function(name)

View File

@ -72,19 +72,44 @@ ProductionQueue.prototype.Init = function()
*/
ProductionQueue.prototype.GetEntitiesList = function()
{
if (!this.entiesList)
this.CalculateEntitiesList();
return this.entitiesList;
};
ProductionQueue.prototype.CalculateEntitiesList = function()
{
this.entitiesList = [];
if (!this.template.Entities)
return [];
return;
var string = this.template.Entities._string;
if (!string)
return [];
return;
// Replace the "{civ}" codes with this entity's civ ID
var cmpIdentity = Engine.QueryInterface(this.entity, IID_Identity);
if (cmpIdentity)
string = string.replace(/\{civ\}/g, cmpIdentity.GetCiv());
return string.split(/\s+/);
var entitiesList = string.split(/\s+/);
// check if some templates need to show their advanced or elite version
var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
var playerID = QueryOwnerInterface(this.entity, IID_Player).GetPlayerID();
for each (var templateName in entitiesList)
{
var template = cmpTemplateManager.GetTemplate(templateName);
while (template.Promotion)
{
var requiredXp = ApplyValueModificationsToTemplate("Promotion/RequiredXp", +template.Promotion.RequiredXp, playerID, template);
if (requiredXp > 0)
break;
templateName = template.Promotion.Entity;
template = cmpTemplateManager.GetTemplate(templateName);
}
this.entitiesList.push(templateName);
}
};
/*
@ -192,7 +217,17 @@ ProductionQueue.prototype.AddBatch = function(templateName, type, count, metadat
var template = cmpTempMan.GetTemplate(templateName);
if (!template)
return;
if (template.Promotion)
{
var requiredXp = ApplyValueModificationsToTemplate("Promotion/RequiredXp", +template.Promotion.RequiredXp, cmpPlayer.GetPlayerID(), template);
if (requiredXp == 0)
{
this.AddBatch(template.Promotion.Entity, type, count, metadata);
return;
}
}
// Apply a time discount to larger batches.
var timeMult = this.GetBatchTime(count);
@ -703,4 +738,13 @@ ProductionQueue.prototype.UnpauseProduction = function()
this.timer = cmpTimer.SetTimeout(this.entity, IID_ProductionQueue, "ProgressTimeout", g_ProgressInterval, {});
};
ProductionQueue.prototype.OnValueModification = function(msg)
{
// if the promotion requirements of units is changed,
// update the entities list so that automatically promoted units are shown
// appropriately in the list
if (msg.component == "Promotion")
this.CalculateEntitiesList();
};
Engine.RegisterComponentType(IID_ProductionQueue, "ProductionQueue", ProductionQueue);

View File

@ -11,7 +11,7 @@ Promotion.prototype.Schema =
Promotion.prototype.Init = function()
{
this.currentXp = 0;
}
};
Promotion.prototype.GetRequiredXp = function()
{
@ -26,7 +26,7 @@ Promotion.prototype.GetCurrentXp = function()
Promotion.prototype.GetPromotedTemplateName = function()
{
return this.template.Entity;
}
};
Promotion.prototype.Promote = function(promotedTemplateName)
{
@ -91,33 +91,52 @@ Promotion.prototype.Promote = function(promotedTemplateName)
// Destroy current entity
Engine.DestroyEntity(this.entity);
}
// save the entity id
this.promotedUnitEntity = promotedUnitEntity;
};
Promotion.prototype.IncreaseXp = function(amount)
{
this.currentXp += +(amount);
// if the unit was already promoted, but is waiting for the engine to be destroyed
// transfer the gained xp to the promoted unit if applicable
if (this.promotedUnitEntity)
{
var cmpPromotion = Engine.QueryInterface(this.promotedUnitEntity, IID_Promotion);
if (cmpPromotion)
cmpPromotion.IncreaseXp(amount);
return;
}
if (this.currentXp >= this.GetRequiredXp())
this.currentXp += +(amount);
var requiredXp = this.GetRequiredXp();
if (this.currentXp >= requiredXp)
{
var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
var promotionTemplate = this.template;
var promotedTemplateName;
var requiredXp;
// We may be able to promote by skipping over multiple templates
// so find the highest level we can reach
do
var playerID = QueryOwnerInterface(this.entity, IID_Player).GetPlayerID();
this.currentXp -= requiredXp;
var promotedTemplateName = this.GetPromotedTemplateName();
// check if we can upgrade a second time (or even more)
while (true)
{
requiredXp = this.GetRequiredXp();
this.currentXp -= requiredXp;
promotedTemplateName = promotionTemplate.Entity;
var template = cmpTemplateManager.GetTemplate(promotedTemplateName);
promotionTemplate = template.Promotion;
if (!template.Promotion)
break;
requiredXp = ApplyValueModificationsToTemplate("Promotion/RequiredXp", +template.Promotion.RequiredXp, playerID, template);
// compare the current xp to the required xp of the promoted entity
if (this.currentXp < requiredXp)
break;
this.currentXp -= requiredXp;
promotedTemplateName = template.Promotion.Entity;
}
while (promotionTemplate && this.currentXp >= requiredXp);
this.Promote(promotedTemplateName);
}
}
};
Engine.RegisterComponentType(IID_Promotion, "Promotion", Promotion);
Promotion.prototype.OnValueModification = function(msg)
{
if (msg.component == "Promotion")
this.IncreaseXp(0);
};
Engine.RegisterComponentType(IID_Promotion, "Promotion", Promotion);

View File

@ -0,0 +1,24 @@
{
"genericName": "Iron Hero Armor",
"specificName": {
"hele": "Sidi̱ró Panoplía",
"mace": "Sidi̱ró Panoplía",
"spart": "Sidi̱ró Panoplía",
"athen": "Sidi̱ró Panoplía",
"ptol": "Sidi̱ró Panoplía",
"sele": "Sidi̱ró Panoplía"
},
"description": "Body armor fashioned completely of iron, the hardest workable metal known to the ancients.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 600},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "armor_cuirass_empire.png",
"researchTime": 40,
"tooltip": "All heroes +2 Hack Armor Levels and +2 Pierce Armor Levels, but also +50 Metal Cost.",
"modifications": [
{"value": "Armour/Hack", "add": 2.0},
{"value": "Armour/Pierce", "add": 2.0},
{"value": "Cost/Resources/metal", "add": 50}],
"affects": ["Hero"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -6,6 +6,8 @@
"mace": "Linothorakes",
"spart": "Linothorakes",
"athen": "Linothorakes",
"ptol": "Linothorakes",
"sele": "Linothorakes",
"pers": "Linothorakes",
"rome": "Linothorakes",
"cart": "Linothorakes"

View File

@ -2,7 +2,7 @@
"pair": "pair_inf_armor_04",
"genericName": "Bronze Cuirass Body Armor",
"description": "Body armor fashioned completely of bronze.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 600},
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 500},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "armor_cuirass_bronze.png",

View File

@ -0,0 +1,13 @@
{
"genericName": "Advanced Celtic Mercenaries",
"description": "Upgrade all of your Celtic mercenaries to Advanced rank.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 300},
"requirements": {"tech": "phase_town"},
"requirementsTooltip": "Unlocked in Town Phase.",
"icon": "upgrade_advanced.png",
"researchTime": 40,
"tooltip": "Upgrade all of your Celtic mercenaries to Advanced rank. This increases their military prowess, but decreases their resource gathering rates -25%. Unlocks Elite Celtic Mercenaries technology.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Celt Basic"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,13 @@
{
"genericName": "Advanced Iberian Mercenaries",
"description": "Upgrade all of your Iberian mercenaries to Advanced rank.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 300},
"requirements": {"tech": "phase_town"},
"requirementsTooltip": "Unlocked in Town Phase.",
"icon": "upgrade_advanced.png",
"researchTime": 40,
"tooltip": "Upgrade all of your Iberian mercenaries to Advanced rank. This increases their military prowess, but decreases their resource gathering rates -25%. Unlocks Elite Iberian Mercenaries technology.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Iberian Basic"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,13 @@
{
"genericName": "Advanced Italiote Mercenaries",
"description": "Upgrade all of your Italiote mercenaries to Advanced rank.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 300},
"requirements": {"tech": "phase_town"},
"requirementsTooltip": "Unlocked in Town Phase.",
"icon": "upgrade_advanced.png",
"researchTime": 40,
"tooltip": "Upgrade all of your Italiote mercenaries to Advanced rank. This increases their military prowess, but decreases their resource gathering rates -25%. Unlocks Elite Italiote Mercenaries technology.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Italian Basic"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,14 @@
{
"genericName": "Elite Celtic Mercenaries",
"description": "Upgrade all of your Celtic Mercenaries to Elite rank.",
"cost": {"food": 500, "wood": 0, "stone": 0, "metal": 500},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "upgrade_elite.png",
"researchTime": 40,
"supersedes": "carthaginians/upgrade_rank_advanced_celts",
"tooltip": "Upgrade all of your Celtic mercenaries to Elite rank. This increases their military prowess, but decreases their resource gathering rates another -25%.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Celt Advanced"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,14 @@
{
"genericName": "Elite Iberian Mercenaries",
"description": "Upgrade all of your Iberian Mercenaries to Elite rank.",
"cost": {"food": 500, "wood": 0, "stone": 0, "metal": 500},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "upgrade_elite.png",
"researchTime": 40,
"supersedes": "carthaginians/upgrade_rank_advanced_iberian",
"tooltip": "Upgrade all of your Iberian mercenaries to Elite rank. This increases their military prowess, but decreases their resource gathering rates another -25%.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Iberian Advanced"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,14 @@
{
"genericName": "Elite Italiote Mercenaries",
"description": "Upgrade all of your Italiote Mercenaries to Elite rank.",
"cost": {"food": 500, "wood": 0, "stone": 0, "metal": 500},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "upgrade_elite.png",
"researchTime": 40,
"supersedes": "carthaginians/upgrade_rank_advanced_italiote",
"tooltip": "Upgrade all of your Italiote mercenaries to Elite rank. This increases their military prowess, but decreases their resource gathering rates another -25%.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Italian Advanced"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -1,4 +1,5 @@
{
"pair": "pair_heal_03",
"genericName": "Divine Offerings",
"specificName": {
"hele": "Olympic Games",

View File

@ -0,0 +1,14 @@
{
"pair": "pair_heal_03",
"genericName": "Battlefield Medics",
"description": "Unlock health regeneration for your units.",
"cost": {"food": 100, "wood": 0, "stone": 0, "metal": 100},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "bandage.png",
"researchTime": 40,
"tooltip": "Unlock health regeneration for your units.",
"modifications": [{"value": "Health/RegenRate", "add": 0.5}],
"affects": ["Unit Organic"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,20 @@
{
"genericName": "Infantry Spear Fighting",
"specificName": {
"hele": "Doratismos",
"mace": "Doratismos",
"spart": "Doratismos",
"athen": "Doratismos",
"theb": "Doratismos"
},
"description": "Spear fighting training increases damage of infantry spear units.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 100},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "spear.png",
"researchTime": 40,
"tooltip": "Spearmen +2 hack attack.",
"modifications": [{"value": "Attack/Melee/Hack", "add": 2.0}],
"affects": ["Infantry Spear"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -1,15 +1,15 @@
{
"pair": "pair_inf_02",
"genericName": "Infantry Spear Fighting",
"genericName": "Iron Spearheads",
"specificName": {
"hele": "Doratismos",
"mace": "Doratismos",
"spart": "Doratismos",
"athen": "Doratismos",
"theb": "Doratismos"
"hele": "Siderénies Aichmés",
"mace": "Siderénies Aichmés",
"spart": "Siderénies Aichmés",
"athen": "Siderénies Aichmés",
"theb": "Siderénies Aichmés"
},
"description": "Spear fighting training increases damage of infantry spear units.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 100},
"description": "Using iron instead of bronze gave spears additional piercing power.",
"cost": {"food": 0, "wood": 0, "stone": 0, "metal": 200},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "spear.png",

View File

@ -0,0 +1,5 @@
{
"genericName": "Garrison Healing vs. Self-Healing",
"top": "heal_temple",
"bottom": "health_regen_units"
}

View File

@ -1,21 +1,24 @@
{
"pair": "pair_inf_02",
"genericName": "Ranged Infantry Skirmishers",
"genericName": "Javelin Thong",
"specificName": {
"hele": "Akontistes",
"mace": "Akontistes",
"spart": "Akontistes",
"athen": "Akontistes",
"theb": "Akontistes"
"hele": "Ankyle",
"mace": "Ankyle",
"spart": "Ankyle",
"athen": "Ankyle",
"theb": "Ankyle",
"rome": "Amentum"
},
"description": "Training increases damage of infantry skirmisher units.",
"cost": {"food": 0, "wood": 100, "stone": 0, "metal": 0},
"description": "The javelin thong (the Greeks also called them loops, or bronkhos) increased the fulcrum action of the throwing arm mid-throw, increasing speed and range of the javelin.",
"cost": {"food": 0, "wood": 200, "stone": 0, "metal": 0},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "arrow.png",
"researchTime": 30,
"tooltip": "Skirmisher infantry +2 pierce attack.",
"modifications": [{"value": "Attack/Ranged/Pierce", "add": 2.0}],
"tooltip": "Skirmisher infantry +2 pierce attack and +4 range.",
"modifications": [
{"value": "Attack/Ranged/Pierce", "add": 2.0},
{"value": "Attack/Ranged/MaxRange", "add": 4.0}],
"affects": ["Infantry Javelin"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,13 @@
{
"genericName": "Roman Logistics",
"description": "The Romans were masters of the logistics of warfare.",
"cost": {"food": 0, "wood": 100, "stone": 100, "metal": 0},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "handcart_empty.png",
"researchTime": 40,
"tooltip": "Territory decay eliminated for Army Camps and Siege Walls.",
"modifications": [{"value": "TerritoryDecay/HealthDecayRate", "replace": 0}],
"affects": ["ArmyCamp", "SiegeWall"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,13 @@
{
"genericName": "Advanced Citizen-Cavalry",
"description": "Promote all of your citizen-soldier cavalrymen to Advanced rank.",
"cost": {"food": 400, "wood": 100, "stone": 0, "metal": 0},
"requirements": {"tech": "phase_town"},
"requirementsTooltip": "Unlocked in Town Phase.",
"icon": "upgrade_advanced.png",
"researchTime": 40,
"tooltip": "Promote all of your citizen-soldier cavalrymen to Advanced rank. This increases their military prowess, but decreases their meat gathering rates -25%. Unlocks Elite Citizen-Cavalry technology.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Cavalry Basic"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,19 @@
{
"genericName": "Advanced Citizen-Infantry",
"specificName": {
"hele": "Metikoi",
"mace": "Metikoi",
"spart": "Metikoi",
"athen": "Metikoi"
},
"description": "Upgrade all of your citizen-soldier infantrymen to Advanced rank.",
"cost": {"food": 200, "wood": 300, "stone": 0, "metal": 0},
"requirements": {"tech": "phase_town"},
"requirementsTooltip": "Unlocked in Town Phase.",
"icon": "upgrade_advanced.png",
"researchTime": 40,
"tooltip": "Upgrade all of your citizen-soldier infantrymen to Advanced rank. This increases their military prowess, but decreases their resource gathering rates -25%. Unlocks Elite Citizen-Infantry technology.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Infantry Basic"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,14 @@
{
"genericName": "Elite Citizen-Cavalry",
"description": "Promote all of your citizen-soldier cavalrymen to Advanced rank.",
"cost": {"food": 600, "wood": 0, "stone": 0, "metal": 400},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "upgrade_elite.png",
"researchTime": 40,
"supersedes": "upgrade_rank_advanced_cavalry",
"tooltip": "Promote all of your citizen-soldier cavalrymen to Elite rank. This increases their military prowess, but decreases their meat gathering rates another -25%.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Cavalry Advanced"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -0,0 +1,20 @@
{
"genericName": "Elite Citizen-Infantry",
"specificName": {
"hele": "Zeugites",
"mace": "Zeugites",
"spart": "Zeugites",
"athen": "Zeugites"
},
"description": "Upgrade all of your citizen-soldier infantrymen to Elite rank.",
"cost": {"food": 500, "wood": 0, "stone": 0, "metal": 500},
"requirements": {"tech": "phase_city"},
"requirementsTooltip": "Unlocked in City Phase.",
"icon": "upgrade_elite.png",
"researchTime": 40,
"supersedes": "upgrade_rank_advanced_infantry",
"tooltip": "Upgrade all of your citizen-soldier infantrymen to Elite rank. This increases their military prowess, but decreases their resource gathering rates another -25%.",
"modifications": [{"value": "Promotion/RequiredXp", "replace": 0}],
"affects": ["Infantry Advanced"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
}

View File

@ -31,6 +31,8 @@
</Entities>
<Technologies datatype="tokens">
-unlock_champion_units
upgrade_rank_advanced_infantry
upgrade_rank_elite_infantry
</Technologies>
</ProductionQueue>
<VisualActor>

View File

@ -28,6 +28,11 @@
units/brit_cavalry_javelinist_b
units/brit_champion_cavalry_barracks
</Entities>
<Technologies datatype="tokens">
upgrade_rank_advanced_infantry
upgrade_rank_advanced_cavalry
upgrade_rank_elite_cavalry
</Technologies>
</ProductionQueue>
<VisualActor>
<Actor>structures/britons/barracks.xml</Actor>

View File

@ -33,6 +33,8 @@
<Technologies datatype="tokens">
carthaginians/pair_celt_mercs_1
carthaginians/pair_celt_mercs_2
carthaginians/upgrade_rank_advanced_celts
carthaginians/upgrade_rank_elite_celts
</Technologies>
</ProductionQueue>
<VisualActor>

View File

@ -27,6 +27,8 @@
<Technologies datatype="tokens">
carthaginians/pair_iberian_mercs_1
carthaginians/pair_iberian_mercs_2
carthaginians/upgrade_rank_advanced_iberian
carthaginians/upgrade_rank_elite_iberian
</Technologies>
</ProductionQueue>
<VisualActor>

View File

@ -33,6 +33,8 @@
<Technologies datatype="tokens">
carthaginians/pair_italian_mercs_1
carthaginians/pair_italian_mercs_2
carthaginians/upgrade_rank_advanced_italiote
carthaginians/upgrade_rank_elite_italiote
</Technologies>
</ProductionQueue>
<VisualActor>

Some files were not shown because too many files have changed in this diff Show More