Build release archive / release (push) Failing after 28s
Изменено: - Поддержка новых типов товаров: "Механические приспособления" и "Религиозные товары". - Добавлена возможность случайной генерации уровня торговца. - Улучшена производительность при загрузке предметов из компендиумов. - Обновлены тексты описаний для категорий товаров. - Исправлена ошибка при добавлении предметов к торговцу (см. `module/data.mjs`, строки 2436-2446). - Исправлена проблема с отображением характеристик торговца в интерфейсе.
65 lines
2.2 KiB
JavaScript
Executable File
65 lines
2.2 KiB
JavaScript
Executable File
// Макрос для обновления флагов во всех сущностях мира
|
|
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(); |