Пример #1
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;
            }
        }