In the engine as it currently exists, we have four status effects registers:
Poison (damage over time)
Regen (healing over time)
Stun (no actions until timer runs out)
Mute (no specific actions until timer runs out)
The old planned top-down status effects from early builds that sometimes wind up being the weapon slot, experience points, etc, when updating or playing ancient games in new versions of the engine:
Code: Select all
Sleep,Stone,Poison,Plague,Blind,Mute,Insane,Slow,Weak,Soft,Curse,Power,Accuracy,Hyper,Shell,Dodge,Fast,Wall,Blessing
Sleep - Stun
Stone - Stun
Poison - Poison
Plague - Poison
Blind - Accuracy reduced until timer runs out
Mute - Mute
Insane - Confusion (or "Intelligence/Willpower reduced until timer runs out?")
Slow - Reduced speed/evasion until timer runs out
Weak - Attack reduced until timer runs out
Soft - Defense reduced until timer runs out
Curse - Willpower reduced? Poison? Poison for MP?
Power - Attack and possibly Intelligence increased until timer runs out
Accuracy - Accuracy increased until timer runs out
Hyper - First thought would be haste, but I'm thinking more likely "hypercharged magic power" while Power would be for physical strength
Shell - Defense of some sort raised until timer runs out
Dodge - Evasion raised until timer runs out
Fast - Speed raised until timer runs out
Wall - Defense of some sort raised until timer runs out
Blessing - Stat temporarily raised raised? Regeneration? MP Regen?
What some of these would do isn't entirely clear. My instincts say Shell should be for physical defense and Wall should be for special defense but most of this is guesswork. Any word from our dev team on what the original plan for these was over two decades ago now?
I'd really like to have some more registers and/or the ability to customize some other effects tied to them while active, such as making it so a Stunned character has an effective Evasion of 0 until they recover (sleeping or petrified people aren't exactly known for their acrobatic dodging prowess). Like having a new RPG default to just those four and an option similar to the combinatorial explosions we get of adding more and more elements, adding a register then editing what it does to a character while active, getting bitsets on the attack definitions like "Can't be used if attacker is [register]" "Fail if target is [register]" and "Reset [register]".
I understand enough to know adding this much new support for status effects would be a huge undertaking because status registers are actually stats, right?
Right now the best way to do Confusion/Insanity is probably to make copies of all your attacks and use the Mute timer and have all attacks do an instead-chain to the copy, which will have "automatically choose target" and opposed target class ("Ally" or "Ally not self" for attacks, "Enemy" for heals and buffs, or maybe just "All" if you're doing a 100% instead chain rather than a 50/50 shot of still having control).
Likewise you can use the Mute status as a temporary "blind" status using such chaining and attacks set to not damage, "Show attack name" "do not display damage" and named the same as your attack missing text string. Easier though is of course just using chaining and "Delay doesn't block further actions" on an attack that damages Accuracy directly for a temporary blind effect, but along with other stat buffs/debuffs that doesn't display as a little icon next to your HP, now does it?
Status effects are really cool and useful.
One thing I'm regularly doing recently is having all damage effects reset the Stun register, because I almost always use that for Sleep. If I had a separate Petrify status I'd make attacks not end that one prematurely.
I also got the idea from Okedoke and the anime Slayers to make it so some types of healing not work if the target is poisoned. In particular, Nathan and Natalie's signature Bubblegum Bandage spell won't work on anyone who is poisoned, and most games I make won't let a sick person eat HP or MP healing food items - just medicine.
Another interesting idea would be using status effects that act as a double edged sword. The On Fire status gives you damage over time like poison, but also gives you a counterattack to enemies' touch attacks and boosts your magic power while active, let's say. Or while Insane, your attack power is higher but you can strike your allies as well as your enemies and the player is under no control of who you target or which of your moves you use.