using System; using System.Collections.Generic; using Server.Text; namespace Server.Engines.ConPVP { public class TourneyParticipant : IComparable { public TourneyParticipant(Mobile owner) { Log = new List(); Players = new List { owner }; } public TourneyParticipant(List players) { Log = new List(); Players = players; } public List Players { get; set; } public List Log { get; set; } public int FreeAdvances { get; set; } public int TotalLadderXP { get { var ladder = Ladder.Instance; if (ladder == null) { return 0; } var total = 0; for (var i = 0; i < Players.Count; ++i) { var mob = Players[i]; var entry = ladder.Find(mob); if (entry != null) { total += entry.Experience; } } return total; } } public string NameList { get { using var sb = ValueStringBuilder.Create(256); for (var i = 0; i < Players.Count; ++i) { if (Players[i] == null) { continue; } var mob = Players[i]; if (sb.Length > 0) { if (Players.Count == 2) { sb.Append(" and "); } else if (i + 1 < Players.Count) { sb.Append(", "); } else { sb.Append(", and "); } } sb.Append(mob.Name); } return sb.Length == 0 ? "Empty" : sb.ToString(); } } public int CompareTo(TourneyParticipant p) => p.TotalLadderXP - TotalLadderXP; public void AddLog(string text) => Log.Add(text); public void WonMatch(TourneyMatch match) { AddLog("Match won."); } public void LostMatch(TourneyMatch match) { AddLog("Match lost."); } } }