- 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/.
77 lines
5.1 KiB
Plaintext
77 lines
5.1 KiB
Plaintext
{
|
|
"anm2ed": 1,
|
|
"info": {"fps": 60},
|
|
"spritesheets": [
|
|
{
|
|
"path": "weapons.png",
|
|
"regions": [
|
|
{"name": "Fist", "crop": [17, 9], "size": [14, 14], "pivot": [0, 7]},
|
|
{"name": "Sword", "crop": [56, 10], "size": [32, 12], "pivot": [4, 5.5]},
|
|
{"name": "Hammer", "crop": [105, 9], "size": [29, 14], "pivot": [4, 7]},
|
|
{"name": "Lance", "crop": [144, 10], "size": [47, 12], "pivot": [6, 6]},
|
|
{"name": "Whip", "crop": [12, 37], "size": [24, 22], "pivot": [7, 3]},
|
|
{"name": "Whip Base", "crop": [64, 42], "size": [15, 12], "pivot": [8, 3]},
|
|
{"name": "Flail", "crop": [105, 38], "size": [30, 19], "pivot": [3, 9]},
|
|
{"name": "Boomerang", "crop": [158, 41], "size": [19, 13], "pivot": [9, 2]},
|
|
{"name": "Grapple", "crop": [10, 73], "size": [27, 13], "pivot": [3, 6.5]},
|
|
{"name": "Grapple Tip", "crop": [20, 73], "size": [17, 13], "pivot": [0, 6.5]},
|
|
{"name": "Grapple Base", "crop": [10, 73], "size": [10, 13], "pivot": [3, 6.5]},
|
|
{"name": "Bow", "crop": [63, 66], "size": [14, 27], "pivot": [2, 13]},
|
|
{"name": "Bow Charge 1", "crop": [103, 66], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Bow Charge 2", "crop": [151, 66], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Bow Charge 3", "crop": [7, 98], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Bow Charge 4", "crop": [55, 98], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Bow Cooldown 1", "crop": [103, 98], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Bow Cooldown 2", "crop": [151, 98], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Bow Cooldown 3", "crop": [7, 130], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Bow Cooldown 4", "crop": [55, 130], "size": [33, 27], "pivot": [8, 13]},
|
|
{"name": "Blaster", "crop": [108, 137], "size": [23, 14], "pivot": [4, 9]},
|
|
{"name": "Uzi", "crop": [156, 135], "size": [24, 18], "pivot": [10, 8]},
|
|
{"name": "Shotgun", "crop": [8, 171], "size": [31, 10], "pivot": [8, 5]},
|
|
{"name": "Bolter", "crop": [59, 169], "size": [25, 14], "pivot": [6, 7]},
|
|
{"name": "Bolter 1", "crop": [106, 169], "size": [28, 14], "pivot": [6, 7]},
|
|
{"name": "Bolter 2", "crop": [154, 169], "size": [28, 14], "pivot": [6, 7]},
|
|
{"name": "Bolter 3", "crop": [10, 201], "size": [28, 14], "pivot": [6, 7]},
|
|
{"name": "Bolter 4", "crop": [58, 201], "size": [28, 14], "pivot": [6, 7]},
|
|
{"name": "Bolter 5", "crop": [106, 201], "size": [28, 14], "pivot": [6, 7]},
|
|
{"name": "Rocket Launcher", "crop": [152, 202], "size": [31, 12], "pivot": [10, 5]},
|
|
{"name": "Grenade Launcher", "crop": [8, 233], "size": [31, 14], "pivot": [12, 7]},
|
|
{"name": "Mine", "crop": [67, 231], "size": [10, 18], "pivot": [1, 11.5]},
|
|
{"name": "Flamethrower", "crop": [104, 231], "size": [31, 17], "pivot": [5, 9]},
|
|
{"name": "Vacuum", "crop": [146, 229], "size": [43, 22], "pivot": [23, 7]},
|
|
{"name": "Grimoire", "crop": [16, 267], "size": [16, 9], "pivot": [8, 2.5]}
|
|
]
|
|
}
|
|
],
|
|
"layers": [
|
|
{"name": "sprite"}
|
|
],
|
|
"defaultAnimation": "Fist",
|
|
"animations": {
|
|
"Fist": {"layers": [{"layer": 0, "frames": [{"region": 0}]}]},
|
|
"Sword": {"layers": [{"layer": 0, "frames": [{"region": 1}]}]},
|
|
"Hammer": {"layers": [{"layer": 0, "frames": [{"region": 2}]}]},
|
|
"Lance": {"layers": [{"layer": 0, "frames": [{"region": 3}]}]},
|
|
"Whip": {"layers": [{"layer": 0, "frames": [{"region": 4}]}]},
|
|
"Whip Base": {"layers": [{"layer": 0, "frames": [{"region": 5}]}]},
|
|
"Flail": {"layers": [{"layer": 0, "frames": [{"region": 6}]}]},
|
|
"Boomerang": {"layers": [{"layer": 0, "frames": [{"region": 7}]}]},
|
|
"Grapple": {"layers": [{"layer": 0, "frames": [{"region": 8}]}]},
|
|
"Grapple Base": {"layers": [{"layer": 0, "frames": [{"region": 10}]}]},
|
|
"Grapple Tip": {"layers": [{"layer": 0, "frames": [{"region": 9}]}]},
|
|
"Bow": {"layers": [{"layer": 0, "frames": [{"region": 12}]}]},
|
|
"Bow Charge": {"length": 4, "loop": false, "layers": [{"layer": 0, "frames": [{"region": 12}, {"region": 13}, {"region": 14}, {"region": 15}]}]},
|
|
"Bow Cooldown": {"length": 4, "loop": false, "layers": [{"layer": 0, "frames": [{"region": 16}, {"region": 17}, {"region": 18}, {"region": 19}]}]},
|
|
"Blaster": {"layers": [{"layer": 0, "frames": [{"region": 20}]}]},
|
|
"Uzi": {"layers": [{"layer": 0, "frames": [{"region": 21}]}]},
|
|
"Shotgun": {"layers": [{"layer": 0, "frames": [{"region": 22}]}]},
|
|
"Bolter": {"length": 25, "layers": [{"layer": 0, "frames": [{"region": 24, "delay": 5}, {"region": 25, "delay": 5}, {"region": 26, "delay": 5}, {"region": 27, "delay": 5}, {"region": 28, "delay": 5}]}]},
|
|
"Rocket Launcher": {"layers": [{"layer": 0, "frames": [{"region": 29}]}]},
|
|
"Grenade Launcher": {"layers": [{"layer": 0, "frames": [{"region": 30}]}]},
|
|
"Mine": {"layers": [{"layer": 0, "frames": [{"region": 31}]}]},
|
|
"Flamethrower": {"layers": [{"layer": 0, "frames": [{"region": 32}]}]},
|
|
"Vacuum": {"layers": [{"layer": 0, "frames": [{"region": 33}]}]},
|
|
"Grimoire": {"layers": [{"layer": 0, "frames": [{"region": 34}]}]}
|
|
}
|
|
}
|