Skip to content

Health — Rules Internal

Folder Overview

This folder contains internal helper components and utilities used by the Rules system.

These types support rule execution but are not part of the public API surface.


Purpose

Internal rule utilities exist to:

  • Support built-in rule behaviour
  • Provide reusable helpers
  • Keep rule implementations focused

What Lives Here

This folder contains:

  • Internal plumbing for rules
  • Helper utilities used by built-in rules

It does not contain:

  • Public extension seams
  • Stable integration surfaces

Components

CombatPing

Internal helper for combat-state signalling.

  • Bridges rules to HealthCombatState
  • Used by extensions (for example, DamageExtensions)
  • Safe no-op if no combat component exists

Notes:

  • Not a contract
  • Behaviour may change over time

SystemRng

Deterministic RNG implementation.

  • Backed by System.Random
  • Supports optional seeding
  • Used by rules such as CritRule

Use cases:

  • Deterministic gameplay
  • Reproducible results

UnityRng

Wrapper around UnityEngine.Random.

  • Non-deterministic by default
  • Used when deterministic behaviour is not required

Important Notes

Boundaries

Do not:

  • Depend on these types from gameplay code
  • Treat these as extension points
  • Build systems on top of these utilities

These are internal implementation details.


Usage Guidance

  • Treat this folder as implementation support only
  • Use abstractions for public integration
  • Expect internal helpers to change over time

Not for Production Use

This folder is not intended as a gameplay integration surface


  • Rules
  • Rules Abstractions
  • Damage Rules