Skip to content

A implementation of Status Effects #3560

Description

@Crepestrom

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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs design decisionDon't implement this before a decision on the design of the implementation has been made

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions