コード例 #1
0
        internal static ScriptOrCondition Parse(BinaryReader reader, MapParseContext context)
        {
            return(ParseAsset(reader, context, version =>
            {
                var conditions = new List <ScriptCondition>();

                ParseAssets(reader, context, assetName =>
                {
                    switch (assetName)
                    {
                    case ScriptCondition.AssetName:
                        conditions.Add(ScriptCondition.Parse(reader, context));
                        break;

                    default:
                        throw new InvalidDataException($"Unexpected asset: {assetName}");
                    }
                });

                return new ScriptOrCondition
                {
                    Conditions = conditions.ToArray()
                };
            }));
        }
コード例 #2
0
        public static bool Evaluate(ScriptExecutionContext context, ScriptCondition condition)
        {
            var conditionType = condition.ContentType;

            if (condition.InternalName != null)
            {
                if (CachedEnumMap.TryGetValue(condition.InternalName.Name, out var untypedConditionType))
                {
                    conditionType = (ScriptConditionType)untypedConditionType;
                }
            }

            return(EvaluateImpl(context, condition, conditionType));
        }
コード例 #3
0
ファイル: ScriptingSystem.cs プロジェクト: wrightjjw/OpenSAGE
 // For unit tests.
 internal bool EvaluateScriptCondition(ScriptCondition condition)
 {
     return(ScriptConditions.Evaluate(_executionContext, condition));
 }