Status
Meow.... I worked a little on implementing status effects tday.
Basically, I came up with some ideas for character classes and abilities, and my next task is to implement them. To add variety to the abilities and differentiate the functionality of each class, a lot of the abilities inflict status effects. I realized that I would need to get these working or half the abilities wouldn't do anything interesting.
The status effects I used in my notes are all pretty commonplace in RPGs:
- BLIND: Attacks miss more frequently. (Actually, right now, attacks can't miss at all. Maybe there will be no miss chance normally, but you can miss if BLINDED. Or maybe I will add missing later.)
- STUN: Cannot act until it wears off (after a few turns).
- POISON: Take damage at the end of each turn.
- CHARM: Lose control of your actions until it wears off (after a few turns).
There is one more pseudo-effect ANGRY, which I think will only affect enemies. If you attempt to inflict CHARM on an enemy and fail, they will become ANGRY at you and are forced to direct their next attack towards you.
Anyways, I implemented STUN and POISON and did some ground work for the others.
For BLIND, I don't have a "missing" system yet, so I have to think about that some more and decide how missing will work.
For ANGRY, I actually kind of half-implemented it but I will need to tweak it later. Consider this situation: an enemy was going to use a healing technique this turn, but then becomes ANGRY. It does not make sense to retarget the healing technique towards the player. In fact, it probably doesn't make sense to heal at all. The enemy should really drop the healing and switch their move to an attack. However, implementing this would require some kind of system for distinguishing between "attack" and "non-attack" moves, and some logic for deciding which "attack" to switch to if the enemy was planning to do a "non-attack".
For CHARM, there are some big decisions to make. First, if a player character is CHARMED, how is their next action determined? It could be purely random, but I think it's more fun if they always do something beneficial to the enemy, like healing the enemy or hurting another player character. I don't think I'm far enough along with other the systems though to write logic that chooses a "beneficial action". I will probably put in a simple system as a placeholder and work on it later.
The other really big decision is how CHARMED enemies will act. They could use similar logic to make a decision that is "beneficial to the player". Actually, maybe I'll do that. That sounds easier than my other idea.
My other idea was that you take control of the enemy and select their next move as if they were a party member. This would require some code in place across all enemies that produces a menu of available actions they can do. I'm not sure how much extra work this would create for each enemy type. Maybe I can find a generic way to do it that's easy. I'm also not sure how compatible this idea is with my current battle system turn order handling stuff. But it would be cool.
Implementing CHARM sounded too complicated so I didn't try it yet.
I'm sleepy but I think next time, I should implement BLIND and get a placeholder in for CHARM, and then just work off of that.
- ← Previous
It begins - Next →
Battle System Architecture