From 0095fb9224cb253c2363ca1ff179c3b01b89b533 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sat, 18 Feb 2023 11:17:53 +0100 Subject: [PATCH] feat: accessoire en tableau --- public/jdr/accessoires/base.json | 18 ++++++++++++++++ public/jdr/accessoires/cristaleclat.json | 7 ++++++ public/jdr/accessoires/eclat.json | 7 ++++++ public/jdr/cartomancia.json | 3 ++- public/jdr/core.json | 3 ++- public/jdr/sonata.json | 3 ++- public/rules/inventaire/accessoires.md | 3 +++ public/rules/magie/eclat.md | 27 ------------------------ src/data/fields.ts | 14 +++++++++++- src/types/JdrConfig.ts | 1 + src/views/EquipView.vue | 18 +++++++++++++++- 11 files changed, 72 insertions(+), 32 deletions(-) create mode 100644 public/jdr/accessoires/base.json create mode 100644 public/jdr/accessoires/cristaleclat.json create mode 100644 public/jdr/accessoires/eclat.json create mode 100644 public/rules/inventaire/accessoires.md diff --git a/public/jdr/accessoires/base.json b/public/jdr/accessoires/base.json new file mode 100644 index 0000000..381230c --- /dev/null +++ b/public/jdr/accessoires/base.json @@ -0,0 +1,18 @@ +[ + {"nom":"Faux mouscle", "effet":"+15 en FOR", "cout":650}, + {"nom":"Bracelet de santé", "effet":"+15 en CON", "cout":650}, + {"nom":"Chaussures de courses", "effet":"+15 en HAB", "cout":650}, + {"nom":"Blouse intellectuelle", "effet":"+15 en INT", "cout":650}, + {"nom":"Medaillon de philosophe", "effet":"+15 en SAG", "cout":650}, + {"nom":"Porte-clef en peluche anti-stress", "effet":"+15 en VOL", "cout":650}, + {"nom":"Cape de héros", "effet":"+15 en CHA", "cout":650}, + {"nom":"Masque de voleur", "effet":"+15 en DIS", "cout":650}, + {"nom":"Collier mignon", "effet":"+15 en REL", "cout":650}, + {"nom":"Monocle ultime", "effet":"+15 en PER", "cout":650}, + {"nom":"Débardeur d'acier", "effet":"+3 armure physique", "cout":850}, + {"nom":"Joli clochette", "effet":"+1 armure spéciale", "cout":1050}, + {"nom":"Accessoire stylé", "effet":"+1 armure morale", "cout":850}, + {"nom":"Lunettes Blindées", "effet":"Protège de tout malus en perception", "cout":1050}, + {"nom":"Masque de terreur", "effet":"En cas de jet de panique, 1D4. Si 4, un allié fait aussi un jet de panique. Sinon, un ennemi le fait", "cout":1500}, + {"nom":"Slip divin", "effet":"+20 aux jets de survies", "cout":2550} +] \ No newline at end of file diff --git a/public/jdr/accessoires/cristaleclat.json b/public/jdr/accessoires/cristaleclat.json new file mode 100644 index 0000000..d0954fe --- /dev/null +++ b/public/jdr/accessoires/cristaleclat.json @@ -0,0 +1,7 @@ +[ + {"nom":"Mini-cristal à éclat", "effet":"Réserve de 5 éclat. Peut être rechargé pour un cout de 10.", "cout":100}, + {"nom":"Petit cristal à éclat", "effet":"Réserve de 10 éclat. Peut être rechargé pour un cout de 20.", "cout":200}, + {"nom":"Cristal à éclat", "effet":"Réserve de 20 éclat. Peut être rechargé pour un cout de 50.", "cout":500}, + {"nom":"Grand cristal à éclat", "effet":"Réserve de 35 éclat. Peut être rechargé pour un cout de 100.", "cout":1000}, + {"nom":"Cristal à éclat géante", "effet":"Réserve de 50 éclat. Peut être rechargé pour un cout de 250.", "cout":2500} +] \ No newline at end of file diff --git a/public/jdr/accessoires/eclat.json b/public/jdr/accessoires/eclat.json new file mode 100644 index 0000000..def44e7 --- /dev/null +++ b/public/jdr/accessoires/eclat.json @@ -0,0 +1,7 @@ +[ + {"nom":"Mini-batterie à éclat", "effet":"Réserve de 5 éclat. Peut être rechargé pour un cout de 10.", "cout":100}, + {"nom":"Petite batterie à éclat", "effet":"Réserve de 10 éclat. Peut être rechargé pour un cout de 20.", "cout":200}, + {"nom":"Batterie à éclat", "effet":"Réserve de 20 éclat. Peut être rechargé pour un cout de 50.", "cout":500}, + {"nom":"Grande batterie à éclat", "effet":"Réserve de 35 éclat. Peut être rechargé pour un cout de 100.", "cout":1000}, + {"nom":"Batterie à éclat géante", "effet":"Réserve de 50 éclat. Peut être rechargé pour un cout de 250.", "cout":2500} +] \ No newline at end of file diff --git a/public/jdr/cartomancia.json b/public/jdr/cartomancia.json index c5f5c4b..6de88e1 100644 --- a/public/jdr/cartomancia.json +++ b/public/jdr/cartomancia.json @@ -9,5 +9,6 @@ "equipMains":["base", "arcs", "medieval-cac", "medieval-feu", "baguette"], "effetsMains":["base", "magique"], "tenues":["base","armures"], - "effetsTenues":["base", "magique"] + "effetsTenues":["base", "magique"], + "accessoires":["base", "cristaleclat"] } \ No newline at end of file diff --git a/public/jdr/core.json b/public/jdr/core.json index 21f6902..87e156e 100644 --- a/public/jdr/core.json +++ b/public/jdr/core.json @@ -9,5 +9,6 @@ "equipMains":["base", "arcs"], "effetsMains":["base"], "tenues":["base","armures"], - "effetsTenues":["base"] + "effetsTenues":["base"], + "accessoires":["base", "eclat"] } \ No newline at end of file diff --git a/public/jdr/sonata.json b/public/jdr/sonata.json index d585082..641484f 100644 --- a/public/jdr/sonata.json +++ b/public/jdr/sonata.json @@ -19,5 +19,6 @@ "equipMains":["base", "arcs", "medieval-cac", "moderne"], "effetsMains":["base", "tech"], "tenues":["base","armures"], - "effetsTenues":["base", "tech"] + "effetsTenues":["base", "tech"], + "accessoires":["base"] } \ No newline at end of file diff --git a/public/rules/inventaire/accessoires.md b/public/rules/inventaire/accessoires.md new file mode 100644 index 0000000..3d9bfec --- /dev/null +++ b/public/rules/inventaire/accessoires.md @@ -0,0 +1,3 @@ +## Accessoires + +Les accessoires sont des équipements aux effets divers, qui sont limités à deux par personnages. \ No newline at end of file diff --git a/public/rules/magie/eclat.md b/public/rules/magie/eclat.md index 9ea7c28..d0fb5b7 100644 --- a/public/rules/magie/eclat.md +++ b/public/rules/magie/eclat.md @@ -9,30 +9,3 @@ Il est à noter que l'éclat est grandement facultatif dans Pélican. Il existe - Limitation du nombre d'utilisation par partie/combat - Système de "charges" de sortilege - Système de cooldown - - -## Batteries à éclat - -Si l'éclat est limité à 10 points (hors exception) par personnage, il est possible d'obtenir plus d'éclat à l'aide d'objet spécifique, ce qui est notamment utile pour effectuer les attaques les plus puissantes. - -Ces apports d'éclat supplémentaire ne sont pas cumulables, et ne se régénère pas naturellement. - -### Les différents niveaux de réserve d'éclat - -| Niveau | Contenance | Prix achat | Prix recharge | -|:------:|:----------:|:----------:|:-------------:| -| 1 | 5 | 100 | 10 | -| 2 | 10 | 200 | 20 | -| 3 | 20 | 500 | 50 | -| 4 | 35 | 1000 | 100 | -| 5 | 50 | 2500 | 250 | - -### Recharger sa réserve d'éclat - -Le rechargement de sa réserve d'éclat peut se faire de plusieurs manière. - -- L'achat où la récupération de *recharge d'éclat*, tel que les perles blanches. - -- Le remplissage (payant) de la recharge. Il n'est pas possible de remplir partiellement la réserve d'éclat, seulement entièrement. Le prix est le même que votre batterie soit vide ou à moitié remplie. - -- Certains lieu dans les JDR peuvent aussi permettre de la remplir d'autres moyens diff --git a/src/data/fields.ts b/src/data/fields.ts index d69be9e..9f11412 100644 --- a/src/data/fields.ts +++ b/src/data/fields.ts @@ -28,4 +28,16 @@ const effetsFields = [ { key: "surcout", label: "Surcout" }, ]; -export { objectFields, equipMainsFields, tenuesFields, effetsFields }; +const accessoiresFields = [ + { key: "nom", label: "Nom" }, + { key: "effet", label: "Effet" }, + { key: "cout", label: "Cout" }, +]; + +export { + objectFields, + equipMainsFields, + tenuesFields, + effetsFields, + accessoiresFields, +}; diff --git a/src/types/JdrConfig.ts b/src/types/JdrConfig.ts index 758b5df..dcfd755 100644 --- a/src/types/JdrConfig.ts +++ b/src/types/JdrConfig.ts @@ -11,4 +11,5 @@ export default interface JdrConfig { effetsMains: string[]; tenues: string[]; effetsTenues: string[]; + accessoires: string[]; } diff --git a/src/views/EquipView.vue b/src/views/EquipView.vue index e45494b..146eb3b 100644 --- a/src/views/EquipView.vue +++ b/src/views/EquipView.vue @@ -4,7 +4,12 @@ import { useConfigStore } from "@/stores/config"; import { onMounted, computed } from "vue"; import { useRoute } from "vue-router"; import MarkdownFile from "../components/MarkdownFile.vue"; -import { equipMainsFields, effetsFields, tenuesFields } from "@/data/fields"; +import { + equipMainsFields, + effetsFields, + tenuesFields, + accessoiresFields, +} from "@/data/fields"; const store = useConfigStore(); const route = useRoute(); @@ -28,6 +33,10 @@ const tenues = computed(() => { const effetsTenues = computed(() => { return store.jdrConfig?.effetsTenues ?? []; }); + +const accessoires = computed(() => { + return store.jdrConfig?.accessoires ?? []; +});