// Token: 0x060002E3 RID: 739 RVA: 0x0001ABDC File Offset: 0x00018DDC public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, Unit unit, INotificator notificator) { DrawableRemoteMinesAbility drawableRemoteMinesAbility = drawableAbilities.OfType <DrawableRemoteMinesAbility>().FirstOrDefault((DrawableRemoteMinesAbility x) => x.Unit == null && x.Position.Distance2D(unit.Position, false) < 10f); if (drawableRemoteMinesAbility != null) { drawableRemoteMinesAbility.AddUnit(unit); return; } Entity owner = unit.Owner; string name = owner.Name; DrawableUnitAbility drawableUnitAbility = new DrawableUnitAbility { AbilityTexture = base.AbilityId + "_rounded", HeroTexture = name + "_rounded", MinimapHeroTexture = name + "_icon", Position = unit.Position, Unit = unit, IsShowingRange = base.ShowRange, Range = base.Range, RangeColor = base.RangeColor, Duration = base.Duration, ShowUntil = Game.RawGameTime + base.Duration, ShowHeroUntil = Game.RawGameTime + base.TimeToShow, Owner = owner }; drawableUnitAbility.DrawRange(); drawableAbilities.Add(drawableUnitAbility); }
// Token: 0x060002E4 RID: 740 RVA: 0x0001ACFC File Offset: 0x00018EFC public override void AddDrawableAbility(List <IDrawableAbility> drawableAbilities, ParticleEffect particle, Team allyTeam, INotificator notificator) { Vector3 position = particle.GetControlPoint(base.ControlPoint); if (particle.Name.Contains("detonate")) { DrawableRemoteMinesAbility drawableRemoteMinesAbility = drawableAbilities.OfType <DrawableRemoteMinesAbility>().FirstOrDefault((DrawableRemoteMinesAbility x) => x.Position.Distance2D(position, false) < 10f); if (drawableRemoteMinesAbility != null) { if (drawableRemoteMinesAbility.IsShowingRange) { drawableRemoteMinesAbility.RemoveRange(); } drawableAbilities.Remove(drawableRemoteMinesAbility); return; } } else { if (ObjectManager.GetEntitiesFast <Unit>().FirstOrDefault((Unit x) => x.Name == "npc_dota_techies_remote_mine" && x.Distance2D(position) < 10f) != null) { return; } Unit9 owner = EntityManager9.GetUnit(particle.Owner.Handle); if (owner == null) { return; } UpdateManager.BeginInvoke(delegate { try { if (particle.IsValid) { DrawableRemoteMinesAbility drawableRemoteMinesAbility2 = new DrawableRemoteMinesAbility { AbilityTexture = this.AbilityId + "_rounded", HeroTexture = owner.Name + "_rounded", MinimapHeroTexture = owner.Name + "_icon", Position = position.SetZ(new float?((float)350)), Duration = this.Duration, IsShowingRange = this.ShowRange, Range = this.Range, RangeColor = this.RangeColor, ShowUntil = Game.RawGameTime + this.Duration, ShowHeroUntil = Game.RawGameTime + this.TimeToShow, Owner = owner.BaseEntity }; drawableRemoteMinesAbility2.DrawRange(); drawableAbilities.Add(drawableRemoteMinesAbility2); } } catch (Exception exception) { Logger.Error(exception, null); } }, 1000); } }
public override void AddDrawableAbility( List <IDrawableAbility> drawableAbilities, Particle particle, Team allyTeam, INotificator notificator) { var position = particle.GetControlPoint(this.ControlPoint); if (particle.Name.Contains("detonate")) { var mine = drawableAbilities.OfType <DrawableRemoteMinesAbility>().FirstOrDefault(x => x.Position.Distance2D(position) < 10); if (mine != null) { if (mine.IsShowingRange) { mine.RemoveRange(); } drawableAbilities.Remove(mine); } } else { var mine = EntityManager.GetEntities <Unit>() .FirstOrDefault(x => x.Name == "npc_dota_techies_remote_mine" && x.Distance2D(position) < 10); if (mine != null) { return; } var owner = EntityManager9.GetUnit(particle.Owner.Handle); if (owner == null) { return; } UpdateManager.BeginInvoke(1000, () => { try { if (!particle.IsValid) { return; } var drawableAbility = new DrawableRemoteMinesAbility { AbilityTexture = this.AbilityId.ToString(), AbilityId = this.AbilityId, HeroTexture = owner.Name, MinimapHeroTexture = owner.Name, Position = position.SetZ(350), Duration = this.Duration, IsShowingRange = this.ShowRange, Range = this.Range, RangeColor = this.RangeColor, ShowUntil = GameManager.RawGameTime + this.Duration, ShowHeroUntil = GameManager.RawGameTime + this.TimeToShow, BaseEntity = owner.BaseEntity }; owner.ChangeBasePosition(drawableAbility.Position); drawableAbility.DrawRange(); drawableAbilities.Add(drawableAbility); } catch (Exception e) { Logger.Error(e); } }); } }