Ejemplo n.º 1
0
        private static void InternalLoad(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            switch (version)
            {
            case 1:
            {
                m_Enabled = reader.ReadBool();
                m_Instance.m_DuelLengthInSeconds = reader.ReadEncodedInt();
                m_Instance.m_MaxDistance         = reader.ReadEncodedInt();
                goto case 0;
            }

            case 0:
            {
                int count = reader.ReadEncodedInt();

                for (int i = 0; i < count; i++)
                {
                    Serial     serial = (Serial)reader.ReadInt();
                    DuelPoints points = new DuelPoints(reader);
                    m_PointsTable.Add(serial, points);
                }

                m_DeclineDuelList = reader.ReadStrongMobileList();

                break;
            }
            }
        }
Ejemplo n.º 2
0
        private static void InternalSave(GenericWriter writer)
        {
            writer.WriteEncodedInt(1);             // version

            writer.Write((bool)m_Enabled);
            writer.WriteEncodedInt(m_Instance.m_DuelLengthInSeconds);
            writer.WriteEncodedInt(m_Instance.m_MaxDistance);

            int count = m_PointsTable.Count;

            writer.WriteEncodedInt(count);
            IDictionaryEnumerator myEnum = m_PointsTable.GetEnumerator();

            int i = 0;

            while (myEnum.MoveNext())
            {
                Serial     serial     = (Serial)myEnum.Key;
                DuelPoints duelPoints = (DuelPoints)myEnum.Value;

                writer.Write((int)serial);
                duelPoints.Serialize(writer);

                i++;
            }

            writer.WriteMobileList <Mobile>(m_DeclineDuelList);
        }
Ejemplo n.º 3
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (from != null)
                {
                    if (targeted != null && targeted is PlayerMobile)
                    {
                        PlayerMobile pm = (PlayerMobile)targeted;
                        DuelPoints   dp = null;

                        if (DuelController.PointsTable.TryGetValue(pm.Serial, out dp))
                        {
                            from.SendGump(new DuelPlayerInfoGump(dp));
                        }
                        else
                        {
                            if (from == pm)
                            {
                                from.SendMessage(53, "You have no dueling record.");
                            }
                            else
                            {
                                from.SendMessage(53, "That player has no dueling record.");
                            }
                        }
                    }
                    else
                    {
                        from.SendMessage(32, "That's not a player!");
                    }
                }
            }
Ejemplo n.º 4
0
 public DuelPlayerInfoGump(DuelPoints duelPoints)
     : base(200, 00)
 {
     this.Closable   = true;
     this.Disposable = true;
     this.Dragable   = true;
     this.Resizable  = false;
     this.AddPage(0);
     this.AddBackground(36, 25, 402, 480, 3500);
     this.AddButton(401, 46, 3, 4, (int)Buttons.closeBtn, GumpButtonType.Reply, 0);
     this.AddLabel(105, 43, 36, @"Onsite Duel System Player Duel Information");
     this.AddLabel(105, 42, 36, @"Onsite Duel System Player Duel Information");
     this.AddLabel(168, 91, 36, @"Wins:");
     this.AddLabel(168, 90, 36, @"Wins:");
     this.AddLabel(122, 69, 36, @"Player Name: " + duelPoints.Mobile.Name);
     this.AddLabel(122, 68, 36, @"Player Name: " + duelPoints.Mobile.Name);
     this.AddLabel(163, 189, 36, @"Loses:");
     this.AddLabel(163, 188, 36, @"Loses:");
     this.AddLabel(81, 289, 36, @"Quickest Duel Time:");
     this.AddLabel(81, 288, 36, @"Quickest Duel Time:");
     this.AddLabel(87, 383, 36, @"Longest Duel Time:");
     this.AddLabel(87, 382, 36, @"Longest Duel Time:");
     this.AddHtml(206, 91, 215, 93, GetWins(duelPoints), (bool)true, (bool)true);
     this.AddHtml(206, 189, 215, 93, GetLoses(duelPoints), (bool)true, (bool)true);
     this.AddHtml(206, 287, 215, 93, GetQuickestTimes(duelPoints), (bool)true, (bool)true);
     this.AddHtml(206, 385, 215, 93, GetLongestTimes(duelPoints), (bool)true, (bool)true);
 }
Ejemplo n.º 5
0
        public static string GetLongestTimes(DuelPoints duelPoints)
        {
            if (duelPoints == null || (duelPoints.LongestLoses.Count == 0 && duelPoints.LongestWins.Count == 0))
            {
                return("No records");
            }

            StringBuilder sb = new StringBuilder();

            if (duelPoints.LongestWins.Count > 0)
            {
                sb.Append("Longest Wins" + br);
                IDictionaryEnumerator myEnum = duelPoints.LongestWins.GetEnumerator();

                while (myEnum.MoveNext())
                {
                    int      players = (int)myEnum.Key;
                    DuelInfo dInfo   = (DuelInfo)myEnum.Value;

                    if (dInfo.DuelTime.Minutes == 0)
                    {
                        sb.Append(String.Format("{0}vs{0} - {1} seconds{2}", players, dInfo.DuelTime.Seconds, br));
                    }
                    else
                    {
                        sb.Append(String.Format("{0}vs{0} - {1} minutes {2} seconds{3}", players, dInfo.DuelTime.Minutes, dInfo.DuelTime.Seconds, br));
                    }
                }
            }

            if (duelPoints.LongestLoses.Count > 0)
            {
                sb.Append(br);
                sb.Append("Longest Loses" + br);
                IDictionaryEnumerator myEnum = duelPoints.LongestLoses.GetEnumerator();

                while (myEnum.MoveNext())
                {
                    int      players = (int)myEnum.Key;
                    DuelInfo dInfo   = (DuelInfo)myEnum.Value;


                    if (dInfo.DuelTime.Minutes == 0)
                    {
                        sb.Append(String.Format("{0}vs{0} - {1} seconds{2}", players, dInfo.DuelTime.Seconds, br));
                    }
                    else
                    {
                        sb.Append(String.Format("{0}vs{0} - {1} minutes {2} seconds{3}", players, dInfo.DuelTime.Minutes, dInfo.DuelTime.Seconds, br));
                    }
                }
            }

            return(sb.ToString());
        }
Ejemplo n.º 6
0
            protected override void OnTargetCancel(Mobile from, TargetCancelType cancelType)
            {
                if (from != null && cancelType == TargetCancelType.Canceled && from is PlayerMobile)
                {
                    PlayerMobile pm = (PlayerMobile)from;
                    DuelPoints   dp = null;

                    if (DuelController.PointsTable.TryGetValue(from.Serial, out dp))
                    {
                        from.SendGump(new DuelPlayerInfoGump(dp));
                    }
                    else
                    {
                        from.SendMessage(53, "You have no dueling record.");
                    }
                }
            }
Ejemplo n.º 7
0
        public static void AddLoss(Duel duel, Mobile m)
        {
            DuelPoints dPoints;

            if (m_PointsTable.TryGetValue(m.Serial, out dPoints))
            {
                DuelInfo dInfo = new DuelInfo(duel.Attackers.Contains(m) ? duel.Attackers : duel.Defenders,
                                              TimeSpan.FromSeconds(DuelController.Instance.DuelLengthInSeconds - duel.DuelTimer.SecondsRemaining));
                dPoints.AddLoss(duel.Attackers.Count, dInfo);
            }
            else
            {
                dPoints = new DuelPoints(m);
                DuelInfo dInfo = new DuelInfo(duel.Attackers.Contains(m) ? duel.Attackers : duel.Defenders,
                                              TimeSpan.FromSeconds(DuelController.Instance.DuelLengthInSeconds - duel.DuelTimer.SecondsRemaining));
                dPoints.AddLoss(duel.Attackers.Count, dInfo);
                m_PointsTable[m.Serial] = dPoints;
            }
        }
Ejemplo n.º 8
0
        public static string GetWins(DuelPoints duelPoints)
        {
            if (duelPoints == null || duelPoints.Wins.Count == 0)
            {
                return("No records");
            }

            StringBuilder sb = new StringBuilder();

            IDictionaryEnumerator myEnum = duelPoints.Wins.GetEnumerator();

            while (myEnum.MoveNext())
            {
                int players = (int)myEnum.Key;
                int loses   = (int)myEnum.Value;

                sb.Append(String.Format("{0}vs{0} - {1} wins{2}", players, loses, br));
            }

            return(sb.ToString());
        }
Ejemplo n.º 9
0
        public static string GetWins(DuelPoints duelPoints)
        {
            if (duelPoints == null || duelPoints.Wins.Count == 0)
                return "No records";

            StringBuilder sb = new StringBuilder();

            IDictionaryEnumerator myEnum = duelPoints.Wins.GetEnumerator();

            while (myEnum.MoveNext())
            {
                int players = (int)myEnum.Key;
                int loses = (int)myEnum.Value;

                sb.Append(String.Format("{0}vs{0} - {1} wins{2}", players, loses, br));
            }

            return sb.ToString();
        }
Ejemplo n.º 10
0
        public static string GetQuickestTimes(DuelPoints duelPoints)
        {
            if (duelPoints == null || (duelPoints.FastestWins.Count == 0 && duelPoints.FastestLoses.Count == 0))
                return "No records";

            StringBuilder sb = new StringBuilder();

            if (duelPoints.FastestWins.Count > 0)
            {
                sb.Append("Fastest Wins" + br);
                IDictionaryEnumerator myEnum = duelPoints.FastestWins.GetEnumerator();

                while (myEnum.MoveNext())
                {
                    int players = (int)myEnum.Key;
                    DuelInfo dInfo = (DuelInfo)myEnum.Value;

					if (dInfo.DuelTime.Minutes == 0)
						sb.Append(String.Format("{0}vs{0} - {1} seconds{2}", players, dInfo.DuelTime.Seconds, br));
					else
						sb.Append(String.Format("{0}vs{0} - {1} minutes {2} seconds{3}", players, dInfo.DuelTime.Minutes, dInfo.DuelTime.Seconds, br));
                }
            }

            if (duelPoints.FastestLoses.Count > 0)
            {
                sb.Append(br);
                sb.Append("Fastest Loses" + br);
                IDictionaryEnumerator myEnum = duelPoints.FastestLoses.GetEnumerator();

                while (myEnum.MoveNext())
                {
                    int players = (int)myEnum.Key;
                    DuelInfo dInfo = (DuelInfo)myEnum.Value;

					if (dInfo.DuelTime.Minutes == 0)
						sb.Append(String.Format("{0}vs{0} - {1} seconds{2}", players, dInfo.DuelTime.Seconds, br));
					else
						sb.Append(String.Format("{0}vs{0} - {1} minutes {2} seconds{3}", players, dInfo.DuelTime.Minutes, dInfo.DuelTime.Seconds, br));
                }
            }

            return sb.ToString();
        }
Ejemplo n.º 11
0
		public DuelPlayerInfoGump( DuelPoints duelPoints )
			: base( 200, 00 )
		{
			this.Closable=true;
			this.Disposable=true;
			this.Dragable=true;
			this.Resizable=false;
			this.AddPage(0);
			this.AddBackground(36, 25, 402, 480, 3500);
            this.AddButton(401, 46, 3, 4, (int)Buttons.closeBtn, GumpButtonType.Reply, 0);
            this.AddLabel( 105, 43, 36, @"Onsite Duel System Player Duel Information" );
            this.AddLabel( 105, 42, 36, @"Onsite Duel System Player Duel Information" );
            this.AddLabel( 168, 91, 36, @"Wins:" );
            this.AddLabel( 168, 90, 36, @"Wins:" );
            this.AddLabel( 122, 69, 36, @"Player Name: " + duelPoints.Mobile.Name );
            this.AddLabel( 122, 68, 36, @"Player Name: " + duelPoints.Mobile.Name );
            this.AddLabel( 163, 189, 36, @"Loses:" );
            this.AddLabel( 163, 188, 36, @"Loses:" );
            this.AddLabel( 81, 289, 36, @"Quickest Duel Time:" );
            this.AddLabel( 81, 288, 36, @"Quickest Duel Time:" );
            this.AddLabel( 87, 383, 36, @"Longest Duel Time:" );
            this.AddLabel( 87, 382, 36, @"Longest Duel Time:" );
            this.AddHtml(206, 91, 215, 93, GetWins( duelPoints ), (bool)true, (bool)true);
            this.AddHtml(206, 189, 215, 93, GetLoses( duelPoints ), (bool)true, (bool)true);
            this.AddHtml(206, 287, 215, 93, GetQuickestTimes(duelPoints), (bool)true, (bool)true);
            this.AddHtml(206, 385, 215, 93, GetLongestTimes(duelPoints), (bool)true, (bool)true);
        }
Ejemplo n.º 12
0
        public DuelScoreBoardGump(int contestants)
            : base(200, 200)
        {
            m_Contestants = contestants;

            Closable   = true;
            Disposable = true;
            Dragable   = true;
            Resizable  = false;

            AddPage(0);
            AddBackground(36, 25, 732, 375, 3500);
            AddButton(733, 46, 3, 4, (int)Buttons.CloseBtn, GumpButtonType.Reply, 0);
            AddLabel(292, 39, LabelHue, @"Onsite Duel System Top 10 Scoreboard");
            AddLabel(292, 38, LabelHue, @"Onsite Duel System Top 10 Scoreboard");
            AddLabel(104, 82, LabelHue, @"Name");
            AddLabel(104, 81, LabelHue, @"Name");
            AddLabel(207, 82, LabelHue, @"Wins");
            AddLabel(207, 81, LabelHue, @"Wins");
            AddLabel(270, 82, LabelHue, @"Loses");
            AddLabel(270, 81, LabelHue, @"Loses");
            AddLabel(343, 82, LabelHue, @"Longest Duel");
            AddLabel(343, 81, LabelHue, @"Longest Duel");
            AddLabel(476, 82, LabelHue, @"Quickest Duel");
            AddLabel(476, 81, LabelHue, @"Quickest Duel");
            AddLabel(590, 82, LabelHue, @"Total Wins");
            AddLabel(590, 81, LabelHue, @"Total Wins");
            AddLabel(674, 82, LabelHue, @"Total Loses");
            AddLabel(674, 81, LabelHue, @"Total Loses");
            string duelType = string.Format("Duel Type: {0}vs{0}", m_Contestants / 2);

            AddLabel(371, 60, LabelHue, duelType);
            AddLabel(371, 59, LabelHue, duelType);

            AddButton(291, 368, 5603, 5607, (int)Buttons.prevBtn, GumpButtonType.Reply, 0);
            AddButton(494, 368, 5601, 5605, (int)Buttons.nextBtn, GumpButtonType.Reply, 0);
            AddLabel(314, 366, LabelHue, @"Previous");
            AddLabel(461, 366, LabelHue, @"Next");

            // fill in the data
            try
            {
                IDictionaryEnumerator myEnum = DuelController.PointsTable.GetEnumerator();

                while (myEnum.MoveNext())
                {
                    DuelPoints dp = (DuelPoints)myEnum.Value;
                    m_DuelRankData.Add(new DuelRankData(m_Contestants / 2, dp.Mobile));
                }

                List <DuelRankData> badEntries = new List <DuelRankData>();
                foreach (DuelRankData d in m_DuelRankData)
                {
                    if (!d.IsValid)
                    {
                        badEntries.Add(d);
                    }
                }

                foreach (DuelRankData d in badEntries)
                {
                    m_DuelRankData.Remove(d);
                }

                badEntries.Clear();

                m_DuelRankData.Sort(new DuelRankData());

                if (m_DuelRankData.Count > 0)
                {
                    for (int i = 0; i < 10 && i < m_DuelRankData.Count; i++)
                    {
                        AddLine(i, m_DuelRankData[i]);
                    }
                }
                else
                {
                    AddLabel(319, 202, 53, "No data for this dueling class.");
                }
            }
            catch (Exception e)
            {
                AddLabel(200, 202, 53, "An error occured creating the scoreboard, please try again in a moment.");
                Console.WriteLine("Caught an exception creating Dueling scoreboard!");
                Console.WriteLine(e.ToString());
            }
        }
Ejemplo n.º 13
0
		public static void AddLoss(Duel duel, Mobile m)
		{
			DuelPoints dPoints;
			if (m_PointsTable.TryGetValue(m.Serial, out dPoints))
			{
				DuelInfo dInfo = new DuelInfo(duel.Attackers.Contains(m) ? duel.Attackers : duel.Defenders,
					TimeSpan.FromSeconds(DuelController.Instance.DuelLengthInSeconds - duel.DuelTimer.SecondsRemaining));
				dPoints.AddLoss(duel.Attackers.Count, dInfo);
			}
			else
			{
				dPoints = new DuelPoints(m);
				DuelInfo dInfo = new DuelInfo(duel.Attackers.Contains(m) ? duel.Attackers : duel.Defenders,
					TimeSpan.FromSeconds(DuelController.Instance.DuelLengthInSeconds - duel.DuelTimer.SecondsRemaining));
				dPoints.AddLoss(duel.Attackers.Count, dInfo);
				m_PointsTable[m.Serial] = dPoints;
			}
		}
Ejemplo n.º 14
0
		private static void InternalLoad(GenericReader reader)
		{
			int version = reader.ReadEncodedInt();

			switch (version)
			{
				case 1:
					{
						m_Enabled = reader.ReadBool();
						m_Instance.m_DuelLengthInSeconds = reader.ReadEncodedInt();
						m_Instance.m_MaxDistance = reader.ReadEncodedInt();
						goto case 0;
					}
				case 0:
					{
						int count = reader.ReadEncodedInt();

						for (int i = 0; i < count; i++)
						{
							Serial serial = (Serial)reader.ReadInt();
							DuelPoints points = new DuelPoints(reader);
							m_PointsTable.Add(serial, points);
						}

						m_DeclineDuelList = reader.ReadStrongMobileList();

						break;
					}
			}
		}