Mettre en réserve depuis un sort

Ajout d'une icône pour mettre les sorts en réserve depuis la
liste de sorts
This commit is contained in:
Vincent Vandemeulebrouck 2024-12-10 21:10:36 +01:00
parent 979d49f96e
commit 75d6f78b40
6 changed files with 41 additions and 23 deletions

View File

@ -1,4 +1,7 @@
# 12.0 # 12.0
## 12.0.28 - Les réserves d'Astrobazzarh
- possibilité de mettre en réserve depuis un sort connu
## 12.0.27 - Les vêtements d'Astrobazzarh ## 12.0.27 - Les vêtements d'Astrobazzarh
- Ajout de la liste des armures dans l'onglet caractéristiques - Ajout de la liste des armures dans l'onglet caractéristiques
- Ajout d'une option pour choisir une carte des TMR alternatives - Ajout d'une option pour choisir une carte des TMR alternatives
@ -115,11 +118,9 @@
- encodage de l'export en windows-1252 - encodage de l'export en windows-1252
- export de l'esquive avec armure et sans armure - export de l'esquive avec armure et sans armure
## 12.0.10 - Le scriptorium d'Astrobazzarh ## 12.0.9 - 12.0.10 - Le scriptorium d'Astrobazzarh
- corrections de l'export scriptarium - corrections de l'export scriptarium
- ajout d'une fonction avancée pour un exporter "scriptarium" des personnages
## 12.0.9 - Le scriptorium d'Astrobazzarh
- ajout d'une fonction avancée pour exporter les personnages dans un format csv
## 12.0.8 - La quincaillerie d'Astrobazzarh ## 12.0.8 - La quincaillerie d'Astrobazzarh
- le propriétaire est indiqué dans les feuilles d'équipements/compétences/... - le propriétaire est indiqué dans les feuilles d'équipements/compétences/...

View File

@ -214,7 +214,7 @@ export class RdDActorSheet extends RdDBaseActorSangSheet {
// Boutons spéciaux MJs // Boutons spéciaux MJs
this.html.find('.forcer-tmr-aleatoire').click(async event => this.actor.reinsertionAleatoire("Action MJ")) this.html.find('.forcer-tmr-aleatoire').click(async event => this.actor.reinsertionAleatoire("Action MJ"))
this.html.find('.don-de-haut-reve').click(async event => this.actor.addDonDeHautReve()) this.html.find('.don-de-haut-reve').click(async event => this.actor.addDonDeHautReve())
this.html.find('.nouveau-sort-reserve').click(async event => this.actor.addSortReserve()) this.html.find('.sortreserve-add').click(async event => this.actor.addSortReserve(RdDSheetUtility.getItemId(event)))
this.html.find('.afficher-tmr').click(async event => this.actor.changeTMRVisible()) this.html.find('.afficher-tmr').click(async event => this.actor.changeTMRVisible())
} }

View File

@ -991,21 +991,31 @@ export class RdDActor extends RdDBaseActorSang {
} }
} }
async addSortReserve() { async addSortReserve(itemId) {
if (itemId) {
const item = this.items.get(itemId)
if (item.type == ITEM_TYPES.sort && !item.system.isrituel) {
this.$createSortReserve(item)
return
}
}
const selectSortReserve = { const selectSortReserve = {
title: "Créer un sort en réserve", title: "Créer un sort en réserve",
label: "Choisir un sort", label: "Choisir un sort",
list: this.itemTypes[ITEM_TYPES.sort].filter(it => !it.system.isrituel) list: this.itemTypes[ITEM_TYPES.sort].filter(it => !it.system.isrituel)
} }
DialogSelect.select(selectSortReserve, sort => DialogSelect.select(selectSortReserve, sort => this.$createSortReserve(sort))
this.createEmbeddedDocuments("Item", }
[{
type: ITEM_TYPES.sortreserve, $createSortReserve(sort) {
name: sort.name, this.createEmbeddedDocuments("Item",
img: sort.img, [{
system: { sortid: sort.id, draconic: sort.system.draconic, ptreve: Number(sort.system.ptreve.match(/\d+/)), coord: 'A1', heurecible: 'Vaisseau' } type: ITEM_TYPES.sortreserve,
}], name: sort.name,
{ renderSheet: true })) img: sort.img,
system: { sortid: sort.id, draconic: sort.system.draconic, ptreve: Number(sort.system.ptreve.match(/\d+/)), coord: 'A1', heurecible: 'Vaisseau' }
}],
{ renderSheet: true })
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async reinsertionAleatoire(raison, accessible = tmr => true) { async reinsertionAleatoire(raison, accessible = tmr => true) {

View File

@ -816,12 +816,12 @@ input:is(.blessure-premiers_soins, .blessure-soins_complets) {
.competence-list .item-controls.hidden-controls { .competence-list .item-controls.hidden-controls {
display: none !important; display: none !important;
} }
.item-controls i:is(.fas, .fa, .fa-solid) { .item-controls i:is(.fas, .fa, .fa-solid, .fa-regular) {
font-size: 0.8em; font-size: 0.8em;
color: var(--color-controls); color: var(--color-controls);
} }
.item-controls i:is(.fas, .far, .fa-solid):hover { .item-controls i:is(.fas, .far, .fa-solid, .fa-regular):hover {
opacity: 0.7 ; opacity: 0.6;
} }
.rdd-roll-dialog .description-sort { .rdd-roll-dialog .description-sort {

View File

@ -1,6 +1,7 @@
{{#if sortsReserve.length}} {{#if sortsReserve.length}}
<h3>Sorts en Réserve{{#if options.isGM}} <a class="nouveau-sort-reserve"><i class="fa-solid fa-sparkles"></i> <h3>Sorts en Réserve{{#if options.isGM}} <a class="sortreserve-add">
</a>{{/if}} <i class="fa-solid fa-sparkles"></i>
</a>{{/if}}
</h3> </h3>
<ul class="item-list alterne-list"> <ul class="item-list alterne-list">
{{#each (trier sortsReserve) as |sort key|}} {{#each (trier sortsReserve) as |sort key|}}

View File

@ -5,16 +5,22 @@
<li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}" data-tooltip="{{#if sort.system.isrituel}}Rituel{{else}}Sort{{/if}}: {{sort.name}}"> <li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}" data-tooltip="{{#if sort.system.isrituel}}Rituel{{else}}Sort{{/if}}: {{sort.name}}">
<img class="sheet-competence-img" src="{{sort.img}}"/> <img class="sheet-competence-img" src="{{sort.img}}"/>
<span class="flex-shrink">{{itemSort-shortDraconic sort.system.draconic}}</span> <span class="flex-shrink">{{itemSort-shortDraconic sort.system.draconic}}</span>
<span class="item-edit flex-grow-3">{{sort.name}}{{#if sort.system.isrituel}} <span class="item-edit flex-grow-3">{{sort.name}}
<i class="fa-regular fa-book-sparkles"></i>{{/if}}</span> {{#if sort.system.isrituel}} <i class="fa-regular fa-book-sparkles"></i>{{/if}}
</span>
<span class="flex-grow-2"> <span class="flex-grow-2">
{{#if sort.system.caseTMRspeciale}}{{sort.system.caseTMRspeciale}}{{else}}{{upperFirst sort.system.caseTMR}}{{/if}} {{#if sort.system.caseTMRspeciale}}{{sort.system.caseTMRspeciale}}{{else}}{{upperFirst sort.system.caseTMR}}{{/if}}
</span> </span>
<span class="flex-grow-1">R{{itemSort-spaceIfText sort.system.difficulte}} r{{itemSort-spaceIfText sort.system.ptreve}}</span> <span class="flex-grow-1">R{{itemSort-spaceIfText sort.system.difficulte}} r{{itemSort-spaceIfText sort.system.ptreve}}</span>
<div class="item-controls flex-shrink"> <div class="item-controls flex-shrink">
<a class="item-edit" data-tooltip="Modifier"><i class="fas fa-edit"></i></a> <a class="item-edit" data-tooltip="Modifier"><i class="fas fa-edit"></i></a>
<a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a> <a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
<a class="item-montrer" data-tooltip="Montrer"><i class="fas fa-comment"></i></a> <a class="item-montrer" data-tooltip="Montrer"><i class="fas fa-comment"></i></a>
{{#if (and @root.options.isGM (not sort.system.isrituel))}}
<a class="sortreserve-add" data-tooltip="Ajouter ce sort en réserve">
<i class="fa-solid fa-sparkles"></i>
</a>
{{/if}}
</div> </div>
</li> </li>
{{/each}} {{/each}}