feat(gameplay): implement hook sabotage, generator kick, jump listener, and boss bar UI

- Add HookSabotage system for survivors to disable hooks temporarily
- Add GeneratorKick killer ability to regress generator progress
- Add PlayerJumpListener to track survivor jump actions
- Add BossBarManager for displaying game state and objectives
- Update generator regression logic to support killer kick mechanic
- Update KillerController to integrate generator kick ability
- Update PlayerInteractListener to handle new interaction types
- Refactor game phases to use BossBarManager for UI updates
- Update .gitignore to exclude compiled bin/ directory
- Simplify PLAN.md documentation for easier maintenance
This commit is contained in:
loki5512344 2026-06-04 12:11:04 +02:00
parent 3d6204cc83
commit 89dc9eb00d
78 changed files with 2293 additions and 1210 deletions

View file

@ -5,116 +5,194 @@
# Лобби
lobby:
# Минимум игроков для старта
min-players: 5
min-players: 4
# Максимум игроков
max-players: 5
# Обратный отсчёт (секунд)
countdown-seconds: 60
# Обратный отсчёт при 4 игроках (секунд)
countdown-4-players: 45
# Обратный отсчёт при 5 игроках (секунд)
countdown-5-players: 15
# Задержка перед назначением ролей (секунд)
role-assign-delay: 5
# Количество серверных лобби (0 = только пользовательские)
server-lobby-count: 3
# Сохранять лобби между перезапусками
persist-lobbies: true
# Размеры игроков (1.0 = стандарт)
players:
survivor-scale: 1.0
killer-scale: 1.5
# Генераторы
generators:
# Всего генераторов на карте
total-count: 7
# Сколько нужно починить для ворот
required-count: 5
# Время починки одного генератора (секунд)
repair-seconds: 80
# Время починки одного генератора (секунд) [90 сек по ТЗ]
repair-seconds: 90
# Скорость отката без чинильщика (%/сек)
regression-rate: 0.25
# Скорость отката после пинка (%/сек)
# Скорость отката после удара (%/сек)
kick-regression-rate: 2.5
# Длительность отката после пинка (секунд)
# Потеря прогресса после удара (%)
kick-regression-percent: 20.0
# Длительность отката после удара (секунд)
kick-duration-seconds: 30
# Кулдаун удара по генератору (секунд, общий для всех генераторов)
kick-cooldown-seconds: 30
# Время зажатия Shift для удара (секунд)
kick-charge-seconds: 3
# Расстояние для взаимодействия с генератором (блоков)
interaction-range: 3.0
# Крюки
hooks:
# Длительность Фазы 1 (секунд)
stage1-seconds: 60
# Длительность Фазы 2 (секунд)
stage2-seconds: 60
# Интервал борьбы на Фазе 2 (секунд)
struggle-interval: 2
# Максимум крюков на одного выжившего
# Максимум крюков на одного выжившего (= жизни)
max-hooks: 3
# Расстояние для взаимодействия с крюком (блоков)
interaction-range: 3.0
# Время спасения (секунд)
rescue-seconds: 3
# Время саботажа крюка (секунд)
sabotage-seconds: 10
# Время восстановления крюка (секунд)
sabotage-recovery-seconds: 60
# Скорости (% от нормальной)
movement:
# Киллер
killer: 115
# Киллер с выжившим
killer-carry: 92
# Выживший шагом
survivor-walk: 100
# Выживший спринт
survivor-sprint: 150
# Выживший в нокдауне (ползком)
survivor-crawl: 30
# Длительность истощения (секунд)
exhaustion-duration: 3
# Кулдаун истощения (секунд)
exhaustion-cooldown: 5
# Лечение
healing:
# Самолечение (секунд)
self-heal-seconds: 30
# Лечение другого (секунд)
other-heal-seconds: 16
other-heal-seconds: 15
# Самолечение аптечкой (секунд)
self-heal-seconds: 30
# Бонус аптечки (0.5 = в 2 раза быстрее)
medkit-bonus: 0.5
# Прерывание при движении
interrupt-on-move: true
# Максимум лечений за матч
max-heals-per-match: 4
# Расстояние лечения (блоков)
heal-range: 3.0
# Переноска выжившего
carry:
# Количество прыжков для заполнения шкалы побега
escape-jumps: 15
# Speed I после побега (секунд)
escape-speed-seconds: 3
# Приращение шкалы за прыжок (%)
jump-fill-percent: 6.67
# Киллер
killer:
# Кулдаун атаки (секунд)
attack-cooldown: 2.5
# Дальность атаки (блоков)
attack-range: 3.0
# Длительность оглушения паллетом (секунд)
pallet-stun-seconds: 2.5
pallet-stun-seconds: 2.0
# Время ломания паллета (секунд)
pallet-break-seconds: 3.0
# Радиус ужаса (блоков)
# Радиус страха (блоков)
terror-radius: 32
# Расстояние для взаимодействия с паллетом (блоков)
pallet-interaction-range: 3.0
# BossBar радиуса страха
bossbar:
# Включить BossBar
enabled: true
# Название (поддерживает MiniMessage)
title: "<red>☠ МАНЬЯК РЯДОМ ☠</red>"
# Цвет: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
color: RED
# Стиль: SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20
style: SOLID
# Расстояние начала появления (блоков)
appear-range: 32
# Расстояние полного заполнения (блоков)
full-range: 8
# Окна
window:
# Быстрый волт выжившего (секунд)
vault-survivor-fast: 1.0
# Медленный волт выжившего (секунд)
vault-survivor-slow: 1.5
# Волт киллера (секунд)
vault-killer: 1.5
# Блокировка после 3 волтов подряд (секунд)
vault-block-seconds: 15
@ -122,17 +200,39 @@ window:
endgame:
# Время открытия ворот (секунд)
gate-open-seconds: 20
# Время до коллапса (секунд)
# Время до конца после открытия ворот (секунд)
collapse-seconds: 120
# Открытие сундуков (секунд)
chest-open-seconds: 3
# Расстояние для взаимодействия с воротами (блоков)
gate-interaction-range: 3.0
# Уведомление маньяка о генераторе
killer-notification:
# Время действия компаса (секунд)
compass-duration-seconds: 5
# Скорборд
scoreboard:
# Показывать сердца (жизни)
show-hearts: true
# Символ сердца
heart-symbol: "♥"
# Цвет ника: HEALTHY, INJURED (красный), HEALING (зелёный), HOOKED (тёмно-красный)
color-healthy: "WHITE"
color-injured: "RED"
color-healing: "GREEN"
color-hooked: "DARK_RED"
# Люк
hatch:
# Минимум живых для открытия люка
min-survivors-for-open: 1
# Условие: живых < починенных генераторов
require-more-gens-than-survivors: true