BHR Implementation
Implemented BHR calculation on Character Sheet, and added ability to click on it to roll.master
parent
60705b3d9c
commit
393c40a030
|
@ -42,6 +42,7 @@
|
||||||
"ACKS.roll.reaction": "Reaction roll",
|
"ACKS.roll.reaction": "Reaction roll",
|
||||||
"ACKS.roll.initiative": "Group {group} rolls for Initiative!",
|
"ACKS.roll.initiative": "Group {group} rolls for Initiative!",
|
||||||
"ACKS.roll.individualInit": "{name} rolls for Initiative!",
|
"ACKS.roll.individualInit": "{name} rolls for Initiative!",
|
||||||
|
"ACKS.roll.bhr": "Healing roll",
|
||||||
|
|
||||||
"ACKS.table.treasure.roll": "Roll Treasure",
|
"ACKS.table.treasure.roll": "Roll Treasure",
|
||||||
|
|
||||||
|
@ -136,6 +137,8 @@
|
||||||
"ACKS.AttacksShort": "ATT",
|
"ACKS.AttacksShort": "ATT",
|
||||||
"ACKS.Damage": "Damage",
|
"ACKS.Damage": "Damage",
|
||||||
"ACKS.Spellcaster": "Spellcaster",
|
"ACKS.Spellcaster": "Spellcaster",
|
||||||
|
"ACKS.BHR": "Base Healing Rate",
|
||||||
|
"ACKS.BHRShort": "BHR",
|
||||||
|
|
||||||
"ACKS.Language": "Language",
|
"ACKS.Language": "Language",
|
||||||
"ACKS.SpokenLanguages": "Spoken Languages",
|
"ACKS.SpokenLanguages": "Spoken Languages",
|
||||||
|
|
|
@ -185,6 +185,11 @@ export class AcksActorSheet extends ActorSheet {
|
||||||
actorObject.rollHitDice({ event: event });
|
actorObject.rollHitDice({ event: event });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
html.find(".bhr .attribute-name a").click((ev) => {
|
||||||
|
let actorObject = this.actor;
|
||||||
|
actorObject.rollBHR({ event: event });
|
||||||
|
});
|
||||||
|
|
||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ export class AcksActor extends Actor {
|
||||||
this.computeAC();
|
this.computeAC();
|
||||||
this.computeEncumbrance();
|
this.computeEncumbrance();
|
||||||
this.computeTreasure();
|
this.computeTreasure();
|
||||||
|
this.computeBHR();
|
||||||
|
|
||||||
// Determine Initiative
|
// Determine Initiative
|
||||||
if (game.settings.get("acks", "initiative") != "group") {
|
if (game.settings.get("acks", "initiative") != "group") {
|
||||||
|
@ -291,7 +292,33 @@ export class AcksActor extends Actor {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Roll and return
|
// Roll and return
|
||||||
|
return AcksDice.Roll({
|
||||||
|
event: options.event,
|
||||||
|
parts: rollParts,
|
||||||
|
data: data,
|
||||||
|
skipDialog: true,
|
||||||
|
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||||
|
flavor: label,
|
||||||
|
title: label,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
rollBHR(options = {}) {
|
||||||
|
const label = game.i18n.localize(`ACKS.roll.bhr`);
|
||||||
|
const rollParts = [this.data.data.hp.bhr];
|
||||||
|
if (this.data.type == "character") {
|
||||||
|
rollParts.push();
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = {
|
||||||
|
actor: this.data,
|
||||||
|
roll: {
|
||||||
|
type: "Healing",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Roll and return
|
||||||
return AcksDice.Roll({
|
return AcksDice.Roll({
|
||||||
event: options.event,
|
event: options.event,
|
||||||
parts: rollParts,
|
parts: rollParts,
|
||||||
|
@ -759,5 +786,35 @@ export class AcksActor extends Actor {
|
||||||
spoken,
|
spoken,
|
||||||
data.scores.int.value
|
data.scores.int.value
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
computeBHR() {
|
||||||
|
if (this.data.type != "character") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const data = this.data.data;
|
||||||
|
|
||||||
|
const bhrcalc = {
|
||||||
|
0: "1d2",
|
||||||
|
4: "1d3",
|
||||||
|
10: "1d4",
|
||||||
|
17: "1d6",
|
||||||
|
24: "1d8",
|
||||||
|
30: "1d10",
|
||||||
|
37: "2d6",
|
||||||
|
50: "2d8",
|
||||||
|
64: "2d10",
|
||||||
|
77: "2d12",
|
||||||
|
90: "3d10",
|
||||||
|
111: "4d10",
|
||||||
|
141: "5d10",
|
||||||
|
171: "6d10",
|
||||||
|
200: "7d10",
|
||||||
|
};
|
||||||
|
data.hp.bhr = AcksActor._valueFromTable(
|
||||||
|
bhrcalc,
|
||||||
|
data.hp.max
|
||||||
|
);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,6 +108,15 @@
|
||||||
data-dtype="String" />
|
data-dtype="String" />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="attribute bhr">
|
||||||
|
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.BHR' }}">
|
||||||
|
<a>{{ localize "ACKS.BHRShort" }}</a>
|
||||||
|
</h4>
|
||||||
|
<div class="attribute-value"
|
||||||
|
title="Calculated from {{data.hp.max}} HP">
|
||||||
|
{{data.hp.bhr}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
{{#if config.initiative}}
|
{{#if config.initiative}}
|
||||||
<li class="attribute">
|
<li class="attribute">
|
||||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}">
|
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}">
|
||||||
|
|
Loading…
Reference in New Issue