From 39f5e65e483f75410aa83f0f83cb86ba032b7e8b Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sun, 12 Feb 2023 20:41:23 +0100 Subject: [PATCH] feat: outils en tant que liste --- public/jdr/cartomancia.json | 4 ++- public/jdr/core.json | 4 ++- public/jdr/effets-mains/base.json | 9 ++++++ public/jdr/effets-mains/magique.json | 8 +++++ public/jdr/effets-mains/tech.json | 6 ++++ public/jdr/erratum.json | 3 +- public/jdr/mains/arcs.json | 6 ++++ public/jdr/mains/baguette.json | 9 ++++++ public/jdr/mains/base.json | 17 ++++++++++ public/jdr/mains/medieval-cac.json | 11 +++++++ public/jdr/mains/medieval-feu.json | 3 ++ public/jdr/mains/moderne.json | 8 +++++ public/jdr/mains/outil-moderne.json | 3 ++ public/jdr/sonata.json | 4 ++- public/pelican.json | 2 +- public/rules/inventaire/mains-effets.md | 3 ++ public/rules/inventaire/mains.md | 19 +++++++++++ src/data/fields.ts | 17 +++++++++- src/router/index.ts | 5 +++ src/types/JdrConfig.ts | 2 ++ src/views/EquipView.vue | 42 +++++++++++++++++++++++++ 21 files changed, 179 insertions(+), 6 deletions(-) create mode 100644 public/jdr/effets-mains/base.json create mode 100644 public/jdr/effets-mains/magique.json create mode 100644 public/jdr/effets-mains/tech.json create mode 100644 public/jdr/mains/arcs.json create mode 100644 public/jdr/mains/baguette.json create mode 100644 public/jdr/mains/base.json create mode 100644 public/jdr/mains/medieval-cac.json create mode 100644 public/jdr/mains/medieval-feu.json create mode 100644 public/jdr/mains/moderne.json create mode 100644 public/jdr/mains/outil-moderne.json create mode 100644 public/rules/inventaire/mains-effets.md create mode 100644 public/rules/inventaire/mains.md create mode 100644 src/views/EquipView.vue diff --git a/public/jdr/cartomancia.json b/public/jdr/cartomancia.json index 81ff2ce..b28399e 100644 --- a/public/jdr/cartomancia.json +++ b/public/jdr/cartomancia.json @@ -5,5 +5,7 @@ {"name":"determination19","value":"TODO"}, {"name":"determination20","value":"TODO"} ], - "objets":["base", "elements", "magique", "potion"] + "objets":["base", "elements", "magique", "potion"], + "equipMains":["base", "arcs", "medieval-cac", "medieval-feu", "baguette"], + "effetsMains":["base", "magique"] } \ No newline at end of file diff --git a/public/jdr/core.json b/public/jdr/core.json index d46cd64..f3a3a83 100644 --- a/public/jdr/core.json +++ b/public/jdr/core.json @@ -5,5 +5,7 @@ {"name":"determination19","value":"Effet dépendant du JDR"}, {"name":"determination20","value":"Effet dépendant du JDR"} ], - "objects":["base"] + "objects":["base"], + "equipMains":["base", "arcs"], + "effetsMains":["base"] } \ No newline at end of file diff --git a/public/jdr/effets-mains/base.json b/public/jdr/effets-mains/base.json new file mode 100644 index 0000000..9829b62 --- /dev/null +++ b/public/jdr/effets-mains/base.json @@ -0,0 +1,9 @@ +[ + {"nom":"Améliorée","effet":"x1.5 force","surcout":"+50%"}, + {"nom":"Supérieur","effet":"x2 force","surcout":"+100%"}, + {"nom":"Ultime","effet":"x3 force","surcout":"+200%"}, + {"nom":"Non-léthal","effet":"Tout coup avec ne fera pas tomber en dessous de 0 PV","surcout":"+10%"}, + {"nom":"Léthal","effet":"Double les chances de critique","surcout":"+50%"}, + {"nom":"de verre","effet":"Double la force, mais ne peut être utilisé que deux fois","surcout":"+10%"}, + {"nom":"À accroche","effet":"À besoin d'une main de moins","surcout":"+10%"} +] \ No newline at end of file diff --git a/public/jdr/effets-mains/magique.json b/public/jdr/effets-mains/magique.json new file mode 100644 index 0000000..007d61c --- /dev/null +++ b/public/jdr/effets-mains/magique.json @@ -0,0 +1,8 @@ +[ + {"nom":"Élémentaire","effet":"Produit l'effet de l'élément lié","surcout":"+25%"}, + {"nom":"des Âmes","effet":"Chaque mort fait avec lui confère un dégât d'1PM qui sera aussi appliqué au héros","surcout":"+25%"}, + {"nom":"Funeste","effet":"Provoque un jet de panique si réussite critique","surcout":"+100%"}, + {"nom":"De sang","effet":"Provoque un jet d'affliction physique si réussite critique","surcout":"+100%"}, + {"nom":"Des Héros","effet":"+50% force sur les créatures démoniaques","surcout":"+100%"}, + {"nom":"Des Ombres","effet":"Fait 3 dégâts bruts (même si a échoué)","surcout":"+100%"} +] \ No newline at end of file diff --git a/public/jdr/effets-mains/tech.json b/public/jdr/effets-mains/tech.json new file mode 100644 index 0000000..6e13d05 --- /dev/null +++ b/public/jdr/effets-mains/tech.json @@ -0,0 +1,6 @@ +[ + {"nom":"Biotechnologie","effet":"Ajoute un effet de vampirisme physique (regen force/2 en PV)","surcout":"+50%"}, + {"nom":"Nanotechnologie","effet":"Tout effet de brise armure ou brise-arme s'estomp à la fin de la partie","surcout":"+100%"}, + {"nom":"Crystalline","effet":"Brise armure/arme: tous les 6 points de dégâts effectué ou reçu, ajoute un malus en armure/arme à l'opposant","surcout":"+25%"}, + {"nom":"Laser","effet":"Semi perce-armure (si déjà semi perce-armure, full perce-armure)","surcout":"+100%"} +] \ No newline at end of file diff --git a/public/jdr/erratum.json b/public/jdr/erratum.json index 523fb4f..53f5b30 100644 --- a/public/jdr/erratum.json +++ b/public/jdr/erratum.json @@ -25,5 +25,6 @@ {"name":"determination19","value":"Le personnage fait un jet d'anomie"}, {"name":"determination20","value":"Le personnage devient anomique"} ], - "objects":["base"] + "objects":["base"], + "equipMains":["base", "arcs", "medieval-cac", "medieval-feu", "moderne"] } \ No newline at end of file diff --git a/public/jdr/mains/arcs.json b/public/jdr/mains/arcs.json new file mode 100644 index 0000000..3f86ad1 --- /dev/null +++ b/public/jdr/mains/arcs.json @@ -0,0 +1,6 @@ +[ + {"nom":"Arc court","type":"Arme distance","mains":2,"force":4,"effet":"Perce-armure sur les hélicoptères","competence":" Arc","cout":350}, + {"nom":"Arc long","type":"Arme distance","mains":2,"force":6,"effet":"PER -20; Perce-armure sur les hélicoptères","competence":" Arc","cout":400}, + {"nom":"Arbalète à une main","type":"Arme distance","mains":1,"force":6,"effet":"PER -20; Semi perce-armure ; Peut s'enrayer","competence":" Arc","cout":500}, + {"nom":"Arbalète","type":"Arme distance","mains":2,"force":8,"effet":"PER -20; Semi perce-armure ; Peut s'enrayer","competence":" Arc","cout":600} +] \ No newline at end of file diff --git a/public/jdr/mains/baguette.json b/public/jdr/mains/baguette.json new file mode 100644 index 0000000..f99ffaa --- /dev/null +++ b/public/jdr/mains/baguette.json @@ -0,0 +1,9 @@ +[ + {"nom":"Baguette de soin","type":"Baguette","mains":1,"force":4,"effet":"Utilise VOL ou INT; Les dégats sont fait en tant que soin","competence":"Baguette","cout":350}, + {"nom":"Baguette de guérison","type":"Baguette","mains":1,"force":2,"effet":"Utilise VOL ou INT; Les dégats sont fait en tant que soin; Soigne + 50 % de chance de soigner une altération","competence":"Baguette","cout":550}, + {"nom":"Baguette de combat","type":"Baguette","mains":1,"force":3,"effet":"Utilise VOL ou INT; Fait des dégâts à la cible; Perce-Armure","competence":"Baguette","cout":350}, + {"nom":"Baguette maléfique","type":"Baguette","mains":1,"force":3,"effet":"Utilise VOL ou INT; Fait des dégâts sur les PM (dé de mental)","competence":"Baguette","cout":550}, + {"nom":"Sceptre de soin","type":"Baguette","mains":2,"force":8,"effet":"Utilise VOL ou INT; Les dégats sont fait en tant que soin","competence":"Baguette","cout":500}, + {"nom":"Sceptre de combat","type":"Baguette","mains":2,"force":5,"effet":"Utilise VOL ou INT; Fait des dégâts à la cible; Perce-Armure","competence":"Baguette","cout":500}, + {"nom":"Sceptre maléfique","type":"Baguette","mains":2,"force":5,"effet":"Utilise VOL ou INT; Fait des dégâts sur les PM (dé de mental)","competence":"Baguette","cout":800} +] \ No newline at end of file diff --git a/public/jdr/mains/base.json b/public/jdr/mains/base.json new file mode 100644 index 0000000..84dea2b --- /dev/null +++ b/public/jdr/mains/base.json @@ -0,0 +1,17 @@ +[ + {"nom":"Mains","type":"Arme au CaC","mains":2,"force":0,"effet":"Comptent comme main nue. Non-Lethal","competence":"N/A","cout":0}, + {"nom":"Poings","type":"Arme au CaC","mains":2,"force":2,"effet":"Comptent comme main nue. Non-Lethal","competence":"N/A","cout":80}, + {"nom":"Griffe","type":"Arme au CaC","mains":2,"force":3,"effet":"Comptent comme main nue. Saignement si critique","competence":" N/A ","cout":150}, + {"nom":"Batons","type":"Arme au CaC","mains":2,"force":2,"effet":"Non-Lethal","competence":"N/A","cout":80}, + {"nom":"Fouet","type":"Arme au CaC","mains":1,"force":3,"effet":"Peut toucher à distance","competence":"Fouet","cout":150}, + {"nom":"Couteau","type":"Arme au CaC","mains":1,"force":3,"effet":"Peuvent être lancée. Saignement si critique","competence":"N/A","cout":150}, + {"nom":"Projectile","type":"Arme distance","mains":1,"force":0,"effet":"Lance un projectile (pierre, etc)","competence":"N/A","cout":0}, + {"nom":"Lance-Pierre","type":"Arme distance","mains":1,"force":1,"effet":"Peuvent être utilisée pour jeter des projectiles spécifiques","competence":"N/A","cout":150}, + {"nom":"Fronde","type":"Arme distance","mains":1,"force":2,"effet":"Peuvent être utilisée pour jeter des projectiles spécifiques","competence":"N/A","cout":200}, + {"nom":"Boumerang","type":"Arme distance","mains":1,"force":3,"effet":"Nécessite deux jet d'HAB réussi pour être esquivé","competence":"Boumerang","cout":200}, + {"nom":"Bouclier simple","type":"Bouclier","mains":1,"force":1,"effet":" ","competence":"Bouclier","cout":100}, + {"nom":"Bouclier lourd","type":"Bouclier","mains":1,"force":4,"effet":"-10% pour encaisser et esquiver","competence":"Bouclier","cout":400}, + {"nom":"Pelle","type":"Outil","mains":2,"force":1,"effet":"Peut être utilisé pour creuser","competence":"N/A ","cout":100}, + {"nom":"Fourchette","type":"Outil","mains":2,"force":1,"effet":"Manger rapporte +1 PM","competence":"N/A","cout":30}, + {"nom":"Torche","type":"Outil","mains":1,"force":2,"effet":"Dure une partie; Éclaires; Dégats de feu","competence":"N/A","cout":150} +] \ No newline at end of file diff --git a/public/jdr/mains/medieval-cac.json b/public/jdr/mains/medieval-cac.json new file mode 100644 index 0000000..052826d --- /dev/null +++ b/public/jdr/mains/medieval-cac.json @@ -0,0 +1,11 @@ +[ +{"nom":"Épée","type":"Arme au CaC","mains":1,"force":5,"effet":"","competence":"Épée","cout":400}, +{"nom":"Épée à deux mains","type":"Arme au CaC","mains":2,"force":8,"effet":"","competence":" Épée","cout":550}, +{"nom":"Hachette","type":"Arme au CaC","mains":2,"force":4,"effet":"FOR-20; Peut être lancé; Saignement si critique","competence":" Hache","cout":550}, +{"nom":"Haches","type":"Arme au CaC","mains":2,"force":10,"effet":"FOR -40; Saignement si critique","competence":" Hache","cout":600}, +{"nom":"Lance","type":"Arme au CaC","mains":2,"force":5,"effet":"Peut être lancé ; Touche des ennemis plus éloigné ; +50% dégat si sur/contre monture","competence":" Lance","cout":550}, +{"nom":"Hallebarde","type":"Arme au CaC","mains":2,"force":10,"effet":"FOR -40; Peut être lancé ; Touche des ennemis plus éloigné ; +50% dégat si sur/contre monture","competence":" Lance","cout":600}, +{"nom":"Marteau","type":"Arme au CaC","mains":1,"force":4,"effet":"Effet de brise-armure","competence":"Masse","cout":400}, +{"nom":"Masses","type":"Arme au CaC","mains":2,"force":8,"effet":"FOR -20; Effet de brise-armure","competence":"Masse","cout":600}, +{"nom":"Pavois","type":"Bouclier","mains":2,"force":6,"effet":"-20% pour encaisser et esquiver","competence":"Bouclier","cout":550} +] \ No newline at end of file diff --git a/public/jdr/mains/medieval-feu.json b/public/jdr/mains/medieval-feu.json new file mode 100644 index 0000000..dc14d0b --- /dev/null +++ b/public/jdr/mains/medieval-feu.json @@ -0,0 +1,3 @@ +[ + {"nom":" Escopette/Arquebuse","type":"Arme distance","mains":1,"force":8,"effet":"Doit être rechargé tout les tir ; Semi perce-défense","competence":" Arme à feu","cout":400} +] \ No newline at end of file diff --git a/public/jdr/mains/moderne.json b/public/jdr/mains/moderne.json new file mode 100644 index 0000000..37587ea --- /dev/null +++ b/public/jdr/mains/moderne.json @@ -0,0 +1,8 @@ +[ + {"nom":" Revolver","type":"Arme distance","mains":1,"force":8,"effet":"Doit être rechargé tout les deux tir ; Semi perce-défense","competence":" Pistolet","cout":550}, +{"nom":" Fusil","type":"Arme distance","mains":2,"force":12,"effet":"PER -20; Doit être rechargé tout les deux tir ; Semi perce-défense","competence":" Fusil","cout":600}, +{"nom":" Tromblon","type":"Arme distance","mains":2,"force":8,"effet":"PER -20; Doit être rechargé tout les deux tir ; Touche une zone; Semi perce-défense","competence":" Fusil","cout":600}, +{"nom":" Pistolet automatique","type":"Arme distance","mains":1,"force":8,"effet":"PER - 20 ; Semi perce-défense","competence":" Arme à feu","cout":900}, +{"nom":" Fusil automatique","type":"Arme distance","mains":2,"force":12,"effet":"PER -40; Semi perce-défense","competence":" Fusil","cout":1200}, +{"nom":" Fusil à double canon","type":"Arme distance","mains":2,"force":15,"effet":"PER -40; Doit être rechargé tout les deux tir ; Semi perce-défense","competence":" Fusil","cout":1200} +] \ No newline at end of file diff --git a/public/jdr/mains/outil-moderne.json b/public/jdr/mains/outil-moderne.json new file mode 100644 index 0000000..7fed81f --- /dev/null +++ b/public/jdr/mains/outil-moderne.json @@ -0,0 +1,3 @@ +[ + {"nom":" Tronçonneuse","type":"Outil","mains":2,"force":15,"effet":"FOR -50; Doit être rechargé tout les deux attaque; Saignement si critique; Semi perce-défense","competence":"Tronçonneuse","cout":1200} +] \ No newline at end of file diff --git a/public/jdr/sonata.json b/public/jdr/sonata.json index 35cf3d4..9d95ff9 100644 --- a/public/jdr/sonata.json +++ b/public/jdr/sonata.json @@ -15,5 +15,7 @@ {"name":"determination19","value":"Le personnage fait un jet d'anomie"}, {"name":"determination20","value":"Le personnage devient anomique"} ], - "objects":["base"] + "objects":["base"], + "equipMains":["base", "arcs", "medieval-cac", "moderne"], + "effetsMains":["base", "tech"] } \ No newline at end of file diff --git a/public/pelican.json b/public/pelican.json index 98cbf4f..85af39d 100644 --- a/public/pelican.json +++ b/public/pelican.json @@ -56,7 +56,7 @@ "title": "Inventaire", "links": [ {"title": "Objets et consommables", "path": "inventaire/objets"}, - {"title": "Équipement et outils", "path": "rules/inventaire/equipements"}, + {"title": "Équipement et outils", "path": "inventaire/equipements"}, {"title": "Véhicules", "path": "rules/inventaire/vehicules"} ] }, diff --git a/public/rules/inventaire/mains-effets.md b/public/rules/inventaire/mains-effets.md new file mode 100644 index 0000000..dd25fdd --- /dev/null +++ b/public/rules/inventaire/mains-effets.md @@ -0,0 +1,3 @@ +## Effets d'outils + +Plusieurs effets peuvent être appliqués sur les outils, affectant les degats qu'ils peuvent faire en tant qu'arme, etc. diff --git a/public/rules/inventaire/mains.md b/public/rules/inventaire/mains.md new file mode 100644 index 0000000..77698b3 --- /dev/null +++ b/public/rules/inventaire/mains.md @@ -0,0 +1,19 @@ +# Equipements + +Lors d'un combat, vous pouvez utiliser toutes sortes d'armes ou d'objets pour agir, attaquer et/ou vous défendre. Voici un petit panel de ce qui est possible d'avoir dans un JDR de type Pélican. Il est a noter que les équipements peuvent avoir des effets, qui peuvent se combiner. Leurs effets ET leur surcout (des plus faibles aux plus grands) se combinent alors pour donner le prix final de l'équipement. + +## Les outils + +Le premier type d'équipements sont les outils, ce sont les outils que votre personnage porte sur lui pour agir. Lorsqu'ils sont équipés, ils prennent une ou deux mains de votre personnage. Parmis ces outils, pour attaquer ou vous défendre, vos personnages peuvent porter une arme ou un bouclier, mais la plupars des outils peuvent être utilisé pour le combat. + +### Types d'armes et boucliers + +Les armes et boucliers sont les types d'outils spécialisé pour le combat. + +- Les armes au corps-à-corps utilise la **force** pour attaquer, et ne peuvent généralement toucher que les ennemis proches. Le dé utilisé pour attaquer est généralement le dé de vigueur. + +- Les armes à distance utilise la **perception** pour attaquer, et peuvent toucher n'importe lequel des ennemis présents, tant qu'il n'est pas caché. Le dé utilisé pour attaquer est généralement le dé de jet. + +- Les boucliers permettent de diminuer les dégâts si un jet d'encaissement est réussi, et s'ajoutent au dessus de l'armure, qu'elle soit physique ou spéciale - avec parfois quelque subtilité. + +### Liste des outils \ No newline at end of file diff --git a/src/data/fields.ts b/src/data/fields.ts index f654b09..dd3194b 100644 --- a/src/data/fields.ts +++ b/src/data/fields.ts @@ -6,4 +6,19 @@ const objectFields = [ { key: "cout", label: "Cout" }, ]; -export { objectFields }; +const equipMainsFields = [ + { key: "nom", label: "Nom" }, + { key: "type", label: "Type", canBeFiltered: true }, + { key: "mains", label: "Mains", canBeFiltered: true }, + { key: "effet", label: "Effet" }, + { key: "force", label: "Force" }, + { key: "cout", label: "Cout" }, +]; + +const effetsFields = [ + { key: "nom", label: "Nom" }, + { key: "effet", label: "Effet" }, + { key: "surcout", label: "Surcout" }, +]; + +export { objectFields, equipMainsFields, effetsFields }; diff --git a/src/router/index.ts b/src/router/index.ts index f2ccd2c..56238bb 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -4,6 +4,7 @@ import RuleView from "../views/RuleView.vue"; import JdrView from "../views/JdrView.vue"; import FichesView from "../views/FichesView.vue"; import ObjetsView from "../views/ObjetsView.vue"; +import EquipView from "../views/EquipView.vue"; const router = createRouter({ history: createWebHashHistory(import.meta.env.BASE_URL), @@ -37,6 +38,10 @@ const router = createRouter({ path: "/jdr/:jdr/inventaire/objets/", component: ObjetsView, }, + { + path: "/jdr/:jdr/inventaire/equipements/", + component: EquipView, + }, ], scrollBehavior(to, from, savedPosition) { if (to.hash) { diff --git a/src/types/JdrConfig.ts b/src/types/JdrConfig.ts index 55722b3..61c023e 100644 --- a/src/types/JdrConfig.ts +++ b/src/types/JdrConfig.ts @@ -7,4 +7,6 @@ export default interface JdrConfig { hideLinks: HideLink[]; vars: { name: string; value: string }[]; objects: string[]; + equipMains: string[]; + effetsMains: string[]; } diff --git a/src/views/EquipView.vue b/src/views/EquipView.vue new file mode 100644 index 0000000..c4c771d --- /dev/null +++ b/src/views/EquipView.vue @@ -0,0 +1,42 @@ + + +