Bouton ajout de personnage accordé

This commit is contained in:
Vincent Vandemeulebrouck 2024-12-09 22:07:03 +01:00
parent 12e5c94aba
commit 60921cfef1
3 changed files with 29 additions and 11 deletions

View File

@ -4,6 +4,7 @@
- Ajout d'une option pour choisir une carte des TMR alternatives - Ajout d'une option pour choisir une carte des TMR alternatives
- Le Gardien peut créer des sorts en réserve parmi les sorts d'un personnage - Le Gardien peut créer des sorts en réserve parmi les sorts d'un personnage
- Bouton pour ajouter des compétences aux créatures/entités - Bouton pour ajouter des compétences aux créatures/entités
- Bouton pour ajouter un personnage accordé aux entités de cauchemar
- Correction du choix d'une cible parmi toutes les cibles pour les combats - Correction du choix d'une cible parmi toutes les cibles pour les combats
- Correction des ajouts de blessures (prise en compte de l'endurance et des contusions) - Correction des ajouts de blessures (prise en compte de l'endurance et des contusions)
- Correction des rituels de Détection et Lecture d'Aura des personnages prétirés - Correction des rituels de Détection et Lecture d'Aura des personnages prétirés

View File

@ -1,6 +1,7 @@
import { RdDBaseActorReveSheet } from "./base-actor-reve-sheet.js"; import { RdDBaseActorReveSheet } from "./base-actor-reve-sheet.js";
import { RdDSheetUtility } from "../rdd-sheet-utility.js"; import { RdDSheetUtility } from "../rdd-sheet-utility.js";
import { RdDUtility } from "../rdd-utility.js"; import { RdDUtility } from "../rdd-utility.js";
import { DialogSelect } from "../dialog-select.js";
export class RdDActorEntiteSheet extends RdDBaseActorReveSheet { export class RdDActorEntiteSheet extends RdDBaseActorReveSheet {
@ -35,23 +36,31 @@ export class RdDActorEntiteSheet extends RdDBaseActorReveSheet {
this.html.find('.creature-niveau').change(async event => { this.html.find('.creature-niveau').change(async event => {
let compName = event.currentTarget.attributes.compname.value; let compName = event.currentTarget.attributes.compname.value;
this.actor.updateCreatureCompetence(compName, "niveau", parseInt(event.target.value)); this.actor.updateCreatureCompetence(compName, "niveau", parseInt(event.target.value));
}); })
this.html.find('.creature-dommages').change(async event => { this.html.find('.creature-dommages').change(async event => {
let compName = event.currentTarget.attributes.compname.value; let compName = event.currentTarget.attributes.compname.value;
this.actor.updateCreatureCompetence(compName, "dommages", parseInt(event.target.value)); this.actor.updateCreatureCompetence(compName, "dommages", parseInt(event.target.value));
}); })
this.html.find('.resonance-add').click(async event =>
DialogSelect.select({
label: "Choisir un acteur à accorder",
list: game.actors.filter(it => it.isPersonnage() && it.prototypeToken.actorLink)
},
it => this.resonanceAdd(it.id))
)
this.html.find('.resonance-delete').click(async event => { this.html.find('.resonance-delete').click(async event => {
const li = RdDSheetUtility.getEventElement(event); const li = RdDSheetUtility.getEventElement(event);
const actorId = li.data("actor-id"); const actorId = li.data("actor-id");
if (actorId) { if (actorId) {
const actorResonance = game.actors.get(actorId); const actorResonance = game.actors.get(actorId);
RdDUtility.confirmSubActeurDelete(this, actorResonance, li, () => { RdDUtility.confirmSubActeurDelete(this, actorResonance, li, () => {
console.log('Delete : ', actorId); this.resonanceDelete(actorId);
this.deleteSubActeur(actorId);
RdDUtility.slideOnDelete(this, li); RdDUtility.slideOnDelete(this, li);
}); })
} }
}); })
} }
async _onDropActor(event, dragData) { async _onDropActor(event, dragData) {
@ -60,7 +69,13 @@ export class RdDActorEntiteSheet extends RdDBaseActorReveSheet {
super._onDropActor(event, dragData) super._onDropActor(event, dragData)
} }
async deleteSubActeur(actorId) { async resonanceAdd(actorId) {
let newResonances = [...this.actor.system.sante.resonnance.actors, actorId]
await this.actor.update({ 'system.sante.resonnance.actors': newResonances });
}
async resonanceDelete(actorId) {
console.log('Delete : ', actorId);
let newResonances = this.actor.system.sante.resonnance.actors.filter(id => id != actorId); let newResonances = this.actor.system.sante.resonnance.actors.filter(id => id != actorId);
await this.actor.update({ 'system.sante.resonnance.actors': newResonances }, { renderSheet: false }); await this.actor.update({ 'system.sante.resonnance.actors': newResonances }, { renderSheet: false });
} }

View File

@ -1,12 +1,14 @@
<span class="item-name"><h4>Personnages accordés</h4></span> <h4>Personnages accordés <a class="resonance-add" data-tooltip="Ajouter un pesonnage accordé">
<ul class="item-list alterne-list"> <i class="fa-solid fa-person-circle-plus"></i>
</a></h4>
<ol class="item-list alterne-list">
{{#each resonances as |actor|}} {{#each resonances as |actor|}}
<li class="item flexrow list-item" data-actor-id="{{actor.id}}"> <li class="item flexrow list-item" data-actor-id="{{actor.id}}">
<img class="sheet-competence-img subacteur-open" src="{{actor.img}}" data-tooltip="{{actor.name}}"/> <img class="sheet-competence-img subacteur-open" src="{{actor.img}}" data-tooltip="{{actor.name}}"/>
<span class="subacteur-label subacteur-open"><a>{{actor.name}}</a></span> <span class="subacteur-label subacteur-open"><a>{{actor.name}}</a></span>
<div class="flex-shrink"> <div class="flex-shrink">
<a class="resonance-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a> <a class="resonance-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}
</ul> </ol>