question: public static void collectAndFireTriggers ( final HashSet < PlayerID > players , final Match < TriggerAttachment > triggerMatch , final IDelegateBridge aBridge , final String beforeOrAfter , final String stepName ) { final HashSet < TriggerAttachment > toFirePossible = collectForAllTriggersMatching ( players , triggerMatch , aBridge ) ; if ( toFirePossible . isEmpty ( ) ) { return ; } final HashMap < ICondition , Boolean > testedConditions = collectTestsForAllTriggers ( toFirePossible , aBridge ) ; final List < TriggerAttachment > toFireTestedAndSatisfied = Match . getMatches ( toFirePossible , AbstractTriggerAttachment . isSatisfiedMatch ( testedConditions ) ) ; if ( toFireTestedAndSatisfied . isEmpty ( ) ) { return ; } TriggerAttachment . fireTriggers ( new HashSet < > ( toFireTestedAndSatisfied ) , testedConditions , aBridge , beforeOrAfter , stepName , true , true , true , true ) ; }
target:  This will collect all triggers for the desired players, based on a match provided, and then it will gather all the conditions necessary, then test all the conditions, and then it will fire all the conditions which are satisfied.