feat(magic): reorder schools, fix Wu Xing aspect & power formula
- `magicOrder` ArrayField + ▲/▼ buttons for manual reordering
- Magic rolls use school's aspect for Wu Xing, not speciality's element
- Spell power: `difficulty × (aspectValue + freePowerLevels)` (not `successes × diff`)
- Prompt replaces `aspectspeciality`/`bonusmalusspeciality`/`heispend` with `freepowerlevels`
fix: code review issues
- combat.js: guard undefined `ids` in rollInitiative
- rolling.js: catch Dice So Nice promise, normalize French→English kungfu aspects
- weapon/armor/ingredient: `{ min: 0 }` on quantity
- character.js/npc.js: catch rollForActor fire-and-forget promises
- roll-actions.js/tinji-app.js: await ChatMessage.create
- sanhei.js: null guard on properties
- spell.js/kungfu.js: fix aspect name comments (French→English)
This commit is contained in:
@@ -25,7 +25,7 @@ export default class ArmorDataModel extends foundry.abstract.TypeDataModel {
|
||||
domain: stringField(""),
|
||||
obtainLevel: intField(0, { min: 0, max: 5 }),
|
||||
obtainDifficulty: intField(0, { min: 0, max: 3 }),
|
||||
quantity: intField(1),
|
||||
quantity: intField(1, { min: 0 }),
|
||||
notes: htmlField(""),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ export default class IngredientDataModel extends foundry.abstract.TypeDataModel
|
||||
school: stringField("all"),
|
||||
obtainLevel: intField(0, { min: 0, max: 5 }),
|
||||
obtainDifficulty: intField(0, { min: 0, max: 3 }),
|
||||
quantity: intField(1),
|
||||
quantity: intField(1, { min: 0 }),
|
||||
notes: htmlField(""),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ export default class KungfuDataModel extends foundry.abstract.TypeDataModel {
|
||||
reference: stringField(""),
|
||||
description: htmlField(""),
|
||||
orientation: stringField("yin"), // yin | yang | yinyang
|
||||
aspect: stringField("metal"), // metal | eau | terre | feu | bois
|
||||
aspect: stringField("metal"), // metal | water | earth | fire | wood
|
||||
skill: stringField("kungfu"), // kungfu | rangedcombat
|
||||
speciality: stringField(""),
|
||||
style: stringField(""),
|
||||
|
||||
@@ -21,7 +21,7 @@ export default class SpellDataModel extends foundry.abstract.TypeDataModel {
|
||||
reference: stringField(""),
|
||||
description: htmlField(""),
|
||||
specialityname: stringField(""),
|
||||
associatedelement: stringField("metal"), // metal | eau | terre | feu | bois
|
||||
associatedelement: stringField("metal"), // metal | water | earth | fire | wood
|
||||
hei: stringField(""),
|
||||
realizationtimeritual: stringField(""),
|
||||
realizationtimeaccelerated: stringField(""),
|
||||
|
||||
@@ -30,7 +30,7 @@ export default class WeaponDataModel extends foundry.abstract.TypeDataModel {
|
||||
range: stringField("contact"), // contact | courte | mediane | longue | extreme
|
||||
obtainLevel: intField(0, { min: 0, max: 5 }),
|
||||
obtainDifficulty: intField(0, { min: 0, max: 3 }),
|
||||
quantity: intField(1),
|
||||
quantity: intField(1, { min: 0 }),
|
||||
notes: htmlField(""),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user