Пример #1
0
        /*private void OnParticleReleased(Entity sender, ParticleReleasedEventArgs args)
         * {
         *  try
         *  {
         *      if (!args.Particle.IsValid)
         *      {
         *          return;
         *      }
         *
         *      if (!this.abilityData.Particles.TryGetValue(args.Particle.Name, out var data))
         *      {
         *          return;
         *      }
         *
         *      if (!data.ParticleReleaseData)
         *      {
         *          return;
         *      }
         *
         *      data.AddDrawableAbility(
         *          this.drawableAbilities,
         *          args.Particle,
         *          this.allyTeam,
         *          this.notificationsEnabled ? this.notificator : null);
         *  }
         *  catch (Exception e)
         *  {
         *      Logger.Error(e);
         *  }
         * }*/

        private void OnRemoveEntity(EntityRemovedEventArgs e)
        {
            try
            {
                var entity = e.Entity;
                if (entity.Team == this.allyTeam)
                {
                    return;
                }

                if (!this.abilityData.Units.ContainsKey(entity.Name))
                {
                    return;
                }

                var unit = this.drawableAbilities.OfType <DrawableUnitAbility>().FirstOrDefault(x => x.Unit == entity);
                if (unit != null)
                {
                    this.drawableAbilities.Remove(unit);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
Пример #2
0
        private void OnEntityRemoved(EntityRemovedEventArgs e)
        {
            try
            {
                if (e.Entity is not Tree tree || tree.Name != "dota_temp_tree")
                {
                    return;
                }

                this.trees.Remove(tree);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
Пример #3
0
        private static void OnEntityRemoved(EntityRemovedEventArgs e)
        {
            switch (e.Entity)
            {
            case Unit unit:
            {
                RemoveUnit(unit);
            }
            break;

            case Ability ability:
            {
                RemoveAbility(ability);
            }
            break;
            }
        }
Пример #4
0
        private void OnRemoveEntity(EntityRemovedEventArgs e)
        {
            try
            {
                var rune = e.Entity as Rune;
                if (rune == null || rune.RuneType == RuneType.Bounty)
                {
                    return;
                }

                var spawn = this.runeSpawns.Find(x => x.Position.Distance2D(rune.Position) < 100);
                spawn?.RemoveRune(rune);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
Пример #5
0
        private void HandleEntityRemoved(object sender, EntityRemovedEventArgs e)
        {
            Models.Entity entity = new Models.Entity()
            {
                ID            = e.Entity.ID,
                Type          = (Models.EntityType)((int)e.Entity.Type),
                ModelIndex    = e.Entity.ModelIndex,
                ModelLocation = e.Entity.ModelLocation,
                Position      = new Models.Vector(e.Entity.Position.X, e.Entity.Position.Y, e.Entity.Position.Z),
                Rotation      = new Models.Vector(e.Entity.Rotation.X, e.Entity.Rotation.Y, e.Entity.Rotation.Z),
            };

            EntityRemovedEvent newEvent = new EntityRemovedEvent()
            {
                Entity   = entity,
                EntityID = e.Entity.ID,
            };

            CurrentTick.Events.Add(newEvent);
        }
Пример #6
0
        private void EntityManagerOnEntityRemoved(EntityRemovedEventArgs e)
        {
            if (e.Entity is not Ability ability)
            {
                return;
            }

            if (!this.IsValid(ability))
            {
                return;
            }

            var item = new LogItem(LogType.Ability, Color.LightPink, "Ability removed");

            item.AddLine("Name: " + ability.Name, ability.Name);
            item.AddLine("Network name: " + ability.NetworkName, ability.NetworkName);
            item.AddLine("ClassID: " + ability.ClassId, ability.ClassId);
            item.AddLine("Owner name: " + ability.Owner?.Name, ability.Owner?.Name);
            item.AddLine("Owner network name: " + ability.Owner?.NetworkName, ability.Owner?.NetworkName);
            item.AddLine("Owner classID: " + ability.Owner?.ClassId, ability.Owner?.ClassId);

            this.log.Display(item);
        }
Пример #7
0
        private void OnEntityRemoved(EntityRemovedEventArgs e)
        {
            try
            {
                var physicalItem = e.Entity as PhysicalItem;
                if (physicalItem == null || physicalItem.Item == null)
                {
                    return;
                }

                var item = EntityManager9.GetAbilityFast(physicalItem.Item.Handle);
                if (item == null)
                {
                    return;
                }

                item.IsAvailable = true;
                //UpdateManager.BeginInvoke(100, () => InventoryChanged?.Invoke(null, EventArgs.Empty));
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
Пример #8
0
 private void visualizer_EntityRemoved(object sender, EntityRemovedEventArgs e)
 {
     RemoveEntity(e.Entity);
     IsDirty = true;
 }
Пример #9
0
 private void EntityManagerOnEntityRemoved(object sender, EntityRemovedEventArgs args)
 {
     EntityAspectManager.UnregisterEntity(args.Entity);
     EntityRemoved?.Invoke(sender, args);
 }