void OnMemberAdded(ArenaPreFightTeam arg1, ArenaWaitingCharacter arg2) { arg2.ReadyChanged += OnReadyChanged; arg2.FightDenied += OnFightDenied; m_clients.Add(arg2.Character.Client); }
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; } } }); }
public ArenaWaitingCharacter AddCharacter(Character character) { var obj = new ArenaWaitingCharacter(character, this); m_members.Add(obj); OnMemberAdded(obj); return(obj); }
protected virtual void OnMemberRemoved(ArenaWaitingCharacter arg2) { var handler = MemberRemoved; if (handler != null) { handler(this, arg2); } }
void OnMemberRemoved(ArenaPreFightTeam arg1, ArenaWaitingCharacter arg2) { arg2.ReadyChanged -= OnReadyChanged; arg2.FightDenied -= OnFightDenied; m_clients.Remove(arg2.Character.Client); ContextHandler.SendGameRolePlayArenaRegistrationStatusMessage(Clients, false, PvpArenaStepEnum.ARENA_STEP_UNREGISTER, PvpArenaTypeEnum.ARENA_TYPE_3VS3); }
public bool RemoveCharacter(ArenaWaitingCharacter character) { var success = m_members.Remove(character); if (success) { OnMemberRemoved(character); } return(success); }
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(); }); }
public ArenaPopup(ArenaWaitingCharacter character) { WaitingCharacter = character; }