add effects of low hp on rolls
This commit is contained in:
parent
df484039a5
commit
44500ad6d7
27
src/main.mjs
27
src/main.mjs
@ -505,6 +505,14 @@ class DSA41_CharacterDocument extends Actor {
|
|||||||
|
|
||||||
return actor;
|
return actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_hp_roll_modifier() {
|
||||||
|
if (this.system.lebenspunkte.aktuell < Math.round(this.system.computed.lebenspunkte.max / 4)) return 3;
|
||||||
|
if (this.system.lebenspunkte.aktuell < Math.round(this.system.computed.lebenspunkte.max / 3)) return 2;
|
||||||
|
if (this.system.lebenspunkte.aktuell < Math.round(this.system.computed.lebenspunkte.max / 2)) return 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DSA41_CharacterData extends TypeDataModel {
|
class DSA41_CharacterData extends TypeDataModel {
|
||||||
@ -1236,6 +1244,8 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
const item_id = event.target.closest("[data-item-id]")?.dataset.itemId;
|
const item_id = event.target.closest("[data-item-id]")?.dataset.itemId;
|
||||||
const item = this.document.items.get(item_id);
|
const item = this.document.items.get(item_id);
|
||||||
|
|
||||||
|
const hp_roll_modifier = this.document.get_hp_roll_modifier();
|
||||||
|
|
||||||
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
|
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
|
||||||
if (typeof success_value !== 'undefined') {
|
if (typeof success_value !== 'undefined') {
|
||||||
flavor += " <= " + success_value;
|
flavor += " <= " + success_value;
|
||||||
@ -1251,6 +1261,9 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
flavor += " <= " + (Number(success_value) + data.modifikator);
|
flavor += " <= " + (Number(success_value) + data.modifikator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hp_roll_modifier !== 0)
|
||||||
|
roll_formula = roll_formula + " + " + hp_roll_modifier;
|
||||||
|
|
||||||
let roll = new Roll(roll_formula, this.document.system);
|
let roll = new Roll(roll_formula, this.document.system);
|
||||||
roll.toMessage({
|
roll.toMessage({
|
||||||
speaker: ChatMessage.getSpeaker({ actor: this.document }),
|
speaker: ChatMessage.getSpeaker({ actor: this.document }),
|
||||||
@ -1275,6 +1288,9 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
|
|
||||||
const talentwert = item.system.talentwert - data.modifikator;
|
const talentwert = item.system.talentwert - data.modifikator;
|
||||||
const roll_modifier = talentwert < 0 ? -talentwert: 0;
|
const roll_modifier = talentwert < 0 ? -talentwert: 0;
|
||||||
|
|
||||||
|
if (hp_roll_modifier !== 0)
|
||||||
|
roll_modifier += hp_roll_modifier;
|
||||||
|
|
||||||
const roll1 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
const roll1 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
||||||
const roll2 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
const roll2 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
||||||
@ -1330,6 +1346,9 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
flavor += " <= " + (Number(success_value) + data.modifikator);
|
flavor += " <= " + (Number(success_value) + data.modifikator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hp_roll_modifier !== 0)
|
||||||
|
roll_formula = roll_formula + " + " + hp_roll_modifier;
|
||||||
|
|
||||||
let roll = new Roll(roll_formula, this.document.system);
|
let roll = new Roll(roll_formula, this.document.system);
|
||||||
roll.toMessage({
|
roll.toMessage({
|
||||||
speaker: ChatMessage.getSpeaker({ actor: this.document }),
|
speaker: ChatMessage.getSpeaker({ actor: this.document }),
|
||||||
@ -1353,6 +1372,9 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
|
let flavor = game.i18n.localize("DSA41.roll_types." + roll_type);
|
||||||
flavor += " <= " + (Number((data.crit == "on") ? item.parade_crit : item.parade) + data.modifikator);
|
flavor += " <= " + (Number((data.crit == "on") ? item.parade_crit : item.parade) + data.modifikator);
|
||||||
|
|
||||||
|
if (hp_roll_modifier !== 0)
|
||||||
|
roll_formula = roll_formula + " + " + hp_roll_modifier;
|
||||||
|
|
||||||
let roll = new Roll(roll_formula, this.document.system);
|
let roll = new Roll(roll_formula, this.document.system);
|
||||||
roll.toMessage({
|
roll.toMessage({
|
||||||
speaker: ChatMessage.getSpeaker({ actor: this.document }),
|
speaker: ChatMessage.getSpeaker({ actor: this.document }),
|
||||||
@ -1399,7 +1421,7 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
const groessen_modifikator = Math.max(data.ziel_groesse + data.deckung + data.ziel_bewegung, -2);
|
const groessen_modifikator = Math.max(data.ziel_groesse + data.deckung + data.ziel_bewegung, -2);
|
||||||
const andere_modifikator = data.entfernung + data.wind + data.modifikator;
|
const andere_modifikator = data.entfernung + data.wind + data.modifikator;
|
||||||
|
|
||||||
const total_modifikator = groessen_modifikator + andere_modifikator;
|
const total_modifikator = groessen_modifikator + andere_modifikator + hp_roll_modifier;
|
||||||
|
|
||||||
let roll = new Roll(roll_formula + " + " + total_modifikator, this.document.system);
|
let roll = new Roll(roll_formula + " + " + total_modifikator, this.document.system);
|
||||||
roll.toMessage({
|
roll.toMessage({
|
||||||
@ -1447,6 +1469,9 @@ class DSA41_ActorSheet extends DSA41_ApplicationMixin(ActorSheetV2) {
|
|||||||
const zauberfertigkeitswert = item.system.zauberfertigkeitswert - data.modifikator - data.magieresistenz;
|
const zauberfertigkeitswert = item.system.zauberfertigkeitswert - data.modifikator - data.magieresistenz;
|
||||||
const roll_modifier = zauberfertigkeitswert < 0 ? -zauberfertigkeitswert: 0;
|
const roll_modifier = zauberfertigkeitswert < 0 ? -zauberfertigkeitswert: 0;
|
||||||
|
|
||||||
|
if (hp_roll_modifier !== 0)
|
||||||
|
roll_modifier += hp_roll_modifier;
|
||||||
|
|
||||||
const roll1 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
const roll1 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
||||||
const roll2 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
const roll2 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
||||||
const roll3 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
const roll3 = (await new Roll("1d20").evaluate()).total + roll_modifier;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user