fix(reliability): corrections suite au review
- min: 0 sur reliability (l'update à 0 était clippé à 1 par le schéma — l'état 'détruit' était inatteignable) - réparation de fortune (règles p. 39) : +1D si le personnage possède la Compétence requise, sinon Handicap de Rareté de cette Compétence (rarity du skill de l'acteur) ; select toujours visible (compétence requise) et pré-rempli depuis needSkill/skill de l'item - dés marqués 'dommage' uniquement pour les Dommages réellement comptés (Étanche/Coque absorbe → dés non marqués) - destruction : damages.value réel conservé (difficulté de réparation honnête au lieu de 5 forcé) - états de panne localisés (VERMINE.damages_state_N), aussi dans panneState() - ReliabilityDialog invoqué via .create() (convention du codebase)
This commit is contained in:
@@ -50,6 +50,8 @@ export default class ReliabilityDialog extends HandlebarsApplicationMixin(foundr
|
||||
async _prepareContext() {
|
||||
const hasEtanche = !!this.#item.system?.traits?.etanche;
|
||||
const hasActor = !!this.#item.actor;
|
||||
const storedSkill = (this.#item.system?.needSkill?.value && this.#item.system?.needSkill?.skill)
|
||||
|| this.#item.system?.skill || '';
|
||||
const severities = ['mineurs', 'graves', 'critiques'].map((key) => ({
|
||||
key,
|
||||
label: game.i18n.localize(`VERMINE.reliability_severity_${key}`),
|
||||
@@ -58,6 +60,7 @@ export default class ReliabilityDialog extends HandlebarsApplicationMixin(foundr
|
||||
const skills = VermineReliability.REPAIR_SKILLS.map((key) => ({
|
||||
key,
|
||||
label: game.i18n.localize(`SKILLS.${key}.name`),
|
||||
selected: key === storedSkill && VermineReliability.REPAIR_SKILLS.includes(storedSkill),
|
||||
}));
|
||||
return {
|
||||
mode: this.#mode,
|
||||
@@ -70,20 +73,6 @@ export default class ReliabilityDialog extends HandlebarsApplicationMixin(foundr
|
||||
};
|
||||
}
|
||||
|
||||
_onRender(context, options) {
|
||||
super._onRender(context, options);
|
||||
if (this.#mode !== 'repair') return;
|
||||
const select = this.element.querySelector('#reliability-skill');
|
||||
const radios = this.element.querySelectorAll('input[name="repairMode"]');
|
||||
if (!select || !radios.length) return;
|
||||
const refresh = () => {
|
||||
const fortune = this.element.querySelector('input[name="repairMode"]:checked')?.value === 'fortune';
|
||||
select.closest('.form-group')?.classList.toggle('hidden', fortune);
|
||||
};
|
||||
radios.forEach((r) => r.addEventListener('change', refresh));
|
||||
refresh();
|
||||
}
|
||||
|
||||
#getOptions() {
|
||||
const el = this.element;
|
||||
if (this.#mode === 'test') {
|
||||
|
||||
Reference in New Issue
Block a user