Army sheet : Image and token now follow the commander's on drop.
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
- This is random by design, don't expect clan logic in values.
|
- This is random by design, don't expect clan logic in values.
|
||||||
- PC sheet :
|
- PC sheet :
|
||||||
- Added collapsible skill group.
|
- Added collapsible skill group.
|
||||||
|
- Army sheet :
|
||||||
|
- Image and token now follow the commander's on drop.
|
||||||
- PC/NPC sheet :
|
- PC/NPC sheet :
|
||||||
- Added a volatile storage to keep collapsible (Skills/Inventory) in theirs state on sheet update.
|
- Added a volatile storage to keep collapsible (Skills/Inventory) in theirs state on sheet update.
|
||||||
- Added the ability for technique with a skill set, to open the DicePicker with presets values.
|
- Added the ability for technique with a skill set, to open the DicePicker with presets values.
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export class ArmySheetL5r5e extends BaseSheetL5r5e {
|
|||||||
if (data.commander_actor_id) {
|
if (data.commander_actor_id) {
|
||||||
const commander = game.actors.get(data.commander_actor_id);
|
const commander = game.actors.get(data.commander_actor_id);
|
||||||
if (commander) {
|
if (commander) {
|
||||||
this._updateLinkedActorData("commander", commander);
|
this._updateLinkedActorData("commander", commander, true);
|
||||||
} else {
|
} else {
|
||||||
this._removeLinkedActorData("commander");
|
this._removeLinkedActorData("commander");
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,7 @@ export class ArmySheetL5r5e extends BaseSheetL5r5e {
|
|||||||
if (data.warlord_actor_id) {
|
if (data.warlord_actor_id) {
|
||||||
const warlord = game.actors.get(data.warlord_actor_id);
|
const warlord = game.actors.get(data.warlord_actor_id);
|
||||||
if (warlord) {
|
if (warlord) {
|
||||||
this._updateLinkedActorData("warlord", warlord);
|
this._updateLinkedActorData("warlord", warlord, true);
|
||||||
} else {
|
} else {
|
||||||
this._removeLinkedActorData("warlord");
|
this._removeLinkedActorData("warlord");
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,7 @@ export class ArmySheetL5r5e extends BaseSheetL5r5e {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const droppedActor = await game.l5r5e.HelpersL5r5e.getDragnDropTargetObject(event);
|
const droppedActor = await game.l5r5e.HelpersL5r5e.getDragnDropTargetObject(event);
|
||||||
return this._updateLinkedActorData(type, droppedActor);
|
return this._updateLinkedActorData(type, droppedActor, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -219,39 +219,49 @@ export class ArmySheetL5r5e extends BaseSheetL5r5e {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Update actor datas for this army sheet
|
* Update actor datas for this army sheet
|
||||||
* @param {string} type commander|warlord
|
* @param {string} type commander|warlord
|
||||||
* @param {ActorL5r5e} actor actor object
|
* @param {ActorL5r5e} actor actor object
|
||||||
|
* @param {boolean} isInit If it's initialization process
|
||||||
* @return {Promise<abstract.Document>}
|
* @return {Promise<abstract.Document>}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
async _updateLinkedActorData(type, actor) {
|
async _updateLinkedActorData(type, actor, isInit = false) {
|
||||||
if (!actor || actor.documentName !== "Actor" || !actor.isCharacter) {
|
if (!actor || actor.documentName !== "Actor" || !actor.isCharacter) {
|
||||||
console.warn("L5R5E | Wrong actor type", actor?.data?.type, actor);
|
console.warn("L5R5E | Wrong actor type", actor?.data?.type, actor);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const actorPath = `${CONFIG.l5r5e.paths.assets}icons/actors/`;
|
||||||
const actorData = {};
|
const actorData = {};
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "commander":
|
case "commander":
|
||||||
actorData.commander = actor.data.name;
|
actorData["data.commander"] = actor.data.name;
|
||||||
actorData.commander_actor_id = actor.data._id;
|
actorData["data.commander_actor_id"] = actor.data._id;
|
||||||
actorData.commander_standing = {
|
actorData["data.commander_standing.honor"] = actor.data.data.social.honor;
|
||||||
honor: actor.data.data.social.honor,
|
actorData["data.commander_standing.glory"] = actor.data.data.social.glory;
|
||||||
glory: actor.data.data.social.glory,
|
actorData["data.commander_standing.status"] = actor.data.data.social.status;
|
||||||
status: actor.data.data.social.status,
|
|
||||||
};
|
// Replace the image by commander's image
|
||||||
|
if (
|
||||||
|
!isInit &&
|
||||||
|
this.actor.data.img !== actor.data.img &&
|
||||||
|
![`${actorPath}character.svg`, `${actorPath}npc.svg`].includes(actor.data.img)
|
||||||
|
) {
|
||||||
|
actorData["img"] = actor.data.img;
|
||||||
|
actorData["token.img"] = actor.data.token.img;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "warlord":
|
case "warlord":
|
||||||
actorData.warlord = actor.data.name;
|
actorData["data.warlord"] = actor.data.name;
|
||||||
actorData.warlord_actor_id = actor.data._id;
|
actorData["data.warlord_actor_id"] = actor.data._id;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
console.warn("L5R5E | Unknown type", type);
|
console.warn("L5R5E | Unknown type", type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return this.actor.update({ data: actorData });
|
return this.actor.update(actorData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user