@@ -57,8 +57,8 @@ const handler = (obj, item, event, firedEventName) => { | |||||
delete spellConfig.scaleDamage; | delete spellConfig.scaleDamage; | ||||
if (scaleDamage) { | if (scaleDamage) { | ||||
if (scaleDamage.s_useOriginal) { | |||||
scaleDamage.s_useOriginal.forEach(s => { | |||||
if (scaleDamage.useOriginal) { | |||||
scaleDamage.useOriginal.forEach(s => { | |||||
spellConfig[s] = event.spell[s]; | spellConfig[s] = event.spell[s]; | ||||
}); | }); | ||||
} | } | ||||
@@ -83,8 +83,15 @@ const handler = (obj, item, event, firedEventName) => { | |||||
target = obj; | target = obj; | ||||
else if (castTarget === 'none') | else if (castTarget === 'none') | ||||
target = undefined; | target = undefined; | ||||
//Need to write a generic way to apply these | |||||
else if (castTarget === '{{event.oldPos}}') | else if (castTarget === '{{event.oldPos}}') | ||||
target = extend({}, event.oldPos); | target = extend({}, event.oldPos); | ||||
else if (JSON.stringify(castTarget) === '{"x":"{{event.follower.x}}","y":"{{event.follower.y}}"}') { | |||||
target = { | |||||
x: event.follower.x, | |||||
y: event.follower.y | |||||
}; | |||||
} | |||||
builtSpell.cast({ target }); | builtSpell.cast({ target }); | ||||
}; | }; | ||||
@@ -48,9 +48,15 @@ module.exports = { | |||||
damage: 1, | damage: 1, | ||||
cast: function (action) { | cast: function (action) { | ||||
let obj = this.obj; | |||||
const { obj, targetPlayerPos } = this; | |||||
let { x, y, instance: { physics, syncer } } = obj; | let { x, y, instance: { physics, syncer } } = obj; | ||||
if (!targetPlayerPos) { | |||||
x = action.target.x; | |||||
y = action.target.y; | |||||
} | |||||
let radius = this.radius; | let radius = this.radius; | ||||
const particleEvent = { | const particleEvent = { | ||||
@@ -2,7 +2,7 @@ const rollValues = (rollsDefinition, result) => { | |||||
for (let p in rollsDefinition) { | for (let p in rollsDefinition) { | ||||
const entry = rollsDefinition[p]; | const entry = rollsDefinition[p]; | ||||
if (typeof(entry) === 'object' && !Array.isArray(entry) && entry !== null) { | |||||
if (typeof(entry) === 'object' && entry !== null && !Array.isArray(entry) ) { | |||||
const newResult = {}; | const newResult = {}; | ||||
result[p] = newResult; | result[p] = newResult; | ||||
@@ -16,8 +16,13 @@ const rollValues = (rollsDefinition, result) => { | |||||
const isInt = (p.indexOf('i_') === 0); | const isInt = (p.indexOf('i_') === 0); | ||||
const fieldName = p.replace('i_', ''); | const fieldName = p.replace('i_', ''); | ||||
//Keys that start with s_ indicate that they shouldn't be rolled | |||||
// We use this to allow arrays inside rolls to be hardcoded | |||||
if (!Array.isArray(entry) || p.indexOf('s_') === 0) { | if (!Array.isArray(entry) || p.indexOf('s_') === 0) { | ||||
result[fieldName] = range; | |||||
if (p.indexOf('s_') === 0) | |||||
result[p.substr(2)] = range; | |||||
else | |||||
result[fieldName] = range; | |||||
continue; | continue; | ||||
} | } | ||||