FIX: Roll Mode
parent
82a6a2508a
commit
b253bea1c7
|
@ -4,7 +4,7 @@ export class OseDice {
|
|||
isSuccess: false,
|
||||
isFailure: false,
|
||||
target: data.rollData.target,
|
||||
total: roll.total
|
||||
total: roll.total,
|
||||
};
|
||||
|
||||
let die = roll.parts[0].total;
|
||||
|
@ -58,7 +58,6 @@ export class OseDice {
|
|||
speaker: speaker,
|
||||
};
|
||||
|
||||
|
||||
let templateData = {
|
||||
title: title,
|
||||
flavor: flavor,
|
||||
|
@ -74,13 +73,14 @@ export class OseDice {
|
|||
// Convert the roll to a chat message and return the roll
|
||||
let rollMode = game.settings.get("core", "rollMode");
|
||||
rollMode = form ? form.rollMode.value : rollMode;
|
||||
|
||||
|
||||
// Force blind roll (ability formulas)
|
||||
if (data.rollData.blindroll) {
|
||||
rollMode = "blindroll";
|
||||
}
|
||||
|
||||
if (["gmroll", "blindroll"].includes(rollMode)) chatData["whisper"] = ChatMessage.getWhisperRecipients("GM");
|
||||
if (["gmroll", "blindroll"].includes(rollMode))
|
||||
chatData["whisper"] = ChatMessage.getWhisperRecipients("GM");
|
||||
if (rollMode === "selfroll") chatData["whisper"] = [game.user._id];
|
||||
if (rollMode === "blindroll") chatData["blind"] = true;
|
||||
|
||||
|
@ -120,21 +120,28 @@ export class OseDice {
|
|||
isSuccess: false,
|
||||
isFailure: false,
|
||||
target: "",
|
||||
total: roll.total
|
||||
total: roll.total,
|
||||
};
|
||||
result.target = data.rollData.thac0;
|
||||
if (game.settings.get("ose", "ascendingAC")) {
|
||||
result.details = game.i18n.format('OSE.messages.AttackAscendingSuccess', {result: roll.total});
|
||||
result.details = game.i18n.format("OSE.messages.AttackAscendingSuccess", {
|
||||
result: roll.total,
|
||||
});
|
||||
result.isSuccess = true;
|
||||
} else {
|
||||
// B/X Historic THAC0 Calculation
|
||||
if (result.target - roll.total > 9) {
|
||||
result.details = game.i18n.format('OSE.messages.AttackFailure', {bonus: result.target});
|
||||
result.details = game.i18n.format("OSE.messages.AttackFailure", {
|
||||
bonus: result.target,
|
||||
});
|
||||
return result;
|
||||
}
|
||||
result.isSuccess = true;
|
||||
let value = Math.clamped(result.target - roll.total, -3, 9);
|
||||
result.details = game.i18n.format('OSE.messages.AttackSuccess', {result: value, bonus: result.target});
|
||||
result.details = game.i18n.format("OSE.messages.AttackSuccess", {
|
||||
result: value,
|
||||
bonus: result.target,
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -170,8 +177,9 @@ export class OseDice {
|
|||
// Convert the roll to a chat message and return the roll
|
||||
let rollMode = game.settings.get("core", "rollMode");
|
||||
rollMode = form ? form.rollMode.value : rollMode;
|
||||
|
||||
if (["gmroll", "blindroll"].includes(rollMode)) chatData["whisper"] = ChatMessage.getWhisperRecipients("GM");
|
||||
|
||||
if (["gmroll", "blindroll"].includes(rollMode))
|
||||
chatData["whisper"] = ChatMessage.getWhisperRecipients("GM");
|
||||
if (rollMode === "selfroll") chatData["whisper"] = [game.user._id];
|
||||
if (rollMode === "blindroll") chatData["blind"] = true;
|
||||
|
||||
|
@ -198,17 +206,17 @@ export class OseDice {
|
|||
if (templateData.result.isSuccess) {
|
||||
templateData.result.dmg = dmgRoll.total;
|
||||
game.dice3d
|
||||
.showForRoll(
|
||||
dmgRoll,
|
||||
game.user,
|
||||
true,
|
||||
chatData.whisper,
|
||||
chatData.blind
|
||||
)
|
||||
.then(() => {
|
||||
ChatMessage.create(chatData);
|
||||
resolve();
|
||||
});
|
||||
.showForRoll(
|
||||
dmgRoll,
|
||||
game.user,
|
||||
true,
|
||||
chatData.whisper,
|
||||
chatData.blind
|
||||
)
|
||||
.then(() => {
|
||||
ChatMessage.create(chatData);
|
||||
resolve();
|
||||
});
|
||||
} else {
|
||||
ChatMessage.create(chatData);
|
||||
resolve();
|
||||
|
@ -242,7 +250,7 @@ export class OseDice {
|
|||
let dialogData = {
|
||||
formula: parts.join(" "),
|
||||
data: data,
|
||||
rollMode: game.settings.get('core', 'rollMode'),
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
rollModes: CONFIG.Dice.rollModes,
|
||||
};
|
||||
|
||||
|
@ -251,7 +259,7 @@ export class OseDice {
|
|||
data: data,
|
||||
title: title,
|
||||
flavor: flavor,
|
||||
speaker: speaker
|
||||
speaker: speaker,
|
||||
};
|
||||
if (skipDialog) {
|
||||
return data.rollData.type === "attack"
|
||||
|
|
|
@ -262,9 +262,9 @@ export class OseItem extends Item {
|
|||
};
|
||||
|
||||
// Toggle default roll mode
|
||||
let rollMode = game.settings.get("core", "rollMode");
|
||||
if (["gmroll", "blindroll"].includes(rollMode))
|
||||
chatData["whisper"] = ChatMessage.getWhisperRecipients("GM");
|
||||
if (rollMode === "selfroll") chatData["whisper"] = [game.user._id];
|
||||
if (rollMode === "blindroll") chatData["blind"] = true;
|
||||
|
||||
// Create the chat message
|
||||
|
|
|
@ -79,5 +79,15 @@ async function rollTreasure(table, options = {}) {
|
|||
"systems/ose/templates/chat/roll-treasure.html",
|
||||
templateData
|
||||
);
|
||||
ChatMessage.create({ content: html, sound: "/systems/ose/assets/coins.mp3" });
|
||||
|
||||
let chatData = {
|
||||
content: html,
|
||||
sound: "/systems/ose/assets/coins.mp3"
|
||||
}
|
||||
|
||||
if (["gmroll", "blindroll"].includes(rollMode)) chatData["whisper"] = ChatMessage.getWhisperRecipients("GM");
|
||||
if (rollMode === "selfroll") chatData["whisper"] = [game.user._id];
|
||||
if (rollMode === "blindroll") chatData["blind"] = true;
|
||||
|
||||
ChatMessage.create(chatData);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue