Related: #624
Related to pr: #3557
this is here to gather ideas on changes to it
Current Plan:
Status effects have 4 parts to their Zon
Type - (what type of status effect)
DecayStyle - (how stacks are removed when Timeleft reaches 0 eg; (-1 every removal or /2 every removal)) [not implimented yet]
OnUpdate - (A callback that applies some effect) [currently only for hurting player] [also need a more generalizable callback system]
BaseRefreshTime - (how long it takes for the status to decay)
When Applied they also have these 2 parts:
Stacks - (how many stacks of effects are applied)
Timeleft - (how much time until a stack is decayed) [not implimented yet]
Something Applying a status effect will have to provide these things:
Type - (what type of status effect)
Stacks - (how many at once)
Stacklimit - (the max limit that this source will give)
Merge type - (the way that this will add onto more of the same type of status effect) [not implimented yet]
DurationMult - (how much longer the duration lasts) (always overwritten by other providers) [not implimented yet]
Merge types come in different varieties:
Overwrite - (resets TimeLeft and sets the stack count directly)
OverwriteWeaker - (resets TimeLeft and sets the stack count directly, if the stacks of the overwritten status are lower than the overwriting one)
Add - (resets TimeLeft and adds onto the stacks)
AddNoRefresh - (does NOT resets TimeLeft and adds onto the stacks)
Related: #624
Related to pr: #3557
this is here to gather ideas on changes to it
Current Plan:
Status effects have 4 parts to their Zon
Type - (what type of status effect)
DecayStyle - (how stacks are removed when Timeleft reaches 0 eg; (-1 every removal or /2 every removal)) [not implimented yet]
OnUpdate - (A callback that applies some effect) [currently only for hurting player] [also need a more generalizable callback system]
BaseRefreshTime - (how long it takes for the status to decay)
When Applied they also have these 2 parts:
Stacks - (how many stacks of effects are applied)
Timeleft - (how much time until a stack is decayed) [not implimented yet]
Something Applying a status effect will have to provide these things:
Type - (what type of status effect)
Stacks - (how many at once)
Stacklimit - (the max limit that this source will give)
Merge type - (the way that this will add onto more of the same type of status effect) [not implimented yet]
DurationMult - (how much longer the duration lasts) (always overwritten by other providers) [not implimented yet]
Merge types come in different varieties:
Overwrite - (resets TimeLeft and sets the stack count directly)
OverwriteWeaker - (resets TimeLeft and sets the stack count directly, if the stacks of the overwritten status are lower than the overwriting one)
Add - (resets TimeLeft and adds onto the stacks)
AddNoRefresh - (does NOT resets TimeLeft and adds onto the stacks)