示例#1
0
文件: Level.cs 项目: LifeOfTony/Tony
        /// <summary>
        /// RemoveObject is called to remove a GameObject from the Objects list.
        /// </summary>
        public void RemoveObject(GameObject oldObject)
        {
            Objects.Remove(oldObject);

            // Adds to Drawables if drawable.
            if (oldObject is Drawable drawable)
            {
                Drawables.Remove(drawable);
            }

            // Adds to Collidables if collidable.
            if (oldObject is Collider)
            {
                Collidables.Remove(oldObject);
            }

            if (oldObject is Player)
            {
                Player = null;;
            }

            if (oldObject is Npc)
            {
                Npcs.Remove((Npc)oldObject);
            }
        }
示例#2
0
        private void OnDestroy()
        {
            HostileNpcs.Remove(this);
            Npcs.Remove(this);
            if (Item != null)
            {
                Item.Dispose();
            }

            Destroy(gameObject);
        }
        public override void Setup()
        {
            var toRemove = new List <CNpc>();

            foreach (var npc in Npcs)
            {
                if (npc.TemplateId != 9000021)                 // if not event npc -> remove
                {
                    toRemove.Add(npc);
                }
            }

            toRemove.ForEach(npc => Npcs.Remove(npc));

            base.Reset();
            base.Setup();

            nCurrentRound = 0;
            bEnd          = false;
        }