feat: ajout des tenues

This commit is contained in:
Kazhnuz 2023-02-13 21:31:45 +01:00
parent d0f284dc36
commit f6fcf218d3
14 changed files with 104 additions and 10 deletions

View file

@ -7,5 +7,7 @@
], ],
"objects":["base", "elements", "magique", "potions"], "objects":["base", "elements", "magique", "potions"],
"equipMains":["base", "arcs", "medieval-cac", "medieval-feu", "baguette"], "equipMains":["base", "arcs", "medieval-cac", "medieval-feu", "baguette"],
"effetsMains":["base", "magique"] "effetsMains":["base", "magique"],
"tenues":["base","armures"],
"effetsTenues":["base", "magique"]
} }

View file

@ -7,5 +7,7 @@
], ],
"objects":["base"], "objects":["base"],
"equipMains":["base", "arcs"], "equipMains":["base", "arcs"],
"effetsMains":["base"] "effetsMains":["base"],
"tenues":["base","armures"],
"effetsTenues":["base"]
} }

View file

@ -0,0 +1,8 @@
[
{"nom":"Ultime","effet":"Fait 200% de défense de base en plus","surcout":"+200%"},
{"nom":"Intégrale","effet":"Masque les points faibles","surcout":"+25%"},
{"nom":"Consolidée","effet":"Effet du brise-armure divisé par 2","surcout":"+25%"},
{"nom":"Miroitante","effet":"Renvoie la moitié des dégâts spéciaux infligés","surcout":"+50%"},
{"nom":"Améliorée","effet":"Fait 50% de défense de base en plus","surcout":"+50%"},
{"nom":"Supérieur","effet":"Fait 100% de défense de base en plus","surcout":"+100%"}
]

View file

@ -0,0 +1,12 @@
[
{"nom":"Élémentaire","effet":"Evite l'effet secondaire de l'élément lié","surcout":"+25%"},
{"nom":"Scellée","effet":"Ne peut être retirée que par le porteur","surcout":"+10%"},
{"nom":"Magique","effet":"+2 armure spéciale","surcout":"+50%"},
{"nom":"D'Âme","effet":"+2 armure morale","surcout":"+50%"},
{"nom":"De sang","effet":"-25% PV ; 1D6, si 1, l'ennemi fait un jet d'affliction physique","surcout":"+100%"},
{"nom":"Radiante","effet":"+2 éclat ; Rajoute faiblesse à tout les éléments métaphysique ","surcout":"+100%"},
{"nom":"Funeste","effet":"-25% PM ; Double les dégats mentaux ; 1D6, si 1, l'ennemi fait un jet d'affliction morale","surcout":"+100%"},
{"nom":"Célèste","effet":" -2 éclat ; Protège de l'éclat et si devrait devenir anomique 1D4 chance d'en être protégé","surcout":"+100%"},
{"nom":"Des Ombres","effet":"-25% PM et PV ; 1D6, si 1, un encaissement réussi devient une esquive","surcout":"+100%"},
{"nom":"Des Héros","effet":"-n×10 DIS ; +20% dans toutes les stats face aux êtres démoniaques.","surcout":"+100%"}
]

View file

@ -0,0 +1,8 @@
[
{"nom":"Biotechnologie","effet":"Ramène 1 PV/tour.","surcout":"+50%"},
{"nom":"Nanotechnologie","effet":"S'auto-répare de 1/partie","surcout":"+ 50%"},
{"nom":"Crystalline","effet":"Brise-Arme: 1/4 de faire perdre 1 points de dégat à une arme l'attaquant sur le physique","surcout":"+ 25%"},
{"nom":"Champs d'énergie","effet":"Les attaques perce-armure font moitié dégats","surcout":"+100%"},
{"nom":"Pare-balle","effet":"Anti-perce défense face aux armes à feux","surcout":"+25%"},
{"nom":"Anti-explosion","effet":"Encaisse les explosions","surcout":"+25%"}
]

View file

@ -17,5 +17,7 @@
], ],
"objects":["base"], "objects":["base"],
"equipMains":["base", "arcs", "medieval-cac", "moderne"], "equipMains":["base", "arcs", "medieval-cac", "moderne"],
"effetsMains":["base", "tech"] "effetsMains":["base", "tech"],
"tenues":["base","armures"],
"effetsTenues":["base", "tech"]
} }

View file

@ -0,0 +1,6 @@
[
{"nom":"Côte de maille","armure":4,"effet":"-10 % HAB","cout":750},
{"nom":"Armure d'apparat","armure":4,"effet":"-25 % DIS et HAB ; +20% dans les statistiques sociales en milieu riche","cout":1050},
{"nom":"Armure","armure":5,"effet":"-25 % DIS et HAB","cout":950},
{"nom":"Armure Lourde","armure":7,"effet":"-40 % DIS et HAB","cout":1200}
]

View file

@ -0,0 +1,15 @@
[
{"nom":"Vêtements communs","armure":1,"effet":"","cout":200},
{"nom":"Vêtements confortables","armure":1,"effet":"+1 armure mentale","cout":300},
{"nom":"Tenue terrifiante","armure":1,"effet":"L'ennemi à +2% en échec critique","cout":300},
{"nom":"Tenue polaire","armure":1,"effet":"+20% pour résister au froid ; -20% pour résister au chaud","cout":300},
{"nom":"Tenue légère","armure":1,"effet":"+20% pour résister au chaud ; -20% pour résister au froid","cout":300},
{"nom":"Séduisante","armure":1,"effet":"+20% pour charmer","cout":300},
{"nom":"Tenue discrète","armure":1,"effet":"+20% en DIS dans un lieu sombre","cout":400},
{"nom":"Uniforme de faction","armure":1,"effet":"Permet de donner l'impression d'être un membre de cette faction si l'on est pas trop connu","cout":400},
{"nom":"Costard","armure":1,"effet":"+20% sur les reventes ; +20% risque de se faire attaquer dans les rencontre aléatoire","cout":800},
{"nom":"Tenue majestueuse","armure":1,"effet":"+20% dans les statistiques sociales en milieu riche","cout":600},
{"nom":"Tenue du Héros","armure":2,"effet":"+20% CHA","cout":600},
{"nom":"Tenue de voyage","armure":2,"effet":"+20% pour les exploration de grand espace","cout":600},
{"nom":"Tenue renforcée","armure":2,"effet":"","cout":400}
]

View file

@ -0,0 +1,3 @@
## Effets de tenue
Plusieurs effets peuvent être appliqués sur les tenues, affectant leur défense, etc.

View file

@ -0,0 +1,5 @@
## Tenues
Les tenues sont un équipement offrant protection et effets divers à votre personnage. Les personnages ne peuvent porter qu'une tenues à la fois, il peut être donc intéressant d'adapter sa tenue aux circonstances.
### Liste des tenues

View file

@ -4,13 +4,17 @@ import TopBar from "./components/layout/TopBar.vue";
import SideBar from "./components/layout/SideBar.vue"; import SideBar from "./components/layout/SideBar.vue";
import TableOfContent from "./components/layout/TableOfContent.vue"; import TableOfContent from "./components/layout/TableOfContent.vue";
import { useConfigStore } from "./stores/config"; import { useConfigStore } from "./stores/config";
import { onMounted } from "vue"; import { onMounted, ref } from "vue";
import axios from "axios"; import axios from "axios";
const store = useConfigStore(); const store = useConfigStore();
const loaded = ref(false);
onMounted(() => { onMounted(() => {
axios.get(`/pelican.json`).then((response) => store.setConfig(response.data)); axios.get(`/pelican.json`).then((response) => {
store.setConfig(response.data);
loaded.value = true;
});
}); });
</script> </script>
@ -20,7 +24,7 @@ onMounted(() => {
<SideBar /> <SideBar />
<div id="page"> <div id="page">
<div id="content" class="pt-1"> <div id="content" class="pt-1">
<RouterView /> <RouterView v-if="loaded" />
</div> </div>
</div> </div>
<TableOfContent /> <TableOfContent />

View file

@ -15,10 +15,17 @@ const equipMainsFields = [
{ key: "cout", label: "Cout" }, { key: "cout", label: "Cout" },
]; ];
const tenuesFields = [
{ key: "nom", label: "Nom" },
{ key: "effet", label: "Effet" },
{ key: "armure", label: "Armure" },
{ key: "cout", label: "cout" },
];
const effetsFields = [ const effetsFields = [
{ key: "nom", label: "Nom" }, { key: "nom", label: "Nom" },
{ key: "effet", label: "Effet" }, { key: "effet", label: "Effet" },
{ key: "surcout", label: "Surcout" }, { key: "surcout", label: "Surcout" },
]; ];
export { objectFields, equipMainsFields, effetsFields }; export { objectFields, equipMainsFields, tenuesFields, effetsFields };

View file

@ -9,4 +9,6 @@ export default interface JdrConfig {
objects: string[]; objects: string[];
equipMains: string[]; equipMains: string[];
effetsMains: string[]; effetsMains: string[];
tenues: string[];
effetsTenues: string[];
} }

View file

@ -4,7 +4,7 @@ import { useConfigStore } from "@/stores/config";
import { onMounted, computed } from "vue"; import { onMounted, computed } from "vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import MarkdownFile from "../components/MarkdownFile.vue"; import MarkdownFile from "../components/MarkdownFile.vue";
import { equipMainsFields, effetsFields } from "@/data/fields"; import { equipMainsFields, effetsFields, tenuesFields } from "@/data/fields";
const store = useConfigStore(); const store = useConfigStore();
const route = useRoute(); const route = useRoute();
@ -20,23 +20,41 @@ const equipMains = computed(() => {
const effetsMains = computed(() => { const effetsMains = computed(() => {
return store.jdrConfig?.effetsMains ?? []; return store.jdrConfig?.effetsMains ?? [];
}); });
const tenues = computed(() => {
return store.jdrConfig?.tenues ?? [];
});
const effetsTenues = computed(() => {
return store.jdrConfig?.effetsTenues ?? [];
});
</script> </script>
<template> <template>
<main> <main>
<MarkdownFile :path="`rules/inventaire/mains`"> <MarkdownFile :path="`rules/inventaire/mains`" :order="1">
<DynTable <DynTable
:fields="equipMainsFields" :fields="equipMainsFields"
:files="equipMains" :files="equipMains"
category="mains" category="mains"
/> />
</MarkdownFile> </MarkdownFile>
<MarkdownFile :path="`rules/inventaire/mains-effets`"> <MarkdownFile :path="`rules/inventaire/mains-effets`" :order="2">
<DynTable <DynTable
:fields="effetsFields" :fields="effetsFields"
:files="effetsMains" :files="effetsMains"
category="effets-mains" category="effets-mains"
/> />
</MarkdownFile> </MarkdownFile>
<MarkdownFile :path="`rules/inventaire/tenues`" :order="3">
<DynTable :fields="tenuesFields" :files="tenues" category="tenues" />
</MarkdownFile>
<MarkdownFile :path="`rules/inventaire/tenues-effets`" :order="4">
<DynTable
:fields="effetsFields"
:files="effetsTenues"
category="effets-tenues"
/>
</MarkdownFile>
</main> </main>
</template> </template>