public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { if (particle.GetControlPoint(1) == new Vector3(-1)) { return; } var owner = this.SearchOwner || !(particle.Owner is Unit) ? EntityManager9.Abilities.FirstOrDefault(x => x.Id == this.AbilityId && x.Owner.Team != allyTeam)?.Owner : EntityManager9.GetUnit(particle.Owner.Handle); if (owner?.IsVisible != false) { return; } string ownerName; if (owner.IsHero) { ownerName = owner.Name; } else { ownerName = owner.Owner?.Name; if (ownerName == null) { return; } } var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId + "_rounded", HeroTexture = ownerName + "_rounded", MinimapHeroTexture = ownerName + "_icon", ShowUntil = Game.RawGameTime + this.TimeToShow, Position = (this.RawParticlePosition ? particle.Position : particle.GetControlPoint(this.ControlPoint)).SetZ(350) }; owner.ChangeBasePosition(drawableAbility.Position); if (this.Replace) { var exist = drawableAbilities.LastOrDefault( x => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture); if (exist != null) { drawableAbilities.Remove(exist); } } drawableAbilities.Add(drawableAbility); }
// Token: 0x06000287 RID: 647 RVA: 0x00015764 File Offset: 0x00013964 public virtual void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, Ability9 ability, Unit unit, INotificator notificator) { if (this.IgnoreUnitAbility) { return; } Unit9 owner = ability.Owner; if (owner.IsVisible) { return; } string name = owner.Name; DrawableAbility item = new DrawableAbility { AbilityTexture = ability.Name + "_rounded", HeroTexture = name + "_rounded", MinimapHeroTexture = name + "_icon", Position = unit.Position, ShowUntil = Game.RawGameTime + this.TimeToShow }; drawableAbilities.Add(item); if (this.ShowNotification && notificator != null) { notificator.PushNotification(new AbilityNotification(name, ability.Name)); } }
// 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: 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: 0x0600030D RID: 781 RVA: 0x0001B590 File Offset: 0x00019790 public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { if (particle.Name.Contains("dash")) { drawableAbilities.RemoveAll((IDrawableAbility x) => x is DrawableFireRemnantAbility); return; } Unit9 unit = EntityManager9.GetUnit(particle.Owner.Owner.Handle); if (unit == null) { return; } Vector3 startPosition = particle.GetControlPoint(this.StartControlPoint); if (!unit.IsVisible) { DrawableAbility item = new DrawableAbility { AbilityTexture = base.AbilityId + "_rounded", HeroTexture = unit.Name + "_rounded", MinimapHeroTexture = unit.Name + "_icon", ShowUntil = Game.RawGameTime + base.TimeToShow, Position = startPosition.SetZ(new float?((float)350)) }; drawableAbilities.Add(item); } DrawableFireRemnantAbility[] remnants = drawableAbilities.OfType <DrawableFireRemnantAbility>().ToArray <DrawableFireRemnantAbility>(); Unit unit2 = ObjectManager.GetEntitiesFast <Unit>().Concat(ObjectManager.GetDormantEntities <Unit>()).FirstOrDefault((Unit x) => x.IsAlive && x.Name == "npc_dota_ember_spirit_remnant" && x.Distance2D(startPosition) < 1500f && remnants.All((DrawableFireRemnantAbility z) => z.Unit != x)); if (unit2 == null) { return; } DrawableFireRemnantAbility item2 = new DrawableFireRemnantAbility { AbilityTexture = base.AbilityId + "_rounded", HeroTexture = unit.Name + "_rounded", MinimapHeroTexture = unit.Name + "_icon", Position = particle.GetControlPoint(base.ControlPoint).SetZ(new float?((float)350)), Duration = base.Duration, ShowUntil = Game.RawGameTime + base.Duration, ShowHeroUntil = Game.RawGameTime + base.TimeToShow, Owner = unit.BaseEntity, Unit = unit2 }; drawableAbilities.Add(item2); }
// Token: 0x06000322 RID: 802 RVA: 0x0001BBC4 File Offset: 0x00019DC4 public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { 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; } if (Game.RawGameTime - unit2.LastVisibleTime >= 1f) { DrawableAbility item = new DrawableAbility { AbilityTexture = base.AbilityId + "_rounded", HeroTexture = unit2.Name + "_rounded", MinimapHeroTexture = unit2.Name + "_icon", ShowUntil = Game.RawGameTime + base.TimeToShow, Position = particle.GetControlPoint(base.ControlPoint) }; drawableAbilities.Add(item); return; } Ability9 ability2 = unit2.Abilities.FirstOrDefault((Ability9 x) => x.Id == this.AbilityId); if (ability2 == null) { return; } DrawableAbility item2 = new DrawableAbility { AbilityTexture = base.AbilityId + "_rounded", HeroTexture = unit2.Name + "_rounded", MinimapHeroTexture = unit2.Name + "_icon", ShowUntil = Game.RawGameTime + base.TimeToShow, Position = unit2.InFront(ability2.Range, 0f, true) }; drawableAbilities.Add(item2); }
public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { var owner = EntityManager9.GetUnit(particle.Owner.Handle); if (owner?.IsVisible != false) { return; } var position = this.RawParticlePosition ? particle.Position : particle.GetControlPoint(this.ControlPoint); if (position.IsZero || position.Distance2D(owner.BaseUnit.Position) < 50) { return; } var ownerName = owner.Name; var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId + "_rounded", HeroTexture = ownerName + "_rounded", MinimapHeroTexture = ownerName + "_icon", ShowUntil = Game.RawGameTime + this.TimeToShow, Position = position.SetZ(350) }; owner.ChangeBasePosition(drawableAbility.Position); if (this.Replace) { var exist = drawableAbilities.LastOrDefault( x => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture); if (exist != null) { drawableAbilities.Remove(exist); } } 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())); } }
public virtual void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, Ability9 ability, Unit unit, INotificator notificator) { if (this.IgnoreUnitAbility) { return; } var owner = ability.Owner; if (owner.IsVisible) { return; } var ownerName = owner.Name; var drawableAbility = new DrawableAbility { AbilityTexture = ability.Name + "_rounded", HeroTexture = ownerName + "_rounded", MinimapHeroTexture = ownerName + "_icon", Position = unit.Position, ShowUntil = Game.RawGameTime + this.TimeToShow, }; if (ability.Id != AbilityId.zuus_cloud) { owner.ChangeBasePosition(drawableAbility.Position); } drawableAbilities.Add(drawableAbility); if (this.ShowNotification) { notificator?.PushNotification(new AbilityNotification(ownerName, ability.Name)); } }
public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { var position = this.RawParticlePosition ? particle.Position : particle.GetControlPoint(this.ControlPoint); if (position.IsZero) { Logger.Error("ParticleZero", particle.Name); return; } var owners = EntityManager9.Abilities.Where(x => x.Id == this.AbilityId) .Select(x => x.Owner) .Where(x => x.CanUseAbilities && x.IsAlive) .ToList(); if (owners.Any(x => x.IsVisible && x.Distance(position) <= this.RangeCheck)) { return; } var owner = owners.Find(x => x.Team != allyTeam && !x.IsVisible); if (owner == null) { return; } var ownerName = owner.Name; var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId + "_rounded", HeroTexture = ownerName + "_rounded", MinimapHeroTexture = ownerName + "_icon", ShowUntil = Game.RawGameTime + this.TimeToShow, Position = position.SetZ(350) }; owner.ChangeBasePosition(drawableAbility.Position); if (this.Replace) { var exist = drawableAbilities.LastOrDefault( x => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture); if (exist != null) { drawableAbilities.Remove(exist); } } drawableAbilities.Add(drawableAbility); if (this.ShowNotification) { notificator?.PushNotification(new AbilityNotification(ownerName, this.AbilityId.ToString())); } }
public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, Particle particle, Team allyTeam, INotificator notificator) { var position = particle.GetControlPoint(this.ControlPoint); var blinks = EntityManager9.Abilities.Where( x => (x.Id == this.AbilityId || x.Id == AbilityId.item_flicker) && x.Owner.CanUseAbilities && x.Owner.IsAlive) .ToList(); if (blinks.Count == 0 || blinks.All(x => x.Owner.Team == allyTeam)) { return; } if (blinks.Any(x => x.Owner.IsVisible && x.Owner.Distance(position) < 1500 && x.TimeSinceCasted < 0.5f)) { return; } var enemyBlinks = blinks.Where(x => x.Owner.Team != allyTeam && x.RemainingCooldown <= 0).ToList(); if (enemyBlinks.Count == 0) { return; } if (enemyBlinks.Count == 1) { var owner = enemyBlinks[0].Owner; var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId.ToString(), HeroTexture = owner.Name, MinimapHeroTexture = owner.Name, ShowUntil = GameManager.RawGameTime + this.TimeToShow, Position = GameManager.RawGameTime - owner.LastVisibleTime < 0.5f ? owner.InFront(enemyBlinks[0].Range - 200) : position.SetZ(350) }; owner.ChangeBasePosition(drawableAbility.Position); drawableAbilities.Add(drawableAbility); } else { var owner = enemyBlinks.Find(x => x.Owner.Distance(position) < 100 && GameManager.RawGameTime - x.Owner.LastVisibleTime < 0.5f) ?.Owner; if (owner != null) { var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId.ToString(), HeroTexture = owner.Name, MinimapHeroTexture = owner.Name, ShowUntil = GameManager.RawGameTime + this.TimeToShow, Position = owner.InFront(enemyBlinks[0].Range - 200) }; owner.ChangeBasePosition(drawableAbility.Position); drawableAbilities.Add(drawableAbility); } else { var drawableAbility = new SimpleDrawableAbility { AbilityTexture = this.AbilityId.ToString(), ShowUntil = GameManager.RawGameTime + this.TimeToShow, Position = (this.RawParticlePosition ? particle.Position : particle.GetControlPoint(this.ControlPoint)).SetZ(350) }; drawableAbilities.Add(drawableAbility); } } }
public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, Particle particle, Team allyTeam, INotificator notificator) { if (particle.Name.Contains("dash")) { drawableAbilities.RemoveAll(x => x is DrawableFireRemnantAbility); } else { var owner = EntityManager9.GetUnit(particle.Owner.Owner.Handle); if (owner == null) { return; } var startPosition = particle.GetControlPoint(this.StartControlPoint); if (!owner.IsVisible) { var drawableAbilityStart = new DrawableAbility { AbilityTexture = this.AbilityId.ToString(), HeroTexture = owner.Name, MinimapHeroTexture = owner.Name, ShowUntil = GameManager.RawGameTime + this.TimeToShow, Position = startPosition.SetZ(350) }; owner.ChangeBasePosition(drawableAbilityStart.Position); drawableAbilities.Add(drawableAbilityStart); } var remnants = drawableAbilities.OfType <DrawableFireRemnantAbility>().ToArray(); var unit = EntityManager.GetEntities <Unit>() .FirstOrDefault( x => x.IsAlive && x.Name == "npc_dota_ember_spirit_remnant" && x.Distance2D(startPosition) < 1500 && remnants.All(z => z.Unit != x)); if (unit == null) { return; } var drawableAbility = new DrawableFireRemnantAbility { AbilityTexture = this.AbilityId.ToString(), HeroTexture = owner.Name, MinimapHeroTexture = owner.Name, Position = particle.GetControlPoint(this.ControlPoint).SetZ(350), Duration = this.Duration, ShowUntil = GameManager.RawGameTime + this.Duration, ShowHeroUntil = GameManager.RawGameTime + this.TimeToShow, Owner = owner.BaseEntity, Unit = unit }; drawableAbilities.Add(drawableAbility); } }
public virtual void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { var owner = this.SearchOwner || !(particle.Owner is Unit) ? EntityManager9.Abilities.FirstOrDefault( x => x.Id == this.AbilityId && x.Owner.Team != allyTeam && x.Owner.CanUseAbilities) ?.Owner : EntityManager9.GetUnit(particle.Owner.Handle); if (owner?.IsVisible != false) { return; } string ownerName; if (owner.IsHero) { if (owner.Name == nameof(HeroId.npc_dota_hero_rubick) && (this.AbilityId != AbilityId.rubick_fade_bolt || this.AbilityId != AbilityId.rubick_telekinesis)) { return; } ownerName = owner.Name; } else { ownerName = owner.Owner?.Name; if (ownerName == null) { return; } } var position = this.RawParticlePosition ? particle.Position : particle.GetControlPoint(this.ControlPoint); if (position.IsZero || (owner.IsHero && owner.Distance(position) < 50)) { return; } var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId + "_rounded", HeroTexture = ownerName + "_rounded", MinimapHeroTexture = ownerName + "_icon", ShowUntil = Game.RawGameTime + this.TimeToShow, Position = position.SetZ(350) }; owner.ChangeBasePosition(drawableAbility.Position); if (this.Replace) { var exist = drawableAbilities.LastOrDefault( x => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture); if (exist != null) { drawableAbilities.Remove(exist); } } drawableAbilities.Add(drawableAbility); if (this.ShowNotification) { notificator?.PushNotification(new AbilityNotification(ownerName, this.AbilityId.ToString())); } }
public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { var position = (this.RawParticlePosition ? particle.Position : particle.GetControlPoint(this.ControlPoint)).SetZ(350); var owners = EntityManager9.Abilities.Where(x => x.Id == this.AbilityId || x.Id == AbilityId.item_mjollnir) .Select(x => x.Owner) .Where(x => x.CanUseAbilities && x.IsAlive) .ToList(); if (owners.Any(x => x.IsVisible && x.Distance(position) <= x.GetAttackRange() + 400)) { return; } var owner = owners.Find(x => x.Team != allyTeam && !x.IsVisible); if (owner == null) { return; } string ownerName; if (owner.IsHero) { ownerName = owner.Name; } else { ownerName = owner.Owner?.Name; if (ownerName == null) { return; } } var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId + "_rounded", HeroTexture = ownerName + "_rounded", MinimapHeroTexture = ownerName + "_icon", ShowUntil = Game.RawGameTime + this.TimeToShow, Position = position }; owner.ChangeBasePosition(drawableAbility.Position); if (this.Replace) { var exist = drawableAbilities.LastOrDefault( x => x.AbilityTexture == drawableAbility.AbilityTexture && x.HeroTexture == drawableAbility.HeroTexture); if (exist != null) { drawableAbilities.Remove(exist); } } drawableAbilities.Add(drawableAbility); }
// 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())); } }
// Token: 0x0600031A RID: 794 RVA: 0x0001B924 File Offset: 0x00019B24 public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { Vector3 position = particle.GetControlPoint(base.ControlPoint); List <Ability9> list = (from x in EntityManager9.Abilities where x.Id == this.AbilityId && x.Owner.CanUseAbilities && x.Owner.IsAlive select x).ToList <Ability9>(); if (list.Count == 0 || list.All((Ability9 x) => x.Owner.Team == allyTeam)) { return; } if (list.Any((Ability9 x) => x.Owner.IsVisible && x.Owner.Distance(position) < 1500f && x.TimeSinceCasted < 0.5f)) { return; } List <Ability9> list2 = (from x in list where x.Owner.Team != allyTeam && !x.Owner.IsVisible && x.RemainingCooldown <= 0f select x).ToList <Ability9>(); if (list2.Count == 0) { return; } if (list2.Count == 1) { Unit9 owner = list2[0].Owner; DrawableAbility item = new DrawableAbility { AbilityTexture = base.AbilityId + "_rounded", HeroTexture = owner.Name + "_rounded", MinimapHeroTexture = owner.Name + "_icon", ShowUntil = Game.RawGameTime + base.TimeToShow, Position = ((Game.RawGameTime - owner.LastVisibleTime < 0.5f) ? owner.InFront(list2[0].Range - 200f, 0f, true) : position.SetZ(new float?((float)350))) }; drawableAbilities.Add(item); return; } Ability9 ability = list2.Find((Ability9 x) => x.Owner.Distance(position) < 100f && Game.RawGameTime - x.Owner.LastVisibleTime < 0.5f); Unit9 unit = (ability != null) ? ability.Owner : null; if (unit != null) { DrawableAbility item2 = new DrawableAbility { AbilityTexture = base.AbilityId + "_rounded", HeroTexture = unit.Name + "_rounded", MinimapHeroTexture = unit.Name + "_icon", ShowUntil = Game.RawGameTime + base.TimeToShow, Position = unit.InFront(list2[0].Range - 200f, 0f, true) }; drawableAbilities.Add(item2); return; } SimpleDrawableAbility item3 = 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)) }; drawableAbilities.Add(item3); }
public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, Particle particle, Team allyTeam, INotificator notificator) { var particleOwner = particle.Owner; var particlePosition = particle.GetControlPoint(this.ControlPoint); UpdateManager.BeginInvoke( () => { try { var owner = this.SearchOwner || !(particleOwner is Unit) ? EntityManager9.Abilities .FirstOrDefault(x => x.Id == this.AbilityId && x.Owner.Team != allyTeam) ?.Owner : EntityManager9.GetUnit(particleOwner.Handle); if (owner?.IsVisible != false) { return; } if (GameManager.RawGameTime - owner.LastVisibleTime < 1) { var ability = owner.Abilities.FirstOrDefault(x => x.Id == this.AbilityId); if (ability == null) { return; } var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId.ToString(), HeroTexture = owner.Name, MinimapHeroTexture = owner.Name, ShowUntil = GameManager.RawGameTime + this.TimeToShow, Position = owner.InFront(ability.Range) }; owner.ChangeBasePosition(drawableAbility.Position); drawableAbilities.Add(drawableAbility); } else { var drawableAbility = new DrawableAbility { AbilityTexture = this.AbilityId.ToString(), HeroTexture = owner.Name, MinimapHeroTexture = owner.Name, ShowUntil = GameManager.RawGameTime + this.TimeToShow, Position = particlePosition }; owner.ChangeBasePosition(drawableAbility.Position); drawableAbilities.Add(drawableAbility); } } catch (Exception e) { Logger.Error(e); } }); }