Ejemplo n.º 1
0
 internal void Range(IHasRangeIncrease range, bool added)
 {
     if (added)
     {
         this.ranges.Add(range);
     }
     else
     {
         this.ranges.Remove(range);
     }
 }
Ejemplo n.º 2
0
        // Token: 0x0600046F RID: 1135 RVA: 0x0001EAE8 File Offset: 0x0001CCE8
        private void OnAbilityRemoved(Ability9 ability)
        {
            IHasRangeIncrease range;

            if ((range = (ability as IHasRangeIncrease)) != null)
            {
                if (range.IsRangeIncreasePermanent)
                {
                    ability.Owner.Range(range, false);
                    return;
                }
                foreach (Unit9 unit in EntityManager9.Units)
                {
                    unit.Range(range, false);
                }
                IHasRangeIncrease hasRangeIncrease = EntityManager9.Abilities.OfType <IHasRangeIncrease>().FirstOrDefault((IHasRangeIncrease x) => x.RangeModifierName == range.RangeModifierName);
                if (hasRangeIncrease != null)
                {
                    this.ranges[hasRangeIncrease.RangeModifierName] = hasRangeIncrease;
                    IEnumerable <Unit9> units = EntityManager9.Units;
                    Func <Unit9, bool> < > 9__1;
                    Func <Unit9, bool> predicate;
                    if ((predicate = < > 9__1) == null)
                    {
                        predicate = (< > 9__1 = ((Unit9 x) => x.HasModifier(range.RangeModifierName)));
                    }
                    using (IEnumerator <Unit9> enumerator = units.Where(predicate).GetEnumerator())
                    {
                        while (enumerator.MoveNext())
                        {
                            Unit9 unit2 = enumerator.Current;
                            unit2.Range(range, true);
                        }
                        return;
                    }
                }
                this.ranges.Remove(range.RangeModifierName);
            }
        }
Ejemplo n.º 3
0
        // Token: 0x060003B6 RID: 950 RVA: 0x0001D02C File Offset: 0x0001B22C
        private void CheckModifier(uint senderHandle, Modifier modifier, bool added)
        {
            string name     = modifier.Name;
            Unit9  unitFast = EntityManager9.GetUnitFast(senderHandle);

            if (unitFast == null)
            {
                return;
            }
            Action <Unit9, bool> action;

            if (this.specialModifiers.TryGetValue(name, out action))
            {
                action(unitFast, added);
            }
            IHasRangeIncrease range = this.rangeFactory.GetRange(name);

            if (range != null)
            {
                unitFast.Range(range, added);
                return;
            }
            if (modifier.IsHidden)
            {
                return;
            }
            IAppliesImmobility disable = this.damageFactory.GetDisable(name);

            if (disable != null)
            {
                IDisable disable2;
                bool     invulnerability = (disable2 = (disable as IDisable)) != null && (disable2.AppliesUnitState & UnitState.Invulnerable) > (UnitState)0UL;
                unitFast.Disabler(modifier, added, invulnerability);
                return;
            }
            if (modifier.IsStunDebuff)
            {
                unitFast.Disabler(modifier, added, false);
                return;
            }
            IHasDamageAmplify amplifier = this.damageFactory.GetAmplifier(name);

            if (amplifier != null)
            {
                unitFast.Amplifier(amplifier, added);
                return;
            }
            IHasPassiveDamageIncrease passive = this.damageFactory.GetPassive(name);

            if (passive != null)
            {
                unitFast.Passive(passive, added);
                return;
            }
            IHasDamageBlock blocker = this.damageFactory.GetBlocker(name);

            if (blocker != null)
            {
                unitFast.Blocker(blocker, added);
                return;
            }
        }