8.4 KiB
Вы правы, забыл хиты. Добавляю колонку HP (Hit Points) — среднее значение из диапазона Рек. Хиты для соответствующего CR, округлённое до целого.
Для дробных CR (0.125, 0.25, 0.5) беру данные из вашей таблицы:
- CR 0.125 → 7–35 → среднее 21
- CR 0.25 → 36–49 → среднее 43
- CR 0.5 → 50–70 → среднее 60
Для целых CR — как в таблице (беру середину диапазона, округлённую до целого).
Ниже — итоговые таблицы с хитами для каждой серьёзности.
Easy (M=0.25)
| Lvl | CR | PB | DC | ATK | HP (сред) | DMG_s (сред) | DMG_a (сред) | INIT |
|---|---|---|---|---|---|---|---|---|
| 1 | 0.125 | 2 | 13 | +3 | 21 | 1d4 (2.5) | 1d4 (2.5) | 2 |
| 2 | 0.25 | 2 | 13 | +3 | 43 | 1d4 (2.5) | 1d4 (2.5) | 2 |
| 3 | 0.5 | 2 | 13 | +3 | 60 | 1d6 (3.5) | 1d4 (2.5) | 2 |
| 4 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 5 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 6 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 7 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 8 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 9 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 10 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 11 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 12 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 13 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 14 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 15 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 16 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 17 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 18 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 19 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 20 | 5 | 3 | 15 | +6 | 138 | 6d10 (33) | 6d6 (21) | 3 |
Moderate (M=0.5)
| Lvl | CR | PB | DC | ATK | HP (сред) | DMG_s (сред) | DMG_a (сред) | INIT |
|---|---|---|---|---|---|---|---|---|
| 1 | 0.5 | 2 | 13 | +3 | 60 | 1d6 (3.5) | 1d4 (2.5) | 2 |
| 2 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 3 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 4 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 5 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 6 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 7 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 8 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 9 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 10 | 5 | 3 | 15 | +6 | 138 | 6d10 (33) | 6d6 (21) | 3 |
| 11 | 5 | 3 | 15 | +6 | 138 | 6d10 (33) | 6d6 (21) | 3 |
| 12 | 6 | 3 | 15 | +6 | 153 | 7d10 (38.5) | 7d6 (24.5) | 3 |
| 13 | 6 | 3 | 15 | +6 | 153 | 7d10 (38.5) | 7d6 (24.5) | 3 |
| 14 | 7 | 3 | 15 | +6 | 168 | 8d10 (44) | 8d6 (28) | 3 |
| 15 | 7 | 3 | 15 | +6 | 168 | 8d10 (44) | 8d6 (28) | 3 |
| 16 | 8 | 3 | 16 | +7 | 183 | 9d10 (49.5) | 9d6 (31.5) | 3 |
| 17 | 8 | 3 | 16 | +7 | 183 | 9d10 (49.5) | 9d6 (31.5) | 3 |
| 18 | 9 | 4 | 16 | +7 | 198 | 10d10 (55) | 10d6 (35) | 4 |
| 19 | 9 | 4 | 16 | +7 | 198 | 10d10 (55) | 10d6 (35) | 4 |
| 20 | 10 | 4 | 16 | +7 | 213 | 11d10 (60.5) | 11d6 (38.5) | 4 |
Dangerous (M=0.75)
| Lvl | CR | PB | DC | ATK | HP (сред) | DMG_s (сред) | DMG_a (сред) | INIT |
|---|---|---|---|---|---|---|---|---|
| 1 | 0.5 | 2 | 13 | +3 | 60 | 1d6 (3.5) | 1d4 (2.5) | 2 |
| 2 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 3 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 4 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 5 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 6 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 7 | 5 | 3 | 15 | +6 | 138 | 6d10 (33) | 6d6 (21) | 3 |
| 8 | 6 | 3 | 15 | +6 | 153 | 7d10 (38.5) | 7d6 (24.5) | 3 |
| 9 | 6 | 3 | 15 | +6 | 153 | 7d10 (38.5) | 7d6 (24.5) | 3 |
| 10 | 7 | 3 | 15 | +6 | 168 | 8d10 (44) | 8d6 (28) | 3 |
| 11 | 8 | 3 | 16 | +7 | 183 | 9d10 (49.5) | 9d6 (31.5) | 3 |
| 12 | 9 | 4 | 16 | +7 | 198 | 10d10 (55) | 10d6 (35) | 4 |
| 13 | 9 | 4 | 16 | +7 | 198 | 10d10 (55) | 10d6 (35) | 4 |
| 14 | 10 | 4 | 16 | +7 | 213 | 11d10 (60.5) | 11d6 (38.5) | 4 |
| 15 | 11 | 4 | 17 | +8 | 228 | 12d10 (66) | 12d6 (42) | 4 |
| 16 | 12 | 4 | 17 | +8 | 243 | 13d10 (71.5) | 13d6 (45.5) | 4 |
| 17 | 12 | 4 | 17 | +8 | 243 | 13d10 (71.5) | 13d6 (45.5) | 4 |
| 18 | 13 | 5 | 18 | +8 | 258 | 14d10 (77) | 14d6 (49) | 5 |
| 19 | 14 | 5 | 18 | +8 | 273 | 15d10 (82.5) | 15d6 (52.5) | 5 |
| 20 | 15 | 5 | 18 | +8 | 288 | 16d10 (88) | 16d6 (56) | 5 |
Deadly (M=1.0)
| Lvl | CR | PB | DC | ATK | HP (сред) | DMG_s (сред) | DMG_a (сред) | INIT |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 2 | 13 | +3 | 78 | 2d10 (11) | 2d6 (7) | 2 |
| 2 | 2 | 2 | 13 | +3 | 93 | 3d10 (16.5) | 3d6 (10.5) | 2 |
| 3 | 3 | 2 | 13 | +4 | 108 | 4d10 (22) | 4d6 (14) | 2 |
| 4 | 4 | 2 | 14 | +5 | 123 | 5d10 (27.5) | 5d6 (17.5) | 2 |
| 5 | 5 | 3 | 15 | +6 | 138 | 6d10 (33) | 6d6 (21) | 3 |
| 6 | 6 | 3 | 15 | +6 | 153 | 7d10 (38.5) | 7d6 (24.5) | 3 |
| 7 | 7 | 3 | 15 | +6 | 168 | 8d10 (44) | 8d6 (28) | 3 |
| 8 | 8 | 3 | 16 | +7 | 183 | 9d10 (49.5) | 9d6 (31.5) | 3 |
| 9 | 9 | 4 | 16 | +7 | 198 | 10d10 (55) | 10d6 (35) | 4 |
| 10 | 10 | 4 | 16 | +7 | 213 | 11d10 (60.5) | 11d6 (38.5) | 4 |
| 11 | 11 | 4 | 17 | +8 | 228 | 12d10 (66) | 12d6 (42) | 4 |
| 12 | 12 | 4 | 17 | +8 | 243 | 13d10 (71.5) | 13d6 (45.5) | 4 |
| 13 | 13 | 5 | 18 | +8 | 258 | 14d10 (77) | 14d6 (49) | 5 |
| 14 | 14 | 5 | 18 | +8 | 273 | 15d10 (82.5) | 15d6 (52.5) | 5 |
| 15 | 15 | 5 | 18 | +8 | 288 | 16d10 (88) | 16d6 (56) | 5 |
| 16 | 16 | 5 | 18 | +9 | 303 | 17d10 (93.5) | 17d6 (59.5) | 5 |
| 17 | 17 | 6 | 19 | +10 | 318 | 18d10 (99) | 18d6 (63) | 6 |
| 18 | 18 | 6 | 19 | +10 | 333 | 19d10 (104.5) | 19d6 (66.5) | 6 |
| 19 | 19 | 6 | 19 | +10 | 348 | 20d10 (110) | 20d6 (70) | 6 |
| 20 | 20 | 6 | 19 | +10 | 363 | 21d10 (115.5) | 21d6 (73.5) | 6 |
Теперь таблицы полны: есть CR, PB, DC, ATK, HP, урон (single и area), инициатива.
Все значения согласованы с вашей таблицей монстров.
Если всё устраивает, приступаю к написанию кода generate_trap.py, который будет:
- По уровню и серьёзности определять CR и все характеристики из этих таблиц.
- Генерировать параметры ловушки, включая
visual_cluesиaudible_cluesна основеenvironmentиtrap_race. - Вычислять
escape_requirementsпо правилам. - Возвращать структурированный Markdown (или JSON) для последующей обработки промптом.
Согласны? Нужны ещё правки?Отлично, таблицы готовы. Переходим к написанию кода. Я реализую generate_trap.py согласно согласованным таблицам и логике. Код будет содержать:
- Функции для получения CR, PB, DC, ATK, HP, урона (single/area), инициативы по уровню и серьёзности.
- Определение
trap_raceиз environment (если не задана). - Определение
summon_typeиз environment (если не задан). - Автоматический вывод
escape_requirements. - Генерацию
visual_cluesиaudible_cluesна основе trap_race. - Формирование Markdown-описания.
Начну писать код. После завершения выложу его сюда для проверки.