Compare commits
No commits in common. "912a8dde88138280b736be4cf1b18014680593ac" and "099d1c5d165b6c93d0c379f1c34a836231001714" have entirely different histories.
912a8dde88
...
099d1c5d16
|
|
@ -524,6 +524,8 @@ export class CharacterSheet extends ActorSheet {
|
|||
rollMode: game.settings.get('core', 'rollMode'),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,10 +83,7 @@ export class GroupSheet extends ActorSheet {
|
|||
|
||||
context.fields = [];
|
||||
|
||||
const hiddenFields = Object.entries(groupData.system.settings)
|
||||
.sort(([key, value], [otherKey, otherValue]) => key.localeCompare(otherKey))
|
||||
.filter(([key, value]) => value === true)
|
||||
.map(([key, value]) => key)
|
||||
const hiddenFields = Object.entries(groupData.system.settings).filter(([key, value]) => value === true).map(([key, value]) => key)
|
||||
|
||||
context.fields = {}
|
||||
context.fields["head"] = {}
|
||||
|
|
@ -101,6 +98,7 @@ export class GroupSheet extends ActorSheet {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
for (const characterId of groupData.system.characters) {
|
||||
const character = await game.actors.get(characterId)
|
||||
|
||||
|
|
@ -117,19 +115,7 @@ export class GroupSheet extends ActorSheet {
|
|||
if (!context.fields[n]) {
|
||||
context.fields[n] = {}
|
||||
}
|
||||
const eigenschaften = Object.values(skill.system.probe);
|
||||
context.fields[n][character.name] = {
|
||||
taw: skill.system.taw,
|
||||
eigenschaft1: eigenschaften[0],
|
||||
eigenschaft2: eigenschaften[1],
|
||||
eigenschaft3: eigenschaften[2],
|
||||
rollEigenschaft1: character.system.attribute[eigenschaften[0].toLowerCase()].aktuell,
|
||||
rollEigenschaft2: character.system.attribute[eigenschaften[1].toLowerCase()].aktuell,
|
||||
rollEigenschaft3: character.system.attribute[eigenschaften[2].toLowerCase()].aktuell,
|
||||
name: skill.name,
|
||||
actor: character._id,
|
||||
}
|
||||
?? 0
|
||||
context.fields[n][character.name] = skill.system.taw ?? 0 // TODO: Allow GM roll
|
||||
})
|
||||
|
||||
context.fields.head[character.name] =
|
||||
|
|
@ -167,9 +153,6 @@ export class GroupSheet extends ActorSheet {
|
|||
}
|
||||
})
|
||||
|
||||
context.settings = Object.fromEntries(Object.entries(groupData.system.settings)
|
||||
.sort(([key, value], [otherKey, otherValue]) => key.localeCompare(otherKey)))
|
||||
|
||||
return await context;
|
||||
}
|
||||
|
||||
|
|
@ -177,70 +160,6 @@ export class GroupSheet extends ActorSheet {
|
|||
this.object.items.get(documentId).sheet.render(true)
|
||||
}
|
||||
|
||||
|
||||
_evaluateRoll(rolledDice, {
|
||||
taw,
|
||||
lowerThreshold = 1,
|
||||
upperThreshold = 20,
|
||||
countToMeisterlich = 3,
|
||||
countToPatzer = 3,
|
||||
werte = []
|
||||
}) {
|
||||
let tap = taw;
|
||||
let meisterlichCounter = 0;
|
||||
let patzerCounter = 0;
|
||||
let failCounter = 0;
|
||||
|
||||
rolledDice.forEach((rolledDie, index) => {
|
||||
if (tap < 0 && rolledDie.result > werte[index]) {
|
||||
tap -= rolledDie.result - werte[index];
|
||||
if (tap < 0) { // konnte nicht vollständig ausgeglichen werden
|
||||
failCounter++;
|
||||
}
|
||||
} else if (rolledDie.result > werte[index]) { // taw ist bereits aufgebraucht und wert kann nicht ausgeglichen werden
|
||||
tap -= rolledDie.result - werte[index];
|
||||
failCounter++;
|
||||
}
|
||||
if (rolledDie.result <= lowerThreshold) meisterlichCounter++;
|
||||
if (rolledDie.result > upperThreshold) patzerCounter++;
|
||||
})
|
||||
|
||||
return {
|
||||
tap,
|
||||
meisterlich: meisterlichCounter === countToMeisterlich,
|
||||
patzer: patzerCounter === countToPatzer,
|
||||
}
|
||||
}
|
||||
|
||||
async _onTalentRoll(event) {
|
||||
event.preventDefault();
|
||||
const dataset = event.currentTarget.dataset;
|
||||
const actor = await game.actors.get(dataset.actorId);
|
||||
console.log(dataset, actor)
|
||||
if (dataset.rolleigenschaft1) {
|
||||
let roll1 = new Roll("3d20", actor.getRollData());
|
||||
|
||||
let evaluated1 = (await roll1.evaluate())
|
||||
|
||||
const dsaDieRollEvaluated = this._evaluateRoll(evaluated1.terms[0].results, {
|
||||
taw: dataset.taw,
|
||||
werte: [dataset.rolleigenschaft1, dataset.rolleigenschaft2, dataset.rolleigenschaft3],
|
||||
})
|
||||
|
||||
if (dsaDieRollEvaluated.tap >= 0) { // erfolg
|
||||
evaluated1.toMessage({
|
||||
speaker: ChatMessage.getSpeaker({actor: actor}),
|
||||
flavor: ` ${dsaDieRollEvaluated.meisterlich ? 'Meisterlich geschafft' : 'Geschafft'} mit ${dsaDieRollEvaluated.tap} Punkten übrig`,
|
||||
}, {rollMode: "gmroll"})
|
||||
} else { // misserfolg
|
||||
evaluated1.toMessage({
|
||||
speaker: ChatMessage.getSpeaker({actor: actor}),
|
||||
flavor: ` ${dsaDieRollEvaluated.meisterlich ? 'Gepatzt' : ''} mit ${Math.abs(dsaDieRollEvaluated.tap)} Punkten daneben`,
|
||||
}, {rollMode: "gmroll"})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
|
|
@ -271,11 +190,6 @@ export class GroupSheet extends ActorSheet {
|
|||
evt.stopPropagation();
|
||||
})
|
||||
|
||||
html.on('click', ".rollable", (evt) => {
|
||||
this._onTalentRoll(evt)
|
||||
evt.stopPropagation()
|
||||
})
|
||||
|
||||
new ContextMenu(html, '.equipment', [
|
||||
{
|
||||
name: "Aus dem Gruppeninventar entfernen",
|
||||
|
|
|
|||
|
|
@ -56,10 +56,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.rollable:hover {
|
||||
text-shadow: 0 0 10px rgb(255 0 0);
|
||||
}
|
||||
|
||||
.character {
|
||||
|
||||
width: 192px;
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Charakter</th>
|
||||
{{#each this.fields.head}}
|
||||
<th>
|
||||
<div class="character">
|
||||
|
|
@ -75,22 +75,7 @@
|
|||
{{#if (eq this "-")}}
|
||||
|
||||
{{else}}
|
||||
{{#if this.taw}}
|
||||
<div class="rollable" data-actor-id="{{this.actor}}"
|
||||
data-taw="{{this.taw}}"
|
||||
data-name="{{this.name}}"
|
||||
data-eigenschaft1="{{this.eigenschaft1}}"
|
||||
data-eigenschaft2="{{this.eigenschaft2}}"
|
||||
data-eigenschaft3="{{this.eigenschaft3}}"
|
||||
data-rollEigenschaft1="{{this.rollEigenschaft1}}"
|
||||
data-rollEigenschaft2="{{this.rollEigenschaft2}}"
|
||||
data-rollEigenschaft3="{{this.rollEigenschaft3}}">
|
||||
{{this.taw}} ({{this.eigenschaft1}}, {{this.eigenschaft2}}
|
||||
, {{this.eigenschaft3}})
|
||||
</div>
|
||||
{{else}}
|
||||
Ja
|
||||
{{/if}}
|
||||
{{this}}
|
||||
{{/if}}
|
||||
</td>
|
||||
{{/each}}
|
||||
|
|
@ -108,7 +93,7 @@
|
|||
</div>
|
||||
{{#if owner}}
|
||||
<div class="tab settings" data-group="primary" data-tab="settings">
|
||||
{{#each settings}}
|
||||
{{#each actor.system.settings}}
|
||||
<div>
|
||||
<label><input name="system.settings.{{@key}}" type="checkbox" {{checked this}}> {{@key}}</label>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<div class="block rollable {{this.type}} {{this.gruppe}}" data-id="{{this.id}}" data-taw="{{this.taw}}"
|
||||
data-name="{{this.name}}" data-eigenschaft1="{{this.eigenschaft1}}" data-eigenschaft2="{{this.eigenschaft2}}"
|
||||
data-eigenschaft3="{{this.eigenschaft3}}" data-rollEigenschaft1="{{this.rollEigenschaft1}}"
|
||||
data-eigenschaft3="{{this.eigenschaft3}}" data-taw="{{this.taw}}" data-rollEigenschaft1="{{this.rollEigenschaft1}}"
|
||||
data-rollEigenschaft2="{{this.rollEigenschaft2}}" data-rollEigenschaft3="{{this.rollEigenschaft3}}">
|
||||
|
||||
<div class="die">
|
||||
|
|
|
|||
Loading…
Reference in New Issue