Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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 { }
        }