This commit is contained in:
@@ -84,12 +84,18 @@ export default class HellbornRoll extends Roll {
|
||||
static async prompt(options = {}) {
|
||||
let formula = `3D6 + 0D6KH - 0D6KH + ${options?.rollItem?.value}`
|
||||
|
||||
let actor = game.actors.get(options.actorId)
|
||||
switch (options.rollType) {
|
||||
case "stat":
|
||||
break
|
||||
case "damage":
|
||||
{
|
||||
let formula = options.rollItem.system.damage
|
||||
if (options.rollItem.system.damageStat !== "none") {
|
||||
let statKey = options.rollItem.system.damageStat.toLowerCase()
|
||||
let statValue = actor.system.stats[statKey].value
|
||||
formula = `${formula} + ${statValue}`
|
||||
}
|
||||
let damageRoll = new Roll(formula)
|
||||
await damageRoll.evaluate()
|
||||
await damageRoll.toMessage({
|
||||
@@ -99,14 +105,8 @@ export default class HellbornRoll extends Roll {
|
||||
}
|
||||
case "weapon":
|
||||
{
|
||||
let actor = game.actors.get(options.actorId)
|
||||
options.weapon = foundry.utils.duplicate(options.rollItem)
|
||||
let statKey = "skin"
|
||||
if (options.weapon.system.weaponType === "melee") {
|
||||
if ( options.weapon.system.properties.toLowerCase().match("heavy") || options.weapon.system.properties.toLowerCase().match("oversized")) {
|
||||
statKey = "flesh"
|
||||
}
|
||||
}
|
||||
let statKey = options.weapon.system.stat.toLowerCase()
|
||||
options.rollItem = actor.system.stats[statKey]
|
||||
}
|
||||
break
|
||||
@@ -224,16 +224,16 @@ export default class HellbornRoll extends Roll {
|
||||
this.options.fiendishFailure = false
|
||||
this.options.rollData = foundry.utils.duplicate(rollData)
|
||||
if (resultType === "success") {
|
||||
let nb6 = roll.terms[0].results.filter(r => r.result === 6).length
|
||||
nb6 += roll.terms[3].total === 6 ? 1 : 0
|
||||
let nb6 = roll.terms[0].results.filter(r => r.result >= 4).length
|
||||
nb6 += roll.terms[2].total <= 4 ? 1 : 0
|
||||
this.options.satanicSuccess = nb6 >= 3
|
||||
if (this.options.satanicSuccess) {
|
||||
resultType = "success"
|
||||
}
|
||||
}
|
||||
if (resultType === "failure") {
|
||||
let nb1 = roll.terms[0].results.filter(r => r.result === 1).length
|
||||
nb1 += roll.terms[5].total === 1 ? 1 : 0
|
||||
let nb1 = roll.terms[0].results.filter(r => r.result <= 3).length
|
||||
nb1 += roll.terms[4].total <= 3 ? 1 : 0
|
||||
this.options.fiendishFailure = nb1 >= 3
|
||||
if (this.options.fiendishFailure) {
|
||||
resultType = "failure"
|
||||
@@ -242,6 +242,9 @@ export default class HellbornRoll extends Roll {
|
||||
this.options.resultType = resultType
|
||||
this.options.isSuccess = resultType === "success"
|
||||
this.options.isFailure = resultType === "failure"
|
||||
this.options.results = roll.terms[0].results
|
||||
this.options.advantageResult = roll.terms[2].total
|
||||
this.options.disadvantageResult = roll.terms[4].total
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user