Beispiel #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="defaultTemplateProvider">Default Template Provider</param>
        /// <param name="cachedDbAccess">Cached Db Access</param>
        /// <param name="dailyRoutineFunctionNameGenerator">Daily routine function name generator</param>
        /// <param name="dailyRoutineEventPlaceholderResolver">Legacy Daily routine event placeholder resolver</param>
        /// <param name="scribanLanguageKeyGenerator">Scriban language key generator</param>
        /// <param name="languageKeyGenerator">Language Key Generator</param>
        /// <param name="conditionTranslator">Condition translator</param>
        /// <param name="localizerFactory">Localizer Factory</param>
        public ConditionRenderer(ICachedExportDefaultTemplateProvider defaultTemplateProvider, IExportCachedDbAccess cachedDbAccess, ILegacyDailyRoutineEventPlaceholderResolver dailyRoutineEventPlaceholderResolver,
                                 IDailyRoutineFunctionNameGenerator dailyRoutineFunctionNameGenerator, IScribanLanguageKeyGenerator scribanLanguageKeyGenerator, ILanguageKeyGenerator languageKeyGenerator,
                                 IConditionTranslator conditionTranslator, IStringLocalizerFactory localizerFactory)
        {
            _defaultTemplateProvider = defaultTemplateProvider;
            _conditionTranslator     = conditionTranslator;
            _localizer = localizerFactory.Create(typeof(ConditionRenderer));

            _elementRenderes = new Dictionary <ConditionType, ConditionRendererDispatcher>();
            _elementRenderes.Add(ConditionType.Group, new ConditionRendererDispatcher(TemplateType.GeneralLogicGroup, defaultTemplateProvider,
                                                                                      new GroupConditionResolver(this, defaultTemplateProvider, localizerFactory),
                                                                                      new ScribanGroupConditionRenderer(this, defaultTemplateProvider, cachedDbAccess, localizerFactory)));
            _elementRenderes.Add(ConditionType.PlayerValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionPlayerValue, defaultTemplateProvider,
                                                                                                     new NpcValueConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory, true),
                                                                                                     new ScribanNpcValueConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, true)));
            _elementRenderes.Add(ConditionType.NpcValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionNpcValue, defaultTemplateProvider,
                                                                                                  new NpcValueConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory, false),
                                                                                                  new ScribanNpcValueConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, false)));
            _elementRenderes.Add(ConditionType.PlayerInventoryCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionPlayerInventory, defaultTemplateProvider,
                                                                                                         new InventoryConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                         new ScribanInventoryConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, true)));
            _elementRenderes.Add(ConditionType.NpcInventoryCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionNpcInventory, defaultTemplateProvider,
                                                                                                      new InventoryConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                      new ScribanInventoryConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, false)));
            _elementRenderes.Add(ConditionType.ChooseQuestValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionQuestValue, defaultTemplateProvider,
                                                                                                          new QuestValueConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                          new ScribanQuestValueConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.QuestStateCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionQuestState, defaultTemplateProvider,
                                                                                                    new QuestStateConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                    new ScribanQuestStateConditionRenderer(cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.NpcAliveStateCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionNpcAliveState, defaultTemplateProvider,
                                                                                                       new NpcAliveStateConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                       new ScribanNpcAliveStateConditionRenderer(cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.CurrentSkillValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionCurrentSkillValue, defaultTemplateProvider,
                                                                                                           new CurrentSkillValueConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                           new ScribanCurrentSkillValueConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.GameTimeCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionGameTime, defaultTemplateProvider,
                                                                                                  new GameTimeConditionResolver(defaultTemplateProvider, cachedDbAccess, localizerFactory),
                                                                                                  new ScribanGameTimeConditionRenderer(defaultTemplateProvider, cachedDbAccess, localizerFactory)));
            _elementRenderes.Add(ConditionType.PlayerSkillValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionPlayerSkillValue, defaultTemplateProvider,
                                                                                                          new SkillValueConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                          new ScribanSkillValueConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.NpcSkillValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionNpcSkillValue, defaultTemplateProvider,
                                                                                                       new SkillValueConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                       new ScribanSkillValueConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.PlayerLearnedSkillCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionPlayerLearnedSkill, defaultTemplateProvider,
                                                                                                            new LearnedSkillConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                            new ScribanLearnedSkillConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, true)));
            _elementRenderes.Add(ConditionType.PlayerNotLearnedSkillCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionPlayerNotLearnedSkill, defaultTemplateProvider,
                                                                                                               new LearnedSkillConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                               new ScribanLearnedSkillConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, true)));
            _elementRenderes.Add(ConditionType.NpcLearnedSkillCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionNpcLearnedSkill, defaultTemplateProvider,
                                                                                                         new LearnedSkillConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                         new ScribanLearnedSkillConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, false)));
            _elementRenderes.Add(ConditionType.NpcNotLearnedSkillCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionNpcNotLearnedSkill, defaultTemplateProvider,
                                                                                                            new LearnedSkillConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                            new ScribanLearnedSkillConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory, false)));
            _elementRenderes.Add(ConditionType.RandomValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionRandomValue, defaultTemplateProvider,
                                                                                                     new RandomValueConditionResolver(defaultTemplateProvider, localizerFactory),
                                                                                                     new ScribanRandomValueConditionRenderer(cachedDbAccess, defaultTemplateProvider, localizerFactory)));
            _elementRenderes.Add(ConditionType.DailyRoutineEventIsDisabledCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionDailyRoutineEventDisabled, defaultTemplateProvider,
                                                                                                                     new DailyRoutineEventStateConditionResolver(defaultTemplateProvider, cachedDbAccess, dailyRoutineEventPlaceholderResolver, languageKeyGenerator, localizerFactory),
                                                                                                                     new ScribanDailyRoutineEventStateConditionRenderer(cachedDbAccess, dailyRoutineFunctionNameGenerator, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.DailyRoutineEventIsEnabledCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionDailyRoutineEventEnabled, defaultTemplateProvider,
                                                                                                                    new DailyRoutineEventStateConditionResolver(defaultTemplateProvider, cachedDbAccess, dailyRoutineEventPlaceholderResolver, languageKeyGenerator, localizerFactory),
                                                                                                                    new ScribanDailyRoutineEventStateConditionRenderer(cachedDbAccess, dailyRoutineFunctionNameGenerator, scribanLanguageKeyGenerator, localizerFactory)));
            _elementRenderes.Add(ConditionType.CodeCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionCode, defaultTemplateProvider,
                                                                                              new CodeConditionResolver(localizerFactory),
                                                                                              new ScribanCodeConditionRenderer(cachedDbAccess, localizerFactory)));
            _elementRenderes.Add(ConditionType.ItemValueCondition, new ConditionRendererDispatcher(TemplateType.TaleConditionItemValue, defaultTemplateProvider,
                                                                                                   new ItemValueConditionResolver(defaultTemplateProvider, cachedDbAccess, languageKeyGenerator, localizerFactory),
                                                                                                   new ScribanItemValueConditionRenderer(defaultTemplateProvider, cachedDbAccess, scribanLanguageKeyGenerator, localizerFactory)));
        }
Beispiel #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="actionTranslator">Translation service for actions</param>
 /// <param name="conditionTranslator">Translation service for conditions</param>
 /// <param name="localizerFactory">Localizer Factory</param>
 public ReferenceAnalyzer(IActionTranslator actionTranslator, IConditionTranslator conditionTranslator, IStringLocalizerFactory localizerFactory)
 {
     _actionTranslator    = actionTranslator;
     _conditionTranslator = conditionTranslator;
     _localizer           = localizerFactory.Create(typeof(ReferenceAnalyzer));
 }