From ac445bfe407403410a7f6d14097fb5cd4f866fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Guillois?= Date: Fri, 1 Sep 2023 21:43:22 +0200 Subject: [PATCH] picker members --- module/sheets/npc-group.mjs | 34 ++++++++++++++++++++-- module/system/applications.mjs | 5 ++-- templates/actor/parts/group-experience.hbs | 21 +++++++------ 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/module/sheets/npc-group.mjs b/module/sheets/npc-group.mjs index 2d77237..07f20f3 100644 --- a/module/sheets/npc-group.mjs +++ b/module/sheets/npc-group.mjs @@ -95,6 +95,7 @@ export class VermineGroupSheet extends VermineActorSheet { const evolutions = []; const traumas = []; + // Iterate through items, allocating to containers for (let i of context.items) { i.img = i.img || DEFAULT_TOKEN; @@ -122,7 +123,17 @@ export class VermineGroupSheet extends VermineActorSheet { context.backgrounds = backgrounds; context.evolutions = evolutions; context.traumas = traumas; - console.log(context); + context.members = []; + context.encounters = []; + + for(let memberId of context.actor.system.members){ + context.members.push(game.actors.get(memberId)); + } + + for(let encounterId of context.actor.system.encounters){ + context.encounters.push(game.actors.get(encounterId)); + } + } /* -------------------------------------------- */ @@ -149,6 +160,25 @@ export class VermineGroupSheet extends VermineActorSheet { // Choose Members / Encounters html.find('.chooseActor').click(this._onRoadButton.bind(this)); + html.find('.member-delete').click(ev => { + const li = $(ev.currentTarget).parents("li.actor"); + const actorId = li.data("actor-id"); + const actorIdIndex = this.actor.system.members.indexOf(actorId); + if (actorIdIndex !== -1){ + this.actor.system.members.splice(actorIdIndex, 1); + } + this.render(true); + }); + + html.find('.encounter-delete').click(ev => { + const li = $(ev.currentTarget).parents("li.actor"); + const actorId = li.data("actor-id"); + const actorIdIndex = this.actor.system.encounters.indexOf(actorId); + if (actorIdIndex !== -1){ + this.actor.system.encounters.splice(actorIdIndex, 1); + } + this.render(true); + }); if (this.actor.isOwner) { let handler = ev => this._onDragStart(ev); @@ -242,7 +272,7 @@ export class VermineGroupSheet extends VermineActorSheet { event.preventDefault(); const el = event.currentTarget; // const dataset = el.dataset; - + const actorPicker = new ActorPicker(el, this.actor); actorPicker.render(true); } diff --git a/module/system/applications.mjs b/module/system/applications.mjs index e19e1a7..c168ac3 100644 --- a/module/system/applications.mjs +++ b/module/system/applications.mjs @@ -99,8 +99,8 @@ export class ActorPicker extends Application { super.activateListeners(html); html.find('.actor').click(event => { const actorId = $(event.target).parent('div').data('id'); - let actorsList = []; const type = $(this.linkEl).data('type'); + let actorsList = []; if (type == 'members'){ actorsList = this.actor.system.members; @@ -110,7 +110,7 @@ export class ActorPicker extends Application { if (!Array.isArray(actorsList)){ actorsList = []; } - console.log(actorsList, type, this.actor.system.encounters, this.actor.system.members); + actorsList.push(actorId); if (type == 'members'){ @@ -119,7 +119,6 @@ export class ActorPicker extends Application { } else if (type == 'encounters'){ this.actor.update({ 'system.encounters': actorsList }); } - console.log(actorsList); }); } diff --git a/templates/actor/parts/group-experience.hbs b/templates/actor/parts/group-experience.hbs index 3cee2f7..9d507b8 100644 --- a/templates/actor/parts/group-experience.hbs +++ b/templates/actor/parts/group-experience.hbs @@ -5,14 +5,14 @@
    - {{#each specialties as |item id|}} -
  1. -
    - {{item.name}} + {{#each members as |actor id|}} +
  2. + {{ log actor }} +
    - - +
  3. {{/each}} @@ -24,14 +24,13 @@
      - {{#each backgrounds as |item id|}} -
    1. + {{#each encounters as |actor id|}} +
    2. - - +
    3. {{/each}}