[Fix] HP Stamina Mana Attribute

This commit is contained in:
2026-04-09 10:36:06 +07:00
parent 283ae742d6
commit 2bd882c48e
6 changed files with 95 additions and 29 deletions
+16 -6
View File
@@ -16,7 +16,7 @@
Поток данных: Поток данных:
`Class Definition / Level / Equipment / Buffs / Skills` -> `Attributes` -> `Derived Stats` -> `Combat Resolution` `Class Definition / Level / Equipment / Buffs / Skills` -> `Attributes` -> `Derived Stats / Resource Pools` -> `Combat Resolution`
## Attribute Sources ## Attribute Sources
@@ -129,12 +129,12 @@
- магическая сила - магическая сила
- контроль каста - контроль каста
- ресурс и статусное давление - мана и статусное давление
Основные derived stats: Основные derived stats:
- `Resource` - `Mana`
- `Resource Regen` - `Mana Regen`
- `Spell Power` - `Spell Power`
- `Status Power` - `Status Power`
- `Magic Resist` - `Magic Resist`
@@ -156,6 +156,7 @@
Влияет на системы: Влияет на системы:
- skill resource hooks - skill resource hooks
- mana-based skill resource hooks
- spell damage scaling - spell damage scaling
- status application - status application
- magic mitigation - magic mitigation
@@ -254,6 +255,15 @@
## Dependency Map ## Dependency Map
### Resource Links
- `Стойкость` -> `HP`, `HP Regen`, `Stamina Pool`
- `Ловкость` -> `Stamina Regen`, tempo recovery, mobility efficiency
- `Фокус` -> `Mana`, `Mana Regen`, spell-facing resource scaling
- `Мастерство` -> class-specific resource efficiency hooks
`HP`, `Stamina` и `Mana` являются разными ресурсными пулами. `Фокус` не является главным источником `Stamina`.
### Upstream To Attributes ### Upstream To Attributes
- `Class Definition` задает стартовые значения и приоритеты - `Class Definition` задает стартовые значения и приоритеты
@@ -266,14 +276,14 @@
- `Мощь` -> physical offense bucket - `Мощь` -> physical offense bucket
- `Ловкость` -> speed/crit/projectile bucket - `Ловкость` -> speed/crit/projectile bucket
- `Фокус` -> caster/resource bucket - `Фокус` -> caster/mana bucket
- `Стойкость` -> defense/sustain bucket - `Стойкость` -> defense/sustain bucket
- `Мастерство` -> specialization hooks и quality modifiers - `Мастерство` -> specialization hooks и quality modifiers
### Derived Stats To Combat Systems ### Derived Stats To Combat Systems
- offense stats -> damage build, crit resolution, penetration - offense stats -> damage build, crit resolution, penetration
- caster stats -> resource checks, spell scaling, status apply - caster stats -> mana checks, spell scaling, status apply
- defense stats -> mitigation, HP pool, control resistance - defense stats -> mitigation, HP pool, control resistance
- mastery hooks -> weak spot, proc quality, archetype-specific modifiers - mastery hooks -> weak spot, proc quality, archetype-specific modifiers
@@ -45,7 +45,8 @@
Пример групп пересчета: Пример групп пересчета:
- offensive bucket: damage, attack speed, crit, penetration - offensive bucket: damage, attack speed, crit, penetration
- caster bucket: spell power, resource, resource regen, cast speed, status power - resource bucket: mana, mana regen, stamina, stamina regen
- caster bucket: spell power, cast speed, status power
- defense bucket: HP, HP regen, armor, control resist, stagger resist - defense bucket: HP, HP regen, armor, control resist, stagger resist
- utility bucket: move speed, projectile speed, reload modifiers, class-specific mastery bonuses - utility bucket: move speed, projectile speed, reload modifiers, class-specific mastery bonuses
@@ -56,7 +57,8 @@
Это основные числа, которые стоит показывать в базовом MVP UI. Это основные числа, которые стоит показывать в базовом MVP UI.
- `HP` - `HP`
- `Resource` - `Stamina`
- `Mana`
- `Damage` - `Damage`
- `Attack Speed` - `Attack Speed`
- `Armor` - `Armor`
@@ -65,7 +67,8 @@
Правила показа: Правила показа:
- `Damage` должен быть приведен к понятной игроку форме, без раскрытия всех внутренних коэффициентов - `Damage` должен быть приведен к понятной игроку форме, без раскрытия всех внутренних коэффициентов
- `Resource` должен отображаться как основной кастерский или классовый ресурс - `Stamina` должна отображаться как физический ресурс действий и темпа
- `Mana` должна отображаться как магический ресурс каста и spell-oriented умений
- `Armor` лучше показывать как единое защитное число для MVP, если отдельный breakdown еще не нужен - `Armor` лучше показывать как единое защитное число для MVP, если отдельный breakdown еще не нужен
- `Move Speed` полезен, потому что напрямую ощущается руками в top-down action RPG - `Move Speed` полезен, потому что напрямую ощущается руками в top-down action RPG
@@ -81,7 +84,8 @@
Эти статы не обязаны быть видны в основном экране, но могут отображаться в detail view, tooltip, расширенной панели или отладочном UI. Эти статы не обязаны быть видны в основном экране, но могут отображаться в detail view, tooltip, расширенной панели или отладочном UI.
- `HP Regen` - `HP Regen`
- `Resource Regen` - `Stamina Regen`
- `Mana Regen`
- `Cast Speed` - `Cast Speed`
- `Crit Chance` - `Crit Chance`
- `Magic Resist` - `Magic Resist`
@@ -137,8 +141,9 @@
- `Мощь` в основном проявляется через `Damage` - `Мощь` в основном проявляется через `Damage`
- `Ловкость` в основном проявляется через `Attack Speed` и частично `Move Speed` - `Ловкость` в основном проявляется через `Attack Speed` и частично `Move Speed`
- `Фокус` в основном проявляется через `Resource` - `Фокус` в основном проявляется через `Mana`
- `Стойкость` в основном проявляется через `HP` и частично `Armor` - `Стойкость` в основном проявляется через `HP` и частично `Armor`
- `Stamina` в основном читается как отдельный физический ресурс, который поддерживается `Стойкостью`, `Ловкостью`, классом и экипировкой
- `Мастерство` в основном проявляется через контекстный `Mastery Bonus` в advanced view, а не как центральный main stat - `Мастерство` в основном проявляется через контекстный `Mastery Bonus` в advanced view, а не как центральный main stat
Это дает игроку понятную обратную связь, но не заставляет UI раскрывать весь внутренний combat math. Это дает игроку понятную обратную связь, но не заставляет UI раскрывать весь внутренний combat math.
@@ -162,6 +167,7 @@
- derived stats пересчитываются только по dirty-группам - derived stats пересчитываются только по dirty-группам
- UI обновляется только если изменились отображаемые main или advanced stats - UI обновляется только если изменились отображаемые main или advanced stats
- hidden runtime stats могут обновляться вместе со своим bucket, но не должны триггерить лишние UI refresh - hidden runtime stats могут обновляться вместе со своим bucket, но не должны триггерить лишние UI refresh
- ресурсные пулы и их автопополнение должны обновляться отдельно от offense/defense bucket, если изменение не затрагивает другие группы
Для MVP нежелательно: Для MVP нежелательно:
@@ -175,14 +181,16 @@
- `MVP Main Stats` - `MVP Main Stats`
- `HP` - `HP`
- `Resource` - `Stamina`
- `Mana`
- `Damage` - `Damage`
- `Attack Speed` - `Attack Speed`
- `Armor` - `Armor`
- `Move Speed` - `Move Speed`
- `Advanced Stats` - `Advanced Stats`
- `HP Regen` - `HP Regen`
- `Resource Regen` - `Stamina Regen`
- `Mana Regen`
- `Cast Speed` - `Cast Speed`
- `Crit Chance` - `Crit Chance`
- `Magic Resist` - `Magic Resist`
+27 -7
View File
@@ -27,7 +27,7 @@
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Мощь | давление и силовой урон | melee damage, heavy projectile scaling, armor penetration, shield/block power | Воин, heavy Лучник | | Мощь | давление и силовой урон | melee damage, heavy projectile scaling, armor penetration, shield/block power | Воин, heavy Лучник |
| Ловкость | скорость и контроль оружия | attack speed, projectile handling, crit quality, move speed in soft cap | Лучник, mobile Воин | | Ловкость | скорость и контроль оружия | attack speed, projectile handling, crit quality, move speed in soft cap | Лучник, mobile Воин |
| Фокус | магическая сила и контроль ресурса | spell power, cast resource, resource regen, status power, limited magic resistance | Маг, hybrid классы | | Фокус | магическая сила и контроль маны | spell power, mana pool, mana regen, status power, limited magic resistance | Маг, hybrid классы |
| Стойкость | живучесть и удержание темпа боя | HP, HP regen, debuff resistance, stagger resistance, small general mitigation | Воин, defensive сборки | | Стойкость | живучесть и удержание темпа боя | HP, HP regen, debuff resistance, stagger resistance, small general mitigation | Воин, defensive сборки |
| Мастерство | качество билда и class-specific scaling | weapon/skill specialization, class mechanic efficiency, application quality | все классы | | Мастерство | качество билда и class-specific scaling | weapon/skill specialization, class mechanic efficiency, application quality | все классы |
@@ -37,7 +37,7 @@
- `Мощь` отвечает за силовое давление и пробивание защиты. - `Мощь` отвечает за силовое давление и пробивание защиты.
- `Ловкость` отвечает за скорость, контроль и отзывчивость оружия. - `Ловкость` отвечает за скорость, контроль и отзывчивость оружия.
- `Фокус` отвечает за магию, ресурс и статусное давление. - `Фокус` отвечает за магию, ману и статусное давление.
- `Стойкость` отвечает за выживание и стабильность в бою. - `Стойкость` отвечает за выживание и стабильность в бою.
- `Мастерство` отвечает за качество применения архетипа, оружия и умений. - `Мастерство` отвечает за качество применения архетипа, оружия и умений.
@@ -45,6 +45,27 @@
## Attribute Details ## Attribute Details
## Resource Model
В MVP используются три отдельные ресурсные оси:
- `HP` - запас жизни, в основном зависит от `Стойкости`
- `Stamina` - ресурс физических, мобильных и weapon-heavy действий
- `Mana` - ресурс магии, каста и spell-oriented действий
У каждого ресурса есть свой стат автопополнения:
- `HP Regen`
- `Stamina Regen`
- `Mana Regen`
Правила модели:
- `Фокус` усиливает `Mana` и `Mana Regen`, а не любой абстрактный ресурс
- `Stamina` не является магическим ресурсом и не должна жить внутри `Фокуса`
- `Стойкость` отвечает за `HP` и поддерживает физическую выносливость через `Stamina Pool`
- `Ловкость` поддерживает темп физических действий через `Stamina Regen` и связанные recovery-модификаторы
### Мощь ### Мощь
`Мощь` - это атрибут силы удара и продавливания защиты. `Мощь` - это атрибут силы удара и продавливания защиты.
@@ -103,13 +124,13 @@
### Фокус ### Фокус
`Фокус` - это атрибут магической силы, контроля заклинания и ресурса. `Фокус` - это атрибут магической силы, контроля заклинания и маны.
Что усиливает: Что усиливает:
- силу заклинаний - силу заклинаний
- максимальную ману, энергию каста или другой кастерский ресурс - максимальную ману
- реген кастерского ресурса - реген маны
- силу или размер AOE-навыков, если это уместно для конкретного skill archetype - силу или размер AOE-навыков, если это уместно для конкретного skill archetype
- шанс наложить статус, силу статуса или надежность применения status effects - шанс наложить статус, силу статуса или надежность применения status effects
- небольшой объем сопротивления магии - небольшой объем сопротивления магии
@@ -224,7 +245,7 @@
- `Мощь`: melee damage, heavy projectile scaling, armor penetration, block/shield power - `Мощь`: melee damage, heavy projectile scaling, armor penetration, block/shield power
- `Ловкость`: attack speed, reload/draw speed, crit quality, projectile speed, limited move speed bonus - `Ловкость`: attack speed, reload/draw speed, crit quality, projectile speed, limited move speed bonus
- `Фокус`: spell power, resource pool, resource regen, status application, limited magic resistance - `Фокус`: spell power, mana pool, mana regen, status application, limited magic resistance
- `Стойкость`: max HP, HP regen, control resistance, debuff duration reduction, stagger resistance, small mitigation - `Стойкость`: max HP, HP regen, control resistance, debuff duration reduction, stagger resistance, small mitigation
- `Мастерство`: class mechanic efficiency, weapon/skill specialization, archetype-specific bonuses - `Мастерство`: class mechanic efficiency, weapon/skill specialization, archetype-specific bonuses
@@ -300,7 +321,6 @@
- какие 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
## Final Position ## Final Position
+11 -1
View File
@@ -41,6 +41,14 @@
- area effect - area effect
- block/guard reaction - block/guard reaction
Перед выполнением действия проверяется resource gate.
Проверяется:
- использует ли действие `Mana`, `Stamina` или не использует отдельный ресурс
- хватает ли нужного ресурса для старта
- есть ли специальные cost modifiers от класса, оружия, навыка или `Мастерства`
На этом этапе определяются: На этом этапе определяются:
- источник действия - источник действия
@@ -48,6 +56,8 @@
- weapon archetype - weapon archetype
- skill archetype - skill archetype
- target rules - target rules
- resource type
- resource cost
### 2. Contact Resolution ### 2. Contact Resolution
@@ -307,7 +317,7 @@ PRD используется только для chance-based событий.
### Skills To Combat ### Skills To Combat
- задают execution pattern - задают execution pattern
- задают resource consumption - задают mana consumption или stamina consumption
- задают coefficients и status hooks - задают coefficients и status hooks
- задают mastery-specific behavior - задают mastery-specific behavior
+21 -7
View File
@@ -26,7 +26,7 @@
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| `Мощь` | Primary Attribute | class, level, equipment, buffs | physical offense, penetration, block power | weapons, skills, combat damage, guard | | `Мощь` | 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 | 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 | mana, spell power, status power | skills, casting, status system |
| `Стойкость` | Primary Attribute | class, level, equipment, buffs | HP, defense, sustain, resist | survivability, control, defense | | `Стойкость` | 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 | | `Мастерство` | Primary Attribute | class, equipment, archetype bonuses, buffs | specialization quality, weak spot, class hooks | classes, weapon archetypes, skill archetypes |
@@ -35,7 +35,8 @@
| Stat | Layer | Depends On | Used By | UI | | Stat | Layer | Depends On | Used By | UI |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| `HP` | Core Visible | `Стойкость`, level, gear, buffs | health system, survivability | main | | `HP` | Core Visible | `Стойкость`, level, gear, buffs | health system, survivability | main |
| `Resource` | Core Visible | `Фокус`, class, gear, buffs | skills, casting, ability gates | main | | `Stamina` | Core Visible | `Стойкость`, class, gear, buffs | physical actions, mobility, weapon abilities | main |
| `Mana` | Core Visible | `Фокус`, class, gear, buffs | spells, casting, ability gates | main |
| `Damage` | Core Visible | `Мощь`, `Фокус`, weapon, skill, mastery hooks | damage build | main | | `Damage` | Core Visible | `Мощь`, `Фокус`, weapon, skill, mastery hooks | damage build | main |
| `Attack Speed` | Core Visible | `Ловкость`, weapon cadence, buffs | attack execution | main | | `Attack Speed` | Core Visible | `Ловкость`, weapon cadence, buffs | attack execution | main |
| `Armor` | Core Visible | `Стойкость`, gear, buffs | defense pass | main | | `Armor` | Core Visible | `Стойкость`, gear, buffs | defense pass | main |
@@ -46,7 +47,8 @@
| Stat | Layer | Depends On | Used By | UI | | Stat | Layer | Depends On | Used By | UI |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| `HP Regen` | Advanced | `Стойкость`, gear, buffs | sustain | advanced | | `HP Regen` | Advanced | `Стойкость`, gear, buffs | sustain | advanced |
| `Resource Regen` | Advanced | `Фокус`, class, gear, buffs | sustain, cast flow | advanced | | `Stamina Regen` | Advanced | `Ловкость`, `Стойкость`, class, gear, buffs | physical tempo sustain | advanced |
| `Mana Regen` | Advanced | `Фокус`, class, gear, buffs | sustain, cast flow | advanced |
| `Cast Speed` | Advanced | `Фокус`, `Ловкость`, skill hooks, buffs | cast execution | advanced | | `Cast Speed` | Advanced | `Фокус`, `Ловкость`, skill hooks, buffs | cast execution | advanced |
| `Crit Chance` | Advanced | `Ловкость`, gear, buffs, mastery hooks | crit roll via PRD | advanced | | `Crit Chance` | Advanced | `Ловкость`, gear, buffs, mastery hooks | crit roll via PRD | advanced |
| `Magic Resist` | Advanced | `Фокус`, gear, buffs | magic defense pass | advanced | | `Magic Resist` | Advanced | `Фокус`, gear, buffs | magic defense pass | advanced |
@@ -62,6 +64,11 @@
| Stat | Layer | Depends On | Used By | Notes | | Stat | Layer | Depends On | Used By | Notes |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| `Crit Quality` | Hidden Runtime | `Ловкость`, `Мастерство`, weapon, skill | crit damage bonus | не определяет факт crit | | `Crit Quality` | Hidden Runtime | `Ловкость`, `Мастерство`, weapon, skill | crit damage bonus | не определяет факт crit |
| `Mana Cost Modifier` | Hidden Runtime | `Фокус`, gear, skill, mastery | mana spending | cost tuning |
| `Stamina Cost Modifier` | Hidden Runtime | `Ловкость`, gear, skill, mastery | stamina spending | cost tuning |
| `Mana Efficiency` | Hidden Runtime | `Фокус`, mastery, buffs | cast economy | hidden for MVP |
| `Stamina Efficiency` | Hidden Runtime | `Ловкость`, `Мастерство`, buffs | physical economy | hidden for MVP |
| `Resource Type Tag` | Hidden Runtime | weapon, skill, class | action gating | mana/stamina/none |
| `Weak Spot Bonus` | Hidden Runtime | `Мастерство`, weapon, hit zone logic | precision damage | skill-based layer | | `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 | | `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 | | `Heavy Projectile Scaling` | Hidden Runtime | `Мощь`, weapon archetype | heavy ranged damage | mostly heavy ranged only |
@@ -138,8 +145,10 @@
Навыки используют: Навыки используют:
- `Resource` - `Mana` для spell-oriented действий
- `Resource Regen` - `Mana Regen` для магического темпа
- `Stamina` для физических и weapon-heavy действий
- `Stamina Regen` для физического темпа
- `Spell Power` - `Spell Power`
- `Status Power` - `Status Power`
- `Cast Speed` - `Cast Speed`
@@ -161,6 +170,13 @@ Combat pipeline использует:
Для легковесного runtime-обновления рекомендуется группировать статы так: Для легковесного runtime-обновления рекомендуется группировать статы так:
- `Resource Bucket`
- `Stamina`
- `Stamina Regen`
- `Mana`
- `Mana Regen`
- `Mana Cost Modifier`
- `Stamina Cost Modifier`
- `Offense Bucket` - `Offense Bucket`
- `Damage` - `Damage`
- `Crit Chance` - `Crit Chance`
@@ -168,8 +184,6 @@ Combat pipeline использует:
- `Armor Penetration` - `Armor Penetration`
- `Stagger Power` - `Stagger Power`
- `Caster Bucket` - `Caster Bucket`
- `Resource`
- `Resource Regen`
- `Spell Power` - `Spell Power`
- `Status Power` - `Status Power`
- `Cast Speed` - `Cast Speed`
+5 -1
View File
@@ -41,7 +41,7 @@ Combat core и классовая система пока не имеют кан
## Expected Outcome ## Expected Outcome
В проекте существует единая система пяти атрибутов: `Мощь`, `Ловкость`, `Фокус`, `Стойкость`, `Мастерство`. Атрибуты конвертируются в понятные боевые эффекты, а классы Воин, Маг и Лучник используют их как часть стартовой конфигурации и class identity. В проекте существует единая система пяти атрибутов: `Мощь`, `Ловкость`, `Фокус`, `Стойкость`, `Мастерство`. Атрибуты конвертируются в понятные боевые эффекты, а классы Воин, Маг и Лучник используют их как часть стартовой конфигурации и class identity. Ресурсная модель явно разделяет `HP`, `Stamina` и `Mana`, причем у каждого ресурса есть свое автопополнение.
## Current Context ## Current Context
@@ -72,6 +72,8 @@ Combat core и классовая система пока не имеют кан
- базовая runtime-модель пяти атрибутов персонажа - базовая runtime-модель пяти атрибутов персонажа
- конвертация атрибутов в derived combat stats по каноническим направлениям - конвертация атрибутов в derived combat stats по каноническим направлениям
- явное разделение `HP`, `Stamina` и `Mana` как разных runtime resource pools
- автопополнение для `HP`, `Stamina` и `Mana`
- стартовые или базовые классовые приоритеты атрибутов для Воина, Мага и Лучника - стартовые или базовые классовые приоритеты атрибутов для Воина, Мага и Лучника
- интеграция атрибутов в class definition и стартовую конфигурацию персонажа - интеграция атрибутов в class definition и стартовую конфигурацию персонажа
- точки расширения для weapon scaling, skill scaling и будущих гибридных классов - точки расширения для weapon scaling, skill scaling и будущих гибридных классов
@@ -105,6 +107,8 @@ Combat core и классовая система пока не имеют кан
- в системе существуют `Мощь`, `Ловкость`, `Фокус`, `Стойкость`, `Мастерство` как канонические runtime-атрибуты - в системе существуют `Мощь`, `Ловкость`, `Фокус`, `Стойкость`, `Мастерство` как канонические runtime-атрибуты
- атрибуты влияют на боевые параметры по правилам, совместимым с GDD - атрибуты влияют на боевые параметры по правилам, совместимым с GDD
- `HP`, `Stamina` и `Mana` существуют как разные runtime resource pools
- у `HP`, `Stamina` и `Mana` есть отдельные механики автопополнения
- классы Воин, Маг и Лучник имеют явную интеграцию с системой атрибутов - классы Воин, Маг и Лучник имеют явную интеграцию с системой атрибутов
- downstream системы могут использовать атрибуты без дублирования class-specific формул - downstream системы могут использовать атрибуты без дублирования class-specific формул