Ejemplo n.º 1
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 4:
            {
                m_MapOrig = reader.ReadMap();
                goto case 3;
            }

            case 3:
            {
                duelLength = reader.ReadInt();
                goto case 2;
            }

            case 2:
            {
                m_Game = (ChallengeGameType)reader.ReadInt();
                goto case 1;
            }

            case 1:
            {
                m_ChallengerExitPointDest = reader.ReadPoint3D();
                m_OpponentExitPointDest   = reader.ReadPoint3D();
                goto case 0;
            }

            case 0:
            {
                m_Active = reader.ReadBool();
                m_ChallengerPointDest = reader.ReadPoint3D();
                m_OpponentPointDest   = reader.ReadPoint3D();
                m_MapDest             = reader.ReadMap();
                break;
            }
            }
        }
Ejemplo n.º 2
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            Mobile from = sender.Mobile;
            PlayerMobile m = from as PlayerMobile;

            switch (info.ButtonID)
            {
                case 3: // Chal on/off 
                    {
                        if (((PlayerMobile)from).CanBeChallenged)
                        {
                            ((PlayerMobile)from).CanBeChallenged = false;
                            from.SendMessage(63, "You will no longer accept challenge invitations!");
                        }
                        else
                        {
                            ((PlayerMobile)from).CanBeChallenged = true;
                            from.SendMessage(63, "You may now accept challenge invitations!");
                        }
                        from.SendGump(new BeginGump((PlayerMobile)from, m_Stones));

                        return;
                    }
                case 2: // 2vs2
                    {
                        m_Game = ChallengeGameType.TwoPlayerTeam;
                        break;
                    }
                case 1: // 1vs1
                    {
                        m_Game = ChallengeGameType.OnePlayerTeam;
                        break;
                    }
                case 0:
                    {
                        from.SendMessage(43, "Cancelled!");

                        return;
                    }
            }

            foreach (Item chall in m_Stones)
            {
                ChallengeStone challstone = chall as ChallengeStone;
                if (challstone.Active == true && challstone.Game == m_Game)
                {
                    if (m.Frozen == true)
                    {
                        from.SendMessage(43, "You cannot use right now because you are frozen!");
                        return;
                    }
                    else if (m.GameTime < TimeSpan.FromMinutes(30.0))
                    {
                        from.SendMessage(43, "The ladder system is usable by characters who have a character age of at least 30 minutes of in-game play!");
                        return;
                    }
                    else if (m.IsInChallenge)
                    {
                        from.SendMessage(43, "You are already in the process of using the ladder system!");
                        return;
                    }
                    else if (m.Hits != m.HitsMax)
                    {
                        from.SendMessage(43, "You must be fully healed before using the ladder system!");
                        return;
                    }
                    else if (!m.CanBeChallenged)
                    {
                        from.SendMessage(43, "You currently have the challenge feature disabled, please enable it via the menu!");
                        from.SendGump(new BeginGump((PlayerMobile)from, m_Stones));
                        return;
                    }
                    else
                    {
                        challstone.ClearAll();
                        m_Challenger.IsInChallenge = true;
                        challstone.OnDoubleClick(from);
                        return;
                    }
                }
            }
            from.SendMessage(43, "There are no open ladder arenas for that type of challenge right now, please try again soon!");
            return;
        }
Ejemplo n.º 3
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            Mobile       from = sender.Mobile;
            PlayerMobile m    = from as PlayerMobile;

            switch (info.ButtonID)
            {
            case 3:                     // Chal on/off
            {
                if (((PlayerMobile)from).CanBeChallenged)
                {
                    ((PlayerMobile)from).CanBeChallenged = false;
                    from.SendMessage(63, "You will no longer accept challenge invitations!");
                }
                else
                {
                    ((PlayerMobile)from).CanBeChallenged = true;
                    from.SendMessage(63, "You may now accept challenge invitations!");
                }
                from.SendGump(new BeginGump((PlayerMobile)from, m_Stones));

                return;
            }

            case 2:                     // 2vs2
            {
                m_Game = ChallengeGameType.TwoPlayerTeam;
                break;
            }

            case 1:                     // 1vs1
            {
                m_Game = ChallengeGameType.OnePlayerTeam;
                break;
            }

            case 0:
            {
                from.SendMessage(43, "Cancelled!");

                return;
            }
            }

            foreach (Item chall in m_Stones)
            {
                ChallengeStone challstone = chall as ChallengeStone;
                if (challstone.Active == true && challstone.Game == m_Game)
                {
                    if (m.Frozen == true)
                    {
                        from.SendMessage(43, "You cannot use right now because you are frozen!");
                        return;
                    }
                    else if (m.GameTime < TimeSpan.FromMinutes(30.0))
                    {
                        from.SendMessage(43, "The ladder system is usable by characters who have a character age of at least 30 minutes of in-game play!");
                        return;
                    }
                    else if (m.IsInChallenge)
                    {
                        from.SendMessage(43, "You are already in the process of using the ladder system!");
                        return;
                    }
                    else if (m.Hits != m.HitsMax)
                    {
                        from.SendMessage(43, "You must be fully healed before using the ladder system!");
                        return;
                    }
                    else if (!m.CanBeChallenged)
                    {
                        from.SendMessage(43, "You currently have the challenge feature disabled, please enable it via the menu!");
                        from.SendGump(new BeginGump((PlayerMobile)from, m_Stones));
                        return;
                    }
                    else
                    {
                        challstone.ClearAll();
                        m_Challenger.IsInChallenge = true;
                        challstone.OnDoubleClick(from);
                        return;
                    }
                }
            }
            from.SendMessage(43, "There are no open ladder arenas for that type of challenge right now, please try again soon!");
            return;
        }
Ejemplo n.º 4
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 4:
                    {
                        m_MapOrig = reader.ReadMap();
                        goto case 3;
                    }
                case 3:
                    {
                        duelLength = reader.ReadInt();
                        goto case 2;
                    }
                case 2:
                    {
                        m_Game = (ChallengeGameType)reader.ReadInt();
                        goto case 1;
                    }

                case 1:
                    {
                        m_ChallengerExitPointDest = reader.ReadPoint3D();
                        m_OpponentExitPointDest = reader.ReadPoint3D();
                        goto case 0;
                    }

                case 0:
                    {
                        m_Active = reader.ReadBool();
                        m_ChallengerPointDest = reader.ReadPoint3D();
                        m_OpponentPointDest = reader.ReadPoint3D();
                        m_MapDest = reader.ReadMap();
                        break;
                    }
            }
        }