Weapons update

This commit is contained in:
2025-02-03 21:35:42 +01:00
parent cd8ff83184
commit 0763bf58ca
30 changed files with 145 additions and 89 deletions

View File

@ -110,10 +110,10 @@ export default class LethalFantasyCharacter extends foundry.abstract.TypeDataMod
schema.biodata = new fields.SchemaField({
class: new fields.StringField({ required: true, initial: "untrained", choices: SYSTEM.CHAR_CLASSES }),
level: new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 }),
mortal: new fields.StringField({ required: true, nullable: false, initial: "" }),
mortal: new fields.StringField({ required: true, initial: "mankind", choices: SYSTEM.MORTAL_CHOICES }),
alignment: new fields.StringField({ required: true, nullable: false, initial: "" }),
age: new fields.NumberField({ ...requiredInteger, initial: 15, min: 6 }),
height: new fields.NumberField({ ...requiredInteger, initial: 170, min: 50 }),
height: new fields.NumberField({ ...requiredInteger, initial: 170, min: 10 }),
weight: new fields.StringField({ required: true, nullable: false, initial: "" }),
eyes: new fields.StringField({ required: true, nullable: false, initial: "" }),
hair: new fields.StringField({ required: true, nullable: false, initial: "" }),
@ -148,7 +148,9 @@ export default class LethalFantasyCharacter extends foundry.abstract.TypeDataMod
})
schema.combat = new fields.SchemaField({
attackModifier: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
rangedAttackModifier: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
defenseModifier: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
defenseBonus: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
damageModifier: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
armorHitPoints: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
})
@ -216,8 +218,14 @@ export default class LethalFantasyCharacter extends foundry.abstract.TypeDataMod
let chaDef = SYSTEM.CHARACTERISTICS_TABLES[chaKey].find(s => s.value === this.characteristics[chaKey].value)
this.combat.attackModifier += chaDef.attack
}
this.combat.rangedAttackModifier = 0
for (let chaKey of SYSTEM.CHARACTERISTIC_RANGED_ATTACK) {
let chaDef = SYSTEM.CHARACTERISTICS_TABLES[chaKey].find(s => s.value === this.characteristics[chaKey].value)
this.combat.rangedAttackModifier += chaDef.attack
}
this.combat.defenseModifier = 0
this.combat.defenseBonus = SYSTEM.MORTAL_CHOICES[this.biodata.mortal]?.defenseBonus || 0
this.combat.defenseModifier = this.combat.defenseBonus
for (let chaKey of SYSTEM.CHARACTERISTIC_DEFENSE) {
let chaDef = SYSTEM.CHARACTERISTICS_TABLES[chaKey].find(s => s.value === this.characteristics[chaKey].value)
this.combat.defenseModifier += chaDef.defense

View File

@ -19,8 +19,11 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
damageS: new fields.StringField({required: true, initial: ""}),
damageM: new fields.StringField({required: true, initial: ""})
})
schema.applyStrengthDamageBonus = new fields.BooleanField({ required: true, initial: true })
schema.hands = new fields.StringField({ required: true, initial: "1", choices: {"1": "1", "2": "2"} })
schema.isAgile = new fields.BooleanField({ required: true, initial: false })
schema.defenseMax = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
schema.secondsToAttack = new fields.StringField({required: true, initial: ""})
schema.combatProgressionDice = new fields.StringField({required: true, initial: "d4", choices: SYSTEM.COMBAT_PROGRESSION_DICE})
@ -41,6 +44,12 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
outOfSkill: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
})
schema.bonuses = new fields.SchemaField({
attackBonus: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
damageBonus: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
defenseBonus: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
})
schema.encLoad = new fields.NumberField({ required: true, initial: 0, min: 0 })
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })