public DataInitializationStartedHandler(
     IModifierProvider modifierProvider,
     IPseudoModifierProvider pseudoModifierProvider)
 {
     this.modifierProvider       = modifierProvider;
     this.pseudoModifierProvider = pseudoModifierProvider;
 }
示例#2
0
 public InitializeHandler(
     InitializationResources resources,
     IMediator mediator,
     ISidekickSettings settings,
     ILogger <InitializeHandler> logger,
     IViewLocator viewLocator,
     IProcessProvider processProvider,
     IKeyboardProvider keyboardProvider,
     IKeybindProvider keybindProvider,
     IParserPatterns parserPatterns,
     IModifierProvider modifierProvider,
     IPseudoModifierProvider pseudoModifierProvider,
     IItemMetadataProvider itemMetadataProvider,
     IItemStaticDataProvider itemStaticDataProvider)
 {
     this.resources              = resources;
     this.mediator               = mediator;
     this.settings               = settings;
     this.logger                 = logger;
     this.viewLocator            = viewLocator;
     this.processProvider        = processProvider;
     this.keyboardProvider       = keyboardProvider;
     this.keybindProvider        = keybindProvider;
     this.parserPatterns         = parserPatterns;
     this.modifierProvider       = modifierProvider;
     this.pseudoModifierProvider = pseudoModifierProvider;
     this.itemMetadataProvider   = itemMetadataProvider;
     this.itemStaticDataProvider = itemStaticDataProvider;
 }
示例#3
0
 public ParseItemHandler(
     ILogger <ParseItemHandler> logger,
     IItemMetadataProvider itemMetadataProvider,
     IModifierProvider modifierProvider,
     IParserPatterns patterns)
 {
     this.logger = logger;
     this.itemMetadataProvider = itemMetadataProvider;
     this.modifierProvider     = modifierProvider;
     this.patterns             = patterns;
 }
示例#4
0
        public DefaultCharacter(Race race, ClassType classType, Dictionary<AbilityType, int> abilityScores, IModifierProvider modifierProvider)
            : this(modifierProvider)
        {
            Race = race;
            InitializeProperties();
            _abilities = new CharacterAbilities(abilityScores);

            var characterClass = ClassProvider.GetNewClass(classType, _modifierProvider);
            Classes.Add(classType, characterClass);
            // Once all the properties are set, OnCreation can be called, which will process all modifiers for this character/class/race
            OnCreation(classType);
        }
 public TradeSearchService(ILogger <TradeSearchService> logger,
                           IGameLanguageProvider gameLanguageProvider,
                           ISidekickSettings settings,
                           IPoeTradeClient poeTradeClient,
                           IItemStaticDataProvider itemStaticDataProvider,
                           IModifierProvider modifierProvider)
 {
     this.logger = logger;
     this.gameLanguageProvider   = gameLanguageProvider;
     this.settings               = settings;
     this.poeTradeClient         = poeTradeClient;
     this.itemStaticDataProvider = itemStaticDataProvider;
     this.modifierProvider       = modifierProvider;
 }
示例#6
0
        public IEnumerable <float> GetPercentageModifiers(Stat stat)
        {
            foreach (EquipLocation slot in GetAllPopulatedSlots())
            {
                IModifierProvider item = (IModifierProvider)GetItemInSlot(slot);
                if (item == null)
                {
                    continue;
                }

                foreach (float mod in item.GetPercentageModifiers(stat))
                {
                    yield return(mod);
                }
            }
        }
示例#7
0
        public (int hitChance, List <string> positives, List <string> negatives) GetHitChance(Entity targetEntity)
        {
            IModifierProvider modifierProvider = _selectedAbility as IModifierProvider;

            _selectedAbilityTarget = targetEntity;

            if (_selectedAbility.IsRanged())
            {
                var rangedChance = _combatManager.ActiveEntity.CalculateChanceToHitRanged(_selectedAbilityTarget);

                int rangedMod = 0;
                if (modifierProvider != null)
                {
                    rangedMod = (int)modifierProvider.GetAdditiveModifiers(CombatModifierTypes.RangedToHit);
                }

                var rHitChance = rangedChance.hitChance + rangedMod;

                if (rHitChance <= 0)
                {
                    rHitChance = 1;
                }

                return(rHitChance, rangedChance.positives, rangedChance.negatives);
            }

            var meleeChance = _combatManager.ActiveEntity.CalculateChanceToHitMelee(_selectedAbilityTarget);

            int meleeMod = 0;

            if (modifierProvider != null)
            {
                meleeMod = (int)modifierProvider.GetAdditiveModifiers(CombatModifierTypes.MeleeToHit);
            }

            var mHitChance = meleeChance.hitChance + meleeMod;

            if (mHitChance <= 0)
            {
                mHitChance = 1;
            }

            return(mHitChance, meleeChance.positives, meleeChance.negatives);
        }
示例#8
0
        private static void ParseMods(IModifierProvider modifierProvider, List <Modifier> modifiers, List <string> texts, List <Mod> mods, List <LineContentValue> hashes)
        {
            if (modifiers == null || mods == null || hashes == null)
            {
                return;
            }

            for (var index = 0; index < hashes.Count; index++)
            {
                var id   = hashes[index].Value;
                var text = texts.FirstOrDefault(x => modifierProvider.IsMatch(id, x));
                var mod  = mods.FirstOrDefault(x => x.Magnitudes != null && x.Magnitudes.Any(y => y.Hash == id));

                modifiers.Add(new Modifier()
                {
                    Id       = id,
                    Text     = text,
                    Tier     = mod?.Tier,
                    TierName = mod?.Name,
                });
            }
        }
示例#9
0
 protected DefaultCharacter(IModifierProvider modifierProvider)
 {
     _modifierProvider = modifierProvider;
 }