2023-11-04 03:42:39 +01:00
|
|
|
import { RdDBaseActorReveSheet } from "./base-actor-reve-sheet.js";
|
|
|
|
import { RdDSheetUtility } from "../rdd-sheet-utility.js";
|
|
|
|
import { RdDUtility } from "../rdd-utility.js";
|
2020-11-14 23:24:01 +01:00
|
|
|
|
2023-11-04 03:42:39 +01:00
|
|
|
export class RdDActorEntiteSheet extends RdDBaseActorReveSheet {
|
2020-11-14 23:24:01 +01:00
|
|
|
|
|
|
|
/** @override */
|
2023-01-07 19:46:27 +01:00
|
|
|
static get defaultOptions() {
|
2024-05-01 09:13:21 +02:00
|
|
|
return foundry.utils.mergeObject(RdDBaseActorReveSheet.defaultOptions, {
|
2023-01-07 19:46:27 +01:00
|
|
|
template: "systems/foundryvtt-reve-de-dragon/templates/actor-entite-sheet.html",
|
2023-11-06 23:02:22 +01:00
|
|
|
width: 640, height: 720,
|
2024-06-01 01:53:14 +02:00
|
|
|
}, { inplace: false })
|
2020-11-14 23:24:01 +01:00
|
|
|
}
|
2023-11-06 23:02:22 +01:00
|
|
|
|
2023-05-27 16:34:30 +02:00
|
|
|
async getData() {
|
|
|
|
let formData = await super.getData();
|
|
|
|
formData.resonances = this.actor.system.sante.resonnance.actors.map(actorId => game.actors.get(actorId))
|
|
|
|
.map(actor => { return { id: actor.id, name: actor.name, img: actor.img } })
|
|
|
|
return formData
|
|
|
|
}
|
2020-11-14 23:24:01 +01:00
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/** @override */
|
2023-01-07 19:46:27 +01:00
|
|
|
activateListeners(html) {
|
2020-11-14 23:24:01 +01:00
|
|
|
super.activateListeners(html);
|
2020-12-27 22:21:08 +01:00
|
|
|
|
2020-11-14 23:24:01 +01:00
|
|
|
// Everything below here is only needed if the sheet is editable
|
|
|
|
if (!this.options.editable) return;
|
|
|
|
|
|
|
|
// On competence change
|
2022-12-09 02:00:31 +01:00
|
|
|
this.html.find('.creature-carac').change(async event => {
|
2023-01-07 19:46:27 +01:00
|
|
|
let compName = event.currentTarget.attributes.compname.value;
|
|
|
|
this.actor.updateCreatureCompetence(compName, "carac_value", parseInt(event.target.value));
|
|
|
|
});
|
2022-12-09 02:00:31 +01:00
|
|
|
this.html.find('.creature-niveau').change(async event => {
|
2023-01-07 19:46:27 +01:00
|
|
|
let compName = event.currentTarget.attributes.compname.value;
|
|
|
|
this.actor.updateCreatureCompetence(compName, "niveau", parseInt(event.target.value));
|
|
|
|
});
|
|
|
|
this.html.find('.creature-dommages').change(async event => {
|
|
|
|
let compName = event.currentTarget.attributes.compname.value;
|
|
|
|
this.actor.updateCreatureCompetence(compName, "dommages", parseInt(event.target.value));
|
|
|
|
});
|
2023-05-27 16:34:30 +02:00
|
|
|
this.html.find('.resonance-delete').click(async event => {
|
|
|
|
const li = RdDSheetUtility.getEventElement(event);
|
|
|
|
const actorId = li.data("actor-id");
|
|
|
|
if (actorId) {
|
|
|
|
const actorResonance = game.actors.get(actorId);
|
2023-11-21 16:03:26 +01:00
|
|
|
RdDUtility.confirmSubActeurDelete(this, actorResonance, li, () => {
|
2023-05-27 16:34:30 +02:00
|
|
|
console.log('Delete : ', actorId);
|
2023-11-21 16:03:26 +01:00
|
|
|
this.deleteSubActeur(actorId);
|
2023-05-27 16:34:30 +02:00
|
|
|
RdDUtility.slideOnDelete(this, li);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2024-08-31 00:21:24 +02:00
|
|
|
async _onDropActor(event, dragData) {
|
|
|
|
const dropActor = fromUuidSync(dragData.uuid)
|
|
|
|
await this.actor.setEntiteReveAccordee(dropActor)
|
|
|
|
super._onDropActor(event, dragData)
|
|
|
|
}
|
|
|
|
|
2023-11-21 16:03:26 +01:00
|
|
|
async deleteSubActeur(actorId) {
|
2023-05-27 16:34:30 +02:00
|
|
|
let newResonances = this.actor.system.sante.resonnance.actors.filter(id => id != actorId);
|
|
|
|
await this.actor.update({ 'system.sante.resonnance.actors': newResonances }, { renderSheet: false });
|
2020-11-14 23:24:01 +01:00
|
|
|
}
|
|
|
|
}
|