feat: heal sparkle + shield ward self-VFX (UO art) #92

Merged
marco merged 1 commit from feat/spell-self-vfx into main 2026-07-19 12:37:51 +02:00
Owner

Closes #80 and #84 — the visible spell effects for the two self spells, reusing UO effect art via the pack (like the fireball).

Art

  • Heal: the UO white sparkle bloom (0x3739-0x3743) tinted green.
  • Shield: the UO blue ward disc (0x3790-0x379D) tinted cyan.
  • assets.isoa repacked (just pack) with effect/heal_sparkle + effect/shield_ward.

Client

  • New IWorldEffect interface; ActiveEffect (projectile) and a new StationaryEffect (one-shot in-place, tinted) both implement it.
  • On Healed: the green sparkle blooms on the caster's body (alongside the green +N number).
  • On Shielded: the cyan ward disc blooms at the feet (alongside the ring shown for the ward's duration).
  • Graceful fallback when the pack lacks the art (number/ring still show).

Purely presentational; no protocol/server change. Needs a visual check — tint/position/frame-range are easy to tune once seen in-game.

Definition of Done

  • Casting heal shows a green sparkle on the caster; casting shield shows a cyan ward at the feet.
  • Both degrade to just the number/ring when the pack is absent.
  • Suite green, whole solution builds, zero warnings.
Closes #80 and #84 — the visible spell effects for the two self spells, reusing UO effect art via the pack (like the fireball). ### Art - **Heal**: the UO white sparkle bloom (`0x3739-0x3743`) tinted green. - **Shield**: the UO blue ward disc (`0x3790-0x379D`) tinted cyan. - `assets.isoa` repacked (`just pack`) with `effect/heal_sparkle` + `effect/shield_ward`. ### Client - New `IWorldEffect` interface; `ActiveEffect` (projectile) and a new **`StationaryEffect`** (one-shot in-place, tinted) both implement it. - On `Healed`: the green sparkle blooms on the caster's body (alongside the green +N number). - On `Shielded`: the cyan ward disc blooms at the feet (alongside the ring shown for the ward's duration). - Graceful fallback when the pack lacks the art (number/ring still show). Purely presentational; no protocol/server change. **Needs a visual check** — tint/position/frame-range are easy to tune once seen in-game. ## Definition of Done - [ ] Casting heal shows a green sparkle on the caster; casting shield shows a cyan ward at the feet. - [ ] Both degrade to just the number/ring when the pack is absent. - [ ] Suite green, whole solution builds, zero warnings.
feat: heal sparkle + shield ward self-VFX from UO art
All checks were successful
ci / Lint & Test (pull_request) Successful in 1m47s
47be2eb9df
Reuse UO effect art via the pack for the two self spells: a white sparkle bloom
(0x3739-0x3743) greened for heal, and a blue ward disc (0x3790-0x379D) cyaned for
the shield. Repacked assets.isoa.

Client: a StationaryEffect (one-shot in-place animation, tinted) alongside the
projectile ActiveEffect, both behind a new IWorldEffect. On Healed the sparkle
blooms on the caster's body (with the green +N); on Shielded the ward disc blooms
at the feet (with the cyan ring for the duration). Falls through harmlessly when
the pack lacks the art.

Closes #80, #84.
marco merged commit b317567065 into main 2026-07-19 12:37:51 +02:00
marco deleted branch feat/spell-self-vfx 2026-07-19 12:37:51 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo!92
No description provided.