Beispiel #1
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (m_Context != null && !m_Context.Registered)
            {
                return;
            }

            switch (info.ButtonID)
            {
            case 0:                     // closed
            {
                if (m_Context != null)
                {
                    m_From.SendGump(new DuelContextGump(m_From, m_Context));
                }

                break;
            }

            case 1:                     // customize
            {
                m_From.SendGump(new RulesetGump(m_From, m_Ruleset, m_Ruleset.Layout, m_Context));
                break;
            }

            default:
            {
                int idx = info.ButtonID - 2;

                if (idx >= 0 && idx < m_Defaults.Length)
                {
                    m_Ruleset.ApplyDefault(m_Defaults[idx]);
                    m_From.SendGump(new PickRulesetGump(m_From, m_Context, m_Ruleset));
                }
                else
                {
                    idx -= m_Defaults.Length;

                    if (idx >= 0 && idx < m_Flavors.Length)
                    {
                        if (m_Ruleset.Flavors.Contains(m_Flavors[idx]))
                        {
                            m_Ruleset.RemoveFlavor(m_Flavors[idx]);
                        }
                        else
                        {
                            m_Ruleset.AddFlavor(m_Flavors[idx]);
                        }

                        m_From.SendGump(new PickRulesetGump(m_From, m_Context, m_Ruleset));
                    }
                }

                break;
            }
            }
        }
Beispiel #2
0
        public Tournament()
        {
            m_ParticipantsPerMatch  = 2;
            m_PlayersPerParticipant = 1;
            Pyramid = new TourneyPyramid();
            Ruleset = new Ruleset(RulesetLayout.Root);
            Ruleset.ApplyDefault(Ruleset.Layout.Defaults[0]);
            Participants = new List <TourneyParticipant>();
            Undefeated   = new List <TourneyParticipant>();
            Arenas       = new List <Arena>();
            SignupPeriod = TimeSpan.FromMinutes(10.0);

            Timer.DelayCall(SliceInterval, SliceInterval, Slice);
        }
Beispiel #3
0
        public DuelContext( Mobile initiator, RulesetLayout layout, bool addNew )
        {
            m_Initiator = initiator;
            m_Participants = new ArrayList();
            m_Ruleset = new Ruleset( layout );
            m_Ruleset.ApplyDefault( layout.Defaults[0] );

            if ( addNew )
            {
                m_Participants.Add( new Participant( this, 1 ) );
                m_Participants.Add( new Participant( this, 1 ) );

                ((Participant)m_Participants[0]).Add( initiator );
            }
        }
Beispiel #4
0
        public Tournament(IGenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            switch (version)
            {
            case 5:
            {
                FactionRestricted = reader.ReadBool();

                goto case 4;
            }

            case 4:
            {
                EventController = reader.ReadItem() as EventController;

                goto case 3;
            }

            case 3:
            {
                SuddenDeathRounds = reader.ReadEncodedInt();

                goto case 2;
            }

            case 2:
            {
                TourneyType = (TourneyType)reader.ReadEncodedInt();

                goto case 1;
            }

            case 1:
            {
                GroupType    = (GroupingType)reader.ReadEncodedInt();
                TieType      = (TieType)reader.ReadEncodedInt();
                SignupPeriod = reader.ReadTimeSpan();

                goto case 0;
            }

            case 0:
            {
                if (version < 3)
                {
                    SuddenDeathRounds = 3;
                }

                m_ParticipantsPerMatch  = reader.ReadEncodedInt();
                m_PlayersPerParticipant = reader.ReadEncodedInt();
                SignupPeriod            = reader.ReadTimeSpan();
                CurrentStage            = TournamentStage.Inactive;
                Pyramid = new TourneyPyramid();
                Ruleset = new Ruleset(RulesetLayout.Root);
                Ruleset.ApplyDefault(Ruleset.Layout.Defaults[0]);
                Participants = new List <TourneyParticipant>();
                Undefeated   = new List <TourneyParticipant>();
                Arenas       = new List <Arena>();

                break;
            }
            }

            Timer.DelayCall(SliceInterval, SliceInterval, Slice);
        }
Beispiel #5
0
        public Tournament()
        {
            m_ParticipantsPerMatch = 2;
            m_PlayersPerParticipant = 1;
            m_Pyramid = new TournyPyramid();
            m_Ruleset = new Ruleset( RulesetLayout.Root );
            m_Ruleset.ApplyDefault( m_Ruleset.Layout.Defaults[0] );
            m_Participants = new ArrayList();
            m_Undefeated = new ArrayList();
            m_Arenas = new ArrayList();
            m_SignupPeriod = TimeSpan.FromMinutes( 10.0 );

            Timer.DelayCall( SliceInterval, SliceInterval, new TimerCallback( Slice ) );
        }
Beispiel #6
0
        public Tournament( GenericReader reader )
        {
            int version = reader.ReadEncodedInt();

            switch ( version )
            {
                case 4:
                {
                    m_EventController = reader.ReadItem() as EventController;

                    goto case 3;
                }
                case 3:
                {
                    m_SuddenDeathRounds = reader.ReadEncodedInt();

                    goto case 2;
                }
                case 2:
                {
                    m_TournyType = (TournyType)reader.ReadEncodedInt();

                    goto case 1;
                }
                case 1:
                {
                    m_GroupType = (GroupingType)reader.ReadEncodedInt();
                    m_TieType = (TieType)reader.ReadEncodedInt();
                    m_SignupPeriod = reader.ReadTimeSpan();

                    goto case 0;
                }
                case 0:
                {
                    if ( version < 3 )
                        m_SuddenDeathRounds = 3;

                    m_ParticipantsPerMatch = reader.ReadEncodedInt();
                    m_PlayersPerParticipant = reader.ReadEncodedInt();
                    m_SignupPeriod = reader.ReadTimeSpan();
                    m_Stage = TournamentStage.Inactive;
                    m_Pyramid = new TournyPyramid();
                    m_Ruleset = new Ruleset( RulesetLayout.Root );
                    m_Ruleset.ApplyDefault( m_Ruleset.Layout.Defaults[0] );
                    m_Participants = new ArrayList();
                    m_Undefeated = new ArrayList();
                    m_Arenas = new ArrayList();

                    break;
                }
            }

            Timer.DelayCall( SliceInterval, SliceInterval, new TimerCallback( Slice ) );
        }