Very nice work! I did something similar (and much less complex) with Epic Encounters' last patch, allowing enemies to identify and destroy Ice Walls when they are blocked by them. I wish I still had the time to dive into this topic, because you've given us a solid starting point with this.

Some thoughts:

- One could use FindValidPosition() to detect if the moved item is being moved to an open, pathable space. Though, I don't remember if you can pass an item to this function.

- It is possible to check for items/characters throughout the line of travel that the moved item will traverse, and one could modify how the item is moved based on this feedback. This could be done by iterating items/characters at remote points, offset in increments from the item location to its destination.

- Character movement can fail if it is blocked by other characters.

- Ice Walls can block movement but cannot be moved.

- Weights of items would probably need to be researched/changed to fit into a categorization as you've considered already; as you've said, it's certainly unreasonable to check against numerous roots/stats.

- A less impressive/less lore-friendly (but potentially easier) method of solving this problem would be to script in teleportation for these characters whenever they are stuck. FindValidPosition() would work for this almost entirely on its own.

Last edited by Ameranth; 13/02/17 07:13 PM.