Index: binaries/data/mods/public/simulation/components/Attack.js
===================================================================
--- binaries/data/mods/public/simulation/components/Attack.js
+++ binaries/data/mods/public/simulation/components/Attack.js
@@ -93,11 +93,13 @@
"0.0" +
"0.0" +
"" +
+ "1000" +
"4.0" +
"" +
"" +
- "" +
- "" +
+ "" +
+ "" +
+ "" +
"" +
"" +
"" +
@@ -109,33 +111,11 @@
"" +
Attacking.BuildAttackEffectsSchema() +
"" +
- "" +
- "" +
- "" +
- "" + // TODO: it shouldn't be stretched
- "" +
- "" +
- Attack.prototype.preferredClassesSchema +
- Attack.prototype.restrictedClassesSchema +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- Attacking.BuildAttackEffectsSchema() +
- "" +
- "" +
+ "" +
+ "" +
+ "" +
""+
- "" +
+ "" +
"" +
"" +
"" +
@@ -146,13 +126,17 @@
"" +
"" +
"" +
- "" +
- "" +
- "" +
- "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" + // TODO: it shouldn't be stretched
"" +
"" +
- "" +
+ "" +
+ "" +
+ "" +
"" +
"" +
"" +
@@ -163,82 +147,45 @@
"" +
"" +
"" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
+ "" +
+ "" +
+ "" +
+ "" +
"" +
"" +
- "" +
- "" +
- "" +
- Attack.prototype.preferredClassesSchema +
- Attack.prototype.restrictedClassesSchema +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- Attacking.BuildAttackEffectsSchema() +
- "" +
- "" + // TODO: it shouldn't be stretched
- "" +
- "" +
- Attack.prototype.preferredClassesSchema +
- Attack.prototype.restrictedClassesSchema +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- "" +
- Attacking.BuildAttackEffectsSchema() +
- "" + // TODO: how do these work?
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
Attack.prototype.preferredClassesSchema +
Attack.prototype.restrictedClassesSchema +
"" +
"" +
- "";
+ "";
Attack.prototype.Init = function()
{
@@ -502,18 +449,31 @@
*/
Attack.prototype.PerformAttack = function(type, target)
{
- let attackerOwner = Engine.QueryInterface(this.entity, IID_Ownership).GetOwner();
+ let cmpPosition = Engine.QueryInterface(this.entity, IID_Position);
+ if (!cmpPosition || !cmpPosition.IsInWorld())
+ return;
+ let selfPosition = cmpPosition.GetPosition();
+
+ let cmpTargetPosition = Engine.QueryInterface(target, IID_Position);
+ if (!cmpTargetPosition || !cmpTargetPosition.IsInWorld())
+ return;
+ let targetPosition = cmpTargetPosition.GetPosition();
+
+ let cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
+ if (!cmpOwnership)
+ return;
+ let attackerOwner = cmpOwnership.GetOwner();
let data = {
"type": type,
"attackData": this.GetAttackEffectsData(type),
- "target": target,
+ "splash": this.GetSplashData(type),
"attacker": this.entity,
"attackerOwner": attackerOwner,
+ "target": target,
};
- // If this is a ranged attack, then launch a projectile
- if (type == "Ranged")
+ if (this.template[type].Projectile)
{
let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
let turnLength = cmpTimer.GetLatestTurnLength()/1000;
@@ -528,15 +488,6 @@
// We will try to estimate the position of the target, where we can hit it.
// We first estimate the time-till-hit by extrapolating linearly the movement
// of the last turn. We compute the time till an arrow will intersect the target.
- let cmpPosition = Engine.QueryInterface(this.entity, IID_Position);
- if (!cmpPosition || !cmpPosition.IsInWorld())
- return;
- let selfPosition = cmpPosition.GetPosition();
- let cmpTargetPosition = Engine.QueryInterface(target, IID_Position);
- if (!cmpTargetPosition || !cmpTargetPosition.IsInWorld())
- return;
- let targetPosition = cmpTargetPosition.GetPosition();
-
let targetVelocity = Vector3D.sub(targetPosition, cmpTargetPosition.GetPreviousPosition()).div(turnLength);
let timeToTarget = PositionHelper.PredictTimeToTarget(selfPosition, horizSpeed, targetPosition, targetVelocity);
@@ -571,31 +522,23 @@
let predictedHeight = cmpTargetPosition.GetHeightAt(predictedPosition.x, predictedPosition.z);
// Add inaccuracy based on spread.
- let distanceModifiedSpread = ApplyValueModificationsToEntity("Attack/Ranged/Spread", +this.template[type].Projectile.Spread, this.entity) *
+ let distanceModifiedSpread = ApplyValueModificationsToEntity("Attack/" + type + "/Spread", +this.template[type].Projectile.Spread, this.entity) *
predictedPosition.horizDistanceTo(selfPosition) / 100;
let randNorm = randomNormal2D();
let offsetX = randNorm[0] * distanceModifiedSpread;
let offsetZ = randNorm[1] * distanceModifiedSpread;
- let realTargetPosition = new Vector3D(predictedPosition.x + offsetX, predictedHeight, predictedPosition.z + offsetZ);
+ data.position = new Vector3D(predictedPosition.x + offsetX, predictedHeight, predictedPosition.z + offsetZ);
- // Recalculate when the missile will hit the target position.
- let realHorizDistance = realTargetPosition.horizDistanceTo(selfPosition);
+ let realHorizDistance = data.position.horizDistanceTo(selfPosition);
timeToTarget = realHorizDistance / horizSpeed;
- let missileDirection = Vector3D.sub(realTargetPosition, selfPosition).div(realHorizDistance);
-
- // Launch the graphical projectile.
- let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
+ data.direction = Vector3D.sub(data.position, selfPosition).div(realHorizDistance);
- let actorName = "";
- let impactActorName = "";
- let impactAnimationLifetime = 0;
-
- actorName = this.template[type].Projectile.ActorName || "";
- impactActorName = this.template[type].Projectile.ImpactActorName || "";
- impactAnimationLifetime = this.template[type].Projectile.ImpactAnimationLifetime || 0;
+ let actorName = this.template[type].Projectile.ActorName || "";
+ let impactActorName = this.template[type].Projectile.ImpactActorName || "";
+ let 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);
@@ -614,24 +557,28 @@
launchPoint = visualActorLaunchPoint;
}
- let id = cmpProjectileManager.LaunchProjectileAtPoint(launchPoint, realTargetPosition, horizSpeed, gravity, actorName, impactActorName, impactAnimationLifetime);
+ let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
+ data.projectileId = cmpProjectileManager.LaunchProjectileAtPoint(launchPoint, data.position, horizSpeed, gravity, actorName, impactActorName, impactAnimationLifetime);
- let attackImpactSound = "";
let cmpSound = Engine.QueryInterface(this.entity, IID_Sound);
- if (cmpSound)
- attackImpactSound = cmpSound.GetSoundGroup("attack_impact_" + type.toLowerCase());
+ data.attackImpactSound = cmpSound ? cmpSound.GetSoundGroup("attack_impact_" + type.toLowerCase()) : "";
- data.position = realTargetPosition;
- data.direction = missileDirection;
- data.projectileId = id;
- data.attackImpactSound = attackImpactSound;
- data.splash = this.GetSplashData(type);
data.friendlyFire = this.template[type].Projectile.FriendlyFire == "true";
- cmpTimer.SetTimeout(SYSTEM_ENTITY, IID_DelayedDamage, "MissileHit", +this.template[type].Delay + timeToTarget * 1000, data);
+ cmpTimer.SetTimeout(SYSTEM_ENTITY, IID_DelayedDamage, "MissileHit", +(this.template[type].Delay || 0) + timeToTarget * 1000, data);
}
else
- Attacking.HandleAttackEffects(target, data);
+ {
+ data.position = targetPosition;
+ data.direction = Vector3D.sub(targetPosition, selfPosition);
+ if (this.template[type].Delay)
+ {
+ let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
+ cmpTimer.SetTimeout(SYSTEM_ENTITY, IID_DelayedDamage, "CauseAttackEffects", +(this.template[type].Delay || 0), data);
+ }
+ else
+ Engine.QueryInterface(SYSTEM_ENTITY, IID_DelayedDamage).CauseAttackEffects(data, 0);
+ }
};
Attack.prototype.OnValueModification = function(msg)
@@ -648,20 +595,20 @@
cmpUnitAI.UpdateRangeQueries();
};
-Attack.prototype.GetRangeOverlays = function()
+Attack.prototype.GetRangeOverlays = function(type = "Ranged")
{
- if (!this.template.Ranged || !this.template.Ranged.RangeOverlay)
+ if (!this.template[type] || !this.template[type].RangeOverlay)
return [];
- let range = this.GetRange("Ranged");
+ let range = this.GetRange(type);
let rangeOverlays = [];
for (let i in range)
if ((i == "min" || i == "max") && range[i])
rangeOverlays.push({
"radius": range[i],
- "texture": this.template.Ranged.RangeOverlay.LineTexture,
- "textureMask": this.template.Ranged.RangeOverlay.LineTextureMask,
- "thickness": +this.template.Ranged.RangeOverlay.LineThickness,
+ "texture": this.template[type].RangeOverlay.LineTexture,
+ "textureMask": this.template[type].RangeOverlay.LineTextureMask,
+ "thickness": +this.template[type].RangeOverlay.LineThickness,
});
return rangeOverlays;
};
Index: binaries/data/mods/public/simulation/components/DelayedDamage.js
===================================================================
--- binaries/data/mods/public/simulation/components/DelayedDamage.js
+++ binaries/data/mods/public/simulation/components/DelayedDamage.js
@@ -89,4 +89,48 @@
}
};
+/**
+ * Handles damage caused by non projectile attack.
+ * @param {Object} data - The data sent by the caller.
+ * @param {string} data.type - The type of damage.
+ * @param {Object} data.attackData - Data of the form { 'effectType': { ...opaque effect data... }, 'Bonuses': {...} }.
+ * @param {number} data.target - The entity id of the target.
+ * @param {number} data.attacker - The entity id of the attacker.
+ * @param {number} data.attackerOwner - The player id of the owner of the attacker.
+ * @param {Vector3D} data.position - The expected position of the target.
+ * @param {Vector3D} data.direction - The unit vector defining the direction.
+ * @param {boolean} data.friendlyFire - A flag indicating whether allied entities can also be damaged.
+ * ***When splash damage***
+ * @param {boolean} data.splash.friendlyFire - A flag indicating if allied entities are also damaged.
+ * @param {number} data.splash.radius - The radius of the splash damage.
+ * @param {string} data.splash.shape - The shape of the splash range.
+ * @param {Object} data.splash.attackData - same as attackData, for splash.
+ */
+DelayedDamage.prototype.CauseAttackEffects = function(data, lateness)
+{
+ if (!data.position)
+ return;
+
+ if (data.splash)
+ Attacking.CauseDamageOverArea({
+ "type": data.type,
+ "attackData": data.splash.attackData,
+ "attacker": data.attacker,
+ "attackerOwner": data.attackerOwner,
+ "origin": Vector2D.from3D(data.position),
+ "radius": data.splash.radius,
+ "shape": data.splash.shape,
+ "direction": data.direction,
+ "friendlyFire": data.splash.friendlyFire
+ });
+
+ let target = data.target;
+ // Since we can't damage mirages, replace a miraged target by the real target.
+ let cmpMirage = Engine.QueryInterface(data.target, IID_Mirage);
+ if (cmpMirage)
+ target = cmpMirage.GetParent();
+
+ Attacking.HandleAttackEffects(target, data);
+};
+
Engine.RegisterSystemComponentType(IID_DelayedDamage, "DelayedDamage", DelayedDamage);
Index: binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
+++ binaries/data/mods/public/simulation/templates/structures/rome/army_camp.xml
@@ -7,10 +7,8 @@
25
60
- 0
1200
2000
- 0
100
1.5
Index: binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
@@ -13,10 +13,8 @@
12
60
- 0
1200
2000
- 0
100
1.5
Index: binaries/data/mods/public/simulation/templates/template_structure_defensive_tower.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_defensive_tower.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_defensive_tower.xml
@@ -7,7 +7,6 @@
10
1200
2000
- 0
100
1.5
Index: binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
+++ binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
@@ -7,10 +7,8 @@
16
60
- 0
1200
2000
- 0
100
1.5
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
@@ -14,6 +14,8 @@
1000
2
+ 1000
+ !Domestic
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_archer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_archer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_archer.xml
@@ -7,10 +7,8 @@
7
60
- 0
500
1000
- 0
100
2
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_crossbowman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_crossbowman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_crossbowman.xml
@@ -7,10 +7,8 @@
20
60
- 0
2400
3000
- 0
120
2
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_javelineer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_javelineer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_javelineer.xml
@@ -7,10 +7,8 @@
18
30
- 0
750
1250
- 0
70
4
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_archer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_archer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_archer.xml
@@ -7,10 +7,8 @@
14
60
- 0
500
1000
- 0
100
0.8
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_crossbowman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_crossbowman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_crossbowman.xml
@@ -7,10 +7,8 @@
40
60
- 0
2400
3000
- 0
120
0.8
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_javelineer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_javelineer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_javelineer.xml
@@ -7,10 +7,8 @@
36
30
- 0
750
1250
- 0
70
1.6
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
@@ -7,10 +7,8 @@
13.5
60
- 0
500
1000
- 0
100
0.8
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_crossbowman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_crossbowman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_crossbowman.xml
@@ -7,10 +7,8 @@
40
60
- 0
2400
3000
- 0
120
0.8
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelineer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelineer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_javelineer.xml
@@ -7,10 +7,8 @@
26
30
- 0
500
1000
- 0
70
1.6
Index: binaries/data/mods/public/simulation/templates/template_unit_elephant_archer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_elephant_archer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_elephant_archer.xml
@@ -7,10 +7,8 @@
14
60
- 0
500
1000
- 0
100
2
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_archer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_archer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_archer.xml
@@ -7,10 +7,8 @@
28
60
- 0
500
1000
- 0
100
0.4
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_crossbowman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_crossbowman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_crossbowman.xml
@@ -7,10 +7,8 @@
80
60
- 0
2400
3000
- 0
120
0.4
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelineer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelineer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_javelineer.xml
@@ -7,10 +7,8 @@
60
30
- 0
750
1250
- 0
70
0.8
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_archer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_archer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_archer.xml
@@ -7,10 +7,8 @@
27
60
- 0
500
1000
- 0
100
0.4
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_crossbowman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_crossbowman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_crossbowman.xml
@@ -7,10 +7,8 @@
80
60
- 0
2400
3000
- 0
120
0.4
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_javelineer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_javelineer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_javelineer.xml
@@ -7,10 +7,8 @@
50
30
- 0
600
1000
- 0
70
0.8
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
@@ -14,6 +14,8 @@
1000
2
+ 1000
+ !Domestic
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
@@ -7,10 +7,8 @@
6.7
60
- 0
500
1000
- 0
100
2
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_crossbowman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_crossbowman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_crossbowman.xml
@@ -7,10 +7,8 @@
20
60
- 0
2400
3000
- 0
120
2
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelineer.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelineer.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelineer.xml
@@ -7,10 +7,8 @@
16
30
- 0
750
1250
- 0
70
4
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
@@ -8,10 +8,8 @@
1.1
45
- 0
750
1250
- 0
90
3
Index: binaries/data/mods/public/simulation/templates/template_unit_ship_bireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_ship_bireme.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_ship_bireme.xml
@@ -7,10 +7,8 @@
35
45
- 0
1000
2000
- 0
100
2
Index: binaries/data/mods/public/simulation/templates/template_unit_ship_quinquereme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_ship_quinquereme.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_ship_quinquereme.xml
@@ -10,7 +10,6 @@
40
2000
5000
- 0
40
6
Index: binaries/data/mods/public/simulation/templates/template_unit_ship_trireme.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_ship_trireme.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_ship_trireme.xml
@@ -7,10 +7,8 @@
35
55
- 0
1000
2000
- 0
100
2
Index: binaries/data/mods/public/simulation/templates/template_unit_siege_boltshooter.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_siege_boltshooter.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_siege_boltshooter.xml
@@ -10,7 +10,6 @@
15
5000
6000
- 0
150
1
Index: binaries/data/mods/public/simulation/templates/template_unit_siege_stonethrower.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_siege_stonethrower.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_siege_stonethrower.xml
@@ -10,7 +10,6 @@
40
6000
7000
- 0
40
6
Index: binaries/data/mods/public/simulation/templates/template_unit_siege_tower.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_siege_tower.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_siege_tower.xml
@@ -12,7 +12,6 @@
10
1200
2000
- 0
100
2
Index: binaries/data/mods/public/simulation/templates/template_unit_support_female_citizen.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_support_female_citizen.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_support_female_citizen.xml
@@ -16,6 +16,8 @@
1000
2
+ 1000
+ !Domestic
Index: binaries/data/mods/public/simulation/templates/units/plane.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/plane.xml
+++ binaries/data/mods/public/simulation/templates/units/plane.xml
@@ -11,7 +11,6 @@
80
0
10000
- 0
75
1
Index: binaries/data/mods/public/simulation/templates/units/theb_siege_fireraiser.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/theb_siege_fireraiser.xml
+++ binaries/data/mods/public/simulation/templates/units/theb_siege_fireraiser.xml
@@ -10,7 +10,6 @@
10
2000
2000
- 0
10
2