From 50e42d4ecf22b969dabee5913ac9745e08b58120 Mon Sep 17 00:00:00 2001 From: sladecraven Date: Sun, 13 Nov 2022 23:01:41 +0100 Subject: [PATCH] Divers fixes + fiches creatures --- assets/icons/contacts.webp | Bin 0 -> 10802 bytes assets/icons/ressources.webp | Bin 0 -> 11742 bytes modules/hawkmoon-actor-sheet.js | 13 +- modules/hawkmoon-actor.js | 26 ++- modules/hawkmoon-combat.js | 6 +- modules/hawkmoon-creature-sheet.js | 26 +++ modules/hawkmoon-item.js | 2 + modules/hawkmoon-main.js | 4 +- modules/hawkmoon-utility.js | 20 +- styles/simple.css | 16 +- system.json | 4 +- template.json | 18 +- templates/actor-sheet.html | 123 +++++----- templates/chat-degats-result.html | 6 +- templates/chat-generic-result.html | 35 ++- templates/creature-sheet.html | 357 +++++++++++++++++++++++++++++ templates/item-talent-sheet.html | 1 + 17 files changed, 552 insertions(+), 105 deletions(-) create mode 100644 assets/icons/contacts.webp create mode 100644 assets/icons/ressources.webp create mode 100644 modules/hawkmoon-creature-sheet.js create mode 100644 templates/creature-sheet.html diff --git a/assets/icons/contacts.webp b/assets/icons/contacts.webp new file mode 100644 index 0000000000000000000000000000000000000000..767d58527bb6d8607d151cceec1d0df5f77c423a GIT binary patch literal 10802 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 literal 0 HcmV?d00001 diff --git a/assets/icons/ressources.webp b/assets/icons/ressources.webp new file mode 100644 index 0000000000000000000000000000000000000000..b41d99d22ecde584d504005781cf7fb0679e64af GIT binary patch literal 11742 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 A?EnA( literal 0 HcmV?d00001 diff --git a/modules/hawkmoon-actor-sheet.js b/modules/hawkmoon-actor-sheet.js index 87828f0..0366273 100644 --- a/modules/hawkmoon-actor-sheet.js +++ b/modules/hawkmoon-actor-sheet.js @@ -20,7 +20,7 @@ export class HawkmoonActorSheet extends ActorSheet { tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }], dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], editScore: false - }); + }) } /* -------------------------------------------- */ @@ -48,6 +48,7 @@ export class HawkmoonActorSheet extends ActorSheet { combat: this.actor.getCombatValues(), equipements: duplicate(this.actor.getEquipments()), description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}), + habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}), options: this.options, owner: this.document.isOwner, editScore: this.options.editScore, @@ -120,13 +121,13 @@ export class HawkmoonActorSheet extends ActorSheet { } ); html.find('.roll-initiative').click((event) => { - this.actor.rollAttribut("pre", 1) + this.actor.rollAttribut("pre", true) }) html.find('.roll-attribut').click((event) => { const li = $(event.currentTarget).parents(".item") let attrKey = li.data("attr-key") - this.actor.rollAttribut(attrKey, 2) + this.actor.rollAttribut(attrKey, false) }) html.find('.roll-competence').click((event) => { const li = $(event.currentTarget).parents(".item") @@ -184,10 +185,4 @@ export class HawkmoonActorSheet extends ActorSheet { } } - /* -------------------------------------------- */ - /** @override */ - _updateObject(event, formData) { - // Update the Actor - return this.object.update(formData); - } } diff --git a/modules/hawkmoon-actor.js b/modules/hawkmoon-actor.js index 139aad1..0e19db9 100644 --- a/modules/hawkmoon-actor.js +++ b/modules/hawkmoon-actor.js @@ -291,6 +291,10 @@ export class HawkmoonActor extends Actor { return { isValid: false } } /* -------------------------------------------- */ + getVigueur() { + return this.system.sante.vigueur + } + /* -------------------------------------------- */ getBonneAventure() { return this.system.bonneaventure.actuelle } @@ -409,8 +413,9 @@ export class HawkmoonActor extends Actor { /* -------------------------------------------- */ getInitiativeScore() { - return Number(this.system.attributs.adr.value) + Number(this.system.combat.initbonus) + return this.lastInit || -1 } + /* -------------------------------------------- */ getBestDefenseValue() { let defenseList = this.items.filter(item => (item.type == "arme") && item.system.equipped) @@ -484,9 +489,10 @@ export class HawkmoonActor extends Actor { } /* -------------------------------------------- */ - async rollAttribut(attrKey, multiplier = 1) { + async rollAttribut(attrKey, isInit = false) { let rollData = this.getCommonRollData(attrKey) - rollData.multiplier = multiplier + rollData.multiplier = (isInit)? 1 : 2 + rollData.isInit = isInit let rollDialog = await HawkmoonRollDialog.create(this, rollData) rollDialog.render(true) } @@ -506,9 +512,6 @@ export class HawkmoonActor extends Actor { if (arme.type == "arme") { arme = this.prepareArme(arme) } - if (arme.type == "bouclier") { - arme = this.prepareBouclier(arme) - } let rollData = this.getCommonRollData(arme.system.attrKey, arme.system.competence._id) rollData.arme = arme console.log("ARME!", rollData) @@ -517,17 +520,18 @@ export class HawkmoonActor extends Actor { } /* -------------------------------------------- */ - async rollArmeDegats(armeId) { + async rollArmeDegats(armeId, targetVigueur = undefined) { let arme = this.items.get(armeId) if (arme.type == "arme") { arme = this.prepareArme(arme) } - if (arme.type == "bouclier") { - arme = this.prepareBouclier(arme) - } console.log("DEGATS", arme) let roll = new Roll( "1d10+"+arme.system.totalDegats).roll({ async: false }) await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode")); + let nbEtatPerdus = 0 + if (targetVigueur) { + nbEtatPerdus = Math.floor(roll.total / targetVigueur) + } let rollData = { arme: arme, finalResult: roll.total, @@ -535,6 +539,8 @@ export class HawkmoonActor extends Actor { actorImg: this.img, actorId: this.id, actionImg: arme.img, + targetVigueur: targetVigueur, + nbEtatPerdus: nbEtatPerdus } HawkmoonUtility.createChatWithRollMode(rollData.alias, { content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-degats-result.html`, rollData) diff --git a/modules/hawkmoon-combat.js b/modules/hawkmoon-combat.js index 5ec1a42..7ee1a97 100644 --- a/modules/hawkmoon-combat.js +++ b/modules/hawkmoon-combat.js @@ -9,11 +9,9 @@ export class HawkmoonCombat extends Combat { for (let cId = 0; cId < ids.length; cId++) { const c = this.combatants.get(ids[cId]); let id = c._id || c.id; - let initBonus = c.actor ? c.actor.getInitiativeScore() : 0 - let roll = new Roll("1d10 + "+initBonus).roll({ async: false}) - await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode")) + let initValue = c.actor ? c.actor.getInitiativeScore() : 0 //console.log("Init bonus", initBonus, roll.total) - await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: roll.total } ]); + await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]); } return this; diff --git a/modules/hawkmoon-creature-sheet.js b/modules/hawkmoon-creature-sheet.js new file mode 100644 index 0000000..fb27b59 --- /dev/null +++ b/modules/hawkmoon-creature-sheet.js @@ -0,0 +1,26 @@ +/** + * Extend the basic ActorSheet with some very simple modifications + * @extends {ActorSheet} + */ + + import { HawkmoonActorSheet } from "./hawkmoon-actor-sheet.js"; +import { HawkmoonUtility } from "./hawkmoon-utility.js"; +import { HawkmoonAutomation } from "./hawkmoon-automation.js"; + +/* -------------------------------------------- */ +export class HawkmoonCreatureSheet extends HawkmoonActorSheet { + + /** @override */ + static get defaultOptions() { + + return mergeObject(super.defaultOptions, { + classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"], + template: "systems/fvtt-hawkmoon-cyd/templates/creature-sheet.html", + width: 640, + height: 720, + tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }], + dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], + editScore: false + }) + } +} diff --git a/modules/hawkmoon-item.js b/modules/hawkmoon-item.js index cd580f8..b55a8fd 100644 --- a/modules/hawkmoon-item.js +++ b/modules/hawkmoon-item.js @@ -11,6 +11,8 @@ export const defaultItemImg = { historique: "systems/fvtt-hawkmoon-cyd/assets/icons/historique.webp", profil: "systems/fvtt-hawkmoon-cyd/assets/icons/profil.webp", artefact: "systems/fvtt-hawkmoon-cyd/assets/icons/artefact.webp", + contact: "systems/fvtt-hawkmoon-cyd/assets/icons/contacts.webp", + ressource: "systems/fvtt-hawkmoon-cyd/assets/icons/ressources.webp", } /** diff --git a/modules/hawkmoon-main.js b/modules/hawkmoon-main.js index 751d98d..53b6289 100644 --- a/modules/hawkmoon-main.js +++ b/modules/hawkmoon-main.js @@ -11,6 +11,7 @@ import { HawkmoonActor } from "./hawkmoon-actor.js"; import { HawkmoonItemSheet } from "./hawkmoon-item-sheet.js"; import { HawkmoonActorSheet } from "./hawkmoon-actor-sheet.js"; +import { HawkmoonCreatureSheet } from "./hawkmoon-creature-sheet.js"; import { HawkmoonCelluleSheet } from "./hawkmoon-cellule-sheet.js"; import { HawkmoonUtility } from "./hawkmoon-utility.js"; import { HawkmoonCombat } from "./hawkmoon-combat.js"; @@ -55,7 +56,8 @@ Hooks.once("init", async function () { // Register sheet application classes Actors.unregisterSheet("core", ActorSheet); Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true }) - Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: false }); + Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true }) + Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true }); Items.unregisterSheet("core", ItemSheet); Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true }) diff --git a/modules/hawkmoon-utility.js b/modules/hawkmoon-utility.js index e70c319..721ec90 100644 --- a/modules/hawkmoon-utility.js +++ b/modules/hawkmoon-utility.js @@ -132,6 +132,14 @@ export class HawkmoonUtility { rollData.competence = duplicate(actor.getCompetence(rollData.competence._id)) HawkmoonUtility.rollHawkmoon(rollData) }) + + html.on("click", '.roll-chat-degat', async event => { + let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget) + let message = game.messages.get(messageId) + let rollData = message.getFlag("world", "hawkmoon-roll") + let actor = game.actors.get(rollData.actorId) + actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur) + }) } /* -------------------------------------------- */ @@ -290,10 +298,9 @@ export class HawkmoonUtility { /* -------------------------------------------- */ static computeResult(rollData) { - if (rollData.mainDice == "1d20") { + rollData.diceResult = rollData.roll.terms[0].results[0].result + if (rollData.mainDice.includes("d20") ) { let diceValue = rollData.roll.terms[0].results[0].result - diceValue *= (rollData.doubleD20) ? 2 : 1 - //console.log("PAIR/IMP", diceValue) if (diceValue % 2 == 1) { //console.log("PAIR/IMP2", diceValue) rollData.finalResult -= rollData.roll.terms[0].results[0].result // Substract value @@ -310,6 +317,7 @@ export class HawkmoonUtility { rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10) rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10) } + } /* -------------------------------------------- */ @@ -372,6 +380,9 @@ export class HawkmoonUtility { rollData.finalResult = myRoll.total this.computeResult(rollData) + if (rollData.isInit) { + actor.lastInit = rollData.finalResult + } this.createChatWithRollMode(rollData.alias, { content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData) @@ -423,7 +434,7 @@ export class HawkmoonUtility { chatGM.whisper = this.getUsers(user => user.isGM); chatGM.content = "Blinde message of " + game.user.name + "
" + chatOptions.content; console.log("blindMessageToGM", chatGM); - game.socket.emit("system.fvtt-weapons-of-the-gods", { msg: "msg_gm_chat_message", data: chatGM }); + game.socket.emit("system.fvtt-hawkmoon-cyd", { msg: "msg_gm_chat_message", data: chatGM }); } /* -------------------------------------------- */ @@ -501,6 +512,7 @@ export class HawkmoonUtility { rollData.defenderTokenId = target.id let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor rollData.armeDefense = defender.getBestDefenseValue() + rollData.targetVigueur = defender.getVigueur() if ( rollData.armeDefense) { rollData.difficulte = rollData.armeDefense.system.totalDefensif } else { diff --git a/styles/simple.css b/styles/simple.css index e2d1056..7337f9d 100644 --- a/styles/simple.css +++ b/styles/simple.css @@ -401,8 +401,9 @@ table {border: 1px solid #7a7971;} .window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] { color: rgba(36, 37, 37, 0.75); - background: rgba(255, 255, 255, 0.05); - border: 0 none; + /*background: rgba(255, 255, 255, 0.05);*/ + border: 2px saddlebrown; + border-width: 2px; margin-bottom: 0.25rem; } @@ -420,6 +421,7 @@ section.sheet-body{padding: 0.25rem 0.5rem;} object-position: 50% 0; margin: 0.5rem 0 0.5rem 0.5rem; padding: 0; + border:0px; } .sheet nav.sheet-tabs { @@ -1373,4 +1375,14 @@ ul, li { .item-field { justify-content: flex-start; flex-grow: 1; +} +.chat-success { + font-size: 1.2rem; + font-weight: bold; + color: darkgreen; +} +.chat-failure { + font-size: 1.2rem; + font-weight: bold; + color: darkred; } \ No newline at end of file diff --git a/system.json b/system.json index 1a42ef8..e79efe8 100644 --- a/system.json +++ b/system.json @@ -1,7 +1,7 @@ { "id": "fvtt-hawkmoon-cyd", "description": "Hawmoon RPG for FoundryVTT (CYD system - French)", - "version": "10.0.16", + "version": "10.0.17", "authors": [ { "name": "Uberwald/LeRatierBretonnien", @@ -35,7 +35,7 @@ "gridUnits": "m", "license": "LICENSE.txt", "manifest": "https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/raw/branch/master/system.json", - "download": "https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/archive/fvtt-hawkmoon-cyd-10.0.16.zip", + "download": "https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/archive/fvtt-hawkmoon-cyd-10.0.17.zip", "packs": [ { "type": "Item", diff --git a/template.json b/template.json index 828eef7..9fb69b3 100644 --- a/template.json +++ b/template.json @@ -2,7 +2,8 @@ "Actor": { "types": [ "personnage", - "cellule" + "cellule", + "creature" ], "templates": { "biodata": { @@ -15,7 +16,7 @@ "sexe": "", "yeux": "", "description": "", - "amemultiplier": 2, + "habitat": "", "notes": "", "statut": "", "gmnotes": "" @@ -74,6 +75,9 @@ "rouge": 0, "noire": 0 }, + "vitesse": { + "value": 0 + }, "combat": { "initbonus": 0, "vitessebonus": 0, @@ -99,10 +103,14 @@ "members": [], "description": "" }, - "pnj": { + "creature": { "templates": [ - "npccore" - ] + "core", + "biodata" + ], + "ressources": { + "value": 0 + } } }, "Item": { diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 00caf71..1da5b2c 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -11,11 +11,6 @@
    -
  • -

    Profils

    -

    Historique

    -
  • -
  • Bonne Aventure

    @@ -76,28 +71,6 @@
  • {{/each}}
- - -
- -

Santé

  • @@ -120,6 +93,36 @@
+ +
+ +
+

Adversité

+
    + {{#each system.adversite as |adv key|}} +
  • + - +
    + +
    {{adv}}
    +
    + + +
     
    +
     
    +
     
    +
  • + {{/each}} +
+ +

Vitesse

+
    +
  • + +
  • +
+ +
@@ -284,10 +287,10 @@ {{#if arme.system.isdefense}} - + {{else}} - + {{/if}} @@ -375,50 +378,58 @@ {{!-- Biography Tab --}}
-
-
-
    -
  • - - + +
    +
      +
    • + + + +
      + + +
      +
    • + {{#each profils as |profil key|}} +
    • + + +
    • - {{#each profils as |profil key|}} -
    • - - -
      - - -
      -
    • - {{/each}} -
    -
    + {{/each}} +
+
+ +
  • -
  • -
  • +
+
+
+
  • -
  • -
@@ -427,17 +438,17 @@
  • -
  • -
  • -
  • @@ -447,7 +458,7 @@

    Description

    - {{editor description target="system.biosystem.description" button=true owner=owner editable=editable}} + {{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
    diff --git a/templates/chat-degats-result.html b/templates/chat-degats-result.html index 453b2c6..c375b20 100644 --- a/templates/chat-degats-result.html +++ b/templates/chat-degats-result.html @@ -20,7 +20,9 @@
    • Arme : {{arme.name}} (+{{arme.system.totalDegats}})
    • Dégats : {{finalResult}}
    • + {{#if targetVigueur}} +
    • Vigueur de la cible : {{targetVigueur}}
    • +
    • Etats de Combativité perdus : {{nbEtatPerdus}}
    • + {{/if}}
    - -
    \ No newline at end of file diff --git a/templates/chat-generic-result.html b/templates/chat-generic-result.html index 44913c0..ac9b02f 100644 --- a/templates/chat-generic-result.html +++ b/templates/chat-generic-result.html @@ -18,10 +18,10 @@
      -
    • Attribut : {{attr.label}}
    • +
    • Attribut : {{attr.label}} ({{attr.value}})
    • {{#if competence}} -
    • Compétence : {{competence.name}}
    • +
    • Compétence : {{competence.name}} ({{competence.system.niveau}})
    • {{/if}} {{#if selectedMaitrise}} @@ -34,35 +34,50 @@ {{/if}}
    • Formule : {{diceFormula}}
    • - +
    • Résultat du dé : {{diceResult}}
    • + {{#if bonusRoll}}
    • {{textBonus}} : +{{bonusRoll.total}}
    • {{/if}} - +
    • Total : {{finalResult}}
    • {{#if difficulte}} {{#if isSuccess}} -
    • Succés!!!
    • +
    • Succés!!!
    • {{else}} -
    • Echec ...
    • +
    • Echec ...
    • {{/if}} {{/if}} {{#if isHeroique}} -
    • Succés Héroïque!!!
    • +
    • Succés Héroïque!!!
    • {{/if}} {{#if isDramatique}} -
    • Echec Dramatique!!!
    • +
    • Echec Dramatique!!!
    • {{/if}} + {{#if isInit}} +
    • Initiative stockée !
    • + {{/if}} + + {{#if isSuccess}} + {{#if arme}} +
    • Votre adversaire perd 1 Etat de Combativité
    • + {{#if (not arme.system.onlevelonly)}} + + {{/if}} + {{/if}} + {{/if}} + + {{#each predilections as |pred key|}}
    • - +
    • {{/each}}
    -
    \ No newline at end of file diff --git a/templates/creature-sheet.html b/templates/creature-sheet.html new file mode 100644 index 0000000..75f2307 --- /dev/null +++ b/templates/creature-sheet.html @@ -0,0 +1,357 @@ +
    + + {{!-- Sheet Header --}} +
    +
    +
    + +
    +

    +
    + +
      + +
    • +

      Ressources

      + +
    • +
    +
    +
    +
    +
    + + {{!-- Sheet Tab Navigation --}} + + + {{!-- Sheet Body --}} +
    + + {{!-- Main Tab --}} +
    + +
    + +
    +
      + {{#each system.attributs as |attr key|}} +
    • + + {{attr.label}} + +
    • + {{/each}} +
    +

    Santé

    +
      +
    • + + +
    • +
    • + + +
    • +
    + +

    Combat

    +
      +
    • + +
    • +
    + +
    + +
    +

    Adversité

    +
      + {{#each system.adversite as |adv key|}} +
    • + - +
      + +
      {{adv}}
      +
      + + +
       
      +
       
      +
       
      +
    • + {{/each}} +
    + +

    Vitesse

    +
      +
    • + +
    • +
    + + +
    + +
    + +
    + + {{!-- Competence Tab --}} +
    + +
    + +
    +
      +
    • + +

      +
      + + + +
       
      +
    • + {{#each skills as |skill key|}} +
    • + + {{skill.name}} + + + {{#if (ne skill.system.attribut1 "none")}} + + {{/if}} + {{#if (ne skill.system.attribut2 "none")}} + + {{/if}} + {{#if (ne skill.system.attribut3 "none")}} + + {{/if}} + +
       
      +
      + + +
      +
    • + {{/each}} +
    +
    + +
    + +
    + + {{!-- Talents Tab --}} +
    + +
    + +
    +
      +
    • + +

      +
      + + + +
       
      +
    • + {{#each talents as |talent key|}} +
    • + + {{talent.name}} + {{talent.system.resumebonus}} + +
       
      +
      + + +
      +
    • + {{/each}} +
    +
    +
    + +
    +
    +
      +
    • + +

      +
      + + + +
       
      +
    • + {{#each talentsCell as |talent key|}} +
    • + + {{talent.name}} + {{talent.system.resumebonus}} +
       
      +
      + +
      +
    • + {{/each}} +
    +
    + +
    + +
    + + {{!-- Equipement Tab --}} +
    + +
    + +
    +
      +
    • + +

      +
      + + + + + + + + + +
       
      +
      + +
      +
    • + {{#each armes as |arme key|}} +
    • + + {{arme.name}} + + + {{#if arme.system.equipped}} + + {{else}} + + {{/if}} + + + {{#if arme.system.isdefense}} + + {{else}} + + {{/if}} + + + {{#if arme.system.equipped}} + + {{else}} + + {{/if}} + + +
       
      + +
    • + {{/each}} +
    +
    + +
    +
      +
    • + +

      +
      + + + +
       
      +
      + +
      +
    • + {{#each protections as |protection key|}} +
    • + + {{protection.name}} + + +
       
      +
      + + +
      +
    • + {{/each}} +
    +
    + +
    + +
    + + + {{!-- Biography Tab --}} +
    + + +

    Description

    +
    +
    + {{editor description target="system.biodata.description" button=true owner=owner editable=editable}} +
    + + +

    Habitat

    +
    +
    + {{editor habitat target="system.biodata.habitat" button=true owner=owner editable=editable}} +
    + +
    + +
    +
    \ No newline at end of file diff --git a/templates/item-talent-sheet.html b/templates/item-talent-sheet.html index d8600f0..c09e5bc 100644 --- a/templates/item-talent-sheet.html +++ b/templates/item-talent-sheet.html @@ -24,6 +24,7 @@ {{#select system.talenttype}} + {{/select}}
    -

    Adversité

    -
    -