1
0
forked from 0ad/0ad

Change Run Speed into a Run multiplier.

This changes running speed into a running multiplier (of walk speed).

The advantage is that it simplifies code since you can setup a default
run multiplier at the template level and it'll work for all subsequent
templates, and technologies cannot forget to change it. It makes
specialised unit templates easier to maintain, too.

Formations have a 100 run multiplier which effectively sets their
maximal walking speed at 100

Reviewed By: bb, O2 JS Simulation
Differential Revision: https://code.wildfiregames.com/D438
This was SVN commit r22197.
This commit is contained in:
wraitii 2019-04-19 10:04:50 +00:00
parent 46fc204033
commit def47cb7ae
109 changed files with 163 additions and 399 deletions

View File

@ -398,8 +398,9 @@ function GetTemplateDataHelper(template, player, auraTemplates, resources, damag
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)

View File

@ -858,7 +858,7 @@ Formation.prototype.ComputeMotionParameters = function()
minSpeed *= this.GetSpeedMultiplier();
var cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
cmpUnitMotion.SetSpeed(minSpeed);
cmpUnitMotion.SetSpeedRatio(minSpeed / cmpUnitMotion.GetWalkSpeed());
};
Formation.prototype.ShapeUpdate = function()

View File

@ -502,7 +502,7 @@ GuiInterface.prototype.GetEntityState = function(player, ent)
if (cmpUnitMotion)
ret.speed = {
"walk": cmpUnitMotion.GetWalkSpeed(),
"run": cmpUnitMotion.GetRunSpeed()
"run": cmpUnitMotion.GetWalkSpeed() * cmpUnitMotion.GetRunSpeedMultiplier()
};
return ret;

View File

@ -1660,7 +1660,7 @@ UnitAI.prototype.UnitFsmSpec = {
},
"leave": function(msg) {
this.SetMoveSpeed(this.GetWalkSpeed());
this.ResetMoveSpeed();
this.StopTimer();
this.SetDefaultAnimationVariant();
},
@ -1675,13 +1675,13 @@ UnitAI.prototype.UnitFsmSpec = {
{
var speed = cmpUnitAI.GetWalkSpeed();
if (speed < this.GetWalkSpeed())
this.SetMoveSpeed(speed);
this.SetMoveSpeedRatio(speed / this.GetWalkSpeed());
}
}
},
"MoveCompleted": function() {
this.SetMoveSpeed(this.GetWalkSpeed());
this.ResetMoveSpeed();
if (!this.MoveToTargetRangeExplicit(this.isGuardOf, 0, this.guardRange))
this.SetNextState("GUARDING");
},
@ -1738,19 +1738,16 @@ UnitAI.prototype.UnitFsmSpec = {
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() {
@ -2034,23 +2031,12 @@ UnitAI.prototype.UnitFsmSpec = {
if (cmpUnitAI && cmpUnitAI.IsFleeing())
{
// Run after a fleeing target
var speed = this.GetRunSpeed();
this.SetMoveSpeed(speed);
this.SetMoveSpeedRatio(this.GetRunMultiplier());
}
this.StartTimer(1000, 1000);
},
"HealthChanged": function() {
var cmpUnitAI = Engine.QueryInterface(this.order.data.target, IID_UnitAI);
if (!cmpUnitAI || !cmpUnitAI.IsFleeing())
return;
var speed = this.GetRunSpeed();
this.SetMoveSpeed(speed);
},
"leave": function() {
// Reset normal speed in case it was changed
this.SetMoveSpeed(this.GetWalkSpeed());
// Show carried resources when walking.
this.SetDefaultAnimationVariant();
@ -3132,7 +3118,7 @@ UnitAI.prototype.UnitFsmSpec = {
"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
@ -3976,20 +3962,18 @@ UnitAI.prototype.OnPackFinished = function(msg)
UnitAI.prototype.GetWalkSpeed = function()
{
var cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
if (!cmpUnitMotion)
return 0;
return cmpUnitMotion.GetWalkSpeed();
};
UnitAI.prototype.GetRunSpeed = function()
UnitAI.prototype.GetRunMultiplier = 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);
if (!cmpUnitMotion)
return 0;
return cmpUnitMotion.GetRunSpeedMultiplier();
};
/**
@ -4225,7 +4209,7 @@ UnitAI.prototype.SelectAnimation = function(name, once = false, speed = 1.0)
if (name == "move")
{
// Speed to switch from walking to running animations
cmpVisual.SelectMovementAnimation((this.GetWalkSpeed() + this.GetRunSpeed()) / 2);
cmpVisual.SelectMovementAnimation(this.GetWalkSpeed());
return;
}
@ -5593,11 +5577,21 @@ UnitAI.prototype.GetStanceName = function()
return this.stance;
};
UnitAI.prototype.SetMoveSpeed = function(speed)
/*
* Make the unit walk at its normal pace.
*/
UnitAI.prototype.ResetMoveSpeed = function()
{
var cmpMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
cmpMotion.SetSpeed(speed);
let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
if (cmpUnitMotion)
cmpUnitMotion.SetSpeedRatio(1);
};
UnitAI.prototype.SetMoveSpeedRatio = function(speed)
{
let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
if (cmpUnitMotion)
cmpUnitMotion.SetSpeedRatio(speed);
};
UnitAI.prototype.SetHeldPosition = function(x, z)

View File

@ -304,14 +304,14 @@ 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;
};
UnitMotionFlying.prototype.GetCurrentSpeed = function()
@ -319,6 +319,11 @@ UnitMotionFlying.prototype.GetCurrentSpeed = function()
return this.speed;
};
UnitMotionFlying.prototype.GetSpeedRatio = function()
{
return this.GetCurrentSpeed() / this.GetWalkSpeed();
}
UnitMotionFlying.prototype.GetPassabilityClassName = function()
{
return this.template.PassabilityClass;

View File

@ -137,7 +137,8 @@ function TestFormationExiting(mode)
});
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 @@ function TestMoveIntoFormationWhileAttacking()
});
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; },
StopMoving: function() { },

View File

@ -26,13 +26,12 @@ let cmpUnitMotionFlying = ConstructComponent(entity, "UnitMotionFlying", {
"PassabilityClass": "unrestricted"
});
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetWalkSpeed(), 1.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetRunSpeed(), 1.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetSpeedRatio(), 0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetRunSpeedMultiplier(), 1);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 0);
cmpUnitMotionFlying.SetSpeed(2.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetWalkSpeed(), 1.0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetRunSpeed(), 1.0);
cmpUnitMotionFlying.SetSpeedRatio(2);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetSpeedRatio(), 0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetRunSpeedMultiplier(), 1);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetPassabilityClassName(), "unrestricted");
@ -81,6 +80,7 @@ AddMock(entity, IID_WaterManager, {
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 0);
cmpUnitMotionFlying.OnUpdate({ "turnLength": 500 });
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetSpeedRatio(), 0);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.MoveToTargetRange(target, 0, 10), true);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.MoveToPointRange(100, 200, 0, 20), true);
@ -100,6 +100,7 @@ TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 0.75);
TS_ASSERT_EQUALS(height, 55);
cmpUnitMotionFlying.OnUpdate({ "turnLength": 500 });
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetCurrentSpeed(), 1);
TS_ASSERT_EQUALS(cmpUnitMotionFlying.GetSpeedRatio(), 1);
TS_ASSERT_EQUALS(height, 105);
// Fly

View File

@ -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.",

View File

@ -3,8 +3,7 @@
"affects": ["Soldier"],
"modifications": [
{ "value": "Vision/Range", "multiply": 1.15 },
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 },
{ "value": "UnitMotion/Run/Speed", "multiply": 1.15 }
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Guerrilla Tactics",
"auraDescription": "Seeing entrenched defense to be useless against the Roman army, Cassivellaunus resorted to guerrilla tactics. This was later employed by other chieftains too.\n+15% movement speed and vision range for all soldiers."

View File

@ -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."

View File

@ -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."

View File

@ -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.7 }
],
"auraName": "Naval Commander",

View File

@ -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 },

View File

@ -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 }

View File

@ -3,8 +3,7 @@
"radius": 60,
"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": "Nearby soldiers and siege engines +15% speed."

View File

@ -3,8 +3,7 @@
"radius": 60,
"affects": ["Soldier"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.2 },
{ "value": "UnitMotion/Run/Speed", "multiply": 1.2 }
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.2 }
],
"auraDescription": "+20% movement speed for soldiers.",
"auraName": "Guerrilla Tactics",

View File

@ -2,8 +2,7 @@
"type": "global",
"affects": ["Soldier", "Siege", "Trader"],
"modifications": [
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 },
{ "value": "UnitMotion/Run/Speed", "multiply": 1.15 }
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.15 }
],
"auraName": "Leadership",
"auraDescription": "+15% movement speed for all soldiers, siege engines and traders."

View File

@ -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 }
],

View File

@ -32,9 +32,6 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">0.45</WalkSpeed>
<Run>
<Speed op="mul">0.45</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/camel.xml</Actor>

View File

@ -40,9 +40,6 @@
</UnitAI>
<UnitMotion>
<WalkSpeed op="mul">0.15</WalkSpeed>
<Run>
<Speed op="mul">0.15</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/chicken.xml</Actor>

View File

@ -38,9 +38,6 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">0.3</WalkSpeed>
<Run>
<Speed op="mul">0.3</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/crocodile.xml</Actor>

View File

@ -32,9 +32,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">0.6</WalkSpeed>
<Run>
<Speed op="mul">0.6</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/giraffe_adult.xml</Actor>

View File

@ -21,9 +21,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">0.6</WalkSpeed>
<Run>
<Speed op="mul">0.6</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/giraffe_baby.xml</Actor>

View File

@ -27,9 +27,6 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">0.45</WalkSpeed>
<Run>
<Speed op="mul">0.45</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/goat.xml</Actor>

View File

@ -27,9 +27,6 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">0.8</WalkSpeed>
<Run>
<Speed op="mul">0.8</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/horse.xml</Actor>

View File

@ -30,9 +30,6 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">0.45</WalkSpeed>
<Run>
<Speed op="mul">0.45</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/lion.xml</Actor>

View File

@ -32,9 +32,6 @@
</UnitAI>
<UnitMotion>
<WalkSpeed op="mul">0.3</WalkSpeed>
<Run>
<Speed op="mul">0.3</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/peacock.xml</Actor>

View File

@ -25,9 +25,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">0.45</WalkSpeed>
<Run>
<Speed op="mul">0.45</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/pig1.xml</Actor>

View File

@ -29,9 +29,6 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">3.5</WalkSpeed>
<Run>
<Speed op="mul">3.5</Speed>
</Run>
</UnitMotion>
<Upgrade disable=""/>
<VisualActor>

View File

@ -18,8 +18,5 @@
</VisualActor>
<UnitMotion>
<WalkSpeed op="mul">0.25</WalkSpeed>
<Run>
<Speed op="mul">0.25</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -5,9 +5,6 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">0.8</WalkSpeed>
<Run>
<Speed op="mul">0.8</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/pony.xml</Actor>

View File

@ -45,9 +45,6 @@
<UnitMotion>
<PassabilityClass>ship-small</PassabilityClass>
<WalkSpeed op="mul">0.6</WalkSpeed>
<Run>
<Speed op="mul">0.6</Speed>
</Run>
</UnitMotion>
<Visibility>
<RetainInFog>false</RetainInFog>

View File

@ -25,9 +25,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">0.45</WalkSpeed>
<Run>
<Speed op="mul">0.45</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/sheep3.xml</Actor>

View File

@ -18,9 +18,6 @@
</ResourceSupply>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/wildebeest.xml</Actor>

View File

@ -18,9 +18,6 @@
</ResourceSupply>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/zebra.xml</Actor>

View File

@ -18,11 +18,7 @@
</ResourceSupply>
<UnitMotion>
<WalkSpeed>6.0</WalkSpeed>
<Run>
<Speed>15.0</Speed>
<Range>600.0</Range>
<RangeMin>5.0</RangeMin>
</Run>
<RunMultiplier>2.5</RunMultiplier>
</UnitMotion>
<VisualActor>
<Actor>fauna/zebu.xml</Actor>

View File

@ -49,14 +49,15 @@
</Trader>
<UnitAI>
<DefaultStance>aggressive</DefaultStance>
<FleeDistance>12.0</FleeDistance>
<FormationController>true</FormationController>
<FleeDistance>12.0</FleeDistance>
<CanGuard>true</CanGuard>
<CanPatrol>true</CanPatrol>
</UnitAI>
<UnitMotion>
<FormationController>true</FormationController>
<WalkSpeed>1.0</WalkSpeed>
<RunMultiplier>100.0</RunMultiplier> <!-- = Max formation speed -->
<PassabilityClass>large</PassabilityClass>
</UnitMotion>
</Entity>

View File

@ -120,15 +120,9 @@
</UnitAI>
<UnitMotion>
<FormationController>false</FormationController>
<WalkSpeed>9.0</WalkSpeed>
<Run>
<Speed>15.0</Speed>
<Range>50.0</Range>
<RangeMin>0.0</RangeMin>
<RegenTime>0.1</RegenTime>
<DecayTime>0.2</DecayTime>
</Run>
<PassabilityClass>default</PassabilityClass>
<WalkSpeed>9.0</WalkSpeed>
<RunMultiplier>1.67</RunMultiplier>
</UnitMotion>
<Visibility>
<RetainInFog>false</RetainInFog>

View File

@ -39,9 +39,6 @@
<UnitMotion>
<PassabilityClass>large</PassabilityClass>
<WalkSpeed op="mul">0.55</WalkSpeed>
<Run>
<Speed op="mul">0.55</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/global/catafalque.xml</Actor>

View File

@ -97,9 +97,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">1.95</WalkSpeed>
<Run>
<Speed op="mul">1.95</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>92</Range>

View File

@ -26,8 +26,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.1</WalkSpeed>
<Run>
<Speed op="mul">1.1</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -28,8 +28,5 @@
</Loot>
<UnitMotion>
<WalkSpeed op="mul">1.2</WalkSpeed>
<Run>
<Speed op="mul">1.2</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -59,9 +59,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">2.25</WalkSpeed>
<Run>
<Speed op="mul">2.25</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>96</Range>

View File

@ -36,8 +36,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.1</WalkSpeed>
<Run>
<Speed op="mul">1.1</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -30,8 +30,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.2</WalkSpeed>
<Run>
<Speed op="mul">1.2</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -58,9 +58,6 @@
<UnitMotion>
<PassabilityClass>large</PassabilityClass>
<WalkSpeed op="mul">0.95</WalkSpeed>
<Run>
<Speed op="mul">0.95</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>100</Range>

View File

@ -36,8 +36,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.2</WalkSpeed>
<Run>
<Speed op="mul">1.2</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -36,8 +36,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.75</WalkSpeed>
<Run>
<Speed op="mul">1.75</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -33,8 +33,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.4</WalkSpeed>
<Run>
<Speed op="mul">1.4</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -41,8 +41,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">0.8</WalkSpeed>
<Run>
<Speed op="mul">0.8</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -39,8 +39,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.3</WalkSpeed>
<Run>
<Speed op="mul">1.3</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -33,8 +33,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.4</WalkSpeed>
<Run>
<Speed op="mul">1.4</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -81,9 +81,7 @@
</TrainingRestrictions>
<UnitMotion>
<WalkSpeed op="mul">1.6</WalkSpeed>
<Run>
<Speed op="mul">1.6</Speed>
</Run>
<RunMultiplier>2.5</RunMultiplier>
</UnitMotion>
<Vision>
<Range>30</Range>

View File

@ -31,9 +31,6 @@
</UnitAI>
<UnitMotion>
<WalkSpeed op="mul">0.7</WalkSpeed>
<Run>
<Speed op="mul">0.7</Speed>
</Run>
</UnitMotion>
<Visibility>
<RetainInFog>true</RetainInFog>

View File

@ -52,9 +52,6 @@
<UnitMotion>
<PassabilityClass>large</PassabilityClass>
<WalkSpeed op="mul">0.5</WalkSpeed>
<Run>
<Speed op="mul">0.5</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>fauna/elephant_african_forest.xml</Actor>

View File

@ -50,8 +50,6 @@
<UnitMotion>
<PassabilityClass>ship-small</PassabilityClass>
<WalkSpeed op="mul">1.8</WalkSpeed>
<Run>
<Speed op="mul">1.8</Speed>
</Run>
<RunMultiplier>1</RunMultiplier>
</UnitMotion>
</Entity>

View File

@ -24,8 +24,5 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">1.6</WalkSpeed>
<Run>
<Speed op="mul">1.6</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -43,9 +43,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">1.85</WalkSpeed>
<Run>
<Speed op="mul">1.85</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>100</Range>

View File

@ -35,8 +35,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.05</WalkSpeed>
<Run>
<Speed op="mul">1.05</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -28,8 +28,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.0</WalkSpeed>
<Run>
<Speed op="mul">1.0</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -27,8 +27,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.0</WalkSpeed>
<Run>
<Speed op="mul">1.0</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -51,9 +51,6 @@
<UnitMotion>
<PassabilityClass>large</PassabilityClass>
<WalkSpeed op="mul">0.95</WalkSpeed>
<Run>
<Speed op="mul">0.95</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>80</Range>

View File

@ -24,10 +24,4 @@
<VisibleClasses datatype="tokens">Infantry</VisibleClasses>
<GenericName>Hero</GenericName>
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.0</WalkSpeed>
<Run>
<Speed op="mul">1.0</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -31,8 +31,5 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">0.95</WalkSpeed>
<Run>
<Speed op="mul">0.95</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -29,10 +29,4 @@
special/formations/testudo
</Formations>
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.0</WalkSpeed>
<Run>
<Speed op="mul">1.0</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -27,9 +27,6 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.05</WalkSpeed>
<Run>
<Speed op="mul">1.05</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>80</Range>

View File

@ -36,8 +36,5 @@
</Loot>
<UnitMotion>
<WalkSpeed op="mul">0.8</WalkSpeed>
<Run>
<Speed op="mul">0.8</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -32,8 +32,5 @@
</Loot>
<UnitMotion>
<WalkSpeed op="mul">0.95</WalkSpeed>
<Run>
<Speed op="mul">0.95</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -27,8 +27,5 @@
</Loot>
<UnitMotion>
<WalkSpeed op="mul">1.05</WalkSpeed>
<Run>
<Speed op="mul">1.05</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -34,8 +34,5 @@
</Loot>
<UnitMotion>
<WalkSpeed op="mul">1.1</WalkSpeed>
<Run>
<Speed op="mul">1.1</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -33,8 +33,5 @@
</Loot>
<UnitMotion>
<WalkSpeed op="mul">1.4</WalkSpeed>
<Run>
<Speed op="mul">1.4</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -34,8 +34,5 @@
</Loot>
<UnitMotion>
<WalkSpeed op="mul">1.2</WalkSpeed>
<Run>
<Speed op="mul">1.2</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -22,4 +22,7 @@
<Repairable>
<RepairTimeRatio>4.0</RepairTimeRatio>
</Repairable>
<UnitMotion>
<RunMultiplier>1</RunMultiplier>
</UnitMotion>
</Entity>

View File

@ -74,8 +74,5 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">1.55</WalkSpeed>
<Run>
<Speed op="mul">1.55</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -54,9 +54,6 @@
<UnitMotion>
<PassabilityClass>ship-small</PassabilityClass>
<WalkSpeed op="mul">1.6</WalkSpeed>
<Run>
<Speed op="mul">1.6</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>60</Range>

View File

@ -62,9 +62,6 @@
<UnitMotion>
<PassabilityClass>ship-small</PassabilityClass>
<WalkSpeed op="mul">1.1</WalkSpeed>
<Run>
<Speed op="mul">1.1</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>30</Range>

View File

@ -61,9 +61,6 @@
<UnitMotion>
<PassabilityClass>ship-small</PassabilityClass>
<WalkSpeed op="mul">1.35</WalkSpeed>
<Run>
<Speed op="mul">1.35</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>50</Range>

View File

@ -82,9 +82,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">1.8</WalkSpeed>
<Run>
<Speed op="mul">1.8</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>110</Range>

View File

@ -74,8 +74,5 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">1.8</WalkSpeed>
<Run>
<Speed op="mul">1.8</Speed>
</Run>
</UnitMotion>
</Entity>

View File

@ -78,9 +78,6 @@
</UnitAI>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>120</Range>

View File

@ -79,9 +79,6 @@
</UnitAI>
<UnitMotion>
<WalkSpeed op="mul">0.8</WalkSpeed>
<Run>
<Speed op="mul">0.8</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>120</Range>

View File

@ -45,9 +45,6 @@
</Sound>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>80</Range>

View File

@ -81,9 +81,6 @@
</StatusBars>
<UnitMotion>
<WalkSpeed op="mul">0.7</WalkSpeed>
<Run>
<Speed op="mul">0.7</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>80</Range>

View File

@ -49,7 +49,6 @@
<metal>1</metal>
</Loot>
<ResourceGatherer>
<MaxDistance>2.0</MaxDistance>
<BaseSpeed>1.0</BaseSpeed>
<Rates>
<food.fish>0.5</food.fish>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/athenians/siege_rock_pivot.xml</Actor>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/athenians/siege_spear_pivot.xml</Actor>

View File

@ -21,9 +21,6 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>structures/celts/warship.xml</Actor>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/carthaginians/siege_rock_pivot.xml</Actor>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/carthaginians/siege_spear_pivot.xml</Actor>

View File

@ -20,9 +20,6 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">1.4</WalkSpeed>
<Run>
<Speed op="mul">1.4</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/gauls/infantry_spearman_c.xml</Actor>

View File

@ -21,9 +21,6 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>structures/celts/warship.xml</Actor>

View File

@ -21,9 +21,6 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>structures/iberians/warship.xml</Actor>

View File

@ -38,9 +38,6 @@
</Promotion>
<UnitMotion>
<WalkSpeed op="mul">1.1</WalkSpeed>
<Run>
<Speed op="mul">1.1</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/kushites/infantry_clubman_b.xml</Actor>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/athenians/siege_rock_pivot.xml</Actor>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/athenians/siege_spear_pivot.xml</Actor>

View File

@ -67,9 +67,6 @@
<UnitMotion>
<PassabilityClass>large</PassabilityClass>
<WalkSpeed op="mul">0.5</WalkSpeed>
<Run>
<Speed op="mul">0.5</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/mauryas/elephantry_archer_b_m.xml</Actor>

View File

@ -21,9 +21,6 @@
</Identity>
<UnitMotion>
<WalkSpeed op="mul">0.9</WalkSpeed>
<Run>
<Speed op="mul">0.9</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>structures/mauryas/trireme.xml</Actor>

View File

@ -69,9 +69,6 @@
<UnitMotion>
<PassabilityClass>large</PassabilityClass>
<WalkSpeed op="mul">0.6</WalkSpeed>
<Run>
<Speed op="mul">0.6</Speed>
</Run>
</UnitMotion>
<Vision>
<Range>50</Range>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/ptolemies/siege_rock_pivot.xml</Actor>

View File

@ -9,9 +9,6 @@
</Pack>
<UnitMotion>
<WalkSpeed>0.001</WalkSpeed>
<Run>
<Speed>0.001</Speed>
</Run>
</UnitMotion>
<VisualActor>
<Actor>units/ptolemies/siege_spear_pivot.xml</Actor>

Some files were not shown because too many files have changed in this diff Show More