public void EvaluateConditions() { bool CanTrigger = true; // Make sure method isn't already running CanTrigger &= (!_method._running); // Check conditions bool ConditionsCheck = _conditions.Execute(); // Only trigger if they check out CanTrigger &= ConditionsCheck; // Check if it has been false since last Trigger _hasBeenFalse |= (!ConditionsCheck); // If required by behavior, factor that in to whether we can trigger if (_behavior == EventTriggerBehavior.REQUIRE_FALSE) { CanTrigger &= _hasBeenFalse; } // yep if (CanTrigger) { Trigger(); } // clear stack _valueStack.Clear(); }