Релиз v1.2.9
Build release archive / release (push) Failing after 28s

Изменено:
 - Поддержка новых типов товаров: "Механические приспособления" и "Религиозные товары".
 - Добавлена возможность случайной генерации уровня торговца.
 - Улучшена производительность при загрузке предметов из компендиумов.
 - Обновлены тексты описаний для категорий товаров.
 - Исправлена ошибка при добавлении предметов к торговцу (см. `module/data.mjs`, строки 2436-2446).
 - Исправлена проблема с отображением характеристик торговца в интерфейсе.
This commit is contained in:
2026-07-15 19:42:45 +03:00
parent 34782dc3b0
commit e21d8c5198
5611 changed files with 163869 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
{
"name": "Одежда, превосходная",
"type": "equipment",
"img": "modules/test_tube_merchant/assets/icon/items/excellent_clothes.png",
"system": {
"description": {
"value": "Зачарованная одежда, всегда выглядит превосходно.",
"chat": ""
},
"source": {
"custom": ""
},
"quantity": 1,
"weight": {
"value": 0,
"units": "lb"
},
"price": {
"value": 150,
"denomination": "gp"
},
"rarity": "",
"identified": true,
"unidentified": {
"description": ""
},
"container": null,
"properties": [],
"type": {
"value": "",
"baseItem": ""
},
"attunement": "",
"attuned": false,
"equipped": false,
"activation": {
"type": "",
"cost": null,
"condition": ""
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"crewed": false,
"target": {
"value": "",
"width": null,
"units": "",
"type": "",
"prompt": true
},
"range": {
"value": null,
"long": null,
"units": ""
},
"uses": {
"value": null,
"max": "",
"per": null,
"recovery": "",
"prompt": true
},
"consume": {
"type": "",
"target": null,
"amount": null,
"scale": false
},
"ability": null,
"actionType": "",
"attack": {
"bonus": "",
"flat": false
},
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"enchantment": null,
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"summons": null,
"armor": {
"value": null,
"magicalBonus": null,
"dex": null
},
"hp": {
"value": null,
"max": null,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": null,
"proficient": null
},
"effects": [],
"flags": {
"test_tube_merchant": {
"quantity": "1"
},
"scene-packer": {
"hash": "5d3daa819dd5e48ac984d4670067324fe8d92357",
"sourceId": ""
},
"midiProperties": {
"confirmTargets": "default",
"autoFailFriendly": false,
"autoSaveFriendly": false,
"critOther": false,
"offHandWeapon": false,
"magicdam": false,
"magiceffect": false,
"noConcentrationCheck": false,
"toggleEffect": false,
"ignoreTotalCover": false,
"idr": false,
"idi": false,
"idv": false,
"ida": false
},
"midi-qol": {
"rollAttackPerTarget": "default",
"itemCondition": "",
"effectCondition": ""
}
}
}
@@ -0,0 +1,172 @@
{
"name": "Паучьи тапки / Slippers of Spider Climbing",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/slippers_of_spider_climbing.webp",
"effects": [
{
"changes": [
{
"key": "system.attributes.movement.climb",
"mode": 4,
"value": "@attributes.movement.walk",
"priority": 4
}
],
"disabled": true,
"duration": {
"startTime": null,
"seconds": null,
"combat": null,
"rounds": null,
"turns": null,
"startRound": null,
"startTurn": null
},
"tint": "#ffffff",
"transfer": true,
"flags": {},
"_id": "ep9aa6urc3em3nwa",
"origin": null,
"name": "Скорость лазания",
"description": "",
"statuses": [],
"_stats": {
"compendiumSource": null,
"duplicateSource": null,
"coreVersion": "12.331",
"systemId": "dnd5e",
"systemVersion": "3.3.1",
"createdTime": null,
"modifiedTime": null,
"lastModifiedBy": null
},
"img": "modules/laaru-dnd5-hw/assets/images/pic/slippers_of_spider_climbing.webp",
"type": "base",
"system": {},
"sort": 0
}
],
"flags": {
"srd5e": {
"page": "",
"source": "DMG",
"hash": "slippers%20of%20spider%20climbing_dmg"
},
"test_tube_merchant": {
"quantity": "1"
},
"babele": {
"hasTranslation": true,
"originalName": "Slippers of Spider Climbing",
"translated": true
}
},
"system": {
"description": {
"value": "<div><p><em>Чудесный предмет, (требуется настроенность)</em></p><p>Пока вы носите эту лёгкую обувь, вы можете перемещаться вверх, вниз и вдоль вертикальных поверхностей и даже ходить вверх ногами по потолку, при этом ваши руки остаются свободны. У вас скорость лазания, равная вашей скорости ходьбы. Однако тапки не позволяют вам перемещаться так по скользкой поверхности, например покрытой льдом или маслом.</p></div>",
"chat": ""
},
"source": {
"custom": "DMG"
},
"quantity": 1,
"weight": {
"value": 0,
"units": "lb"
},
"price": {
"value": 500,
"denomination": "gp"
},
"attunement": "required",
"equipped": true,
"rarity": "uncommon",
"identified": true,
"activation": {
"type": "",
"cost": 0,
"condition": "Surface cannot be slippery."
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"target": {
"value": "",
"width": null,
"units": "",
"type": "self",
"prompt": true
},
"range": {
"value": 5,
"long": 0,
"units": "ft"
},
"uses": {
"value": null,
"max": "",
"per": null,
"recovery": "",
"prompt": true
},
"consume": {
"type": "",
"target": "",
"amount": null,
"scale": false
},
"ability": null,
"actionType": "",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"armor": {
"value": null,
"dex": null,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": 0,
"proficient": 1,
"crewed": false,
"unidentified": {
"description": ""
},
"type": {
"value": "clothing",
"baseItem": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"properties": []
}
}
@@ -0,0 +1,132 @@
{
"name": "Переливчатая мантия / Robe of Scintillating Colors",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Robe%20of%20scintillating%20colors.jpg",
"effects": [],
"flags": {
"srd5e": {
"page": "",
"source": "DMG",
"hash": "robe%20of%20scintillating%20colors_dmg"
},
"midi-qol": {
"effectActivation": false
},
"test_tube_merchant": {
"quantity": "1"
},
"babele": {
"hasTranslation": true,
"originalName": "Robe of Scintillating Colors",
"translated": true
}
},
"system": {
"description": {
"value": "<div><p><em>Чудесный предмет, (требуется настроенность)</em></p><p>У мантии 3 заряда, ежедневно на рассвете она восстанавливает [[/r 1d3]] потраченных заряда. Пока вы носите её, вы можете использовать действие и потратить 1 заряд, чтобы мантия изображала изменчивый узор безумных оттенков до конца вашего следующего хода. В это время мантия испускает &amp;reference[brightlight]{яркий свет} в радиусе 30 футов и &amp;reference[dimlight]{тусклый} — ещё на 30 футов. Существа, которые вас видят, получают помеху к броскам атаки по вам. Кроме того, любые существа на ярком свету, которые вас видят при активации мантии, должны пройти испытание Мудрости со СЛ 15, при провале они оказываются в &amp;reference[stunned]{шоке}, пока длится эффект.</p></div>",
"chat": ""
},
"source": {
"custom": "DMG"
},
"quantity": 1,
"weight": {
"value": 0,
"units": "lb"
},
"price": {
"value": 50000,
"denomination": "gp"
},
"attunement": "required",
"equipped": true,
"rarity": "veryRare",
"identified": true,
"activation": {
"type": "action",
"cost": 1,
"condition": ""
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"crewed": false,
"target": {
"value": "",
"width": null,
"units": "",
"type": "self",
"prompt": true
},
"range": {
"value": 5,
"long": 0,
"units": "ft"
},
"uses": {
"value": 3,
"max": "3",
"per": "charges",
"recovery": "",
"prompt": true
},
"consume": {
"type": "",
"target": "",
"amount": null,
"scale": false
},
"ability": "",
"actionType": "save",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "1d3",
"save": {
"ability": "wis",
"dc": 15,
"scaling": "flat"
},
"armor": {
"value": 0,
"dex": 0,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": 0,
"proficient": 1,
"unidentified": {
"description": ""
},
"type": {
"value": "clothing",
"baseItem": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"properties": []
}
}
@@ -0,0 +1,172 @@
{
"name": "Сапоги приполярья / Boots of the Winterlands",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Boots_of_the_winterlands-5e.webp",
"effects": [
{
"changes": [
{
"key": "system.traits.dr.value",
"mode": 2,
"value": "cold",
"priority": 7
}
],
"disabled": true,
"duration": {
"startTime": null,
"seconds": null,
"combat": null,
"rounds": null,
"turns": null,
"startRound": null,
"startTurn": null
},
"tint": "#ffffff",
"transfer": true,
"flags": {},
"_id": "if3jvftc3ufsotdp",
"origin": null,
"name": "Устойчивость к холоду",
"description": "",
"statuses": [],
"_stats": {
"compendiumSource": null,
"duplicateSource": null,
"coreVersion": "12.331",
"systemId": "dnd5e",
"systemVersion": "3.3.1",
"createdTime": null,
"modifiedTime": null,
"lastModifiedBy": null
},
"img": "icons/equipment/feet/boots-leather-banded-furred.webp",
"type": "base",
"system": {},
"sort": 0
}
],
"flags": {
"srd5e": {
"page": "",
"source": "DMG",
"hash": "boots%20of%20the%20winterlands_dmg"
},
"test_tube_merchant": {
"quantity": "1"
},
"babele": {
"hasTranslation": true,
"originalName": "Boots of the Winterlands",
"translated": true
}
},
"system": {
"description": {
"value": "<p><em>Чудесный предмет, (требуется настроенность)</em></p><p>Эти отороченные мехом сапоги очень тёплые и удобные. Пока вы носите их, вы получаете следующую пользу:</p><ul><li>У вас устойчивость к урону холодом.</li><li>Вы игнорируете &amp;reference[difficultterrain]{пересечённую местность}, созданную льдом или снегом.</li><li>Вы можете выдерживать мороз до -45 °С без дополнительной защиты. Если вы носите плотную одежду, вы можете выдерживать мороз до -73 °C.</li></ul>",
"chat": ""
},
"source": {
"custom": "DMG"
},
"quantity": 1,
"weight": {
"value": 0,
"units": "lb"
},
"price": {
"value": 500,
"denomination": "gp"
},
"attunement": "required",
"equipped": true,
"rarity": "uncommon",
"identified": true,
"activation": {
"type": "",
"cost": 0,
"condition": ""
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"target": {
"value": "0",
"width": null,
"units": "",
"type": "",
"prompt": true
},
"range": {
"value": 5,
"long": 0,
"units": "ft"
},
"uses": {
"value": null,
"max": "",
"per": null,
"recovery": "",
"prompt": true
},
"consume": {
"type": "",
"target": "",
"amount": null,
"scale": false
},
"ability": null,
"actionType": "",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"armor": {
"value": null,
"dex": null,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": 0,
"proficient": 1,
"crewed": false,
"unidentified": {
"description": ""
},
"type": {
"value": "clothing",
"baseItem": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"properties": []
}
}