示例#1
0
 private static bool EvaluateComparison(int a, ScriptingComparison comp, int b)
 {
     return(comp switch
     {
         ScriptingComparison.LessThan => a <b,
                                            ScriptingComparison.LessOrEqual => a <= b,
                                            ScriptingComparison.EqualTo => a == b,
                                            ScriptingComparison.GreaterOrEqual => a >= b,
                                            ScriptingComparison.GreaterThan => a> b,
         ScriptingComparison.NotEqual => a != b,
         _ => throw new ArgumentException($"Invalid operator: {comp}", nameof(comp)),
     });
示例#2
0
        public void TestCounter(ScriptingComparison comparison, int compareValue, bool expectedResult)
        {
            _fixture.Game.Scripting.Counters["MyCounter"] = 5;

            var condition = new ScriptCondition(
                ScriptConditionType.Counter,
                new ScriptArgument(ScriptArgumentType.CounterName, "MyCounter"),
                new ScriptArgument(ScriptArgumentType.Comparison, (int)comparison),
                new ScriptArgument(ScriptArgumentType.Integer, compareValue));

            var result = _fixture.Game.Scripting.EvaluateScriptCondition(condition);

            Assert.Equal(expectedResult, result);
        }
示例#3
0
        public void TestCounter(ScriptingComparison comparison, int compareValue, bool expectedResult)
        {
            var game = _fixture.GetGame(SageGame.CncGenerals);

            game.Scripting.SetCounterValue("MyCounter", 5);

            var condition = new ScriptCondition(
                ScriptConditionType.Counter,
                new ScriptArgument(ScriptArgumentType.CounterName, "MyCounter"),
                new ScriptArgument(ScriptArgumentType.Comparison, (int)comparison),
                new ScriptArgument(ScriptArgumentType.Integer, compareValue));

            var result = game.Scripting.EvaluateScriptCondition(condition);

            Assert.Equal(expectedResult, result);
        }
示例#4
0
 public static bool Counter(ScriptExecutionContext context, [ScriptArgumentType(ScriptArgumentType.CounterName)] string counterName, [ScriptArgumentType(ScriptArgumentType.Comparison)] ScriptingComparison comparison, int compareValue)
 {
     return(EvaluateComparison(context.Scripting.Counters[counterName], comparison, compareValue));
 }