📊 Health — Internal / Reporting¶
📦 Folder Overview¶
This folder contains internal reporting helpers used to translate internal pipeline data into stable public-facing shapes.
These types are not part of the public API surface and should not be depended on directly by gameplay code.
🎯 Purpose¶
Internal reporting helpers exist to:
- Convert internal pipeline data (
DamageContext, etc.) into safe, minimal public snapshots - Decouple internal processing structures from public data contracts
- Keep
HealthSystemfocused on orchestration
🧩 What Lives Here¶
This folder contains:
- Internal data-mapping helpers
- Translation logic between internal state and public contracts
It does not contain:
- A public reporting API
- A telemetry system
- Supported extension points
🧩 Components¶
LastDamageReportFactory¶
Internal helper for constructing LastDamageReport instances.
Responsibilities:
- Converts a
DamageContextinto a public, stable snapshot -
Extracts only supported fields:
-
requested amount
- final applied amount
- cancelled state
- bypass flags
- attacker reference
- source identifier
- kill-command marker
Behaviour:
- Does not mutate input
- Produces a minimal, safe data shape
- Ensures external consumers do not rely on full
DamageContext
⚠️ Important Notes¶
Boundaries¶
Do not:
- Use
DamageContextdirectly outside internal logic - Call this factory from gameplay code
- Treat this as a reporting system API
- Add gameplay logic here
If damage information is needed, use:
HealthSystem.TryGetLastDamageReport(...)
🧠 Usage Guidance¶
- Use public snapshot types (
LastDamageReport) for external systems - Treat internal contexts as implementation detail
- Keep reporting logic separate from gameplay logic
🚫 Not for Production Use¶
This folder is not intended as a gameplay integration surface.
🔗 Related Documentation¶
- Health System
- Abstractions / Contracts
- Lifecycle handlers