Skip to content

🧱 Health — Internal

📦 Folder Overview

This folder contains internal helper utilities and evaluation logic used by the Health system.

These are not supported extension points and should be treated as implementation detail.


🎯 Purpose

This layer exists to support the runtime system with shared helpers and preview evaluation logic while keeping the public API surface clean.


🧩 What Lives Here

This folder may contain:

  • Small helper utilities (combat, team lookup)
  • Internal evaluation helpers (preview logic)
  • Lightweight shared plumbing used across Health

It does not contain:

  • Public contracts
  • Supported extension seams
  • Full system implementations

🧩 Components

CombatUtility

Helper for interacting with HealthCombatState (if present).

  • Safe no-op if component is missing
  • Methods:

  • EnterOnOutgoingAttempt

  • ForceEnterCombat
  • TryExitCombat

Does not own combat state. Delegates to HealthCombatState.


TeamUtility

Resolves team ID via TeamProvider.

  • Returns TeamProvider.TeamId if present
  • Otherwise returns 0 (unknown or neutral)

This is a simple lookup, not a full team system.


HealthPreviewEvaluator

Internal helper for non-mutating previews.

Responsibilities:

  • Computes damage and heal previews
  • Applies rules (optionally)
  • Uses shield preview when supported
  • Applies healing modifiers

Behaviour:

  • Does not mutate health, shields, or rules
  • Uses IShieldPreview when available
  • Falls back safely when preview is not supported

Used by:

  • HealthSystem.PreviewDamage(...)
  • HealthSystem.PreviewHeal(...)

This is a preview engine, not gameplay logic.


⚠️ Important Notes

Boundaries

Do not:

  • Depend on .Internal types from gameplay code
  • Treat these as stable API
  • Build systems on top of these helpers
  • Assume behaviour here is fixed long-term

If similar functionality is needed, use:

  • Public APIs (HealthSystem)
  • Contracts (Abstractions)
  • Rules, modifiers, or handlers

🧠 Usage Guidance

  • Treat this folder as implementation detail
  • Prefer public contracts and APIs for all integrations
  • Expect internal helpers to change over time

🚫 Not for Production Use

This folder is not intended as a gameplay integration surface.


  • Health System
  • Abstractions
  • Rules
  • Handlers
  • Components