Files
smack-a-brother/resources/gfx/weapon_icons.anm2
T
shweet e9d8cac926 Weapons built from traits, fashion, Hourglass, About tab, and Ithaca
- Every attack is now assembled from traits on its definition instead
  of per-weapon code: an anchor and path (thrusts, out-and-back, arcs),
  shared flight physics (gravity, drag, acceleration, homing, and one
  wall response: end, burst, stick, crawl, bounce, stop, pass, return,
  latch), and flags like bouncy, drifting, tethered, orbiting, instant
  and arming. Melee are projectiles too.
- Shots have a lifetime and a fade (when damage bottoms out). Range is
  speed times lifetime. Ricochets and the Vacuum wind lifetime back.
- The Vacuum pulls anyone's shots, and its airblast flips them out
  along the aim, claiming enemies' (fading into your colour).
- New trinket: Hourglass, longer projectile lifetime and range. Ropes
  and chains lengthen with it and the Accelerator.
- Fashion: 23 items worn on the head, face or torso, chosen in Profile.
- Flamethrower flames hit continuously, the whip coils and sweeps,
  bouncing shots roll over ramps, and Ricochet relights grenade fuses.
- Profile tab, colour tooltips, option hints on every setting, an
  About tab with credits and links, and the Ithaca font.
- Loadouts lock once readied, tomatoes clear with the match, and the
  round-over pause is 4 seconds.
- CC0 license. Tools and CLAUDE.md are no longer tracked, and the web
  shell moves to web/.
2026-11-10 15:27:12 -05:00

132 lines
9.3 KiB
Plaintext

{
"anm2ed": 1,
"info": {"fps": 60},
"spritesheets": [
{
"path": "weapon_icons.png",
"regions": [
{"name": "Fist", "size": [24, 24], "origin": "center"},
{"name": "Sword", "crop": [24, 0], "size": [24, 24], "origin": "center"},
{"name": "Hammer", "crop": [48, 0], "size": [24, 24], "origin": "center"},
{"name": "Lance", "crop": [72, 0], "size": [24, 24], "origin": "center"},
{"name": "Whip", "crop": [96, 0], "size": [24, 24], "origin": "center"},
{"name": "Flail", "crop": [0, 24], "size": [24, 24], "origin": "center"},
{"name": "Boomerang", "crop": [24, 24], "size": [24, 24], "origin": "center"},
{"name": "Grapple", "crop": [48, 24], "size": [24, 24], "origin": "center"},
{"name": "Bow", "crop": [72, 24], "size": [24, 24], "origin": "center"},
{"name": "Blaster", "crop": [96, 24], "size": [24, 24], "origin": "center"},
{"name": "Uzi", "crop": [0, 48], "size": [24, 24], "origin": "center"},
{"name": "Shotgun", "crop": [24, 48], "size": [24, 24], "origin": "center"},
{"name": "Bolter", "crop": [48, 48], "size": [24, 24], "origin": "center"},
{"name": "Rocket Launcher", "crop": [72, 48], "size": [24, 24], "origin": "center"},
{"name": "Grenade Launcher", "crop": [96, 48], "size": [24, 24], "origin": "center"},
{"name": "Mine", "crop": [0, 72], "size": [24, 24], "origin": "center"},
{"name": "Flamethrower", "crop": [24, 72], "size": [24, 24], "origin": "center"},
{"name": "Vacuum", "crop": [48, 72], "size": [24, 24], "origin": "center"},
{"name": "Grimoire", "crop": [72, 72], "size": [24, 24], "origin": "center"},
{"name": "Fist Small", "crop": [0, 96], "size": [16, 16], "origin": "center"},
{"name": "Sword Small", "crop": [16, 96], "size": [16, 16], "origin": "center"},
{"name": "Hammer Small", "crop": [32, 96], "size": [16, 16], "origin": "center"},
{"name": "Lance Small", "crop": [48, 96], "size": [16, 16], "origin": "center"},
{"name": "Whip Small", "crop": [64, 96], "size": [16, 16], "origin": "center"},
{"name": "Flail Small", "crop": [0, 112], "size": [16, 16], "origin": "center"},
{"name": "Boomerang Small", "crop": [16, 112], "size": [16, 16], "origin": "center"},
{"name": "Grapple Small", "crop": [32, 112], "size": [16, 16], "origin": "center"},
{"name": "Bow Small", "crop": [48, 112], "size": [16, 16], "origin": "center"},
{"name": "Blaster Small", "crop": [64, 112], "size": [16, 16], "origin": "center"},
{"name": "Uzi Small", "crop": [0, 128], "size": [16, 16], "origin": "center"},
{"name": "Shotgun Small", "crop": [16, 128], "size": [16, 16], "origin": "center"},
{"name": "Bolter Small", "crop": [32, 128], "size": [16, 16], "origin": "center"},
{"name": "Rocket Launcher Small", "crop": [48, 128], "size": [16, 16], "origin": "center"},
{"name": "Grenade Launcher Small", "crop": [64, 128], "size": [16, 16], "origin": "center"},
{"name": "Mine Small", "crop": [0, 144], "size": [16, 16], "origin": "center"},
{"name": "Flamethrower Small", "crop": [16, 144], "size": [16, 16], "origin": "center"},
{"name": "Vacuum Small", "crop": [32, 144], "size": [16, 16], "origin": "center"},
{"name": "Grimoire Small", "crop": [48, 144], "size": [16, 16], "origin": "center"},
{"name": "Fist Tiny", "crop": [0, 160], "size": [8, 8], "origin": "center"},
{"name": "Sword Tiny", "crop": [8, 160], "size": [8, 8], "origin": "center"},
{"name": "Hammer Tiny", "crop": [16, 160], "size": [8, 8], "origin": "center"},
{"name": "Lance Tiny", "crop": [24, 160], "size": [8, 8], "origin": "center"},
{"name": "Whip Tiny", "crop": [32, 160], "size": [8, 8], "origin": "center"},
{"name": "Flail Tiny", "crop": [0, 168], "size": [8, 8], "origin": "center"},
{"name": "Boomerang Tiny", "crop": [8, 168], "size": [8, 8], "origin": "center"},
{"name": "Grapple Tiny", "crop": [16, 168], "size": [8, 8], "origin": "center"},
{"name": "Bow Tiny", "crop": [24, 168], "size": [8, 8], "origin": "center"},
{"name": "Blaster Tiny", "crop": [32, 168], "size": [8, 8], "origin": "center"},
{"name": "Uzi Tiny", "crop": [0, 176], "size": [8, 8], "origin": "center"},
{"name": "Shotgun Tiny", "crop": [8, 176], "size": [8, 8], "origin": "center"},
{"name": "Bolter Tiny", "crop": [16, 176], "size": [8, 8], "origin": "center"},
{"name": "Rocket Launcher Tiny", "crop": [24, 176], "size": [8, 8], "origin": "center"},
{"name": "Grenade Launcher Tiny", "crop": [32, 176], "size": [8, 8], "origin": "center"},
{"name": "Mine Tiny", "crop": [0, 184], "size": [8, 8], "origin": "center"},
{"name": "Flamethrower Tiny", "crop": [8, 184], "size": [8, 8], "origin": "center"},
{"name": "Vacuum Tiny", "crop": [16, 184], "size": [8, 8], "origin": "center"},
{"name": "Grimoire Tiny", "crop": [24, 184], "size": [8, 8], "origin": "center"}
]
}
],
"layers": [
{"name": "sprite"}
],
"defaultAnimation": "Fist",
"animations": {
"Fist": {"layers": [{"layer": 0, "frames": [{"region": 0}]}]},
"Fist Small": {"layers": [{"layer": 0, "frames": [{"region": 19}]}]},
"Fist Tiny": {"layers": [{"layer": 0, "frames": [{"region": 38}]}]},
"Sword": {"layers": [{"layer": 0, "frames": [{"region": 1}]}]},
"Sword Small": {"layers": [{"layer": 0, "frames": [{"region": 20}]}]},
"Sword Tiny": {"layers": [{"layer": 0, "frames": [{"region": 39}]}]},
"Hammer": {"layers": [{"layer": 0, "frames": [{"region": 2}]}]},
"Hammer Small": {"layers": [{"layer": 0, "frames": [{"region": 21}]}]},
"Hammer Tiny": {"layers": [{"layer": 0, "frames": [{"region": 40}]}]},
"Lance": {"layers": [{"layer": 0, "frames": [{"region": 3}]}]},
"Lance Small": {"layers": [{"layer": 0, "frames": [{"region": 22}]}]},
"Lance Tiny": {"layers": [{"layer": 0, "frames": [{"region": 41}]}]},
"Whip": {"layers": [{"layer": 0, "frames": [{"region": 4}]}]},
"Whip Small": {"layers": [{"layer": 0, "frames": [{"region": 23}]}]},
"Whip Tiny": {"layers": [{"layer": 0, "frames": [{"region": 42}]}]},
"Flail": {"layers": [{"layer": 0, "frames": [{"region": 5}]}]},
"Flail Small": {"layers": [{"layer": 0, "frames": [{"region": 24}]}]},
"Flail Tiny": {"layers": [{"layer": 0, "frames": [{"region": 43}]}]},
"Boomerang": {"layers": [{"layer": 0, "frames": [{"region": 6}]}]},
"Boomerang Small": {"layers": [{"layer": 0, "frames": [{"region": 25}]}]},
"Boomerang Tiny": {"layers": [{"layer": 0, "frames": [{"region": 44}]}]},
"Grapple": {"layers": [{"layer": 0, "frames": [{"region": 7}]}]},
"Grapple Small": {"layers": [{"layer": 0, "frames": [{"region": 26}]}]},
"Grapple Tiny": {"layers": [{"layer": 0, "frames": [{"region": 45}]}]},
"Bow": {"layers": [{"layer": 0, "frames": [{"region": 8}]}]},
"Bow Small": {"layers": [{"layer": 0, "frames": [{"region": 27}]}]},
"Bow Tiny": {"layers": [{"layer": 0, "frames": [{"region": 46}]}]},
"Blaster": {"layers": [{"layer": 0, "frames": [{"region": 9}]}]},
"Blaster Small": {"layers": [{"layer": 0, "frames": [{"region": 28}]}]},
"Blaster Tiny": {"layers": [{"layer": 0, "frames": [{"region": 47}]}]},
"Uzi": {"layers": [{"layer": 0, "frames": [{"region": 10}]}]},
"Uzi Small": {"layers": [{"layer": 0, "frames": [{"region": 29}]}]},
"Uzi Tiny": {"layers": [{"layer": 0, "frames": [{"region": 48}]}]},
"Shotgun": {"layers": [{"layer": 0, "frames": [{"region": 11}]}]},
"Shotgun Small": {"layers": [{"layer": 0, "frames": [{"region": 30}]}]},
"Shotgun Tiny": {"layers": [{"layer": 0, "frames": [{"region": 49}]}]},
"Bolter": {"layers": [{"layer": 0, "frames": [{"region": 12}]}]},
"Bolter Small": {"layers": [{"layer": 0, "frames": [{"region": 31}]}]},
"Bolter Tiny": {"layers": [{"layer": 0, "frames": [{"region": 50}]}]},
"Rocket Launcher": {"layers": [{"layer": 0, "frames": [{"region": 13}]}]},
"Rocket Launcher Small": {"layers": [{"layer": 0, "frames": [{"region": 32}]}]},
"Rocket Launcher Tiny": {"layers": [{"layer": 0, "frames": [{"region": 51}]}]},
"Grenade Launcher": {"layers": [{"layer": 0, "frames": [{"region": 14}]}]},
"Grenade Launcher Small": {"layers": [{"layer": 0, "frames": [{"region": 33}]}]},
"Grenade Launcher Tiny": {"layers": [{"layer": 0, "frames": [{"region": 52}]}]},
"Mine": {"layers": [{"layer": 0, "frames": [{"region": 15}]}]},
"Mine Small": {"layers": [{"layer": 0, "frames": [{"region": 34}]}]},
"Mine Tiny": {"layers": [{"layer": 0, "frames": [{"region": 53}]}]},
"Flamethrower": {"layers": [{"layer": 0, "frames": [{"region": 16}]}]},
"Flamethrower Small": {"layers": [{"layer": 0, "frames": [{"region": 35}]}]},
"Flamethrower Tiny": {"layers": [{"layer": 0, "frames": [{"region": 54}]}]},
"Vacuum": {"layers": [{"layer": 0, "frames": [{"region": 17}]}]},
"Vacuum Small": {"layers": [{"layer": 0, "frames": [{"region": 36}]}]},
"Vacuum Tiny": {"layers": [{"layer": 0, "frames": [{"region": 55}]}]},
"Grimoire": {"layers": [{"layer": 0, "frames": [{"region": 18}]}]},
"Grimoire Small": {"layers": [{"layer": 0, "frames": [{"region": 37}]}]},
"Grimoire Tiny": {"layers": [{"layer": 0, "frames": [{"region": 56}]}]}
}
}