Index: binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_a_r.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_a_r.xml +++ binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_a_r.xml @@ -22,6 +22,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_b_r.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_b_r.xml +++ binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_b_r.xml @@ -22,6 +22,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_e_r.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_e_r.xml +++ binaries/data/mods/public/art/actors/units/athenians/cavalry_javelinist_e_r.xml @@ -22,6 +22,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/hero_infantry_javelinist_iphicrates.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/hero_infantry_javelinist_iphicrates.xml +++ binaries/data/mods/public/art/actors/units/athenians/hero_infantry_javelinist_iphicrates.xml @@ -18,6 +18,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/hero_infantry_javelinist_xenophon.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/hero_infantry_javelinist_xenophon.xml +++ binaries/data/mods/public/art/actors/units/athenians/hero_infantry_javelinist_xenophon.xml @@ -16,6 +16,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_archer_a.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_archer_a.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_archer_a.xml @@ -36,6 +36,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_archer_b.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_archer_b.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_archer_b.xml @@ -27,6 +27,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_archer_c.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_archer_c.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_archer_c.xml @@ -30,6 +30,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_archer_e.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_archer_e.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_archer_e.xml @@ -28,6 +28,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_crossbowman_c.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_crossbowman_c.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_crossbowman_c.xml @@ -18,6 +18,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_a.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_a.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_a.xml @@ -43,6 +43,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_b.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_b.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_b.xml @@ -26,6 +26,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_e.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_e.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_javelinist_e.xml @@ -28,6 +28,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_a.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_a.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_a.xml @@ -26,6 +26,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_b.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_b.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_b.xml @@ -26,6 +26,7 @@ + Index: binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_e.xml =================================================================== --- binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_e.xml +++ binaries/data/mods/public/art/actors/units/athenians/infantry_slinger_e.xml @@ -26,6 +26,7 @@ + Index: binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_a_r.xml =================================================================== --- binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_a_r.xml +++ binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_a_r.xml @@ -36,6 +36,7 @@ + Index: binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_b_r.xml =================================================================== --- binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_b_r.xml +++ binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_b_r.xml @@ -42,6 +42,7 @@ + Index: binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_e_r.xml =================================================================== --- binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_e_r.xml +++ binaries/data/mods/public/art/actors/units/romans/cavalry_javelinist_e_r.xml @@ -22,6 +22,7 @@ + Index: binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_a.xml =================================================================== --- binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_a.xml +++ binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_a.xml @@ -27,6 +27,7 @@ + Index: binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_b.xml =================================================================== --- binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_b.xml +++ binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_b.xml @@ -27,6 +27,7 @@ + Index: binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_e.xml =================================================================== --- binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_e.xml +++ binaries/data/mods/public/art/actors/units/romans/infantry_javelinist_e.xml @@ -27,6 +27,7 @@ + Index: binaries/data/mods/public/art/variants/biped/attack_ranged_cavalry_second.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/variants/biped/attack_ranged_cavalry_second.xml @@ -0,0 +1,8 @@ + + + + + + + + Index: binaries/data/mods/public/art/variants/biped/attack_ranged_second.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/variants/biped/attack_ranged_second.xml @@ -0,0 +1,8 @@ + + + + + + + + Index: binaries/data/mods/public/simulation/components/Attack.js =================================================================== --- binaries/data/mods/public/simulation/components/Attack.js +++ binaries/data/mods/public/simulation/components/Attack.js @@ -387,6 +387,18 @@ types.splice(captureIndex, 1); } + let rangeIndex = types.indexOf("Ranged"); + if (rangeIndex != -1) + { + let cmpThisPosition = Engine.QueryInterface(this.entity, IID_Position); + let cmpTargetPosition = Engine.QueryInterface(target, IID_Position); + if (cmpThisPosition && cmpTargetPosition) { + let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion); + if (cmpUnitMotion && cmpUnitMotion.IsInTargetRange(target, 0, this.template.Ranged.MinRange)) + types.splice(rangeIndex, 1); + } + } + let isPreferred = className => this.GetPreferredClasses(className).some(isTargetClass); return types.sort((a, b) => Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged.xml =================================================================== --- binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged.xml +++ binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged.xml @@ -6,12 +6,21 @@ 10 + + 1 + 0 + 0.0 + 2.2 + 500 + 1000 + Human + 0 1.5 0 10.0 - 0.0 + 2.0 75.0 9.81 750