For fixing Occ's and TB's targeting issues, could you have a "Levitation Override". For the animation, use a certain levitate value, but when the ... attack engine processes attacks, have it use 0 or something like that. That should fix these issues that Occ and TB seem to have, maybe?
Also, AlwaysRecheckTarget is set to false for Demon Assassin, Unclean Beast, Oak, Sedna, and Lord Erebus. These are the melee demigods (excluding Rook).
This is probably the reason why Rook cannot attack a demigod that is moving away from him, no matter how slow they are (he is faster or same speed). Currently, he is stuck using his arrows.
To reproduce this, get Wyrmskin Gloves, Poison Dagger, Boots of Speed and attack a slow Demigod like Queen. Even if both snares proc and Rook is obviously faster than the target, he will not "bitch slap" them. Only use his arrows.
Also, maybe you could fix the ranged-character chase targeting. Currently, this is how a ranged target chases an enemy moving away from them:
- Stand still and wait until they are at max range
- Being to pursue and maintain max range
This is fine and dandy as long as both demigods are the same speeds, or the ranged character is faster. However, when the enemy is faster than the ranged character, this ends up sometimes letting them get away since the few seconds they aren't chasing instead of following lets them get out of range very easily. Basically, if the enemy is faster than the ranged character, the ranged character should approach the enemy to maintain auto-attack range as long as possible.
However, it is VERY IMPORTANT that this only works if they are moving away from the ranged demigod. You would not want a ranged demigod to walk towards a faster demigod that is immobile or moving towards the ranged character. They should hold their ground as they do now. To ensure this behavior exists, you'd probably want to do a distance check. If the target's speed is greater AND the distance they were previously was larger than it was the last attack (they are moving away), then approach. Otherwise, hold ground.
You'd want to make sure that you don't use a very very old "last autoattack" however.
If this is too complicated, or would cause other bugs/targeting issues to occur, I would ignore this. It's a much lower priority issue than other things.