Index: ps/trunk/binaries/data/mods/public/simulation/components/Attack.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/Attack.js +++ ps/trunk/binaries/data/mods/public/simulation/components/Attack.js @@ -72,8 +72,6 @@ "15.0" + "800" + "1600" + - "50.0" + - "2.5" + "1000" + "" + "" + @@ -82,6 +80,8 @@ "" + "" + "" + + "50.0" + + "2.5" + "props/units/weapons/rock_flaming.xml" + "props/units/weapons/rock_explosion.xml" + "0.1" + @@ -144,38 +144,7 @@ "" + "" + "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + "" + - Attack.prototype.bonusesSchema + - Attack.prototype.preferredClassesSchema + - Attack.prototype.restrictedClassesSchema + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + "" + "" + "" + @@ -187,6 +156,40 @@ "" + "" + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + Attack.prototype.bonusesSchema + + Attack.prototype.preferredClassesSchema + + Attack.prototype.restrictedClassesSchema + "" + "" + "" + @@ -493,8 +496,8 @@ // * Obstacles like trees could reduce the probability of the target being hit // * Obstacles like walls should block projectiles entirely - let horizSpeed = +this.template[type].ProjectileSpeed; - let gravity = +this.template[type].Gravity; + let horizSpeed = +this.template[type].Projectile.Speed; + let gravity = +this.template[type].Projectile.Gravity; //horizSpeed /= 2; gravity /= 2; // slow it down for testing let cmpPosition = Engine.QueryInterface(this.entity, IID_Position); @@ -513,7 +516,7 @@ let predictedPosition = (timeToTarget !== false) ? Vector3D.mult(targetVelocity, timeToTarget).add(targetPosition) : targetPosition; // Add inaccuracy based on spread. - let distanceModifiedSpread = ApplyValueModificationsToEntity("Attack/Ranged/Spread", +this.template.Ranged.Spread, this.entity) * + let distanceModifiedSpread = ApplyValueModificationsToEntity("Attack/Ranged/Spread", +this.template[type].Projectile.Spread, this.entity) * predictedPosition.horizDistanceTo(selfPosition) / 100; let randNorm = randomNormal2D(); @@ -534,16 +537,14 @@ let actorName = ""; let impactActorName = ""; let impactAnimationLifetime = 0; - if (this.template.Ranged.Projectile) - { - actorName = this.template.Ranged.Projectile.ActorName || ""; - impactActorName = this.template.Ranged.Projectile.ImpactActorName || ""; - impactAnimationLifetime = this.template.Ranged.Projectile.ImpactAnimationLifetime || 0; - } - let launchPoint = selfPosition.clone(); - // TODO: remove this when all the ranged unit templates are updated with Projectile/Launchpoint - launchPoint.y += 3; + actorName = this.template[type].Projectile.ActorName || ""; + impactActorName = this.template[type].Projectile.ImpactActorName || ""; + impactAnimationLifetime = this.template[type].Projectile.ImpactAnimationLifetime || 0; + + // TODO: Use unit rotation to implement x/z offsets. + let deltaLaunchPoint = new Vector3D(0, this.template[type].Projectile.LaunchPoint["@y"], 0.0); + let launchPoint = Vector3D.add(selfPosition, deltaLaunchPoint); let cmpVisual = Engine.QueryInterface(this.entity, IID_Visual); if (cmpVisual) @@ -578,16 +579,16 @@ "attackerOwner": attackerOwner, "attackImpactSound": attackImpactSound }; - if (this.template.Ranged.Splash) + if (this.template[type].Splash) { - data.friendlyFire = this.template.Ranged.Splash.FriendlyFire != "false"; - data.radius = +this.template.Ranged.Splash.Range; - data.shape = this.template.Ranged.Splash.Shape; + data.friendlyFire = this.template[type].Splash.FriendlyFire != "false"; + data.radius = +this.template[type].Splash.Range; + data.shape = this.template[type].Splash.Shape; data.isSplash = true; data.splashStrengths = this.GetAttackStrengths(type + ".Splash"); data.splashBonus = this.GetBonusTemplate(type + ".Splash"); } - cmpTimer.SetTimeout(SYSTEM_ENTITY, IID_Damage, "MissileHit", timeToTarget * 1000 + +this.template.Ranged.Delay, data); + cmpTimer.SetTimeout(SYSTEM_ENTITY, IID_Damage, "MissileHit", timeToTarget * 1000 + +this.template[type].Delay, data); } else if (type == "Capture") { Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Attack.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Attack.js +++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Attack.js @@ -71,9 +71,11 @@ "MaxRange": 80, "PrepareTime": 300, "RepeatTime": 500, - "ProjectileSpeed": 50, - "Gravity": 9.81, - "Spread": 2.5, + "Projectile": { + "Speed": 10, + "Spread": 2, + "Gravity": 1 + } "PreferredClasses": { "_string": "Archer" }, Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js +++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js @@ -28,7 +28,20 @@ let attacker = 11; let atkPlayerEntity = 1; let attackerOwner = 6; - let cmpAttack = ConstructComponent(attacker, "Attack", { "Ranged": { "ProjectileSpeed": 500, "Gravity": 9.81, "Spread": 0.5, "MaxRange": 50, "MinRange": 0, "Delay": 0 } } ); + let cmpAttack = ConstructComponent(attacker, "Attack", + { + "Ranged": { + "MaxRange": 50, + "MinRange": 0, + "Delay": 0, + "Projectile": { + "Speed": 75.0, + "Spread": 0.5, + "Gravity": 9.81, + "LaunchPoint": { "@y": 3 } + } + } + }); let damage = 5; let target = 21; let targetOwner = 7; Index: ps/trunk/binaries/data/mods/public/simulation/templates/campaigns/campaign_city_minor_test.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/campaigns/campaign_city_minor_test.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/campaigns/campaign_city_minor_test.xml @@ -7,9 +7,11 @@ 0.0 50.0 1.0 - 75.0 1200 2000 + + 75.0 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/campaigns/campaign_city_test.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/campaigns/campaign_city_test.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/campaigns/campaign_city_test.xml @@ -7,9 +7,11 @@ 0.0 50.0 1.0 - 75.0 1200 2000 + + 75.0 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome_army_camp.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome_army_camp.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/structures/rome_army_camp.xml @@ -17,12 +17,15 @@ 0.0 60.0 0.0 - 75.0 - 9.81 1200 2000 - 1.5 0 + + 75.0 + 1.5 + 9.81 + + outline_border.png outline_border_mask.png Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml @@ -22,12 +22,15 @@ 0.0 72.0 0.0 - 75.0 - 9.81 1200 2000 - 1.5 0 + + 75.0 + 1.5 + 9.81 + + Human outline_border.png Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_tower.xml @@ -5,12 +5,15 @@ 0 0 0 - 75.0 - 9.81 1200 2000 - 1.5 0 + + 75.0 + 1.5 + 9.81 + + Human outline_border.png Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall_tower.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall_tower.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_defensive_wall_tower.xml @@ -7,12 +7,15 @@ 0.0 72.0 12.0 - 75.0 - 9.81 1200 2000 - 1.5 0 + + 75.0 + 1.5 + 9.81 + + Human outline_border.png Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml @@ -12,12 +12,15 @@ 0.0 72.0 0.0 - 75.0 - 9.81 1200 2000 - 1.5 0 + + 75.0 + 1.5 + 9.81 + + Human outline_border.png Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged.xml @@ -7,12 +7,15 @@ 0 16.0 0.0 - 75.0 - 9.81 1000 1500 - 3.0 0 + + 75.0 + 3.0 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_archer.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_archer.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_archer.xml @@ -7,10 +7,12 @@ 0 72.0 0.0 - 75.0 500 1000 - 3.0 + + 75.0 + 3.0 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_javelinist.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_javelinist.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_javelinist.xml @@ -7,10 +7,12 @@ 0 28.0 0.0 - 62.5 750 1250 - 4.0 + + 62.5 + 4.0 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_archer.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_archer.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_archer.xml @@ -7,12 +7,15 @@ 0 76.0 0.0 - 75.0 - 9.81 500 1000 - 1.0 0 + + 75.0 + 1.0 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_javelinist.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_javelinist.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_javelinist.xml @@ -7,12 +7,15 @@ 0.0 32.0 0.0 - 62.5 - 9.81 750 1250 - 1.0 0 + + 62.5 + 1.0 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_archer.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_archer.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_archer.xml @@ -7,12 +7,15 @@ 0 76 0.0 - 75.0 - 9.81 300 500 - 1.0 0 + + 75.0 + 1.0 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelinist.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelinist.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelinist.xml @@ -7,12 +7,15 @@ 0 28.0 0.0 - 62.5 - 9.81 500 1000 - 1.0 0 + + 62.5 + 1.0 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_archer.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_archer.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_archer.xml @@ -7,12 +7,15 @@ 0 80.0 0.0 - 75.0 - 9.81 1200 2000 - 0.5 0 + + 75.0 + 0.5 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelinist.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelinist.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelinist.xml @@ -7,12 +7,15 @@ 0.0 36.0 0.0 - 62.5 - 9.81 750 1250 - 0.5 0 + + 62.5 + 0.5 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_archer.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_archer.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_archer.xml @@ -7,12 +7,15 @@ 0 80 0.0 - 75.0 - 9.81 200 300 - 0.5 0 + + 75.0 + 0.5 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_javelinist.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_javelinist.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_javelinist.xml @@ -7,12 +7,15 @@ 0 32.0 0.0 - 62.5 - 9.81 600 1000 - 0.5 0 + + 62.5 + 0.5 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged.xml @@ -12,12 +12,15 @@ 0 10.0 0.0 - 75.0 - 9.81 750 1250 - 3.0 0 + + 75.0 + 3.0 + 9.81 + + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_archer.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_archer.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_archer.xml @@ -11,10 +11,12 @@ 0 72.0 0.0 - 75.0 600 1000 - 3.0 + + 75.0 + 3.0 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelinist.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelinist.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelinist.xml @@ -11,10 +11,12 @@ 0 24.0 0.0 - 62.5 750 1250 - 4.0 + + 62.5 + 4.0 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_slinger.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_slinger.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_slinger.xml @@ -11,10 +11,12 @@ 1.0 48.0 0.0 - 62.5 500 1000 - 3.0 + + 62.5 + 3.0 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml @@ -7,12 +7,15 @@ 0.0 45.0 0.0 - 75.0 - 9.81 1000 2000 - 2.0 0 + + 75.0 + 2.0 + 9.81 + + Ship Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml @@ -7,11 +7,8 @@ 100.0 72.0 10.0 - 37.5 - 9.81 2000 5000 - 4.0 0 Circular @@ -21,6 +18,12 @@ 15.0 35.0 + + 37.5 + 4.0 + 9.81 + + Ship Structure Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml @@ -7,12 +7,15 @@ 0.0 55.0 0.0 - 75.0 - 9.81 1000 2000 - 2.0 0 + + 75.0 + 2.0 + 9.81 + + Ship Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ballista.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ballista.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ballista.xml @@ -7,9 +7,6 @@ 25.0 80.0 26.0 - 2.0 - 150.0 - 9.81 3000 4000 0 @@ -21,6 +18,12 @@ 75.0 5.0 + + 150.0 + 2.0 + 9.81 + + Human Siege Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_onager.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_onager.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_onager.xml @@ -7,13 +7,14 @@ 100.0 80.0 26.0 - 37.5 - 9.81 4000 5000 - 4.0 0 + 37.5 + 4.0 + 9.81 + props/units/weapons/rock_explosion.xml 0.1 Index: ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml @@ -8,12 +8,15 @@ 55.0 10.0 10 - 75.0 - 9.81 1200 2000 - 2.0 0 + + 75.0 + 2.0 + 9.81 + + Human outline_border.png Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/athen_champion_ranged_gastraphetes.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/units/athen_champion_ranged_gastraphetes.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/units/athen_champion_ranged_gastraphetes.xml @@ -7,10 +7,11 @@ 0 76 0.0 - 100.0 2320 3000 - 1.0 + + 100.0 + Human Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/plane.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/units/plane.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/units/plane.xml @@ -7,12 +7,15 @@ 227.0 120 80 - 75.0 - 9.81 0 10000 - 1.0 0 + + 75.0 + 1.0 + 9.81 + + Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_onager.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_onager.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_onager.xml @@ -4,8 +4,6 @@ 76 26.0 - 37.5 - 9.81 3700 5000 @@ -16,6 +14,10 @@ 0.0 40.0 + + 37.5 + 9.81 + Index: ps/trunk/binaries/data/mods/public/simulation/templates/units/theb_mechanical_siege_fireraiser.xml =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/templates/units/theb_mechanical_siege_fireraiser.xml +++ ps/trunk/binaries/data/mods/public/simulation/templates/units/theb_mechanical_siege_fireraiser.xml @@ -7,12 +7,15 @@ 50.0 12 8.0 - 10.0 - 9.81 2000 2000 - 2.0 0 + + 10.0 + 2.0 + 9.81 + +