diff --git a/src/main/typescript/item/wvItem.ts b/src/main/typescript/item/wvItem.ts index 617a67f3..56280a3a 100644 --- a/src/main/typescript/item/wvItem.ts +++ b/src/main/typescript/item/wvItem.ts @@ -251,14 +251,14 @@ export async function getUpdateDataFromCompendium( const updateData = { data: document.toObject().data }; if (!item.getFlag(CONSTANTS.systemId, "overwriteNotesWithCompendium")) { - updateData.data.notes = item.data.data.notes; + updateData.data.notes = item.data._source.data.notes; } if (!item.getFlag(CONSTANTS.systemId, "overwriteRulesWithCompendium")) { - updateData.data.rules.sources = item.data.data.rules.sources; + updateData.data.rules.sources = item.data._source.data.rules.sources; } - if ("amount" in updateData.data && "amount" in item.data.data) { + if ("amount" in updateData.data && "amount" in item.data._source.data) { if (!item.getFlag(CONSTANTS.systemId, "overwriteAmountWithCompendium")) { - updateData.data.amount = item.data.data.amount; + updateData.data.amount = item.data._source.data.amount; } } return updateData; diff --git a/src/main/typescript/migrations/actors.ts b/src/main/typescript/migrations/actors.ts index f37429fe..2964591a 100644 --- a/src/main/typescript/migrations/actors.ts +++ b/src/main/typescript/migrations/actors.ts @@ -1,4 +1,4 @@ -import { CONSTANTS } from "../constants.js"; +import { CONSTANTS, SpecialName, SpecialNames } from "../constants.js"; import { LOG } from "../systemLogger.js"; export default function migrateActors(currentVersion: string): void { @@ -76,7 +76,7 @@ function migrateVitalsToResources( actor: foundry.documents.BaseActor, updateData: Record ): void { - const vitals = actor.data.data.vitals; + const vitals = actor.data._source.data.vitals; if (typeof vitals?.actionPoints === "number") updateData["data.vitals.actionPoints.value"] = vitals.actionPoints; if (typeof vitals?.hitPoints === "number") @@ -101,7 +101,7 @@ function removeHistory( actor: foundry.documents.BaseActor, updateData: Record ): void { - if ("history" in actor.data.data.background) + if ("history" in actor.data._source.data.background) updateData["data.background.-=history"] = null; } @@ -109,32 +109,26 @@ function migrateSpecials( actor: foundry.documents.BaseActor, updateData: Record ): void { - const specials = actor.data.data.specials; - - for (const special of [ - "strength", - "perception", - "endurance", - "charisma", - "intelligence", - "agility", - "luck" - ] as const) { + const sourceData = actor.data._source.data; + if (!("specials" in sourceData)) return; + + const specials = (sourceData as { specials: Record }) + .specials; + + for (const special of SpecialNames) { if (typeof specials?.[special] === "number") { updateData[`data.leveling.specialPoints.${special}`] = specials[special]; - updateData[`data.specials.-=${special}`] = null; } } - if ("specials" in actor.data._source.data) - updateData["data.-=specials"] = null; + updateData["data.-=specials"] = null; } function migrateToCompositeNumbers( actor: foundry.documents.BaseActor, updateData: Record ) { - const background = actor.data.data.background; + const background = actor.data._source.data.background; if (typeof background.size === "number") updateData["data.background.size.source"] = background.size; } diff --git a/src/main/typescript/migrations/items.ts b/src/main/typescript/migrations/items.ts index f7a76d37..16bb3feb 100644 --- a/src/main/typescript/migrations/items.ts +++ b/src/main/typescript/migrations/items.ts @@ -1,5 +1,6 @@ import { Caliber, CONSTANTS, ProtoItemTypes } from "../constants.js"; import type { AmmoDataSourceData } from "../data/item/ammo/source.js"; +import type { ApparelDataSourceData } from "../data/item/apparel/source.js"; import type { DistanceSource, RangeSource @@ -105,8 +106,10 @@ function migrateRuleElementHook( item: foundry.documents.BaseItem, updateData: Record ) { - if (item.data.data.rules.sources.some((rule) => rule.hook === undefined)) { - updateData["data.rules.sources"] = item.data.data.rules.sources.map( + if ( + item.data._source.data.rules.sources.some((rule) => rule.hook === undefined) + ) { + updateData["data.rules.sources"] = item.data._source.data.rules.sources.map( (rule) => ({ // @ts-expect-error This might not be there in not migrated data hook: "afterSpecial", @@ -156,13 +159,13 @@ function migrateAmmoFix( if (!["ammo", "weapon"].includes(item.type)) return; if (item.type === "ammo") { - const data = item.data.data as AmmoDataSourceData; + const data = item.data._source.data as AmmoDataSourceData; const newCaliber = transformCaliber(data.caliber); if (!newCaliber) return; updateData["data.caliber"] = newCaliber; } else if (item.type === "weapon") { - const data = item.data.data as WeaponDataSourceData; + const data = item.data._source.data as WeaponDataSourceData; if (!data.reload) return; const newCaliber = transformCaliber(data.reload.caliber); @@ -186,7 +189,7 @@ function migrateRanges( ) { if (item.type !== "weapon") return; - const data = item.data.data as WeaponDataSourceData; + const data = item.data._source.data as WeaponDataSourceData; const newShortRange = transformRange(data.ranges.short); const newMediumRange = transformRange(data.ranges.medium); const newLongRange = transformRange(data.ranges.long); @@ -256,7 +259,7 @@ function migrateMandatoryReload( ) { if (item.type !== "weapon") return; - const data = item.data.data as WeaponDataSourceData; + const data = item.data._source.data as WeaponDataSourceData; if (data.reload) return; updateData["data.reload"] = { @@ -271,14 +274,14 @@ function migrateToCompositeNumbers( item: foundry.documents.BaseItem, updateData: Record ) { - const data = item.data.data; + const data = item.data._source.data; if ("value" in data && typeof data.value === "number") updateData["data.value.source"] = data.value; if ("weight" in data && typeof data.weight === "number") updateData["data.weight.source"] = data.weight; if (item.data.type === "apparel") { - const data = item.data.data; + const data = item.data._source.data as ApparelDataSourceData; if (typeof data.damageThreshold === "number") updateData["data.damageThreshold.source"] = data.damageThreshold; if (typeof data.quickSlots === "number") @@ -289,7 +292,7 @@ function migrateToCompositeNumbers( } if (item.data.type === "weapon") { - const data = item.data.data; + const data = item.data._source.data as WeaponDataSourceData; if (typeof data.strengthRequirement === "number") updateData["data.strengthRequirement.source"] = data.strengthRequirement; diff --git a/src/main/typescript/migrations/world.ts b/src/main/typescript/migrations/world.ts index 841ccfc3..e86456d2 100644 --- a/src/main/typescript/migrations/world.ts +++ b/src/main/typescript/migrations/world.ts @@ -53,8 +53,8 @@ export async function migrateWorld(): Promise { `Migrating this world to ${currentVersion}. Last migration was ${lastMigrVersion}` ); - await migrateActors(currentVersion); - await migrateItems(currentVersion); + migrateActors(currentVersion); + migrateItems(currentVersion); setMigrationCurrentVersion();