Beispiel #1
0
        public void DungeonReset() // register and update spawners method
        {
            IPooledEnumerable eable = m_Stone.GetItemsInRange(m_Stone.Size);

            ArrayList trash = new ArrayList();

            //Here we set all spawners to global values(if bool)
            if (this != null && m_Stone != null && m_UseGlobalRespawn) // error check & global bool
            {
                // Find all spawners within the dungeon, and set their values.
                foreach (Item s in eable)
                {
                    if (s is Spawner)
                    {
                        Spawner sp = (Spawner)s;
                        sp.MaxDelay = sp.MinDelay = m_RespawnDelay;
                        sp.Respawn();
                    }

                    /*else if (s is XmlSpawner) //// comment out if XMLSpawner is not installed
                     * {
                     *  XmlSpawner sp = (XmlSpawner)s;
                     *  sp.MaxDelay = sp.MinDelay = m_RespawnDelay;
                     *  sp.Respawn();
                     * }*//*
                     * else if (s is PremiumSpawner) //// comment out if PremiumSpawner is not installed
                     * {
                     *  PremiumSpawner sp = (PremiumSpawner)s;
                     *  sp.MaxDelay = sp.MinDelay = m_RespawnDelay;
                     *  sp.Respawn();
                     * }*/
                    else if (s.Movable || s is Corpse)
                    {
                        trash.Add(s);
                    }
                    else if (s is DungeonDoor)
                    {
                        DungeonDoor dd = (DungeonDoor)s;
                        dd.Locked = true;
                    }
                }
            }

            // delete trash and corpses
            for (int i = 0; i < trash.Count; i++)
            {
                ((Item)trash[i]).Delete();
            }
        }
        public void DungeonReset()
        {
            IPooledEnumerable eable = m_Stone.GetItemsInRange(m_Stone.Size);

            ArrayList trash = new ArrayList();

            //Here we set all spawners to global values(if bool)
            if (this != null && m_Stone != null) // error check & global bool
            {
                // Find all spawners within the dungeon, and set their values.
                foreach (Item s in eable)
                {
                    if (m_UseGlobalRespawn) // control spawners
                    {
                        if (s is Spawner)
                        {
                            Spawner sp = (Spawner)s;
                            sp.MaxDelay = sp.MinDelay = m_RespawnDelay;
                            sp.Respawn();
                        }
                        else if (s is XmlSpawner) //// comment out if XMLSpawner is not installed
                        {
                            XmlSpawner sp = (XmlSpawner)s;
                            sp.MaxDelay = sp.MinDelay = m_RespawnDelay;
                            sp.Respawn();
                        }
                        else if (s is PremiumSpawner) //// comment out if PremiumSpawner is not installed
                        {
                            PremiumSpawner sp = (PremiumSpawner)s;
                            sp.MaxDelay = sp.MinDelay = m_RespawnDelay;
                            sp.Respawn();
                        }
                    }
                    // add trash to the list
                    if (s.Movable || s is Corpse)
                    {
                        trash.Add(s);
                    }
                    // Lock Dungeon Doors.
                    else if (s is DungeonDoor)
                    {
                        DungeonDoor dd = (DungeonDoor)s;
                        dd.Locked = true;
                    }
                }
            }

            // delete trash and corpses
            for (int i = 0; i < trash.Count; i++)
            {
                ((Item)trash[i]).Delete();
            }

            // Reset AFK list and restart the timers.
            if (m_PlayerMovements != null)
            {
                m_PlayerMovements.Clear();
            }
            if (m_AFKTimer != null)
            {
                if (m_AFKTimer.Running)
                {
                    m_AFKTimer.Stop();
                }
                m_AFKTimer.Start();
            }
        }