예제 #1
0
        public StatPropertyParser(StatPropertyScanner scnr, StatDefinitionRepository definitions) : base(scnr)
        {
            StatScanner = scnr;

            if (definitions != null)
            {
                var surfaceTypeEnum = definitions.Enumerations["Surface Type"];
                SurfaceTypeParser = new EnumParser(surfaceTypeEnum);

                var conditionSurfaceTypeEnum = definitions.Enumerations["CUSTOM_ConditionSurfaceType"];
                ConditionSurfaceTypeParser = new EnumParser(conditionSurfaceTypeEnum);

                var surfaceStateEnum = definitions.Enumerations["CUSTOM_SurfaceState"];
                SurfaceStateParser = new EnumParser(surfaceStateEnum);

                var skillTargetConditionEnum = definitions.Enumerations["SkillTargetCondition"];
                SkillTargetConditionParser = new EnumParser(skillTargetConditionEnum);

                SkillConditionsWithArgument = definitions.Enumerations["CUSTOM_SkillCondition_1arg"];

                var requirementEnum = definitions.Enumerations["CUSTOM_Requirement"];
                RequirementParser = new EnumParser(requirementEnum);

                RequirementsWithArgument = definitions.Enumerations["CUSTOM_Requirement_1arg"];
            }
        }
        public IStatValueParser GetParser(StatValueParserFactory factory, StatDefinitionRepository definitions)
        {
            if (parser == null)
            {
                parser = factory.CreateParser(this, definitions);
            }

            return(parser);
        }
예제 #3
0
 private void Validate(IStatValueParser parser, string value)
 {
     if (parser != null)
     {
         bool   succeeded = false;
         string errorText = null;
         parser.Parse(value, ref succeeded, ref errorText);
         if (!succeeded)
         {
             errorText = $"'{value}': {errorText}";
             OnError?.Invoke(errorText);
         }
     }
 }
        public StatPropertyParser(StatPropertyScanner scnr, StatDefinitionRepository definitions,
                                  StatValueParserFactory parserFactory) : base(scnr)
        {
            StatScanner = scnr;

            if (definitions != null)
            {
                var surfaceTypeEnum = definitions.Enumerations["Surface Type"];
                SurfaceTypeParser = new EnumParser(surfaceTypeEnum);

                var conditionSurfaceTypeEnum = definitions.Enumerations["CUSTOM_ConditionSurfaceType"];
                ConditionSurfaceTypeParser = new EnumParser(conditionSurfaceTypeEnum);

                var surfaceStateEnum = definitions.Enumerations["CUSTOM_SurfaceState"];
                SurfaceStateParser = new EnumParser(surfaceStateEnum);

                var skillTargetConditionEnum = definitions.Enumerations["SkillTargetCondition"];
                SkillTargetConditionParser = new EnumParser(skillTargetConditionEnum);

                SkillConditionsWithArgument = definitions.Enumerations["CUSTOM_SkillCondition_1arg"];

                var requirementEnum = definitions.Enumerations["CUSTOM_Requirement"];
                RequirementParser = new EnumParser(requirementEnum);

                RequirementsWithArgument = definitions.Enumerations["CUSTOM_Requirement_1arg"];
                EngineStatuses           = definitions.Enumerations["CUSTOM_EngineStatus"];

                StatusParser = parserFactory.CreateReferenceParser(new List <StatReferenceConstraint>
                {
                    new StatReferenceConstraint
                    {
                        StatType = "StatusData"
                    }
                });
            }
        }