Hello
@Yanfly, thank you for that clarification, but that's not exactly what I wanted to bring to your attention regarding the Battle Core Engine and states. I wanted to clarify my original post to be sure I wasn't misunderstood as the plugin seems to break a very fundamental practice in RPGs that have buffs.
If this is the intended functionality, this may fall under more of a request. In that case, please forgive my post as I know this isn't the place for requests.
As it is, the Battle Core Engine doesn't allow a user to apply an action-based buff state (critical hit-chance, debuff on attack, etc) to themselves that lasts for 1 action (and subsequently breaks the ability to do so with the vanilla RPG Maker functionality). More importantly, it also creates a major bug with the implementation of "Any Ally" action-end buff-states (either the user or allies will always be off by 1 compared to the tooltip help / intended functionality).
In every instance of a state that has an action-duration (Action Start of Action End) and is applied to the user, it's total count will always be X-1 in terms of effective uses (x being the entered turns). Both Action Start and Action End resolve and are removed prior to the user's next action being calculated and thus benefiting from the state. This does not equally affect other allies that the user buffs.
Two tests I ran using both a self-buffing item and skill that applies a state that adds poison to attack:
- Action Start: 1: State is removed prior to the next attack and thus the action doesn't add poison (results in 0 action turns being evaluated).
- Action End: 1: State is removed immediately after casting as the buff counts as the action.
While these both follow the code's literal interpretation, it does not seem like the intended functionality as it introduces a major bug into any game that uses "Any Ally" buff-states (see note below).
While its possible to use Action End and buffer the action turns by 1 (so Action End: 2 would result in 1 action benefiting from the buff state), this creates 2 major bugs:
- If the game uses the Buff States Core to show the buff counter, it temporarily shows 2 charges on the state after application. This is then immediately reduced to the correct 1 count after the action finishes, but this would definitely seem unpolished in a game.
- If the skill/item is "Any Ally," it results in the state having a +1 turn for any other ally (as the ally wouldn't waste 1 turn applying the buff) while the user would receive the correct buff count.
I hope that this has made more sense! If this is the intended functionality of the plugin, I'll start looking into ways of adjusting this within my own games, but I definitely wanted to bring this to your attention as it has created quite a few bugs for me as I work to create a few buff-items.
Note: In contrast, the "Action End" in Vanilla RPG Maker will still allow a state to affect the action prior to resolving and being removed. If you have a state with Action End: 1, the effect will still affect the next action prior to being removed (thus allowing for single action duration states) and allowing for consistent buff-state durations for both the user and allies.
Thanks for all of your awesome plugins and keep up the amazing work!