squad-proto/projects/hollow/catalog/entities.txt

37 lines
3.2 KiB
Plaintext
Raw Normal View History

# Каталог HOLLOW. Формат тот же, что у DESCENT, — это формат ДВИЖКА.
#
# Набор другой и цены другие: здесь нет мишеней и почти нет обстановки, зато
# бегуны выходят с первого этажа, а громила — с четвёртого, а не с седьмого.
#
# id совпадают с DESCENT намеренно: игра переводит их в свои EnemyKind одной
# таблицей (src/sim/spawn_catalog.cpp), и id, которого в ней нет, не даст
# никого. Это граница ИГРЫ, а не движка.
# --- твари -------------------------------------------------------------------
Дерево улучшений вместо четырёх кнопок (M32) Четыре строки покупок (патроны, переноска, обзор, живучесть) удалены целиком. Выбора в них не было: купить в итоге можно было всё, порядок ни на что не влиял, и через две вылазки экран превращался в кнопку "продолжить". Дерево: пять ветвей по восемь узлов, у каждого пять уровней. Ветви - это пять способов закрыть разрыв из закона масштаба: стволы, клинки, стихии, снабжение, отряд. Ветвь открывается цепочкой - узел доступен, когда взят предыдущий в этой же ветви. Свободная сетка читалась бы как список; цепочка читается как путь. Ни один узел не заводит нового канала влияния: каждый кладёт своё число туда, куда уже кладут снаряжение и аффиксы. Дерево будет расти, и первый же "особенный" узел со своей веткой в коде превратил бы SyncLoadout в свалку. ЭКОНОМИКА. --tool economy поймал, что первая версия дерева стоит 9% одного прохода 1..100: опыт растёт с глубиной квадратично, а дерево с фиксированными ценами выкупается целиком за половину глубокого прохода, и выбор кончается к сороковому этажу навсегда. Введено общее удорожание: каждая вложенная точка поднимает цену всех следующих (цена = база · 1.5^уровень · (1 + 0.15 · вложено)). Полное дерево стоит 34 млн против 41 млн, заложенных в дизайне, то есть около шести с половиной полных проходов. Старые покупки из профиля читаются, но не применяются: потраченный на них опыт возвращается в банк. Молча съесть чужие двадцать часов нельзя. Проверка меряет ПРОВОДКУ по всем пяти ветвям, а не таблицу узлов: дерево: куплено уровней 45, закрытый узел закрыт урон ствола 12.0 -> 14.4, здоровье 100 -> 150, скорость 1.06 -> 1.22 парирование 0.34 -> 0.49, свет 420 -> 620 Попутно: в проекте hollow бегуны и хваты уехали с первых этажей глубже - там одиночка с ножом гиб на первом же этаже по той же причине, по которой это было в основном проекте. Формат профиля 7: строки tree. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 23:24:50 +07:00
entity rusher class=monster depth=4 danger=1.3 radius=0.27 color=158,74,44 sprite=rusher_walk name=RUSHER
Личинки, парирование и инструмент --wall (M30) --WALL. Новый прогон отвечает на вопрос, появившийся вместе с чекпоинтами через пятьдесят этажей: растёт ли достижимая глубина от вылазки к вылазке. Отряд из одного, трёх и пяти, одетый по глубине, ставится в скопление тварей и живёт полторы минуты без управления. Первая стена: одиночка D7, трое D30, пятеро D30 - петля работает. И он же нашёл настоящую ошибку: PlaceSquad воскрешал ВСЕ пять слотов, в том числе незанятые. Строка писалась, когда отряд всегда был впятером; после появления ростера одиночка выходил на этаж с четырьмя невидимыми телохранителями. Из-за них прежний замер "одиночка выжил на первом этаже, 100 -> 41" был боем впятером. ЛИЧИНКИ. С исправленным замером выяснилось, что одиночка с ножом проигрывает двум бредущим: 210 здоровья против ножа это девять секунд работы под ответным уроном. Первые этажи населены личинками (55 здоровья, 7 урона, медленные), бредущий уехал на третий этаж, бегун на четвёртый. Новый ВИД, а не ослабленный бредущий с множителем: глубина в этой игре меняет, кто выходит, а не числа у одного и того же. ПАРИРОВАНИЕ. Отдельная характеристика клинка, и чем оружие легче, тем она выше: нож 34%, сабля 20%, тесак 8%. Не выведена из веса намеренно - её двигает аффикс PARRY, и лёгкий тесак обязан быть возможен как находка. Отбить можно, только если удары СОПРИКОСНУЛИСЬ: боец сам должен быть в замахе или в ударе. Иначе клинок стал бы щитом, работающим, пока стоишь. Удавшийся отбив снимает урон, бьёт тварь ударом бойца целиком и запускает повторную атаку с начала фазы, НЕ сбрасывая откат. Последнее и есть суть размена: сбрасывай отбив откат, выгоднее было бы подставляться под удары. Плевок отбивается тоже: летит назад и несёт урон бойца, а не твари. Это его удар, просто по летящей цели. Проверка меряет размен целиком, включая обратную половину правила: "стоя столбом не отбивает". Без неё условие про соприкосновение существовало бы только в комментарии. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 09:04:35 +07:00
entity larva class=monster depth=1..4 danger=0.7 radius=0.28 color=132,120,78 sprite=shambler_walk name=LARVA
entity shambler class=monster depth=3 danger=1.0 radius=0.34 color=116,52,52 sprite=shambler_walk name=SHAMBLER
Дерево улучшений вместо четырёх кнопок (M32) Четыре строки покупок (патроны, переноска, обзор, живучесть) удалены целиком. Выбора в них не было: купить в итоге можно было всё, порядок ни на что не влиял, и через две вылазки экран превращался в кнопку "продолжить". Дерево: пять ветвей по восемь узлов, у каждого пять уровней. Ветви - это пять способов закрыть разрыв из закона масштаба: стволы, клинки, стихии, снабжение, отряд. Ветвь открывается цепочкой - узел доступен, когда взят предыдущий в этой же ветви. Свободная сетка читалась бы как список; цепочка читается как путь. Ни один узел не заводит нового канала влияния: каждый кладёт своё число туда, куда уже кладут снаряжение и аффиксы. Дерево будет расти, и первый же "особенный" узел со своей веткой в коде превратил бы SyncLoadout в свалку. ЭКОНОМИКА. --tool economy поймал, что первая версия дерева стоит 9% одного прохода 1..100: опыт растёт с глубиной квадратично, а дерево с фиксированными ценами выкупается целиком за половину глубокого прохода, и выбор кончается к сороковому этажу навсегда. Введено общее удорожание: каждая вложенная точка поднимает цену всех следующих (цена = база · 1.5^уровень · (1 + 0.15 · вложено)). Полное дерево стоит 34 млн против 41 млн, заложенных в дизайне, то есть около шести с половиной полных проходов. Старые покупки из профиля читаются, но не применяются: потраченный на них опыт возвращается в банк. Молча съесть чужие двадцать часов нельзя. Проверка меряет ПРОВОДКУ по всем пяти ветвям, а не таблицу узлов: дерево: куплено уровней 45, закрытый узел закрыт урон ствола 12.0 -> 14.4, здоровье 100 -> 150, скорость 1.06 -> 1.22 парирование 0.34 -> 0.49, свет 420 -> 620 Попутно: в проекте hollow бегуны и хваты уехали с первых этажей глубже - там одиночка с ножом гиб на первом же этаже по той же причине, по которой это было в основном проекте. Формат профиля 7: строки tree. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 23:24:50 +07:00
entity lurker class=monster depth=5 danger=2.6 radius=0.30 color=88,62,118 sprite=lurker_walk name=LURKER
entity spitter class=monster depth=3 danger=2.0 radius=0.31 color=96,132,72 sprite=spitter_walk name=SPITTER
entity brute class=monster depth=4 danger=4.5 radius=0.46 color=142,60,78 sprite=brute_walk name=BRUTE
# --- обстановка --------------------------------------------------------------
entity barrel class=prop depth=1 radius=0.33 color=92,84,58 sprite=prop_barrel name=BARREL
# --- лут ---------------------------------------------------------------------
# Короткая лестница качества: четыре тира на шесть этажей вместо четырёх на
# двенадцать. Спуск здесь не успевает одеть отряд, и это замысел.
entity ammo class=loot tier=0 depth=1 radius=0.22 color=200,176,96 sprite=item_icon_ammo name=AMMO
entity bandage class=loot tier=0 depth=1 radius=0.22 color=216,208,196 sprite=item_icon_bandage name=BANDAGE
Свет как расходник: заряд тратится за путь, а не за время (M23) Второй ресурс вылазки после патронов. Фонарь садится, погас — обзор падает до 35%, а твари замечают отряд в 1.35 раза дальше: отряд не слепнет, он меняется с тварями местами. Батарея встаёт сама, как бинт. Главное решение — расход за ПРОЙДЕННЫЙ ПУТЬ, а не за время. Первая версия считала по секундам, то есть была таймером, которого в игре нет по прямому требованию к жанру: садящийся сам собой фонарь торопил бы игрока ровно как секундомер, только без циферблата, и думать над этажом стало бы дорого. За расстояние получается тот же размен, что и с весом, но с другой стороны: вес делает дорогим «унести всё», свет — «обшарить всё». Заряд общий на отряд и едет вниз вместе с ним: обновляйся он на этаже, это был бы ресурс этажа, а не вылазки, и никуда бы не гнал. Чем глубже, тем дороже шаг, а этажи внизу длиннее — глубина жмёт на свет дважды. Проверка в --descend меряет правило целиком, и первая её строка не про баланс, а про жанр: заряд на стоянке обязан стоять. Сам измеритель тоже был неправ — делил потраченное на смещение отряда, а не на пройденный путь, и показывал 1.55 за тайл при 1.10 в каталоге. свет: стоянка 0.2, ход 1.10 за тайл при 1.10 в каталоге глубина 8: заряда на 383 тайла, это 4.0 прямых пути до спуска обзор 1.00 -> 0.35 в темноте, батарея встала сама Хватает ли заряда на этаж считается в этажах и по средней длине забега: путь до спуска скачет вдвое от сида, и порог по одному этажу ловил бы удачу, а не баланс. --accept PASS без изменений: в песочнице света бесконечно, как и патронов. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 02:12:05 +07:00
entity battery class=loot tier=0 depth=1 radius=0.22 color=150,210,200 sprite=- name=BATTERY
entity knife class=loot tier=0 depth=1 radius=0.22 color=214,222,232 sprite=item_icon_knife name=KNIFE
entity rifle class=loot tier=1 depth=2 radius=0.26 color=208,196,150 sprite=item_icon_rifle name=CARBINE
entity vest class=loot tier=1 depth=2 radius=0.26 color=108,118,108 sprite=item_icon_vest name=VEST
entity shotgun class=loot tier=2 depth=3 radius=0.28 color=214,158,104 sprite=item_icon_shotgun name=SHOTGUN
entity lantern class=loot tier=2 depth=3 radius=0.24 color=240,206,130 sprite=item_icon_lantern name=LANTERN
entity plate class=loot tier=3 depth=5 radius=0.30 color=140,146,156 sprite=item_icon_plate name=PLATE
entity cleaver class=loot tier=3 depth=5 radius=0.28 color=196,174,160 sprite=item_icon_cleaver name=CLEAVER