Index: binaries/data/mods/public/globalscripts/Templates.js
===================================================================
--- binaries/data/mods/public/globalscripts/Templates.js
+++ binaries/data/mods/public/globalscripts/Templates.js
@@ -368,8 +368,9 @@
ret.speed = {
"walk": getEntityValue("UnitMotion/WalkSpeed"),
};
- if (template.UnitMotion.Run)
- ret.speed.run = getEntityValue("UnitMotion/Run/Speed");
+ ret.speed.run = getEntityValue("UnitMotion/WalkSpeed");
+ if (template.UnitMotion.RunMultiplier)
+ ret.speed.run *= getEntityValue("UnitMotion/RunMultiplier");
}
if (template.Upgrade)
Index: binaries/data/mods/public/simulation/components/Formation.js
===================================================================
--- binaries/data/mods/public/simulation/components/Formation.js
+++ binaries/data/mods/public/simulation/components/Formation.js
@@ -866,7 +866,7 @@
minSpeed *= this.GetSpeedMultiplier();
var cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
- cmpUnitMotion.SetSpeed(minSpeed);
+ cmpUnitMotion.SetSpeedRatio(minSpeed);
};
Formation.prototype.ShapeUpdate = function()
Index: binaries/data/mods/public/simulation/components/GuiInterface.js
===================================================================
--- binaries/data/mods/public/simulation/components/GuiInterface.js
+++ binaries/data/mods/public/simulation/components/GuiInterface.js
@@ -621,7 +621,7 @@
if (cmpUnitMotion)
ret.speed = {
"walk": cmpUnitMotion.GetWalkSpeed(),
- "run": cmpUnitMotion.GetRunSpeed()
+ "run": cmpUnitMotion.GetWalkSpeed() * cmpUnitMotion.GetRunSpeedMultiplier(),
};
return ret;
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
@@ -1701,7 +1701,7 @@
},
"leave": function(msg) {
- this.SetMoveSpeed(this.GetWalkSpeed());
+ this.ResetMoveSpeed();
this.StopTimer();
},
@@ -1721,7 +1721,7 @@
},
"MoveCompleted": function() {
- this.SetMoveSpeed(this.GetWalkSpeed());
+ this.ResetMoveSpeed();
if (!this.MoveToTargetRangeExplicit(this.isGuardOf, 0, this.guardRange))
this.SetNextState("GUARDING");
},
@@ -1776,19 +1776,16 @@
this.PlaySound("panic");
// Run quickly
- var speed = this.GetRunSpeed();
this.SelectAnimation("move");
- this.SetMoveSpeed(speed);
+ this.SetMoveSpeedRatio(this.GetRunMultiplier());
},
"HealthChanged": function() {
- var speed = this.GetRunSpeed();
- this.SetMoveSpeed(speed);
+ this.SetMoveSpeedRatio(this.GetRunMultiplier());
},
"leave": function() {
- // Reset normal speed
- this.SetMoveSpeed(this.GetWalkSpeed());
+ this.ResetMoveSpeed();
},
"MoveCompleted": function() {
@@ -2077,8 +2074,8 @@
if (cmpUnitAI && cmpUnitAI.IsFleeing())
{
// Run after a fleeing target
- var speed = this.GetRunSpeed();
- this.SetMoveSpeed(speed);
+ var speed = this.GetRunMultiplier();
+ this.SetMoveSpeedRatio(speed);
}
this.StartTimer(1000, 1000);
},
@@ -2087,13 +2084,13 @@
var cmpUnitAI = Engine.QueryInterface(this.order.data.target, IID_UnitAI);
if (!cmpUnitAI || !cmpUnitAI.IsFleeing())
return;
- var speed = this.GetRunSpeed();
- this.SetMoveSpeed(speed);
+ var speed = this.GetRunMultiplier();
+ this.SetMoveSpeedRatio(speed);
},
"leave": function() {
// Reset normal speed in case it was changed
- this.SetMoveSpeed(this.GetWalkSpeed());
+ this.ResetMoveSpeed();
// Show carried resources when walking.
this.SetGathererAnimationOverride();
@@ -3201,7 +3198,7 @@
"ROAMING": {
"enter": function() {
// Walk in a random direction
- this.SelectAnimation("walk", false, this.GetWalkSpeed());
+ this.SelectAnimation("walk", false, 1);
this.SetFacePointAfterMove(false);
this.MoveRandomly(+this.template.RoamDistance);
// Set a random timer to switch to feeding state
@@ -4073,22 +4070,10 @@
//// Helper functions to be called by the FSM ////
-UnitAI.prototype.GetWalkSpeed = function()
+UnitAI.prototype.GetRunMultiplier = function()
{
var cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
- return cmpUnitMotion.GetWalkSpeed();
-};
-
-UnitAI.prototype.GetRunSpeed = function()
-{
- var cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
- var runSpeed = cmpUnitMotion.GetRunSpeed();
- var walkSpeed = cmpUnitMotion.GetWalkSpeed();
- if (runSpeed <= walkSpeed)
- return runSpeed;
- var cmpHealth = Engine.QueryInterface(this.entity, IID_Health);
- var health = cmpHealth.GetHitpoints()/cmpHealth.GetMaxHitpoints();
- return (health*runSpeed + (1-health)*walkSpeed);
+ return cmpUnitMotion.GetRunSpeedMultiplier();
};
/**
@@ -4318,7 +4303,8 @@
if (name == "move")
{
// Speed to switch from walking to running animations
- var runThreshold = (this.GetWalkSpeed() + this.GetRunSpeed()) / 2;
+ let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
+ let runThreshold = cmpUnitMotion.GetWalkSpeed() * 1.2;
cmpVisual.SelectMovementAnimation(runThreshold);
return;
@@ -5696,11 +5682,19 @@
return this.stance;
};
+/*
+ * Make the unit walk at its normal pace.
+ */
+UnitAI.prototype.ResetMoveSpeed = function()
+{
+ let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
+ cmpUnitMotion.SetSpeedRatio(1);
+};
-UnitAI.prototype.SetMoveSpeed = function(speed)
+UnitAI.prototype.SetMoveSpeedRatio = function(speed)
{
- var cmpMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
- cmpMotion.SetSpeed(speed);
+ let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
+ cmpUnitMotion.SetSpeedRatio(speed);
};
UnitAI.prototype.SetHeldPosition = function(x, z)
Index: binaries/data/mods/public/simulation/components/UnitMotionFlying.js
===================================================================
--- binaries/data/mods/public/simulation/components/UnitMotionFlying.js
+++ binaries/data/mods/public/simulation/components/UnitMotionFlying.js
@@ -299,19 +299,24 @@
return this.IsInPointRange(targetPos.x, targetPos.y, minRange, maxRange);
};
+UnitMotionFlying.prototype.GetSpeed = function()
+{
+ return +this.speed;
+};
+
UnitMotionFlying.prototype.GetWalkSpeed = function()
{
return +this.template.MaxSpeed;
};
-UnitMotionFlying.prototype.SetSpeed = function()
+UnitMotionFlying.prototype.SetSpeedRatio = function()
{
// ignore this, the speed is always the walk speed
};
-UnitMotionFlying.prototype.GetRunSpeed = function()
+UnitMotionFlying.prototype.GetRunSpeedMultiplier = function()
{
- return this.GetWalkSpeed();
+ return 1.0;
};
UnitMotionFlying.prototype.GetCurrentSpeed = function()
@@ -319,6 +324,11 @@
return this.speed;
};
+UnitMotionFlying.prototype.GetSpeedRatio = function()
+{
+ return this.GetCurrentSpeed() / this.GetSpeed();
+}
+
UnitMotionFlying.prototype.GetPassabilityClassName = function()
{
return this.template.PassabilityClass;
Index: binaries/data/mods/public/simulation/components/tests/test_UnitAI.js
===================================================================
--- binaries/data/mods/public/simulation/components/tests/test_UnitAI.js
+++ binaries/data/mods/public/simulation/components/tests/test_UnitAI.js
@@ -137,7 +137,8 @@
});
AddMock(controller, IID_UnitMotion, {
- SetSpeed: function(speed) { },
+ GetWalkSpeed: function() { return 1; },
+ SetSpeedRatio: function(speed) { },
MoveToPointRange: function(x, z, minRange, maxRange) { },
GetPassabilityClassName: function() { return "default"; },
});
@@ -280,7 +281,8 @@
});
AddMock(controller, IID_UnitMotion, {
- SetSpeed: function(speed) { },
+ GetWalkSpeed: function() { return 1; },
+ SetSpeedRatio: function(speed) { },
MoveToPointRange: function(x, z, minRange, maxRange) { },
IsInTargetRange: function(target, min, max) { return true; },
GetPassabilityClassName: function() { return "default"; },
Index: binaries/data/mods/public/simulation/components/tests/test_UnitMotionFlying.js
===================================================================
--- binaries/data/mods/public/simulation/components/tests/test_UnitMotionFlying.js
+++ binaries/data/mods/public/simulation/components/tests/test_UnitMotionFlying.js
@@ -26,12 +26,12 @@
"PassabilityClass": "unrestricted"
});
-TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetWalkSpeed(), 1.0);
+TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetSpeed(), 1.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetRunSpeed(), 1.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 0);
-cmpUnitMotionFlying.SetSpeed(2.0);
-TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetWalkSpeed(), 1.0);
+cmpUnitMotionFlying.SetSpeedRatio(2.0);
+TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetSpeed(), 1.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetRunSpeed(), 1.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 0);
Index: binaries/data/mods/public/simulation/data/auras/structures/maur_pillar.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/structures/maur_pillar.json
+++ binaries/data/mods/public/simulation/data/auras/structures/maur_pillar.json
@@ -3,8 +3,7 @@
"radius": 75,
"affects": ["Trader"],
"modifications": [
- { "value": "UnitMotion/WalkSpeed", "multiply": 1.20 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.20 }
+ { "value": "UnitMotion/WalkSpeed", "multiply": 1.20 }
],
"auraName": "Edict of Ashoka",
"auraDescription": "+20% movement speed for traders.",
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_iphicrates_1.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_iphicrates_1.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_iphicrates_1.json
@@ -5,8 +5,7 @@
{ "value": "Armour/Pierce", "add": 3 },
{ "value": "Armour/Hack", "add": 3 },
{ "value": "Armour/Crush", "add": 3 },
- { "value": "UnitMotion/WalkSpeed", "multiply": 1.15 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.15 }
+ { "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Formation Reforms",
"auraDescription": "All soldiers in his formation +15% speed and +3 armor."
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_iphicrates_2.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_iphicrates_2.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_iphicrates_2.json
@@ -2,8 +2,7 @@
"type": "global",
"affects": ["Javelin Infantry"],
"modifications": [
- { "value": "UnitMotion/WalkSpeed", "multiply": 1.15 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.15 }
+ { "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Peltast Reforms",
"auraDescription": "All javelin infantry +15% speed."
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_themistocles_1.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_themistocles_1.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/athen_hero_themistocles_1.json
@@ -4,7 +4,6 @@
"affectedPlayers": ["MutualAlly"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.5 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.5 },
{ "value": "ProductionQueue/BatchTimeModifier", "multiply": 0.5 }
],
"auraName": "Naval Commander",
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/brit_hero_boudicca.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/brit_hero_boudicca.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/brit_hero_boudicca.json
@@ -4,7 +4,6 @@
"affects": ["Champion"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.1 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.1 },
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/brit_hero_caratacos.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/brit_hero_caratacos.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/brit_hero_caratacos.json
@@ -3,7 +3,6 @@
"affects": ["Soldier", "Siege"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.15 },
{ "value": "Armour/Pierce", "add": 1 },
{ "value": "Armour/Hack", "add": 1 },
{ "value": "Armour/Crush", "add": 1 }
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/cart_hero_hamilcar.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/cart_hero_hamilcar.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/cart_hero_hamilcar.json
@@ -2,8 +2,7 @@
"type": "global",
"affects": ["Soldier", "Siege"],
"modifications": [
- { "value": "UnitMotion/WalkSpeed", "multiply": 1.15 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.15 }
+ { "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Lightning General",
"auraDescription": "All soldiers and siege engines +15% speed."
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/pers_hero_darius.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/pers_hero_darius.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/pers_hero_darius.json
@@ -2,8 +2,7 @@
"type": "global",
"affects": ["Soldier", "Siege", "Trader"],
"modifications": [
- { "value": "UnitMotion/WalkSpeed", "multiply": 1.1 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.1 }
+ { "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Leadership",
"auraDescription": "+10% movement speed for all soldiers, siege engines and traders."
Index: binaries/data/mods/public/simulation/data/auras/units/heroes/sele_hero_seleucus_victor.json
===================================================================
--- binaries/data/mods/public/simulation/data/auras/units/heroes/sele_hero_seleucus_victor.json
+++ binaries/data/mods/public/simulation/data/auras/units/heroes/sele_hero_seleucus_victor.json
@@ -4,7 +4,6 @@
"affects": ["Elephant Champion"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.2 },
- { "value": "UnitMotion/Run/Speed", "multiply": 1.2 },
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
{ "value": "Attack/Melee/Crush", "multiply": 1.2 }
],
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_camel.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_camel.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_camel.xml
@@ -32,9 +32,6 @@
0.45
-
- 0.45
-
fauna/camel.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_chicken.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_chicken.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_chicken.xml
@@ -40,9 +40,6 @@
0.15
-
- 0.15
-
fauna/chicken.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_crocodile.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_crocodile.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_crocodile.xml
@@ -39,9 +39,6 @@
0.3
-
- 0.3
-
fauna/crocodile.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_deer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_deer.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_deer.xml
@@ -14,9 +14,6 @@
0.3
-
- 0.3
-
fauna/deer.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe.xml
@@ -32,9 +32,6 @@
0.6
-
- 0.6
-
fauna/giraffe_adult.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe_infant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe_infant.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_giraffe_infant.xml
@@ -21,9 +21,6 @@
0.6
-
- 0.6
-
fauna/giraffe_baby.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_goat.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_goat.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_goat.xml
@@ -33,9 +33,6 @@
0.45
-
- 0.45
-
fauna/goat.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_horse.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_horse.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_horse.xml
@@ -27,9 +27,6 @@
0.8
-
- 0.8
-
fauna/horse_a.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml
@@ -30,9 +30,6 @@
0.45
-
- 0.45
-
fauna/lion.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_lioness.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_lioness.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_lioness.xml
@@ -30,9 +30,6 @@
0.45
-
- 0.45
-
fauna/lioness.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_peacock.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_peacock.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_peacock.xml
@@ -33,9 +33,6 @@
0.3
-
- 0.3
-
fauna/peacock.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_pig.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_pig.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_pig.xml
@@ -31,9 +31,6 @@
0.45
-
- 0.45
-
fauna/pig1.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_pig_flaming.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_pig_flaming.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_pig_flaming.xml
@@ -30,9 +30,6 @@
3.5
-
- 3.5
-
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_shark.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_shark.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_shark.xml
@@ -46,9 +46,6 @@
ship-small
0.6
-
- 0.6
-
false
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_sheep.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_sheep.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_sheep.xml
@@ -31,9 +31,6 @@
0.45
-
- 0.45
-
fauna/sheep1.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_wildebeest.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_wildebeest.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_wildebeest.xml
@@ -18,9 +18,6 @@
0.9
-
- 0.9
-
fauna/wildebeest.xml
Index: binaries/data/mods/public/simulation/templates/gaia/fauna_zebra.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/gaia/fauna_zebra.xml
+++ binaries/data/mods/public/simulation/templates/gaia/fauna_zebra.xml
@@ -18,9 +18,6 @@
0.9
-
- 0.9
-
fauna/zebra.xml
Index: binaries/data/mods/public/simulation/templates/template_formation.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_formation.xml
+++ binaries/data/mods/public/simulation/templates/template_formation.xml
@@ -35,8 +35,8 @@
2
aggressive
- 12.0
true
+ 12.0
true
true
Index: binaries/data/mods/public/simulation/templates/template_unit.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit.xml
+++ binaries/data/mods/public/simulation/templates/template_unit.xml
@@ -110,13 +110,6 @@
false
9.0
-
- 15.0
- 50.0
- 0.0
- 0.1
- 0.2
-
default
Index: binaries/data/mods/public/simulation/templates/template_unit_catafalque.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_catafalque.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_catafalque.xml
@@ -42,9 +42,6 @@
large
0.55
-
- 0.55
-
units/global/catafalque.xml
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry.xml
@@ -97,9 +97,7 @@
1.95
-
- 1.95
-
+ 2.0
92
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_spearman.xml
@@ -18,8 +18,5 @@
1.25
-
- 1.25
-
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_swordsman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_swordsman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_swordsman.xml
@@ -29,8 +29,5 @@
1.15
-
- 1.15
-
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry.xml
@@ -59,9 +59,7 @@
2.25
-
- 2.25
-
+ 2.0
96
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_spearman.xml
@@ -29,8 +29,5 @@
1.2
-
- 1.2
-
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_swordsman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_swordsman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_swordsman.xml
@@ -30,8 +30,5 @@
1.2
-
- 1.2
-
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_elephant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_elephant.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_elephant.xml
@@ -57,10 +57,8 @@
large
+ 2.0
0.95
-
- 0.95
-
100
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry.xml
@@ -44,6 +44,9 @@
actor/human/death/{gender}_death.xml
+
+ 2.0
+
84
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_archer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_archer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_archer.xml
@@ -33,8 +33,5 @@
1.2
-
- 1.2
-
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelinist.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelinist.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelinist.xml
@@ -33,8 +33,5 @@
1.75
-
- 1.75
-
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_pikeman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_pikeman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_pikeman.xml
@@ -42,8 +42,5 @@
0.8
-
- 0.8
-
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman.xml
@@ -40,8 +40,5 @@
1.3
-
- 1.3
-
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_swordsman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_swordsman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_swordsman.xml
@@ -34,8 +34,5 @@
1.4
-
- 1.4
-
Index: binaries/data/mods/public/simulation/templates/template_unit_dog.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_dog.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_dog.xml
@@ -87,9 +87,7 @@
1.6
-
- 1.6
-
+ 2.5
30
Index: binaries/data/mods/public/simulation/templates/template_unit_fauna.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_fauna.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_fauna.xml
@@ -33,9 +33,7 @@
0.7
-
- 0.7
-
+ 2.0
true
Index: binaries/data/mods/public/simulation/templates/template_unit_fauna_decorative.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_fauna_decorative.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_fauna_decorative.xml
@@ -37,9 +37,6 @@
false
1.2
-
- 1.2
-
unrestricted
default
Index: binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_defensive_elephant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_defensive_elephant.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_defensive_elephant.xml
@@ -53,9 +53,6 @@
large
0.5
-
- 0.5
-
fauna/elephant_african_forest.xml
Index: binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_whale.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_whale.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_whale.xml
@@ -54,8 +54,6 @@
ship-small
1.8
-
- 1.8
-
+ 1.0
Index: binaries/data/mods/public/simulation/templates/template_unit_hero.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero.xml
@@ -62,6 +62,9 @@
Hero
+
+ 2.0
+
88
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry.xml
@@ -49,9 +49,7 @@
1.85
-
- 1.85
-
+ 2.0
100
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelinist.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelinist.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelinist.xml
@@ -32,8 +32,5 @@
1.05
-
- 1.05
-
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_spearman.xml
@@ -21,8 +21,5 @@
1.0
-
- 1.0
-
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_swordsman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_swordsman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_swordsman.xml
@@ -27,8 +27,5 @@
1.0
-
- 1.0
-
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_elephant_melee.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_elephant_melee.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_elephant_melee.xml
@@ -51,9 +51,6 @@
large
0.95
-
- 0.95
-
80
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry.xml
@@ -41,8 +41,6 @@
1.0
-
- 1.0
-
+ 2.0
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_pikeman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_pikeman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_pikeman.xml
@@ -32,8 +32,5 @@
0.95
-
- 0.95
-
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman.xml
@@ -32,8 +32,5 @@
1.0
-
- 1.0
-
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_swordsman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_swordsman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_swordsman.xml
@@ -27,9 +27,6 @@
1.05
-
- 1.05
-
80
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry.xml
@@ -120,6 +120,9 @@
interface/alarm/alarm_create_infantry.xml
+
+ 2.0
+
80
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_pikeman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_pikeman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_pikeman.xml
@@ -36,8 +36,5 @@
0.8
-
- 0.8
-
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman.xml
@@ -31,8 +31,5 @@
0.95
-
- 0.95
-
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_swordsman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_swordsman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_swordsman.xml
@@ -28,8 +28,5 @@
1.05
-
- 1.05
-
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
@@ -31,4 +31,7 @@
special/formations/skirmish
+
+ 2.0
+
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_archer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_archer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_archer.xml
@@ -32,8 +32,5 @@
0.9
-
- 0.9
-
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelinist.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelinist.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelinist.xml
@@ -31,8 +31,5 @@
1.5
-
- 1.5
-
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_slinger.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_slinger.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_slinger.xml
@@ -32,8 +32,5 @@
1.2
-
- 1.2
-
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical.xml
@@ -22,4 +22,7 @@
4.0
+
+ 1.0
+
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml
@@ -71,8 +71,5 @@
1.55
-
- 1.55
-
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fire.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fire.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fire.xml
@@ -54,9 +54,6 @@
ship-small
1.6
-
- 1.6
-
60
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml
@@ -62,9 +62,6 @@
ship-small
1.1
-
- 1.1
-
24
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml
@@ -61,9 +61,6 @@
ship-small
1.35
-
- 1.35
-
50
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml
@@ -79,9 +79,6 @@
1.8
-
- 1.8
-
110
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml
@@ -71,8 +71,5 @@
1.8
-
- 1.8
-
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ballista.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ballista.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ballista.xml
@@ -69,9 +69,6 @@
0.9
-
- 0.9
-
120
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_onager.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_onager.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_onager.xml
@@ -68,9 +68,6 @@
0.8
-
- 0.8
-
120
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml
@@ -45,9 +45,6 @@
0.9
-
- 0.9
-
80
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml
@@ -73,9 +73,6 @@
0.7
-
- 0.7
-
80
Index: binaries/data/mods/public/simulation/templates/template_unit_support.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_support.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_support.xml
@@ -31,4 +31,7 @@
passive
+
+ 2.0
+
Index: binaries/data/mods/public/simulation/templates/template_unit_support_slave.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_support_slave.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_support_slave.xml
@@ -49,7 +49,6 @@
1
- 2.0
1.0
0.5
Index: binaries/data/mods/public/simulation/templates/units/athen_mechanical_siege_lithobolos_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/athen_mechanical_siege_lithobolos_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/athen_mechanical_siege_lithobolos_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/athenians/siege_rock_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/athen_mechanical_siege_oxybeles_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/athen_mechanical_siege_oxybeles_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/athen_mechanical_siege_oxybeles_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/athenians/siege_spear_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/brit_ship_trireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/brit_ship_trireme.xml
+++ binaries/data/mods/public/simulation/templates/units/brit_ship_trireme.xml
@@ -21,9 +21,6 @@
0.9
-
- 0.9
-
structures/celts/warship.xml
Index: binaries/data/mods/public/simulation/templates/units/cart_mechanical_siege_ballista_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/cart_mechanical_siege_ballista_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/cart_mechanical_siege_ballista_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/carthaginians/siege_rock_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/cart_mechanical_siege_oxybeles_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/cart_mechanical_siege_oxybeles_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/cart_mechanical_siege_oxybeles_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/carthaginians/siege_spear_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/gaul_champion_fanatic.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/gaul_champion_fanatic.xml
+++ binaries/data/mods/public/simulation/templates/units/gaul_champion_fanatic.xml
@@ -23,9 +23,6 @@
1.4
-
- 1.4
-
units/celts/fanatic.xml
Index: binaries/data/mods/public/simulation/templates/units/gaul_ship_trireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/gaul_ship_trireme.xml
+++ binaries/data/mods/public/simulation/templates/units/gaul_ship_trireme.xml
@@ -21,9 +21,6 @@
0.9
-
- 0.9
-
structures/celts/warship.xml
Index: binaries/data/mods/public/simulation/templates/units/iber_ship_trireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/iber_ship_trireme.xml
+++ binaries/data/mods/public/simulation/templates/units/iber_ship_trireme.xml
@@ -21,9 +21,6 @@
0.9
-
- 0.9
-
structures/iberians/warship.xml
Index: binaries/data/mods/public/simulation/templates/units/mace_mechanical_siege_lithobolos_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/mace_mechanical_siege_lithobolos_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/mace_mechanical_siege_lithobolos_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/athenians/siege_rock_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/mace_mechanical_siege_oxybeles_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/mace_mechanical_siege_oxybeles_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/mace_mechanical_siege_oxybeles_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/athenians/siege_spear_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/maur_elephant_archer_b.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/maur_elephant_archer_b.xml
+++ binaries/data/mods/public/simulation/templates/units/maur_elephant_archer_b.xml
@@ -67,9 +67,6 @@
large
0.5
-
- 0.5
-
units/mauryans/elephant_archer_b.xml
Index: binaries/data/mods/public/simulation/templates/units/maur_ship_trireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/maur_ship_trireme.xml
+++ binaries/data/mods/public/simulation/templates/units/maur_ship_trireme.xml
@@ -21,9 +21,6 @@
0.9
-
- 0.9
-
structures/mauryans/trireme.xml
Index: binaries/data/mods/public/simulation/templates/units/maur_support_elephant.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/maur_support_elephant.xml
+++ binaries/data/mods/public/simulation/templates/units/maur_support_elephant.xml
@@ -69,9 +69,6 @@
large
0.6
-
- 0.6
-
50
Index: binaries/data/mods/public/simulation/templates/units/ptol_mechanical_siege_lithobolos_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/ptol_mechanical_siege_lithobolos_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/ptol_mechanical_siege_lithobolos_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/ptolemies/siege_rock_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/ptol_mechanical_siege_polybolos_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/ptol_mechanical_siege_polybolos_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/ptol_mechanical_siege_polybolos_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/ptolemies/siege_spear_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_ballista_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_ballista_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_ballista_unpacked.xml
@@ -15,9 +15,6 @@
0.001
-
- 0.001
-
units/romans/siege_rock_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_onager_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_onager_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_onager_unpacked.xml
@@ -34,9 +34,6 @@
0.001
-
- 0.001
-
88
Index: binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_scorpio_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_scorpio_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/rome_mechanical_siege_scorpio_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/romans/siege_scorpio.xml
Index: binaries/data/mods/public/simulation/templates/units/sele_mechanical_siege_lithobolos_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/sele_mechanical_siege_lithobolos_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/sele_mechanical_siege_lithobolos_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/athenians/siege_rock_pivot.xml
Index: binaries/data/mods/public/simulation/templates/units/spart_mechanical_siege_oxybeles_unpacked.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/spart_mechanical_siege_oxybeles_unpacked.xml
+++ binaries/data/mods/public/simulation/templates/units/spart_mechanical_siege_oxybeles_unpacked.xml
@@ -10,9 +10,6 @@
0.001
-
- 0.001
-
units/athenians/siege_spear_pivot.xml
Index: source/simulation2/components/CCmpUnitMotion.cpp
===================================================================
--- source/simulation2/components/CCmpUnitMotion.cpp
+++ source/simulation2/components/CCmpUnitMotion.cpp
@@ -131,14 +131,18 @@
// Template state:
bool m_FormationController;
- fixed m_WalkSpeed, m_OriginalWalkSpeed; // in metres per second
- fixed m_RunSpeed, m_OriginalRunSpeed;
+
+ fixed m_TemplateWalkSpeed, m_TemplateRunSpeedMultiplier;
pass_class_t m_PassClass;
std::string m_PassClassName;
// Dynamic state:
entity_pos_t m_Clearance;
+
+ // cached for efficiency
+ fixed m_WalkSpeed, m_RunSpeedMultiplier;
+
bool m_Moving;
bool m_FacePointAfterMove;
@@ -229,7 +233,10 @@
entity_pos_t m_TargetMinRange;
entity_pos_t m_TargetMaxRange;
+ // actual unit speed, after technology and ratio
fixed m_Speed;
+ // convenience variable to avoid recomputing the ratio every time. Synchronised.
+ fixed m_SpeedRatio;
// Current mean speed (over the last turn).
fixed m_CurSpeed;
@@ -259,14 +266,8 @@
""
""
""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
- ""
+ ""
+ ""
""
""
""
@@ -281,14 +282,13 @@
m_Moving = false;
m_FacePointAfterMove = true;
- m_WalkSpeed = m_OriginalWalkSpeed = paramNode.GetChild("WalkSpeed").ToFixed();
- m_Speed = m_WalkSpeed;
+ m_WalkSpeed = m_TemplateWalkSpeed = m_Speed = paramNode.GetChild("WalkSpeed").ToFixed();
+ m_SpeedRatio = fixed::FromInt(1);
m_CurSpeed = fixed::Zero();
- if (paramNode.GetChild("Run").IsOk())
- m_RunSpeed = m_OriginalRunSpeed = paramNode.GetChild("Run").GetChild("Speed").ToFixed();
- else
- m_RunSpeed = m_OriginalRunSpeed = m_WalkSpeed;
+ m_RunSpeedMultiplier = m_TemplateRunSpeedMultiplier = fixed::FromInt(1);
+ if (paramNode.GetChild("RunMultiplier").IsOk())
+ m_RunSpeedMultiplier = m_TemplateRunSpeedMultiplier = paramNode.GetChild("RunMultiplier").ToFixed();
CmpPtr cmpPathfinder(GetSystemEntity());
if (cmpPathfinder)
@@ -338,7 +338,8 @@
serialize.NumberFixed_Unbounded("target min range", m_TargetMinRange);
serialize.NumberFixed_Unbounded("target max range", m_TargetMaxRange);
- serialize.NumberFixed_Unbounded("speed", m_Speed);
+ serialize.NumberFixed_Unbounded("speed ratio", m_SpeedRatio);
+
serialize.NumberFixed_Unbounded("current speed", m_CurSpeed);
serialize.Bool("moving", m_Moving);
@@ -417,17 +418,14 @@
if (!cmpValueModificationManager)
break;
- fixed newWalkSpeed = cmpValueModificationManager->ApplyModifications(L"UnitMotion/WalkSpeed", m_OriginalWalkSpeed, GetEntityId());
- fixed newRunSpeed = cmpValueModificationManager->ApplyModifications(L"UnitMotion/Run/Speed", m_OriginalRunSpeed, GetEntityId());
+ fixed oldRunSpeedMultiplier = m_RunSpeedMultiplier;
- // update m_Speed (the actual speed) if set to one of the variables
- if (m_Speed == m_WalkSpeed)
- m_Speed = newWalkSpeed;
- else if (m_Speed == m_RunSpeed)
- m_Speed = newRunSpeed;
+ m_WalkSpeed = cmpValueModificationManager->ApplyModifications(L"UnitMotion/WalkSpeed", m_TemplateWalkSpeed, GetEntityId());
+ m_RunSpeedMultiplier = cmpValueModificationManager->ApplyModifications(L"UnitMotion/RunMultiplier", m_TemplateRunSpeedMultiplier, GetEntityId());
+
+ m_SpeedRatio = m_SpeedRatio.MulDiv(m_RunSpeedMultiplier, oldRunSpeedMultiplier);
+ m_Speed = m_SpeedRatio.Multiply(GetWalkSpeed());
- m_WalkSpeed = newWalkSpeed;
- m_RunSpeed = newRunSpeed;
break;
}
}
@@ -449,9 +447,25 @@
return m_WalkSpeed;
}
- virtual fixed GetRunSpeed() const
+ virtual fixed GetSpeed() const
{
- return m_RunSpeed;
+ return m_Speed;
+ }
+
+ virtual fixed GetSpeedRatio() const
+ {
+ return m_SpeedRatio;
+ }
+
+ virtual fixed GetRunSpeedMultiplier() const
+ {
+ return m_RunSpeedMultiplier;
+ }
+
+ virtual void SetSpeed(fixed ratio)
+ {
+ m_SpeedRatio = ratio;
+ m_Speed = m_SpeedRatio.Multiply(GetWalkSpeed());
}
virtual pass_class_t GetPassabilityClass() const
@@ -477,11 +491,6 @@
return m_CurSpeed;
}
- virtual void SetSpeed(fixed speed)
- {
- m_Speed = speed;
- }
-
virtual void SetFacePointAfterMove(bool facePointAfterMove)
{
m_FacePointAfterMove = facePointAfterMove;
@@ -855,12 +864,7 @@
// Keep track of the current unit's position during the update
CFixedVector2D pos = initialPos;
- // If in formation, run to keep up; otherwise just walk
- fixed basicSpeed;
- if (IsFormationMember())
- basicSpeed = GetRunSpeed();
- else
- basicSpeed = m_Speed; // (typically but not always WalkSpeed)
+ fixed basicSpeed = m_Speed;
// Find the speed factor of the underlying terrain
// (We only care about the tile we start on - it doesn't matter if we're moving
Index: source/simulation2/components/ICmpUnitMotion.h
===================================================================
--- source/simulation2/components/ICmpUnitMotion.h
+++ source/simulation2/components/ICmpUnitMotion.h
@@ -92,25 +92,37 @@
virtual fixed GetCurrentSpeed() const = 0;
/**
- * Set the current movement speed.
+ * Get whether the unit is moving.
*/
- virtual void SetSpeed(fixed speed) = 0;
+ virtual bool IsMoving() const = 0;
/**
- * Get whether the unit is moving.
+ * Get how much faster/slower we are than normal.
*/
- virtual bool IsMoving() const = 0;
+ virtual fixed GetSpeedRatio() const = 0;
/**
- * Get the default speed that this unit will have when walking, in metres per second.
+ * Get how much faster than our regular speed we can go.
*/
- virtual fixed GetWalkSpeed() const = 0;
+ virtual fixed GetRunSpeedMultiplier() const = 0;
/**
- * Get the default speed that this unit will have when running, in metres per second.
+ * Set the current movement speed.
+ * @param speed A percentage of GetWalkSpeed(), 1.0 is default and equals 100%.
*/
- virtual fixed GetRunSpeed() const = 0;
+ virtual void SetSpeed(fixed speed) = 0;
+
+ /**
+ * Get the unit theoretical speed in metres per second.
+ * This is affected by SetSpeed.
+ */
+ virtual fixed GetSpeed() const = 0;
+ /**
+ * Get the unit "raw"/template walk speed after technologies.
+ * Calls to SetSpeed have no effect on this (as that affects actual speed, not template)
+ */
+ virtual fixed GetWalkSpeed() const = 0;
/**
* Set whether the unit will turn to face the target point after finishing moving.
*/
Index: source/simulation2/components/ICmpUnitMotion.cpp
===================================================================
--- source/simulation2/components/ICmpUnitMotion.cpp
+++ source/simulation2/components/ICmpUnitMotion.cpp
@@ -31,10 +31,11 @@
DEFINE_INTERFACE_METHOD_2("FaceTowardsPoint", void, ICmpUnitMotion, FaceTowardsPoint, entity_pos_t, entity_pos_t)
DEFINE_INTERFACE_METHOD_0("StopMoving", void, ICmpUnitMotion, StopMoving)
DEFINE_INTERFACE_METHOD_CONST_0("GetCurrentSpeed", fixed, ICmpUnitMotion, GetCurrentSpeed)
-DEFINE_INTERFACE_METHOD_1("SetSpeed", void, ICmpUnitMotion, SetSpeed, fixed)
+DEFINE_INTERFACE_METHOD_CONST_0("GetRunSpeedMultiplier", fixed, ICmpUnitMotion, GetRunSpeedMultiplier)
+DEFINE_INTERFACE_METHOD_1("SetSpeedRatio", void, ICmpUnitMotion, SetSpeed, fixed)
DEFINE_INTERFACE_METHOD_CONST_0("IsMoving", bool, ICmpUnitMotion, IsMoving)
+DEFINE_INTERFACE_METHOD_CONST_0("GetSpeed", fixed, ICmpUnitMotion, GetSpeed)
DEFINE_INTERFACE_METHOD_CONST_0("GetWalkSpeed", fixed, ICmpUnitMotion, GetWalkSpeed)
-DEFINE_INTERFACE_METHOD_CONST_0("GetRunSpeed", fixed, ICmpUnitMotion, GetRunSpeed)
DEFINE_INTERFACE_METHOD_CONST_0("GetPassabilityClassName", std::string, ICmpUnitMotion, GetPassabilityClassName)
DEFINE_INTERFACE_METHOD_CONST_0("GetUnitClearance", entity_pos_t, ICmpUnitMotion, GetUnitClearance)
DEFINE_INTERFACE_METHOD_1("SetFacePointAfterMove", void, ICmpUnitMotion, SetFacePointAfterMove, bool)
@@ -88,7 +89,12 @@
virtual void SetSpeed(fixed speed)
{
- m_Script.CallVoid("SetSpeed", speed);
+ m_Script.CallVoid("SetSpeedRatio", speed);
+ }
+
+ virtual fixed GetRunSpeedMultiplier() const
+ {
+ return m_Script.Call("GetRunSpeedMultiplier");
}
virtual bool IsMoving() const
@@ -96,14 +102,14 @@
return m_Script.Call("IsMoving");
}
- virtual fixed GetWalkSpeed() const
+ virtual fixed GetSpeed() const
{
- return m_Script.Call("GetWalkSpeed");
+ return m_Script.Call("GetSpeed");
}
- virtual fixed GetRunSpeed() const
+ virtual fixed GetWalkSpeed() const
{
- return m_Script.Call("GetRunSpeed");
+ return m_Script.Call("GetWalkSpeed");
}
virtual void SetFacePointAfterMove(bool facePointAfterMove)
@@ -116,6 +122,11 @@
return m_Script.Call("GetPassabilityClass");
}
+ virtual fixed GetSpeedRatio() const
+ {
+ return m_Script.Call("GetSpeedRatio");
+ }
+
virtual std::string GetPassabilityClassName() const
{
return m_Script.Call("GetPassabilityClassName");
Index: source/tools/atlas/GameInterface/ActorViewer.cpp
===================================================================
--- source/tools/atlas/GameInterface/ActorViewer.cpp
+++ source/tools/atlas/GameInterface/ActorViewer.cpp
@@ -389,7 +389,7 @@
{
CmpPtr cmpUnitMotion(m.Simulation2, m.Entity);
if (cmpUnitMotion)
- speed = cmpUnitMotion->GetRunSpeed().ToFloat();
+ speed = cmpUnitMotion->GetWalkSpeed().ToFloat() * cmpUnitMotion->GetRunSpeedMultiplier().ToFloat();
else
speed = 12.f; // typical unit speed