1
0
Fork 0
mirror of https://github.com/em-squared/5e-drs.git synced 2025-10-30 05:04:21 +00:00

amélioration et consolidation du calculateur de caractéristiques

This commit is contained in:
Maxime Moraine 2020-04-28 12:33:49 +02:00
parent 1eaeef1d97
commit 5d94e77883
10 changed files with 215 additions and 132 deletions

View file

@ -22,7 +22,7 @@ export const ABILITYSCORES = [
]
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] }
{ text: 'Courageux', min: 6, max: 15, pointBuy: 19, standardArray: [14,12,12,10,10,8] },
{ text: 'Héroïque', min: 8, max: 15, pointBuy: 27, standardArray: [15,14,13,12,10,8] },
{ text: 'Légendaire', min: 8, max: 16, pointBuy: 36, standardArray: [16,15,13,12,12,10] }
]

View file

@ -16,67 +16,94 @@ export const races = [
],
},
{
key: 'elfe-d-aether',
label: "Elfe d'aether",
key: 'elfe',
label: "Elfe",
abilityBonuses: [
{ ability: 'dex', value: 2 },
{ ability: 'int', value: 1 }
{ ability: 'dex', value: 2 }
],
variants: [
{
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: 'elfe-de-fer',
label: "Elfe de fer",
key: 'gnome',
label: "Gnome",
abilityBonuses: [
{ ability: 'dex', value: 2 },
{ ability: 'cha', value: 1 }
{ ability: 'int', value: 2 }
],
variants: [
{
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: 'elfe-des-sylves',
label: "Elfe des sylves",
key: 'halfelin',
label: "Halfelin",
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 }
{ ability: 'dex', value: 2 }
],
variants: [
{
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 }
]
}
]
},
{
@ -89,40 +116,63 @@ export const races = [
{ ability: 'int', value: 1 },
{ ability: 'sag', value: 1 },
{ ability: 'cha', value: 1 }
],
variants: [
{
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: '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",
key: 'nain',
label: "Nain",
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 }
{ ability: 'con', value: 2 }
],
variants: [
{
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 }
]
}
]
},
{

View file

@ -10,7 +10,10 @@
<v-row>
<v-col>
<v-select dense :items="races" label="Race" item-text="label" v-model="race" return-object outlined @change="selectRace(true)"></v-select>
<v-select dense :items="races" label="Race" item-text="label" v-model="selectedRace" return-object outlined @change="selectRace(true, true)"></v-select>
</v-col>
<v-col v-if="selectedRace && selectedRace.variants">
<v-select dense :items="selectedRace.variants" label="Variantes" item-text="label" v-model="selectedSubrace" return-object outlined @change="selectRace(true)"></v-select>
</v-col>
<v-col v-if="race && race.freeAbilityBonuses">
<v-select dense :items="abilityScoresChoices" multiple label="Bonus aux caractéristiques" v-model="abilityBonuses" outlined @change="selectAbilityBonus"></v-select>
@ -45,8 +48,12 @@
<tbody>
<tr v-for="ability in abilityScores" :key="ability.key">
<td class="text-center"><span class="subtitle-2">{{ ability.label }}</span></td>
<td class="text-center" style="width:110px">
<v-text-field v-if="generationMethod == 'pointBuy'" class="text-center" outlined hide-details dense type="number" min="6" max="16" v-model="ability.value"></v-text-field>
<td class="text-center ability-field">
<div v-if="generationMethod == 'pointBuy'" class="d-flex align-center">
<v-btn icon dense color="accent" :disabled="ability.value <= powerTier.min" @click.stop="ability.value--"><v-icon>mdi-minus-circle</v-icon></v-btn>
<v-text-field class="text-center" readonly outlined hide-details dense :value="ability.value"></v-text-field>
<v-btn icon dense color="accent" :disabled="ability.value >= powerTier.max" @click.stop="ability.value++"><v-icon>mdi-plus-circle</v-icon></v-btn>
</div>
<template v-else-if="generationMethod == 'standardArray'">
<v-select v-if="!ability.value" dense :items="standardArrayValues" v-model="ability.value" outlined hide-details clearable @change="selectAbilityValue(ability)"></v-select>
<v-text-field v-else class="text-center" outlined hide-details dense readonly clearable v-model="ability.value"></v-text-field>
@ -89,6 +96,8 @@ export default {
powerTiers: POWERTIERS,
abilityScoresChoices: null,
races: races,
selectedSubrace: null,
selectedRace: null,
race: null,
powerTier: POWERTIERS[1],
abilityScores: [
@ -166,7 +175,17 @@ export default {
return displayBonus(score)
},
selectRace (clear = false) {
selectRace (clearAbilities = false, clearSubrace = false) {
if (clearSubrace) {
this.selectedSubrace = null
}
if (this.selectedSubrace) {
this.race = this.selectedSubrace
} else {
this.race = this.selectedRace
}
for (let ability of this.abilityScores) {
ability.racialBonus = 0
if (this.race.abilityBonuses) {
@ -178,7 +197,7 @@ export default {
}
}
if (clear) {
if (clearAbilities) {
this.abilityBonuses = []
}
@ -230,6 +249,8 @@ export default {
},
reset () {
this.selectedRace = null
this.selectedSubrace = null
this.race = null
this.generationMethod = GENERATION_METHOD_CHOICES[1].value
this.powerTier = POWERTIERS[1]
@ -253,4 +274,9 @@ export default {
text-align: center;
}
}
.ability-field {
.v-input__slot {
width: 80px;
}
}
</style>

View file

@ -11,7 +11,13 @@ import Breadcrumb from '@theme/components/Breadcrumb'
import AbilityCalculator from '@theme/components/AbilityCalculator'
export default {
components: { Breadcrumb, AbilityCalculator }
components: { Breadcrumb, AbilityCalculator },
mounted () {
this.$store.commit('setHasRightDrawer', false)
this.$store.commit('setRightDrawer', this.$vuetify.breakpoint.lgAndUp)
this.$store.commit('setInRightDrawer', null)
}
}
</script>

View file

@ -12,28 +12,28 @@ abilityScores:
int: 16
sag: 15
cha: 19
savingThrows:
savingThrows:
- "dex"
- "con"
- "sag"
- "cha"
ac:
ac:
armorType: "armure naturelle"
value: 9
skills:
skills:
- name: "discretion"
- name: "perception"
isExpert: true
movement:
movement:
walk: 12
burrow: 9
fly: 24
senses:
senses:
blindsight: 18
darkvision: 36
damageTypeImmunities:
damageTypeImmunities:
- "foudre"
languages:
languages:
- "commun"
- "draconique"
environments:
@ -48,7 +48,7 @@ _**Résistance légendaire (3/jour)**_. Le dragon peut remplacer l'échec d'un d
## Actions
_**Attaques multiples**_. Le dragon peut utiliser sa _Présence terrifiante_. Il effectue ensuite trois attaques : une avec sa morsure et deux avec ses griffes.
_**Griffe**_. _Attaque d'arme au corps à corps_ : +12 pour toucher, allonge 3 m, une cible.
_**Griffe**_. _Attaque d'arme au corps à corps_ : +12 pour toucher, allonge 1,50 m, une cible.
_Touché_ : 14 (2d6+7) dégâts tranchants.
_**Morsure**_. _Attaque d'arme au corps à corps_ : +12 pour toucher, allonge 4,50 m, une cible.
@ -56,7 +56,7 @@ _Touché_ : 18 (2d10+7) dégâts perforants plus 5 (1d10) dégâts de foudre.
_**Présence terrifiante**_. Les créatures choisies par le dragon, situées à 36 mètres ou moins de lui et conscientes de sa présence, doivent chacune réussir un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Sagesse DD 17 pour ne pas être _terrorisées_ pendant 1 minute. Une créature peut retenter le [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) à la fin de chacun de ses tours et mettre fin à l'effet dont elle est victime en cas de réussite. Si le [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) d'une créature est réussi ou si l'effet dont elle est victime prend fin, elle est immunisée contre la présence terrifiante du dragon pendant 24 heures.
_**Queue**_. _Attaque d'arme au corps à corps_ : +12 pour toucher, allonge 6 m, une cible.
_**Queue**_. _Attaque d'arme au corps à corps_ : +12 pour toucher, allonge 4,50 m, une cible.
_Touché_ : 16 (2d8+7) dégâts contondants.
_**Souffle de foudre (Recharge 5-6)**_. Le dragon souffle de la foudre sur une ligne de 27 mètres de long et 1,50 mètre de large. Les créatures sur cette ligne doivent chacune effectuer un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Dextérité DD 19 ; elles subissent 66 (12d10) dégâts de foudre en cas d'échec ou la moitié de ces dégâts seulement en cas de réussite.

View file

@ -48,4 +48,4 @@ _Touché_ : 7 (1d10+2) dégâts perforants.
_**Souffles (Recharge 5-6)**_. Le dragon utilise l'un des souffles suivants :
* _Souffle de feu_. Le dragon souffle du feu sur une ligne de 6 mètres de long et 1,50 mètre de large. Les créatures sur cette ligne doivent chacune effectuer un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Dextérité DD 11 ; elles subissent 14 (4d6) dégâts de feu en cas de [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) raté ou la moitié de ces dégâts seulement en cas de réussite.
* _Souffle soporifique_. Le dragon souffle un gaz soporifique sur un cône de 4,50 mètres. Les créatures dans ce cône doivent chacune réussir un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Constitution DD 11 pour ne pas tomber _inconscientes_ pendant 10 minutes. Une créature victime de cet effet reprend connaissance si elle subit des dégâts ou si quelqu'un consacre une action à lui faire reprendre ses esprits.
* _Souffle soporifique_. Le dragon souffle un gaz soporifique sur un cône de 4,50 mètres. Les créatures dans ce cône doivent chacune réussir un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Constitution DD 11 pour ne pas tomber _inconscientes_ pendant 1 minute. Une créature victime de cet effet reprend connaissance si elle subit des dégâts ou si quelqu'un consacre une action à lui faire reprendre ses esprits.

View file

@ -12,29 +12,29 @@ abilityScores:
int: 12
sag: 11
cha: 15
savingThrows:
savingThrows:
- "dex"
- "con"
- "sag"
- "cha"
ac:
ac:
armorType: "armure naturelle"
value: 7
skills:
skills:
- name: "discretion"
- name: "perception"
isExpert: true
- name: "persuasion"
movement:
movement:
walk: 12
burrow: 6
fly: 24
senses:
senses:
blindsight: 9
darkvision: 36
damageTypeImmunities:
damageTypeImmunities:
- "feu"
languages:
languages:
- "commun"
- "draconique"
environments:
@ -55,4 +55,4 @@ _Touché_ : 15 (2d10+4) dégâts perforants.
_**Souffles (Recharge 5-6)**_. Le dragon utilise l'un des souffles suivants :
* _Souffle de feu_. Le dragon souffle du feu sur une ligne de 12 mètres de long et 1,50 mètre de large. Les créatures sur cette ligne doivent chacune effectuer un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Dextérité DD 14 ; elles subissent 42 (12d6) dégâts de feu en cas de [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) raté ou la moitié de ces dégâts seulement en cas de réussite.
* _Souffle soporifique_. Le dragon souffle un gaz soporifique sur un cône de 9 mètres. Les créatures dans ce cône doivent chacune réussir un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Constitution DD 14 pour ne pas tomber _inconscientes_ pendant 10 minutes. Une créature victime de cet effet reprend connaissance si elle subit des dégâts ou si quelqu'un consacre une action à lui faire reprendre ses esprits.
* _Souffle soporifique_. Le dragon souffle un gaz soporifique sur un cône de 9 mètres. Les créatures dans ce cône doivent chacune réussir un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Constitution DD 14 pour ne pas tomber _inconscientes_ pendant 5 minutes. Une créature victime de cet effet reprend connaissance si elle subit des dégâts ou si quelqu'un consacre une action à lui faire reprendre ses esprits.

View file

@ -12,28 +12,28 @@ abilityScores:
int: 14
sag: 13
cha: 17
savingThrows:
savingThrows:
- "dex"
- "con"
- "sag"
- "cha"
ac:
ac:
armorType: "armure naturelle"
value: 7
skills:
skills:
- name: "discretion"
- name: "perception"
isExpert: true
movement:
movement:
walk: 12
swim: 12
fly: 24
senses:
senses:
blindsight: 18
darkvision: 36
damageTypeImmunities:
damageTypeImmunities:
- "acide"
languages:
languages:
- "commun"
- "draconique"
environments:
@ -59,7 +59,7 @@ _Touché_ : 17 (2d10+6) dégâts perforants plus 4 (1d8) dégâts d'acide.
_**Présence terrifiante**_. Les créatures choisies par le dragon, situées à 36 mètres ou moins de lui et conscientes de sa présence, doivent chacune réussir un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Sagesse DD 16 pour ne pas être _terrorisées_ pendant 1 minute. Une créature peut retenter le [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) à la fin de chacun de ses tours et mettre fin à l'effet dont elle est victime en cas de réussite. Si le [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) d'une créature est réussi ou si l'effet dont elle est victime prend fin, elle est immunisée contre la présence terrifiante du dragon pendant 24 heures.
_**Queue**_. _Attaque d'arme au corps à corps_ : +11 pour toucher, allonge 6 m, une cible.
_**Queue**_. _Attaque d'arme au corps à corps_ : +11 pour toucher, allonge 4,50 m, une cible.
_Touché_ : 15 (2d8+6) dégâts contondants.
_**Souffle d'acide (Recharge 5-6)**_. Le dragon souffle de l'acide sur une ligne de 18 mètres de long et 1,50 mètres de large. Les créatures sur cette ligne doivent chacune effectuer un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Dextérité DD 18 ; elles subissent 54 (12d8) dégâts d'acide en cas d'échec ou la moitié de ces dégâts seulement en cas de réussite.

View file

@ -12,28 +12,28 @@ abilityScores:
int: 16
sag: 13
cha: 21
savingThrows:
savingThrows:
- "dex"
- "con"
- "sag"
- "cha"
ac:
ac:
armorType: "armure naturelle"
value: 9
skills:
skills:
- name: "discretion"
- name: "perception"
isExpert: true
movement:
movement:
walk: 12
climb: 12
fly: 24
senses:
senses:
blindsight: 18
darkvision: 36
damageTypeImmunities:
damageTypeImmunities:
- "feu"
languages:
languages:
- "commun"
- "draconique"
environments:
@ -49,15 +49,15 @@ _**Résistance légendaire (3/jour)**_. Le dragon peut remplacer l'échec d'un d
## Actions
_**Attaques multiples**_. Le dragon peut utiliser sa _Présence terrifiante_. Il effectue ensuite trois attaques : une avec sa morsure et deux avec ses griffes.
_**Griffe**_. _Attaque d'arme au corps à corps_ : +14 pour toucher, allonge 3 m, une cible.
_**Griffe**_. _Attaque d'arme au corps à corps_ : +14 pour toucher, allonge 1,50 m, une cible.
_Touché_ : 15 (2d6+8) dégâts tranchants.
_**Morsure**_. _Attaque d'arme au corps à corps_ : +14 pour toucher, allonge 4,50 m, une cible.
_**Morsure**_. _Attaque d'arme au corps à corps_ : +14 pour toucher, allonge 3 m, une cible.
_Touché_ : 19 (2d10+8) dégâts perforants plus 7 (2d6) dégâts de feu.
_**Présence terrifiante**_. Les créatures choisies par le dragon, situées à 36 mètres ou moins de lui et conscientes de sa présence, doivent chacune réussir un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Sagesse DD 19 pour ne pas être _terrorisées_ pendant 1 minute. Une créature peut retenter le [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) à la fin de chacun de ses tours et mettre fin à l'effet dont elle est victime en cas de réussite. Si le [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) d'une créature est réussi ou si l'effet dont elle est victime prend fin, elle est immunisée contre la présence terrifiante du dragon pendant 24 heures.
_**Queue**_. _Attaque d'arme au corps à corps_ : +14 pour toucher, allonge 6 m, une cible.
_**Queue**_. _Attaque d'arme au corps à corps_ : +14 pour toucher, allonge 4,50 m, une cible.
_Touché_ : 17 (2d8+8) dégâts contondants.
_**Souffle de feu (Recharge 5-6)**_. Le dragon souffle du feu sur un cône de 18 mètres. Les créatures dans ce cône doivent chacune effectuer un [jet de sauvegarde](/utiliser-les-caracteristiques#jets-de-sauvegarde) de Dextérité DD 21 ; elles subissent 63 (18d6) dégâts de feu en cas d'échec ou la moitié de ces dégâts seulement en cas de réussite.

View file

@ -4,6 +4,7 @@ type: "Créature monstrueuse"
size: "Gig"
alignment: "non-alignée"
challenge: "16"
proficiencyBonus: 4
hitDiceCount: 14
abilityScores:
for: 28
@ -12,17 +13,17 @@ abilityScores:
int: 3
sag: 10
cha: 6
savingThrows:
savingThrows:
- "con"
- "sag"
ac:
ac:
armorType: "armure naturelle"
value: 8
movement:
movement:
swim: 15
senses:
senses:
blindsight: 18
languages:
languages:
- ""
environments:
- Mer / Océan