Gent Semaj
275f2183bf
Merge ae9ee6094d
into b12aecad63
2023-08-17 03:23:09 +00:00
gsemaj
ae9ee6094d
Move corruption block to new system
2023-08-16 16:43:57 -07:00
gsemaj
6d5cea0d9a
Return home heal to new system
2023-08-14 19:49:39 -07:00
gsemaj
fdd7d53aed
Passive mob buffs to new system
2023-08-14 19:44:23 -07:00
gsemaj
57f8f3e0e1
Move mob active skills to new system
2023-08-14 19:28:45 -07:00
gsemaj
a3008cab3c
Move eruption attacks to new system
2023-08-14 18:18:06 -07:00
gsemaj
02fd17c0e7
Implement leech
2023-08-13 18:27:18 -07:00
gsemaj
da33c5c30f
Make clearBuffs
memory-safe
...
improperly erasing during iteration oops
2023-08-13 18:26:30 -07:00
gsemaj
478ae3d996
Break if player dies from buff combat tick
2023-08-13 14:26:05 -07:00
gsemaj
9affe76587
Fix segv: Halt buff iteration if mob is dead
2023-08-13 13:59:28 -07:00
gsemaj
33fde8af69
Tighten parameter for removeBuff
2023-08-13 10:50:50 -07:00
gsemaj
1a7bb826d8
Move drain to new system
...
TODO
- There is a seg fault that happens when drain kills the mob
- leech unimplemented
- mob skills unimplemented
2023-07-25 20:30:54 +00:00
gsemaj
da9fb499de
reorder some stuff
2023-07-25 19:49:38 +00:00
gsemaj
2bc2235179
Fix icon not disappearing for debuffs
2023-07-25 19:11:28 +00:00
gsemaj
618126f963
Tick buffs for mobs
2023-07-25 19:00:35 +00:00
gsemaj
b16ffe4f19
Fix infinite slowdown with snare
2023-07-25 19:00:01 +00:00
gsemaj
6edc01c1f1
Implement buff handling for CombatNPC
2023-07-25 13:49:40 -04:00
gsemaj
c0e566050b
Move buffs from Mob to CombatNPC
2023-07-25 13:42:40 -04:00
gsemaj
7a59248ace
Implement buffs for mobs
2023-07-25 13:19:49 -04:00
gsemaj
6ee55d7406
Damage n debuff handler
2023-07-25 13:09:28 -04:00
gsemaj
41622ad8aa
Fix trailing structs
...
The change to allow flexible trailing struct sizes broke
`attachSkillResults` oops
2023-07-25 17:05:44 +00:00
gsemaj
0f09808bc4
Get rid of cbf
2023-07-25 10:43:48 -04:00
gsemaj
b6171ebdc1
Add clearBuffs
2023-07-25 10:41:45 -04:00
gsemaj
5671adbd74
Make skill result size check an assertion
2023-07-23 10:46:53 -04:00
gsemaj
550b26db39
Oops
2023-07-23 10:42:07 -04:00
gsemaj
68be9cc381
Change SkillResult size validation
...
Since leech uses trailing structs of two different sizes, just use the max SkillResult size in validation/zeroing and then check for overflow in a couple extra places
2023-07-23 10:31:40 -04:00
gsemaj
ef33a182d1
Reorder abilities to match client handling
2023-07-23 10:15:00 -04:00
gsemaj
9bd8eabed7
Don't add buff if player dead
2023-07-23 10:13:22 -04:00
gsemaj
2249b5381b
Fix seg fault with egg powers
2023-07-22 15:10:00 -04:00
gsemaj
9b7656117d
Reuse useNanoSkill
codepath for passive powers
2023-07-20 17:53:13 -04:00
gsemaj
9394825d41
Fix recall
2023-07-12 17:43:05 -04:00
gsemaj
6e0d55c4b7
Make SkillType an enum class
2023-07-12 17:37:05 -04:00
gsemaj
33396f8d28
Fix self recall
2023-07-11 20:21:37 -04:00
gsemaj
cd908666af
[WIP] Fix targeting for groups
2023-07-11 17:42:08 -04:00
gsemaj
74588f2c77
[WIP] Active power handling
...
TODO:
- recall (self and group) is broken
- revive (only group) is broken
- damage + debuff is unimplemented
2023-07-11 13:52:59 -04:00
gsemaj
829f75112c
Sync with master
2023-07-11 13:52:59 -04:00
gsemaj
343668fbcd
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.
2023-07-11 13:52:59 -04:00
gsemaj
2e572169c0
Move some stuff from playerTick to player combat step
2023-07-11 13:52:59 -04:00
gsemaj
b3e28ddea3
Refactor group handling
2023-07-11 13:52:58 -04:00
gsemaj
1670dfd830
Port egg buffs over to new system
2023-07-11 13:52:58 -04:00
gsemaj
e768ebcabe
More skill handlers
...
Note: need to revisit these when active powers are implemented to make
sure they are correct. DamageNDebuff isn't even implemented yet.
2023-07-11 13:52:58 -04:00
gsemaj
9bc7e8de62
Passive nano powers
2023-07-11 13:52:58 -04:00
gsemaj
f249599ab5
YET ANOTHER ITERATION of the new ability system
...
I am very tired
2023-07-11 13:52:57 -04:00
gsemaj
2901f5f285
Passive nano powers pt 1
2023-07-11 13:52:57 -04:00
gsemaj
36f329c302
Passive nano powers boilerplate
2023-07-11 13:52:57 -04:00
gsemaj
eb7daf8eaa
Fix timed out buffs not calling onExpire
2023-07-11 13:52:57 -04:00
gsemaj
0c5a9400ce
Buff framework tweaks + polish
2023-07-11 13:52:56 -04:00
gsemaj
f150595f70
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.
2023-07-11 13:52:56 -04:00
gsemaj
c6528eb2ac
oops
2023-07-11 13:52:56 -04:00
gsemaj
d631ca1aa1
CRLF purge in Buffs.cpp
2023-07-11 13:52:56 -04:00