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