squad-proto/projects/descent/catalog/entities.txt
z.kirill f7ce189352 Лут перестал быть мусором; 19 новых вещей (M35)
ЧТО ДЕЛАЛО ЛУТ МУСОРОМ. Три вещи, и все три чинятся в броске:

1. Оружие могло выкатиться БЕЗ ЕДИНОГО боевого аффикса. Редкость обещала
   силу, а рулон целиком уходил в снабжение - и "реликт" оказывался хуже
   обычного карабина. Теперь первым всегда идёт ключевой тег вида: у
   оружия боевой, у брони защитный. Замер: 935 небанальных стволов, ноль
   без боевых аффиксов.

2. Тир брался равномерно до потолка глубины: на восьмидесятом этаже
   половина аффиксов была первого-второго тира, то есть глубина меняла
   число строк в описании, а не их силу. Теперь из двух бросков берётся
   больший - средний тир на дне поднялся с 5.0 до 6.5.

3. Все находки одного этажа имели один бюджет и различались только
   рулонами. Теперь уровень предмета гуляет -2..+3 от глубины: плюс три
   сверху дают находку, опережающую глубину, а это лучшая причина
   спускаться.

КОНТЕНТ. 19 новых предметов: шесть стволов (гвоздомёт, пулемёт, плазма,
рельса, огнемёт, кислота), четыре клинка (стилет с парированием 0.52,
молот на 430 урона и парированием 0.02, цепной, крио), четыре брони и
пять карманных. У каждой вещи свой минус, ни одна не доминирует старые;
клинки уложены в одну ось "вес против парирования".

ИНСТРУМЕНТЫ СЧИТАЛИ ТРЕТЬ ИГРЫ. Список стволов в tools.cpp был
захардкожен шестью значениями: --tool weapons и --tool ttk молчали про
новое оружие ровно так же, как про новых тварей. Теперь там весь арсенал.

Каталог проекта пополнен всеми новыми вещами по тирам и глубинам (3..31),
чтобы они реально падали, а не лежали в перечислении.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 19:47:13 +03:00

110 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Каталог размещаемых сущностей — граница между движком и игрой.
#
# Редактор комнат читает ТОЛЬКО этот файл: он не знает, что такое SHAMBLER и
# чем тот бьёт, он знает id, класс, цвет, глубину и цену. Игра переводит id в
# свои EnemyKind и ItemId одной таблицей (src/sim/spawn_catalog.cpp).
#
# entity <id> ключ=значение ...
#
# class monster | prop | loot
# depth N — с этажа N и глубже
# N..M — с N по M включительно
# danger цена в бюджете опасности этажа. Не урон и не HP, а «сколько места
# в голове игрока эта тварь занимает». Бюджет — то, чем этаж
# отличается по СЛОЖНОСТИ, а не по числу тел
# tier качество предмета: этаж выдаёт свой тир и всё, что ниже
# color чем редактор рисует сущность, пока для неё нет спрайта
#
# Порядок ключей не важен, лишние ключи — ошибка, а не молчаливый пропуск.
# Порядок СТРОК важен: это порядок палитры в редакторе.
# --- твари -------------------------------------------------------------------
# Кривая простая и читается сверху вниз: первые этажи — бредущие и бегуны,
# дальше подключаются плевки, громилы и хваты. Верхняя граница у мелочи есть
# намеренно: на двадцатом этаже одиночный бредущий занимал бы место, которое
# должно достаться чему-то, чего игрок ещё не видел.
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
entity rusher class=monster depth=4 danger=1.3 radius=0.27 color=158,74,44 sprite=rusher_walk name=RUSHER
entity spitter class=monster depth=3 danger=2.0 radius=0.31 color=96,132,72 sprite=spitter_walk name=SPITTER
entity lurker class=monster depth=5 danger=2.6 radius=0.30 color=88,62,118 sprite=lurker_walk name=LURKER
entity brute class=monster depth=7 danger=4.5 radius=0.46 color=142,60,78 sprite=brute_walk name=BRUTE
# Акты II-VI. До этого каталог кончался громилой на седьмом этаже, и глубже
# бюджет опасности выбирался теми же пятью видами — то есть спуск переставал
# показывать новое ровно там, где обязан был начать.
entity cinder class=monster depth=9 danger=2.8 radius=0.32 color=178,92,40 sprite=shambler_walk name=CINDER
entity stinger class=monster depth=21 danger=2.2 radius=0.26 color=104,120,132 sprite=spitter_walk name=STINGER
entity swarm class=monster depth=36 danger=1.6 radius=0.30 color=138,132,56 sprite=rusher_walk name=SWARM
entity husk class=monster depth=36 danger=7.0 radius=0.44 color=128,122,104 sprite=brute_walk name=HUSK
entity sleeper class=monster depth=44 danger=6.0 radius=0.50 color=96,88,74 sprite=brute_walk name=SLEEPER
entity wailer class=monster depth=53 danger=8.0 radius=0.33 color=158,150,176 sprite=spitter_walk name=WAILER
entity voidling class=monster depth=73 danger=11.0 radius=0.32 color=52,48,86 sprite=lurker_walk name=VOIDLING
# Мишень приёмки: не ходит и не бьёт. Опасности не несёт, поэтому и бюджета
# не тратит — ею ставят неподвижную цель, когда нужна именно цель.
entity dummy class=monster depth=1 danger=0.0 radius=0.34 color=120,44,44 sprite=- name=TARGET
# --- обстановка --------------------------------------------------------------
# Ломается, не отрастает обратно и не участвует в зачистке.
entity crate class=prop depth=1 radius=0.38 color=104,76,46 sprite=prop_crate name=CRATE
entity barrel class=prop depth=1 radius=0.33 color=92,84,58 sprite=prop_barrel name=BARREL
entity locker class=prop depth=2 radius=0.36 color=78,88,96 sprite=prop_locker name=LOCKER
# --- лут ---------------------------------------------------------------------
# Тир — это «с какой глубины вещь становится находкой». Нижние тиры с глубиной
# не исчезают: бинт нужен всегда, он просто перестаёт быть удачей.
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
# Батарея — второй расходник первой необходимости после бинта: свет садится сам
# и на всех, поэтому нижним тиром и с первого этажа. Иконки пока нет.
entity battery class=loot tier=0 depth=1 radius=0.22 color=150,210,200 sprite=- name=BATTERY
entity pistol class=loot tier=0 depth=1 radius=0.24 color=190,180,168 sprite=item_icon_pistol name=PISTOL
entity knife class=loot tier=0 depth=1 radius=0.22 color=214,222,232 sprite=item_icon_knife name=KNIFE
entity jacket class=loot tier=0 depth=1 radius=0.26 color=122,112,96 sprite=item_icon_jacket name=JACKET
entity rifle class=loot tier=1 depth=2 radius=0.26 color=208,196,150 sprite=item_icon_rifle name=CARBINE
entity saber class=loot tier=1 depth=2 radius=0.26 color=200,212,228 sprite=item_icon_saber name=SABER
entity vest class=loot tier=1 depth=3 radius=0.26 color=108,118,108 sprite=item_icon_vest name=VEST
entity stimpack class=loot tier=1 depth=3 radius=0.22 color=130,220,170 sprite=item_icon_stimpack name=STIM
entity smg class=loot tier=2 depth=5 radius=0.26 color=176,200,220 sprite=item_icon_smg name=SMG
entity shotgun class=loot tier=2 depth=6 radius=0.28 color=214,158,104 sprite=item_icon_shotgun name=SHOTGUN
entity cleaver class=loot tier=2 depth=6 radius=0.28 color=196,174,160 sprite=item_icon_cleaver name=CLEAVER
entity spurs class=loot tier=2 depth=5 radius=0.22 color=198,184,120 sprite=item_icon_spurs name=SPURS
entity lantern class=loot tier=2 depth=4 radius=0.24 color=240,206,130 sprite=item_icon_lantern name=LANTERN
entity magnum class=loot tier=3 depth=9 radius=0.28 color=226,210,176 sprite=item_icon_magnum name=MAGNUM
entity bow class=loot tier=3 depth=10 radius=0.26 color=154,190,164 sprite=item_icon_bow name=BOW
entity plate class=loot tier=3 depth=9 radius=0.30 color=140,146,156 sprite=item_icon_plate name=PLATE
entity shroud class=loot tier=3 depth=11 radius=0.26 color=88,84,100 sprite=item_icon_shroud name=SHROUD
entity charm class=loot tier=3 depth=8 radius=0.22 color=196,130,190 sprite=item_icon_charm name=CHARM
# --- оружие и снаряжение актов II-VI -------------------------------------------
# Тир — «с какой глубины вещь становится находкой». Роли разные, и каждая вещь
# чем-то хуже соседней: гвоздомёт дешёвый и слабый, пулемёт тяжёлый, рельса
# бьёт далеко и редко (docs/13-combat.md).
entity nailer class=loot tier=1 depth=3 radius=0.24 color=170,170,150 sprite=- name=NAILER
entity recon class=loot tier=1 depth=4 radius=0.26 color=120,140,120 sprite=- name=RECON
entity harness class=loot tier=1 depth=5 radius=0.22 color=150,140,120 sprite=- name=HARNESS
entity acid class=loot tier=2 depth=7 radius=0.26 color=120,170,90 sprite=- name=ACID
entity stiletto class=loot tier=2 depth=7 radius=0.22 color=200,200,220 sprite=- name=STILETTO
entity weave class=loot tier=2 depth=8 radius=0.26 color=110,120,140 sprite=- name=WEAVE
entity clamp class=loot tier=2 depth=8 radius=0.22 color=170,150,110 sprite=- name=CLAMP
entity plasma class=loot tier=3 depth=11 radius=0.26 color=150,190,230 sprite=- name=PLASMA
entity ripper class=loot tier=3 depth=12 radius=0.26 color=160,190,120 sprite=- name=RIPPER
entity helm class=loot tier=3 depth=12 radius=0.28 color=130,130,140 sprite=- name=HELM
entity adrenal class=loot tier=3 depth=13 radius=0.22 color=210,140,120 sprite=- name=ADRENAL
entity thermal class=loot tier=3 depth=14 radius=0.22 color=200,120,90 sprite=- name=THERMAL
entity flamer class=loot tier=4 depth=17 radius=0.28 color=230,140,60 sprite=- name=FLAMER
entity cryoedge class=loot tier=4 depth=18 radius=0.26 color=140,200,230 sprite=- name=CRYOEDGE
entity pauldron class=loot tier=4 depth=19 radius=0.24 color=140,140,150 sprite=- name=PAULDRON
entity carapace class=loot tier=4 depth=20 radius=0.30 color=120,110,90 sprite=- name=CARAPACE
entity hmg class=loot tier=5 depth=24 radius=0.30 color=90,100,110 sprite=- name=HMG
entity maul class=loot tier=5 depth=26 radius=0.30 color=150,130,110 sprite=- name=MAUL
entity rail class=loot tier=6 depth=31 radius=0.28 color=180,180,210 sprite=- name=RAIL