mirror of
				https://github.com/em-squared/5e-drs.git
				synced 2025-10-31 05:24:20 +00:00 
			
		
		
		
	amélioration et consolidation du calculateur de caractéristiques
This commit is contained in:
		
							parent
							
								
									1eaeef1d97
								
							
						
					
					
						commit
						5d94e77883
					
				
					 10 changed files with 215 additions and 132 deletions
				
			
		|  | @ -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] } | ||||
| ] | ||||
|  |  | |||
|  | @ -15,6 +15,13 @@ export const races = [ | |||
|       { ability: 'con', value: 1 } | ||||
|     ], | ||||
|   }, | ||||
|   { | ||||
|     key: 'elfe', | ||||
|     label: "Elfe", | ||||
|     abilityBonuses: [ | ||||
|       { ability: 'dex', value: 2 } | ||||
|     ], | ||||
|     variants: [ | ||||
|       { | ||||
|         key: 'elfe-d-aether', | ||||
|         label: "Elfe d'aether", | ||||
|  | @ -38,7 +45,16 @@ export const races = [ | |||
|           { ability: 'dex', value: 2 }, | ||||
|           { ability: 'sag', value: 1 } | ||||
|         ] | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     key: 'gnome', | ||||
|     label: "Gnome", | ||||
|     abilityBonuses: [ | ||||
|       { ability: 'int', value: 2 } | ||||
|     ], | ||||
|     variants: [ | ||||
|       { | ||||
|         key: 'gnome-des-roches', | ||||
|         label: "Gnome des roches", | ||||
|  | @ -62,7 +78,16 @@ export const races = [ | |||
|           { ability: 'int', value: 2 }, | ||||
|           { ability: 'sag', value: 1 } | ||||
|         ] | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     key: 'halfelin', | ||||
|     label: "Halfelin", | ||||
|     abilityBonuses: [ | ||||
|       { ability: 'dex', value: 2 } | ||||
|     ], | ||||
|     variants: [ | ||||
|       { | ||||
|         key: 'halfelin-pied-leger', | ||||
|         label: "Halfelin pied-léger", | ||||
|  | @ -78,7 +103,21 @@ export const races = [ | |||
|           { 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 } | ||||
|     ], | ||||
|     variants: [ | ||||
|       { | ||||
|         key: 'humain', | ||||
|         label: "Humain", | ||||
|  | @ -100,7 +139,16 @@ export const races = [ | |||
|         key: 'humain-variante-maitrises', | ||||
|         label: "Humain (variante maîtrises)", | ||||
|         freeAbilityBonuses: { qty: 4, value: 1 } | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     key: 'nain', | ||||
|     label: "Nain", | ||||
|     abilityBonuses: [ | ||||
|       { ability: 'con', value: 2 } | ||||
|     ], | ||||
|     variants: [ | ||||
|       { | ||||
|         key: 'nain-des-tertres', | ||||
|         label: "Nain des tertres", | ||||
|  | @ -124,6 +172,8 @@ export const races = [ | |||
|           { ability: 'con', value: 2 }, | ||||
|           { ability: 'for', value: 1 } | ||||
|         ] | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     key: 'aasimar', | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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> | ||||
| 
 | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ type: "Créature monstrueuse" | |||
| size: "Gig" | ||||
| alignment: "non-alignée" | ||||
| challenge: "16" | ||||
| proficiencyBonus: 4 | ||||
| hitDiceCount: 14 | ||||
| abilityScores: | ||||
|   for: 28 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Maxime Moraine
						Maxime Moraine