public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 4: { m_MapOrig = reader.ReadMap(); goto case 3; } case 3: { duelLength = reader.ReadInt(); goto case 2; } case 2: { m_Game = (ChallengeGameType)reader.ReadInt(); goto case 1; } case 1: { m_ChallengerExitPointDest = reader.ReadPoint3D(); m_OpponentExitPointDest = reader.ReadPoint3D(); goto case 0; } case 0: { m_Active = reader.ReadBool(); m_ChallengerPointDest = reader.ReadPoint3D(); m_OpponentPointDest = reader.ReadPoint3D(); m_MapDest = reader.ReadMap(); break; } } }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { Mobile from = sender.Mobile; PlayerMobile m = from as PlayerMobile; switch (info.ButtonID) { case 3: // Chal on/off { if (((PlayerMobile)from).CanBeChallenged) { ((PlayerMobile)from).CanBeChallenged = false; from.SendMessage(63, "You will no longer accept challenge invitations!"); } else { ((PlayerMobile)from).CanBeChallenged = true; from.SendMessage(63, "You may now accept challenge invitations!"); } from.SendGump(new BeginGump((PlayerMobile)from, m_Stones)); return; } case 2: // 2vs2 { m_Game = ChallengeGameType.TwoPlayerTeam; break; } case 1: // 1vs1 { m_Game = ChallengeGameType.OnePlayerTeam; break; } case 0: { from.SendMessage(43, "Cancelled!"); return; } } foreach (Item chall in m_Stones) { ChallengeStone challstone = chall as ChallengeStone; if (challstone.Active == true && challstone.Game == m_Game) { if (m.Frozen == true) { from.SendMessage(43, "You cannot use right now because you are frozen!"); return; } else if (m.GameTime < TimeSpan.FromMinutes(30.0)) { from.SendMessage(43, "The ladder system is usable by characters who have a character age of at least 30 minutes of in-game play!"); return; } else if (m.IsInChallenge) { from.SendMessage(43, "You are already in the process of using the ladder system!"); return; } else if (m.Hits != m.HitsMax) { from.SendMessage(43, "You must be fully healed before using the ladder system!"); return; } else if (!m.CanBeChallenged) { from.SendMessage(43, "You currently have the challenge feature disabled, please enable it via the menu!"); from.SendGump(new BeginGump((PlayerMobile)from, m_Stones)); return; } else { challstone.ClearAll(); m_Challenger.IsInChallenge = true; challstone.OnDoubleClick(from); return; } } } from.SendMessage(43, "There are no open ladder arenas for that type of challenge right now, please try again soon!"); return; }