mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-17 15:39:02 +01:00
Added difficulty support in rollDialog/rollMessage and [[/dr]]
This commit is contained in:
parent
867947c2c5
commit
2616ff59be
6 changed files with 37 additions and 8 deletions
|
|
@ -1170,6 +1170,7 @@
|
|||
},
|
||||
"Roll": {
|
||||
"attack": "Attack Roll",
|
||||
"difficulty": "Roll (Difficulty {difficulty})",
|
||||
"primaryWeaponAttack": "Primary Weapon Attack Roll",
|
||||
"secondaryWeaponAttack": "Secondary Weapon Attack Roll",
|
||||
"spellcast": "Spellcast Roll",
|
||||
|
|
@ -1274,6 +1275,7 @@
|
|||
"single": "Experience",
|
||||
"plural": "Experiences"
|
||||
},
|
||||
"failure": "Failure",
|
||||
"fear": "Fear",
|
||||
"features": "Features",
|
||||
"formula": "Formula",
|
||||
|
|
@ -1309,6 +1311,7 @@
|
|||
"scalable": "Scalable",
|
||||
"situationalBonus": "Situational Bonus",
|
||||
"stress": "Stress",
|
||||
"success": "Success",
|
||||
"take": "Take",
|
||||
"Target": {
|
||||
"single": "Target",
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
export default class DhpChatMessage extends foundry.documents.ChatMessage {
|
||||
async renderHTML() {
|
||||
if (this.system.messageTemplate)
|
||||
this.content = await foundry.applications.handlebars.renderTemplate(
|
||||
this.system.messageTemplate,
|
||||
this.system
|
||||
);
|
||||
this.content = await foundry.applications.handlebars.renderTemplate(this.system.messageTemplate, {
|
||||
...this.system,
|
||||
_source: this.system._source
|
||||
});
|
||||
|
||||
/* We can change to fully implementing the renderHTML function if needed, instead of augmenting it. */
|
||||
const html = await super.renderHTML();
|
||||
|
|
|
|||
|
|
@ -28,12 +28,14 @@ export function getDualityMessage(roll) {
|
|||
data-label="${dataLabel}"
|
||||
data-hope="${roll.hope ?? 'd12'}"
|
||||
data-fear="${roll.fear ?? 'd12'}"
|
||||
${roll.difficulty ? `data-difficulty="${roll.difficulty}"` : ''}
|
||||
${roll.trait && abilities[roll.trait] ? `data-trait="${roll.trait}"` : ''}
|
||||
${roll.advantage ? 'data-advantage="true"' : ''}
|
||||
${roll.disadvantage ? 'data-disadvantage="true"' : ''}
|
||||
>
|
||||
<i class="fa-solid fa-circle-half-stroke"></i>
|
||||
${label}
|
||||
${roll.difficulty ? `(${roll.difficulty})` : ''}
|
||||
</button>
|
||||
`;
|
||||
|
||||
|
|
@ -43,7 +45,8 @@ export function getDualityMessage(roll) {
|
|||
export const renderDualityButton = async event => {
|
||||
const button = event.currentTarget,
|
||||
traitValue = button.dataset.trait?.toLowerCase(),
|
||||
target = getCommandTarget();
|
||||
target = getCommandTarget(),
|
||||
difficulty = button.dataset.difficulty;
|
||||
if (!target) return;
|
||||
|
||||
const config = {
|
||||
|
|
@ -52,6 +55,7 @@ export const renderDualityButton = async event => {
|
|||
roll: {
|
||||
modifier: traitValue ? target.system.traits[traitValue].value : null,
|
||||
label: button.dataset.label,
|
||||
difficulty: difficulty,
|
||||
type: button.dataset.actionType ?? null // Need check
|
||||
},
|
||||
chatMessage: {
|
||||
|
|
|
|||
|
|
@ -131,13 +131,17 @@
|
|||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
height: 32px;
|
||||
|
||||
.roll-mode-select {
|
||||
width: min-content;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
button {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
font-family: @font-body;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,14 +136,22 @@
|
|||
<input type="text" value="{{extraFormula}}" name="extraFormula" placeholder="{{#if (eq @root.rollType 'DualityRoll')}}Ex: 1d6 + 5{{else}}Situational Bonus{{/if}}">
|
||||
</fieldset>
|
||||
{{/unless}}
|
||||
|
||||
<span class="formula-label"><b>{{localize "DAGGERHEART.GENERAL.formula"}}:</b> {{@root.formula}}</span>
|
||||
|
||||
<div class="roll-dialog-controls">
|
||||
<select class="roll-mode-select" name="selectedRollMode">
|
||||
{{selectOptions rollModes selected=selectedRollMode valueAttr="action" labelAttr="label" localize=true}}
|
||||
</select>
|
||||
<button class="sunmit-btn" data-action="submitRoll"{{#unless canRoll}} disabled{{/unless}}>
|
||||
<i class="fa-solid fa-dice"></i>
|
||||
<span class="label">{{localize "DAGGERHEART.GENERAL.roll"}}</span>
|
||||
<span class="label">
|
||||
{{#if @root.rollConfig.roll.difficulty}}
|
||||
{{localize "DAGGERHEART.GENERAL.Roll.difficulty" difficulty=@root.rollConfig.roll.difficulty}}
|
||||
{{else}}
|
||||
{{localize "DAGGERHEART.GENERAL.roll"}}
|
||||
{{/if}}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
{{else}}
|
||||
|
|
|
|||
|
|
@ -140,7 +140,17 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="dice-total duality {{#if (eq roll.result.duality 1)}}hope{{else}}{{#if (eq roll.result.duality -1)}}fear{{else}}critical{{/if}}{{/if}}">
|
||||
<div class="dice-total-label">{{roll.result.label}}</div>
|
||||
<div class="dice-total-label">
|
||||
{{#unless (eq _source.roll.success undefined)}}
|
||||
{{#if _source.roll.success}}
|
||||
{{localize "DAGGERHEART.GENERAL.success"}} {{localize "DAGGERHEART.GENERAL.withThing" thing=roll.result.label}}
|
||||
{{else}}
|
||||
{{localize "DAGGERHEART.GENERAL.failure"}} {{localize "DAGGERHEART.GENERAL.withThing" thing=roll.result.label}}
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{roll.result.label}}
|
||||
{{/unless}}
|
||||
</div>
|
||||
<div class="dice-total-value">
|
||||
{{roll.total}}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue