Skip to content

Commit 4f9f160

Browse files
authored
Add BeforeBeingBreak listener and fix OnBreakExtend listener (#334)
1 parent 9015ddb commit 4f9f160

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

pkg/engine/modifier/listener.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ type Listeners struct {
5858
// Called when the attached target stance changes
5959
OnStanceChange func(mod *Instance, e event.StanceChange)
6060

61+
// Called before the attached target goes into a break state (stance reached 0).
62+
OnBeforeBeingBreak func(mod *Instance)
63+
6164
// Called when the attached target causes another target to go into a break state (0 stance).
6265
OnTriggerBreak func(mod *Instance, target key.TargetID)
6366

@@ -470,6 +473,12 @@ func (mgr *Manager) stanceChange(e event.StanceChange) {
470473
}
471474

472475
func (mgr *Manager) stanceBreak(e event.StanceBreak) {
476+
for _, mod := range mgr.itr(e.Target) {
477+
f := mod.listeners.OnBeforeBeingBreak
478+
if f != nil {
479+
f(mod)
480+
}
481+
}
473482
for _, mod := range mgr.itr(e.Source) {
474483
f := mod.listeners.OnTriggerBreak
475484
if f != nil {
@@ -495,7 +504,7 @@ func (mgr *Manager) stanceBreakEnd(e event.StanceReset) {
495504

496505
func (mgr *Manager) breakExtend(e event.BreakExtend) {
497506
for _, mod := range mgr.itr(e.Target) {
498-
f := mod.listeners.OnEndBreak
507+
f := mod.listeners.OnBreakExtend
499508
if f != nil {
500509
f(mod)
501510
}

0 commit comments

Comments
 (0)