예제 #1
0
 public CampfireEntry(PlayerMobile player, Campfire fire)
 {
     m_Player = player;
     m_Fire   = fire;
     m_Start  = DateTime.UtcNow;
     m_Safe   = false;
 }
예제 #2
0
        public override void OnDoubleClick(Mobile from)
        {
            if (this.Parent != null || !this.VerifyMove(from))
            {
                return;
            }

            if (!from.InRange(this, 2))
            {
                from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
                return;
            }

            if (this.ItemID == 0xA57) // rolled
            {
                Direction dir = PlayerMobile.GetDirection4(from.Location, this.Location);

                if (dir == Direction.North || dir == Direction.South)
                {
                    this.ItemID = 0xA55;
                }
                else
                {
                    this.ItemID = 0xA56;
                }
            }
            else // unrolled
            {
                this.ItemID = 0xA57;

                if (!from.HasGump(typeof(LogoutGump)))
                {
                    CampfireEntry entry = Campfire.GetEntry(from);

                    if (entry != null && entry.Safe)
                    {
                        from.SendGump(new LogoutGump(entry, this));
                    }
                }
            }
        }
예제 #3
0
            public override void OnResponse(NetState sender, RelayInfo info)
            {
                PlayerMobile pm = m_Entry.Player;

                m_CloseTimer.Stop();

                if (Campfire.GetEntry(pm) != m_Entry)
                {
                    return;
                }

                if (info.ButtonID == 1 && m_Entry.Safe && m_Bedroll.Parent == null && m_Bedroll.IsAccessibleTo(pm) &&
                    m_Bedroll.VerifyMove(pm) && m_Bedroll.Map == pm.Map && pm.InRange(m_Bedroll, 2))
                {
                    pm.PlaceInBackpack(m_Bedroll);

                    pm.BedrollLogout = true;
                    sender.Dispose();
                }

                Campfire.RemoveEntry(m_Entry);
            }
예제 #4
0
 private void CloseGump()
 {
     Campfire.RemoveEntry(m_Entry);
     m_Entry.Player.CloseGump(typeof(LogoutGump));
 }
예제 #5
0
 public InternalTimer(Mobile from, Campfire campfire) : base(TimeSpan.FromSeconds(5.0))
 {
     m_From     = from;
     m_Campfire = campfire;
 }