From c0b409c5327d578ecfdda13af561f4d8ebb3dc59 Mon Sep 17 00:00:00 2001 From: Ian Giese Date: Thu, 15 Oct 2026 12:09:35 -0400 Subject: [PATCH] Added more metrics for bingo stats --- osrs-toolbox/ViewModels/HomePageViewModel.cs | 151 ++++++++++++++----- 1 file changed, 114 insertions(+), 37 deletions(-) diff --git a/osrs-toolbox/ViewModels/HomePageViewModel.cs b/osrs-toolbox/ViewModels/HomePageViewModel.cs index 1c00659..0f66f66 100644 --- a/osrs-toolbox/ViewModels/HomePageViewModel.cs +++ b/osrs-toolbox/ViewModels/HomePageViewModel.cs @@ -167,6 +167,48 @@ namespace osrs_toolbox double TeamSixEHP = 0; double TeamSixEHB = 0; + double TeamOneCox = 0; + double TeamOneCoxCM = 0; + double TeamOneTob = 0; + double TeamOneTobHM = 0; + double TeamOneToa = 0; + double TeamOneToaExpert = 0; + + double TeamTwoCox = 0; + double TeamTwoCoxCM = 0; + double TeamTwoTob = 0; + double TeamTwoTobHM = 0; + double TeamTwoToa = 0; + double TeamTwoToaExpert = 0; + + double TeamThreeCox = 0; + double TeamThreeCoxCM = 0; + double TeamThreeTob = 0; + double TeamThreeTobHM = 0; + double TeamThreeToa = 0; + double TeamThreeToaExpert = 0; + + double TeamFourCox = 0; + double TeamFourCoxCM = 0; + double TeamFourTob = 0; + double TeamFourTobHM = 0; + double TeamFourToa = 0; + double TeamFourToaExpert = 0; + + double TeamFiveCox = 0; + double TeamFiveCoxCM = 0; + double TeamFiveTob = 0; + double TeamFiveTobHM = 0; + double TeamFiveToa = 0; + double TeamFiveToaExpert = 0; + + double TeamSixCox = 0; + double TeamSixCoxCM = 0; + double TeamSixTob = 0; + double TeamSixTobHM = 0; + double TeamSixToa = 0; + double TeamSixToaExpert = 0; + double TeamOneBosses = 0; double TeamOneRaids = 0; double TeamTwoBosses = 0; @@ -182,6 +224,12 @@ namespace osrs_toolbox double TotalEHP = 0; double TotalEHB = 0; + double TotalCox = 0; + double TotalCoxCM = 0; + double TotalTob = 0; + double TotalTobHM = 0; + double TotalToa = 0; + double TotalToaExpert = 0; double TotalRaids = 0; double TotalBosses = 0; double TotalRunecraftXP = 0; @@ -206,12 +254,12 @@ namespace osrs_toolbox TeamOneEHP += pg.data.computed.ehp.value.gained; TeamOneEHB += pg.data.computed.ehb.value.gained; - TeamOneRaids += pg.data.bosses.chambers_of_xeric.kills.gained; - TeamOneRaids += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; - TeamOneRaids += pg.data.bosses.theatre_of_blood.kills.gained; - TeamOneRaids += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; - TeamOneRaids += pg.data.bosses.tombs_of_amascut.kills.gained; - TeamOneRaids += pg.data.bosses.tombs_of_amascut_expert.kills.gained; + TeamOneCox += pg.data.bosses.chambers_of_xeric.kills.gained; + TeamOneCoxCM += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; + TeamOneTob += pg.data.bosses.theatre_of_blood.kills.gained; + TeamOneTobHM += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; + TeamOneToa += pg.data.bosses.tombs_of_amascut.kills.gained; + TeamOneToaExpert += pg.data.bosses.tombs_of_amascut_expert.kills.gained; TeamOneBosses += pg.data.bosses.abyssal_sire.kills.gained; TeamOneBosses += pg.data.bosses.alchemical_hydra.kills.gained; @@ -292,6 +340,7 @@ namespace osrs_toolbox TeamOneGains.Add(pg); } + TeamOneRaids = TeamOneCox + TeamOneCoxCM + TeamOneTob + TeamOneTobHM + TeamOneToa + TeamOneToaExpert; //Thread.Sleep(60000); foreach (string Player in TeamTwo) { @@ -310,12 +359,12 @@ namespace osrs_toolbox TeamTwoEHP += pg.data.computed.ehp.value.gained; TeamTwoEHB += pg.data.computed.ehb.value.gained; - TeamTwoRaids += pg.data.bosses.chambers_of_xeric.kills.gained; - TeamTwoRaids += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; - TeamTwoRaids += pg.data.bosses.theatre_of_blood.kills.gained; - TeamTwoRaids += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; - TeamTwoRaids += pg.data.bosses.tombs_of_amascut.kills.gained; - TeamTwoRaids += pg.data.bosses.tombs_of_amascut_expert.kills.gained; + TeamTwoCox += pg.data.bosses.chambers_of_xeric.kills.gained; + TeamTwoCoxCM += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; + TeamTwoTob += pg.data.bosses.theatre_of_blood.kills.gained; + TeamTwoTobHM += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; + TeamTwoToa += pg.data.bosses.tombs_of_amascut.kills.gained; + TeamTwoToaExpert += pg.data.bosses.tombs_of_amascut_expert.kills.gained; TeamTwoBosses += pg.data.bosses.abyssal_sire.kills.gained; TeamTwoBosses += pg.data.bosses.alchemical_hydra.kills.gained; @@ -396,6 +445,7 @@ namespace osrs_toolbox TeamTwoGains.Add(pg); } + TeamTwoRaids = TeamTwoCox + TeamTwoCoxCM + TeamTwoTob + TeamTwoTobHM + TeamTwoToa + TeamTwoToaExpert; //Thread.Sleep(60000); foreach (string Player in TeamThree) { @@ -414,12 +464,12 @@ namespace osrs_toolbox TeamThreeEHP += pg.data.computed.ehp.value.gained; TeamThreeEHB += pg.data.computed.ehb.value.gained; - TeamThreeRaids += pg.data.bosses.chambers_of_xeric.kills.gained; - TeamThreeRaids += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; - TeamThreeRaids += pg.data.bosses.theatre_of_blood.kills.gained; - TeamThreeRaids += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; - TeamThreeRaids += pg.data.bosses.tombs_of_amascut.kills.gained; - TeamThreeRaids += pg.data.bosses.tombs_of_amascut_expert.kills.gained; + TeamThreeCox += pg.data.bosses.chambers_of_xeric.kills.gained; + TeamThreeCoxCM += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; + TeamThreeTob += pg.data.bosses.theatre_of_blood.kills.gained; + TeamThreeTobHM += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; + TeamThreeToa += pg.data.bosses.tombs_of_amascut.kills.gained; + TeamThreeToaExpert += pg.data.bosses.tombs_of_amascut_expert.kills.gained; TeamThreeBosses += pg.data.bosses.abyssal_sire.kills.gained; TeamThreeBosses += pg.data.bosses.alchemical_hydra.kills.gained; @@ -500,6 +550,7 @@ namespace osrs_toolbox TeamThreeGains.Add(pg); } + TeamThreeRaids = TeamThreeCox + TeamThreeCoxCM + TeamThreeTob + TeamThreeTobHM + TeamThreeToa + TeamThreeToaExpert; Thread.Sleep(60000); foreach (string Player in TeamFour) { @@ -518,12 +569,12 @@ namespace osrs_toolbox TeamFourEHP += pg.data.computed.ehp.value.gained; TeamFourEHB += pg.data.computed.ehb.value.gained; - TeamFourRaids += pg.data.bosses.chambers_of_xeric.kills.gained; - TeamFourRaids += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; - TeamFourRaids += pg.data.bosses.theatre_of_blood.kills.gained; - TeamFourRaids += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; - TeamFourRaids += pg.data.bosses.tombs_of_amascut.kills.gained; - TeamFourRaids += pg.data.bosses.tombs_of_amascut_expert.kills.gained; + TeamFourCox += pg.data.bosses.chambers_of_xeric.kills.gained; + TeamFourCoxCM += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; + TeamFourTob += pg.data.bosses.theatre_of_blood.kills.gained; + TeamFourTobHM += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; + TeamFourToa += pg.data.bosses.tombs_of_amascut.kills.gained; + TeamFourToaExpert += pg.data.bosses.tombs_of_amascut_expert.kills.gained; TeamFourBosses += pg.data.bosses.abyssal_sire.kills.gained; TeamFourBosses += pg.data.bosses.alchemical_hydra.kills.gained; @@ -604,6 +655,7 @@ namespace osrs_toolbox TeamFourGains.Add(pg); } + TeamFourRaids = TeamFourCox + TeamFourCoxCM + TeamFourTob + TeamFourTobHM + TeamFourToa + TeamFourToaExpert; //Thread.Sleep(60000); foreach (string Player in TeamFive) { @@ -622,12 +674,12 @@ namespace osrs_toolbox TeamFiveEHP += pg.data.computed.ehp.value.gained; TeamFiveEHB += pg.data.computed.ehb.value.gained; - TeamFiveRaids += pg.data.bosses.chambers_of_xeric.kills.gained; - TeamFiveRaids += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; - TeamFiveRaids += pg.data.bosses.theatre_of_blood.kills.gained; - TeamFiveRaids += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; - TeamFiveRaids += pg.data.bosses.tombs_of_amascut.kills.gained; - TeamFiveRaids += pg.data.bosses.tombs_of_amascut_expert.kills.gained; + TeamFiveCox += pg.data.bosses.chambers_of_xeric.kills.gained; + TeamFiveCoxCM += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; + TeamFiveTob += pg.data.bosses.theatre_of_blood.kills.gained; + TeamFiveTobHM += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; + TeamFiveToa += pg.data.bosses.tombs_of_amascut.kills.gained; + TeamFiveToaExpert += pg.data.bosses.tombs_of_amascut_expert.kills.gained; TeamFiveBosses += pg.data.bosses.abyssal_sire.kills.gained; TeamFiveBosses += pg.data.bosses.alchemical_hydra.kills.gained; @@ -708,6 +760,7 @@ namespace osrs_toolbox TeamFiveGains.Add(pg); } + TeamFiveRaids = TeamFiveCox + TeamFiveCoxCM + TeamFiveTob + TeamFiveTobHM + TeamFiveToa + TeamFiveToaExpert; //Thread.Sleep(60000); foreach (string Player in TeamSix) { @@ -726,12 +779,12 @@ namespace osrs_toolbox TeamSixEHP += pg.data.computed.ehp.value.gained; TeamSixEHB += pg.data.computed.ehb.value.gained; - TeamSixRaids += pg.data.bosses.chambers_of_xeric.kills.gained; - TeamSixRaids += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; - TeamSixRaids += pg.data.bosses.theatre_of_blood.kills.gained; - TeamSixRaids += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; - TeamSixRaids += pg.data.bosses.tombs_of_amascut.kills.gained; - TeamSixRaids += pg.data.bosses.tombs_of_amascut_expert.kills.gained; + TeamSixCox += pg.data.bosses.chambers_of_xeric.kills.gained; + TeamSixCoxCM += pg.data.bosses.chambers_of_xeric_challenge_mode.kills.gained; + TeamSixTob += pg.data.bosses.theatre_of_blood.kills.gained; + TeamSixTobHM += pg.data.bosses.theatre_of_blood_hard_mode.kills.gained; + TeamSixToa += pg.data.bosses.tombs_of_amascut.kills.gained; + TeamSixToaExpert += pg.data.bosses.tombs_of_amascut_expert.kills.gained; TeamSixBosses += pg.data.bosses.abyssal_sire.kills.gained; TeamSixBosses += pg.data.bosses.alchemical_hydra.kills.gained; @@ -812,12 +865,32 @@ namespace osrs_toolbox TeamSixGains.Add(pg); } + TeamSixRaids = TeamSixCox + TeamSixCoxCM + TeamSixTob + TeamSixTobHM + TeamSixToa + TeamSixToaExpert; TotalEHP = TeamOneEHP + TeamTwoEHP + TeamThreeEHP + TeamFourEHP + TeamFiveEHP + TeamSixEHP; TotalEHB = TeamOneEHB + TeamTwoEHB + TeamThreeEHB + TeamFourEHB + TeamFiveEHB + TeamSixEHB; - TotalRaids = TeamOneRaids + TeamTwoRaids + TeamThreeRaids + TeamFourRaids + TeamFiveRaids + TeamSixRaids; + TotalCox = TeamOneCox + TeamTwoCox + TeamThreeCox + TeamFourCox + TeamFiveCox + TeamSixCox; + TotalCoxCM = TeamOneCoxCM + TeamTwoCoxCM + TeamThreeCoxCM + TeamFourCoxCM + TeamFiveCoxCM + TeamSixCoxCM; + TotalTob = TeamOneTob + TeamTwoTob + TeamThreeTob + TeamFourTob + TeamFiveTob + TeamSixTob; + TotalTobHM = TeamOneTobHM + TeamTwoTobHM + TeamThreeTobHM + TeamFourTobHM + TeamFiveTobHM + TeamSixTobHM; + TotalToa = TeamOneToa + TeamTwoToa + TeamThreeToa + TeamFourToa + TeamFiveToa + TeamSixToa; + TotalToaExpert = TeamOneToaExpert + TeamTwoToaExpert + TeamThreeToaExpert + TeamFourToaExpert + TeamFiveToaExpert + TeamSixToaExpert; + TotalRaids = TotalCox + TotalCoxCM + TotalTob + TotalTobHM + TotalToa + TotalToaExpert; TotalBosses = TeamOneBosses + TeamTwoBosses + TeamThreeBosses + TeamFourBosses + TeamFiveBosses + TeamSixBosses; + string PopularRaid = ((TotalCox + TotalCoxCM) > (TotalTob + TotalTobHM) && (TotalCox + TotalCoxCM) > (TotalToa + TotalToaExpert)) ? "Chambers of Xeric" : + (TotalTob + TotalTobHM) > (TotalToa + TotalToaExpert) ? "Theatre of Blood" : + "Tombs of Amascut"; + + string PopularVariant = TotalCox > TotalCoxCM && TotalCox > TotalTob && TotalCox > TotalTobHM && TotalCox > TotalToa && TotalCox > TotalToaExpert ? "Chambers of Xeric" : + TotalCoxCM > TotalTob && TotalCoxCM > TotalTobHM && TotalCoxCM > TotalToa && TotalCoxCM > TotalToaExpert ? "Chambers of Xeric: Challenge Mode" : + TotalTob > TotalTobHM && TotalTob > TotalToa && TotalTob > TotalToaExpert ? "Theatre of Blood" : + TotalTobHM > TotalToa && TotalTobHM > TotalToaExpert ? "Theatre of Blood: Hard Mode" : + TotalToa > TotalToaExpert ? "Tombs of Amascut" : + "Tombs of Amascut: Expert Mode"; + + string PopularBoss = string.Empty; + string TeamStatsFormat = "Bosses Killed: {0}\n" + "Raids Completed: {1}\n" + "EHP: {2}\n" + @@ -834,6 +907,9 @@ namespace osrs_toolbox "EHP Gained: {1}\n" + "EHB MVP: {2}\n" + "EHB Gained: {3}"; + string MostPopularFormat = "Raid: {0}\n" + + "Raid Variant: {1}\n" + + "Boss: {2}"; MessageBox.Show(string.Format(TeamStatsFormat, TeamOneBosses, TeamOneRaids, TeamOneEHP, TeamOneEHB), "Team 1"); MessageBox.Show(string.Format(TeamStatsFormat, TeamTwoBosses, TeamTwoRaids, TeamTwoEHP, TeamTwoEHB), "Team 2"); @@ -842,6 +918,7 @@ namespace osrs_toolbox MessageBox.Show(string.Format(TeamStatsFormat, TeamFiveBosses, TeamFiveRaids, TeamFiveEHP, TeamFiveEHB), "Team 5"); MessageBox.Show(string.Format(TeamStatsFormat, TeamSixBosses, TeamSixRaids, TeamSixEHP, TeamSixEHB), "Team 6"); MessageBox.Show(string.Format(TotalStatsFormat, TotalBosses, TotalRaids, TotalEHP, TotalEHB, TotalRunecraftXP, TotalSailingXP, TotalSlayerXP, TotalCombatXP), "Overall Bingo Stats"); + MessageBox.Show(string.Format(MostPopularFormat, PopularRaid, PopularVariant, PopularBoss), "Most Popular Content"); MessageBox.Show(string.Format(MVPStatsFormat, EHPMVP, HighestEHP, EHBMVP, HighestEHB), "Bingo MVPs"); } }