Vincent Vandemeulebrouck
2fa0ce5f15
L'item "race" permet de paramétrer des ajustements de caracs, des min/max de taille, et une limite de force. Ajouter une race à un acteur enlève la/les races précédentes et ajoute les modificateurs de caracs de la nouvelle race. Enlever une race enlève les modificateurs de caracs de la race aux caractéristiques
64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
import { RdDBaseActorSheet } from "../actor/base-actor-sheet.js";
|
|
import { ITEM_TYPES } from "../item.js";
|
|
import { RdDSheetUtility } from "../rdd-sheet-utility.js";
|
|
import { RdDUtility } from "../rdd-utility.js";
|
|
import { RdDItemInventaireSheet } from "./sheet-base-inventaire.js";
|
|
|
|
export class RdDConteneurItemSheet extends RdDItemInventaireSheet {
|
|
|
|
static get ITEM_TYPE() { return ITEM_TYPES.conteneur };
|
|
|
|
async getData() {
|
|
const formData = await super.getData();
|
|
if (this.actor) {
|
|
this.prepareConteneurData(formData);
|
|
}
|
|
return formData;
|
|
}
|
|
|
|
activateListeners(html) {
|
|
super.activateListeners(html);
|
|
|
|
if (!this.options.editable) return;
|
|
|
|
this.html.find('.conteneur-name a').click(async event => {
|
|
RdDUtility.toggleAfficheContenu(RdDSheetUtility.getItemId(event));
|
|
this.render(true);
|
|
});
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
prepareConteneurData(formData) {
|
|
RdDBaseActorSheet.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
|
|
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.inventaires);
|
|
formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems;
|
|
}
|
|
|
|
async _onDragStart(event) {
|
|
console.log("_onDragStart", event);
|
|
if (event.target.classList.contains("entity-link")) return;
|
|
|
|
const itemId = event.srcElement?.attributes["data-item-id"].value;
|
|
const item = this.actor.items.get(itemId);
|
|
// Create drag data
|
|
const dragData = {
|
|
actorId: this.actor.id,
|
|
type: "Item",
|
|
data: item.system,
|
|
uuid: item.uuid
|
|
};
|
|
|
|
event.dataTransfer.setData("text/plain", JSON.stringify(dragData));
|
|
}
|
|
|
|
async _onDropItem(event, dragData) {
|
|
if (this.actor) {
|
|
const destItemId = this.html.find(event.target)?.closest('.item').attr('data-item-id') ?? this.item.id
|
|
const dropParams = await RdDSheetUtility.prepareItemDropParameters(destItemId, this.actor, dragData, this.objetVersConteneur);
|
|
await this.actor.processDropItem(dropParams);
|
|
await this.render(true);
|
|
}
|
|
}
|
|
|
|
}
|