void OnFightDenied(ArenaWaitingCharacter obj) { ArenaManager.Instance.ArenaTaskPool.ExecuteInContext(() => { ContextHandler.SendGameRolePlayArenaFighterStatusMessage(m_clients, Id, obj.Character, false); obj.Character.ToggleArenaWaitTime(); // %1 a refusé le combat en Kolizéum. BasicHandler.SendTextInformationMessage(Clients, TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 275, obj.Character.Name); if (obj.Character.ArenaParty != null) { foreach (var character in obj.Team.Members.ToArray()) { obj.Team.RemoveCharacter(character); // Combat de Kolizéum annulé/non validé par votre équipe character.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 273); } obj.Character.ArenaParty.RemoveMember(obj.Character); } else { obj.Team.RemoveCharacter(obj); } var opposedTeam = obj.Team == DefendersTeam ? ChallengersTeam : DefendersTeam; foreach (var character in opposedTeam.Members) { // Combat de Kolizéum annulé/non validé par l'autre équipe. character.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 274); } foreach (var character in DefendersTeam.Members.Concat(ChallengersTeam.Members).Where(character => character.Character.ArenaPopup != null)) { character.Character.ArenaPopup.Cancel(); } foreach (var character in obj.Team.Members.Where(character => character.Character.ArenaParty == null)) { ArenaManager.Instance.AddToQueue(character.Character); } var once = false; foreach (var character in opposedTeam.Members) { if (character.Character.ArenaParty == null) { ArenaManager.Instance.AddToQueue(character.Character); } else if (!once) { ArenaManager.Instance.AddToQueue(character.Character.ArenaParty); once = true; } } }); }
void OnReadyChanged(ArenaWaitingCharacter character, bool ready) { ArenaManager.Instance.ArenaTaskPool.ExecuteInContext(() => { ContextHandler.SendGameRolePlayArenaFighterStatusMessage(m_clients, Id, character.Character, ready); if (DefendersTeam.MissingMembers != 0 || ChallengersTeam.MissingMembers != 0 || !DefendersTeam.Members.All(x => x.Ready) || !ChallengersTeam.Members.All(x => x.Ready)) { return; } m_fight = FightManager.Instance.CreateArenaFight(this); TeleportFighters(); }); }