Изменено: - Поддержка новых типов товаров: "Механические приспособления" и "Религиозные товары". - Добавлена возможность случайной генерации уровня торговца. - Улучшена производительность при загрузке предметов из компендиумов. - Обновлены тексты описаний для категорий товаров. - Исправлена ошибка при добавлении предметов к торговцу (см. `module/data.mjs`, строки 2436-2446). - Исправлена проблема с отображением характеристик торговца в интерфейсе.
This commit is contained in:
Executable
+65
@@ -0,0 +1,65 @@
|
||||
// Макрос для обновления флагов во всех сущностях мира
|
||||
const OLD_FLAG = 'Test Tube Merchant';
|
||||
const NEW_FLAG = 'test_tube_merchant';
|
||||
|
||||
async function updateFlags() {
|
||||
let updates = [];
|
||||
let processed = 0;
|
||||
let updated = 0;
|
||||
|
||||
// Обновляем всех акторов в мире
|
||||
for (let actor of game.actors) {
|
||||
let itemsToUpdate = actor.items.filter(i => i.flags?.[OLD_FLAG]);
|
||||
for (let item of itemsToUpdate) {
|
||||
let flags = duplicate(item.flags);
|
||||
if (flags[OLD_FLAG]) {
|
||||
flags[NEW_FLAG] = flags[OLD_FLAG];
|
||||
delete flags[OLD_FLAG];
|
||||
updates.push({
|
||||
_id: item.id,
|
||||
flags: flags,
|
||||
'flags.-=Test Tube Merchant': null
|
||||
});
|
||||
updated++;
|
||||
console.log(item);
|
||||
}
|
||||
processed++;
|
||||
}
|
||||
if (updates.length) {
|
||||
await actor.updateEmbeddedDocuments("Item", updates);
|
||||
updates = [];
|
||||
}
|
||||
}
|
||||
|
||||
// Обновляем все компендиумы
|
||||
for (let pack of game.packs) {
|
||||
if (pack.documentName === "Item") {
|
||||
const items = await pack.getDocuments();
|
||||
updates = [];
|
||||
for (let item of items) {
|
||||
if (item.flags?.[OLD_FLAG]) {
|
||||
let flags = duplicate(item.flags);
|
||||
flags[NEW_FLAG] = flags[OLD_FLAG];
|
||||
delete flags[OLD_FLAG];
|
||||
updates.push({
|
||||
_id: item.id,
|
||||
flags: flags,
|
||||
'flags.-=Test Tube Merchant': null
|
||||
});
|
||||
updated++;
|
||||
console.log(item);
|
||||
}
|
||||
processed++;
|
||||
}
|
||||
if (updates.length) {
|
||||
await pack.updateDocuments(updates);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Выводим статистику
|
||||
ui.notifications.info(`Обработано ${processed} предметов, обновлено ${updated} флагов.`);
|
||||
}
|
||||
|
||||
// Запускаем обновление
|
||||
updateFlags();
|
||||
Reference in New Issue
Block a user