Edit: I finally figured what was happening with Guard. It was not exactly a bug, but instead a consequence of the different battle format: Guard lasts for zero turns, meaning it is removed at the end of the turn that it is used... the difference was that in default RM combat, a "turn" contains all the attacks of all battlers before its end. Effectively, status effects in default RM combat "lasts 1 turn longer" (this isn't exactly what happens, but it's a close approximate), than in my system... or rather, they last 1 turn less in my system.
To make up for this, I've re-adjusted status effects to have a lasting duration increased by +1 turn, since the first turn of positive status effects is almost irrelevant in my system. This change does affect the total Healing or Damage that a Regen/Poison spell with limited turn duration would do (by increasing total ticks by one), so adjust their values accordingly if you think they might become a problem; and it does mean that Stuns and such will make the target lose N+1 actions, so if you want to have a single turn stun, you'd better set it to end at the end of Action instead of turn.
As a side note, if you use the parameter End-of-Turn Effects = 1 (default is 0), then I do not recommend that you use the default Guard. It doesn't make much sense together with that option (though it does work, it's just my personal opinion here).
Scratch all of that. Just made a large overhaul of how I'm handling status effects. It does mean that people that previously balanced their status duration around my plugin might need to re-balance it, but I think that the fact that the system make much more sense and is much more predictable now more than makes up for it. I've posted a detailed reasoning on my blog, but for the TL;DR:
From now on:
- If you want a State to count down per action taken, you set it up as Action End.
- If you want a State to count down per virtual turn, you set it up as Turn End.
So, you want to have a
Stun that makes an actor loses exactly
1 action? Set it to
Action End and duration to
1~1.
Do you want to have a
Poison that ticks down somewhere from
5 to 10 times? Set it to
Turn End and duration to
5~10.
Do you want to have a
Guard effect that lasts until your
next action? Set it to
Action End and duration to
2~2.
I believe this system makes a lot more sense than it made previously.
Basically, my fallacy was thinking that if I had to ask people to change the default values of Guard, that would automatically be a clunky workaround. But the thing is, the entire turn structure changed, so it makes sense that the default values wouldn't be appropriate anymore. Trying to force changes that would make the default values of Guard work properly would just mean that everything else regarding States would behave in weird ways.
By the way, right now all regeneration and poison damage is being dealt at Turn Timer. I'll provide a parameter to change it to Action End, for those that might prefer it. Such a parameter already existed before, but it needed to go during my overhaul here and I won't have time to code it again right now (but I'll try to do it next night).
Please let me know if something isn't behaving properly after those changes. I'll be able to take a look and try to fix issues in the morning.