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 @@ -139,12 +139,7 @@ "" + "" + "" + - "" + - "" + - "" + - "" + - Attacking.BuildAttackEffectsSchema() + - "" + + Attacking.BuildAreaDamageSchema() + "" + "" + "" + Index: binaries/data/mods/public/simulation/components/DeathDamage.js =================================================================== --- binaries/data/mods/public/simulation/components/DeathDamage.js +++ binaries/data/mods/public/simulation/components/DeathDamage.js @@ -12,10 +12,7 @@ "50.0" + "" + "" + - "" + - "" + - "" + - Attacking.BuildAttackEffectsSchema(); + Attacking.BuildAreaDamageSchema(); DeathDamage.prototype.Init = function() { @@ -47,6 +44,7 @@ "attacker": this.entity, "attackerOwner": owner, "origin": pos, + "direction": cmpPosition.GetRotation(), "radius": ApplyValueModificationsToEntity("DeathDamage/Range", +this.template.Range, this.entity), "shape": this.template.Shape, "friendlyFire": this.template.FriendlyFire == "true", Index: binaries/data/mods/public/simulation/components/tests/test_DeathDamage.js =================================================================== --- binaries/data/mods/public/simulation/components/tests/test_DeathDamage.js +++ binaries/data/mods/public/simulation/components/tests/test_DeathDamage.js @@ -41,6 +41,7 @@ let playersToDamage = [2, 3, 7]; let pos = new Vector2D(3, 4.2); +let direction = new Vector3D(0, 0.1, 0); let result = { "type": "Death", @@ -48,6 +49,7 @@ "attacker": deadEnt, "attackerOwner": player, "origin": pos, + "direction": direction, "radius": template.Range, "shape": template.Shape, "friendlyFire": false @@ -57,6 +59,7 @@ Attacking.GetPlayersToDamage = () => playersToDamage; AddMock(deadEnt, IID_Position, { + "GetRotation": () => direction, "GetPosition2D": () => pos, "IsInWorld": () => true }); Index: binaries/data/mods/public/simulation/helpers/Attacking.js =================================================================== --- binaries/data/mods/public/simulation/helpers/Attacking.js +++ binaries/data/mods/public/simulation/helpers/Attacking.js @@ -86,6 +86,27 @@ }; /** + * Builds a RelaxRNG schema for area damages. + * + * @return {string} - RelaxNG schema string. + */ +Attacking.prototype.BuildAreaDamageSchema = function() +{ + return ` + + + + Circular + Linear + + + + + ${this.BuildAttackEffectsSchema()} + `; +}; + +/** * Returns a template-like object of attack effects. */ Attacking.prototype.GetAttackEffectsData = function(valueModifRoot, template, entity)