Релиз 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
@@ -0,0 +1,131 @@
{
"name": "Чешуйчатый доспех +2 / Scale Mail +2",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Scale_mail-5e.webp",
"system": {
"description": {
"value": "<p>Состоит из кожаной куртки и штанов (а иногда и отдельной юбки), покрытых внахлёст чешуйками из металла, похожими на рыбьи. Доспех включает и рукавицы.</p>\n<p><em>На эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.</em></p>\n<p>Вы получаете бонус +2 к КБ при её ношении в дополнение к КБ самой брони.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 45,
"units": "lb"
},
"price": {
"value": 6050,
"denomination": "gp"
},
"attunement": "",
"equipped": false,
"rarity": "veryRare",
"identified": true,
"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": "",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"armor": {
"value": 16,
"dex": 2,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": null,
"proficient": 0,
"unidentified": {
"description": ""
},
"type": {
"value": "medium",
"baseItem": "scalemail"
},
"container": null,
"properties": [
"stealthDisadvantage"
],
"attack": {
"bonus": "",
"flat": false
},
"attuned": false,
"enchantment": null,
"summons": null
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Scale Mail +2"
},
"test_tube_merchant": {
"quantity": "(1d2 - 1) * 1d2"
},
"dnd5e": {
"migratedProperties": [
"stealthDisadvantage"
]
}
}
}
+136
View File
@@ -0,0 +1,136 @@
{
"name": "Дварфийские латы / Dwarven Plate",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Dwarven%20Plate.webp",
"effects": [],
"flags": {
"srd5e": {
"page": "",
"source": "DMG",
"hash": "dwarven%20plate_dmg"
},
"test_tube_merchant": {
"quantity": "1"
},
"babele": {
"hasTranslation": true,
"originalName": "Dwarven Plate",
"translated": true
},
"dnd5e": {
"migratedProperties": [
"stealthDisadvantage"
]
}
},
"system": {
"description": {
"value": "<p>Пока вы носите эту броню, вы получаете бонус <strong>+2</strong> к КБ. Кроме того, если некий эффект перемещает вас против вашей воли вдоль земли, вы можете использовать @Compendium[laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{Ответное действие}, чтобы снизить расстояние перемещения на 10 или менее футов.</p>",
"chat": ""
},
"source": {
"custom": "DMG"
},
"quantity": 1,
"weight": {
"value": 65,
"units": "lb"
},
"price": {
"value": 50000,
"denomination": "gp"
},
"attunement": "",
"equipped": true,
"rarity": "veryRare",
"identified": true,
"activation": {
"type": "reaction",
"cost": 1,
"condition": "если некий эффект перемещает вас против вашей воли вдоль земли"
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"target": {
"value": "",
"width": null,
"units": "",
"type": "",
"prompt": true
},
"range": {
"value": 0,
"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": 20,
"dex": 0,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": 15,
"proficient": 1,
"crewed": false,
"unidentified": {
"description": ""
},
"type": {
"value": "heavy",
"baseItem": "plate"
},
"container": null,
"properties": [
"stealthDisadvantage"
],
"attack": {
"bonus": "",
"flat": false
},
"attuned": false,
"enchantment": null,
"summons": null
}
}
@@ -0,0 +1,129 @@
{
"name": "Эльфийская кольчуга / Elven Chain",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Elven%20Chain.webp",
"effects": [],
"flags": {
"srd5e": {
"page": "",
"source": "DMG",
"hash": "elven%20chain_dmg"
},
"test_tube_merchant": {
"quantity": "1"
},
"babele": {
"hasTranslation": true,
"originalName": "Elven Chain",
"translated": true
}
},
"system": {
"description": {
"value": "<p>Вы получаете бонус <strong>+1</strong> к КБ, пока носите эту броню. Вы считаетесь умелым в обращении с этой бронёй, даже если у вас нет умения в обращении со средней бронёй.</p>",
"chat": ""
},
"source": {
"custom": "DMG"
},
"quantity": 1,
"weight": {
"value": 20,
"units": "lb"
},
"price": {
"value": 5000,
"denomination": "gp"
},
"attunement": "",
"equipped": true,
"rarity": "rare",
"identified": true,
"activation": {
"type": "",
"cost": 0,
"condition": ""
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"target": {
"value": "",
"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": 14,
"dex": 2,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": null,
"proficient": 1,
"crewed": false,
"unidentified": {
"description": ""
},
"type": {
"value": "medium",
"baseItem": "chainshirt"
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"properties": []
}
}
@@ -0,0 +1,131 @@
{
"name": "Кольчатый доспех +2 / Ring Mail +2",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Ringmail-5e.webp",
"system": {
"description": {
"value": "<p>Сделан из кожи, на которую нашиты толстые металлические кольца. Они защищают броню от ударов мечей и топоров. Кольчатый доспех похуже кольчуги, его, как правила, носят лишь те, кто не может себе позволить хорошую броню.</p>\n<p><em>На эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.</em></p>\n<p>Вы получаете бонус +2 к КБ при её ношении в дополнение к КБ самой брони.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 40,
"units": "lb"
},
"price": {
"value": 6030,
"denomination": "gp"
},
"attunement": "",
"equipped": false,
"rarity": "veryRare",
"identified": true,
"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": "",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"armor": {
"value": 16,
"dex": 0,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": null,
"proficient": 0,
"unidentified": {
"description": ""
},
"type": {
"value": "heavy",
"baseItem": "ringmail"
},
"container": null,
"properties": [
"stealthDisadvantage"
],
"attack": {
"bonus": "",
"flat": false
},
"attuned": false,
"enchantment": null,
"summons": null
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Ring Mail +2"
},
"test_tube_merchant": {
"quantity": "(1d2 - 1) * 1d2"
},
"dnd5e": {
"migratedProperties": [
"stealthDisadvantage"
]
}
}
}
@@ -0,0 +1,131 @@
{
"name": "Пластинчатый доспех +2 / Splint Armor +2",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Splintmail-5e.webp",
"system": {
"description": {
"value": "<p>Сделан из тонких вертикальных полос металла, приклёпанных на кожаную основу, его носят поверх плотного поддоспешника. Сочленения прикрывает гибкая кольчуга.</p>\n<p><em>На эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.</em></p>\n<p>Вы получаете бонус +2 к КБ при её ношении в дополнение к КБ самой брони.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 60,
"units": "lb"
},
"price": {
"value": 6200,
"denomination": "gp"
},
"attunement": "",
"equipped": false,
"rarity": "veryRare",
"identified": true,
"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": "",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"armor": {
"value": 19,
"dex": 0,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": 15,
"proficient": 0,
"unidentified": {
"description": ""
},
"type": {
"value": "heavy",
"baseItem": "splint"
},
"container": null,
"properties": [
"stealthDisadvantage"
],
"attack": {
"bonus": "",
"flat": false
},
"attuned": false,
"enchantment": null,
"summons": null
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Splint Armor +2"
},
"test_tube_merchant": {
"quantity": "(1d2 - 1) * 1d2"
},
"dnd5e": {
"migratedProperties": [
"stealthDisadvantage"
]
}
}
}
+124
View File
@@ -0,0 +1,124 @@
{
"name": "Щит +2 / Shield +2",
"type": "equipment",
"img": "icons/equipment/shield/heater-steel-spiral.webp",
"system": {
"description": {
"value": "<p>Щит из дерева или металла носят в одной руке. Использование щита увеличивает ваш класс брони на 2. Ношение более чем одного щита не принесёт дополнительной пользы.</p>\n<p>Этот щит сделан особо искусно или зачарован магией, увеличивая КБ владельца на +2 в дополнение к обычному бонусу КБ щита.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 6,
"units": "lb"
},
"price": {
"value": 6000,
"denomination": "gp"
},
"attunement": "",
"equipped": false,
"rarity": "rare",
"identified": true,
"activation": {
"type": "",
"cost": null,
"condition": ""
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"crewed": false,
"target": {
"value": "",
"width": null,
"units": "",
"type": "self",
"prompt": true
},
"range": {
"value": null,
"long": null,
"units": "self"
},
"uses": {
"value": null,
"max": "",
"per": null,
"recovery": "",
"prompt": true
},
"consume": {
"type": "",
"target": null,
"amount": null,
"scale": false
},
"ability": null,
"actionType": "",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"armor": {
"value": 4,
"dex": null,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": null,
"proficient": 0,
"unidentified": {
"description": ""
},
"type": {
"value": "shield",
"baseItem": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"properties": []
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Shield +2"
},
"test_tube_merchant": {
"quantity": "(1d2 - 1) * 1d2"
}
}
}
@@ -0,0 +1,143 @@
{
"name": "Щит ловли стрел / Arrow-Catching Shield",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/arrow_catching.jpeg",
"effects": [],
"flags": {
"srd5e": {
"page": "",
"source": "DMG",
"hash": "arrow-catching%20shield_dmg"
},
"magicitems": {
"enabled": false,
"equipped": false,
"attuned": false,
"charges": "0",
"chargeType": "c1",
"destroy": false,
"destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
"rechargeable": false,
"recharge": "0",
"rechargeType": "t1",
"rechargeUnit": "r1",
"sorting": "l"
},
"test_tube_merchant": {
"quantity": "1"
},
"babele": {
"hasTranslation": true,
"originalName": "Arrow-Catching Shield",
"translated": true
}
},
"system": {
"description": {
"value": "<p>Вы получаете бонус +2 к КБ против дистанционных атак, пока используете этот щит. Бонус прибавляется к обычному бонусу, который щит даёт к КБ. Кроме того, когда атакующий совершает дистанционную атаку по цели в пределах 5 футов от вас, вы можете использовать @Compendium[laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{ответное действие}, чтобы стать целью атаки вместо неё.</p>",
"chat": ""
},
"source": {
"custom": "DMG"
},
"quantity": 1,
"weight": {
"value": 6,
"units": "lb"
},
"price": {
"value": 5000,
"denomination": "gp"
},
"attunement": "required",
"equipped": true,
"rarity": "rare",
"identified": true,
"activation": {
"type": "reaction",
"cost": 1,
"condition": "атакующий совершает дистанционную атаку по цели в пределах 5 футов"
},
"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": 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": 4,
"dex": 0,
"magicalBonus": null
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"speed": {
"value": null,
"conditions": ""
},
"strength": 0,
"proficient": 1,
"unidentified": {
"description": ""
},
"type": {
"value": "shield",
"baseItem": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"properties": []
}
}
@@ -0,0 +1,129 @@
{
"name": "Шлем телепортации / Helm of Teleportation",
"type": "equipment",
"img": "modules/laaru-dnd5-hw/assets/images/pic/Helm%20of%20Teleportation.webp",
"effects": [],
"flags": {
"srd5e": {
"page": "",
"source": "DMG",
"hash": "helm%20of%20teleportation_dmg"
},
"test_tube_merchant": {
"quantity": "1"
},
"babele": {
"hasTranslation": true,
"originalName": "Helm of Teleportation",
"translated": true
}
},
"system": {
"description": {
"value": "<p><em>Чудесный предмет, (требует настроенности)</em></p><p>У шлема 3 заряда. Пока вы носите его, вы можете использовать действие и потратить 1 заряд, чтобы сотворить из него заклинание @Compendium[laaru-dnd5-hw.spells.yO5QuQIZaPHTRilk]{Телепортация}. Ежедневно на рассвете шлем восстанавливает [[/r 1d3]] потраченных заряда.</p>",
"chat": ""
},
"source": {
"custom": "DMG"
},
"quantity": 1,
"weight": {
"value": 0,
"units": "lb"
},
"price": {
"value": 5000,
"denomination": "gp"
},
"attunement": "required",
"equipped": true,
"rarity": "rare",
"identified": true,
"activation": {
"type": "action",
"cost": 1,
"condition": ""
},
"duration": {
"value": "",
"units": "inst"
},
"cover": null,
"target": {
"value": "0",
"width": null,
"units": "",
"type": "creature",
"prompt": true
},
"range": {
"value": 10,
"long": 0,
"units": "ft"
},
"uses": {
"value": 3,
"max": "3",
"per": "charges",
"recovery": "",
"prompt": true
},
"consume": {
"type": "",
"target": "",
"amount": null,
"scale": false
},
"ability": "",
"actionType": "util",
"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": null,
"proficient": 1,
"crewed": false,
"unidentified": {
"description": ""
},
"type": {
"value": "light",
"baseItem": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"properties": []
}
}