TextPopup

com.cupkekgames.textpopup — backend-agnostic floating-text popup contracts (damage / heal / shield / status numbers and freeform text). Pair with a bridge package (e.g. com.cupkekgames.textpopup.damagenumberspro) for a concrete implementation.

Kind-driven popups

A single entry point dispatches every popup:

csharp
popupManager.Show(PopupKinds.Damage, hitPoint, damageAmount, new DamagePopupContext { IsCrit = isCrit }); popupManager.Show(PopupKinds.Heal, healerPos, healAmount); popupManager.Show(PopupKinds.StatusNegative, target.position, 0, new TextPopupContext { LeftText = "STUN" });

Kinds are open string keys. Reserved ones (Damage, DamageWeak, DamageStrong, Heal, Shield, StatusPositive, StatusNegative) live in PopupKinds; domain games add new kinds (Block, Miss, Counter, …) by registering (kind, prefab) entries on the bridge adapter. PopupKinds.DamageVariant(elementMultiplier) is a helper that maps a damage multiplier to the right Damage* kind for elemental hits.

Per-call extras go through IPopupContext. Two standard contexts ship:

  • DamagePopupContext { IsCrit } — toggles the kind's authored crit prefix (e.g. ★-99).
  • TextPopupContext { LeftText } — overrides the kind's default left text on a single call (used by status effects to show the effect name).

Bridges pattern-match the contexts they care about; unknown contexts are ignored.

What's inside

  • IPopupManager — kind-driven dispatch contract. Show(kind, center, value, context) / SetScaleMaxValue(maxValue).
  • IPopupContext + DamagePopupContext + TextPopupContext — per-call extras.
  • PopupKinds — reserved kind constants (open catalog) + DamageVariant helper.

Asmdef + namespace

CupkekGames.TextPopup (runtime).

Dependencies

None.

Bridge implementations

Repository

Cupkek-Games/CupkekGames-TextPopup

Settings

Theme

Light

Contrast

Material

Dark

Dim

Material Dark

System

Sidebar(Light & Contrast only)

Light
Dark

Font Family

DM Sans

Wix

Inclusive Sans

AR One Sans

Direction

LTR
RTL