コード例 #1
0
ファイル: Condition.cs プロジェクト: ysdavy/Custom-Asteroids
        /// <summary>
        /// Evaluates this condition.
        /// </summary>
        internal bool check(Condition.Operator combine)
        {
            switch (combine)
            {
            case Condition.Operator.And:
                return(clauses.All(clause => clause.check()));

            case Condition.Operator.Or:
                return(clauses.Any(clause => clause.check()));

            default:
                throw new InvalidOperationException(
                          Localizer.Format("#autoLOC_CustomAsteroids_ErrorConditionStateBadOp", combine));
            }
        }
コード例 #2
0
 /// <summary>
 /// Gets the operator.
 /// </summary>
 /// <param name="op">The op.</param>
 /// <returns></returns>
 private static string GetOperator(Condition.Operator op)
 {
     string opString = "";
     switch (op)
     {
         case Condition.Operator.Equal:
             opString = " = ";
             break;
         case Condition.Operator.LessThan:
             opString = " < ";
             break;
         case Condition.Operator.LessThanOrEqual:
             opString = " <= ";
             break;
         case Condition.Operator.GreaterThan:
             opString = " > ";
             break;
         case Condition.Operator.GreaterThanOrEqual:
             opString = " >= ";
             break;
     }
     return opString;
 }
コード例 #3
0
            private void EventHandler()
            {
                bool isPassed = false;

                for (int a = 0, A = conditions.Count; a < A; a++)
                {
                    Condition condition = conditions[a];
                    if (a != 0)
                    {
                        if (condition.statement == Condition.Statement.And && !isPassed)
                        {
                            continue;
                        }
                        if (condition.statement == Condition.Statement.Or && isPassed)
                        {
                            break;
                        }
                    }
                    if (!condition.source || condition.index == -1)
                    {
                        continue;
                    }
                    Condition.Operator @operator = conditions[a].@operator;
                    if (@operator == Condition.Operator.LessThan)
                    {
                        isPassed = condition.source.currencies[condition.index].currency < condition.currency;
                        continue;
                    }
                    if (@operator == Condition.Operator.LessThanOrEqualTo)
                    {
                        isPassed = condition.source.currencies[condition.index].currency <= condition.currency;
                        continue;
                    }
                    if (@operator == Condition.Operator.NotEqualTo)
                    {
                        isPassed = condition.source.currencies[condition.index].currency != condition.currency;
                        continue;
                    }
                    if (@operator == Condition.Operator.EqualTo)
                    {
                        isPassed = condition.source.currencies[condition.index].currency == condition.currency;
                        continue;
                    }
                    if (@operator == Condition.Operator.GreaterThanOrEqualTo)
                    {
                        isPassed = condition.source.currencies[condition.index].currency >= condition.currency;
                        continue;
                    }
                    if (@operator == Condition.Operator.GreaterThan)
                    {
                        isPassed = condition.source.currencies[condition.index].currency > condition.currency;
                        continue;
                    }
                }
                if (isPassed)
                {
                    if (!state)
                    {
                        onTrue.Invoke();
                        state = true;
                    }
                    isTrue.Invoke();
                }
                else
                {
                    if (state)
                    {
                        onFalse.Invoke();
                        state = false;
                    }
                    isFalse.Invoke();
                }
            }