Auto-attack: next target, melee/ranged rule after arts; chain range = cast range
- autoattack: when the target dies, the nearest enemy within close range (contact distance + a step) takes over; after an art the hero auto-attacks if the art was melee (walked up / cast close by), or ranged with a ranged weapon, or ranged with an enemy already in melee range; measured action codes and weapon classes in game/engine/orders.h - chainlightning: jumps reach Blitzschlag's cast range (20 ray segments of 30, the art code's hit check) via the shared NearestHostile search - guards: burning bone render hook had the wrong signature (device plus a 4x4 matrix by value, ret 0x44) and corrupted the stack when fire arrows hit - crash reports follow the ebp chain before the raw stack scan Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5338527b49
commit
16c2844400
8 files changed
+275
-60
No files matched your search
@@ -55,3 +55,15 @@ ends (a lone enemy is hit once). Two enemies: it bounces between them.
|
||||
|
||||
First version (bolts copied for every jump, not using the game's chain)
|
||||
replaced the same day: it doubled the jumps.
|
||||
|
||||
## Jump range = cast range (2026-10-16)
|
||||
|
||||
User request: a jump reaches as far as a cast. Blitzschlag's hit check is in
|
||||
the art code (cCreature art switch `0x5222c0`, case 0x21): the ray from the
|
||||
caster towards the target is laid out in segments of 30, at most 20, each on
|
||||
passable ground (`0x636b60`); the bolt is created on the target only if the
|
||||
ray reaches it, otherwise the visible ray just stops. So the cast range is
|
||||
20 × 30 = 600. `CastRange()` in `chainlightning.cpp` returns it for every jump
|
||||
(also the first hop of extra chains), instead of the game's jump search radius
|
||||
(squared 100000, about 316). It is the one place to make the range dynamic
|
||||
later. Jumps do not check the ground in between.
|
||||
Reference in new issue
Block a user