Skip to content

fix(wyvern): fix broken art + add reactions for wyvern and pikachu - #126

Open
TorranceTech wants to merge 4 commits into
ramarivera:mainfrom
TorranceTech:feat/wyvern-pikachu-reactions
Open

fix(wyvern): fix broken art + add reactions for wyvern and pikachu#126
TorranceTech wants to merge 4 commits into
ramarivera:mainfrom
TorranceTech:feat/wyvern-pikachu-reactions

Conversation

@TorranceTech

Copy link
Copy Markdown

Summary

  • Fix wyvern art (server/art.ts): the wyvern had 6 lines per frame (spec requires 5) and frame 1 contained forbidden ANSI escape sequences. Redesigned all three frames to comply with the format spec.
  • Add wyvern reactions (server/reactions.ts): ~14 species-specific reaction pools with an ancient/serpentine voice — regal, cryptic, fire-breath themed. Distinct from the dragon.
  • Add pikachu reactions (server/reactions.ts): ~14 species-specific reaction pools with an electric/energetic voice — sparky, cheek-glow themed, high energy.

Both species were listed in SPECIES and had art, but zero species-specific reactions — they fell back entirely to the generic pool.

Wyvern art preview (3 frames)

Frame 0 (wings spread):    Frame 1 (mid-beat):    Frame 2 (shimmer):
}       {                  }       {               ~       ~
|\^```^/|                  |/v```v\|               |\^```^/|
\ ·' '· /                  \ ·' '· /               \ ·' '· /
  \  ~  /                    /  ~  \                  \  ~~  /
  `--v--'                    `--v--'                  `--v--'~

Test plan

  • bun test — all 246 tests pass
  • Wyvern art: 5 lines per frame, no ANSI codes, {E} placeholder on line 2
  • getReaction test covers every (reason, species, rarity) combo including wyvern and pikachu

Note: adding wyvern/pikachu to SPECIES_REACTIONS doesn't change the species array length, so golden snapshot tests are unaffected.

🤖 Generated with Claude Code

Wyvern art had 6 lines per frame (spec requires exactly 5) and
frame 1 contained forbidden ANSI escape sequences. Redesigned all
three frames to comply with the art format spec: 5 lines, ≤14 display
chars per line, no ANSI codes, {E} eye placeholder on line 2.

Wing beat animation now cycles: spread (^) → mid-beat (v) → shimmer (~).

Signed-off-by: TorranceTech <billy.anderson.it@gmail.com>
Wyvern and pikachu were listed in SPECIES and had art but zero
species-specific reactions — they fell back entirely to the generic
pool. Added ~14 reaction pools per species covering: error, test-fail,
commit, push, merge-conflict, late-night, type-error, lint-fail,
build-fail, all-green, deploy, pet, idle, hatch, large-diff.

Wyvern: ancient/serpentine voice — cryptic, regal, fire-breath themed.
Pikachu: electric/energetic voice — sparky, enthusiastic, cheek-glow themed.

Signed-off-by: TorranceTech <billy.anderson.it@gmail.com>
Previous fix left lines 3-4 at 11 chars while lines 0-2 were 9 chars,
making the body appear wider than the head in the status line. All five
lines are now consistently 9 display chars wide.

Signed-off-by: TorranceTech <billy.anderson.it@gmail.com>
Lines 3-4 now use 1 leading space (8 chars) instead of 2 (9 chars),
giving the body a natural taper below the wingspan. Frame 2 tail
gets a ~swish and double-wave belly for animation variety.

Signed-off-by: TorranceTech <billy.anderson.it@gmail.com>
@ramarivera

Copy link
Copy Markdown
Owner

Hey @TorranceTech — heads up: #114 just merged and it included a wyvern art fix in server/art.ts, which is part of why this PR conflicts. Could you rebase onto main and re-scope this down to whatever #114 didn't cover (the wyvern + pikachu reactions, and any remaining art delta)? CI is approved to run on this PR, so once rebased it should go green and get reviewed quickly.

🤖 Created with the help of AI (Claude Fable 5).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants