diff --git a/docs/design/04-cultivation-system.md b/docs/design/04-cultivation-system.md index bcf4693..9a34037 100644 --- a/docs/design/04-cultivation-system.md +++ b/docs/design/04-cultivation-system.md @@ -17,9 +17,9 @@ or Cultivation Master progression in the current vertical slice. The slice uses: - `CharacterStats.level` as the baseline progression value. -- Body-bound stats such as strength, dexterity, endurance, perception, focus, - presence, intelligence, luck, max health, max energy, attack power, and - defense power. +- Body-bound stats such as strength, dexterity, vitality, perception, + intelligence, presence, luck, max health, max energy, TIME capacity, attack + power, armor, and elemental resistances. - TIME / SECOND and reincarnation as the signature systemic loop. Advanced body or soul progression remains a future design space, but it needs a diff --git a/docs/design/10-character-profile-agent-memory.md b/docs/design/10-character-profile-agent-memory.md index 35a1c5b..4f25d74 100644 --- a/docs/design/10-character-profile-agent-memory.md +++ b/docs/design/10-character-profile-agent-memory.md @@ -267,25 +267,27 @@ Current prototype runtime contract: | `level` | Local body level | | `strength` | Physical power, melee force, carry, heavy weapons, and forceful body actions | | `dexterity` | Movement quality, handling, precision, attack cadence, and dodge scaling | -| `endurance` | Health, energy reserve, body durability, recovery, and BodyTime efficiency hooks | -| `perception` | Sensor quality, threat detection, stealth detection, weak-point read, and social or environmental cue input | -| `focus` | Current energy and ability-use prototype stat | -| `presence` | Active social pressure, confidence, command weight, negotiation posture, and intimidation attempts | +| `vitality` | Health, recovery, physical reserve, and TIME capacity | +| `perception` | Combat read, threat detection, route or clue reveal, crit reliability, and status setup | | `intelligence` | Technical literacy, planning surface, analysis, and system understanding | +| `presence` | Active social pressure, confidence, command weight, negotiation posture, and intimidation attempts | | `luck` | Strictly capped variance for fortunate openings and backend-approved rolls | -| `vitality` | Legacy compatibility alias for endurance-oriented health scaling | | `force` | Legacy compatibility alias for strength-oriented physical power | | `agility` | Legacy compatibility alias for dexterity-oriented movement | -| `resilience` | Legacy compatibility alias for endurance-oriented mitigation | +| `endurance` | Legacy compatibility alias for vitality-oriented body reserve | +| `focus` | Legacy compatibility field, not a canonical core stat | +| `resilience` | Legacy compatibility alias for vitality-oriented mitigation | | `max_health` | Current derived or cached health cap | | `max_energy` | Current derived or cached energy cap | +| `energy_recovery` | Current derived or cached energy recovery | +| `max_time_capacity` | Current derived or cached TIME capacity | | `attack_power` | Current derived or cached attack output | -| `defense_power` | Current derived or cached defense output | +| `armor_rating` | Current derived or cached physical mitigation rating | -These keys are implemented today by the gateway, Nakama runtime, and Unity -prototype HUD. The eight core stats are the canonical backend contract. The -older serialized keys remain in runtime payloads as aliases until the Unity -networked prototype stats are renamed in a coordinated compatibility pass. +These keys describe the target stat contract. Current gateway, Nakama runtime, +and Unity prototype payloads may still carry older serialized aliases until +Unity, Nakama, and future dedicated-server stat payloads are renamed in a +coordinated compatibility pass. See [14-character-stat-and-relationship-system.md](14-character-stat-and-relationship-system.md) for the system-level stat, secondary stat, presentation, and relationship @@ -298,20 +300,22 @@ MVP core stat taxonomy: | `level` | Local body level | | `strength` | Physical power, melee force, carry, heavy weapons, and forceful body actions | | `dexterity` | Movement, handling, precision, attack cadence, and dodge scaling | -| `endurance` | Health, energy reserve, body durability, recovery, and BodyTime efficiency hooks | -| `perception` | Sensor quality, threat detection, stealth detection, weak-point read, and social or environmental cue input | -| `focus` | Concentration, panic resistance, noise resistance, status pressure, and agent instruction stability | -| `presence` | Active social influence such as persuasion, negotiation, leadership, command weight, and intimidation attempts | +| `vitality` | Body life capacity, HP, recovery, and maximum TIME capacity | +| `perception` | Combat read, crit reliability, route clue reveal, trap reveal, scout information, and status setup | | `intelligence` | Technical literacy, planning surface, analysis, crafting, hacking, and system understanding | +| `presence` | Active social influence such as persuasion, negotiation, leadership, command weight, and intimidation attempts | | `luck` | Strictly capped variance for fortunate openings, crit variance hooks, salvage bias, and backend-approved rolls | BodyTime is not a primary stat. It is a lifecycle and economy resource that may -later read endurance, injuries, hazards, and stress when computing drains or -recovery. +later read vitality, injuries, hazards, and stress when computing drains, +capacity, or recovery. Vitality may increase the maximum TIME capacity a body +can hold, but it must never mint TIME or SECOND. Do not add `wisdom` as a core stat. Wisdom-like behavior is split across -`perception`, `focus`, `SoulProfile`, `CharacterTraits`, `FrameMemory`, and -`RelationshipLedger`. +`perception`, `intelligence`, `SoulProfile`, `CharacterTraits`, `FrameMemory`, +and `RelationshipLedger`. Do not keep `focus` as a core stat. Focus-like +effects belong in concrete secondary stats, skill rules, passives, or status +resistance when those mechanics exist. Do not expose `accuracy` as a player-facing secondary stat for MVP. If a future combat system needs hit checks, keep `hit_reliability` backend-only. @@ -322,8 +326,10 @@ Derived combat stats: | ---- | ---- | | `max_hp` | Health cap | | `max_energy` | Energy or skill-resource cap | +| `energy_recovery` | Energy recovery rate | +| `max_time_capacity` | Maximum TIME the current body can hold | | `attack_power` | Weapon and body attack output | -| `skill_power` | Ability, tech, or non-weapon output | +| `skill_damage_bonus` | Skill-specific damage bonus, usually filtered by skill tag | | `armor_rating` | Generic direct-damage mitigation rating | | `metal_resistance_rating` | Metal damage mitigation rating | | `wood_resistance_rating` | Wood damage mitigation rating | @@ -344,7 +350,6 @@ Derived body and agent stats: | Stat | Purpose | | ---- | ---- | | `body_time_drain_rate` | Current body TIME drain speed | -| `body_time_efficiency` | How efficiently the body spends or preserves TIME | | `body_stability` | Resistance to degradation, injury pressure, overload, or corruption | | `recovery_rate` | Health, energy, or injury recovery modifier | | `sensor_range` | Server-authored observation radius for the body | @@ -366,8 +371,8 @@ Design notes: single-hit skill impacts. Dodge does not apply to damage-over-time ticks, ground hazards, aura damage, environmental damage, or guaranteed boss mechanics. -- `focus` must never be connected to prompt-injection defense. Security and - moderation are harness constants, not stats. +- Focus-like status values must never be connected to prompt-injection defense. + Security and moderation are harness constants, not stats. - `intelligence` must never make the model smarter or grant new authority. It can only affect server-approved technical actions and rolls inside policy. - `luck` must never mint loot, TIME, or SECOND directly. It can only bias diff --git a/docs/design/12-game-design-document.md b/docs/design/12-game-design-document.md index 2985f78..9cde3f8 100644 --- a/docs/design/12-game-design-document.md +++ b/docs/design/12-game-design-document.md @@ -838,23 +838,23 @@ mood or stress context, body presentation data, and validated action surface. Se Target character-model taxonomy: -The MVP backend uses eight canonical body-bound core stats: `strength`, -`dexterity`, `endurance`, `perception`, `focus`, `presence`, `intelligence`, -and `luck`. The older serialized keys `vitality`, `force`, `agility`, and -`resilience` remain compatibility aliases until the Unity networked prototype -stats are renamed safely. See +The MVP backend target uses seven canonical body-bound core stats: `strength`, +`dexterity`, `vitality`, `perception`, `intelligence`, `presence`, and `luck`. +The older serialized keys `force`, `agility`, `endurance`, `focus`, and +`resilience` remain compatibility aliases until Unity, Nakama, and future +dedicated-server stat payloads are renamed safely. See [14-character-stat-and-relationship-system.md](14-character-stat-and-relationship-system.md) for the detailed stat, secondary stat, presentation, and relationship baseline. - Core stats: body-bound gameplay numbers such as strength, dexterity, - endurance, perception, focus, presence, intelligence, and luck. Do not add - wisdom as a core stat and do not expose accuracy as a player-facing stat for + vitality, perception, intelligence, presence, and luck. Do not add wisdom or + focus as core stats and do not expose accuracy as a player-facing stat for MVP. -- Secondary stats: derived gameplay values such as HP, energy, attack power, - skill power, armor rating, five elemental resistance ratings, dodge rating, - dodge chance, crit chance, crit damage, attack speed, move speed, cooldown - reduction, BodyTime efficiency, sensor range, social read, and instruction - stability. +- Secondary stats: derived gameplay values such as HP, energy, energy recovery, + max TIME capacity, attack power, armor rating, five elemental resistance + ratings, crit chance, crit damage, attack speed, move speed, cooldown + reduction, optional dodge, optional block, sensor range, social read, and + instruction stability. - Social attributes: non-combat social surface such as appeal, reputation, faction standing, and relationship values. Appeal is a presentation attribute, not a beauty score and not a buildable combat stat. diff --git a/docs/design/14-character-stat-and-relationship-system.md b/docs/design/14-character-stat-and-relationship-system.md index d28fde0..509f3f2 100644 --- a/docs/design/14-character-stat-and-relationship-system.md +++ b/docs/design/14-character-stat-and-relationship-system.md @@ -55,30 +55,32 @@ recompute rules, see ## Current Source of Truth -The MVP backend uses eight canonical body-bound core stats: +The MVP backend target uses seven canonical body-bound core stats: - `strength` - `dexterity` -- `endurance` +- `vitality` - `perception` -- `focus` -- `presence` - `intelligence` +- `presence` - `luck` -Older serialized prototype fields remain compatibility aliases until Unity -networked stats are renamed safely: +Older serialized prototype fields remain compatibility aliases until Unity, +Nakama, and future dedicated-server stat payloads are migrated safely: - `force` - `agility` -- `vitality` +- `endurance` +- `focus` - `resilience` `wisdom` is intentionally not a core stat. The design treats wisdom-like -reading, judgment, and awareness as a mix of `perception`, `focus`, +reading, judgment, and awareness as a mix of `perception`, `intelligence`, `SoulProfile`, `CharacterTraits`, `FrameMemory`, and `RelationshipLedger`. -`charisma` remains folded into `presence` for MVP, and `appeal` remains a -presentation attribute, not a core stat. +`focus` is no longer a core stat. Focus-like behavior belongs in skill rules, +status resistance, equipment, passives, or explicit body traits when a real +mechanic requires it. `charisma` remains folded into `presence` for MVP, and +`appeal` remains a presentation attribute, not a core stat. --- @@ -86,8 +88,8 @@ presentation attribute, not a core stat. | Layer | Examples | Authority | | ---- | ---- | ---- | -| Core Stats | `strength`, `dexterity`, `endurance`, `perception`, `focus`, `presence`, `intelligence`, `luck` | Game backend, then Fusion server for live combat | -| Secondary Stats | HP, energy, attack power, armor, elemental resistance, dodge, crit | Derived or cached by backend and server simulation | +| Core Stats | `strength`, `dexterity`, `vitality`, `perception`, `intelligence`, `presence`, `luck` | Game backend, then Fusion server for live combat | +| Secondary Stats | HP, energy, attack power, armor, elemental resistance, crit, attack speed, move speed, cooldown reduction, TIME capacity | Derived or cached by backend and server simulation | | Skill Origin | Soul learning, body imprint, body physical action, equipment skill, profession skill, agent routine, anomaly | Backend-owned unlock and permission data, then Fusion server validation | | Social Attributes | Appeal band, reputation, faction standing | Backend-owned profile and presentation data | | Body Presentation | Visual tags, intimidation tags, style, voice profile | Backend-owned, Unity-rendered | @@ -101,29 +103,32 @@ presentation attribute, not a core stat. ## Runtime Contract -The current prototype runtime should keep these fields stable: +The target runtime should keep these fields stable after the stat migration. +Current prototypes may still carry older compatibility aliases: | Field | Type | Notes | | ---- | ---- | ---- | | `level` | integer | Current body level, not durable soul level | | `strength` | integer | Canonical core stat | | `dexterity` | integer | Canonical core stat | -| `endurance` | integer | Canonical core stat | +| `vitality` | integer | Canonical core stat | | `perception` | integer | Canonical core stat | -| `focus` | integer | Canonical core stat | -| `presence` | integer | Canonical core stat | | `intelligence` | integer | Canonical core stat | +| `presence` | integer | Canonical core stat | | `luck` | integer | Canonical core stat | | `force` | integer | Legacy alias for prototype compatibility | | `agility` | integer | Legacy alias for prototype compatibility | -| `vitality` | integer | Legacy alias for prototype compatibility | +| `endurance` | integer | Legacy alias for prototype compatibility | +| `focus` | integer | Legacy compatibility field, not canonical | | `resilience` | integer | Legacy alias for prototype compatibility | | `max_health` | integer | Derived or cached | | `max_energy` | integer | Derived or cached | +| `energy_recovery` | number | Derived or cached | +| `max_time_capacity` | integer | Derived or cached | | `attack_power` | integer | Derived or cached | -| `defense_power` | integer | Derived or cached | +| `armor_rating` | integer | Derived or cached | -New gameplay systems should read the canonical eight. Legacy aliases should +New gameplay systems should read the canonical seven. Legacy aliases should only exist at compatibility boundaries. Skills are not treated as simple body stats. A durable learned skill can live on @@ -142,18 +147,24 @@ carryover and sync rules. | ---- | ---- | ---- | | `strength` | Physical output, heavy weapon force, carry capacity, brute impact | Melee damage, stagger pressure, heavy tool use | | `dexterity` | Movement quality, handling, reaction, attack cadence, dodge scaling | Move speed, dodge rating, attack speed hooks | -| `endurance` | Body durability, recovery, energy reserve, survival tolerance | HP, energy, recovery, BodyTime efficiency hooks | -| `perception` | Sensor quality, awareness input, and wisdom-like reading of the world | Detection, weak-point reads, social cue input, threat awareness | -| `focus` | Concentration, panic resistance, instruction stability, pressure tolerance | Channeling, interruption resistance, agent consistency under stress | -| `presence` | Active social force and command weight | Persuasion, negotiation, leadership, intimidation, crowd effect hooks | +| `vitality` | Body life capacity, physical reserve, recovery, TIME capacity | HP, recovery, TIME capacity hooks | +| `perception` | Combat and route read, timing, clue recognition, status application setup | Crit reliability, block chance if guard exists, trap or clue reveal, scout information | | `intelligence` | Reasoning surface, technical literacy, planning, and system understanding | Hacking, crafting, analysis, tool use checks, tactical options | +| `presence` | Active social force, command weight, and party influence | Persuasion, negotiation, leadership, intimidation, threat or morale hooks | | `luck` | Controlled variance and fortunate openings | Rare event bias, crit variance hooks, salvage roll bias, strict server-capped outcomes | ### Why Not Wisdom Do not add `wisdom` as a core stat for MVP. Wisdom-like behavior is distributed -across `perception`, `focus`, `SoulProfile`, `CharacterTraits`, `FrameMemory`, -and `RelationshipLedger`. +across `perception`, `intelligence`, `SoulProfile`, `CharacterTraits`, +`FrameMemory`, and `RelationshipLedger`. + +### Why Not Focus + +Do not keep `focus` as a canonical core stat. It overlapped with `perception` +for combat read and with `intelligence` for skill execution. Focus-like +effects should be modeled as concrete secondary stats, skill rules, passives, +or status resistances only when those mechanics exist. ### Why Not Accuracy @@ -187,11 +198,11 @@ in UI once combat and tuning are ready. | Stat | Notes | | ---- | ---- | | `attack_power` | Baseline direct physical or weapon output | -| `skill_power` | Ability scaling budget | +| `skill_damage_bonus` | Skill-specific damage bonus, usually filtered by skill tag | | `attack_speed` | Animation and attack cadence budget | | `crit_chance` | Chance for direct hits to crit | | `crit_damage` | Bonus multiplier for crits | -| `cooldown_reduction` | Ability cadence modifier | +| `cooldown_reduction` | Ability cadence modifier, primarily from items, passives, buffs, or skill upgrades | | `resource_cost_reduction` | Energy or ability cost modifier | ### Defensive @@ -200,21 +211,24 @@ in UI once combat and tuning are ready. | ---- | ---- | | `max_health` | Current body HP ceiling | | `max_energy` | Current body action resource ceiling | +| `energy_recovery` | Current body action resource recovery | +| `max_time_capacity` | Maximum TIME the current body can hold, not free TIME generation | | `armor_rating` | Physical mitigation rating | -| `metal_resistance` | Kim elemental resistance rating | -| `wood_resistance` | Moc elemental resistance rating | -| `water_resistance` | Thuy elemental resistance rating | -| `fire_resistance` | Hoa elemental resistance rating | -| `earth_resistance` | Tho elemental resistance rating | +| `metal_resistance` | Metal elemental resistance rating | +| `wood_resistance` | Wood elemental resistance rating | +| `water_resistance` | Water elemental resistance rating | +| `fire_resistance` | Fire elemental resistance rating | +| `earth_resistance` | Earth elemental resistance rating | | `dodge_rating` | Rating converted to capped dodge chance | | `dodge_chance` | Effective chance after conversion | +| `block_chance` | Effective chance to block when guard equipment or stance exists | +| `block_value` | Damage budget absorbed by a valid block | ### Body, TIME, and Agent Support | Stat | Notes | | ---- | ---- | | `body_time_drain_rate` | How quickly this body burns TIME in relevant states | -| `body_time_efficiency` | Modifier for survival cost and drain hooks | | `body_stability` | Injury, mutation, overload, or degradation budget | | `recovery_rate` | Health or energy recovery hook | | `sensor_range` | How far the actor can sense relevant entities | @@ -222,7 +236,19 @@ in UI once combat and tuning are ready. | `stealth_detection` | Backend and prompt context for hidden targets | | `social_read` | How much social cue context the agent receives | | `instruction_stability` | How well the agent keeps owner policy under pressure | -| `stress_resistance` | How hard pressure must push before behavior changes | +| `stress_resistance` | Optional behavior-pressure hook, not a core stat replacement | + +Elemental resistances are secondary stats. Their main sources should be +equipment, buffs, passives, consumables, body traits, and Gate preparation. +Core stats should not grant broad flat elemental resistance by default. + +Cooldown reduction is also a secondary stat. Its main sources should be +items, passives, buffs, and skill upgrades, not a direct core-stat conversion. + +`skill_power` should not be treated as a global stat until a future design +needs a universal ability-power budget. Prefer skill-specific damage bonuses, +skill tags, coefficients, weapon contribution, skill rank, and equipment or +passive modifiers. --- @@ -394,7 +420,7 @@ Rules: - The client sends intent, never authoritative mutation. - Nakama and Fusion server compute or validate stat effects. -- `focus` must never weaken prompt-injection defense. +- Focus-like status values must never weaken prompt-injection defense. - `presence` and `appeal` must never bypass consent, moderation, or faction rules. - `perception` controls what sensory, social, and environmental context is @@ -413,18 +439,20 @@ Rules: For the vertical slice: -- Ship the canonical eight core stats. +- Ship the canonical seven core stats. - Keep legacy aliases only at compatibility boundaries. -- Use existing derived fields: `max_health`, `max_energy`, `attack_power`, and - `defense_power`. -- Document defense, dodge, and resistance formula direction, but do not treat - this document as final balance. +- Use essential derived fields: `max_health`, `max_energy`, + `energy_recovery`, `max_time_capacity`, `attack_power`, `armor_rating`, + five elemental resistances, crit, attack speed, move speed, and cooldown + reduction. +- Document defense and resistance formula direction, but do not treat this + document as final balance. - Use RelationshipLedger MVP fields: `affinity`, `hostility`, `trust`, `fear`, `respect`, `debt`, and `familiarity`. - Add `appeal_band` and simple presentation tags when the body profile schema is migrated. -- Keep `wisdom` out of MVP because `perception` covers the useful gameplay - portion. +- Keep `wisdom` out of MVP because `perception` and `intelligence` cover the + useful gameplay portions. - Keep `charisma` folded into `presence` for MVP. --- diff --git a/docs/design/19-openclaw-agent-connection-architecture.md b/docs/design/19-openclaw-agent-connection-architecture.md index d0ed57d..6108c2c 100644 --- a/docs/design/19-openclaw-agent-connection-architecture.md +++ b/docs/design/19-openclaw-agent-connection-architecture.md @@ -304,11 +304,10 @@ Response shape: "stats_summary": { "strength": 8, "dexterity": 10, - "endurance": 9, + "vitality": 9, "perception": 12, - "focus": 11, - "presence": 10, "intelligence": 13, + "presence": 10, "luck": 5 }, "zone_summary": "The Garden hub, near the repair stalls" diff --git a/docs/design/26-alpha-game-design-document.md b/docs/design/26-alpha-game-design-document.md index 286276f..0da687c 100644 --- a/docs/design/26-alpha-game-design-document.md +++ b/docs/design/26-alpha-game-design-document.md @@ -272,17 +272,16 @@ Progression is split into three layers. | Account / soul | Yes, bounded | Discovered knowledge, clear records, selected titles, SECOND reserve, approved unlock flags. | Alpha should not implement advanced body progression, cultivation, or Nibirium -XP. Level and the eight canonical stats are enough. +XP. Level and the seven canonical stats are enough. -The eight core stats are: +The seven core stats are: - strength - dexterity -- endurance +- vitality - perception -- focus -- presence - intelligence +- presence - luck --- diff --git a/docs/design/28-character-body-and-roster-design.md b/docs/design/28-character-body-and-roster-design.md index 8a215d6..6ade458 100644 --- a/docs/design/28-character-body-and-roster-design.md +++ b/docs/design/28-character-body-and-roster-design.md @@ -32,7 +32,7 @@ A SECOND SPAWN character is an **actor bundle**: | ---- | ---- | ---- | | Identity | Public name, callsign, pronouns, age, role, faction lane | `Gate Sentinel 0101`, South Gate guard | | Body | Physical vessel, lifecycle, TIME, condition, gear, visual kit | Knight body, sword, alive, low injury | -| Stats | Eight canonical body stats plus derived combat values | strength, focus, max HP | +| Stats | Seven canonical body stats plus derived combat values | strength, vitality, max HP | | Traits | Personality and behavior tendencies | cautious, disciplined, protective | | Soul / Drive | Motivation, fear, values, moral boundary | keep gate open, fear convoy loss | | Memory | Compact world and relationship facts | remembers red BodyTime storm | @@ -94,16 +94,16 @@ The alpha roster should map stats to readable gameplay roles. | Archetype | Stat Bias | Combat Role | Social Role | | ---- | ---- | ---- | ---- | -| Sentinel | endurance, strength, focus | frontline guard, blocker | cautious protector | +| Sentinel | vitality, strength, perception | frontline guard, blocker | cautious protector | | Courier | dexterity, perception, luck | scout, kiter, route runner | rumor carrier | -| Clinic Operator | intelligence, focus, presence | support, disable, stabilize | healer and memory worker | -| Scrap Warden | strength, endurance, presence | bruiser, yard defender | practical foreman | -| Crossline Surveyor | perception, dexterity, focus | ranged marker, overwatch | mapper and verifier | +| Clinic Operator | intelligence, presence, vitality | support, disable, stabilize | healer and memory worker | +| Scrap Warden | strength, vitality, presence | bruiser, yard defender | practical foreman | +| Crossline Surveyor | perception, dexterity, intelligence | ranged marker, overwatch | mapper and verifier | | Contractor | balanced | starter-friendly | flexible role | | Hostile Runner | dexterity, aggression trait | pressure enemy | future risky body | -| Tollkeeper Shell | endurance, presence, strength | elite or boss guardian | future constrained body | +| Tollkeeper Shell | vitality, presence, strength | elite or boss guardian | future constrained body | -Do not add more core stats for alpha. Use the eight canonical stats and +Do not add more core stats for alpha. Use the seven canonical stats and behavior traits. --- diff --git a/docs/design/31-alpha-economy-balance-and-playtest-plan.md b/docs/design/31-alpha-economy-balance-and-playtest-plan.md index 400c4e3..9508ac7 100644 --- a/docs/design/31-alpha-economy-balance-and-playtest-plan.md +++ b/docs/design/31-alpha-economy-balance-and-playtest-plan.md @@ -150,7 +150,7 @@ Starter body should be readable and forgiving. Recommended starter: - Sentinel-like or balanced contractor. -- Slightly higher endurance and focus. +- Slightly higher vitality and perception. - Simple melee kit. - Clear attack feedback. diff --git a/docs/design/38-alpha-design-decision-register.md b/docs/design/38-alpha-design-decision-register.md index 086cc58..55744e7 100644 --- a/docs/design/38-alpha-design-decision-register.md +++ b/docs/design/38-alpha-design-decision-register.md @@ -43,6 +43,7 @@ Use this file when: | LLM authority | LLM output is dialogue or intent only. Nakama and Fusion validate and mutate game state. | Required by the open-source and anti-cheat model. | | Role-play providers | Alibaba Qwen-Character and similar role-play models are R&D candidates only, behind `api.dos.ai`. They are not the MVP backbone and cannot own canonical NPC memory. | Preserves replaceable providers while keeping durable state in Nakama and authority in Fusion. | | Skill ownership | Physical stats are mostly body-bound, but skills are origin-bound. Durable soul learning can survive body loss, while body imprint, physical body actions, equipment access, and sync decide what can be executed now. | A skill logically lives in learned consciousness, body imprint, gear, or agent routine. Body loss should hurt execution without deleting all player learning. | +| Core stat taxonomy | Use seven canonical core stats: `strength`, `dexterity`, `vitality`, `perception`, `intelligence`, `presence`, and `luck`. `focus` is not a core stat. | Keeps the player-facing model tighter, maps ORV-style Physique to vitality and Magic Power to intelligence or energy, and avoids overlap between perception and focus. | | Commercial NPC product pattern | Learn from vendor patterns such as Mindview-style prompt inspection, knowledge banks, narrative objectives, bounded action APIs, and NPC-to-NPC managers, but do not make any vendor the durable state backbone. | Keeps useful product lessons while preserving ownership in Nakama and `api.dos.ai`. | | Advanced body progression | Cultivation and Nibirium XP remain deferred and out of alpha. | The concept felt too much like a normal XP bar and needs a fresh design pass. | @@ -68,6 +69,7 @@ first playable alpha. | First production order | A0 through A7 from the production backlog. | `33-alpha-production-backlog.md` | | First readiness gate | Use the acceptance matrix and evidence pack before calling alpha test-ready. | `34-alpha-acceptance-matrix.md` | | Alpha stat scale | Core stats use a compact 1-15 alpha range, with 16+ reserved for post-alpha, elite, boss, anomaly, or tuned content. | `39-alpha-stats-and-skills-design.md` | +| Essential secondary stats | Alpha tracks HP, Energy, Energy Recovery, TIME Capacity, Attack Power, Armor, five elemental resistances, Crit Chance, Crit Damage, Attack Speed, Move Speed, and Cooldown Reduction. Dodge, block, ability power, status chance, and buff duration remain conditional until their mechanics are scoped. | `14-character-stat-and-relationship-system.md` | | Alpha skill slots | First body kits use Basic Attack, Defensive/Mobility, Role Skill, Interact, and optional Utility. No Ultimate slot in alpha. | `39-alpha-stats-and-skills-design.md` | | Alpha starter kit | Sentinel or balanced contractor is still the recommended first playable kit. | `39-alpha-stats-and-skills-design.md` | | Alpha skill origin | Skill data must distinguish origin from slot and animation intent. The minimum useful origins are soul, body imprint, body physical, weapon, profession, agent routine, and anomaly. | `39-alpha-stats-and-skills-design.md` | diff --git a/docs/design/39-alpha-stats-and-skills-design.md b/docs/design/39-alpha-stats-and-skills-design.md index a4a7556..190e2a3 100644 --- a/docs/design/39-alpha-stats-and-skills-design.md +++ b/docs/design/39-alpha-stats-and-skills-design.md @@ -44,7 +44,7 @@ the alpha into a full ARPG spreadsheet. 2. Skills are origin-bound, not body-bound by default. A skill can come from soul learning, body imprint, equipment, profession, agent policy, or anomaly. 3. A durable learned skill can survive body loss, but the new body still limits - execution through strength, dexterity, endurance, focus, equipment, and + execution through strength, dexterity, vitality, perception, equipment, and soul-body sync. 4. Borrowed body imprint skills can be used while inhabiting the body, but do not automatically become durable account skills. @@ -58,7 +58,7 @@ the alpha into a full ARPG spreadsheet. ## 3. Core Stat Scale -Alpha should treat the eight canonical stats as compact body ratings. +Alpha should treat the seven canonical stats as compact body ratings. | Range | Meaning | | ---- | ---- | @@ -80,16 +80,16 @@ inside this range unless explicitly testing an elite or boss shell. | ---- | ---- | ---- | | `strength` | Melee impact, stagger pressure, heavy tool use, shield force. | Reads as physical confidence or heavy-body burden. | | `dexterity` | Move speed hooks, attack cadence hooks, dodge rating, handling. | Reads as comfort with motion, escape, and precision. | -| `endurance` | Max health, body stability, injury tolerance, drain resistance hooks. | Reads as willingness to hold pressure or escort others. | -| `perception` | Threat read, weak-point hint, route clue visibility, sensor range. | Controls what sensory and social context the actor can know. | -| `focus` | Max energy, channel stability, interruption resistance, stress tolerance. | Controls consistency under panic and instruction noise. | -| `presence` | Taunt, command, intimidation, negotiation pressure. | Shapes how strongly the actor enters a room or conversation. | -| `intelligence` | Tech checks, repair/scout analysis, tactical options, tool use. | Enables more technical explanations and planning hooks. | +| `vitality` | Max health, recovery, physical reserve, and TIME capacity. | Reads as how much pressure the body can survive before failing. | +| `perception` | Crit reliability, block chance if guard exists, route clue visibility, trap reveal, scout information, and status setup. | Controls what sensory and tactical context the actor can know. | +| `intelligence` | Max energy support, tech checks, repair/scout analysis, tactical options, tool use, and system-skill complexity. | Enables more technical explanations and planning hooks. | +| `presence` | Taunt, threat, command, intimidation, negotiation pressure, and party or NPC influence. | Shapes how strongly the actor enters a room or conversation. | | `luck` | Strictly capped variance, salvage bias, narrow lucky openings. | Never grants loot, TIME, SECOND, or unlocks directly. | -Do not add `wisdom` for alpha. Use `perception`, `focus`, memory, and traits. -Do not expose `accuracy` as a player-facing stat. If hit reliability is needed, -keep it backend-only. +Do not add `wisdom` or `focus` for alpha. Use `perception`, `intelligence`, +memory, traits, concrete secondary stats, passives, or status resistance when +a mechanic needs them. Do not expose `accuracy` as a player-facing stat. If hit +reliability is needed, keep it backend-only. --- @@ -99,15 +99,19 @@ The alpha should use simple derived values that can be tuned later. | Derived Stat | Inputs | Alpha Use | | ---- | ---- | ---- | -| `max_health` | level, endurance, body grade | Hit point ceiling. | -| `max_energy` | level, focus, dexterity | Skill resource ceiling. | -| `attack_power` | level, strength or dexterity, weapon profile | Basic attack budget. | -| `defense_power` | endurance, armor profile, shield profile | Simple mitigation placeholder. | +| `max_health` | level, vitality, frame grade | Hit point ceiling. | +| `max_energy` | level, intelligence, equipment | Skill resource ceiling. | +| `energy_recovery` | equipment, passives, buffs | Skill resource recovery. | +| `max_time_capacity` | frame base, vitality | Maximum TIME the current body can hold. | +| `attack_power` | level, weapon profile, primary stat | Basic attack budget. | +| `armor_rating` | armor profile, shield profile, level | Physical mitigation placeholder. | | `move_speed_mod` | dexterity, body size, injury | Movement tuning. | -| `dodge_rating` | dexterity, focus, equipment | Direct-hit avoidance budget. | -| `skill_power` | relevant core stat, level, weapon/tool profile | Ability budget. | -| `body_stability` | endurance, focus, condition | Injury and overload resistance. | -| `body_time_efficiency` | endurance, body grade, condition | Future drain modifier, not required for first alpha. | +| `critical_chance` | equipment, skill, dexterity or perception | Critical hit budget. | +| `critical_damage` | weapon, skill, equipment | Critical damage budget. | +| `cooldown_reduction` | equipment, passives, buffs, skill upgrades | Ability cadence modifier. | +| `dodge_rating` | equipment, stance, dexterity | Optional direct-hit avoidance budget. | +| `block_chance` | shield, stance, perception | Optional guard success budget. | +| `block_value` | shield, armor, strength | Optional block absorption budget. | Alpha formula rule: @@ -122,10 +126,12 @@ plus-one-to-all-stats growth, and a fixed XP table. See Example direction: ```text -max_health = 60 + endurance * 5 + level * 5 -max_energy = 20 + focus * 4 + level * 3 -attack_power = weapon_base + primary_stat * 0.6 + level * 1.5 -defense_power = armor_base + endurance * 0.5 +max_health = 60 + vitality * 5 + level * 5 +max_energy = 20 + intelligence * 3 + level * 3 + equipment_energy +energy_recovery = base_recovery + equipment_recovery + passive_recovery +max_time_capacity = base_time_capacity + vitality * time_capacity_factor +attack_power = weapon_base + primary_stat * 0.5 + level * 1.2 +armor_rating = armor_base + level * 0.5 ``` These are design placeholders. Implementation should keep them centralized so @@ -139,13 +145,13 @@ Alpha archetypes should be readable by stat bias. | Archetype | Primary Stats | Weakness | First Role | | ---- | ---- | ---- | ---- | -| Sentinel | endurance, strength, focus | lower mobility and social warmth | hold line, protect, survive | +| Sentinel | vitality, strength, perception | lower mobility and social warmth | hold line, protect, survive | | Courier | dexterity, perception, luck | lower durability | scout, kite, reveal route clues | -| Clinic Operator | focus, intelligence, presence | low aggression and direct damage | stabilize, analyze, support | -| Scrap Warden | strength, endurance, presence | low speed and subtlety | heavy stagger, salvage, zone control | -| Crossline Surveyor | perception, dexterity, focus | weak close-range control | ranged mark, overwatch, signal read | +| Clinic Operator | intelligence, presence, vitality | low aggression and direct damage | stabilize, analyze, support | +| Scrap Warden | strength, vitality, presence | low speed and subtlety | heavy stagger, salvage, zone control | +| Crossline Surveyor | perception, dexterity, intelligence | weak close-range control | ranged mark, overwatch, signal read | | Hostile Runner | dexterity, aggression trait | low trust, unstable TIME | pressure enemy, future risky body | -| Tollkeeper Shell | endurance, presence, strength | severe social and access constraints | elite guardian or boss shell | +| Tollkeeper Shell | vitality, presence, strength | severe social and access constraints | elite guardian or boss shell | Starter body recommendation: @@ -244,8 +250,8 @@ server validation can explain. | Skill | Origin | Inputs | Effect Direction | Validation | | ---- | ---- | ---- | ---- | ---- | | Guard Cut | WeaponSkill | strength, attack_power | Short melee arc. | range, cone, target alive, cooldown | -| Shield Brace | BodyPhysicalSkill | endurance, focus | Brief damage reduction or stagger resistance. | duration, cooldown, body has shield | -| Intercept Step | BodyPhysicalSkill | dexterity, endurance | Short controlled reposition toward ally or threat. | distance cap, nav validity, cooldown | +| Shield Brace | BodyPhysicalSkill | vitality, strength | Brief damage reduction or stagger resistance. | duration, cooldown, body has shield | +| Intercept Step | BodyPhysicalSkill | dexterity, vitality | Short controlled reposition toward ally or threat. | distance cap, nav validity, cooldown | Alpha default: @@ -258,7 +264,7 @@ Alpha default: | Skill | Origin | Inputs | Effect Direction | Validation | | ---- | ---- | ---- | ---- | ---- | | Quick Slash | WeaponSkill | dexterity, attack_power | Fast low-stagger melee. | range, cone, cooldown | -| Route Step | BodyPhysicalSkill | dexterity, focus | Short dash or dodge with high readability. | distance cap, cooldown, no wall bypass | +| Route Step | BodyPhysicalSkill | dexterity, perception | Short dash or dodge with high readability. | distance cap, cooldown, no wall bypass | | Mark Route | BodyImprintSkill | perception, luck | Reveals route clue or safer mission hint. | mission state, clue cap, cooldown | ### Clinic Operator Kit @@ -266,7 +272,7 @@ Alpha default: | Skill | Origin | Inputs | Effect Direction | Validation | | ---- | ---- | ---- | ---- | ---- | | Tool Jab | WeaponSkill | dexterity, intelligence | Weak close hit or interrupt. | range, cone, cooldown | -| Stabilize | BodyImprintSkill | focus, intelligence | Restore small HP or reduce injury state. | target eligibility, cost, cooldown | +| Stabilize | BodyImprintSkill | intelligence, vitality | Restore small HP or reduce injury state. | target eligibility, cost, cooldown | | Triage Read | BodyImprintSkill | perception, intelligence | Shows body condition or hazard warning. | visible target, permission, cooldown | ### Scrap Warden Kit @@ -274,7 +280,7 @@ Alpha default: | Skill | Origin | Inputs | Effect Direction | Validation | | ---- | ---- | ---- | ---- | ---- | | Heavy Swing | WeaponSkill | strength, attack_power | Slow heavy arc with stagger. | windup, range, cone, cooldown | -| Brace Weight | BodyPhysicalSkill | endurance, presence | Resist knockback or hold position. | duration, cooldown | +| Brace Weight | BodyPhysicalSkill | vitality, strength | Resist knockback or hold position. | duration, cooldown | | Salvage Break | BodyImprintSkill | strength, intelligence | Break object or open salvage route. | object tag, mission state, cooldown | ### Crossline Surveyor Kit @@ -282,8 +288,8 @@ Alpha default: | Skill | Origin | Inputs | Effect Direction | Validation | | ---- | ---- | ---- | ---- | ---- | | Bolt Shot | WeaponSkill | perception, attack_power | Ranged single target hit. | line of sight, range, reload/cooldown | -| Mark Signal | BodyImprintSkill | perception, focus | Mark weak point or objective signal. | target visible, mark cap, cooldown | -| Disengage Step | BodyPhysicalSkill | dexterity, focus | Short backward reposition. | distance cap, nav validity, cooldown | +| Mark Signal | BodyImprintSkill | perception, intelligence | Mark weak point or objective signal. | target visible, mark cap, cooldown | +| Disengage Step | BodyPhysicalSkill | dexterity, perception | Short backward reposition. | distance cap, nav validity, cooldown | --- @@ -306,7 +312,7 @@ future fields: | `origin` | soul, body_imprint, body_physical, weapon, profession, agent_routine, anomaly | | `layer` | Backward-compatible category if existing code still expects it. | | `required_tags` | body, weapon, profession, or animation tags required | -| `physical_requirements` | minimum strength, dexterity, endurance, focus, or body tags | +| `physical_requirements` | minimum strength, dexterity, vitality, perception, or body tags | | `knowledge_requirements` | soul skill, recipe, language, tactic, or memory requirements | | `sync_requirement` | minimum soul-body sync or adaptation threshold | | `carryover_rule` | none, partial, full, or explicit future rule id | @@ -398,7 +404,7 @@ The reason is useful for logs and prompt trace, not authority. The first stats/skills UI should show: - body level -- eight core stats +- seven core stats - HP and energy - attack and defense - skill names @@ -439,7 +445,7 @@ Do not copy named gods, powers, floor structures, characters, or plot beats. ## 16. Acceptance Checklist -- [ ] The current body shows the eight core stats. +- [ ] The current body shows the seven core stats. - [ ] The first playable body has Basic Attack, Defensive/Mobility, and Role Skill slots defined. - [ ] Skill data distinguishes origin from slot and animation intent. diff --git a/docs/design/40-soul-skill-carryover-and-sync.md b/docs/design/40-soul-skill-carryover-and-sync.md index 2a9bfbe..7370d25 100644 --- a/docs/design/40-soul-skill-carryover-and-sync.md +++ b/docs/design/40-soul-skill-carryover-and-sync.md @@ -44,7 +44,7 @@ The practical rule: | Layer | Lives On | Example | Survives Body Loss? | | ---- | ---- | ---- | ---- | | Soul Knowledge | Player account or durable consciousness | Sword timing, route knowledge, first aid theory, crafting recipe, language, faction protocol | Yes, if explicitly recorded | -| Body Physical Capability | Current body | Strength, dexterity, endurance, hand stability, reach, injury, body stability | No | +| Body Physical Capability | Current body | Strength, dexterity, vitality, hand stability, reach, injury, body stability | No | | Body Imprint | Current body profile | Clinic reflex, guard posture, courier route habit, salvage routine, hostile instinct | No by default | | Equipment Familiarity | Soul or gear history | Bow handling, shield use, hammer timing, tool operation | Partial, requires gear | | Profession Credential | Soul, body, or faction state | Clinic access, Warden permit, Surveyor signal rights | Depends on source | diff --git a/docs/design/57-alpha-level-core-stat-progression.md b/docs/design/57-alpha-level-core-stat-progression.md index d261fc9..a8eafe3 100644 --- a/docs/design/57-alpha-level-core-stat-progression.md +++ b/docs/design/57-alpha-level-core-stat-progression.md @@ -91,7 +91,7 @@ Why not five points per level: - Solo Leveling-style five-point allocation is readable and satisfying, but it assumes a mostly permanent main-character progression path. -- SECOND SPAWN has eight core stats, body loss, body archetypes, equipment +- SECOND SPAWN has seven core stats, body loss, body archetypes, equipment requirements, and reinhabitation reset pressure. - Five points per level would flatten body identity too quickly in the alpha range. @@ -136,11 +136,10 @@ Canonical core stats remain: ```text strength dexterity -endurance +vitality perception -focus -presence intelligence +presence luck ``` @@ -156,7 +155,7 @@ Allocation rules: | unspent points | allowed, but shown clearly | The `+5 above base` rule protects body identity. A Courier can improve -endurance, but it should not become a Sentinel just by spending a few early +vitality, but it should not become a Sentinel just by spending a few early levels. Recommended UI labels: @@ -249,12 +248,12 @@ server-owned path. Alpha derived stat direction: ```text -max_health = 60 + endurance * 5 + level * 6 + body_grade_bonus -max_energy = 20 + focus * 4 + dexterity * 1 + level * 3 -attack_power = weapon_base + primary_stat * 0.7 + level * 1.5 -defense_power = armor_base + endurance * 0.5 + level * 0.5 -dodge_rating = dexterity * 2 + focus + equipment_dodge -body_stability = endurance * 2 + focus + level + condition_modifier +max_health = 60 + vitality * 5 + level * 6 + frame_grade_bonus +max_energy = 20 + intelligence * 3 + level * 3 + equipment_energy +energy_recovery = base_recovery + equipment_recovery + passive_recovery +max_time_capacity = base_time_capacity + vitality * time_capacity_factor +attack_power = weapon_base + primary_stat * 0.5 + level * 1.2 +armor_rating = armor_base + level * 0.5 ``` Formula rules: @@ -263,9 +262,15 @@ Formula rules: - round consistently on the server - Unity may preview, but server results win - equipment can add inputs, but cannot directly bypass stat requirements +- elemental resistances come from items, buffs, passives, body traits, or Gate + preparation, not broad core-stat conversion +- cooldown reduction comes from items, passives, buffs, or skill upgrades - `luck` can bias capped rolls only, never mint rewards directly -These formulas are alpha starting points, not final balance law. +These formulas are alpha starting points, not final balance law. Do not treat +`skill_power` as a global stat until a future design explicitly needs it. +Prefer skill-specific damage bonuses, skill tags, coefficients, weapon +contribution, skill rank, and equipment or passive modifiers. --- @@ -354,7 +359,7 @@ Build: - Grant 3 body stat points per body level. - Track unspent points. -- Validate allocation across the eight canonical stats. +- Validate allocation across the seven canonical stats. - Enforce hard cap 15 and max +5 above body base per stat. - Keep legacy aliases read-only compatibility only. @@ -422,7 +427,7 @@ The level and core-stat system is alpha-ready when: - level cap 15 is enforced - XP table is data-driven and shared by backend and client presentation - each level grants exactly 3 body stat points -- body stat points can be allocated only to the canonical eight stats +- body stat points can be allocated only to the canonical seven stats - stat cap 15 and max +5 above body base are enforced - derived stats recompute after level, stat, equipment, injury, or body refresh - inventory requirements use canonical stats and server validation @@ -452,4 +457,3 @@ Do not cut: - canonical stat names - cap enforcement - inventory requirement validation -