Files
smack-a-brother/resources/gfx/player.anm2
T
shweetandClaude Opus 5.5 6f112ab231 HUD pass, weapon and trinket rework, and font arrows
HUD:
- Hotbars fit a quarter of the screen, dropping to small then tiny slots
  (thinner outlines when tiny), with cooldown bars matching their size.
- HUD elements are drawn on their own layer and composited at one
  opacity: hotbar slots are see-through until hovered, the rest fade
  while hovered.
- Rival windows fit the right column in at most two rows, shrinking
  icons then font, then dropping icons for name, health and ping bars.
- Tooltips number equipped items' slots and say Recoil for weapons that
  only push back. Previews use arrows, spread uses degrees.
- Crosshair fills in and shakes with charge, and weapons shake after
  firing until their cooldown ends. DPS and speed meters off by default.

Gameplay:
- Dual Wield stacks: each copy fires another recently held weapon from
  a fanned off-hand, at its own level's cut.
- Flamethrower: no slowing, smaller fireball with some recoil, and an
  airblast that knocks others away.
- Iron Weights slam on any landing faster than a plain fall (platforms
  too), stacking radius and damage, and speeding fast falls.
- Stuck arrows are one-way ledges until they fade, matching their
  (slightly larger) hit size. Attacks now collide with slopes.
- Halved Tesla Coil, Recoil Coil, Diazepam, Shock Absorber, Feather and
  screenshake values.

Art and tools:
- Weapon and trinket icons merged into one sheet each (normal, small,
  tiny), cells in catalog order. Grimoire wisps stand upright.
- Fonts gain the degree sign and four arrows, decoded from UTF-8.
- Menu fighter preview walks at quarter speed.
- Unequip from either catalog tab by right click or gamepad.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 16:43:45 -05:00

104 lines
3.8 KiB
Plaintext

{
"anm2ed": 1,
"info": {},
"spritesheets": [
{
"path": "player.png",
"regions": [
{"name": "Idle", "size": [16, 32], "pivot": [8, 32]},
{"name": "Walk 1", "crop": [16, 0], "size": [16, 32], "pivot": [8, 32]},
{"name": "Walk 2", "crop": [32, 0], "size": [16, 32], "pivot": [8, 32]},
{"name": "Walk 3", "crop": [48, 0], "size": [16, 32], "pivot": [8, 32]},
{"name": "Walk 4", "crop": [64, 0], "size": [16, 32], "pivot": [8, 32]},
{"name": "Jump", "crop": [0, 32], "size": [16, 32], "pivot": [8, 32]},
{"name": "Fall", "crop": [16, 32], "size": [16, 32], "pivot": [8, 32]},
{"name": "Slide", "crop": [32, 32], "size": [16, 32], "pivot": [8, 32]},
{"name": "Kick", "crop": [48, 32], "size": [16, 32], "pivot": [8, 32]},
{"name": "Hurt", "crop": [64, 32], "size": [16, 32], "pivot": [8, 20]},
{"name": "Crouch", "crop": [0, 64], "size": [16, 32], "pivot": [8, 32]},
{"name": "Roll", "crop": [0, 64], "size": [16, 32], "pivot": [8, 22]},
{"name": "Crawl 1", "crop": [16, 64], "size": [16, 32], "pivot": [8, 32]},
{"name": "Crawl 2", "crop": [32, 64], "size": [16, 32], "pivot": [8, 32]},
{"name": "Crawl 3", "crop": [48, 64], "size": [16, 32], "pivot": [8, 32]},
{"name": "Crawl 4", "crop": [64, 64], "size": [16, 32], "pivot": [8, 32]}
]
}
],
"layers": [
{"name": "sprite"}
],
"defaultAnimation": "Idle",
"animations": {
"Idle": {"layers": [{"layer": 0, "frames": [{"region": 0}]}]},
"Walk Left": {
"length": 4,
"layers": [
{
"layer": 0,
"frames": [
{"region": 1, "interpolation": "linear"},
{"region": 2, "interpolation": "linear"},
{"region": 3, "interpolation": "linear"},
{"region": 4, "interpolation": "linear"}
]
}
]
},
"Walk Right": {
"length": 4,
"layers": [
{
"layer": 0,
"frames": [
{"region": 1, "scale": [-100, 100], "interpolation": "linear"},
{"region": 2, "scale": [-100, 100], "interpolation": "linear"},
{"region": 3, "scale": [-100, 100], "interpolation": "linear"},
{"region": 4, "scale": [-100, 100], "interpolation": "linear"}
]
}
]
},
"Preview": {
"length": 16,
"layers": [
{
"layer": 0,
"frames": [
{"region": 1, "scale": [-100, 100], "delay": 4, "interpolation": "linear"},
{"region": 2, "scale": [-100, 100], "delay": 4, "interpolation": "linear"},
{"region": 3, "scale": [-100, 100], "delay": 4, "interpolation": "linear"},
{"region": 4, "scale": [-100, 100], "delay": 4, "interpolation": "linear"}
]
}
]
},
"Jump": {"layers": [{"layer": 0, "frames": [{"region": 5}]}]},
"Fall": {"layers": [{"layer": 0, "frames": [{"region": 6}]}]},
"Slide": {"layers": [{"layer": 0, "frames": [{"region": 7}]}]},
"Kick": {"layers": [{"layer": 0, "frames": [{"region": 8}]}]},
"Hurt": {"layers": [{"layer": 0, "frames": [{"region": 9}]}]},
"Crouch": {"layers": [{"layer": 0, "frames": [{"region": 10}]}]},
"Roll": {"layers": [{"layer": 0, "frames": [{"region": 11}]}]},
"Crawl Left": {
"length": 4,
"layers": [
{"layer": 0, "frames": [{"region": 12}, {"region": 13}, {"region": 14}, {"region": 15}]}
]
},
"Crawl Right": {
"length": 4,
"layers": [
{
"layer": 0,
"frames": [
{"region": 12, "scale": [-100, 100]},
{"region": 13, "scale": [-100, 100]},
{"region": 14, "scale": [-100, 100]},
{"region": 15, "scale": [-100, 100]}
]
}
]
}
}
}