mirror of
				https://github.com/em-squared/5e-drs.git
				synced 2025-10-30 21:24:18 +00:00 
			
		
		
		
	spell tooltip
This commit is contained in:
		
							parent
							
								
									38931015db
								
							
						
					
					
						commit
						f3643e6eaf
					
				
					 6 changed files with 99 additions and 3 deletions
				
			
		|  | @ -21,7 +21,6 @@ | ||||||
|         for (let i = 0; i < parts.length; i++) { |         for (let i = 0; i < parts.length; i++) { | ||||||
|           let disabled = false |           let disabled = false | ||||||
|           if (i == parts.length - 1) { |           if (i == parts.length - 1) { | ||||||
|             console.log(parts[i]) |  | ||||||
|             disabled = true |             disabled = true | ||||||
|           } |           } | ||||||
|           link += parts[i] |           link += parts[i] | ||||||
|  |  | ||||||
							
								
								
									
										64
									
								
								docs/.vuepress/theme/global-components/SpellTooltip.vue
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								docs/.vuepress/theme/global-components/SpellTooltip.vue
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | ||||||
|  | <template> | ||||||
|  |   <span> | ||||||
|  |     <router-link :to="{ path: spellPath }" v-if="spell"> | ||||||
|  |       <v-tooltip content-class="spell-tooltip-container" top> | ||||||
|  |         <template v-slot:activator="{ on }"> | ||||||
|  |           <em v-on="on">{{ label }}</em> | ||||||
|  |         </template> | ||||||
|  |         <div class="spell-tooltip"> | ||||||
|  |           <p class="spell-tooltip-title"><strong>{{ spell.title }}</strong></p> | ||||||
|  |           <div class="spell-details"> | ||||||
|  |             <div class="spell-school-level" v-html="displaySchoolLevel()"></div> | ||||||
|  |             <div class="spell-casting-time"><strong>Temps d'incantation</strong> : {{ spell.frontmatter.casting_time }}</div> | ||||||
|  |             <div class="spell-range"><strong>Portée</strong> : {{ spell.frontmatter.range }}</div> | ||||||
|  |             <div class="spell-components"><strong>Composantes</strong> : | ||||||
|  |               <template v-if="spell.frontmatter.components.verbal">V</template><template v-if="spell.frontmatter.components.somatic || spell.frontmatter.components.material">,</template> | ||||||
|  |               <template v-if="spell.frontmatter.components.somatic">S</template><template v-if="spell.frontmatter.components.material">,</template> | ||||||
|  |               <template v-if="spell.frontmatter.components.material">M</template> | ||||||
|  |               <template v-if="spell.frontmatter.components.materials">({{spell.frontmatter.components.materials}})</template> | ||||||
|  |             </div> | ||||||
|  |             <div class="spell-duration"><strong>Durée</strong> : <span v-if="spell.frontmatter.concentration">concentration, </span>{{ spell.frontmatter.duration }}</div> | ||||||
|  |           </div> | ||||||
|  |           <div class="spell-description">{{ spell.frontmatter.description }}</div> | ||||||
|  |         </div> | ||||||
|  |       </v-tooltip> | ||||||
|  |     </router-link> | ||||||
|  |     <router-link :to="{ path: spellPath }" v-else>{{ label }}</router-link> | ||||||
|  |   </span> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script> | ||||||
|  | import {displaySchoolLevel} from '@theme/util/spellHelpers' | ||||||
|  | 
 | ||||||
|  | export default { | ||||||
|  |   name: 'SpellTooltip', | ||||||
|  | 
 | ||||||
|  |   props: [ | ||||||
|  |     'label', | ||||||
|  |     'path' | ||||||
|  |   ], | ||||||
|  | 
 | ||||||
|  |   data () { | ||||||
|  |     return { | ||||||
|  |       spellPath: '', | ||||||
|  |       spell: '' | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|  |   methods: { | ||||||
|  |     displaySchoolLevel () { | ||||||
|  |       return displaySchoolLevel(this.spell.frontmatter) | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|  |   mounted () { | ||||||
|  |     console.log(this.path) | ||||||
|  |     this.spellPath = '/grimoire/' + this.path + '/' | ||||||
|  |     this.spell = this.$site.pages.find((el) => el.path === this.spellPath || el.path === this.spellPath + "/") | ||||||
|  |     console.log(this.spell) | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style lang="scss"> | ||||||
|  | </style> | ||||||
							
								
								
									
										30
									
								
								docs/.vuepress/theme/styles/_spelltooltip.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								docs/.vuepress/theme/styles/_spelltooltip.scss
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | .v-tooltip__content { | ||||||
|  |   &.spell-tooltip-container { | ||||||
|  |     opacity: 1 !important; | ||||||
|  | 
 | ||||||
|  |     .spell-tooltip { | ||||||
|  |       text-align: left; | ||||||
|  |       width: 50vw; | ||||||
|  |       max-width: 555px; | ||||||
|  |       min-width: 350px; | ||||||
|  |       background-color: #fff; | ||||||
|  |       color: #555; | ||||||
|  |       margin: -5px -16px -21px; | ||||||
|  |       padding: 12px; | ||||||
|  |       box-shadow: 0 0 12px #333; | ||||||
|  |       border-radius: 5px; | ||||||
|  | 
 | ||||||
|  |       .spell-tooltip-title { | ||||||
|  |         background-color: $color-dragon; | ||||||
|  |         color: #fff; | ||||||
|  |         margin: -12px -12px 6px; | ||||||
|  |         padding: 12px; | ||||||
|  |         border-radius: 5px 5px 0 0; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       .spell-details { | ||||||
|  |         margin-bottom: 24px; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | @ -5,3 +5,5 @@ | ||||||
| @import "tables"; | @import "tables"; | ||||||
| @import "blocks"; | @import "blocks"; | ||||||
| @import "layout"; | @import "layout"; | ||||||
|  | 
 | ||||||
|  | @import "spelltooltip"; | ||||||
|  |  | ||||||
|  | @ -1,5 +1,6 @@ | ||||||
| --- | --- | ||||||
| title: "Appel de familier" | title: "Appel de familier" | ||||||
|  | description: "Le PJ s’attache les services d’un animal familier." | ||||||
| school: "Invocation" | school: "Invocation" | ||||||
| level: 1 | level: 1 | ||||||
| concentration: false | concentration: false | ||||||
|  |  | ||||||
|  | @ -62,7 +62,7 @@ Au niveau 1, vous connaissez deux tours de magie de votre choix parmi la liste d | ||||||
| ### Emplacements de sorts | ### Emplacements de sorts | ||||||
| Vous trouverez dans le tableau d'évolution du sorcier le nombre d'emplacements de sorts à votre disposition. Tous vos emplacements de sort sont de même niveau. Pour lancer un de vos sorts de sorcier de niveau 1 ou supérieur, vous devez utiliser un emplacement de sort. Vous regagnez tous les emplacements de sort que vous avez utilisés après un repos court ou un repos long. | Vous trouverez dans le tableau d'évolution du sorcier le nombre d'emplacements de sorts à votre disposition. Tous vos emplacements de sort sont de même niveau. Pour lancer un de vos sorts de sorcier de niveau 1 ou supérieur, vous devez utiliser un emplacement de sort. Vous regagnez tous les emplacements de sort que vous avez utilisés après un repos court ou un repos long. | ||||||
| 
 | 
 | ||||||
| Par exemple, si vous êtes au niveau 5, vous avez deux emplacements de sort de niveau 3. Pour lancer le sort de niveau 1 [_vague tonnante_](/grimoire/vague-tonnante), vous devez utiliser un de ces emplacements de sort, et vous le lancez comme un sort de niveau 3. | Par exemple, si vous êtes au niveau 5, vous avez deux emplacements de sort de niveau 3. Pour lancer le sort de niveau 1 <SpellTooltip label="vague tonnante" path="vague-tonnante" />, vous devez utiliser un de ces emplacements de sort, et vous le lancez comme un sort de niveau 3. | ||||||
| 
 | 
 | ||||||
| ### Sorts connus de niveau 1 et supérieur | ### Sorts connus de niveau 1 et supérieur | ||||||
| Au niveau 1, vous connaissez deux sorts de niveau 1 choisis dans la liste de <router-link :to="{ path: '/grimoire/', query: { classes: 'Sorcier' }}">sorts de sorcier</router-link>. | Au niveau 1, vous connaissez deux sorts de niveau 1 choisis dans la liste de <router-link :to="{ path: '/grimoire/', query: { classes: 'Sorcier' }}">sorts de sorcier</router-link>. | ||||||
|  | @ -92,7 +92,7 @@ De plus, quand vous gagnez un niveau dans cette classe, vous pouvez choisir une | ||||||
| Au niveau 3, votre protecteur d'outre-monde vous accorde un cadeau en récompense de vos loyaux services. Vous gagnez au choix l'une des trois aptitudes suivantes. | Au niveau 3, votre protecteur d'outre-monde vous accorde un cadeau en récompense de vos loyaux services. Vous gagnez au choix l'une des trois aptitudes suivantes. | ||||||
| 
 | 
 | ||||||
| #### Pacte de la chaîne | #### Pacte de la chaîne | ||||||
| Vous apprenez le sort [_appel de familier_](/grimoire/appel-de-familier/), que pouvez lancer comme un rituel. Ce sort n'est pas comptabilisé parmi les sorts que vous connaissez. | Vous apprenez le sort <SpellTooltip label="appel de familier" path="appel-de-familier" />, que pouvez lancer comme un rituel. Ce sort n'est pas comptabilisé parmi les sorts que vous connaissez. | ||||||
| 
 | 
 | ||||||
| Quand vous lancez ce sort, vous pouvez choisir une forme classique pour votre familier ou l'une des formes spéciales suivantes : diablotin, quasit, stirge ou serpent volant. | Quand vous lancez ce sort, vous pouvez choisir une forme classique pour votre familier ou l'une des formes spéciales suivantes : diablotin, quasit, stirge ou serpent volant. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Maxime Moraine
						Maxime Moraine