diff --git a/app/imports/api/creature/actions/applyAction.js b/app/imports/api/creature/actions/applyAction.js index 189bd6a2..6738e4a2 100644 --- a/app/imports/api/creature/actions/applyAction.js +++ b/app/imports/api/creature/actions/applyAction.js @@ -1,4 +1,5 @@ import spendResources from '/imports/api/creature/actions/spendResources.js' +import embedInlineCalculations from '/imports/api/creature/computation/afterComputation/embedInlineCalculations.js'; export default function applyAction({prop, log}){ spendResources(prop); @@ -6,4 +7,18 @@ export default function applyAction({prop, log}){ if (log.content.length){ log.content.push({name: prop.name}); } + if (prop.summary){ + log.content.push({ + details: embedInlineCalculations( + prop.summary, prop.summaryCalculations + ), + }); + } + if (prop.description){ + log.content.push({ + details: embedInlineCalculations( + prop.description, prop.descriptionCalculations + ), + }); + } } diff --git a/app/imports/api/creature/actions/applyDamage.js b/app/imports/api/creature/actions/applyDamage.js index 35b2aabe..11f383bc 100644 --- a/app/imports/api/creature/actions/applyDamage.js +++ b/app/imports/api/creature/actions/applyDamage.js @@ -36,18 +36,31 @@ export default function applyDamage({ damageType: prop.damageType, amount: result, }); - insertCreatureLog.call({ - log: { - text: `Recieved ${damageDealt} ${prop.damageType}${prop.damageType !== 'healing'? ' damage': ''}`, - creatureId: target._id, - } - }); - if (target._id !== creature._id){ + if (target._id === creature._id){ log.content.push({ result: damageDealt, - details: `${prop.damageType}${prop.damageType !== 'healing'? ' damage': ''}` + + details: `${prop.damageType}`+ + `${prop.damageType !== 'healing' ? ' damage': ''} to self`, + }); + } else { + log.content.push({ + resultPrefix: 'Dealt ', + result: damageDealt, + details: `${prop.damageType}` + + `${prop.damageType !== 'healing'? ' damage': ''}` + `${target.name && ' to '}${target.name}`, }); + insertCreatureLog.call({ + log: { + content: [{ + resultPrefix: 'Recieved ', + result: damageDealt, + details: `${prop.damageType}` + + `${prop.damageType !== 'healing'? ' damage': ''}` + }], + creatureId: target._id, + } + }); } }); } else { diff --git a/app/imports/api/creature/computation/afterComputation/embedInlineCalculations.js b/app/imports/api/creature/computation/afterComputation/embedInlineCalculations.js new file mode 100644 index 00000000..1adbb68a --- /dev/null +++ b/app/imports/api/creature/computation/afterComputation/embedInlineCalculations.js @@ -0,0 +1,8 @@ +export default function embedInlineCalculations(string, calculations){ + if (!string) return ''; + let index = 0; + return string.replace(/\{([^{}]*)\}/g, () => { + let comp = calculations && calculations[index++]; + return comp && comp.result; + }); +} diff --git a/app/imports/ui/components/computation/EmbedInlineComputations.vue b/app/imports/ui/components/computation/EmbedInlineComputations.vue index 3c4ca6f4..01fa759f 100644 --- a/app/imports/ui/components/computation/EmbedInlineComputations.vue +++ b/app/imports/ui/components/computation/EmbedInlineComputations.vue @@ -6,6 +6,7 @@