From 79ed65ccaf3741de57032e6d0a3692d3100e14d7 Mon Sep 17 00:00:00 2001 From: Maxime Moraine Date: Mon, 27 Apr 2020 09:04:49 +0200 Subject: [PATCH 1/2] ability calculator --- docs/.vuepress/config.js | 6 ++ docs/.vuepress/data/abilityScores.js | 22 +++++ docs/.vuepress/data/races.js | 10 ++ .../theme/components/AbilityCalculator.vue | 91 +++++++++++++++++++ .../theme/layouts/AbilityCalculatorLayout.vue | 14 +++ 5 files changed, 143 insertions(+) create mode 100644 docs/.vuepress/data/abilityScores.js create mode 100644 docs/.vuepress/data/races.js create mode 100644 docs/.vuepress/theme/components/AbilityCalculator.vue create mode 100644 docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 72af488..d7ec31b 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -179,6 +179,12 @@ module.exports = { frontmatter: { layout: 'CreateMagicItemLayout' } + }, + { + path: '/calculateur-de-caracteristiques/', + frontmatter: { + layout: 'AbilityCalculatorLayout' + } } ], themeConfig: { diff --git a/docs/.vuepress/data/abilityScores.js b/docs/.vuepress/data/abilityScores.js new file mode 100644 index 0000000..590dfb1 --- /dev/null +++ b/docs/.vuepress/data/abilityScores.js @@ -0,0 +1,22 @@ +export const ABILITYSCORECOSTS = { + 6: { cost: -2 }, + 7: { cost: -1 }, + 8: { cost: 0 }, + 9: { cost: 1 }, + 10: { cost: 2 }, + 11: { cost: 3 }, + 12: { cost: 4 }, + 13: { cost: 5 }, + 14: { cost: 7 }, + 15: { cost: 9 }, + 16: { cost: 12 }, +} + +export const ABILITYSCORES = [ + { text: 'Force', value: 'for' }, + { text: 'Dextérité', value: 'dex' }, + { text: 'Constitution', value: 'con' }, + { text: 'Intelligence', value: 'int' }, + { text: 'Sagesse', value: 'sag' }, + { text: 'Charisme', value: 'cha' }, +] diff --git a/docs/.vuepress/data/races.js b/docs/.vuepress/data/races.js new file mode 100644 index 0000000..b7b6b13 --- /dev/null +++ b/docs/.vuepress/data/races.js @@ -0,0 +1,10 @@ +export const races = [ + { + key: 'demi-elfe', + label: 'Demi-elfe', + abilityBonuses: [ + { ability: 'cha', value: 2 } + ], + freeAbilityBonuses: { qty: 2, value: 1 } + } +] diff --git a/docs/.vuepress/theme/components/AbilityCalculator.vue b/docs/.vuepress/theme/components/AbilityCalculator.vue new file mode 100644 index 0000000..b6fc15e --- /dev/null +++ b/docs/.vuepress/theme/components/AbilityCalculator.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue b/docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue new file mode 100644 index 0000000..9c7828c --- /dev/null +++ b/docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue @@ -0,0 +1,14 @@ + + + + + From 4dab0808de3fadce9af04d5fd3b7be10f5e4d2f8 Mon Sep 17 00:00:00 2001 From: Maxime Moraine Date: Mon, 27 Apr 2020 17:42:48 +0200 Subject: [PATCH 2/2] calculateur de carac. --- docs/.vuepress/config.js | 4 + docs/.vuepress/data/abilityScores.js | 6 + docs/.vuepress/data/races.js | 166 ++++++++++++++ .../theme/components/AbilityCalculator.vue | 217 +++++++++++++++--- .../.vuepress/theme/components/Breadcrumb.vue | 2 + .../theme/layouts/AbilityCalculatorLayout.vue | 9 +- 6 files changed, 376 insertions(+), 28 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index d7ec31b..1723f59 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -577,6 +577,10 @@ module.exports = { title: "Création d'objet magique", path: '/creation-d-objet-magique/' }, + { + title: "Calculateur de caractéristiques", + path: '/calculateur-de-caracteristiques/' + }, ] }, {type: 'divider'}, diff --git a/docs/.vuepress/data/abilityScores.js b/docs/.vuepress/data/abilityScores.js index 590dfb1..12835ca 100644 --- a/docs/.vuepress/data/abilityScores.js +++ b/docs/.vuepress/data/abilityScores.js @@ -20,3 +20,9 @@ export const ABILITYSCORES = [ { text: 'Sagesse', value: 'sag' }, { text: 'Charisme', value: 'cha' }, ] + +export const POWERTIERS = [ + { text: 'Courageux', pointBuy: 19, standardArray: [14,12,12,10,10,8] }, + { text: 'Héroïque', pointBuy: 27, standardArray: [15,14,13,12,10,8] }, + { text: 'Légendaire', pointBuy: 36, standardArray: [16,15,13,12,12,10] } +] diff --git a/docs/.vuepress/data/races.js b/docs/.vuepress/data/races.js index b7b6b13..c70f9a9 100644 --- a/docs/.vuepress/data/races.js +++ b/docs/.vuepress/data/races.js @@ -6,5 +6,171 @@ export const races = [ { ability: 'cha', value: 2 } ], freeAbilityBonuses: { qty: 2, value: 1 } + }, + { + key: 'demi-orc', + label: 'Demi-orc', + abilityBonuses: [ + { ability: 'for', value: 2 }, + { ability: 'con', value: 1 } + ], + }, + { + key: 'elfe-d-aether', + label: "Elfe d'aether", + abilityBonuses: [ + { ability: 'dex', value: 2 }, + { ability: 'int', value: 1 } + ] + }, + { + key: 'elfe-de-fer', + label: "Elfe de fer", + abilityBonuses: [ + { ability: 'dex', value: 2 }, + { ability: 'cha', value: 1 } + ] + }, + { + key: 'elfe-des-sylves', + label: "Elfe des sylves", + abilityBonuses: [ + { ability: 'dex', value: 2 }, + { ability: 'sag', value: 1 } + ] + }, + { + key: 'gnome-des-roches', + label: "Gnome des roches", + abilityBonuses: [ + { ability: 'int', value: 2 }, + { ability: 'con', value: 1 } + ] + }, + { + key: 'gnome-des-fees', + label: "Gnome des fées", + abilityBonuses: [ + { ability: 'int', value: 2 }, + { ability: 'dex', value: 1 } + ] + }, + { + key: 'gnome-des-lacs', + label: "Gnome des lacs", + abilityBonuses: [ + { ability: 'int', value: 2 }, + { ability: 'sag', value: 1 } + ] + }, + { + key: 'halfelin-pied-leger', + label: "Halfelin pied-léger", + abilityBonuses: [ + { ability: 'dex', value: 2 }, + { ability: 'cha', value: 1 } + ] + }, + { + key: 'halfelin-grand-sabot', + label: "Halfelin grand-sabot", + abilityBonuses: [ + { ability: 'dex', value: 2 }, + { ability: 'con', value: 1 } + ] + }, + { + key: 'humain', + label: "Humain", + abilityBonuses: [ + { ability: 'for', value: 1 }, + { ability: 'dex', value: 1 }, + { ability: 'con', value: 1 }, + { ability: 'int', value: 1 }, + { ability: 'sag', value: 1 }, + { ability: 'cha', value: 1 } + ] + }, + { + key: 'humain-variante-don', + label: "Humain (variante don)", + freeAbilityBonuses: { qty: 3, value: 1 } + }, + { + key: 'humain-variante-maitrises', + label: "Humain (variante maîtrises)", + freeAbilityBonuses: { qty: 4, value: 1 } + }, + { + key: 'nain-des-tertres', + label: "Nain des tertres", + abilityBonuses: [ + { ability: 'con', value: 2 }, + { ability: 'sag', value: 1 } + ] + }, + { + key: 'nain-des-pierres', + label: "Nain des pierres", + abilityBonuses: [ + { ability: 'con', value: 2 }, + { ability: 'int', value: 1 } + ] + }, + { + key: 'nain-des-laves', + label: "Nain des laves", + abilityBonuses: [ + { ability: 'con', value: 2 }, + { ability: 'for', value: 1 } + ] + }, + { + key: 'aasimar', + label: "Aasimar", + abilityBonuses: [ + { ability: 'cha', value: 2 }, + { ability: 'sag', value: 1 } + ] + }, + { + key: 'demi-ogre', + label: "Demi-ogre", + abilityBonuses: [ + { ability: 'for', value: 1 }, + { ability: 'con', value: 2 } + ] + }, + { + key: 'felys', + label: "Félys", + abilityBonuses: [ + { ability: 'dex', value: 2 }, + { ability: 'sag', value: 1 } + ] + }, + { + key: 'homme-serpent', + label: "Homme-serpent", + abilityBonuses: [ + { ability: 'sag', value: 2 }, + { ability: 'cha', value: 1 } + ] + }, + { + key: 'sangdragon', + label: "Sangdragon", + abilityBonuses: [ + { ability: 'for', value: 2 }, + { ability: 'cha', value: 1 } + ] + }, + { + key: 'tieffelin', + label: "Tieffelin", + abilityBonuses: [ + { ability: 'cha', value: 2 }, + { ability: 'int', value: 1 } + ] } ] diff --git a/docs/.vuepress/theme/components/AbilityCalculator.vue b/docs/.vuepress/theme/components/AbilityCalculator.vue index b6fc15e..967b786 100644 --- a/docs/.vuepress/theme/components/AbilityCalculator.vue +++ b/docs/.vuepress/theme/components/AbilityCalculator.vue @@ -1,38 +1,96 @@ diff --git a/docs/.vuepress/theme/components/Breadcrumb.vue b/docs/.vuepress/theme/components/Breadcrumb.vue index 74f0680..16e950a 100644 --- a/docs/.vuepress/theme/components/Breadcrumb.vue +++ b/docs/.vuepress/theme/components/Breadcrumb.vue @@ -53,6 +53,8 @@ crumbs.push({to: page.path, disabled: disabled, text: 'Création de sort'}) } else if (page.path == '/creation-de-monstre-pnj/') { crumbs.push({to: page.path, disabled: disabled, text: 'Création de monstre ou PNJ'}) + } else if (page.path == '/calculateur-de-caracteristiques/') { + crumbs.push({to: page.path, disabled: disabled, text: 'Calculateur de caractéristiques'}) } else { crumbs.push({to: page.path, disabled: disabled, text: page.frontmatter.breadcrumb || page.title}) } diff --git a/docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue b/docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue index 9c7828c..8058951 100644 --- a/docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue +++ b/docs/.vuepress/theme/layouts/AbilityCalculatorLayout.vue @@ -1,12 +1,17 @@