diff --git a/src/lang/en.json b/src/lang/en.json index db99edc..08b3092 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -10,7 +10,7 @@ "OSE.SitMod": "Situational Modifier", "OSE.Modifier": "Modifier", "OSE.RollMode": "Roll Mode", - "OSE.RollExample": "Roll Example", + "OSE.RollExample": "e.g. +1d4", "OSE.Name": "Name", "OSE.Class": "Class", @@ -161,5 +161,7 @@ "OSE.exploration.sd.long": "Find Secret Door", "OSE.exploration.sd.short": "Secret Door", "OSE.exploration.ft.long": "Find Room Trap", - "OSE.exploration.ft.short": "Find Trap" + "OSE.exploration.ft.short": "Find Trap", + + "OSE.messages.getExperience": "{name} gained {value} experience points!" } \ No newline at end of file diff --git a/src/module/actor/entity.js b/src/module/actor/entity.js index 3f63528..6e0eb7b 100644 --- a/src/module/actor/entity.js +++ b/src/module/actor/entity.js @@ -25,7 +25,20 @@ export class OseActor extends Actor { /* -------------------------------------------- */ /* Socket Listeners and Handlers /* -------------------------------------------- */ - + getExperience(value, options = {}) { + console.log(this.data); + if (this.data.type != 'character') { + return; + } + let modified = value + (this.data.data.details.xp.bonus * value) / 100; + console.log(modified); + return this.update({ + "data.details.xp.value": modified + this.data.data.details.xp.value + }).then(() => { + const speaker = ChatMessage.getSpeaker({actor: this}); + ChatMessage.create({content: game.i18n.format("OSE.messages.getExperience", {name: this.name, value: modified}), speaker}); + }); + } /* -------------------------------------------- */ /* Rolls */ /* -------------------------------------------- */ @@ -89,7 +102,7 @@ export class OseActor extends Actor { ...{ rollData: { type: "Check", - stat: score, + target: this.data.data.scores[score].value, }, }, }; @@ -178,7 +191,7 @@ export class OseActor extends Actor { // Add Str to damage if (attData.type == 'melee') { - dmgParts.push("+", data.scores.str.mod); + dmgParts.push(data.scores.str.mod); } // Damage roll @@ -199,21 +212,17 @@ export class OseActor extends Actor { if (attData.type == "missile") { rollParts.push( - "+", data.scores.dex.mod.toString(), - "+", data.thac0.mod.missile.toString() ); } else if (attData.type == "melee") { rollParts.push( - "+", data.scores.str.mod.toString(), - "+", data.thac0.mod.melee.toString() ); } if (game.settings.get("ose", "ascendingAC")) { - rollParts.push("+", this.data.data.thac0.bba.toString()); + rollParts.push(this.data.data.thac0.bba.toString()); } const rollData = { diff --git a/src/module/dice.js b/src/module/dice.js index 57d8b68..5090c68 100644 --- a/src/module/dice.js +++ b/src/module/dice.js @@ -53,7 +53,7 @@ export class OseDice { } } else if (data.rollData.type == "Check") { // SCORE CHECKS - let sc = data.data.scores[data.rollData.stat].value; + let sc = data.rollData.target; if (die == 1 || (roll.total <= sc && die < 20)) { details = `