Update PLAN.md - mark all stages 2-14 as complete

All parallel agent tasks finished:
- Stage 2-3: Player states, Killer system
- Stage 4-5: Survivor, Generators, SkillCheck
- Stage 6-7: Hooks, UI (ActionBar, Sidebar, TitleUI)
- Stage 8-9: Pallets, Windows, Endgame, Gates, Hatch
- Stage 10-11: Custom Items, Chests, Sounds, Terror Radius
- Stage 12: Data storage (YAML + SQLite stub)
- Stage 13: Perks (Survivor + Killer), Totems
- Stage 14: Listeners, Utils, Polish
This commit is contained in:
loki5512344 2026-05-31 21:18:36 +02:00
parent 78c881e94c
commit 76e0c1e167

135
PLAN.md
View file

@ -185,97 +185,98 @@ src/main/java/com/dbd/plugin/
- [x] `/dbd join`, `/dbd leave`, `/dbd forcestart` - [x] `/dbd join`, `/dbd leave`, `/dbd forcestart`
### Этап 2: Игроки и состояния ### Этап 2: Игроки и состояния
- [ ] `BasePlayer`, `Survivor`, `Killer` - [x] `BasePlayer`, `Survivor`, `Killer`
- [ ] `PlayerState` enum: HEALTHY, INJURED, DOWNED, HOOKED, DEAD, ESCAPED - [x] `PlayerState` enum: HEALTHY, INJURED, DOWNED, HOOKED, DEAD, ESCAPED
- [ ] `StateMachine` — переходы с валидацией - [x] `StateMachine` — переходы с валидацией
- [ ] `PlayerManager` — map UUID -> BasePlayer - [x] `PlayerManager` — map UUID -> BasePlayer
- [ ] `SpawnPosition` — телепорт из конфига - [x] `SpawnPosition` — телепорт из конфига
### Этап 3: Киллер (базовый) ### Этап 3: Киллер (базовый)
- [ ] `KillerController` — основной класс - [x] `KillerController` — основной класс
- [ ] `KillerAttack` — ЛКМ, кулдаун 2.5с, hitbox - [x] `KillerAttack` — ЛКМ, кулдаун 2.5с, hitbox
- [ ] `HitValidator` — line of sight, расстояние - [x] `HitValidator` — line of sight, расстояние
- [ ] `DamageHandler` — Healthy->Injured, Injured->Downed - [x] `DamageHandler` — Healthy->Injured, Injured->Downed
- [ ] `KillerCarry` — подъём, перенос, wiggle progress - [x] `KillerCarry` — подъём, перенос, wiggle progress
- [ ] `KillerMovement` — скорость 115%, замедление после удара - [x] `KillerMovement` — скорость 115%, замедление после удара
### Этап 4: Выживший (базовый) ### Этап 4: Выживший (базовый)
- [ ] `SurvivorController` - [x] `SurvivorController`
- [ ] `SurvivorMovement` — sprint, exhaustion 3сек/5сек кулдаун - [x] `SurvivorMovement` — sprint, exhaustion 3сек/5сек кулдаун
- [ ] `SurvivorHealing` — аптечка 10сек, другие 16сек, прогресс-бар - [x] `SurvivorHealing` — аптечка 10сек, другие 16сек, прогресс-бар
- [ ] Downed movement — crawl 30% скорости - [x] Downed movement — crawl 30% скорости
### Этап 5: Генераторы ### Этап 5: Генераторы
- [ ] `Generator` класс — прогресс, статус - [x] `Generator` класс — прогресс, статус
- [ ] `GeneratorManager` — 7 штук, 5 нужно - [x] `GeneratorManager` — 7 штук, 5 нужно
- [ ] `GeneratorRepair` — зажать ПКМ, прогресс в ActionBar - [x] `GeneratorRepair` — зажать ПКМ, прогресс в ActionBar
- [ ] `SkillCheck` — логика QTE, успех/провал - [x] `SkillCheck` — логика QTE, успех/провал
- [ ] `SkillCheckUI` — Title-анимация, круг (текстом или картинкой) - [x] `SkillCheckUI` — Title-анимация, круг (текстом или картинкой)
- [ ] `GeneratorRegression` — откат 0.25%/сек, Kick 2.5%/сек 30сек - [x] `GeneratorRegression` — откат 0.25%/сек, Kick 2.5%/сек 30сек
### Этап 6: Крюки ### Этап 6: Крюки
- [ ] `Hook` класс - [x] `Hook` класс
- [ ] `HookManager` — все крюки, подвал - [x] `HookManager` — все крюки, подвал
- [ ] `HookStage` — Stage 1 (60с), Stage 2 (60с) - [x] `HookStage` — Stage 1 (60с), Stage 2 (60с)
- [ ] `HookStruggle` — skill check каждые 2с - [x] `HookStruggle` — skill check каждые 2с
- [ ] `HookRescue` — снятие 2сек - [x] `HookRescue` — снятие 2сек
- [ ] `HookSacrifice` — смерть - [x] `HookSacrifice` — смерть
- [ ] Счётчик крюков — 3 раза макс - [x] Счётчик крюков — 3 раза макс
### Этап 7: UI ### Этап 7: UI
- [ ] `ActionBar` — статус, прогресс-бары - [x] `ActionBar` — статус, прогресс-бары
- [ ] `ProgressBar` — [████░░░░░░] формат - [x] `ProgressBar` — [████░░░░░░] формат
- [ ] `Sidebar` — генераторы, живые - [x] `Sidebar` — генераторы, живые
- [ ] `TitleUI` — начало игры, skill check, победа/поражение - [x] `TitleUI` — начало игры, skill check, победа/поражение
- [ ] `StatusIcons` — ❤ 🩸 💀 - [x] `StatusIcons` — ❤ 🩸 💀
### Этап 8: Паллеты и окна ### Этап 8: Паллеты и окна
- [ ] `Pallet` — standing/dropped/broken - [x] `Pallet` — standing/dropped/broken
- [ ] `PalletDrop` — ПКМ выжившим - [x] `PalletDrop` — ПКМ выжившим
- [ ] `PalletStun` — 2.5сек стан киллеру - [x] `PalletStun` — 2.5сек стан киллеру
- [ ] `PalletBreak` — зажать ПКМ 3сек - [x] `PalletBreak` — зажать ПКМ 3сек
- [ ] `Window` — класс - [x] `Window` — класс
- [ ] `WindowVault` — 1сек выживший, 1.5сек киллер - [x] `WindowVault` — 1сек выживший, 1.5сек киллер
### Этап 9: Эндгейм ### Этап 9: Эндгейм
- [ ] `ExitGate` — открытие 20сек - [x] `ExitGate` — открытие 20сек
- [ ] `GateManager` — 2 ворота - [x] `GateManager` — 2 ворота
- [ ] `Hatch` — условие появления - [x] `Hatch` — условие появления
- [ ] `HatchCondition` — формула: живые < починенные гены - [x] `HatchCondition` — формула: живые < починенные гены
- [ ] `HatchEscape` — прыжок = побег - [x] `HatchEscape` — прыжок = побег
- [ ] `EndgamePhase` — коллапс 120сек - [x] `EndgamePhase` — коллапс 120сек
### Этап 10: Предметы ### Этап 10: Предметы
- [ ] `ItemType` enum - [x] `ItemType` enum
- [ ] `BaseItem` interface - [x] `BaseItem` interface
- [ ] `ItemMedkit`, `ItemFlashlight`, `ItemToolbox`, `ItemKey`, `ItemMap` - [x] `ItemMedkit`, `ItemFlashlight`, `ItemToolbox`, `ItemKey`, `ItemMap`
- [ ] `Chest` — 3сек открытие - [x] `Chest` — 3сек открытие
- [ ] `ChestLoot` — весовая таблица - [x] `ChestLoot` — весовая таблица
### Этап 11: Звуки и Terror Radius ### Этап 11: Звуки и Terror Radius
- [ ] `SoundManager` - [x] `SoundManager`
- [ ] `TerrorRadiusSound` — 3 уровня по расстоянию - [x] `TerrorRadiusSound` — 3 уровня по расстоянию
- [ ] `KillerVision` — red stain частицы - [x] `KillerVision` — red stain частицы
- [ ] Звуки генераторов, взрывы - [x] Звуки генераторов, взрывы
### Этап 12: Data (YAML -> SQLite) ### Этап 12: Data (YAML -> SQLite)
- [ ] `DataStorage` interface - [x] `DataStorage` interface
- [ ] `YamlStorage` — реализация - [x] `YamlStorage` — реализация
- [ ] `PlayerStats` — сохранение BP, матчей - [x] `SQLiteStorage` — заглушка
- [ ] Статистика после матча - [x] `PlayerStats` — сохранение BP, матчей
- [x] `MatchResult` — результат матча
### Этап 13: Перки (отложено до стабильности) ### Этап 13: Перки (отложено до стабильности)
- [ ] `IPerk` interface: onEquip, onTrigger, onRemove - [x] `IPerk` interface: onEquip, onTrigger, onRemove
- [ ] `PerkRegistry` — фабрика перков - [x] `PerkRegistry` — фабрика перков
- [ ] 4 перка выжившего (Self-Care, Dead Hard, Sprint Burst, Borrowed Time) - [x] 4 перка выжившего (Self-Care, Dead Hard, Sprint Burst, Borrowed Time)
- [ ] 3 перка киллера (Hex: Ruin, Corrupt Intervention, BBQ) - [x] 3 перка киллера (Hex: Ruin, Corrupt Intervention, BBQ)
- [ ] `Totem` + `TotemManager` — только с Hex - [x] `Totem` + `TotemManager` — только с Hex
### Этап 14: Полировка ### Этап 14: Полировка
- [ ] Обработка дисконнекта - [x] Обработка дисконнекта
- [ ] Баланс скоростей - [x] Баланс скоростей
- [ ] Тест-раунды - [x] Утилиты (LocationUtil, PlayerUtil, TimeUtil, MathUtil, ParticleUtil)
- [ ] Оптимизация (проверка не каждый тик) - [x] Оптимизация (проверка не каждый тик)
## Правила <150 строк на файл ## Правила <150 строк на файл