Пример #1
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            m_Timer.Stop();

            Mobile m = sender.Mobile;

            if (m == null || m_Duel == null)
            {
                return;
            }

            switch ((Buttons)info.ButtonID)
            {
            case Buttons.closeBtn:
            case Buttons.noBtn:
            {
                m_Duel.SpotsRemaing++;
                m_Duel.Broadcast(m.Name + " declined to join the duel.");
                CheckTarget();
                break;
            }

            case Buttons.yesBtn:
            {
                m_Duel.Contestants.Add(m);
                DuelController.DuelTable.Add(m.Serial, m_Duel);
                m_Duel.Broadcast(m.Name + " has joined the duel.");
                m_Duel.CheckBegin();
                break;
            }
            }
        }
Пример #2
0
        protected override void OnTick()
        {
            if (m_Countdown == 0)
            {
                //if( m_Seconds == DuelController.Instance.DuelLengthInSeconds )
                //{
                //    m_Duel.Started = true;
                //    m_Duel.Broadcast( "The duel has begun!" );
                //    foreach (Mobile m in m_Duel.Contestants)
                //        m.SendEverything();
                //}
                if (m_Seconds % 300 == 0)
                {
                    int min = m_Seconds / 60;

                    m_Duel.Broadcast(String.Format("{0} minutes remaining in the duel.", min));
                }

                if (m_Seconds == 0)
                {
                    m_Duel.Broadcast("The duel has timed out!");
                    m_Duel.EndDuel();
                    Stop();
                }

                m_Seconds--;
            }
            else
            {
                m_Duel.Broadcast(String.Format("Duel will begin in {0} second{1}...", m_Countdown, m_Countdown == 1 ? "" : "s"));
                m_Countdown--;

                if (m_Countdown == 0)
                {
                    m_Duel.Started = true;
                    for (int i = 0; i < m_Duel.Attackers.Count; i++)
                    {
                        m_Duel.Attackers[i].Frozen = false;
                        m_Duel.Defenders[i].Frozen = false;
                        m_Duel.Attackers[i].Delta(MobileDelta.Noto);
                        m_Duel.Defenders[i].Delta(MobileDelta.Noto);
                        m_Duel.Attackers[i].InvalidateProperties();
                        m_Duel.Defenders[i].InvalidateProperties();
                    }
                    m_Duel.Broadcast("Fight!");
                }
            }
        }
Пример #3
0
 protected override void OnTick()
 {
     m_Mobile.CloseGump(typeof(DuelAcceptGump));
     m_Mobile.SendMessage("You've decided not to join the duel.");
     m_Duel.SpotsRemaing++;
     m_Duel.Broadcast(m_Mobile.Name + " declined to join the duel.");
     CheckTarget();
     Stop();
 }
Пример #4
0
        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.");
        }
Пример #5
0
        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();
        }
Пример #6
0
        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;
            }
            }
        }