[Add] MORE DOCS
This commit is contained in:
@@ -0,0 +1,288 @@
|
|||||||
|
# Attribute Reference
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Этот документ фиксирует атрибуты в компактной рабочей форме: что делает каждый атрибут, какие derived stats он двигает, от каких систем зависит и куда отдает влияние.
|
||||||
|
|
||||||
|
## Related Docs
|
||||||
|
|
||||||
|
- `docs/gameplay/attribute-system-gdd.md`
|
||||||
|
- `docs/gameplay/stat-catalog-mvp.md`
|
||||||
|
- `docs/gameplay/combat-resolution-gdd.md`
|
||||||
|
|
||||||
|
## System Position
|
||||||
|
|
||||||
|
Атрибуты находятся между базовой конфигурацией персонажа и итоговыми боевыми расчетами.
|
||||||
|
|
||||||
|
Поток данных:
|
||||||
|
|
||||||
|
`Class Definition / Level / Equipment / Buffs / Skills` -> `Attributes` -> `Derived Stats` -> `Combat Resolution`
|
||||||
|
|
||||||
|
## Attribute Sources
|
||||||
|
|
||||||
|
Каждый атрибут может получать значение из следующих источников:
|
||||||
|
|
||||||
|
- базовое стартовое значение персонажа
|
||||||
|
- класс и class affinity
|
||||||
|
- уровень персонажа
|
||||||
|
- экипировка
|
||||||
|
- временные бафы и дебафы
|
||||||
|
- weapon-specific modifiers
|
||||||
|
- skill-specific modifiers
|
||||||
|
|
||||||
|
## Attribute Rules
|
||||||
|
|
||||||
|
- атрибуты не должны напрямую дублировать друг друга
|
||||||
|
- offensive и defensive ценность должны быть разведены
|
||||||
|
- derived stats считаются из атрибутов по stat buckets, а не через один общий полный пересчет
|
||||||
|
- `Мастерство` не заменяет основной классовый атрибут, а усиливает специализацию
|
||||||
|
|
||||||
|
## Attributes
|
||||||
|
|
||||||
|
### Мощь
|
||||||
|
|
||||||
|
Роль:
|
||||||
|
|
||||||
|
- силовое давление
|
||||||
|
- пробивание защиты
|
||||||
|
- тяжелая физическая подача
|
||||||
|
|
||||||
|
Основные derived stats:
|
||||||
|
|
||||||
|
- `Damage` для melee
|
||||||
|
- `Heavy Projectile Scaling`
|
||||||
|
- `Armor Penetration`
|
||||||
|
- `Block Power`
|
||||||
|
|
||||||
|
Вторичные эффекты:
|
||||||
|
|
||||||
|
- усиление силовых weapon skills
|
||||||
|
- усиление shield/guard-oriented действий
|
||||||
|
|
||||||
|
Зависит от:
|
||||||
|
|
||||||
|
- класса
|
||||||
|
- уровня персонажа
|
||||||
|
- оружия
|
||||||
|
- экипировки
|
||||||
|
- временных offensive бафов
|
||||||
|
|
||||||
|
Влияет на системы:
|
||||||
|
|
||||||
|
- базовый урон оружия
|
||||||
|
- skill damage scaling
|
||||||
|
- penetration pass в combat resolution
|
||||||
|
- блок, щит и guard interactions
|
||||||
|
|
||||||
|
Основные классы:
|
||||||
|
|
||||||
|
- Воин: основной
|
||||||
|
- Лучник: вторичный для heavy build
|
||||||
|
- Маг: почти не нужен
|
||||||
|
|
||||||
|
### Ловкость
|
||||||
|
|
||||||
|
Роль:
|
||||||
|
|
||||||
|
- скорость действий
|
||||||
|
- точность и контроль оружия
|
||||||
|
- качество критических окон
|
||||||
|
|
||||||
|
Основные derived stats:
|
||||||
|
|
||||||
|
- `Attack Speed`
|
||||||
|
- `Crit Chance`
|
||||||
|
- `Crit Quality`
|
||||||
|
- `Projectile Speed`
|
||||||
|
- `Move Speed`
|
||||||
|
|
||||||
|
Вторичные эффекты:
|
||||||
|
|
||||||
|
- reload/draw speed
|
||||||
|
- precision handling
|
||||||
|
- ограниченные anti-slow бонусы
|
||||||
|
|
||||||
|
Зависит от:
|
||||||
|
|
||||||
|
- класса
|
||||||
|
- уровня персонажа
|
||||||
|
- оружия
|
||||||
|
- экипировки
|
||||||
|
- mobility и precision бафов
|
||||||
|
|
||||||
|
Влияет на системы:
|
||||||
|
|
||||||
|
- attack cadence
|
||||||
|
- crit resolution
|
||||||
|
- projectile handling
|
||||||
|
- movement utility
|
||||||
|
|
||||||
|
Основные классы:
|
||||||
|
|
||||||
|
- Лучник: основной
|
||||||
|
- Воин: вторичный
|
||||||
|
- Маг: ситуативный для battle-mage
|
||||||
|
|
||||||
|
### Фокус
|
||||||
|
|
||||||
|
Роль:
|
||||||
|
|
||||||
|
- магическая сила
|
||||||
|
- контроль каста
|
||||||
|
- ресурс и статусное давление
|
||||||
|
|
||||||
|
Основные derived stats:
|
||||||
|
|
||||||
|
- `Resource`
|
||||||
|
- `Resource Regen`
|
||||||
|
- `Spell Power`
|
||||||
|
- `Status Power`
|
||||||
|
- `Magic Resist`
|
||||||
|
|
||||||
|
Вторичные эффекты:
|
||||||
|
|
||||||
|
- `Cast Speed`
|
||||||
|
- AOE scaling там, где это задается skill archetype
|
||||||
|
- spell penetration hooks через mastery/skill layer
|
||||||
|
|
||||||
|
Зависит от:
|
||||||
|
|
||||||
|
- класса
|
||||||
|
- уровня персонажа
|
||||||
|
- оружия или cast source
|
||||||
|
- экипировки
|
||||||
|
- caster-бафов
|
||||||
|
|
||||||
|
Влияет на системы:
|
||||||
|
|
||||||
|
- skill resource hooks
|
||||||
|
- spell damage scaling
|
||||||
|
- status application
|
||||||
|
- magic mitigation
|
||||||
|
|
||||||
|
Основные классы:
|
||||||
|
|
||||||
|
- Маг: основной
|
||||||
|
- Воин: нужен гибридам
|
||||||
|
- Лучник: почти не нужен
|
||||||
|
|
||||||
|
### Стойкость
|
||||||
|
|
||||||
|
Роль:
|
||||||
|
|
||||||
|
- выживание
|
||||||
|
- удержание темпа боя
|
||||||
|
- сопротивление срывам действий
|
||||||
|
|
||||||
|
Основные derived stats:
|
||||||
|
|
||||||
|
- `HP`
|
||||||
|
- `HP Regen`
|
||||||
|
- `Armor`
|
||||||
|
- `Control Resist`
|
||||||
|
- `Stagger Resist`
|
||||||
|
|
||||||
|
Вторичные эффекты:
|
||||||
|
|
||||||
|
- `Debuff Duration Reduction`
|
||||||
|
- small mitigation
|
||||||
|
- interrupt resistance
|
||||||
|
|
||||||
|
Зависит от:
|
||||||
|
|
||||||
|
- класса
|
||||||
|
- уровня персонажа
|
||||||
|
- экипировки
|
||||||
|
- defensive бафов
|
||||||
|
|
||||||
|
Влияет на системы:
|
||||||
|
|
||||||
|
- max health pool
|
||||||
|
- defense pass
|
||||||
|
- control and stagger resolution
|
||||||
|
- sustain
|
||||||
|
|
||||||
|
Основные классы:
|
||||||
|
|
||||||
|
- Воин: основной или второй основной
|
||||||
|
- Маг: defensive stat
|
||||||
|
- Лучник: defensive stat
|
||||||
|
|
||||||
|
### Мастерство
|
||||||
|
|
||||||
|
Роль:
|
||||||
|
|
||||||
|
- качество билда
|
||||||
|
- class-specific специализация
|
||||||
|
- усиление archetype identity
|
||||||
|
|
||||||
|
Основные derived stats:
|
||||||
|
|
||||||
|
- `Mastery Bonus`
|
||||||
|
- `Weak Spot Bonus`
|
||||||
|
- `Projectile Control`
|
||||||
|
- `Cast Refinement`
|
||||||
|
- class-specific scaling hooks
|
||||||
|
|
||||||
|
Вторичные эффекты:
|
||||||
|
|
||||||
|
- cleave quality
|
||||||
|
- bleed/stagger intensity
|
||||||
|
- precision bonuses
|
||||||
|
- spell shaping
|
||||||
|
|
||||||
|
Зависит от:
|
||||||
|
|
||||||
|
- класса
|
||||||
|
- weapon archetype
|
||||||
|
- skill archetype
|
||||||
|
- экипировки
|
||||||
|
- mastery-бафов
|
||||||
|
|
||||||
|
Влияет на системы:
|
||||||
|
|
||||||
|
- class mechanic scaling
|
||||||
|
- skill specialization
|
||||||
|
- weak spot logic
|
||||||
|
- status quality
|
||||||
|
- weapon-specific hooks
|
||||||
|
|
||||||
|
Основные классы:
|
||||||
|
|
||||||
|
- важен для всех
|
||||||
|
- масштабируется по-разному по archetype
|
||||||
|
|
||||||
|
## Dependency Map
|
||||||
|
|
||||||
|
### Upstream To Attributes
|
||||||
|
|
||||||
|
- `Class Definition` задает стартовые значения и приоритеты
|
||||||
|
- `Level Progression` добавляет рост или allocation points
|
||||||
|
- `Equipment` дает flat и percent modifiers
|
||||||
|
- `Buff System` дает временные modifiers
|
||||||
|
- `Weapon` и `Skill` могут добавлять context-specific modifiers
|
||||||
|
|
||||||
|
### Attributes To Derived Stats
|
||||||
|
|
||||||
|
- `Мощь` -> physical offense bucket
|
||||||
|
- `Ловкость` -> speed/crit/projectile bucket
|
||||||
|
- `Фокус` -> caster/resource bucket
|
||||||
|
- `Стойкость` -> defense/sustain bucket
|
||||||
|
- `Мастерство` -> specialization hooks и quality modifiers
|
||||||
|
|
||||||
|
### Derived Stats To Combat Systems
|
||||||
|
|
||||||
|
- offense stats -> damage build, crit resolution, penetration
|
||||||
|
- caster stats -> resource checks, spell scaling, status apply
|
||||||
|
- defense stats -> mitigation, HP pool, control resistance
|
||||||
|
- mastery hooks -> weak spot, proc quality, archetype-specific modifiers
|
||||||
|
|
||||||
|
## Implementation Notes
|
||||||
|
|
||||||
|
- атрибуты должны быть каноническим intermediate layer между class/equipment data и combat formulas
|
||||||
|
- derived stats нельзя рассчитывать напрямую из UI или отдельных skill-скриптов
|
||||||
|
- каждая система должна брать итоговые derived stats, а не заново интерпретировать атрибуты по своим правилам
|
||||||
|
|
||||||
|
## Final Position
|
||||||
|
|
||||||
|
Атрибуты должны быть компактным и стабильным слоем данных: немного входов, предсказуемые выходы, минимум дублирования. Основные связи должны идти через общие derived stat buckets и общий combat pipeline.
|
||||||
@@ -9,6 +9,9 @@
|
|||||||
## Related Docs
|
## Related Docs
|
||||||
|
|
||||||
- `docs/gameplay/attribute-system-gdd.md`
|
- `docs/gameplay/attribute-system-gdd.md`
|
||||||
|
- `docs/gameplay/attribute-reference.md`
|
||||||
|
- `docs/gameplay/stat-catalog-mvp.md`
|
||||||
|
- `docs/gameplay/combat-resolution-gdd.md`
|
||||||
|
|
||||||
## UI Philosophy
|
## UI Philosophy
|
||||||
|
|
||||||
|
|||||||
@@ -281,6 +281,12 @@
|
|||||||
|
|
||||||
- `docs/gameplay/attribute-stats-visibility-mvp.md`
|
- `docs/gameplay/attribute-stats-visibility-mvp.md`
|
||||||
|
|
||||||
|
Связанные канонические документы по структуре атрибутов, каталогу статов и боевому pipeline:
|
||||||
|
|
||||||
|
- `docs/gameplay/attribute-reference.md`
|
||||||
|
- `docs/gameplay/stat-catalog-mvp.md`
|
||||||
|
- `docs/gameplay/combat-resolution-gdd.md`
|
||||||
|
|
||||||
Связанные документы и задачи:
|
Связанные документы и задачи:
|
||||||
|
|
||||||
- `docs/tasks/items/TASK-0007.md`
|
- `docs/tasks/items/TASK-0007.md`
|
||||||
@@ -292,7 +298,6 @@
|
|||||||
|
|
||||||
## Open Questions
|
## Open Questions
|
||||||
|
|
||||||
- как именно считать crit: через chance, crit quality, weak spot logic или их комбинацию
|
|
||||||
- какие soft caps нужны для move speed, attack speed и cast speed
|
- какие soft caps нужны для move speed, attack speed и cast speed
|
||||||
- в каком виде `Мастерство` задается в коде: единый stat с archetype-specific conversion rules или набор class-owned scaling hooks
|
- в каком виде `Мастерство` задается в коде: единый stat с archetype-specific conversion rules или набор class-owned scaling hooks
|
||||||
- нужно ли различать mana и energy на уровне ресурсов или `Фокус` должен работать с единым кастерским ресурсом в MVP
|
- нужно ли различать mana и energy на уровне ресурсов или `Фокус` должен работать с единым кастерским ресурсом в MVP
|
||||||
|
|||||||
@@ -0,0 +1,322 @@
|
|||||||
|
# Combat Resolution GDD
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Этот документ фиксирует единый порядок расчета боевого действия, правила псевдорандома и место `crit`, `weak spot`, `status` и защитных расчетов в общем pipeline.
|
||||||
|
|
||||||
|
## Related Docs
|
||||||
|
|
||||||
|
- `docs/gameplay/attribute-system-gdd.md`
|
||||||
|
- `docs/gameplay/attribute-reference.md`
|
||||||
|
- `docs/gameplay/stat-catalog-mvp.md`
|
||||||
|
- `docs/gameplay/attribute-stats-visibility-mvp.md`
|
||||||
|
|
||||||
|
## Design Goals
|
||||||
|
|
||||||
|
- один общий combat pipeline для игрока, врага, оружия и навыков
|
||||||
|
- chance-based события должны ощущаться честно и стабильно
|
||||||
|
- в action RPG физический контакт не должен часто превращаться в нелогичный miss
|
||||||
|
- `crit`, `weak spot`, `penetration`, `status` и `stagger` должны быть частью одной цепочки, а не отдельными системами
|
||||||
|
- сервер должен быть источником истины для всех roll-based результатов
|
||||||
|
|
||||||
|
## Core Position
|
||||||
|
|
||||||
|
Для MVP pseudo-random distribution применяется к chance-based исходам, но не заменяет фактическую физику попадания.
|
||||||
|
|
||||||
|
То есть:
|
||||||
|
|
||||||
|
- hitbox, projectile impact и valid AoE contact сначала определяют, был ли контакт
|
||||||
|
- только после этого идут roll-based проверки
|
||||||
|
- псевдорандом используется для уменьшения длинных серий неудач и успехов
|
||||||
|
|
||||||
|
## Combat Pipeline
|
||||||
|
|
||||||
|
### 1. Action Start
|
||||||
|
|
||||||
|
Система получает попытку действия:
|
||||||
|
|
||||||
|
- melee attack
|
||||||
|
- projectile attack
|
||||||
|
- cast skill
|
||||||
|
- area effect
|
||||||
|
- block/guard reaction
|
||||||
|
|
||||||
|
На этом этапе определяются:
|
||||||
|
|
||||||
|
- источник действия
|
||||||
|
- тип действия
|
||||||
|
- weapon archetype
|
||||||
|
- skill archetype
|
||||||
|
- target rules
|
||||||
|
|
||||||
|
### 2. Contact Resolution
|
||||||
|
|
||||||
|
Система определяет, был ли валидный контакт.
|
||||||
|
|
||||||
|
Примеры:
|
||||||
|
|
||||||
|
- melee через hitbox/overlap
|
||||||
|
- ranged через projectile collision
|
||||||
|
- spell через trace, overlap или target validation
|
||||||
|
- AoE через положение цели внутри области
|
||||||
|
|
||||||
|
Результат этапа:
|
||||||
|
|
||||||
|
- `No Contact` -> дальнейшие offensive roll-этапы не выполняются
|
||||||
|
- `Valid Contact` -> переход к следующему шагу
|
||||||
|
|
||||||
|
### 3. Server Validation
|
||||||
|
|
||||||
|
Сервер проверяет:
|
||||||
|
|
||||||
|
- допустимость действия
|
||||||
|
- валидность target
|
||||||
|
- допустимость дистанции, угла, времени и состояния
|
||||||
|
- отсутствие фальшивого попадания со стороны клиента
|
||||||
|
|
||||||
|
### 4. Hit Quality Resolution
|
||||||
|
|
||||||
|
Для MVP рекомендуется модель без обязательного stat-based miss после уже произошедшего контакта.
|
||||||
|
|
||||||
|
То есть:
|
||||||
|
|
||||||
|
- если действие физически попало и прошло валидацию сервера, это считается попаданием
|
||||||
|
- `Accuracy` и `Evasion` не являются обязательным MVP-слоем
|
||||||
|
|
||||||
|
Если позже потребуется accuracy-модель:
|
||||||
|
|
||||||
|
- она должна стоять здесь
|
||||||
|
- она должна использовать отдельный PRD accumulator
|
||||||
|
- ее нельзя смешивать с crit или status rolls
|
||||||
|
|
||||||
|
### 5. Critical Resolution
|
||||||
|
|
||||||
|
`Crit` считается как комбинация трех разных сущностей.
|
||||||
|
|
||||||
|
#### Crit Chance
|
||||||
|
|
||||||
|
Отвечает на вопрос: сработал ли крит.
|
||||||
|
|
||||||
|
Источники:
|
||||||
|
|
||||||
|
- `Ловкость`
|
||||||
|
- weapon modifiers
|
||||||
|
- buffs/debuffs
|
||||||
|
- часть `Мастерства` у precision-архетипов
|
||||||
|
|
||||||
|
Правило:
|
||||||
|
|
||||||
|
- `Crit Chance` является chance-based stat
|
||||||
|
- для него используется PRD
|
||||||
|
|
||||||
|
#### Crit Quality
|
||||||
|
|
||||||
|
Отвечает на вопрос: насколько сильным будет крит.
|
||||||
|
|
||||||
|
Источники:
|
||||||
|
|
||||||
|
- `Ловкость`
|
||||||
|
- `Мастерство`
|
||||||
|
- weapon archetype
|
||||||
|
- skill modifiers
|
||||||
|
|
||||||
|
Правило:
|
||||||
|
|
||||||
|
- `Crit Quality` не определяет факт крита
|
||||||
|
- `Crit Quality` определяет величину бонуса при уже успешном crit roll
|
||||||
|
|
||||||
|
#### Weak Spot Logic
|
||||||
|
|
||||||
|
Отвечает на вопрос: было ли точное позиционное или skill-based попадание в уязвимую зону.
|
||||||
|
|
||||||
|
Источники:
|
||||||
|
|
||||||
|
- hit zone
|
||||||
|
- angle or position check
|
||||||
|
- weapon type
|
||||||
|
- skill archetype
|
||||||
|
- `Мастерство`
|
||||||
|
|
||||||
|
Правило:
|
||||||
|
|
||||||
|
- `Weak Spot` не заменяет `Crit Chance`
|
||||||
|
- `Weak Spot` является skill-based усилителем
|
||||||
|
- при наличии weak spot попадание может усиливать crit или давать отдельный bonus layer
|
||||||
|
|
||||||
|
## Recommended Crit Model
|
||||||
|
|
||||||
|
Каноническая схема для MVP:
|
||||||
|
|
||||||
|
1. определить факт контакта
|
||||||
|
2. выполнить `Crit Chance` через PRD
|
||||||
|
3. при успехе применить `Crit Quality`
|
||||||
|
4. если сработал `Weak Spot`, усилить итог крита или применить отдельный precision bonus
|
||||||
|
|
||||||
|
Это дает:
|
||||||
|
|
||||||
|
- случайность для крита
|
||||||
|
- контролируемую силу крита
|
||||||
|
- отдельную награду за точное исполнение
|
||||||
|
|
||||||
|
## Base Damage Build
|
||||||
|
|
||||||
|
После того как подтверждено попадание и разрешены crit/precision-модификаторы, строится базовый урон.
|
||||||
|
|
||||||
|
В расчет входят:
|
||||||
|
|
||||||
|
- weapon base values
|
||||||
|
- skill coefficients
|
||||||
|
- уровень оружия
|
||||||
|
- relevant derived offense stats
|
||||||
|
- `Мощь`, `Фокус` и другие атрибутные конверсии через derived stats
|
||||||
|
- `Мастерство` как specialization modifier
|
||||||
|
|
||||||
|
Правило:
|
||||||
|
|
||||||
|
- оружие и навыки не должны считать урон по собственным отдельным формулам в обход общего offense build
|
||||||
|
|
||||||
|
## Penetration And Defense Pass
|
||||||
|
|
||||||
|
После построения offense value применяется защитный проход.
|
||||||
|
|
||||||
|
Участвуют:
|
||||||
|
|
||||||
|
- `Armor`
|
||||||
|
- `Magic Resist`
|
||||||
|
- `Armor Penetration`
|
||||||
|
- `Spell Penetration`, если введен для archetype
|
||||||
|
- small mitigation и другие defense modifiers
|
||||||
|
|
||||||
|
Порядок на MVP:
|
||||||
|
|
||||||
|
1. определить тип урона
|
||||||
|
2. выбрать релевантную защиту
|
||||||
|
3. применить penetration
|
||||||
|
4. применить mitigation
|
||||||
|
|
||||||
|
## Block And Guard Pass
|
||||||
|
|
||||||
|
Если у цели есть активный или пассивный defensive response, он обрабатывается после основного defense pass или как его часть, но в одном каноническом месте.
|
||||||
|
|
||||||
|
Участвуют:
|
||||||
|
|
||||||
|
- `Block Power`
|
||||||
|
- shield modifiers
|
||||||
|
- guard state
|
||||||
|
- directional defense rules
|
||||||
|
|
||||||
|
## Status Resolution
|
||||||
|
|
||||||
|
После разрешения основного урона система считает статусные эффекты.
|
||||||
|
|
||||||
|
Участвуют:
|
||||||
|
|
||||||
|
- `Status Power`
|
||||||
|
- skill status modifiers
|
||||||
|
- target resist hooks
|
||||||
|
- mastery hooks
|
||||||
|
|
||||||
|
Если эффект chance-based:
|
||||||
|
|
||||||
|
- применяется отдельный PRD accumulator
|
||||||
|
|
||||||
|
Примеры:
|
||||||
|
|
||||||
|
- bleed
|
||||||
|
- burn
|
||||||
|
- poison
|
||||||
|
- shock
|
||||||
|
- slow proc
|
||||||
|
|
||||||
|
## Stagger And Control Resolution
|
||||||
|
|
||||||
|
После урона и статусов обрабатываются control-related последствия.
|
||||||
|
|
||||||
|
Участвуют:
|
||||||
|
|
||||||
|
- stagger power
|
||||||
|
- `Stagger Resist`
|
||||||
|
- `Control Resist`
|
||||||
|
- `Debuff Duration Reduction`
|
||||||
|
- interrupt resistance
|
||||||
|
|
||||||
|
Правило:
|
||||||
|
|
||||||
|
- длительность и сила контроля не должны жить в отдельной автономной формуле вне общего pipeline
|
||||||
|
|
||||||
|
## Pseudo-Random Distribution Rules
|
||||||
|
|
||||||
|
### Scope
|
||||||
|
|
||||||
|
PRD используется только для chance-based событий.
|
||||||
|
|
||||||
|
Рекомендуемые MVP-области:
|
||||||
|
|
||||||
|
- `Crit Chance`
|
||||||
|
- chance-based `Status Apply`
|
||||||
|
- chance-based `Proc Effects`
|
||||||
|
|
||||||
|
Не использовать для MVP:
|
||||||
|
|
||||||
|
- фактического projectile contact
|
||||||
|
- melee hitbox contact
|
||||||
|
- AoE presence check
|
||||||
|
|
||||||
|
### PRD State
|
||||||
|
|
||||||
|
Для каждого roll type хранится отдельное состояние.
|
||||||
|
|
||||||
|
Минимальный состав:
|
||||||
|
|
||||||
|
- `roll type`
|
||||||
|
- `base chance`
|
||||||
|
- `failure streak`
|
||||||
|
- `current adjusted chance`
|
||||||
|
|
||||||
|
Разделять состояния по типам:
|
||||||
|
|
||||||
|
- `Crit PRD`
|
||||||
|
- `Status PRD`
|
||||||
|
- `Proc PRD`
|
||||||
|
- `Accuracy PRD`, только если accuracy-layer появится позже
|
||||||
|
|
||||||
|
### PRD Behavior
|
||||||
|
|
||||||
|
- после неуспеха шанс немного растет
|
||||||
|
- после успеха streak сбрасывается
|
||||||
|
- итоговый шанс не должен слишком быстро гарантировать успех
|
||||||
|
- PRD работает на сервере
|
||||||
|
- клиент может показывать только результат, но не хранить authoritative PRD state
|
||||||
|
|
||||||
|
## System Links
|
||||||
|
|
||||||
|
### Attributes To Combat
|
||||||
|
|
||||||
|
- `Мощь` -> physical damage, heavy impact, penetration, block power
|
||||||
|
- `Ловкость` -> cadence, crit chance, crit quality, projectile handling
|
||||||
|
- `Фокус` -> spell power, resource, status power, magic-facing calculations
|
||||||
|
- `Стойкость` -> HP, mitigation, control resistance, stagger resistance
|
||||||
|
- `Мастерство` -> weak spot bonuses, proc quality, archetype specialization
|
||||||
|
|
||||||
|
### Weapons To Combat
|
||||||
|
|
||||||
|
- задают base damage
|
||||||
|
- задают hit delivery method
|
||||||
|
- задают часть crit, penetration и block hooks
|
||||||
|
|
||||||
|
### Skills To Combat
|
||||||
|
|
||||||
|
- задают execution pattern
|
||||||
|
- задают resource consumption
|
||||||
|
- задают coefficients и status hooks
|
||||||
|
- задают mastery-specific behavior
|
||||||
|
|
||||||
|
### Classes To Combat
|
||||||
|
|
||||||
|
- задают стартовые attribute priorities
|
||||||
|
- задают class affinity
|
||||||
|
- задают доступ к разным mastery conversion rules
|
||||||
|
|
||||||
|
## Final Position
|
||||||
|
|
||||||
|
Для MVP бой должен считаться в одном общем pipeline: контакт, валидация, crit/precision, offense build, defense pass, status, control. Псевдорандом нужен для chance-based механик и должен жить как отдельный серверный слой, а не как замена физическому попаданию.
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
# Stat Catalog MVP
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Этот документ фиксирует единый список всех статов MVP, их системную роль, слой видимости и основные связи с атрибутами, классами, оружием, навыками и combat resolution.
|
||||||
|
|
||||||
|
## Related Docs
|
||||||
|
|
||||||
|
- `docs/gameplay/attribute-system-gdd.md`
|
||||||
|
- `docs/gameplay/attribute-reference.md`
|
||||||
|
- `docs/gameplay/attribute-stats-visibility-mvp.md`
|
||||||
|
- `docs/gameplay/combat-resolution-gdd.md`
|
||||||
|
|
||||||
|
## Stat Layers
|
||||||
|
|
||||||
|
Все статы делятся на четыре слоя:
|
||||||
|
|
||||||
|
- `Primary Attributes` - канонические атрибуты персонажа
|
||||||
|
- `Core Visible Stats` - минимум информации для основного UI
|
||||||
|
- `Advanced Stats` - детали для расширенного экрана или tooltip
|
||||||
|
- `Hidden Runtime Stats` - внутренние параметры для расчета, не обязательные к показу игроку
|
||||||
|
|
||||||
|
## Primary Attributes
|
||||||
|
|
||||||
|
| Stat | Layer | Main Sources | Main Outputs | Main Systems |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| `Мощь` | Primary Attribute | class, level, equipment, buffs | physical offense, penetration, block power | weapons, skills, combat damage, guard |
|
||||||
|
| `Ловкость` | Primary Attribute | class, level, equipment, buffs | speed, crit, projectile handling | attacks, crit resolution, movement |
|
||||||
|
| `Фокус` | Primary Attribute | class, level, equipment, buffs | resource, spell power, status power | skills, casting, status system |
|
||||||
|
| `Стойкость` | Primary Attribute | class, level, equipment, buffs | HP, defense, sustain, resist | survivability, control, defense |
|
||||||
|
| `Мастерство` | Primary Attribute | class, equipment, archetype bonuses, buffs | specialization quality, weak spot, class hooks | classes, weapon archetypes, skill archetypes |
|
||||||
|
|
||||||
|
## Core Visible Stats
|
||||||
|
|
||||||
|
| Stat | Layer | Depends On | Used By | UI |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| `HP` | Core Visible | `Стойкость`, level, gear, buffs | health system, survivability | main |
|
||||||
|
| `Resource` | Core Visible | `Фокус`, class, gear, buffs | skills, casting, ability gates | main |
|
||||||
|
| `Damage` | Core Visible | `Мощь`, `Фокус`, weapon, skill, mastery hooks | damage build | main |
|
||||||
|
| `Attack Speed` | Core Visible | `Ловкость`, weapon cadence, buffs | attack execution | main |
|
||||||
|
| `Armor` | Core Visible | `Стойкость`, gear, buffs | defense pass | main |
|
||||||
|
| `Move Speed` | Core Visible | `Ловкость`, gear, buffs, slows | movement system | main |
|
||||||
|
|
||||||
|
## Advanced Stats
|
||||||
|
|
||||||
|
| Stat | Layer | Depends On | Used By | UI |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| `HP Regen` | Advanced | `Стойкость`, gear, buffs | sustain | advanced |
|
||||||
|
| `Resource Regen` | Advanced | `Фокус`, class, gear, buffs | sustain, cast flow | advanced |
|
||||||
|
| `Cast Speed` | Advanced | `Фокус`, `Ловкость`, skill hooks, buffs | cast execution | advanced |
|
||||||
|
| `Crit Chance` | Advanced | `Ловкость`, gear, buffs, mastery hooks | crit roll via PRD | advanced |
|
||||||
|
| `Magic Resist` | Advanced | `Фокус`, gear, buffs | magic defense pass | advanced |
|
||||||
|
| `Armor Penetration` | Advanced | `Мощь`, gear, weapon, buffs | physical penetration pass | advanced |
|
||||||
|
| `Control Resist` | Advanced | `Стойкость`, gear, buffs | control duration and severity | advanced |
|
||||||
|
| `Status Power` | Advanced | `Фокус`, skill hooks, mastery hooks | status apply and status strength | advanced |
|
||||||
|
| `Block Power` | Advanced | `Мощь`, shield state, gear, buffs | guard and block pass | advanced |
|
||||||
|
| `Projectile Speed` | Advanced | `Ловкость`, weapon, buffs | ranged delivery | advanced |
|
||||||
|
| `Mastery Bonus` | Advanced | `Мастерство`, class, weapon archetype, skill archetype | class-specific specialization | advanced/contextual |
|
||||||
|
|
||||||
|
## Hidden Runtime Stats
|
||||||
|
|
||||||
|
| Stat | Layer | Depends On | Used By | Notes |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| `Crit Quality` | Hidden Runtime | `Ловкость`, `Мастерство`, weapon, skill | crit damage bonus | не определяет факт crit |
|
||||||
|
| `Weak Spot Bonus` | Hidden Runtime | `Мастерство`, weapon, hit zone logic | precision damage | skill-based layer |
|
||||||
|
| `Headshot Precision Bonus` | Hidden Runtime | weapon type, hit zone, mastery | ranged precision | contextual |
|
||||||
|
| `Heavy Projectile Scaling` | Hidden Runtime | `Мощь`, weapon archetype | heavy ranged damage | mostly heavy ranged only |
|
||||||
|
| `Spell Power` | Hidden Runtime | `Фокус`, skill, buffs | spell damage build | может не показываться отдельно в MVP |
|
||||||
|
| `Spell Penetration` | Hidden Runtime | `Фокус`, mastery, skill hooks | magic defense pass | optional MVP-hidden |
|
||||||
|
| `Debuff Duration Reduction` | Hidden Runtime | `Стойкость`, gear, buffs | debuff resolution | linked to control resist |
|
||||||
|
| `Stagger Resist` | Hidden Runtime | `Стойкость`, armor state, buffs | stagger resolution | hidden for MVP |
|
||||||
|
| `Stagger Power` | Hidden Runtime | weapon, skill, `Мощь`, mastery | stagger resolution | attacker-side stat |
|
||||||
|
| `Interrupt Resistance` | Hidden Runtime | `Стойкость`, buffs | cast/skill stability | hidden for MVP |
|
||||||
|
| `Anti-Slow Coefficient` | Hidden Runtime | `Ловкость`, buffs | movement recovery | keep hidden |
|
||||||
|
| `Projectile Control` | Hidden Runtime | `Ловкость`, `Мастерство`, weapon | ranged handling | contextual |
|
||||||
|
| `Reload Modifier` | Hidden Runtime | `Ловкость`, weapon, buffs | ranged cadence | hidden for MVP |
|
||||||
|
| `Proc Chance` | Hidden Runtime | weapon, skill, buffs, mastery | proc resolution via PRD | generic proc entry |
|
||||||
|
| `Proc Quality` | Hidden Runtime | mastery, skill, gear | proc strength | separate from proc chance |
|
||||||
|
| `PRD State` | Hidden Runtime | base chance, prior failures | crit/status/proc rolls | server authoritative |
|
||||||
|
| `Soft Cap Thresholds` | Hidden Runtime | system formulas | post-cap scaling | tuning-only |
|
||||||
|
| `Diminishing Returns` | Hidden Runtime | system formulas | post-cap scaling | tuning-only |
|
||||||
|
| `Class Conversion Rules` | Hidden Runtime | class design | attribute to derived hooks | not player-facing |
|
||||||
|
|
||||||
|
## Optional Future Stats
|
||||||
|
|
||||||
|
Эти статы допустимы как будущие расширения, но не должны входить в обязательный MVP core.
|
||||||
|
|
||||||
|
| Stat | Why Deferred |
|
||||||
|
| --- | --- |
|
||||||
|
| `Accuracy` | риск ложного miss в action combat |
|
||||||
|
| `Evasion` | требует аккуратного UX и точной анимационной читаемости |
|
||||||
|
| `Pierce Count` | лучше держать как weapon/skill-specific modifier |
|
||||||
|
| `Cleave Radius` | лучше держать как mastery or skill hook |
|
||||||
|
| `Bleed Chance` | лучше держать как частный proc, а не отдельную общую строку UI |
|
||||||
|
| `Burn Chance` | лучше держать как частный proc |
|
||||||
|
| `Poison Chance` | лучше держать как частный proc |
|
||||||
|
|
||||||
|
## System Links
|
||||||
|
|
||||||
|
### Class Definition
|
||||||
|
|
||||||
|
Класс задает:
|
||||||
|
|
||||||
|
- стартовые значения атрибутов
|
||||||
|
- приоритеты роста
|
||||||
|
- class conversion rules для `Мастерства`
|
||||||
|
- доступ к разным skill и weapon archetypes
|
||||||
|
|
||||||
|
### Level Progression
|
||||||
|
|
||||||
|
Прогрессия задает:
|
||||||
|
|
||||||
|
- базовый рост атрибутов
|
||||||
|
- allocation points или predetermined growth
|
||||||
|
- soft cap pressure через progression formulas
|
||||||
|
|
||||||
|
### Equipment
|
||||||
|
|
||||||
|
Экипировка задает:
|
||||||
|
|
||||||
|
- flat bonuses
|
||||||
|
- percent modifiers
|
||||||
|
- archetype-specific hooks
|
||||||
|
- часть visible и hidden stats
|
||||||
|
|
||||||
|
### Weapon System
|
||||||
|
|
||||||
|
Оружие использует:
|
||||||
|
|
||||||
|
- `Damage`
|
||||||
|
- `Attack Speed`
|
||||||
|
- `Projectile Speed`
|
||||||
|
- `Armor Penetration`
|
||||||
|
- `Block Power`
|
||||||
|
- hidden offensive/runtime modifiers
|
||||||
|
|
||||||
|
### Skill System
|
||||||
|
|
||||||
|
Навыки используют:
|
||||||
|
|
||||||
|
- `Resource`
|
||||||
|
- `Resource Regen`
|
||||||
|
- `Spell Power`
|
||||||
|
- `Status Power`
|
||||||
|
- `Cast Speed`
|
||||||
|
- `Mastery` hooks
|
||||||
|
|
||||||
|
### Combat Resolution
|
||||||
|
|
||||||
|
Combat pipeline использует:
|
||||||
|
|
||||||
|
- contact data
|
||||||
|
- crit data
|
||||||
|
- offense stats
|
||||||
|
- defense stats
|
||||||
|
- status data
|
||||||
|
- control and stagger data
|
||||||
|
- PRD state для chance-based roll-слоя
|
||||||
|
|
||||||
|
## Recommended MVP Buckets
|
||||||
|
|
||||||
|
Для легковесного runtime-обновления рекомендуется группировать статы так:
|
||||||
|
|
||||||
|
- `Offense Bucket`
|
||||||
|
- `Damage`
|
||||||
|
- `Crit Chance`
|
||||||
|
- `Crit Quality`
|
||||||
|
- `Armor Penetration`
|
||||||
|
- `Stagger Power`
|
||||||
|
- `Caster Bucket`
|
||||||
|
- `Resource`
|
||||||
|
- `Resource Regen`
|
||||||
|
- `Spell Power`
|
||||||
|
- `Status Power`
|
||||||
|
- `Cast Speed`
|
||||||
|
- `Defense Bucket`
|
||||||
|
- `HP`
|
||||||
|
- `HP Regen`
|
||||||
|
- `Armor`
|
||||||
|
- `Magic Resist`
|
||||||
|
- `Control Resist`
|
||||||
|
- `Stagger Resist`
|
||||||
|
- `Utility Bucket`
|
||||||
|
- `Move Speed`
|
||||||
|
- `Projectile Speed`
|
||||||
|
- `Projectile Control`
|
||||||
|
- `Reload Modifier`
|
||||||
|
- `Mastery Bonus`
|
||||||
|
|
||||||
|
## Final Position
|
||||||
|
|
||||||
|
Единый список статов нужен не ради большого character sheet, а ради общей канонической модели. В MVP игроку показывается только минимум, но runtime должен опираться на полный согласованный каталог и единые системные связи.
|
||||||
@@ -13,6 +13,9 @@ depends_on:
|
|||||||
canonical_docs:
|
canonical_docs:
|
||||||
- docs/tasks/Index.md
|
- docs/tasks/Index.md
|
||||||
- docs/gameplay/attribute-system-gdd.md
|
- docs/gameplay/attribute-system-gdd.md
|
||||||
|
- docs/gameplay/attribute-reference.md
|
||||||
|
- docs/gameplay/stat-catalog-mvp.md
|
||||||
|
- docs/gameplay/combat-resolution-gdd.md
|
||||||
related_files:
|
related_files:
|
||||||
- Assets/Features/
|
- Assets/Features/
|
||||||
- Assets/Scripts/
|
- Assets/Scripts/
|
||||||
@@ -47,6 +50,9 @@ Combat core и классовая система пока не имеют кан
|
|||||||
## Source Of Truth
|
## Source Of Truth
|
||||||
|
|
||||||
- `docs/gameplay/attribute-system-gdd.md`
|
- `docs/gameplay/attribute-system-gdd.md`
|
||||||
|
- `docs/gameplay/attribute-reference.md`
|
||||||
|
- `docs/gameplay/stat-catalog-mvp.md`
|
||||||
|
- `docs/gameplay/combat-resolution-gdd.md`
|
||||||
- `docs/tasks/items/TASK-0007.md`
|
- `docs/tasks/items/TASK-0007.md`
|
||||||
- `docs/tasks/items/TASK-0011.md`
|
- `docs/tasks/items/TASK-0011.md`
|
||||||
- runtime реализация combat stats и class definitions
|
- runtime реализация combat stats и class definitions
|
||||||
@@ -54,6 +60,9 @@ Combat core и классовая система пока не имеют кан
|
|||||||
## Read First
|
## Read First
|
||||||
|
|
||||||
- `docs/gameplay/attribute-system-gdd.md`
|
- `docs/gameplay/attribute-system-gdd.md`
|
||||||
|
- `docs/gameplay/attribute-reference.md`
|
||||||
|
- `docs/gameplay/stat-catalog-mvp.md`
|
||||||
|
- `docs/gameplay/combat-resolution-gdd.md`
|
||||||
- `docs/tasks/items/TASK-0007.md`
|
- `docs/tasks/items/TASK-0007.md`
|
||||||
- `docs/tasks/items/TASK-0009.md`
|
- `docs/tasks/items/TASK-0009.md`
|
||||||
- `docs/tasks/items/TASK-0010.md`
|
- `docs/tasks/items/TASK-0010.md`
|
||||||
|
|||||||
Reference in New Issue
Block a user