swade-mb-shared/ae_shape_change_form.js

38 lines
1.1 KiB
JavaScript

let summon = args[0].summon;
let duplicates = args[0].duplicates;
let assignedActor = args[0].assignedActor;
let data = {
actor: {},
token: {},
embedded: {Item: {}}
};
const name = `${assignedActor.data.token.name} (${summon.data.token.name})`;
const actorElements = ['wildcard', 'bennies', 'fatigue', 'wounds'];
const keptAttributes = ['smarts', 'spirit']
for (const elem of actorElements) {
data.actor[`data.${elem}`] = assignedActor.data.data[elem];
}
data.actor['name'] = name;
data.token['name'] = name;
for (const attr of keptAttributes) {
let attrData = assignedActor.data.data.attributes[attr];
data.actor[`data.attributes.${attr}`] = attrData;
let skills = assignedActor.items.filter(
i => i.type === 'skill' && i.data.data.attribute === attr)
for(const skill of skills) {
data.embedded['Item'][skill.name] = skill.data;
}
}
const otherItems = assignedActor.items.filter(
i => i.type === 'edge' || i.type === 'hindrance')
for(const item of otherItems) {
data.embedded['Item'][item.name] = item.data;
}
return data;