Exemple #1
0
        void OnMemberAdded(ArenaPreFightTeam arg1, ArenaWaitingCharacter arg2)
        {
            arg2.ReadyChanged += OnReadyChanged;
            arg2.FightDenied  += OnFightDenied;

            m_clients.Add(arg2.Character.Client);
        }
Exemple #2
0
        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;
                    }
                }
            });
        }
Exemple #3
0
        public ArenaWaitingCharacter AddCharacter(Character character)
        {
            var obj = new ArenaWaitingCharacter(character, this);

            m_members.Add(obj);
            OnMemberAdded(obj);
            return(obj);
        }
Exemple #4
0
        protected virtual void OnMemberRemoved(ArenaWaitingCharacter arg2)
        {
            var handler = MemberRemoved;

            if (handler != null)
            {
                handler(this, arg2);
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        public bool RemoveCharacter(ArenaWaitingCharacter character)
        {
            var success = m_members.Remove(character);

            if (success)
            {
                OnMemberRemoved(character);
            }

            return(success);
        }
Exemple #7
0
        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();
            });
        }
Exemple #8
0
 public ArenaPopup(ArenaWaitingCharacter character)
 {
     WaitingCharacter = character;
 }