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>
This commit is contained in:
shweetandClaude Opus 5.5 committed 2026-11-08 16:43:45 -05:00
1 parent 6003175173
commit 6f112ab231
54 files changed
+1150 -3046

No files matched your search

+23 -10
View File
@@ -6,13 +6,13 @@
"path": "effects.png",
"regions": [
{"name": "Arrow", "crop": [5, 19], "size": [21, 9], "pivot": [10.5, 4.5], "origin": "center"},
{"name": "Bullet", "crop": [43, 19], "size": [9, 9], "pivot": [4.5, 4.5], "origin": "center"},
{"name": "Bullet", "crop": [42, 19], "size": [16, 9], "pivot": [6.5, 4.5]},
{"name": "Chain", "crop": [75, 19], "size": [10, 10], "pivot": [5, 5], "origin": "center"},
{"name": "Flail Ball", "crop": [102, 14], "size": [19, 19], "pivot": [9.5, 9.5], "origin": "center"},
{"name": "Flame 1", "crop": [9, 64], "size": [13, 15], "pivot": [6.5, 9.5]},
{"name": "Flame 2", "crop": [41, 64], "size": [13, 15], "pivot": [6.5, 9.5]},
{"name": "Flame 3", "crop": [73, 64], "size": [13, 15], "pivot": [6.5, 9.5]},
{"name": "Flame 4", "crop": [105, 64], "size": [13, 15], "pivot": [6.5, 9.5]},
{"name": "Flame 1", "crop": [10, 58], "size": [11, 21], "pivot": [5, 16]},
{"name": "Flame 2", "crop": [42, 58], "size": [11, 21], "pivot": [5, 16]},
{"name": "Flame 3", "crop": [74, 58], "size": [11, 21], "pivot": [5, 16]},
{"name": "Flame 4", "crop": [106, 58], "size": [11, 21], "pivot": [5, 16]},
{"name": "Mine", "crop": [7, 115], "size": [17, 10], "pivot": [8.5, 5], "origin": "center"},
{"name": "Rocket", "crop": [40, 115], "size": [15, 9], "pivot": [7.5, 4.5], "origin": "center"},
{"name": "Slash", "crop": [65, 96], "size": [30, 48], "pivot": [15, 24], "origin": "center"},
@@ -20,10 +20,10 @@
{"name": "Whip Tip", "crop": [11, 163], "size": [9, 9], "pivot": [0, 4.5]},
{"name": "Punch", "crop": [34, 161], "size": [26, 14], "pivot": [19, 7]},
{"name": "Uppercut", "crop": [64, 144], "size": [32, 48], "pivot": [17, 22]},
{"name": "Wisp 1", "crop": [4, 193], "size": [24, 15], "pivot": [17, 7.5]},
{"name": "Wisp 2", "crop": [36, 193], "size": [24, 15], "pivot": [17, 7.5]},
{"name": "Wisp 3", "crop": [68, 193], "size": [24, 15], "pivot": [17, 7.5]},
{"name": "Wisp 4", "crop": [100, 193], "size": [24, 15], "pivot": [17, 7.5]}
{"name": "Wisp 1", "crop": [8, 196], "size": [15, 24], "pivot": [7.5, 17]},
{"name": "Wisp 2", "crop": [40, 196], "size": [15, 24], "pivot": [7.5, 17]},
{"name": "Wisp 3", "crop": [72, 196], "size": [15, 24], "pivot": [7.5, 17]},
{"name": "Wisp 4", "crop": [104, 196], "size": [15, 24], "pivot": [7.5, 17]}
]
}
],
@@ -57,6 +57,19 @@
"Whip Tip": {"layers": [{"layer": 0, "frames": [{"region": 12}]}]},
"Punch": {"layers": [{"layer": 0, "frames": [{"region": 13}]}]},
"Uppercut": {"layers": [{"layer": 0, "frames": [{"region": 14}]}]},
"Wisp": {"length": 16, "layers": [{"layer": 0, "frames": [{"region": 15, "delay": 4}, {"region": 16, "delay": 4}, {"region": 17, "delay": 4}, {"region": 18, "delay": 4}]}]}
"Wisp": {
"length": 16,
"layers": [
{
"layer": 0,
"frames": [
{"region": 15, "delay": 4},
{"region": 16, "delay": 4},
{"region": 17, "delay": 4},
{"region": 18, "delay": 4}
]
}
]
}
}
}