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
@@ -75,6 +75,10 @@
"50.0" +
"2.5" +
"1000" +
+ "" +
+ "1000" +
+ "5" +
+ "" +
"" +
"" +
"Cavalry" +
@@ -152,6 +156,14 @@
"" +
"" +
"" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
Attack.prototype.bonusesSchema +
Attack.prototype.preferredClassesSchema +
Attack.prototype.restrictedClassesSchema +
@@ -576,7 +588,9 @@
"bonus": this.GetBonusTemplate(type),
"isSplash": false,
"attackerOwner": attackerOwner,
- "attackImpactSound": attackImpactSound
+ "attackImpactSound": attackImpactSound,
+ "interval": this.template.Ranged.Continuous ? this.template.Ranged.Continuous.Interval : 0,
+ "numberOfIntervals": this.template.Ranged.Continuous ? this.template.Ranged.Continuous.NumberOfIntervals : 0
};
if (this.template.Ranged.Splash)
{
Index: binaries/data/mods/public/simulation/components/Damage.js
===================================================================
--- binaries/data/mods/public/simulation/components/Damage.js
+++ binaries/data/mods/public/simulation/components/Damage.js
@@ -157,7 +157,9 @@
"attacker": data.attacker,
"multiplier": GetDamageBonus(ent, data.bonus),
"type": data.type,
- "attackerOwner": data.attackerOwner
+ "attackerOwner": data.attackerOwner,
+ "interval": data.interval,
+ "numberOfIntervals": data.numberOfIntervals
});
cmpProjectileManager.RemoveProjectile(data.projectileId);
break;
@@ -255,6 +257,13 @@
if (cmpPromotion && cmpLoot && cmpLoot.GetXp() > 0)
cmpPromotion.IncreaseXp(cmpLoot.GetXp() * -targetState.change / cmpHealth.GetMaxHitpoints());
+ if (data.numberOfIntervals > 0)
+ {
+ data.numberOfIntervals--;
+ let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
+ cmpTimer.SetTimeout(SYSTEM_ENTITY, IID_Damage, "CauseDamage", +data.interval, data);
+ }
+
if (targetState.killed)
this.TargetKilled(data.attacker, data.target, data.attackerOwner);
Index: binaries/data/mods/public/simulation/templates/units/athen_cavalry_javelinist_a.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/units/athen_cavalry_javelinist_a.xml
+++ binaries/data/mods/public/simulation/templates/units/athen_cavalry_javelinist_a.xml
@@ -1,5 +1,22 @@
+
+
+ 0
+ 18.0
+ 0
+ 28.0
+ 0.0
+ 62.5
+ 750
+ 1250
+ 3.0
+
+ 1000
+ 3
+
+
+
Advanced