How to Check All Booleans in Array Before Triggering Event?& question about Event Dispatcher

I’m setting up an even where multiple NPCs (B) should start Event B only after another NPC (A) finishes Event A.

Right now, I store references to NPCs (B) as actor object references array inside NPC (A) and use an interface for communication. NPC (A) needs to check if all NPCs (B) have completed Event B (tracked by a boolean) before triggering Event A.

The issue is that when I loop through the NPCs (B) by For Each Loop and check their booleans with a Branch, the condition passes as soon as any single NPC (B) is true, rather than waiting for all of them. Don’t know to to fix that so I have to store the NPC B one by one instead of using array.

Another problem is, I’m using a Timer (SetTimerByEvent) to keep checking until Event A starts, then clearing it with ClearAndInvalidateTimerByHandle, but this feels inefficient.

I tried using an Event Dispatcher, but it seems to require casting to each NPC (B) inside NPC (A).

What’s the best way to:

1.Check every boolean in an array of actors (NPCs B) and only trigger Event A if all are true?
2.Avoid using a Timer loop? (Is there a more event-driven solution?)

Would a counter (incrementing per NPC completion) work better? Or is there a cleaner way using interfaces/delegates?

Thanks for any help!

NPC (A) needs a full count of all NBC (B’s). (e.g. 5)
When a “B” completes its required action have it Interface call “A”.
NPC “A” can then increment Actions, then conditional check against the count.

IF (num Actions == Num B’s) → do the thing