/// <summary> /// Visits and handles the effect. /// </summary> /// <param name="effect">Effect.</param> public void Visit(WhenEffect effect) { if (EvaluationManager.Evaluate(effect.Expression, Substitution, State)) { foreach (var localEffect in effect.Effects) { localEffect.Accept(this); } } }
/// <summary> /// Evaluates the conditions with the given reference state and variable substitution. /// </summary> /// <param name="state">Reference state.</param> /// <param name="substitution">Substitution.</param> /// <returns>True if all conditions are met in the given state, false otherwise.</returns> public bool Evaluate(IState state, ISubstitution substitution = null) { return(EvaluationManager.Evaluate(this, substitution, state)); }