I've been working on the system for status effects in battle. But before I fully implement a system, I need to know what types of effects we plan to have in the game. This may have a fundamental effect on the system we use for status effects. (I actually am pretty sure how I want to do the system, but I want to get some input before I start talking about that.)

My thoughts at the moment:

Most (common) status effects will be attribute modifiers. This will be very easy to implement and covers protection, slow/haste attack up/down, etc.

There will be some kind of stop/paralysis effect. This will probably simply be a timed effect that prevents an actor's timer from advancing.

on anything called "Poison." Poison is the most boring status effect ever. I would like to implement some kind of effect that gradually saps or replenishes HP, and it should be effective enough to be necessary/important at some point in the game. But I'm thinking maybe a tradeoff thing, where you can cast a "regen"-type skill that regenerates HP but slows down your character a bit, and a corresponding skill that saps HP but makes a character incredibly fast. These skills would have to be cheap, and there would have to be bosses that would be very difficult to beat without these skills.

Otherwise, I'm looking for suggestions on new and exciting skills. Preferably, I'd like to avoid rehashing the array of status ailments found in standard RPG's. Please feel free to put out ideas, even if they seem a bit farfetched, silly, or difficult to implement. I really want this part of the game to have at least some unique elements.

rujasu wrote::disapprove: on anything called "Poison." Poison is the most boring status effect ever. I would like to implement some kind of effect that gradually saps or replenishes HP, and it should be effective enough to be necessary/important at some point in the game. But I'm thinking maybe a tradeoff thing, where you can cast a "regen"-type skill that regenerates HP but slows down your character a bit, and a corresponding skill that saps HP but makes a character incredibly fast. These skills would have to be cheap, and there would have to be bosses that would be very difficult to beat without these skills.

Little bit from IRC:

[10:45pm] rujasu: Jetryl: I suppose I should clarify. I'm not opposed to the concept of poison itself, but the "Final Fantasy poison" where someone turns purple and loses HP gradually.
[10:45pm] Jetryl: *nods*
[10:45pm] rujasu: I just think it's a very tired battle mechanic.

...

[10:50pm] Jetryl: rujasu: the fun thing with poison is it could have a whole swath of effects - confusion, paralysis, physical clumsiness, slowing, etc.

[10:55pm] rujasu: Yeah. We don't have to go that route so much... but I think "poison" should just refer to status effects caused by enemies like scorpions or snakes that you'd expect to be able to poison you. Sometimes it has the HP drain, sometimes it doesn't... depends on the creature.
[10:55pm] rujasu: Make sense?
[10:55pm] Jetryl: rujasu: I agree completely.

I think the fact that we have status effects with an intensity level will make poison more interesting. Poison in RPGs lately doesn't seem to be anything more than a minor annoyance (ie, -0.1% of your HP every turn, big deal). But we can have poison that can take 1%, 3%, 7%, and 10% of HP per turn, making it really important to heal quickly the more severe it is.

One thing that I don't want us to have are multiple variations of "no action" status effects. Ie, paralyze, stop, petrified, etc. They are just too damn similar to each other and I find it pretty annoying. The same goes for all status effects: lets not have any effects which are only minor variations of another effect.

I would definitely like to see us implement some unique status effects that most people will have never seen before. I think the most important thing we need to keep in mind with status effects is that their presence is meant to increase the strategic element of battles, and not to simply annoy the player.

Now as for the main purpose of this thread, I don't think any list of status effects should affect your design rujasu. Technically speaking, we want to be able to implement *any* type of status effect that we dream of. A system which doesn't allow certain types of effects is flawed, IMHO. Status effects are scripted, not hard-coded. But for a general list of what most status effects should be able to do:

- Temporarily modify the stats (strength, agility, etc.) of an actor
- Visual changes to the screen (sprite visuals, background, etc)
- Audio playback
- Continued/dynamic modification (ie, show a grayed out character who is "petrified" slowly revert back to their natural color as the status fades over time)

Actually I have come to this point while writing the design document and decide to stop there as I was at the physical and metaphysical part and thought of something fun which can be brought back to something even more fun.

Basically it come to down this: During and outside battles the combatants are able to align themselves which is a technique I will call boosting. You can make yourself highly poison immune and even being able to ignore a few levels of poison. Of course everytime you're poisoned the immunity will degraded. This of course can also be done with meta-physical and physical and certain attacks modify this. These aligments will cary over from battles.

Not only will this make this battles more tactical but it will allow the player to think ahead OUTSIDE the battle field it self.

For example:

Status effects: You know that the next enemy is a snake king so you let every character drink anti-poison. You know that the battle is long but this will allow you to resist poison a few times before you actually getting poisoned.

Physical elements: If you have constantly been playing with a piercing weapon and you then switch to a blunt weapon (a smashing weapon) you will need to get familiar and as you do the other physical elements will lower (meaning you lose familirty with a piercing weapon). This will mean that switching to a stronger weapon might not be the best choice and it would require to find out if the next boss is good against piercing or smashing weapons. He can still switch at any time, but the question is if it would be the best choice.

metaphysical elements: They change the most and can even be changed by outside influences. This will give the player a huge adventage over enemy parties that are disciplined in only one metaphysical element. During the battle they can reallign themselves quickly and as they reallign themselves they can even become stronger

I think this would be a rather unique feature and it will give us an opening to use story driven elements (like a poison lake) to play part in the story. I will try to work this out a bit further but the above is the basic idea.

I would like to revive this thread and shift the focus of the discussion a little bit. I'm working on shop mode right now and one of the things it does is display elemental and status attributes of weapons/armor. There are a few questions we need to have a rough answer for in order for me to do my current work. Those questions are the following.

1) How many status effects do we want to have in the game?

2) To get an answer for (1), we'll need to also know what are the consequences/benefits of the status effects? In other words, what do the status effects do?

3) Can/should status effect intensities go "both ways" like elemental effects do? (Consider for example the cliche poison effect which drains HP slowly over time. Would the other side of the spectrum actually heal? Does this make any sense?)

4) Should status effect properties even be part of our weapons and armor in the game at all? Would a piece of armor with positive poison intensity status make the character more resistant to poison while a helmet with negative poison status makes the character more susceptible to poisoning?

My own initial thoughts:

1) I think we should shoot for a range between 12 and 20 or so. Just a rough guess.

2) Well first I think we should have an obvious set of "stat boosters" that increase/decrease an actor's stat. There's 8 status effects right there (HP, SP, strength, vigor, fortitude, protection, agility, evade). Then we can have a mixed bag of other statuses like stone, berserk, blind, etc. Maybe a total of 8 in the mixed bag for a total of 16 effects?

3) I think the answer to this question is both yes and no. For the stat booster effects I mentioned, of course it makes sense for them to go both ways (can either positively or negatively affect a stat). But the other effects like stone...what is the inverse side of having a stone status effect? There's no good answer here. So yes, I think some effects should be only negative, perhaps others are only positive, and then there are effects which can be both positive and negative.

4) I'm conflicted about this one. Lets use an example to think about this. Lets say we have a breast plates with status effects of "pos stone", "neg blind", and "neg HP". What would that do? Does that protect against stone status, is weak against blind status (more likely to become blind), and is weak against negative HP status? Or do the "stat boost" effects cause the character to start in that state, ie with a negative HP status already inflicted? And would the armor have any effect on a positive HP status being applied? It seems confusing.

Lets think of a sword now (and name it "Mixed Blessing) with a high attack rating, neg blind status, and pos HP status. So would this cause a target to possibly become blinded and also possibly be given an HP boost (HP increase over time)? Or does this mean the player is given the pos HP status boost when the battle begins? You might be asking why would we want to put a pos HP status on a weapon. Well as I said the weapon is powerful, but has the unfortunate side effect of healing foes occasionally. Might make the game more interesting if we do things like that and the player doesn't always have an "obvious best choice" for all available weapons and armor.

Also lets not forget that weapons and armor have sockets that shards can be put into to customize them. This could possibly offer stat bonuses (not in the form of status effects, but on a permanent basis), elemental properties, and yes perhaps status effects too. So even if we remove the ability for weapons/armor to naturally have status effects, we'll probably still have to deal with having status effects attached to them via shards. So I guess my answer to the main question is "we probably can't, we're stuck with this".

I think this is a bit of a puzzel, what with positive and negative intensities of status effects. What I want to make sure we do is to have consistency, so when we see an up arrow attached to a status icon on a player we know "this is good" and that a down arrow means "this is bad". And those intensities are applied to enemies, they're swapped (up arrow on enemies is bad for player, down arrow on enemies is good for player). And likewise I think that when a status effect is attached to a character's equipment, the player should be clear on what the result of that effect is. We don't want some effects to mean "the character will start with this status active when a battle begins" and others to mean "this has a resistance against this type of status".

I'll shut up now. I probably just made this a lot more confusing by blabbing on about it.

I've been thinking about this in the back of my mind for the past two weeks. Redesigning the battle code and thinking about how this will all work has given me additional insights. Having said that, here's my new set of thought.

No status effect properties will be present on weapons and armorWith two attack/defense ratings as well as eight possible elemental properties and the number of sockets, I think that makes weapons and armor complex enough. Adding status effect properties on top of that will just burden the player with too many criteria to consider. Plus we don't have to figure out how to convey status resistances/susceptibilities to the player in a non-confusing manner. I'm also considering that shards too should be removed of status effect properties, but I haven't made a decisive conclusion about that yet. So shards lets just leave as a question mark for now.

So status effect properties will only be present on skills, items, and attack points. Their presence on attack points is different than skills or items in that its a natural susceptibility to become inflicted with that status for an otherwise normal attack. For example, targeting the legs has a chance of reducing agility, and agility reduction is a status effect.

Status effects are either aiding or ailingAiding effects have the green up arrow icons. Ailing effects have the red down arrow icons. A status effect can not be both aiding and ailing, unlike elemental icons which are both.

Some effects have an opposite effect, but not allLets say we have one effect that increases strength and another that decreases strength. These are two completely separate effects, but they are opposites of one another and can not be active at the same time. For example, if my character is inflicted with a weak (level 1 intensity) strength decrease, I can use a skill that boosts strength to negate that effect, perhaps even granting the character an increased strength status if the skill is potent enough.

But not all skills have an opposite and when they don't, that means that they can be in effect regardless of the state of the affected actor. Some skills that seem like they would be opposites such as poison/regen, which decrease/increase HP periodically, would not be opposites of another and can both be in effect at the same time.

----------

If we go with this set of concepts, I think we have everything needed to implement status effects in the game.

Roots wrote:I've been thinking about this in the back of my mind for the past two weeks. Redesigning the battle code and thinking about how this will all work has given me additional insights. Having said that, here's my new set of thought.

No status effect properties will be present on weapons and armorWith two attack/defense ratings as well as eight possible elemental properties and the number of sockets, I think that makes weapons and armor complex enough. Adding status effect properties on top of that will just burden the player with too many criteria to consider. Plus we don't have to figure out how to convey status resistances/susceptibilities to the player in a non-confusing manner. I'm also considering that shards too should be removed of status effect properties, but I haven't made a decisive conclusion about that yet. So shards lets just leave as a question mark for now.

So status effect properties will only be present on skills, items, and attack points. Their presence on attack points is different than skills or items in that its a natural susceptibility to become inflicted with that status for an otherwise normal attack. For example, targeting the legs has a chance of reducing agility, and agility reduction is a status effect.

I agree very much.

Status effects are either aiding or ailingAiding effects have the green up arrow icons. Ailing effects have the red down arrow icons. A status effect can not be both aiding and ailing, unlike elemental icons which are both.

Some effects have an opposite effect, but not allLets say we have one effect that increases strength and another that decreases strength. These are two completely separate effects, but they are opposites of one another and can not be active at the same time. For example, if my character is inflicted with a weak (level 1 intensity) strength decrease, I can use a skill that boosts strength to negate that effect, perhaps even granting the character an increased strength status if the skill is potent enough.

But not all skills have an opposite and when they don't, that means that they can be in effect regardless of the state of the affected actor. Some skills that seem like they would be opposites such as poison/regen, which decrease/increase HP periodically, would not be opposites of another and can both be in effect at the same time.

Generally agreed, except for the fact that I truly hate poison/regen. If we do end up having those statuses though, they should be opposites.

Here's a question I came up with tonight after working on status effects. Its kind of confusing so let me provide an example.

Let's say actor X has status B applied (pretend B is "Deplete Strength"). Status B has an opposite status, A (pretend A is "Raise Strength). Actor Y comes a long and uses an ability on actor X that is meant to decrease the intensity of status A (that is, the enemy has a skill that has the ability to "remove bonuses to strength attribute"). So when Y applies their skill on X, meant to decrease the intensity of status A, but X has opposite status B in effect, what should happen?

1) No change occurs (status A was not active, so we ignore it)2) Status B intensity strengthens (B is opposite to A and since B is active, instead of making A less intense this will make B more intense)3) We should never encounter this situation because we won't have skills that lessen status intensities

A similar scenario: now lets imagine actor X has neither A nor B status active when Y uses their skill intended to lessen intensity of A. What should happen?

1) No change occurs (status A was not active, so there is no effect)2) Status B is applied (a skill that lessens the intensity of A is equivalent to one that increases the intensity of B)3) This condition will never occur

Also note that the way things are designed currently, if X has status B active and another actor Z applies status A to X, the two statuses "nullify" one another, and if one has a stronger intensity than the other, then the one with the stronger intensity will remain active (though its degree of intensity will be reduced appropriately by a degree of the opposite's intensity).

------

I guess the major issues here revolve around the following questions:

1) Do we want to allow ourselves skills that serve only to decrease the intensity or nullify existing status effects that are beneficial? (Or for decreasing intensity/nullifying status effects that are malignant?).

2) If so, should these skills disregard the existence of possible opposite status effects altogether, and thus be unable to activate an "opposite" status than the one that it was trying to lessen the intensity of?

------

I hope that what I wrote made sense. If it were up to me, I'd make the following judgement:

"If a status change is to take place that is intended to lessen the intensity of a given status effect (A), as opposed to a different change that would increase the intensity of the opposite status of that same effect (B), then the former change will take effect if and only if status (A) is active, regardless of the presence of status (B) and status (B) will not be affected under any circumstance. The former will never, under any circumstance, cause a new status to become active on a target.

Conversely, the latter change would have an effect regardless of whether (A) is active, (B) is active, or neither (A) nor (B) is active. It always serves to increase the intensity of one side and decrease the intensity of the other.

I thought of another issue while laying in bed. Once again, lets use an example.

Let's say that actor X has status A active with an intensity value of 3 (intensity of 0 means the effect is no longer active). As we know, the intensity of status' naturally decrease over time. Lets say that we automatically decrease one intensity level every 20 seconds. Actor Y comes along and performs an action on X that serves to immediately lessen the intensity of A by a value of 1. So once Y performs their action, the status of A on X now has a value of 2.

But what do we do with the automatic intensity timer? We have two clear options (possibly more, but intuitively only 2 possible options come to mind). We can either:

1) Reset the timer back to its max value (20 seconds) every time an intensity change happens, regardless of whether it was performed naturally or through external action.

2) Leave the timer at its current state and have it continue counting down, acting as if no external action happened.

The problem with solution #1 is, lets say the countdown timer has only 0.05 seconds remaining when an external action changes the intensity level. Effectively, all this action would have done was decrease the countdown rate by 0.05 seconds, which seems like a waste and the actor probably would never have performed that action if they knew it were the case.

The problem with solution #2 is similar. If an external action changes the intensity level with only 0.05 seconds remaining, the player will see the status intensity change icon appear by the actor. But then a mere 0.05 seconds later, they will see a second icon change following immediately behind. This would seem kind of awkward to the player.

My vote goes toward solution #2. I would rather have a little "awkwardness" observed by the player than to occasionally make an action that took place to be a rather useless one. Don't know what you guys think about it. There may be some alternative options such as changing the timer but never allowing it to go below 5 seconds to give enough space between status changes, but that just seems a rather silly little hack. Maybe you guys can think of something better than I can though.

Working on the code a little more this late evening, I realized that the problem I mentioned in the previous post that solution #1 presented still does not completely go away when choosing solution #2. The "corner case" can still occur when we apply an opposite status effect to one currently active. For example, suppose status A is active with intensity of "1" and 0.05 seconds remaining till the status completely dissipates. That instant, an action is taken to apply status B (which is an opposite status of A) with intensity "1". As the code is now, the two will cancel each other out and the actor will have neither status A or status B active on them. But had that action come just 0.05 seconds later, the actor would have status B applied to them.

I'm not going to worry about this case because its just too harry. When switching from status A to B, I'd have to take an inverse of the expired time on A and give it to B. . Its not worth the effort right now, and I doubt anyone would actually care too much about this. Well, back to not sleeping.

I have another design question. We know that all status effects have a timer that runs and when it expires, the intensity of the effect decreases by one degree until the status is neutralized altogether. What are the properties of the values of these timers? In other words:

1) Are the timers set to different values for different intensities or are the timers set the same for all intensities?(For example, intensity level 3 lasts 100 seconds, level 2 lasts 75 seconds, level 1 lasts 50 seconds. Versus having all intensities lasting for 60 seconds.)

2) Do different status effects last for different amounts of time, or are they all the same?(Example: poison status lasts 50 seconds, paralyze status lasts 65 seconds, etc. as opposed to them all lasting the same 60 seconds).

3) Do we want to allow the status timers to be customizable depending on how the status is afflicted?(Example: poison status afflicted by a spider lasts 30 seconds, while poison status afflicted by a boss character lasts 120 seconds).

4) Instead of intensity decreasing according to a fixed number of seconds, would we instead want status effects to last according to a number of turns on the actor?(Example: instead of a poison effect lasting 60 seconds, it lasts for 3 turns of the afflicted actor before decreasing its intensity)

-----

If I had to decide right now at this moment, I think I would answer:

1) All intensities last the same amount of time(Because exponential or otherwise non-linear decay seems like it would make it hard for the player to predict when the effect will end)

2) All status effects last the same amount of time(Again, simplification to make the player have to keep track of less information in their head. Otherwise they'd have to figure out the timings for how long effect X lasts, the same for effect Y, etc.)

3) No.(Because if we want a status to last longer, we should just increase the intensity at which the effect is initially set at)

4) No.(Because that would mean that status effects will effectively last longer for slower actors, which doesn't seem right. Plus its harder to code for).

------

For now I'm going to hard-code some fixed status timer value (say, 60 seconds) for all effects and all intensities to use. We can come back to the status timing issue later if we want to change something, but its not critical that we make the permanent changes for how status effects will behave in the game at this moment.

Roots wrote:2) All status effects last the same amount of time(Again, simplification to make the player have to keep track of less information in their head. Otherwise they'd have to figure out the timings for how long effect X lasts, the same for effect Y, etc.)

After thinking about this some more, I decided that we should hard-code a set time limit for all statuses. The reason is that its difficult to pick a value that is satisfactory for all status effects. For example, lets choose two status effects and think about them. Status X will be "Raise Strength" and status Y will be "Paralysis". X is something that we want to have around for at least a few turns, otherwise it seems like a waste (imagine a character used a skill to raise their strength one turn, then by the time it was their turn to act again, the effect had already naturally worn off). So lets set it to say, 40 seconds. But wait, if 40 seconds is applied to paralysis, that's a pretty big hit (that could be 3-4 turns missed for the afflicted). What's even worse is that if paralysis was at its maximum intensity level (4), the time of the effect would last 4 * 40 = 160 seconds...almost 3 whole minutes! No, it seems like 10 seconds would be a more appropriate time for paralysis (approx. equal to 1 turn at its weakest intensity). But if status X is set to 10 seconds as well, we'd effectively make it useless to ever have status X since the effect would likely be gone before we use it.

I think the best way to get around this is to indeed allow each status effect define its own duration time. However, we shouldn't get crazy and start defining random, unique times for each individual status effect. Instead, we should try to "group" similar status effects together so that they all use the same timer. So in the earlier example, all "attribute buff/depletion" effects like status X would be set to 40 seconds, while all "impairment" status effects would be set to 10 seconds.

I'm going to go ahead and make this change because I think it makes good sense. Plus it won't be difficult to do at all (~5 minute job) so if anyone disagrees or has a better idea, its not like we would have invested a lot of time into this.

How much change do we want our attribute modifier status effects to cause? Remember, there are four intensities (lesser, moderate, greater, extreme). And, at least for attribute modifier status, each one has an opposite (Raise Strength vs Deplete Strength). Currently our only attribute modifier stat is raise fortitude, and currently the change values for each intensity are: 2x, 3x, 4x, 5x. This is probably -way- too high (can you imagine a skill that boosts your defense 5x?). I'm looking for a more reasonable set of values.

Note that weapons/armor still afford attack/defense ratings, so setting an actor's fortitude to 0 does not make them have 0 physical defense unless no armor is equipped. I feel okay about my proposed attribute raise modifiers, but not feeling so great about the deplete ones. Maybe it would be best to not go completely to 0x? Maybe something better might be: 0.8x, 0.6x, 0.4x, 0.2x?

Haha, nice one. My first reaction was OMG we have a Claudius sprite with a guitar??? ...Oh wait.

Yeah I agree with you. The only thing I don't like is that attribute buffs are greater than attribute nerfs (+0.25x vs -0.2x). Seems unbalanced to me. Maybe we should have the buffs also be 0.2x so the max you can get is +80% increase in your {whatever}. Seems reasonable to me: 1.2x, 1.4x, 1.6x, 1.8x.