From 308f1b6ff9aaca9c060eddff8d487ac9c67b6f25 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Mon, 17 Aug 2026 10:16:01 -0400 Subject: [PATCH] The fireball sets the bar, and the rest of the catalog rises to it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eric's fireball lands as the house style — layered construction, gradient core, glow halo, a directional tail riding rotate="auto" — with its defs scoped per instance via $props.id(), so simultaneous fireballs cannot steal each other's gradients. The rest of the catalog is rebuilt in its image: the waterbolt becomes its cold sibling (spray tail, no turbulence — one heavy filter stack is enough); lightning grows a glowing core and branching forks; the burst blooms through a fire gradient with a shockwave and flying embers; the splash throws a crown of droplets; the shield raises a gradient dome with a rim strike; the pow star flashes white and radiates speed dashes; claws leave tapered gashes; the absorbed card spirals in along a pull ring; the soul is a proper little ghost with eyes, swaying as it rises; fireworks ride colored trails; Chaos catches card slips in its vortex; the pit opens a gradient hole that swallows a faller; ooze splats and flings blobs; the thornbush sheds leaves; slime closes over and pops bubbles; masonry dust goes soft with falling grit. Whiff, tacks, portal, and the sector ghosts keep their simpler forms on purpose — restraint is part of the style. Co-Authored-By: Claude Fable 5 --- packages/web/src/fx-sprites/Absorb.svelte | 32 +++++- packages/web/src/fx-sprites/Bolt.svelte | 60 +++++++++--- packages/web/src/fx-sprites/Burst.svelte | 58 +++++++++-- packages/web/src/fx-sprites/ChaosSwirl.svelte | 34 +++++-- packages/web/src/fx-sprites/Claw.svelte | 27 +++-- packages/web/src/fx-sprites/DustPuff.svelte | 35 +++++-- packages/web/src/fx-sprites/Fireball.svelte | 98 +++++++++++++++++-- packages/web/src/fx-sprites/Fireworks.svelte | 47 +++++++-- packages/web/src/fx-sprites/OozeSlip.svelte | 40 ++++++-- packages/web/src/fx-sprites/PitFall.svelte | 53 +++++++--- packages/web/src/fx-sprites/Pow.svelte | 50 ++++++++-- packages/web/src/fx-sprites/Shield.svelte | 40 ++++++-- packages/web/src/fx-sprites/Shimmer.svelte | 22 ++++- packages/web/src/fx-sprites/SlimeStuck.svelte | 43 ++++++-- packages/web/src/fx-sprites/Soul.svelte | 38 +++++-- packages/web/src/fx-sprites/Splash.svelte | 59 +++++++---- packages/web/src/fx-sprites/Streak.svelte | 39 ++++++-- packages/web/src/fx-sprites/ThornSnap.svelte | 18 +++- packages/web/src/fx-sprites/Waterbolt.svelte | 62 ++++++++++-- 19 files changed, 688 insertions(+), 167 deletions(-) diff --git a/packages/web/src/fx-sprites/Absorb.svelte b/packages/web/src/fx-sprites/Absorb.svelte index 99947fe..579370e 100644 --- a/packages/web/src/fx-sprites/Absorb.svelte +++ b/packages/web/src/fx-sprites/Absorb.svelte @@ -1,22 +1,46 @@ - + + + + + + + + + diff --git a/packages/web/src/fx-sprites/Bolt.svelte b/packages/web/src/fx-sprites/Bolt.svelte index fb29b0a..99ecca1 100644 --- a/packages/web/src/fx-sprites/Bolt.svelte +++ b/packages/web/src/fx-sprites/Bolt.svelte @@ -1,33 +1,69 @@ - + + + + + + + + + + {#each geom.forks as d, i (i)} + + {/each} + + diff --git a/packages/web/src/fx-sprites/ChaosSwirl.svelte b/packages/web/src/fx-sprites/ChaosSwirl.svelte index 4a81a06..076aeba 100644 --- a/packages/web/src/fx-sprites/ChaosSwirl.svelte +++ b/packages/web/src/fx-sprites/ChaosSwirl.svelte @@ -1,29 +1,45 @@ - - - + + + + {#each CARDS as deg (deg)} + + {/each} diff --git a/packages/web/src/fx-sprites/Claw.svelte b/packages/web/src/fx-sprites/Claw.svelte index 3f86da1..ce6c0ba 100644 --- a/packages/web/src/fx-sprites/Claw.svelte +++ b/packages/web/src/fx-sprites/Claw.svelte @@ -1,26 +1,33 @@ + + + + + + + + - - - + + + + diff --git a/packages/web/src/fx-sprites/DustPuff.svelte b/packages/web/src/fx-sprites/DustPuff.svelte index 7e342f8..0c5a1fc 100644 --- a/packages/web/src/fx-sprites/DustPuff.svelte +++ b/packages/web/src/fx-sprites/DustPuff.svelte @@ -1,7 +1,9 @@ - - - + + + + + + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/Fireball.svelte b/packages/web/src/fx-sprites/Fireball.svelte index f4bd0c8..c8a1f43 100644 --- a/packages/web/src/fx-sprites/Fireball.svelte +++ b/packages/web/src/fx-sprites/Fireball.svelte @@ -1,22 +1,102 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/Fireworks.svelte b/packages/web/src/fx-sprites/Fireworks.svelte index f2c3293..141f5af 100644 --- a/packages/web/src/fx-sprites/Fireworks.svelte +++ b/packages/web/src/fx-sprites/Fireworks.svelte @@ -1,26 +1,55 @@ - - {#each [0, 45, 90, 135, 180, 225, 270, 315] as deg (deg)} + + {#each RAYS as deg, i (deg)} + {@const dx = Math.cos((deg * Math.PI) / 180)} + {@const dy = Math.sin((deg * Math.PI) / 180)} + {/each} + diff --git a/packages/web/src/fx-sprites/OozeSlip.svelte b/packages/web/src/fx-sprites/OozeSlip.svelte index bd13bd0..9383ceb 100644 --- a/packages/web/src/fx-sprites/OozeSlip.svelte +++ b/packages/web/src/fx-sprites/OozeSlip.svelte @@ -1,23 +1,45 @@ - + + + + + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/PitFall.svelte b/packages/web/src/fx-sprites/PitFall.svelte index 9499731..799f048 100644 --- a/packages/web/src/fx-sprites/PitFall.svelte +++ b/packages/web/src/fx-sprites/PitFall.svelte @@ -1,29 +1,54 @@ - - - + + + + + + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/Pow.svelte b/packages/web/src/fx-sprites/Pow.svelte index bb23aef..3b64044 100644 --- a/packages/web/src/fx-sprites/Pow.svelte +++ b/packages/web/src/fx-sprites/Pow.svelte @@ -1,25 +1,63 @@ + + + + + + + + - + + +{#each DASHES as deg (deg)} + +{/each} diff --git a/packages/web/src/fx-sprites/Shield.svelte b/packages/web/src/fx-sprites/Shield.svelte index d89aa69..728c233 100644 --- a/packages/web/src/fx-sprites/Shield.svelte +++ b/packages/web/src/fx-sprites/Shield.svelte @@ -1,26 +1,52 @@ - + + + + + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/Shimmer.svelte b/packages/web/src/fx-sprites/Shimmer.svelte index 82c1a3d..44a60df 100644 --- a/packages/web/src/fx-sprites/Shimmer.svelte +++ b/packages/web/src/fx-sprites/Shimmer.svelte @@ -1,15 +1,21 @@ - - + + + + + + + diff --git a/packages/web/src/fx-sprites/SlimeStuck.svelte b/packages/web/src/fx-sprites/SlimeStuck.svelte index 4634843..24a78f5 100644 --- a/packages/web/src/fx-sprites/SlimeStuck.svelte +++ b/packages/web/src/fx-sprites/SlimeStuck.svelte @@ -1,23 +1,48 @@ - + + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/Soul.svelte b/packages/web/src/fx-sprites/Soul.svelte index 1cb2edf..faa38d3 100644 --- a/packages/web/src/fx-sprites/Soul.svelte +++ b/packages/web/src/fx-sprites/Soul.svelte @@ -1,26 +1,44 @@ + + + + + + + + - - - + + + + + + diff --git a/packages/web/src/fx-sprites/Splash.svelte b/packages/web/src/fx-sprites/Splash.svelte index c869694..e7b81ae 100644 --- a/packages/web/src/fx-sprites/Splash.svelte +++ b/packages/web/src/fx-sprites/Splash.svelte @@ -1,33 +1,58 @@ - - - - + + + + + + + + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/Streak.svelte b/packages/web/src/fx-sprites/Streak.svelte index 554bae3..4291726 100644 --- a/packages/web/src/fx-sprites/Streak.svelte +++ b/packages/web/src/fx-sprites/Streak.svelte @@ -1,23 +1,44 @@ - + + + + + + + + + + diff --git a/packages/web/src/fx-sprites/ThornSnap.svelte b/packages/web/src/fx-sprites/ThornSnap.svelte index beee6fa..939202f 100644 --- a/packages/web/src/fx-sprites/ThornSnap.svelte +++ b/packages/web/src/fx-sprites/ThornSnap.svelte @@ -1,26 +1,36 @@ - + + + + diff --git a/packages/web/src/fx-sprites/Waterbolt.svelte b/packages/web/src/fx-sprites/Waterbolt.svelte index a9f7322..60b2881 100644 --- a/packages/web/src/fx-sprites/Waterbolt.svelte +++ b/packages/web/src/fx-sprites/Waterbolt.svelte @@ -1,22 +1,66 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +