Some progress made, it needs clean up before GitHub but made state_machine extension for NPC to go into attack, check player and added aim on player itself for magic_bullet, NPC currently check Raycast if something is in way of player, distance, and calculate travel_time with distance(staff on NPC - Marker3D to Player Marker3D / fireball_speed - const 20 ) .
Quite lots of manual code, some ideas how to make it easier?