Ejemplo n.º 1
0
        public StatInstance GetStat(ItemSurrogate context, CollectionEntry entry)
        {
            WeaponStatInstanceCollection statsCollection = StatsMapping[context];
            StatInstance stat = statsCollection[entry];

            return(stat);
        }
Ejemplo n.º 2
0
        protected override void OnSetup(IBehaviourContext context)
        {
            ConnectionEntry <float> attackInput             = AttackDamage[context];
            ConnectionEntry <float> attackSpeedInput        = AttackSpeed[context];
            ConnectionEntry <float> criticalChanceInput     = CriticalChance[context];
            ConnectionEntry <float> criticalMultiplierInput = CriticalMultiplier[context];

            var statsCollection = new WeaponStatInstanceCollection();

            StatsMapping[context] = statsCollection;
            statsCollection.GetEnumerator();

            var attackModifier = statsCollection.Attack.AddFlatModifier(attackInput.Value);

            attackInput.OnAfterChanged += () => attackModifier.Value = attackInput.Value;

            var attackSpeedModifier = statsCollection.AttackSpeed.AddFlatModifier(attackSpeedInput.Value);

            attackSpeedInput.OnAfterChanged += () => attackSpeedModifier.Value = attackSpeedInput.Value;

            var criticalChanceModifier = statsCollection.CriticalStrikeChance.AddFlatModifier(criticalChanceInput.Value);

            criticalChanceInput.OnAfterChanged += () => criticalChanceModifier.Value = criticalChanceInput.Value;

            var criticalMultiplierModifier = statsCollection.CriticalStrikeMultiplier.AddFlatModifier(criticalMultiplierInput.Value);

            criticalMultiplierInput.OnAfterChanged += () => criticalMultiplierModifier.Value = criticalMultiplierInput.Value;
        }
Ejemplo n.º 3
0
        protected override void OnSetup(IBehaviourContext context)
        {
            var statsCollection = new WeaponStatInstanceCollection();

            StatsMapping[context] = statsCollection;
            statsCollection.GetEnumerator();

            var inputsEnumerator = Inputs.GetEnumerator();

            foreach (var stat in GetStats(context))
            {
                inputsEnumerator.MoveNext();
                var currentInput = inputsEnumerator.Current[context];

                var modifier = stat.AddFlatModifier(currentInput.Value);
                currentInput.OnAfterChanged += () => modifier.Value = currentInput.Value;
            }
        }