ds4/src/migration/004.js

54 lines
1.7 KiB
JavaScript
Raw Normal View History

2021-06-26 22:02:00 +02:00
// SPDX-FileCopyrightText: 2021 Johannes Loher
//
// SPDX-License-Identifier: MIT
2021-07-08 02:32:25 +02:00
import {
getSceneMigrator,
migrateCollection,
2021-07-08 02:32:25 +02:00
migrateCompendiums,
getCompendiumMigrator,
getActorMigrator,
} from "./migrationHelpers.js";
2021-07-08 02:32:25 +02:00
/** @type {import("./migration.js").Migration["migrate"]} */
async function migrate() {
const itemsResult = await migrateCollection(game.items, migrateItem);
const actorsResult = await migrateCollection(game.actors, migrateActor);
const scenesResult = await migrateCollection(game.scenes, migrateScene);
const compendiumsResult = await migrateCompendiums(migrateCompendium);
return itemsResult === "error" ||
actorsResult === "error" ||
scenesResult === "error" ||
compendiumsResult === "error"
? "error"
: "success";
2021-07-08 02:32:25 +02:00
}
/** @type {import('./migrationHelpers.js').Migrator<Item>} */
async function migrateItem(item) {
if (item.type === "spell") {
const cooldownDurationUnit = item.system?.cooldownDuration.unit;
await item.update({
system: {
"-=scrollPrice": null,
minimumLevels: { healer: null, wizard: null, sorcerer: null },
cooldownDuration: {
unit: cooldownDurationUnit === "custom" ? "rounds" : cooldownDurationUnit,
},
2021-07-08 07:10:34 +02:00
},
});
}
2021-07-08 02:32:25 +02:00
return updateData;
}
const migrateActor = getActorMigrator(migrateItem);
const migrateScene = getSceneMigrator(migrateActor);
const migrateCompendium = getCompendiumMigrator({ migrateItem, migrateActor, migrateScene });
/** @type {import("./migration.js").Migration} */
export const migration = {
migrate,
migrateCompendium,
};