diff --git a/css/vermine2047.css b/css/vermine2047.css index 2bfa3ee..e6f53fd 100644 --- a/css/vermine2047.css +++ b/css/vermine2047.css @@ -80,10 +80,20 @@ ul.unstyled li { .system-vermine2047 .dialog .window-content { background: url(/systems/vermine2047/assets/images/ui/fond_chat_box.webp); - padding: 0; + padding: 0.5rem; overflow-y: hidden; } +.window-content .row.smb { + margin-bottom:0.25rem; +} +.window-content .row.mdb { + margin-bottom:0.5rem; +} +.window-content .row.lgb { + margin-bottom:1rem; +} + .actor.sheet form .form { display: grid; /*grid: diff --git a/module/sheets/character-sheet.mjs b/module/sheets/character-sheet.mjs index 759b1ff..6c7befb 100644 --- a/module/sheets/character-sheet.mjs +++ b/module/sheets/character-sheet.mjs @@ -218,14 +218,26 @@ export class VermineCharacterSheet extends VermineActorSheet { // Handle rolls that supply the formula directly. if (dataset.label) { + dataset.rollType = dataset.type; /*const label = game.i18n.localize(dataset.label) ? `[ability] ${game.i18n.localize(dataset.label)}` : ''; console.log($(element).attr('for')); const NoD = this.actor.system.skills[$(element).attr('for').split('.')[2]]?.value || 0 return game.vermine2047.VermineRoll.roll(this.actor.id, label, NoD, 0, {});*/ let data = { actorId: this.actor.id, + abilities: this.actor.system.abilities, + skills: this.actor.system.skills, + rollType: dataset.rollType, + labelKey: dataset.label, + abilityScore: 0, + skillScore: 0, label: game.i18n.localize(dataset.label) }; + if (dataset.type == 'ability'){ + data.abilityScore = this.actor.system.abilities[dataset.label].value; + } else if (dataset.type == 'skill'){ + data.skillScore = this.actor.system.skills[dataset.label].value; + } getRollBox(data); return true; } diff --git a/module/system/config.mjs b/module/system/config.mjs index 7301ab8..595079e 100644 --- a/module/system/config.mjs +++ b/module/system/config.mjs @@ -22,20 +22,6 @@ VERMINE.DifficultyLevels = { 5:{ "label":"DIFFICULTY_LEVELS.impossible", "difficulty":10} }, -VERMINE.Instincts = { - 1:{ "key":"architect"}, - 2:{ "key":"sword"}, - 3:{ "key":"flail"}, - 4:{ "key":"man"}, - 5:{ "key":"keeper"}, - 6:{ "key":"hand"}, - 7:{ "key":"mask"}, - 8:{ "key":"void"}, - 9:{ "key":"bone"}, - 0:{ "key":"traveller"} -} - - VERMINE.abilityCategories = { "physical": { "label":"VERMINE.ability_category.physical" diff --git a/module/system/dialogs.mjs b/module/system/dialogs.mjs index da330c9..e9a6d06 100644 --- a/module/system/dialogs.mjs +++ b/module/system/dialogs.mjs @@ -58,6 +58,7 @@ // difficulty data.difficulty = (formData.difficulty != undefined) ? formData.difficulty : 7; // maîtrise bonus + // TODO : utiliser la configuration des niveaux de compétences plutôt if (formData.skill > 0 && formData.skill < 3){ NoD += 1; } else if (formData.skill > 2 && formData.skill < 5){ @@ -95,17 +96,25 @@ label: game.i18n.localize('Close'), callback: () => { } } - }, + }, render: function (h) { - h.find("#skills-radio input").change(function () { - let s = $(this).attr("data-skill"); - h.find(".trait-list .hidden").removeClass("show"); - let f = h.find(".trait-list ." + s); - f.addClass("show"); - if (f.length == 0) { - h.find(".use-trait input").attr("disabled", "disabled").prop("checked", false); - } else - h.find(".use-trait input").attr("disabled", null); + h.find('select[name="skill"]').change((event) => { + if (data.rollType == 'skill' && event.target.value != undefined){ + const skillScore = data.skills[event.target.value].value; + // on enregistre la valeur de la compétence + h.find('input[name="skillScore"]').val(skillScore); + // on met à jour les infos de niveaux de compétence + const skillLevel = CONFIG.VERMINE.SkillLevels[skillScore]; + if (skillLevel != undefined){ + h.find('#skillLevel').text(game.i18n.localize(skillLevel.label)); + h.find('#skillDicePool').text(skillLevel.dicePool); + h.find('#skillReroll').text(skillLevel.reroll); + } else { + h.find('#skillLevel').text('Inconnu'); + h.find('#skillDicePool').text(0); + h.find('#skillReroll').text(0); + } + } }); } }); diff --git a/module/system/handlebars-manager.mjs b/module/system/handlebars-manager.mjs index a9ab99a..6c191d6 100644 --- a/module/system/handlebars-manager.mjs +++ b/module/system/handlebars-manager.mjs @@ -50,8 +50,12 @@ export const registerHandlebarsHelpers = function () { Handlebars.registerHelper('skillLevel', function (property, level, options) { if (level < 1 || level > 5) return ""; - let levelData = CONFIG.VERMINE.SkillLevels[level]; - return (levelData !== undefined) ? levelData[property] : ""; + let levelData = CONFIG.VERMINE.SkillLevels[level]; + if (property == 'label'){ + return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; + } else { + return (levelData !== undefined) ? levelData[property] : ""; + } }); // return diff level information diff --git a/templates/actor/parts/character-features.hbs b/templates/actor/parts/character-features.hbs index 657bb89..8940c1c 100644 --- a/templates/actor/parts/character-features.hbs +++ b/templates/actor/parts/character-features.hbs @@ -7,8 +7,8 @@ {{#each @root.system.abilities as |ability key|}} {{#if (eq ability.category ackey) }}