protected override void OnTargetCancel(Mobile from, TargetCancelType cancelType) { base.OnTargetCancel(from, cancelType); m_Duel.Broadcast("The duel was canceled."); DuelController.DestroyDuel(m_Duel); from.SendMessage("You have cancelled the duel request."); }
private void CompleteDuel() { List <Mobile> contestants = new List <Mobile>(); contestants.AddRange(m_Attackers); contestants.AddRange(m_Defenders); for (int i = 0; i < contestants.Count; i++) { FixMobile(contestants[i]); } DuelController.DestroyDuel(this); }
protected override void OnTick() { m_Duel.Broadcast(32, "The duel has timed out..."); if (m_Duel != null) { DuelController.DestroyDuel(m_Duel); } if (DuelController.DuelStartTimeoutTable.ContainsKey(m_Duel.Creator.Serial)) { DuelController.DuelStartTimeoutTable.Remove(m_Duel.Creator.Serial); } Stop(); }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { Mobile m = sender.Mobile; Buttons button = (Buttons)info.ButtonID; if (m == null || m_Duel == null) { return; } if (m_DeclinesDuels && button != Buttons.toggleBtn && button != Buttons.closeBtn) { m.SendMessage("You can't start a duel if you have chosen to not accept duel invites."); m.SendMessage("Check the allow duel invites box before you start a duel."); m.SendGump(new DuelConfigGump(m_Duel)); return; } switch (button) { case Buttons.closeBtn: { DuelController.DestroyDuel(m_Duel); m.SendMessage("The duel was not created."); break; } case Buttons.oneBtn: { m_Duel.SpotsRemaing = 1; m_Duel.Configure(1); m_Duel.Contestants.Add(m_Duel.Creator); m.SendMessage("Please select the player you wish to duel."); m.Target = new DuelTarget(m, m_Duel); break; } case Buttons.twoBtn: { m_Duel.SpotsRemaing = 3; m_Duel.Configure(2); m_Duel.Contestants.Add(m_Duel.Creator); m.SendMessage("Please select a player to add to the duel."); m.SendMessage("Do not be concerned with what side they will be on at this point."); m.Target = new DuelTarget(m, m_Duel); break; } case Buttons.threeBtn: { m_Duel.SpotsRemaing = 5; m_Duel.Configure(3); m_Duel.Contestants.Add(m_Duel.Creator); m.SendMessage("Please select a player to add to the duel."); m.SendMessage("Do not be concerned with what side they will be on at this point."); m.Target = new DuelTarget(m, m_Duel); break; } case Buttons.fourBtn: { m_Duel.SpotsRemaing = 7; m_Duel.Configure(4); m_Duel.Contestants.Add(m_Duel.Creator); m.SendMessage("Please select a player to add to the duel."); m.SendMessage("Do not be concerned with what side they will be on at this point."); m.Target = new DuelTarget(m, m_Duel); break; } case Buttons.fiveBtn: { m_Duel.SpotsRemaing = 9; m_Duel.Configure(5); m_Duel.Contestants.Add(m_Duel.Creator); m.SendMessage("Please select a player to add to the duel."); m.SendMessage("Do not be concerned with what side they will be on at this point."); m.Target = new DuelTarget(m, m_Duel); break; } case Buttons.toggleBtn: { if (m_DeclinesDuels) { DuelController.DeclineDuelList.Remove(m_Duel.Creator); } else { DuelController.DeclineDuelList.Add(m_Duel.Creator); } m.CloseGump(typeof(DuelConfigGump)); m.SendGump(new DuelConfigGump(m_Duel)); break; } } }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { Mobile m = sender.Mobile; if (m == null || m_Duel == null) { return; } int[] sw = info.Switches; if (sw.Length != (m_Duel.Attackers.Capacity + m_Duel.Defenders.Capacity)) { m_Duel.Creator.SendMessage("Some players were not assigned to a team. Please try again."); m_Duel.Creator.CloseGump(typeof(DuelTeamSelectionGump)); m_Duel.Creator.SendGump(new DuelTeamSelectionGump(m_Duel)); return; } List <int> switches = new List <int>(sw); switch ((Buttons)info.ButtonID) { case Buttons.closeBtn: { m_Duel.Broadcast("The duel was canceled."); DuelController.DestroyDuel(m_Duel); break; } case Buttons.startBtn: { int teamCheckOne = 0; int teamCheckTwo = 0; for (int i = 0; i < m_MobileEntries.Count; i++) { if (switches.Contains(m_MobileEntries[i].TeamOne)) { teamCheckOne++; } else { teamCheckTwo++; } } if (teamCheckOne != teamCheckTwo) { m_Duel.Creator.SendMessage("The two teams were not even, please try again."); m_Duel.Creator.CloseGump(typeof(DuelTeamSelectionGump)); m_Duel.Creator.SendGump(new DuelTeamSelectionGump(m_Duel)); return; } else { for (int i = 0; i < m_MobileEntries.Count; i++) { if (switches.Contains(m_MobileEntries[i].TeamOne)) { m_Duel.Attackers.Add(m_MobileEntries[i].Mobile); } else { m_Duel.Defenders.Add(m_MobileEntries[i].Mobile); } } //m_Duel.Contestants.Clear(); m_Duel.CheckBegin(); } break; } } }