Played around with this script for about an hour in the Action Battle System project I was making a while back, and I'm really impressed with the quality of Orange Movement.
Here's why it's a better script than Viktor Sant's Pixel Movement:
- Runs much smoother (average of about 59 FPS for Orange, 54 FPS for Pixel) and with seemingly less jitter
- Events won't get stuck in other events
- Can't accidentally trigger two Action Button events at once
- Less hang-ups with adjusting character movement speed
- Cleaner, more compact, and generally more compatible code
- Much nicer creator
I was actually (very pleasantly) surprised that I couldn't get myself "stuck" in other events with transfer player functions, etc. - maybe this is due to your auto-avoid functions?
There are a couple of "bugs" that I found in the system. First of all, the system for determining which event should be triggered if you're adjacent to two or more events seems to place a large bias on one of them (perhaps the one with the lowest ID or the one that's farthest left). See attached screenshot with two touch events: I'm almost entirely behind Event #2, but Event #1 triggers anyway.
Secondly, enemies were able to knock me into walls and get me stuck in the wall. I'm not 100% sure but I think this is a behavior of your script rather than anything exotic I was doing. There's a lot going on in my project but I checked the Knockback event and it's just simple forced movement while Direction Fix is On. See attached screenshot where I'm a few pixels into the wall and simply cannot move.
A couple other recommendations: It looks like there's no way to set event hitboxes; only player hitboxes. I know you said you didn't miss them, but (unless I'm forgetting something) this makes it impossible to interact with (or be impeded by) most of a large event's model. If there's a 5x5 tile dragon or giant tree that I want to talk to, I'd have to line up with that tiny 32x32 pixel box at the bottom-center in order to get it to turn my way and interact with me, right?
Additionally, you have some setup that is not explained well - I can see by scanning your script that the designer can set notetags on actors to change their hitboxes, dashing sprites, etc., but most users will have no idea what notetags to use, what syntax is required, or what graphic files, if any, need to be modified. I recommend adding some documentation so non-coders will know how to use all of the tools you worked so hard to create.
Haven't gotten to try most of your features and options yet, as this was just a trial run to see if it would work with my game (the answer is a resounding yes), but a lot of them look very cool and I'm looking forward to playing with auto-avoid and falling.
Thanks for your fantastic script! Looking forward to playing with it more when I get a chance, and to seeing more of your stuff!
