From 592c80b8949454db0c68dde32fe3166433c8b112 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Wed, 8 Feb 2023 20:44:47 +0100 Subject: [PATCH] feat: tableau dynamique pour les objets --- public/jdr/core.json | 3 +- public/jdr/erratum.json | 5 +- public/jdr/objets/base.json | 10 ++++ public/jdr/objets/elements.json | 6 ++ public/jdr/objets/magique.json | 4 ++ public/jdr/objets/potions.json | 32 ++++++++++ public/pelican.json | 3 +- public/rules/inventaire/objets.md | 29 ++------- public/rules/inventaire/potions.md | 95 ------------------------------ src/data/fields.ts | 9 +++ src/router/index.ts | 5 ++ 11 files changed, 76 insertions(+), 125 deletions(-) create mode 100644 public/jdr/objets/base.json create mode 100644 public/jdr/objets/elements.json create mode 100644 public/jdr/objets/magique.json create mode 100644 public/jdr/objets/potions.json delete mode 100644 public/rules/inventaire/potions.md create mode 100644 src/data/fields.ts diff --git a/public/jdr/core.json b/public/jdr/core.json index e657e64..d46cd64 100644 --- a/public/jdr/core.json +++ b/public/jdr/core.json @@ -4,5 +4,6 @@ {"name":"determination01","value":"Effet dépendant du JDR"}, {"name":"determination19","value":"Effet dépendant du JDR"}, {"name":"determination20","value":"Effet dépendant du JDR"} - ] + ], + "objects":["base"] } \ No newline at end of file diff --git a/public/jdr/erratum.json b/public/jdr/erratum.json index 21230c4..523fb4f 100644 --- a/public/jdr/erratum.json +++ b/public/jdr/erratum.json @@ -1,5 +1,5 @@ { - "name": "Règles de bases", + "name": "Erratum", "sidebar": [ { "id": 50, @@ -24,5 +24,6 @@ {"name":"determination01","value":"Le personnage fait un jet d'apothéose (D100). Si réussite critique: apothéose, si échec critique, jet d'anomie, sinon +1 karma"}, {"name":"determination19","value":"Le personnage fait un jet d'anomie"}, {"name":"determination20","value":"Le personnage devient anomique"} - ] + ], + "objects":["base"] } \ No newline at end of file diff --git a/public/jdr/objets/base.json b/public/jdr/objets/base.json new file mode 100644 index 0000000..6263e3d --- /dev/null +++ b/public/jdr/objets/base.json @@ -0,0 +1,10 @@ +[ + {"nom":"Repas complet de base","type":"Nourriture","rarete":"Commun","effet":"Des vivres pour une journée. Durent une partie.","cout":10}, + {"nom":"Repas de qualité","type":"Nourriture","rarete":"Commun","effet":"Des vivres pour une journée. Durent une partie. +5% à toute les stats","cout":25}, + {"nom":"Alcool néfaste","type":"Nourriture","rarete":"Semi-rare","effet":"Provoque un jet de pestilence et de bénédiction à la fois","cout":500}, + {"nom":"Pain d'ascedie","type":"Nourriture","rarete":"Semi-rare","effet":"Ne périme pas, fait un repas complet - mais la sensation de faim reste et il est dégoutant.","cout":80}, + {"nom":"Explosif","type":"Attaque","rarete":"Commun","effet":"Provoque une explosion de 12 dégâts (sur trois ennemis proches).","cout":100}, + {"nom":"Bille de statistiques","type":"Boost","rarete":"Semi-rare","effet":"Ajoute +5% à la statistique trois tours. Cumulatif","cout":250}, + {"nom":"Dés pipés","type":"Boost","rarete":"Rare","effet":"Annule un échec critique, mais la réussite critique suivante sera un échec critique","cout":1500}, + {"nom":"Liste d'Attente de la mort","type":"Boost","rarete":"Rare","effet":"Réussite automatique au prochain jet de survie, le suivant à chance/2","cout":1500} +] \ No newline at end of file diff --git a/public/jdr/objets/elements.json b/public/jdr/objets/elements.json new file mode 100644 index 0000000..1a7c664 --- /dev/null +++ b/public/jdr/objets/elements.json @@ -0,0 +1,6 @@ +[ + {"nom":"Graine élémentaire","type":"Attaque","rarete":"Commun","effet":"Produit l'effet de l'élément.","cout":50}, + {"nom":"Prisme d'élément","type":"Attaque","rarete":"Semi-rare","effet":"Quand brisé, produit un terrain élémentaire","cout":500}, + {"nom":"Bombes élémentaires","type":"Attaque","rarete":"Commun","effet":"Provoque une explosion de 12 dégâts (sur trois ennemis proches) avec effet élémentaire.","cout":150}, + {"nom":"Voile élémentaire","type":"Boost","rarete":"Semi-rare","effet":"Produit une résistance à l'élément sur toute l'équipe trois tours","cout":550} +] \ No newline at end of file diff --git a/public/jdr/objets/magique.json b/public/jdr/objets/magique.json new file mode 100644 index 0000000..619af27 --- /dev/null +++ b/public/jdr/objets/magique.json @@ -0,0 +1,4 @@ +[ + {"nom":"Essence d'espèce","type":"Boost","rarete":"Rare","effet":"Change l'espèce d'un personnage trois tours.","cout":1000}, + {"nom":"Cristal de téléportation","type":"Utilitaire","rarete":"Semi-rare","effet":"Ramène au début d'un donjon où d'un endroit","cout":400} +] \ No newline at end of file diff --git a/public/jdr/objets/potions.json b/public/jdr/objets/potions.json new file mode 100644 index 0000000..de3554d --- /dev/null +++ b/public/jdr/objets/potions.json @@ -0,0 +1,32 @@ +[ + {"nom":"Ingrédients Communs","type":"Ingrédient","rarete":"Rare","effet":"Permet de créer des potions communes.","cout":5}, + {"nom":"Ingrédients Semi-rares","type":"Ingrédient","rarete":"Semi-rare","effet":"Permet de créer des potions semi-rares.","cout":40}, + {"nom":"Ingrédients Rares","type":"Ingrédient","rarete":"Semi-rare","effet":"Permet de créer des potions rares.","cout":125}, + {"nom":"Ingrédients Exceptionnels","type":"Ingrédient","rarete":"Exceptionnel","effet":"Permet de créer des potions exceptionnelles.","cout":500}, + {"nom":"Herbes démoniaques","type":"Ingrédient","rarete":"Rare","effet":"Transforme une potion à effet positif en potion satanique : augmente ses effets, mais provoque un jet de panique","cout":200}, + {"nom":"Potion de soin","type":"Potion","rarete":"Commun","effet":"Permet de regagner 12PV","cout":20}, + {"nom":"Potion de moral","type":"Potion","rarete":"Commun","effet":"Permet de regagner 12PM","cout":20}, + {"nom":"Antidote","type":"Potion","rarete":"Commun","effet":"Soigne une affliction physique","cout":20}, + {"nom":"Extrait de douleur","type":"Potion","rarete":"Commun","effet":"Inflige 3 dégâts esprit et 3 dégâts de corps","cout":20}, + {"nom":"Potion de vigueur","type":"Potion","rarete":"Commun","effet":"Augmente de 10 % les statistiques physique pendant trois tour","cout":20}, + {"nom":"Potion explosive légère","type":"Potion","rarete":"Commun","effet":"Provoque une explosion d'une puissance de 8 dégâts bruts, pas d'esquive. (dégat doublé si bue)","cout":20}, + {"nom":"Potion d'aveuglement","type":"Potion","rarete":"Commun","effet":"Produit un malus de 15 % en PER à tout personnage touché par la potion.","cout":20}, + {"nom":"Potion de flamme","type":"Potion","rarete":"Commun","effet":"Donne des dégâts de feu aux attaques","cout":20}, + {"nom":"Potion de satiété","type":"Potion","rarete":"Commun","effet":"Protège de la faim pendant trois parties","cout":20}, + {"nom":"Potion de soin avancée","type":"Potion","rarete":"Semi-rare","effet":"Permet de regagner 24PV","cout":85}, + {"nom":"Potion de moral avancée","type":"Potion","rarete":"Semi-rare","effet":"Permet de regagner 24PM","cout":85}, + {"nom":"Essence de célérité","type":"Potion","rarete":"Semi-rare","effet":"Toujours premier pour prochain combat","cout":85}, + {"nom":"Potion de pestilence","type":"Potion","rarete":"Semi-rare","effet":"Fait faire un jet de pestilence à l’ennemi quand il est touché","cout":85}, + {"nom":"Concentré de Dopage","type":"Potion","rarete":"Semi-rare","effet":"Permet de faire rejouer","cout":85}, + {"nom":"Potion de rage","type":"Potion","rarete":"Semi-rare","effet":"Booste l’attaque de 20 % mais lui donne 1 chance sur 4 d’attaquer un allié (la chance sur 4 est cumulable)","cout":85}, + {"nom":"Potion explosive avancée","type":"Potion","rarete":"Semi-rare","effet":"Provoque une explosion d'une puissance de 14 dégâts, pas d'esquive. (dégat doublé si bue)","cout":85}, + {"nom":"Potion de soin royale","type":"Potion","rarete":"Rare","effet":"Permet de regagner 54PV","cout":250}, + {"nom":"Potion de moral royale","type":"Potion","rarete":"Rare","effet":"Permet de regagner 54PV","cout":250}, + {"nom":"Potion 'Debout les Morts'","type":"Potion","rarete":"Rare","effet":"Soigne de tout les PV un perso non-mort, mais rend fortement confus 5 tours.","cout":250}, + {"nom":"Potion d’intangibilité","type":"Potion","rarete":"Rare","effet":"Donne une immunité aux dégâts physiques.","cout":250}, + {"nom":"Filtre d’amour","type":"Potion","rarete":"Rare","effet":"Peut séduire en combat un allié et lui donner +50 % à tout ses jets. Il obéira à tout ses ordres, et ne prendra d’action sans son autorisation.","cout":250}, + {"nom":"Potion d'éclat","type":"Potion","rarete":"Rare","effet":"Permet de regagner 2 point d'éclat","cout":250}, + {"nom":"Potion de Résurrection","type":"Potion","rarete":"Exceptionnel","effet":"Ramène un perso mort à la vie, si la mort date de moins d'une partie","cout":1000}, + {"nom":"Potion de Bonheur","type":"Potion","rarete":"Exceptionnel","effet":"Immunise temporairement aux effets de la perte de moral","cout":1000}, + {"nom":"Potion secrète","type":"Potion","rarete":"Exceptionnel","effet":"La personne l’ayant bu peut annuler un critique au choix","cout":1000} +] \ No newline at end of file diff --git a/public/pelican.json b/public/pelican.json index 049381e..98cbf4f 100644 --- a/public/pelican.json +++ b/public/pelican.json @@ -55,9 +55,8 @@ "id": 40, "title": "Inventaire", "links": [ - {"title": "Objets et aliments", "path": "rules/inventaire/objets"}, + {"title": "Objets et consommables", "path": "inventaire/objets"}, {"title": "Équipement et outils", "path": "rules/inventaire/equipements"}, - {"title": "Potions et crafting", "path": "rules/inventaire/potions"}, {"title": "Véhicules", "path": "rules/inventaire/vehicules"} ] }, diff --git a/public/rules/inventaire/objets.md b/public/rules/inventaire/objets.md index 7770adf..616d179 100644 --- a/public/rules/inventaire/objets.md +++ b/public/rules/inventaire/objets.md @@ -1,30 +1,9 @@ # Objets et consommables -
+Dans votre aventure, vous trouverez de nombreux objets consommables, qui pourront vous permettre d'avoir des pouvoirs plus ou moins positifs. Ces différents objects peuvent être trouvés, acheté, construit. Cette page à pour objectif de présenter ces différents objets. -## Nourritures +## Créer un objet -| Objet | Effet | Prix | -|:----------:|:------|:----:| -| Repas complet de base | Des vivres pour une journée. Durent une partie. | 10 | -| Repas de qualité | Des vivres pour une journée + ajoute un niveau de boost dans toute les statistiques. Durent une partie. | 25 | -| Alcool néfaste | Provoque un jet de pestilence et de bénédiction à la fois | 500 | -| Pain d'ascedie | Ne périme pas, fait un repas complet - mais la sensation de faim reste et il est dégoutant. | 85 | +Une confection de consommables prend un tour, et peut se faire à tout moment si les ingrédient sont présent (ils sont consommés). Si un joueur peut faire plusieurs doses d'un même consommable, alors il lui faudra consommer plus d'ingrédients proportionnellement au nombre de dose voulue (et dans la limite laissée par le JDR), cependant cela ne prendra pas plus d'action. -## Objets magiques - -| Objet | Effet | Prix | -|:----------:|:------|:----:| -| Pierre d'intégrité | Restaure entièrement tout effet métaphysique | 1000 | -| Graine élémentaire | Produit l'effet de l'élément | 50 | -| Voile élémentaire | Produit une résistance à l'élément sur toute l'équipe | 550 | -| Prisme d'élément | Quand brisé, produit un terrain élémentaire | 350 | -| Bille de statistiques | Ajoute +5% à la statistique trois tours. Cumulatif | 250 | -| Essence d'espèce | Change l'espèce d'un personnage trois tours | Introuvable sur le marché | -| Bombes élémentaires | Provoque une explosion de 12 dégâts (sur trois ennemis proches) avec effet élémentaire | 250 | -| Cristal de téléportation | Ramène au début d'un donjon où d'un endroit | 400 | -| Carnet de la mort | Réussite automatique au prochain jet de survie, le suivant cependant échouera | 1500 | -| Dés pipés | Annule un échec critique, mais la réussite critique suivante sera un échec critique | 1500 | -| Herbes démoniaques | Transforme une potion à effet positif en potion satanique : augmente ses effets, mais provoque un jet de panique | 200 | - -
+## Liste des objets \ No newline at end of file diff --git a/public/rules/inventaire/potions.md b/public/rules/inventaire/potions.md deleted file mode 100644 index 169bbd9..0000000 --- a/public/rules/inventaire/potions.md +++ /dev/null @@ -1,95 +0,0 @@ -# Potions et crafting - -Il est possible dans les jdr d'avoir des personnages dont les gimmick sont de construire des objets ou des outils. Parmi les exemples à cela il peut y avoir cuisinier (pour créer des vivres), la création d'arme (ou il faudra cependant placer quelques limites, puisque cela créer des objets permanents) et la création de potion. - -Créer des objets nécessites des classes dédiées à cela, et utilise les mécanismes suivants - -## Confectionner un objet - -La confection d'objet dépend du type d'objet souhaité. Elle utilisera toujours un double jet : INT pour déterminer la capacité à voir ce qu'il faut faire, et HAB pour réussir à faire ce que l'on veut. - -### Objet consommable - -Une confection de consommables prend un tour, et peut se faire à tout moment si les ingrédient sont présent (ils sont consommés). Si un joueur peut faire plusieurs doses d'un même consommable, alors il lui faudra consommer plus d'ingrédients proportionnellement au nombre de dose voulue (et dans la limite laissée par le JDR), cependant cela ne prendra pas plus d'action. - -### Objet permanent - -Une confection d'objet permanent (équipement, par exemple) prend plus de temps, pouvant durer sur une partie de partie, voir sur un inter-partie, et ne peut se faire au combat. Il est possible cependant de laisser une élispe se faire dans le JDR pour permettre à la créer autour d'une partie. Cependant, elle ne peut se faire en un tour comme un objet consommable. Elle va demander aussi des matériaux, soit qui seront fourni in-RP, soit via un système de matériaux propre au JDR. - -Cette confection peut aussi faire faire un jet par "spécificité" que l'objet final doit avoir ( par exemple une épée améliorée pourra avoir besoin d'un jet pour créer une épée, un jet pour créer l'aspect "amélioré" ). - -## Potions - -### Ingrédients - -Il peut y avoir 4 types d'ingrédients pour les potions - -- Ingrédients Communs (5) -- Ingrédients Semi-rare -- Ingrédients Rare () -- Ingrédients Exceptionnel (80) - -Il est à noter qu'il est possible ou non d'utiliser les ingrédients pour d'autres éléments (comme de la cuisine). Ces ingré Les JDR peuvent aussi avoir des ingrédients annexes ayant un effet sur la création des potions. - -### Liste des potions - -#### Faciles - -Coût : 10 - -Les potions faciles contiennent des ingrédients *communs*. - -| Potion | Effet | -|:------:|:-----:| -| Potion de soin | Permet de regagner 12PV | -| Potion de moral | Permet de regagner 12PM | -| Antidote | Soigne une affliction physique | -| Extrait de douleur | Inflige 3 dégâts esprit et 3 dégâts de corps | -| Potion de vigueur | Augmente de 10 % les statistiques physique pendant trois tour | -| Potion explosive légère | Provoque une explosion d'une puissance de 8 dégâts, pas d'esquive. (dégat doublé & brut si bue) | -| Potion d'aveuglement | Produit un malus de 15 % en PER à tout personnage touché par la potion. | -| Potion de flamme | Donne des dégâts de feu aux attaques | -| Potion de satiété | Protège de la fin pendant trois parties | - -#### Avancées - -Coût : 20 - -Les potions faciles contiennent des ingrédients *semi-rares*. - -| Potion | Effet | -|:------:|:-----:| -| Potion de soin avancée | Permet de regagner 24PV | -| Potion de moral avancée | Permet de regagner 24PM | -| Essence de célérité | Toujours premier pour prochain combat | -| Potion de pestilence | Fait faire un jet de pestilence à l’ennemi quand il la boit | -| Concentré de Dopage | Permet de faire rejouer | -| Potion de rage | Booste l’attaque de 20 % mais lui donne 1 chance sur 4 d’attaquer un allié (la chance sur 4 est cumulable) | -| Potion explosive avancée | Provoque une explosion d'une puissance de 14 dégâts, pas d'esquive. (dégat doublé & brut si bue) | - -#### Difficiles - -Coût : 40 - -Les potions faciles contiennent des ingrédients *rares*. - -| Potion | Effet | -|:------:|:-----:| -| Potion de soin royale | Permet de regagner 54PV | -| Potion de moral royale | Permet de regagner 54PV | -| Potion "debout les morts" | Soigne de tout les PV un perso non-mort, mais rend fortement confus 5 tours. | -| Potion d’intangibilité | Donne une immunité aux dégâts physiques. | -| Filtre d’amour | Peut séduire en combat un allié et lui donner +50 % à tout ses jets. Il obéira à tout ses ordres, et ne prendra d’action sans son autorisation. | -| Potion d'éclat | Permet de regagner 2 point d'éclat | - -#### Légendaires - -Coût : 100 - -Les potions légendaires contiennent des ingrédients *exceptionnels* - -| Potion | Effet | -|:------:|:-----:| -| Potion de Résurrection | Ramène un perso mort à la vie, si la mort date de moins d'une partie | -| Potion de Bonheur | Immunise temporairement aux effets de la perte de moral | -| Potion secrète | La personne l’ayant bu peut annuler un critique au choix | diff --git a/src/data/fields.ts b/src/data/fields.ts new file mode 100644 index 0000000..f654b09 --- /dev/null +++ b/src/data/fields.ts @@ -0,0 +1,9 @@ +const objectFields = [ + { key: "nom", label: "Nom" }, + { key: "type", label: "Type", canBeFiltered: true }, + { key: "rarete", label: "Rareté", canBeFiltered: true }, + { key: "effet", label: "Effet" }, + { key: "cout", label: "Cout" }, +]; + +export { objectFields }; diff --git a/src/router/index.ts b/src/router/index.ts index 0293477..f2ccd2c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -3,6 +3,7 @@ import HomeView from "../views/HomeView.vue"; import RuleView from "../views/RuleView.vue"; import JdrView from "../views/JdrView.vue"; import FichesView from "../views/FichesView.vue"; +import ObjetsView from "../views/ObjetsView.vue"; const router = createRouter({ history: createWebHashHistory(import.meta.env.BASE_URL), @@ -32,6 +33,10 @@ const router = createRouter({ // which is lazy-loaded when the route is visited. component: () => import("../views/AboutView.vue"), }, + { + path: "/jdr/:jdr/inventaire/objets/", + component: ObjetsView, + }, ], scrollBehavior(to, from, savedPosition) { if (to.hash) {