Anpassung Zauber und Kampftabs
This commit is contained in:
parent
12e6412a9f
commit
7333b54a35
|
|
@ -180,6 +180,7 @@ export interface M5CharacterCalculatedData {
|
||||||
pa: M5AttributeCalculated;
|
pa: M5AttributeCalculated;
|
||||||
wk: M5AttributeCalculated;
|
wk: M5AttributeCalculated;
|
||||||
};
|
};
|
||||||
|
|
||||||
stats: {
|
stats: {
|
||||||
lp: M5ModResult;
|
lp: M5ModResult;
|
||||||
ap: M5ModResult;
|
ap: M5ModResult;
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ export class M5Roll {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface FormulaParseResult {
|
interface FormulaParseResult {
|
||||||
sides: number;
|
sides: number;
|
||||||
type: string;
|
type: string;
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,17 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
let target = event.target.closest("[data-attribute]") as HTMLElement;
|
let target = event.target.closest("[data-attribute]") as HTMLElement;
|
||||||
let attributeValue = target ? parseInt(target.dataset.value) : null;
|
let attributeValue = target ? parseInt(target.dataset.value) : null;
|
||||||
let attributeStr = target ? target.dataset.attribute : null;
|
let attributeStr = target ? target.dataset.attribute : null;
|
||||||
|
let hasFortune: boolean;
|
||||||
|
let taskType: string;
|
||||||
|
let useFortune: boolean;
|
||||||
|
let modifier: number;
|
||||||
|
let difficulty: number;
|
||||||
|
let closedRoll: boolean;
|
||||||
|
let checkOptions = await GetRollOptions({ hasFortune, taskType, useFortune, modifier, difficulty, closedRoll });
|
||||||
|
console.log("Check Options", checkOptions);
|
||||||
|
if (checkOptions["cancelled"]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);
|
const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);
|
||||||
await roll.toMessage();
|
await roll.toMessage();
|
||||||
});
|
});
|
||||||
|
|
@ -517,3 +527,43 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
async function GetRollOptions({
|
||||||
|
hasFortune = true,
|
||||||
|
taskType = null,
|
||||||
|
useFortune = false,
|
||||||
|
difficulty = 0,
|
||||||
|
modifier = 0,
|
||||||
|
closedRoll = false,
|
||||||
|
template = "systems/midgard5/templates/chat/task-check-dialog.hbs" } = {}) {
|
||||||
|
const html = await renderTemplate(template, { hasFortune, useFortune, difficulty, modifier, closedRoll });
|
||||||
|
|
||||||
|
return new Promise(resolve => {
|
||||||
|
const data = {
|
||||||
|
title: (game as Game).i18n.format("midgard5.chat.taskCheck.title", { type: taskType }),
|
||||||
|
content: html,
|
||||||
|
buttons: {
|
||||||
|
normal: {
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.actions.roll"),
|
||||||
|
callback: html => resolve(_processTaskCheckOptions(html[0].querySelector("form")))
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
label: (game as Game).i18n.localize("midgard5.chat.actions.cancel"),
|
||||||
|
callback: html => resolve({ cancelled: true })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
default: "normal",
|
||||||
|
close: () => resolve({ cancelled: true })
|
||||||
|
};
|
||||||
|
|
||||||
|
new Dialog(data, null).render(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function _processTaskCheckOptions(form) {
|
||||||
|
return {
|
||||||
|
difficulty: parseInt(form.difficulty?.value),
|
||||||
|
modifier: parseInt(form.modifier?.value),
|
||||||
|
useFortune: form.useFortune?.checked,
|
||||||
|
closedRoll: form.closedRoll?.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<form>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "midgard5.chat.taskCheck.options.modifier"}}</label>
|
||||||
|
<input type="text" name="modifier" value="{{modifier}}" />
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "midgard5.chat.taskCheck.options.closedRoll"}}</label>
|
||||||
|
<input type="checkbox" name="closedRoll" {{#if closedRoll}} checked {{/if}} />
|
||||||
|
</div>
|
||||||
|
{{#if hasFortune}}
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "midgard5.chat.taskCheck.options.useFortune"}}</label>
|
||||||
|
<input type="checkbox" name="useFortune" {{#if useFortune}} checked {{/if}} />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "midgard5.chat.taskCheck.options.difficulty"}}</label>
|
||||||
|
<input type="text" name="difficulty" value="{{difficulty}}" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
Loading…
Reference in New Issue