コード例 #1
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);
            writer.Write(1);

            if (m_Timer != null)
            {
                writer.Write(m_Timer.Next);
            }
            else
            {
                writer.Write(DateTime.UtcNow + RestartDelay);
            }

            writer.Write(Bedrolls == null ? 0 : Bedrolls.Count);

            if (Bedrolls != null)
            {
                Bedrolls.ForEach(x => writer.Write(x));
            }

            writer.Write(MysteriousTunnels == null ? 0 : MysteriousTunnels.Count);

            if (MysteriousTunnels != null)
            {
                MysteriousTunnels.ForEach(y => writer.Write(y));
            }
        }
コード例 #2
0
        public void Cleanup()
        {
            if (Bedrolls != null)
            {
                Bedrolls.ForEach(f => f.Delete());
                Bedrolls.Clear();
            }

            if (MysteriousTunnels != null)
            {
                MysteriousTunnels.ForEach(f => f.Delete());
                MysteriousTunnels.Clear();
            }
        }
コード例 #3
0
        private void CheckRespawn()
        {
            Cleanup();

            // Bedrolls Spawn

            foreach (BedrollEntry entry in m_Entries)
            {
                WrongBedrollBase item = (WrongBedrollBase)Activator.CreateInstance(entry.Type);

                item.Movable = false;
                item.MoveToWorld(entry.Location, Map);
                Bedrolls.Add(item);
            }

            // Mysterious Tunnels Spawn

            MysteriousTunnel mt;
            WrongBedrollBase bedroll;
            int mtrandom;

            for (int i = 0; i < m_OutsideTunnels.Length; i++)
            {
                mt = new MysteriousTunnel();

                if (i < 3)
                {
                    mtrandom     = Utility.Random(m_Entries.Length);
                    mt.PointDest = Bedrolls[mtrandom].Location;
                    Bedrolls[mtrandom].PointDest      = m_OutsideTunnels[i];
                    Bedrolls[mtrandom].BedrollSpawner = this;
                }
                else
                {
                    mt.PointDest = m_RoomDestinations[Utility.Random(m_RoomDestinations.Length)];
                    bedroll      = Bedrolls.Where(x => x.InRange(mt.PointDest, 4) && x.PointDest == Point3D.Zero).FirstOrDefault();

                    if (bedroll != null)
                    {
                        bedroll.PointDest      = m_OutsideTunnels[i];
                        bedroll.BedrollSpawner = this;
                    }
                }

                mt.MoveToWorld(m_OutsideTunnels[i], Map);
                MysteriousTunnels.Add(mt);
            }
        }
コード例 #4
0
        public void Cleanup()
        {
            if (Bedrolls != null)
            {
                for (var index = 0; index < Bedrolls.Count; index++)
                {
                    var f = Bedrolls[index];
                    f.Delete();
                }

                Bedrolls.Clear();
            }

            if (MysteriousTunnels != null)
            {
                for (var index = 0; index < MysteriousTunnels.Count; index++)
                {
                    var f = MysteriousTunnels[index];
                    f.Delete();
                }

                MysteriousTunnels.Clear();
            }
        }