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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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