Esempio n. 1
0
        public static IEnumerable <PvPProfile> GetSortedProfiles(
            PvPProfileRankOrder order,
            IEnumerable <PvPProfile> profiles,
            PvPSeason season = null)
        {
            if (profiles == null)
            {
                profiles = Profiles.Values;
            }

            return(profiles.OrderByDescending(p => GetSortedValue(order, p, season)));
        }
Esempio n. 2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                AllowPlayerSearch = reader.ReadBool();
                AllowPlayerDelete = reader.ReadBool();
                RankingOrder      = reader.ReadFlag <PvPProfileRankOrder>();
            }
            break;
            }
        }
Esempio n. 3
0
        public PvPProfilesUI(
            Mobile user,
            PvPSeason season,
            Gump parent     = null,
            bool useConfirm = true,
            PvPProfileRankOrder sortOrder = PvPProfileRankOrder.None)
            : base(user, parent, emptyText: "There are no profiles to display.", title: "PvP Profiles")
        {
            Season = season ?? AutoPvP.CurrentSeason;

            SortOrder = sortOrder != PvPProfileRankOrder.None ? sortOrder : AutoPvP.CMOptions.Advanced.Profiles.RankingOrder;

            UseConfirmDialog = useConfirm;

            CanSearch = User.AccessLevel > AccessLevel.Player || AutoPvP.CMOptions.Advanced.Profiles.AllowPlayerSearch;

            ForceRecompile = true;
        }
Esempio n. 4
0
        public static long GetSortedValue(PvPProfileRankOrder order, PvPProfile profile, PvPSeason season = null)
        {
            switch (order)
            {
            case PvPProfileRankOrder.Points:
            {
                if (season == null)
                {
                    return(profile.TotalPointsGained - profile.TotalPointsLost);
                }

                var e = profile.History.EnsureEntry(season);

                return(e.PointsGained - e.PointsLost);
            }

            case PvPProfileRankOrder.Wins:
            {
                if (season == null)
                {
                    return(profile.TotalWins - profile.TotalLosses);
                }

                var e = profile.History.EnsureEntry(season);

                return(e.Wins - e.Losses);
            }

            case PvPProfileRankOrder.Kills:
            {
                if (season == null)
                {
                    return(profile.TotalKills - profile.TotalDeaths);
                }

                var e = profile.History.EnsureEntry(season);

                return(e.Kills - e.Deaths);
            }

            default:
                return(0);
            }
        }
Esempio n. 5
0
        public PvPProfileListGump(
            PlayerMobile user,
            PvPSeason season,
            Gump parent     = null,
            bool useConfirm = true,
            PvPProfileRankOrder sortOrder = PvPProfileRankOrder.None)
            : base(user, parent, emptyText: "There are no profiles to display.", title: "PvP Profiles")
        {
            UseConfirmDialog = useConfirm;
            RankSortOrder    = (sortOrder != PvPProfileRankOrder.None)
                                                                ? sortOrder
                                                                : AutoPvP.CMOptions.Advanced.Profiles.RankingOrder;
            Season = season ?? AutoPvP.CurrentSeason;

            CanSearch = User.AccessLevel >= AccessLevel.Counselor || AutoPvP.CMOptions.Advanced.Profiles.AllowPlayerSearch;

            ForceRecompile = true;
            AutoRefresh    = true;
        }
Esempio n. 6
0
        public static int GetProfileRank(PlayerMobile pm, PvPProfileRankOrder order, PvPSeason season = null)
        {
            if (pm == null || pm.Deleted || order == PvPProfileRankOrder.None)
            {
                return(-1);
            }

            var profiles = GetSortedProfiles(order, season);

            for (int rank = 0; rank < profiles.Count; rank++)
            {
                if (profiles[rank].Owner == pm)
                {
                    return(rank + 1);
                }
            }

            EnsureProfile(pm);
            return(profiles.Count + 1);
        }
Esempio n. 7
0
        public static long GetSortedValue(PvPProfileRankOrder order, PvPProfile profile, PvPSeason season = null)
        {
            switch (order)
            {
            case PvPProfileRankOrder.Points:
            {
                if (season == null)
                {
                    return(profile.TotalPoints);
                }

                return(profile.History.EnsureEntry(season).Points);
            }

            case PvPProfileRankOrder.Wins:
            {
                if (season == null)
                {
                    return(profile.TotalWins);
                }

                return(profile.History.EnsureEntry(season).Wins);
            }

            case PvPProfileRankOrder.Kills:
            {
                if (season == null)
                {
                    return(profile.TotalKills);
                }

                return(profile.History.EnsureEntry(season).Kills);
            }
            }

            return(0);
        }
Esempio n. 8
0
 public override void Reset()
 {
     AllowPlayerSearch = true;
     AllowPlayerDelete = false;
     RankingOrder      = PvPProfileRankOrder.Points;
 }
Esempio n. 9
0
 public override void Clear()
 {
     AllowPlayerSearch = false;
     AllowPlayerDelete = false;
     RankingOrder      = PvPProfileRankOrder.None;
 }
Esempio n. 10
0
 public AutoPvPProfileOptions()
 {
     AllowPlayerSearch = true;
     RankingOrder      = PvPProfileRankOrder.Points;
 }
Esempio n. 11
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.GetVersion();

			switch (version)
			{
				case 0:
					{
						AllowPlayerSearch = reader.ReadBool();
						AllowPlayerDelete = reader.ReadBool();
						RankingOrder = reader.ReadFlag<PvPProfileRankOrder>();
					}
					break;
			}
		}
Esempio n. 12
0
		public override void Reset()
		{
			AllowPlayerSearch = true;
			AllowPlayerDelete = false;
			RankingOrder = PvPProfileRankOrder.Points;
		}
Esempio n. 13
0
		public override void Clear()
		{
			AllowPlayerSearch = false;
			AllowPlayerDelete = false;
			RankingOrder = PvPProfileRankOrder.None;
		}
Esempio n. 14
0
        public static List <PvPProfile> GetSortedProfiles(
            PvPProfileRankOrder order, List <PvPProfile> profiles, PvPSeason season = null)
        {
            if (profiles == null || profiles.Count == 0)
            {
                profiles = new List <PvPProfile>(Profiles.Values);
            }

            switch (order)
            {
            case PvPProfileRankOrder.Points:
            {
                profiles.Sort(
                    (a, b) =>
                    {
                        if (a == b)
                        {
                            return(0);
                        }

                        if (b == null)
                        {
                            return(-1);
                        }

                        if (a == null)
                        {
                            return(1);
                        }

                        if (a.Deleted && b.Deleted)
                        {
                            return(0);
                        }

                        if (b.Deleted)
                        {
                            return(-1);
                        }

                        if (a.Deleted)
                        {
                            return(1);
                        }

                        long aTotal;
                        long bTotal;

                        if (season == null)
                        {
                            aTotal = a.TotalPointsGained - a.TotalPointsLost;
                            bTotal = b.TotalPointsGained - b.TotalPointsLost;
                        }
                        else
                        {
                            aTotal = a.History.EnsureEntry(season).PointsGained - a.History.EnsureEntry(season).PointsLost;
                            bTotal = b.History.EnsureEntry(season).PointsGained - b.History.EnsureEntry(season).PointsLost;
                        }

                        if (aTotal > bTotal)
                        {
                            return(-1);
                        }

                        if (aTotal < bTotal)
                        {
                            return(1);
                        }

                        return(0);
                    });
            }
            break;

            case PvPProfileRankOrder.Wins:
            {
                profiles.Sort(
                    (a, b) =>
                    {
                        if (a == b)
                        {
                            return(0);
                        }

                        if (b == null)
                        {
                            return(-1);
                        }

                        if (a == null)
                        {
                            return(1);
                        }

                        if (a.Deleted && b.Deleted)
                        {
                            return(0);
                        }

                        if (b.Deleted)
                        {
                            return(-1);
                        }

                        if (a.Deleted)
                        {
                            return(1);
                        }

                        long aTotal;
                        long bTotal;

                        if (season == null)
                        {
                            aTotal = a.TotalWins;
                            bTotal = b.TotalWins;
                        }
                        else
                        {
                            aTotal = a.History.EnsureEntry(season).Wins;
                            bTotal = b.History.EnsureEntry(season).Wins;
                        }

                        if (aTotal > bTotal)
                        {
                            return(-1);
                        }

                        if (aTotal < bTotal)
                        {
                            return(1);
                        }

                        return(0);
                    });
            }
            break;

            case PvPProfileRankOrder.Kills:
            {
                profiles.Sort(
                    (a, b) =>
                    {
                        if (a == b)
                        {
                            return(0);
                        }

                        if (b == null)
                        {
                            return(-1);
                        }

                        if (a == null)
                        {
                            return(1);
                        }

                        if (a.Deleted && b.Deleted)
                        {
                            return(0);
                        }

                        if (b.Deleted)
                        {
                            return(-1);
                        }

                        if (a.Deleted)
                        {
                            return(1);
                        }

                        long aTotal;
                        long bTotal;

                        if (season == null)
                        {
                            aTotal = a.TotalKills;
                            bTotal = b.TotalKills;
                        }
                        else
                        {
                            aTotal = a.History.EnsureEntry(season).Kills;
                            bTotal = b.History.EnsureEntry(season).Kills;
                        }

                        if (aTotal > bTotal)
                        {
                            return(-1);
                        }

                        if (aTotal < bTotal)
                        {
                            return(1);
                        }

                        return(0);
                    });
            }
            break;
            }

            return(profiles);
        }
Esempio n. 15
0
 public static List <PvPProfile> GetSortedProfiles(PvPProfileRankOrder order, PvPSeason season = null)
 {
     return(GetSortedProfiles(order, null, season));
 }
Esempio n. 16
0
		public AutoPvPProfileOptions()
		{
			AllowPlayerSearch = true;
			RankingOrder = PvPProfileRankOrder.Points;
		}