Fixes for damages + vehicle/ship ehancements
All checks were successful
Release Creation / build (release) Successful in 1m21s

This commit is contained in:
2025-10-13 23:21:13 +02:00
parent 2578ea4dc1
commit 0874507025
24 changed files with 256 additions and 124 deletions

View File

@@ -62,10 +62,14 @@ export default class FTLNomadRoll extends Roll {
static updateFullFormula(options) {
let fullFormula
let mod = options.rollItem?.value || 0
fullFormula = `${options.formula} + ${options.skillModifier}D + ${mod} + ${options.rangeModifier}D + ${options.numericModifier}D`
if (options.rollType === "damage") {
fullFormula = `${options.formula} + ${options.skillModifier}D6 `
} else {
let mod = options.rollItem?.value || 0
fullFormula = `${options.formula} + ${options.skillModifier}D + ${mod} + ${options.rangeModifier}D + ${options.numericModifier}D`
}
// Replace all the "+ -" with "-"
fullFormula = fullFormula.replace(/\+\s*-/g, "- ")
fullFormula = fullFormula.replace(/\+\s*\-/g, "- ")
$('#roll-dialog-full-formula').text(fullFormula)
options.fullFormula = fullFormula
}
@@ -229,17 +233,18 @@ export default class FTLNomadRoll extends Roll {
// Replace the D6 by the correct number of D6
damageFormula = damageFormula.replace(/(\d*)d6/gi, (match, p1) => {
let numDice = Number(p1) || 1
numDice += Math.abs(options.skillModifier)
return `${numDice}d6`
numDice += Number(options.skillModifier)
//numDice += options?.finalModifier || 0
return `${numDice}d6 + ${mod}`
})
diceFormula = damageFormula
} else {
diceFormula = `${2 + Math.abs(options.finalModifier)}D6`
}
if (options.finalModifier > 0) {
diceFormula += `kh2 + ${mod}`
} else {
diceFormula += `kl2 + ${mod}`
if (options.finalModifier > 0) {
diceFormula += `kh2 + ${mod}`
} else {
diceFormula += `kl2 + ${mod}`
}
}
console.log("FTLNomadRoll | Rolling ", diceFormula, options, rollData)

View File

@@ -15,9 +15,10 @@ export default class FTLNomadStarship extends foundry.abstract.TypeDataModel {
schema.cargo = new fields.StringField({ required: true, initial: "" })
schema.guns = new fields.StringField({ required: true, initial: "1d6" })
schema.travelMultiplier = new fields.StringField({ required: true, initial: "" })
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
schema.monthlyCost = new fields.NumberField({ required: true, initial: 0, min: 0 })
schema.cost = new fields.StringField({ required: true, initial: "0" })
schema.monthlyCost = new fields.StringField({ required: true, initial: "0" })
schema.damages = new fields.StringField({ required: true, initial: "" })
schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial: "lateatomic" })
schema.description = new fields.HTMLField({ required: true, textSearch: true })
schema.modifications = new fields.HTMLField({ required: true, textSearch: true })

View File

@@ -14,11 +14,11 @@ export default class FTLNomadVehicle extends foundry.abstract.TypeDataModel {
schema.force = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
schema.range = new fields.StringField({ required: true, initial: "1d6" })
schema.speed = new fields.StringField({ required: true, initial: "1d6" })
schema.techAge = new fields.StringField({ required: true, initial: "1d6" })
schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial: "lateatomic" })
schema.tonnage = new fields.StringField({ required: true, initial: "" })
schema.damages = new fields.StringField({ required: true, initial: "" })
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
schema.cost = new fields.StringField({ required: true, initial: "0" })
schema.description = new fields.HTMLField({ required: true, textSearch: true })
schema.notes = new fields.HTMLField({ required: true, textSearch: true })

View File

@@ -8,14 +8,14 @@ export default class FTLNomadWeapon extends foundry.abstract.TypeDataModel {
schema.description = new fields.HTMLField({ required: true, textSearch: true })
schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial : "lateatomic" })
schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial: "lateatomic" })
schema.weaponType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_TYPES })
schema.rangeType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_RANGE })
schema.damage = new fields.StringField({required: true, initial: "1d6"})
schema.damage = new fields.StringField({ required: true, initial: "1d6" })
schema.magazine = new fields.NumberField({ required: true, initial: 1, min: 0 })
schema.range = new fields.SchemaField({
schema.range = new fields.SchemaField({
close: new fields.NumberField({ ...requiredInteger, initial: 0 }),
near: new fields.NumberField({ ...requiredInteger, initial: 0 }),
far: new fields.NumberField({ ...requiredInteger, initial: 0 }),
@@ -23,7 +23,7 @@ export default class FTLNomadWeapon extends foundry.abstract.TypeDataModel {
})
schema.enc = new fields.NumberField({ required: true, initial: 1, min: 0 })
schema.aspect = new fields.StringField({ required: true, initial: ""})
schema.aspect = new fields.StringField({ required: true, initial: "" })
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
schema.ammoCost = new fields.NumberField({ required: true, initial: 0, min: 0 })