Index: binaries/data/mods/public/simulation/components/UnitAI.js =================================================================== --- binaries/data/mods/public/simulation/components/UnitAI.js +++ binaries/data/mods/public/simulation/components/UnitAI.js @@ -1567,7 +1567,15 @@ }, "MoveCompleted": function() { - this.SelectAnimation("idle"); + var animationName = "idle"; + if (this.IsFormationMember()) + { + var cmpFormation = Engine.QueryInterface(this.formationController, IID_Formation); + if (cmpFormation) + animationName = cmpFormation.GetFormationAnimation(this.entity, animationName); + } + this.SelectAnimation(animationName); + }, "Timer": function(msg) { @@ -1708,7 +1716,14 @@ "enter": function () { this.StartTimer(1000, 1000); this.SetHeldPositionOnEntity(this.entity); - this.SelectAnimation("idle"); + var animationName = "idle"; + if (this.IsFormationMember()) + { + var cmpFormation = Engine.QueryInterface(this.formationController, IID_Formation); + if (cmpFormation) + animationName = cmpFormation.GetFormationAnimation(this.entity, animationName); + } + this.SelectAnimation(animationName); return false; }, @@ -2601,8 +2616,15 @@ "MoveCompleted": function() { // Switch back to idle animation to guarantee we won't // get stuck with the carry animation after stopping moving - this.SelectAnimation("idle"); - + var animationName = "idle"; + if (this.IsFormationMember()) + { + var cmpFormation = Engine.QueryInterface(this.formationController, IID_Formation); + if (cmpFormation) + animationName = cmpFormation.GetFormationAnimation(this.entity, animationName); + } + this.SelectAnimation(animationName); + // Check the dropsite is in range and we can return our resource there // (we didn't get stopped before reaching it) if (this.CheckTargetRange(this.order.data.target, IID_ResourceGatherer) && this.CanReturnResource(this.order.data.target, true)) @@ -3070,7 +3092,14 @@ "LOADING": { "enter": function() { - this.SelectAnimation("idle"); + var animationName = "idle"; + if (this.IsFormationMember()) + { + var cmpFormation = Engine.QueryInterface(this.formationController, IID_Formation); + if (cmpFormation) + animationName = cmpFormation.GetFormationAnimation(this.entity, animationName); + } + this.SelectAnimation(animationName); var cmpGarrisonHolder = Engine.QueryInterface(this.entity, IID_GarrisonHolder); if (!cmpGarrisonHolder || cmpGarrisonHolder.IsFull()) { Index: binaries/data/mods/public/simulation/data/civs/cart.json =================================================================== --- binaries/data/mods/public/simulation/data/civs/cart.json +++ binaries/data/mods/public/simulation/data/civs/cart.json @@ -151,7 +151,8 @@ "special/formations/flank", "special/formations/skirmish", "special/formations/wedge", - "special/formations/battle_line" + "special/formations/battle_line", + "special/formations/phalanx" ], "AINames": [ Index: binaries/data/mods/public/simulation/data/civs/pers.json =================================================================== --- binaries/data/mods/public/simulation/data/civs/pers.json +++ binaries/data/mods/public/simulation/data/civs/pers.json @@ -143,7 +143,8 @@ "special/formations/flank", "special/formations/skirmish", "special/formations/wedge", - "special/formations/battle_line" + "special/formations/battle_line", + "special/formations/phalanx" ], "AINames": [ Index: binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml =================================================================== --- binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml +++ binaries/data/mods/public/simulation/templates/special/formations/phalanx.xml @@ -12,6 +12,28 @@ 20 8 0.9 + + + 1..2,1..-1: phalanx_idle; + 3..4,1..-1: phalanx_idle; + 5..6,1..-1: phalanx_back_idle + + + 1..2,1..-1: phalanx_walk; + 3..4,1..-1: phalanx_walk; + 5..6,1..-1: phalanx_walk + + + 1..2,1..-1: phalanx_run; + 3..4,1..-1: phalanx_run; + 5..6,1..-1: phalanx_run + + + 1..2,1..-1: phalanx_attack; + 3..4,1..-1: phalanx_attack; + 5..6,1..-1: phalanx_idle + + false Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman_hoplite.xml =================================================================== --- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman_hoplite.xml +++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman_hoplite.xml @@ -0,0 +1,8 @@ + + + + + special/formations/phalanx + + + Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman_hoplite.xml =================================================================== --- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman_hoplite.xml +++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman_hoplite.xml @@ -0,0 +1,8 @@ + + + + + special/formations/phalanx + + + Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_melee.xml =================================================================== --- binaries/data/mods/public/simulation/templates/template_unit_infantry_melee.xml +++ binaries/data/mods/public/simulation/templates/template_unit_infantry_melee.xml @@ -18,7 +18,6 @@ Melee Infantry Melee - special/formations/phalanx special/formations/testudo Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman_hoplite.xml =================================================================== --- binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman_hoplite.xml +++ binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman_hoplite.xml @@ -0,0 +1,8 @@ + + + + + special/formations/phalanx + + + Index: binaries/data/mods/public/simulation/templates/units/athen_champion_infantry.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/athen_champion_infantry.xml +++ binaries/data/mods/public/simulation/templates/units/athen_champion_infantry.xml @@ -1,5 +1,5 @@ - + athen greek Index: binaries/data/mods/public/simulation/templates/units/athen_hero_pericles.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/athen_hero_pericles.xml +++ binaries/data/mods/public/simulation/templates/units/athen_hero_pericles.xml @@ -1,5 +1,5 @@ - + units/heroes/athen_hero_pericles_1 units/heroes/athen_hero_pericles_2 Index: binaries/data/mods/public/simulation/templates/units/athen_infantry_spearman_b.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/athen_infantry_spearman_b.xml +++ binaries/data/mods/public/simulation/templates/units/athen_infantry_spearman_b.xml @@ -1,5 +1,5 @@ - + 6.0 Index: binaries/data/mods/public/simulation/templates/units/cart_champion_infantry.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/cart_champion_infantry.xml +++ binaries/data/mods/public/simulation/templates/units/cart_champion_infantry.xml @@ -1,5 +1,5 @@ - + cart Sacred Band Infantry Index: binaries/data/mods/public/simulation/templates/units/cart_infantry_spearman_b.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/cart_infantry_spearman_b.xml +++ binaries/data/mods/public/simulation/templates/units/cart_infantry_spearman_b.xml @@ -1,5 +1,5 @@ - + structures/cart_super_dock Index: binaries/data/mods/public/simulation/templates/units/mace_champion_infantry_a.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/mace_champion_infantry_a.xml +++ binaries/data/mods/public/simulation/templates/units/mace_champion_infantry_a.xml @@ -1,5 +1,5 @@ - + mace greek Index: binaries/data/mods/public/simulation/templates/units/pers_kardakes_hoplite.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/pers_kardakes_hoplite.xml +++ binaries/data/mods/public/simulation/templates/units/pers_kardakes_hoplite.xml @@ -1,5 +1,5 @@ - + 0 Index: binaries/data/mods/public/simulation/templates/units/samnite_spearman.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/samnite_spearman.xml +++ binaries/data/mods/public/simulation/templates/units/samnite_spearman.xml @@ -1,5 +1,5 @@ - + gaia Samnite Spearman Index: binaries/data/mods/public/simulation/templates/units/spart_champion_infantry_spear.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/spart_champion_infantry_spear.xml +++ binaries/data/mods/public/simulation/templates/units/spart_champion_infantry_spear.xml @@ -1,5 +1,5 @@ - + spart greek Index: binaries/data/mods/public/simulation/templates/units/spart_hero_agis.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/spart_hero_agis.xml +++ binaries/data/mods/public/simulation/templates/units/spart_hero_agis.xml @@ -1,5 +1,5 @@ - + 2000 Index: binaries/data/mods/public/simulation/templates/units/spart_hero_leonidas.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/spart_hero_leonidas.xml +++ binaries/data/mods/public/simulation/templates/units/spart_hero_leonidas.xml @@ -1,5 +1,5 @@ - + units/heroes/spart_hero_leonidas Index: binaries/data/mods/public/simulation/templates/units/spart_infantry_spearman_b.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/spart_infantry_spearman_b.xml +++ binaries/data/mods/public/simulation/templates/units/spart_infantry_spearman_b.xml @@ -1,5 +1,5 @@ - + structures/spart_syssiton Index: binaries/data/mods/public/simulation/templates/units/thebes_sacred_band_hoplitai.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/thebes_sacred_band_hoplitai.xml +++ binaries/data/mods/public/simulation/templates/units/thebes_sacred_band_hoplitai.xml @@ -1,5 +1,5 @@ - + gaia greek