This commit is contained in:
@@ -97,6 +97,32 @@ export class LesOubliesUtility {
|
||||
return [...documents].sort((left, right) => left.name.localeCompare(right.name, "fr"))
|
||||
}
|
||||
|
||||
static getWeaponBaseDamage(actor, weapon) {
|
||||
const sizeMode = String(weapon?.system?.sizeMode || "").toLowerCase()
|
||||
if (sizeMode === "variable") {
|
||||
const actorSize = Number(actor?.system?.size?.value ?? 0)
|
||||
const sizeModifier = Number(weapon?.system?.sizeModifier ?? 0)
|
||||
return Math.max(actorSize + sizeModifier, 0)
|
||||
}
|
||||
|
||||
const explicitValue = Number(weapon?.system?.sizeValue ?? 0)
|
||||
if (explicitValue > 0) return explicitValue
|
||||
|
||||
const damageText = String(weapon?.system?.damage || "")
|
||||
const match = damageText.match(/-?\d+/)
|
||||
return match ? Number(match[0]) : 0
|
||||
}
|
||||
|
||||
static formatWeaponDamage(actor, weapon) {
|
||||
const baseLabel = String(weapon?.system?.damage || "").trim()
|
||||
const baseDamage = this.getWeaponBaseDamage(actor, weapon)
|
||||
const sizeMode = String(weapon?.system?.sizeMode || "").toLowerCase()
|
||||
if (sizeMode === "variable" || /taille/i.test(baseLabel)) {
|
||||
return baseLabel ? `${baseLabel} (${baseDamage})` : String(baseDamage)
|
||||
}
|
||||
return baseLabel || String(baseDamage)
|
||||
}
|
||||
|
||||
static uniqueStrings(values = []) {
|
||||
return [...new Set((Array.isArray(values) ? values : [])
|
||||
.map((value) => String(value ?? "").trim())
|
||||
|
||||
Reference in New Issue
Block a user