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)