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