proj: drive.google.com/file/d/11yitalb_CWbsxo47kkuHVdNNK_fpXebZ/view
(for some reason I can't share screenshots.)
I'll just copy some of the code.
[every_tick]
----+ System: Every tick
| Local number dist = 0
| Local number ang = 0
--------+ (no conditions)
---------> System: Set ang to angle(SPR_FOLLOWER.X, SPR_FOLLOWER.Y, PLAYER_BASE.X, PLAYER_BASE.Y)
---------> System: Set dist to distance(SPR_FOLLOWER.X, SPR_FOLLOWER.Y, PLAYER_BASE.X, PLAYER_BASE.Y)
--------+ System: dist > 30
---------> SPR_FOLLOWER: Set 8Direction vector X to (dist-30)×cos(ang)×2
---------> SPR_FOLLOWER: Set 8Direction vector Y to (dist-30)×sin(ang)×2
----+ System: Every tick
-----> PLAYER_MASK: Set position to (PLAYER_BASE.X, PLAYER_BASE.Y - 20)
----+ System: Every tick
-----> FOLLOWER_MASK: Set position to (SPR_FOLLOWER.X, SPR_FOLLOWER.Y - 20)
[follower]
----+ Keyboard: ↑ is down
--------+ Keyboard: [X] ↓ is down
---------> FOLLOWER_MASK: Set Walking to True
--------+ Keyboard: [X] ← is down
--------+ Keyboard: [X] → is down
---------> FOLLOWER_MASK: Set Direction to "Up"
----+ Keyboard: ↓ is down
--------+ Keyboard: [X] ↑ is down
---------> FOLLOWER_MASK: Set Walking to True
--------+ Keyboard: [X] ← is down
--------+ Keyboard: [X] → is down
---------> FOLLOWER_MASK: Set Direction to "Down"
----+ Keyboard: → is down
--------+ Keyboard: [X] ← is down
---------> FOLLOWER_MASK: Set Walking to True
--------+ Keyboard: [X] ↓ is down
--------+ Keyboard: [X] ↑ is down
---------> FOLLOWER_MASK: Set Direction to "Right"
----+ Keyboard: ← is down
--------+ Keyboard: [X] → is down
---------> FOLLOWER_MASK: Set Walking to True
--------+ Keyboard: [X] ↓ is down
--------+ Keyboard: [X] ↑ is down
---------> FOLLOWER_MASK: Set Direction to "Left"
----+ PLAYER_MASK: [X] Is Attacking
--------+ PLAYER_MASK: Is Walking
---------> FOLLOWER_MASK: Set animation to "Walk_" & Self.Direction (play from beginning)
--------+ PLAYER_MASK: [X] Is Walking
---------> FOLLOWER_MASK: Set animation to "Idle_" & Self.Direction (play from beginning)
[general]
----+ Keyboard: [X] ↑ is down
----+ Keyboard: [X] ↓ is down
----+ Keyboard: [X] → is down
----+ Keyboard: [X] ← is down
-----> PLAYER_MASK: Set Walking to False
-----> FOLLOWER_MASK: Set Walking to False