From 4d447c9783ce2a5698201c5d0054bbe01736e5ee Mon Sep 17 00:00:00 2001 From: LeRatierBretonnien Date: Wed, 21 Dec 2022 19:15:03 +0100 Subject: [PATCH] Enhance creatures --- modules/hawkmoon-actor.js | 8 ++++++-- modules/hawkmoon-utility.js | 2 +- packs/competences-creatures.db | 8 ++++++++ styles/simple.css | 24 +++++++++++++++++------- system.json | 13 +++++++++++-- templates/actor-sheet.html | 8 ++++---- templates/creature-sheet.html | 15 ++++----------- templates/item-arme-sheet.html | 2 +- 8 files changed, 52 insertions(+), 28 deletions(-) create mode 100644 packs/competences-creatures.db diff --git a/modules/hawkmoon-actor.js b/modules/hawkmoon-actor.js index cabcf0b..a59b770 100644 --- a/modules/hawkmoon-actor.js +++ b/modules/hawkmoon-actor.js @@ -41,7 +41,11 @@ export class HawkmoonActor extends Actor { const skills = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon-cyd.skills") data.items = skills.map(i => i.toObject()) } - if (data.type == 'pnj') { + if (data.type == 'creature') { + const skills = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon-cyd.skills-creatures") + data.items = skills.map(i => i.toObject()) + data.items.push( { name: "Arme naturelle 1", type: 'arme', img: "systems/fvtt-hawkmoon-cyd/assets/icons/melee.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0"} } ) + data.items.push( { name: "Arme naturelle 2", type: 'arme', img: "systems/fvtt-hawkmoon-cyd/assets/icons/melee.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0"} } ) } return super.create(data, options); @@ -67,7 +71,7 @@ export class HawkmoonActor extends Actor { let combat = this.getCombatValues() if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") { let bonusDefense = this.getBonusDefenseFromTalents() - arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée")) + arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée") ) arme.system.attrKey = "pui" arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff diff --git a/modules/hawkmoon-utility.js b/modules/hawkmoon-utility.js index f170822..a989e76 100644 --- a/modules/hawkmoon-utility.js +++ b/modules/hawkmoon-utility.js @@ -430,7 +430,7 @@ export class HawkmoonUtility { /* -------------------------------------------- */ static getUsers(filter) { - return game.users.filter(filter).map(user => user.data._id); + return game.users.filter(filter).map(user => user._id); } /* -------------------------------------------- */ diff --git a/packs/competences-creatures.db b/packs/competences-creatures.db new file mode 100644 index 0000000..473d0fc --- /dev/null +++ b/packs/competences-creatures.db @@ -0,0 +1,8 @@ +{"name":"Mêlée","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Mêlée représente la maîtrise martiale et l’habileté au combat rapproché, avec ou sans arme. Plus cette Compétence est élevée, plus le personnage est à même de passer la garde de ses adversaires en combat au corps-à-corps.

","niveau":0,"attribut1":"pui","attribut2":"none","attribut3":"none","doublebonus":false,"predilections":[{"name":"Armes à une main (Puissance)","used":false,"description":"Pour utiliser des armes comme l’épée courte, la hache, une arme improvisée à une main, etc.\n\n"},{"name":"Armes à deux mains (Puissance)","used":false,"description":"Pour utiliser des armes comme la hache nordaine ou l’épée arthurienne, une arme improvisée à deux mains, etc."},{"name":"Mains nues (Puissance)","used":false,"description":"Pour se battre à mains nues, qu’il s’agisse d’une bagarre ou d’un pugilat codifié."}],"predilections[0]":["Nouvelle prédilection",""]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.VM3TSQYxseYdCFjv"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666620807186,"modifiedTime":1671645643952,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"0nhTxujlIUB63Aqt"} +{"name":"Discrétion","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Discrétion représente la capacité à ne pas se faire remarquer, qu’il s’agisse de se fondre dans la foule, de prendre l'apparence de quelqu’un d’autre, de se cacher dans l’ombre ou encore de se déplacer en silence. Plus cette Compétence est élevée, plus le personnage est apte à passer
physiquement inaperçu.

","niveau":0,"attribut1":"adr","attribut2":"tre","attribut3":"none","doublebonus":false,"predilections":[{"name":"Cacher et se cacher (Trempe)","used":false,"description":"Pour se fondre dans le décor. Le personnage adopte un comportement décontracté qui le fait passer inaperçu, il trouve une cachette, etc. Permet également de dissimuler un objet sur soi (qu’il s’agisse d’une bourse, d’une arme, d’un tatouage, etc.).\n\n"},{"name":"Déguisement (Trempe)","used":false,"description":"Pour dissimuler son identité, altérer ses traits ou prendre ceux d'une personne spécifique."},{"name":"Déplacement silencieux (Adresse)","used":false,"description":"Pour se déplacer sans éveiller l’attention lorsqu’on ne peut être vu (dans l’obscurité ou à couvert, lorsqu’un garde est derrière une porte ou un angle\nde mur, etc.)."}]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.gBmAdYl4rhbY89ee"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666620807186,"modifiedTime":1671645638028,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"J4x6SP6l6njOrZn3"} +{"name":"Armes à distance","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Représente l’habileté au lancer ou avec une arme à distance. Plus cette Compétence est élevée, plus les tirs du personnage sont précis. 

\n

 

\n

 

\n

 

","niveau":0,"attribut1":"adr","attribut2":"none","attribut3":"none","doublebonus":false,"predilections":[{"name":"Armes à feu (Adresse) ","used":false,"description":"Pour des armes comme le lance-feu. "},{"name":"Armes à projectile (Adresse)","used":false,"description":"Pour des armes comme l'arc, la fronde, l'arbalète, etc."},{"name":"Armes de jet (Adresse)","used":false,"description":"Pour des armes comme la dague de lancer, la bombe à mèche, le javelot, les projectiles improvisés, etc. "}],"predilections[0]":["Nouvelle prédilection",""],"predilections[1]":["Nouvelle prédilection",""],"predilections[2]":["Nouvelle prédilection",""]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.MLMlscPBb1ZCPTRl"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666619959067,"modifiedTime":1671645649970,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"UfVYwmPFwy2T7jZM"} +{"name":"Survie","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Survie représente la capacité à trouver de quoi subsister dans la nature, à établir un campement, à faire du feu avec les moyens du bord, à se repérer. Avec Clairvoyance, cette Compétence permet de trouver des baies comestibles, de poser tous les types de pièges, de pister, de trouver le meilleur emplacement pour un campement. Avec Adresse, elle permet de chasser, de pêcher, de faire du feu dans des conditions difficiles et de confectionner les pièges les plus simples (collets, fosses, etc.).

\n

Les Prédilections représentent quant à elles les différents milieux ou climats.

","niveau":0,"attribut1":"adr","attribut2":"cla","attribut3":"none","doublebonus":false,"predilections":[{"name":"Fleuve, Forêt, Hiver, Mer, Montagne, Souterrains, etc. (Adresse ou Clairvoyance)","used":false,"description":"En fonction de chaque milieu, la Prédilection permet d’y évoluer de la façon la plus adaptée."}],"predilections[0]":["Nouvelle prédilection",""],"predilections[1]":["Nouvelle prédilection",""],"predilections[2]":["Nouvelle prédilection",""],"predilections[3]":["Nouvelle prédilection",""],"predilections[4]":["Nouvelle prédilection",""],"predilections[5]":["Nouvelle prédilection",""],"predilections[6]":["Nouvelle prédilection",""],"predilections[7]":["Nouvelle prédilection",""],"predilections[8]":["Nouvelle prédilection",""],"predilections[9]":["Nouvelle prédilection",""],"predilections[10]":["Nouvelle prédilection",""],"predilections[11]":["Nouvelle prédilection",""]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.yI1zY5k8mAdx9wHK"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666620807186,"modifiedTime":1671645647913,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"Vpth0atT9qS6VqUB"} +{"name":"Perception","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Perception représente à la fois la conscience de son environnement, la capacité à remarquer les détails incongrus, et l’aptitude à lire le langage corporel. Plus cette Compétence est élevée, plus les sens du personnage sont affûtés.

","niveau":0,"attribut1":"cla","attribut2":"none","attribut3":"none","doublebonus":false,"predilections":[{"name":"Empathie (Clairvoyance)","used":false,"description":"Pour déchiffrer, par son attitude ou ses gestes, l’opinion ou la sincérité d’un interlocuteur, pour deviner les choses exprimées à mots couverts, pour comprendre quelqu’un qui s’exprime par signes."},{"name":"Recherche (Clairvoyance)","used":false,"description":"Pour remarquer les détails les plus infimes, pour trouver un objet ou un passage dissimulés."},{"name":"Vigilance (Clairvoyance) ","used":false,"description":"Pour détecter un personnage ou un animal qui se cache, pour remarquer une menace potentielle (piège, terrain dangereux, tireur embusqué), pour rester attentif lors d’un tour de garde."}],"predilections[0]":["Nouvelle prédilection",""],"predilections[1]":["Nouvelle prédilection",""],"predilections[2]":["Nouvelle prédilection",""],"predilections[3]":["Nouvelle prédilection",""],"predilections[4]":["Nouvelle prédilection",""],"predilections[5]":["Nouvelle prédilection",""]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.7p2MTjttE4fllp9e"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666620807186,"modifiedTime":1671645646434,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"cunjmZoXNhSX5qdV"} +{"name":"Coercition","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Coercition représente la capacité de forcer quelqu’un à agir contre son gré, à révéler des secrets ou à obéir aveuglément. Plus cette Compétence est élevée, plus le personnage sait se montrer intimidant et jouer sur l’autorité qu’il inspire pour briser la volonté de ses interlocuteurs.

","niveau":0,"attribut1":"pre","attribut2":"none","attribut3":"none","doublebonus":false,"predilections":[{"name":"Commandement (Présence) ","used":false,"description":"Pour donner des ordres auxquels on obéira sans poser de question. "},{"name":"Interrogatoire (Présence)","used":false,"description":"Pour forcer quelqu'un à révéler des informations, que ce soit par la torture ou à l'aide de techniques de manipulation plus subtiles. "},{"name":"Intimidation (Présence)","used":false,"description":"Pour faire peur, pour convaincre quelqu'un de renoncer à se battre, pour donner l'impression d'être dangereux. "}]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.15IDGG6JoZnRCQtY"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666620317429,"modifiedTime":1671645635525,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"lchi2ulzWdm8j1l7"} +{"name":"Nage","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Nage représente la vitesse (Adresse), mais aussi l’endurance du nageur (Puissance). La natation est une Compétence assez rare dans le monde de Hawkmoon. Un personnage qui n’a plus pied et ne sait pas nager commence à se noyer au bout d’un tour de jeu (soit six secondes). Reportez-vous à la règle de noyade p. 214.

\n

 

\n

Prédilections/Maîtrises

\n","niveau":0,"attribut1":"adr","attribut2":"pui","attribut3":"none","doublebonus":false,"predilections":[],"predilections[0]":["Nouvelle prédilection",""],"predilections[1]":["Nouvelle prédilection",""],"predilections[2]":["Nouvelle prédilection",""],"predilections[3]":["Nouvelle prédilection",""]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.Dw7q0dGCoaBy1Smu"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666620807186,"modifiedTime":1671645639961,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"pyeEZFo46NTnV8WK"} +{"name":"Mouvements","type":"competence","img":"systems/fvtt-hawkmoon-cyd/assets/icons/competence.webp","system":{"description":"

Mouvements indique la capacité du personnage à se déplacer rapidement et longtemps. Cette Compétence représente aussi bien la souplesse et la vivacité des gestes que l’endurance physique et la résistance à l’effort. Plus cette Compétence est élevée, plus le personnage est en forme et peut courir, grimper ou sauter longtemps et rapidement sans se fatiguer.

","niveau":0,"attribut1":"adr","attribut2":"pui","attribut3":"none","doublebonus":false,"predilections":[{"name":"Acrobaties (Adresse)","used":true,"description":"Pour faire des figures acrobatiques, sauter en hauteur ou en longueur, jongler, ou encore pour rattraper un objet fragile sans l’abîmer (ou un ustensile dangereux sans se blesser).\n\n"},{"name":"Course (Puissance)","used":false,"description":"Pour sprinter ou pour tenir la distance dans une course d’endurance."},{"name":"Escalade (Puissance) ","used":false,"description":"Pour escalader murs, arbres, etc. Sert également à avancer en étant suspendu à une corde horizontale."}],"predilections[0]":["Nouvelle prédilection",""],"predilections[1]":["Nouvelle prédilection",""],"predilections[2]":["Nouvelle prédilection",""]},"effects":[],"ownership":{"default":0,"8b7NkRYwYKm5eOMy":3,"wYQCdPQVeRKBJmZI":3},"flags":{"core":{"sourceId":"Compendium.fvtt-hawkmoon-cyd.skills.bP7pPSCekexUEf7m"}},"_stats":{"systemId":"fvtt-hawkmoon-cyd","systemVersion":"10.1.7","coreVersion":"10.291","createdTime":1666620807186,"modifiedTime":1671645642114,"lastModifiedBy":"wYQCdPQVeRKBJmZI"},"folder":null,"sort":0,"_id":"tFU5yISK6spdNWco"} diff --git a/styles/simple.css b/styles/simple.css index 0911d16..414963a 100644 --- a/styles/simple.css +++ b/styles/simple.css @@ -1209,12 +1209,10 @@ ul, li { text-shadow: 0px 1px 0px #4d3534; position: relative; max-height:1.7rem; - margin-left:4px; flex-grow:1; - max-width: 4rem; - min-width: 4rem; + max-width: 3.5rem; + min-width: 3.5rem; } - .button-sheet-roll:hover { background: linear-gradient(to bottom, #800000 5%, #3e0101 100%); background-color: rgb(56, 33, 33); @@ -1224,6 +1222,21 @@ ul, li { top:1px; } +.defense-sheet { + border-radius: 4px; + text-align: center; + display: inline-block; + font-size: 0.8rem; + padding: 1px 1px 0px 1px; + text-decoration: none; + position: relative; + max-height:1.7rem; + margin-left:4px; + flex-grow:1; + max-width: 3.5rem; + min-width: 3.5rem; +} + .plus-minus-button { box-shadow: inset 0px 1px 0px 0px #a6827e; background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); @@ -1315,13 +1328,10 @@ ul, li { /*************************************************************/ .arme-defensif { padding-top: 7px; - padding-left: 4px; - margin-left: 4px; text-align: center; flex-grow: 2; } - /*************************************************************/ .item-name-img { flex-grow:1; diff --git a/system.json b/system.json index 46f17ac..74aa9b3 100644 --- a/system.json +++ b/system.json @@ -1,7 +1,7 @@ { "id": "fvtt-hawkmoon-cyd", "description": "Hawkmoon RPG for FoundryVTT (CYD system - French)", - "version": "10.1.7", + "version": "10.1.8", "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.1.7.zip", + "download": "https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/archive/fvtt-hawkmoon-cyd-10.1.8.zip", "languages": [ { "lang": "fr", @@ -54,6 +54,15 @@ "private": false, "flags": {} }, + { + "type": "Item", + "label": "Compétences de Créatures", + "name": "skills-creatures", + "path": "packs/competences-creatures.db", + "system": "fvtt-hawkmoon-cyd", + "private": false, + "flags": {} + }, { "type": "Item", "label": "Historiques", diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 56fea86..33953d7 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -275,11 +275,11 @@ {{#if arme.system.isdefense}} + class="arme-defensif item-field-label-short defense-sheet">{{arme.system.totalDefensif}} {{else}} - - {{/if}} + + {{/if}} {{#if arme.system.equipped}} diff --git a/templates/creature-sheet.html b/templates/creature-sheet.html index c3031c1..4c9c150 100644 --- a/templates/creature-sheet.html +++ b/templates/creature-sheet.html @@ -104,14 +104,6 @@ {{/each}} -

Vitesse

- - @@ -277,10 +269,11 @@
{{#if arme.system.isdefense}} - + {{else}} - + {{/if}} diff --git a/templates/item-arme-sheet.html b/templates/item-arme-sheet.html index b34fbe2..2765ad5 100644 --- a/templates/item-arme-sheet.html +++ b/templates/item-arme-sheet.html @@ -42,7 +42,7 @@
  • + value="{{system.degats}}" data-dtype="String" />
  • {{/if}}