Movement in my game is simply topdown based on this tutorial:
On top of that I also use KinematicBody2D look_at to always look at mouse position. I can send you the code if you prefer, but it's basically this plus some more uncommented mess bound to the other game controls.