mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-07-21 18:09:54 +02:00
Added migration for TagTeamData
This commit is contained in:
parent
7a036821d9
commit
ef749f9b8c
3 changed files with 65 additions and 3 deletions
20
module/systemRegistration/migration-handlers/2_6_0.mjs
Normal file
20
module/systemRegistration/migration-handlers/2_6_0.mjs
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { MigrationHandlerBase } from './base.mjs';
|
||||||
|
|
||||||
|
export class Migration_2_6_0 extends MigrationHandlerBase {
|
||||||
|
version = '2.6.0';
|
||||||
|
|
||||||
|
/** @inheritdoc */
|
||||||
|
async updateActorSource(actor) {
|
||||||
|
if (actor.type === 'party') {
|
||||||
|
return {
|
||||||
|
_id: actor._id,
|
||||||
|
system: {
|
||||||
|
tagTeam: {
|
||||||
|
initiator: null,
|
||||||
|
members: _replace({})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
/**
|
/**
|
||||||
* @import DHItem from "../../documents/item.mjs";
|
* @import DHItem from "../../documents/item.mjs";
|
||||||
|
* @import DhActor from "../../documents/actor.mjs";
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
* The base class of an async migration.
|
* The base class of an async migration.
|
||||||
* These are generally run between versions for things that require compendiums or must be done in post.
|
* These are generally run between versions for things that require compendiums or must be done in post.
|
||||||
* The migrate() functions calls the various updateXSource() functions.
|
* The migrate() functions calls the various updateXSource() functions.
|
||||||
|
|
@ -22,6 +23,16 @@ export class MigrationHandlerBase {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update a world actor
|
||||||
|
* @param {DhActor} actor
|
||||||
|
* @returns {Promise<object>}
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
async updateActorSource(actor) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
async migrate() {
|
async migrate() {
|
||||||
// todo: handle more than just migrating effects. Right now this can only migrate effects
|
// todo: handle more than just migrating effects. Right now this can only migrate effects
|
||||||
// NOTE: the preload is hardcoded, we should not hardcode it
|
// NOTE: the preload is hardcoded, we should not hardcode it
|
||||||
|
|
@ -60,10 +71,39 @@ export class MigrationHandlerBase {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (const actor of game.actors) {
|
const updateActor = async actor => {
|
||||||
|
const actorUpdate = await this.updateActorSource(actor);
|
||||||
|
if (actorUpdate) {
|
||||||
|
batch.push({
|
||||||
|
action: 'update',
|
||||||
|
documentName: 'Actor',
|
||||||
|
updates: [actorUpdate]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const aeUpdates = [];
|
||||||
for (const item of actor.items) {
|
for (const item of actor.items) {
|
||||||
await updateItem(item);
|
await updateItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (const effect of actor.effects) {
|
||||||
|
const changes = await this.updateActiveEffectSource(effect.toObject(), { parent: actor });
|
||||||
|
if (changes) aeUpdates.push(changes);
|
||||||
|
}
|
||||||
|
if (aeUpdates.length) {
|
||||||
|
batch.push({
|
||||||
|
action: 'update',
|
||||||
|
documentName: 'ActiveEffect',
|
||||||
|
updates: aeUpdates,
|
||||||
|
parent: actor
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (const actor of game.actors) {
|
||||||
|
await updateActor(actor);
|
||||||
|
|
||||||
progress.advance();
|
progress.advance();
|
||||||
}
|
}
|
||||||
for (const item of game.items) {
|
for (const item of game.items) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { defaultRestOptions } from '../config/generalConfig.mjs';
|
import { defaultRestOptions } from '../config/generalConfig.mjs';
|
||||||
import { Migration_2_5_2 } from './migration-handlers/2_5_2.mjs';
|
import { Migration_2_5_2 } from './migration-handlers/2_5_2.mjs';
|
||||||
|
import { Migration_2_6_0 } from './migration-handlers/2_6_0.mjs';
|
||||||
|
|
||||||
export async function runMigrations() {
|
export async function runMigrations() {
|
||||||
let lastMigrationVersion = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion);
|
let lastMigrationVersion = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion);
|
||||||
|
|
@ -329,7 +330,8 @@ export async function runMigrations() {
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
const migrations = [
|
const migrations = [
|
||||||
new Migration_2_5_2()
|
new Migration_2_5_2(),
|
||||||
|
new Migration_2_6_0()
|
||||||
].filter(m => m.version && foundry.utils.isNewerVersion(m.version, lastMigrationVersion));
|
].filter(m => m.version && foundry.utils.isNewerVersion(m.version, lastMigrationVersion));
|
||||||
|
|
||||||
for (const handler of migrations) {
|
for (const handler of migrations) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue