public static Report CompileFactionLeaderboard() { Report report = new Report("Faction Leaderboard", "60%"); report.Columns.Add("28%", "center", "Name"); report.Columns.Add("28%", "center", "Faction"); report.Columns.Add("28%", "center", "Office"); report.Columns.Add("16%", "center", "Kill Points"); ArrayList list = new ArrayList(); FactionCollection factions = Faction.Factions; for (int i = 0; i < factions.Count; ++i) { Faction faction = factions[i]; list.AddRange(faction.Members); } list.Sort(); list.Reverse(); for (int i = 0; i < list.Count && i < 15; ++i) { PlayerState pl = (PlayerState)list[i]; string office; if (pl.Faction.Commander == pl.Mobile) { office = "Commanding Lord"; } else if (pl.Finance != null) { office = String.Format("{0} Finance Minister", pl.Finance.Definition.FriendlyName); } else if (pl.Sheriff != null) { office = String.Format("{0} Sheriff", pl.Sheriff.Definition.FriendlyName); } else { office = ""; } ReportItem item = new ReportItem(); item.Values.Add(pl.Mobile.Name); item.Values.Add(pl.Faction.Definition.FriendlyName); item.Values.Add(office); item.Values.Add(pl.KillPoints.ToString(), "N0"); report.Items.Add(item); } return(report); }
public static Chart CompileFactionMembershipChart() { PieChart chart = new PieChart("Faction Membership", "graphs_faction_membership", true); FactionCollection factions = Faction.Factions; for (int i = 0; i < factions.Count; ++i) { chart.Items.Add(factions[i].Definition.FriendlyName, factions[i].Members.Count); } return(chart); }
public static Report CompileFactionReport() { Report report = new Report("Faction Statistics", "80%"); report.Columns.Add("20%", "center", "Name"); report.Columns.Add("20%", "center", "Commander"); report.Columns.Add("15%", "center", "Members"); report.Columns.Add("15%", "center", "Merchants"); report.Columns.Add("15%", "center", "Kill Points"); report.Columns.Add("15%", "center", "Silver"); FactionCollection factions = Faction.Factions; for (int i = 0; i < factions.Count; ++i) { Faction faction = factions[i]; PlayerStateCollection members = faction.Members; int totalKillPoints = 0; int totalMerchants = 0; for (int j = 0; j < members.Count; ++j) { totalKillPoints += members[j].KillPoints; if (members[j].MerchantTitle != MerchantTitle.None) { ++totalMerchants; } } ReportItem item = new ReportItem(); item.Values.Add(faction.Definition.FriendlyName); item.Values.Add(faction.Commander == null ? "" : faction.Commander.Name); item.Values.Add(faction.Members.Count.ToString(), "N0"); item.Values.Add(totalMerchants.ToString(), "N0"); item.Values.Add(totalKillPoints.ToString(), "N0"); item.Values.Add(faction.Silver.ToString(), "N0"); report.Items.Add(item); } return(report); }
public void DeleteFaction() { try { int factionID = FactionCollection[SelectedIndex].ID; var forgeDatabase = Global.Instance.ForgeDatabase(); FACTION faction = forgeDatabase.Factions.Single(x => x.ID == factionID); forgeDatabase.Factions.DeleteOnSubmit(faction); forgeDatabase.SubmitChanges(); FactionCollection.RemoveAt(SelectedIndex); Global.Instance.FactionCollection = new BindableCollection <FactionCollection>(FactionCollection); ClearFactionInfo(); SelectedIndex = -1; } catch { } }