public void OnDuelEnd(ArenaDuel duel) { CurrentDuel = null; foreach (Corpse corpse in Region.GetEnumeratedItems().OfType <Corpse>()) { if (corpse.Owner != null && corpse.Owner.InRange(corpse.Location, 30)) { corpse.MoveToWorld(corpse.Owner.Location, corpse.Owner.Map); } else { corpse.MoveToWorld(GetRandomRemovalLocation(), Definition.Map); } } if (BookedDuels.Count > 0) { ArenaDuel newDuel = BookedDuels[0]; CurrentDuel = newDuel; PVPArenaSystem.SendParticipantMessage(newDuel, 1153141); // Your session has been booked. Please wait a few moments to start the fight. Timer.DelayCall(BookedDuelBegin, () => { newDuel.DoPreDuel(); }); BookedDuels.Remove(newDuel); } }
public void TryBeginDuel(ArenaDuel duel) { if (PendingDuels.ContainsKey(duel)) { PendingDuels.Remove(duel); } if (CurrentDuel == null && BookedDuels.Count == 0) { CurrentDuel = duel; duel.DoPreDuel(); } else { BookedDuels.Add(duel); PVPArenaSystem.SendParticipantMessage(duel, 1115960); // There are currently no open arenas. Your duel session has been added to the booking queue. } }