Релиз 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
+117
View File
@@ -0,0 +1,117 @@
{
"name": "Факел",
"type": "consumable",
"img": "icons/sundries/lights/torch-black.webp",
"system": {
"description": {
"value": "<p>Горит 1 час, даёт яркий свет в радиусе 20 футов и тусклый ещё на 20 футов. Если совершить горящим факелом атаку ближнего боя, при попадании он нанесёт 1 урон огнём.</p>",
"chat": ""
},
"source": {
"custom": "",
"book": "SRD 5.1",
"page": "",
"license": "CC-BY-4.0"
},
"quantity": 1,
"weight": {
"value": 1,
"units": "lb"
},
"price": {
"value": 5,
"denomination": "sp"
},
"attunement": "",
"equipped": false,
"rarity": "",
"identified": true,
"activation": {
"type": "action",
"cost": 1,
"condition": ""
},
"duration": {
"value": "1",
"units": "hour"
},
"cover": null,
"target": {
"value": "40",
"width": null,
"units": "ft",
"type": "radius",
"prompt": true
},
"range": {
"value": null,
"long": null,
"units": ""
},
"uses": {
"value": 1,
"max": "1",
"per": "charges",
"recovery": "",
"autoDestroy": false,
"prompt": true
},
"consume": {
"type": "",
"target": null,
"amount": null,
"scale": false
},
"ability": "str",
"actionType": "mwak",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [
[
"1",
"fire"
]
],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"type": {
"value": "trinket",
"subtype": ""
},
"unidentified": {
"description": ""
},
"container": null,
"crewed": false,
"properties": [],
"attack": {
"bonus": "",
"flat": false
},
"enchantment": null,
"summons": null,
"magicalBonus": null,
"attuned": false
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Torch"
},
"test_tube_merchant": {
"quantity": "1d3 * 4 + 1d4"
}
}
}
+127
View File
@@ -0,0 +1,127 @@
{
"name": "Кинжал / Dagger",
"type": "weapon",
"img": "icons/weapons/daggers/dagger-jeweled-purple.webp",
"system": {
"description": {
"value": "<p>Короткий металлический клинок, прикрепленный к небольшой рукояти и гарде. Кинжал является эффективным вспомогательным оружием для закаленных воинов или скрытым клинком для убийц и воров.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 1,
"units": "lb"
},
"price": {
"value": 2,
"denomination": "gp"
},
"attunement": "",
"equipped": false,
"rarity": "",
"identified": true,
"activation": {
"type": "action",
"cost": 1,
"condition": ""
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"crewed": false,
"target": {
"value": "",
"width": null,
"units": "",
"type": "",
"prompt": true
},
"range": {
"value": 20,
"long": 60,
"units": "ft"
},
"uses": {
"value": null,
"max": "",
"per": null,
"recovery": "",
"prompt": true
},
"consume": {
"type": "",
"target": null,
"amount": null,
"scale": false
},
"ability": "",
"actionType": "mwak",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [
[
"1d4 + @mod",
"piercing"
]
],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"armor": {
"value": 10
},
"hp": {
"value": 0,
"max": 0,
"dt": null,
"conditions": ""
},
"properties": [
"fin",
"lgt",
"thr"
],
"proficient": null,
"unidentified": {
"description": ""
},
"type": {
"value": "simpleM",
"baseItem": "dagger"
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"magicalBonus": null
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Dagger"
},
"test_tube_merchant": {
"quantity": "1d4"
}
}
}
+49
View File
@@ -0,0 +1,49 @@
{
"name": "Кирка шахтёрская",
"type": "loot",
"img": "icons/tools/hand/pickaxe-steel-white.webp",
"system": {
"description": {
"value": "<p>Это ручной инструмент с твердой головкой, прикрепленной перпендикулярно к рукоятке.</p>",
"chat": ""
},
"source": {
"custom": "",
"book": "SRD 5.1",
"page": "",
"license": "CC-BY-4.0"
},
"quantity": 1,
"weight": {
"value": 10,
"units": "lb"
},
"price": {
"value": 2,
"denomination": "gp"
},
"rarity": "",
"identified": true,
"type": {
"value": "",
"subtype": ""
},
"unidentified": {
"description": ""
},
"container": null,
"properties": []
},
"effects": [],
"folder": "qH3mSpoR9mQfHi1V",
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Miner's Pick"
},
"test_tube_merchant": {
"quantity": "1d3 * 2 + 1d2"
}
}
}
+109
View File
@@ -0,0 +1,109 @@
{
"name": "Лампа / Lamp",
"type": "consumable",
"img": "icons/sundries/lights/lantern-iron-lit-yellow.webp",
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Lamp"
},
"test_tube_merchant": {
"quantity": "1d3 * 2 + 1d2"
}
},
"system": {
"description": {
"value": "<p>Даёт &amp;reference[brightlight]{яркий свет} в радиусе 15 футов и &amp;reference[dimlight]{тусклый} ещё на 30 футов. Если её зажечь, она тратит за 6 часов склянку масла (1 пинту).</p>",
"chat": ""
},
"source": {
"custom": "PHB pg. 152"
},
"quantity": 1,
"weight": {
"value": 0,
"units": "lb"
},
"price": {
"value": 1,
"denomination": "cp"
},
"attunement": "",
"equipped": false,
"rarity": "common",
"identified": true,
"activation": {
"type": "action",
"cost": 1,
"condition": ""
},
"duration": {
"value": "6",
"units": "hour"
},
"cover": null,
"crewed": false,
"target": {
"value": "45",
"width": null,
"units": "ft",
"type": "radius",
"prompt": true
},
"range": {
"value": null,
"long": null,
"units": ""
},
"uses": {
"value": 1,
"max": "1",
"per": "charges",
"recovery": "",
"autoDestroy": false,
"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"
},
"unidentified": {
"description": ""
},
"type": {
"value": "trinket",
"subtype": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"magicalBonus": null,
"properties": []
}
}
+45
View File
@@ -0,0 +1,45 @@
{
"name": "Лестница (10 футов) / Ladder (10 ft)",
"type": "loot",
"img": "icons/sundries/misc/ladder-improvised.webp",
"system": {
"description": {
"value": "<p>Лестница длиной 10 футов, прочная или шаткая, в зависимости от руки, которая её смастерила.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 25,
"units": "lb"
},
"price": {
"value": 1,
"denomination": "sp"
},
"rarity": "",
"identified": true,
"unidentified": {
"description": ""
},
"container": null,
"properties": [],
"type": {
"value": "",
"subtype": ""
}
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Ladder (10-foot)"
},
"test_tube_merchant": {
"quantity": "1d3 * 2 + 1d2"
}
}
}
+48
View File
@@ -0,0 +1,48 @@
{
"name": "Лопата",
"type": "loot",
"img": "icons/tools/hand/shovel-spade-steel-grey.webp",
"system": {
"description": {
"value": "<p>Инструмент с широким лезвием и обычно вздернутыми боками, используемый для перемещения углей, земли, снега или других материалов.</p>",
"chat": ""
},
"source": {
"custom": "",
"book": "SRD 5.1",
"page": "",
"license": "CC-BY-4.0"
},
"quantity": 1,
"weight": {
"value": 5,
"units": "lb"
},
"price": {
"value": 5,
"denomination": "gp"
},
"rarity": "",
"identified": true,
"type": {
"value": "",
"subtype": ""
},
"unidentified": {
"description": ""
},
"container": null,
"properties": []
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Shovel"
},
"test_tube_merchant": {
"quantity": "1d3 * 2 + 1d2"
}
}
}
+45
View File
@@ -0,0 +1,45 @@
{
"name": "Молоток / Hammer",
"type": "loot",
"img": "icons/tools/hand/hammer-cobbler-steel.webp",
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Hammer"
},
"test_tube_merchant": {
"quantity": "1d3 * 2 + 1d2"
}
},
"system": {
"description": {
"value": "<p>Инструмент с тяжелой металлической головкой, установленной на конце рукоятки, используемый для разбивания предметов и забивания гвоздей.</p>",
"chat": ""
},
"source": {
"custom": "PHB pg. 150"
},
"quantity": 1,
"weight": {
"value": 3,
"units": "lb"
},
"price": {
"value": 1,
"denomination": "gp"
},
"rarity": "common",
"identified": true,
"unidentified": {
"description": ""
},
"container": null,
"properties": [],
"type": {
"value": "",
"subtype": ""
}
}
}
+109
View File
@@ -0,0 +1,109 @@
{
"name": "Подъёмный блок",
"type": "consumable",
"img": "icons/tools/hand/spinning-wheel-brown.webp",
"system": {
"description": {
"value": "<p>Система блоков, пропущенный через них трос и крюк, которым можно поднимать предметы. Позволяет поднять вчетверо больший вес, чем вы можете поднять обычно.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 5,
"units": "lb"
},
"price": {
"value": 5,
"denomination": "gp"
},
"attunement": "",
"equipped": false,
"rarity": "",
"identified": true,
"activation": {
"type": "action",
"cost": 1,
"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": "",
"autoDestroy": false,
"prompt": true
},
"consume": {
"type": "",
"target": null,
"amount": null,
"scale": false
},
"ability": "",
"actionType": "util",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [],
"versatile": ""
},
"formula": "",
"save": {
"ability": "",
"dc": null,
"scaling": "spell"
},
"properties": [],
"unidentified": {
"description": ""
},
"type": {
"value": "trinket",
"subtype": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"magicalBonus": null
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Block and Tackle"
},
"test_tube_merchant": {
"quantity": "1d3 * 2 + 1d2"
}
}
}
+48
View File
@@ -0,0 +1,48 @@
{
"name": "Шест (10 футов)",
"type": "loot",
"img": "icons/commodities/wood/wood-pole.webp",
"system": {
"description": {
"value": "<p>Десятифутовый шест из прочного дерева.</p>",
"chat": ""
},
"source": {
"custom": "",
"book": "SRD 5.1",
"page": "",
"license": "CC-BY-4.0"
},
"quantity": 1,
"weight": {
"value": 7,
"units": "lb"
},
"price": {
"value": 5,
"denomination": "cp"
},
"rarity": "",
"identified": true,
"type": {
"value": "",
"subtype": ""
},
"unidentified": {
"description": ""
},
"container": null,
"properties": []
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Pole"
},
"test_tube_merchant": {
"quantity": "1d3 * 2 + 1d2"
}
}
}
+114
View File
@@ -0,0 +1,114 @@
{
"name": "Шипы-«чеснок» / Caltrops",
"type": "consumable",
"img": "icons/weapons/thrown/bomb-spiked-purple.webp",
"system": {
"description": {
"value": "<p>В качестве действия вы можете разбросать «чеснок» из мешочка, покрыв этими шипами квадратную область размером 5 на 5 футов. Существо, входящее в эту область, должно пройти испытание Ловкости со СЛ 15, при провале оно прекратит перемещение в этот ход и получит 1 колющий урон. Пока получившее урон существо не восстановит хоть 1 ПЗ, его скорость ходьбы будет снижена на 10 футов. Существу, перемещающемуся через область с половинной скоростью, испытание проходить не нужно.</p>",
"chat": ""
},
"source": {
"custom": "PHB"
},
"quantity": 1,
"weight": {
"value": 0.1,
"units": "lb"
},
"price": {
"value": 1,
"denomination": "gp"
},
"attunement": "",
"equipped": false,
"rarity": "",
"identified": true,
"activation": {
"type": "action",
"cost": 1,
"condition": ""
},
"duration": {
"value": "",
"units": ""
},
"cover": null,
"crewed": false,
"target": {
"value": "5",
"width": null,
"units": "ft",
"type": "square",
"prompt": true
},
"range": {
"value": null,
"long": null,
"units": ""
},
"uses": {
"value": 1,
"max": "1",
"per": "charges",
"recovery": "",
"autoDestroy": true,
"prompt": true
},
"consume": {
"type": "",
"target": null,
"amount": null,
"scale": false
},
"ability": "",
"actionType": "save",
"chatFlavor": "",
"critical": {
"threshold": null,
"damage": ""
},
"damage": {
"parts": [
[
"1",
"piercing"
]
],
"versatile": ""
},
"formula": "",
"save": {
"ability": "dex",
"dc": 15,
"scaling": "flat"
},
"properties": [],
"unidentified": {
"description": ""
},
"type": {
"value": "trinket",
"subtype": ""
},
"attack": {
"bonus": "",
"flat": false
},
"container": null,
"attuned": false,
"enchantment": null,
"summons": null,
"magicalBonus": null
},
"effects": [],
"flags": {
"babele": {
"translated": true,
"hasTranslation": true,
"originalName": "Caltrops"
},
"test_tube_merchant": {
"quantity": "1d3 * 40 + 1d40"
}
}
}