diff --git a/src/migrations/2021_12_29_05_08_25_active-effects-for-traits.ts b/src/migrations/2021_12_29_05_08_25_active-effects-for-traits.ts index e68ffae7d..3bece3bf7 100644 --- a/src/migrations/2021_12_29_05_08_25_active-effects-for-traits.ts +++ b/src/migrations/2021_12_29_05_08_25_active-effects-for-traits.ts @@ -2,7 +2,6 @@ async function applyActiveEffects(p, actor) { await p; return Promise.all(actor.items.filter(item => item.type === "trait").map(async item => { if (!item.data.data.effectId) { - //@ts-ignore const effects = await actor.createEmbeddedDocuments("ActiveEffect", [{ origin: item.uuid, icon: "systems/twodsix/assets/icons/science.svg" @@ -14,12 +13,9 @@ async function applyActiveEffects(p, actor) { } export async function migrate(): Promise { - const tokenActor = game.scenes - //@ts-ignore - .reduce((memo, scene) => memo.concat(scene.tokens.contents), []) - .filter(s => s.actor.type === "traveller" && !s.data.actorLink) - .map(token => token._actor); - //@ts-ignore - await game.actors.filter(actor => actor.type === "traveller").reduce(applyActiveEffects, Promise.resolve()); - await tokenActor.reduce(applyActiveEffects, Promise.resolve()); + const tokenActor = game.scenes?.reduce((memo: TokenDocument[], scene: Scene) => memo.concat(scene.tokens.contents), []) + .filter((token: TokenDocument) => token.actor?.type === "traveller" && !token.data.actorLink) + .map((token: TokenDocument) => token.actor); + await game.actors?.filter(actor => actor.type === "traveller").reduce(applyActiveEffects, Promise.resolve()); + await tokenActor?.reduce(applyActiveEffects, Promise.resolve()); } diff --git a/src/module/entities/TwodsixActor.ts b/src/module/entities/TwodsixActor.ts index 6317f39e1..806fdb9e5 100644 --- a/src/module/entities/TwodsixActor.ts +++ b/src/module/entities/TwodsixActor.ts @@ -12,6 +12,7 @@ import Weapon = dataTwodsix.Weapon; import Gear = dataTwodsix.Gear; import Traveller = dataTwodsix.Traveller; import Skills = dataTwodsix.Skills; +import Trait = dataTwodsix.Trait; import Characteristic = dataTwodsix.Characteristic; export default class TwodsixActor extends Actor { @@ -52,17 +53,17 @@ export default class TwodsixActor extends Actor { } } - _onUpdateEmbeddedDocuments(embeddedName, documents, result, options, userId) { + _onUpdateEmbeddedDocuments(embeddedName:string, documents): void { if (embeddedName === "ActiveEffect") { - documents.forEach(element => { - const item = element.parent.items.find(itm => itm.data.data.effectId === element.id); + (documents).forEach((element:ActiveEffect) => { + const item = (element?.parent)?.items.find((itm:TwodsixItem) => (itm.data.data).effectId === element.id); item.update({"data.changes": element.data.changes}); }); } this.render(); } - protected async _onCreate(data, options, user) { + protected async _onCreate(): Promise { switch (this.data.type) { case "traveller": await this.createUntrainedSkill(); diff --git a/src/module/sheets/TwodsixItemSheet.ts b/src/module/sheets/TwodsixItemSheet.ts index f72f67ac7..fcf44aa63 100644 --- a/src/module/sheets/TwodsixItemSheet.ts +++ b/src/module/sheets/TwodsixItemSheet.ts @@ -121,7 +121,7 @@ export class TwodsixItemSheet extends AbstractTwodsixItemSheet { } } - private _onCreateChange(event:Event): void { + private _onCreateChange(): void { const changes = (this.item.data.data).changes ?? []; this.item.update({"data.changes": changes.concat({key: "", value: "", mode: 0})}); } @@ -135,11 +135,11 @@ export class TwodsixItemSheet extends AbstractTwodsixItemSheet { } } - private _onEditConsumable(event): void { + private _onEditConsumable(event:Event): void { this.getConsumable(event)?.sheet?.render(true); } - private async _onDeleteConsumable(event): Promise { + private async _onDeleteConsumable(event:Event): Promise { const consumable = this.getConsumable(event); if (!consumable) { (this.item).removeConsumable(""); //TODO Should have await? diff --git a/src/types/template.d.ts b/src/types/template.d.ts index 58e91af0d..a3057c76c 100644 --- a/src/types/template.d.ts +++ b/src/types/template.d.ts @@ -404,6 +404,7 @@ declare namespace dataTwodsix { reference: string; key: string; changes: TraitChange[]; + effectId: string; } export interface Weapon extends GearTemplate {