Exemple #1
0
        // Token: 0x06000316 RID: 790 RVA: 0x0001B808 File Offset: 0x00019A08
        public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator)
        {
            Unit9 unit = EntityManager9.GetUnit(particle.Owner.Handle);

            if (unit == null || unit.IsVisible)
            {
                return;
            }
            Vector3 v = base.RawParticlePosition ? particle.Position : particle.GetControlPoint(base.ControlPoint);

            if (v.Distance2D(unit.BaseUnit.Position, false) < 50f)
            {
                return;
            }
            string          name            = unit.Name;
            DrawableAbility drawableAbility = new DrawableAbility
            {
                AbilityTexture     = base.AbilityId + "_rounded",
                HeroTexture        = name + "_rounded",
                MinimapHeroTexture = name + "_icon",
                ShowUntil          = Game.RawGameTime + base.TimeToShow,
                Position           = v.SetZ(new float?((float)350))
            };

            if (base.Replace)
            {
                IDrawableAbility drawableAbility2 = drawableAbilities.LastOrDefault((IDrawableAbility x) => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture);
                if (drawableAbility2 != null)
                {
                    drawableAbilities.Remove(drawableAbility2);
                }
            }
            drawableAbilities.Add(drawableAbility);
        }
        // Token: 0x060002D0 RID: 720 RVA: 0x0001A898 File Offset: 0x00018A98
        public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator)
        {
            Vector3 position = particle.GetControlPoint(base.ControlPoint);

            if (EntityManager9.Heroes.Any((Hero9 x) => x.IsUnit && x.Team == allyTeam && x.IsAlive && x.Distance(position) < 800f))
            {
                return;
            }
            SimpleDrawableAbility drawableAbility = new SimpleDrawableAbility
            {
                AbilityTexture = base.AbilityId + "_rounded",
                ShowUntil      = Game.RawGameTime + base.TimeToShow,
                Position       = (base.RawParticlePosition ? particle.Position : particle.GetControlPoint(base.ControlPoint)).SetZ(new float?((float)350))
            };

            if (base.Replace)
            {
                IDrawableAbility drawableAbility2 = drawableAbilities.LastOrDefault((IDrawableAbility x) => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture);
                if (drawableAbility2 != null)
                {
                    drawableAbilities.Remove(drawableAbility2);
                }
            }
            drawableAbilities.Add(drawableAbility);
            if (base.ShowNotification && notificator != null)
            {
                notificator.PushNotification(new AbilityNotification(null, base.AbilityId.ToString()));
            }
        }
        // Token: 0x060002ED RID: 749 RVA: 0x0001AF90 File Offset: 0x00019190
        public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator)
        {
            if (particle.GetControlPoint(1u) == new Vector3(-1f))
            {
                return;
            }
            Unit9 unit;

            if (!base.SearchOwner && particle.Owner is Unit)
            {
                unit = EntityManager9.GetUnit(particle.Owner.Handle);
            }
            else
            {
                Ability9 ability = EntityManager9.Abilities.FirstOrDefault((Ability9 x) => x.Id == this.AbilityId && x.Owner.Team != allyTeam);
                unit = ((ability != null) ? ability.Owner : null);
            }
            Unit9 unit2 = unit;

            if (unit2 == null || unit2.IsVisible)
            {
                return;
            }
            string text;

            if (unit2.IsHero)
            {
                text = unit2.Name;
            }
            else
            {
                Unit9 owner = unit2.Owner;
                text = ((owner != null) ? owner.Name : null);
                if (text == null)
                {
                    return;
                }
            }
            DrawableAbility drawableAbility = new DrawableAbility
            {
                AbilityTexture     = base.AbilityId + "_rounded",
                HeroTexture        = text + "_rounded",
                MinimapHeroTexture = text + "_icon",
                ShowUntil          = Game.RawGameTime + base.TimeToShow,
                Position           = (base.RawParticlePosition ? particle.Position : particle.GetControlPoint(base.ControlPoint)).SetZ(new float?((float)350))
            };

            if (base.Replace)
            {
                IDrawableAbility drawableAbility2 = drawableAbilities.LastOrDefault((IDrawableAbility x) => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture);
                if (drawableAbility2 != null)
                {
                    drawableAbilities.Remove(drawableAbility2);
                }
            }
            drawableAbilities.Add(drawableAbility);
        }
        // Token: 0x060002F2 RID: 754 RVA: 0x0001B110 File Offset: 0x00019310
        public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator)
        {
            Vector3 position = (base.RawParticlePosition ? particle.Position : particle.GetControlPoint(base.ControlPoint)).SetZ(new float?((float)350));

            if (EntityManager9.AllyUnits.Any((Unit9 x) => x.IsAlive && x.Distance(position) < 400f))
            {
                return;
            }
            Ability9 ability = EntityManager9.Abilities.FirstOrDefault((Ability9 x) => (x.Id == this.AbilityId || x.Id == AbilityId.item_mjollnir) && x.Owner.Team != allyTeam && x.Owner.CanUseAbilities);
            Unit9    unit    = (ability != null) ? ability.Owner : null;

            if (unit == null || unit.IsVisible)
            {
                return;
            }
            string text;

            if (unit.IsHero)
            {
                text = unit.Name;
            }
            else
            {
                Unit9 owner = unit.Owner;
                text = ((owner != null) ? owner.Name : null);
                if (text == null)
                {
                    return;
                }
            }
            DrawableAbility drawableAbility = new DrawableAbility
            {
                AbilityTexture     = base.AbilityId + "_rounded",
                HeroTexture        = text + "_rounded",
                MinimapHeroTexture = text + "_icon",
                ShowUntil          = Game.RawGameTime + base.TimeToShow,
                Position           = position
            };

            if (base.Replace)
            {
                IDrawableAbility drawableAbility2 = drawableAbilities.LastOrDefault((IDrawableAbility x) => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture);
                if (drawableAbility2 != null)
                {
                    drawableAbilities.Remove(drawableAbility2);
                }
            }
            drawableAbilities.Add(drawableAbility);
        }
        // Token: 0x060002F8 RID: 760 RVA: 0x0001B2C0 File Offset: 0x000194C0
        public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator)
        {
            Vector3 position = base.RawParticlePosition ? particle.Position : particle.GetControlPoint(base.ControlPoint);

            if (position.IsZero)
            {
                Logger.Error("ParticleZero", particle.Name);
                return;
            }
            Ability9 ability = (from x in EntityManager9.Abilities
                                where x.Id == this.AbilityId && x.Owner.CanUseAbilities
                                orderby x.Owner.Position.Distance2D(position, false)
                                select x).FirstOrDefault <Ability9>();
            Unit9 unit = (ability != null) ? ability.Owner : null;

            if (unit == null || unit.IsVisible || unit.Team == allyTeam)
            {
                return;
            }
            string          name            = unit.Name;
            DrawableAbility drawableAbility = new DrawableAbility
            {
                AbilityTexture     = base.AbilityId + "_rounded",
                HeroTexture        = name + "_rounded",
                MinimapHeroTexture = name + "_icon",
                ShowUntil          = Game.RawGameTime + base.TimeToShow,
                Position           = position.SetZ(new float?((float)350))
            };

            if (base.Replace)
            {
                IDrawableAbility drawableAbility2 = drawableAbilities.LastOrDefault((IDrawableAbility x) => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture);
                if (drawableAbility2 != null)
                {
                    drawableAbilities.Remove(drawableAbility2);
                }
            }
            drawableAbilities.Add(drawableAbility);
            if (base.ShowNotification && notificator != null)
            {
                notificator.PushNotification(new AbilityNotification(name, base.AbilityId.ToString()));
            }
        }
 // Token: 0x06000238 RID: 568 RVA: 0x00011E4C File Offset: 0x0001004C
 private void OnUpdateRemove()
 {
     try
     {
         for (int i = this.drawableAbilities.Count - 1; i > -1; i--)
         {
             IDrawableAbility drawableAbility = this.drawableAbilities[i];
             if (!drawableAbility.IsValid)
             {
                 if (drawableAbility.IsShowingRange)
                 {
                     drawableAbility.RemoveRange();
                 }
                 this.drawableAbilities.RemoveAt(i);
             }
         }
     }
     catch (Exception exception)
     {
         Logger.Error(exception, null);
     }
 }
        // Token: 0x06000288 RID: 648 RVA: 0x00015814 File Offset: 0x00013A14
        public virtual void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator)
        {
            Unit9 unit;

            if (!this.SearchOwner && particle.Owner is Unit)
            {
                unit = EntityManager9.GetUnit(particle.Owner.Handle);
            }
            else
            {
                Ability9 ability = EntityManager9.Abilities.FirstOrDefault((Ability9 x) => x.Id == this.AbilityId && x.Owner.Team != allyTeam && x.Owner.CanUseAbilities);
                unit = ((ability != null) ? ability.Owner : null);
            }
            Unit9 unit2 = unit;

            if (unit2 == null || unit2.IsVisible)
            {
                return;
            }
            string text;

            if (unit2.IsHero)
            {
                text = unit2.Name;
            }
            else
            {
                Unit9 owner = unit2.Owner;
                text = ((owner != null) ? owner.Name : null);
                if (text == null)
                {
                    return;
                }
            }
            Vector3 v = this.RawParticlePosition ? particle.Position : particle.GetControlPoint(this.ControlPoint);

            if (v.IsZero)
            {
                Logger.Error("ParticleZero", particle.Name);
                return;
            }
            DrawableAbility drawableAbility = new DrawableAbility
            {
                AbilityTexture     = this.AbilityId + "_rounded",
                HeroTexture        = text + "_rounded",
                MinimapHeroTexture = text + "_icon",
                ShowUntil          = Game.RawGameTime + this.TimeToShow,
                Position           = v.SetZ(new float?((float)350))
            };

            if (this.Replace)
            {
                IDrawableAbility drawableAbility2 = drawableAbilities.LastOrDefault((IDrawableAbility x) => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture);
                if (drawableAbility2 != null)
                {
                    drawableAbilities.Remove(drawableAbility2);
                }
            }
            drawableAbilities.Add(drawableAbility);
            if (this.ShowNotification && notificator != null)
            {
                notificator.PushNotification(new AbilityNotification(text, this.AbilityId.ToString()));
            }
        }