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
+
+