10 Commits

Author SHA1 Message Date
gsemaj
1709d2b0ef Add overload to remove specific class of buff
I initially added this because, despite the higher tickrate for
composite condition calculations thanks to the last commit, there is
still a slight status icon delay when rapidly switching nanos. I
attempted to use this to make that problem go away and for whatever
reason it wasn't effective, but I figure it would be useful to have
anyway so I'm keeping it.
2022-07-30 22:35:20 -07:00
gsemaj
457c320d48 Move some stuff from playerTick to player combat step 2022-07-30 22:35:19 -07:00
gsemaj
0994aaff71 Port egg buffs over to new system 2022-07-30 22:35:19 -07:00
gsemaj
d4253c3b49 YET ANOTHER ITERATION of the new ability system
I am very tired
2022-07-30 22:35:17 -07:00
gsemaj
5b58055924 Passive nano powers pt 1 2022-07-30 22:35:17 -07:00
gsemaj
ad9bf2a9e3 Buff framework tweaks + polish 2022-07-30 22:35:16 -07:00
gsemaj
a38bf0e7be Rework buff callbacks
The first implementation was way too complicated and prone to bugs.
This is much more simple flexible; first off, std::function is now used
instead of a raw function pointer, so lambdas and binds are fair game
which is great for scripting. Second, callbacks for all stacks are
executed. It is up to the callback target to ensure correct behavior.
2022-07-30 22:35:15 -07:00
gsemaj
daec7a33b7 egg prep 2022-07-30 22:35:14 -07:00
gsemaj
462ced6685 Move Buff implementation to Buffs.cpp 2022-07-30 22:35:14 -07:00
gsemaj
cc190efc63 New buff framework (player implementation)
Get rid of `iConditionBitFlag` in favor of a system of individual buff
objects that get composited to a bitflag on-the-fly.
Buff objects can have callbacks for application, expiration, and tick,
making them pretty flexible. Scripting languages can eventually use
these for custom behavior, too.

TODO:
- Get rid of bitflag in BaseNPC
- Apply buffs from passive nano powers
- Apply buffs from active nano powers
- Move eggs to new system
- ???
2022-07-30 22:35:14 -07:00