Added player lookup from official hiscores.

This commit is contained in:
2025-06-24 14:35:18 -04:00
parent 4f4339637c
commit 94a4cbea4c
7 changed files with 231 additions and 9 deletions

View File

@@ -12,7 +12,6 @@ namespace osrs_toolbox
private string _playerName;
private string _displayOption;
private string[] _displayOptions;
private string _displayOutput;
private ICommand _lookupPlayer;
@@ -26,7 +25,7 @@ namespace osrs_toolbox
public string DisplayOption
{
get { return _displayOption; }
set { SetProperty(ref _displayOption, value, nameof(DisplayOption)); }
set { SetProperty(ref _displayOption, value, nameof(DisplayOption)); OnPropertyChanged(nameof(DisplayOutput)); }
}
public string[] DisplayOptions
{
@@ -35,8 +34,133 @@ namespace osrs_toolbox
}
public string DisplayOutput
{
get { return _displayOutput; }
set { SetProperty(ref _displayOutput, value, nameof(DisplayOutput)); }
get
{
if (HiscoreInfo.Status != PlayerInfoStatus.Success)
return string.Empty;
string Output = HiscoreInfo.Name;
switch (DisplayOption)
{
case "Skills":
Output += string.Format("\nOverall Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Overall.Level, HiscoreInfo.Overall.Experience, HiscoreInfo.Overall.Rank);
Output += string.Format("\nAttack Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Attack.Level, HiscoreInfo.Attack.Experience, HiscoreInfo.Attack.Rank);
Output += string.Format("\nDefence Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Defence.Level, HiscoreInfo.Defence.Experience, HiscoreInfo.Defence.Rank);
Output += string.Format("\nStrength Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Strength.Level, HiscoreInfo.Strength.Experience, HiscoreInfo.Strength.Rank);
Output += string.Format("\nHitpoints Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Hitpoints.Level, HiscoreInfo.Hitpoints.Experience, HiscoreInfo.Hitpoints.Rank);
Output += string.Format("\nRanged Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Ranged.Level, HiscoreInfo.Ranged.Experience, HiscoreInfo.Ranged.Rank);
Output += string.Format("\nPrayer Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Prayer.Level, HiscoreInfo.Prayer.Experience, HiscoreInfo.Prayer.Rank);
Output += string.Format("\nMagic Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Magic.Level, HiscoreInfo.Magic.Experience, HiscoreInfo.Magic.Rank);
Output += string.Format("\nCooking Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Cooking.Level, HiscoreInfo.Cooking.Experience, HiscoreInfo.Cooking.Rank);
Output += string.Format("\nWoodcutting Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Woodcutting.Level, HiscoreInfo.Woodcutting.Experience, HiscoreInfo.Woodcutting.Rank);
Output += string.Format("\nFletching Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Fletching.Level, HiscoreInfo.Fletching.Experience, HiscoreInfo.Fletching.Rank);
Output += string.Format("\nFishing Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Fishing.Level, HiscoreInfo.Fishing.Experience, HiscoreInfo.Fishing.Rank);
Output += string.Format("\nFiremaking Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Firemaking.Level, HiscoreInfo.Firemaking.Experience, HiscoreInfo.Firemaking.Rank);
Output += string.Format("\nCrafting Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Crafting.Level, HiscoreInfo.Crafting.Experience, HiscoreInfo.Crafting.Rank);
Output += string.Format("\nSmithing Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Smithing.Level, HiscoreInfo.Smithing.Experience, HiscoreInfo.Smithing.Rank);
Output += string.Format("\nMining Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Mining.Level, HiscoreInfo.Mining.Experience, HiscoreInfo.Mining.Rank);
Output += string.Format("\nHerblore Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Herblore.Level, HiscoreInfo.Herblore.Experience, HiscoreInfo.Herblore.Rank);
Output += string.Format("\nAgility Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Agility.Level, HiscoreInfo.Agility.Experience, HiscoreInfo.Agility.Rank);
Output += string.Format("\nThieving Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Thieving.Level, HiscoreInfo.Thieving.Experience, HiscoreInfo.Thieving.Rank);
Output += string.Format("\nSlayer Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Slayer.Level, HiscoreInfo.Slayer.Experience, HiscoreInfo.Slayer.Rank);
Output += string.Format("\nFarming Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Farming.Level, HiscoreInfo.Farming.Experience, HiscoreInfo.Farming.Rank);
Output += string.Format("\nRunecrafting Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Runecrafting.Level, HiscoreInfo.Runecrafting.Experience, HiscoreInfo.Runecrafting.Rank);
Output += string.Format("\nHunter Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Hunter.Level, HiscoreInfo.Hunter.Experience, HiscoreInfo.Hunter.Rank);
Output += string.Format("\nConstruction Level: {0} XP: {1} Rank: {2}", HiscoreInfo.Construction.Level, HiscoreInfo.Construction.Experience, HiscoreInfo.Construction.Rank);
break;
case "Activities":
Output += string.Format("\nLeague Points: {0} Rank: {1}", HiscoreInfo.LeaguePoints.Score, HiscoreInfo.LeaguePoints.Rank);
Output += string.Format("\nBounty Hunter Rogues Score: {0} Rank: {1}", HiscoreInfo.BountyHunterRogues.Score, HiscoreInfo.BountyHunterRogues.Rank);
Output += string.Format("\nBounty Hunter Score: {0} Rank: {1}", HiscoreInfo.BountyHunter.Score, HiscoreInfo.BountyHunter.Rank);
Output += string.Format("\nBounty Hunter Rogues Legacy Score: {0} Rank: {1}", HiscoreInfo.BountyHunterRoguesLegacy.Score, HiscoreInfo.BountyHunterRoguesLegacy.Rank);
Output += string.Format("\nBounty Hunter Legacy Score: {0} Rank: {1}", HiscoreInfo.BountyHunterLegacy.Score, HiscoreInfo.BountyHunterLegacy.Rank);
Output += string.Format("\nDead Man Mode Points: {0} Rank: {1}", HiscoreInfo.DeadManMode.Score, HiscoreInfo.DeadManMode.Rank);
Output += string.Format("\nTotal Clue Scrolls: {0} Rank: {1}", HiscoreInfo.TotalCluesScrolls.Score, HiscoreInfo.TotalCluesScrolls.Rank);
Output += string.Format("\nBeginner Clue Scrolls: {0} Rank: {1}", HiscoreInfo.BeginnerClueScrolls.Score, HiscoreInfo.BeginnerClueScrolls.Rank);
Output += string.Format("\nEasy Clue Scrolls: {0} Rank: {1}", HiscoreInfo.EasyClueScrolls.Score, HiscoreInfo.EasyClueScrolls.Rank);
Output += string.Format("\nMedium Clue Scrolls: {0} Rank: {1}", HiscoreInfo.MediumClueScrolls.Score, HiscoreInfo.MediumClueScrolls.Rank);
Output += string.Format("\nHard Clue Scrolls: {0} Rank: {1}", HiscoreInfo.HardClueScrolls.Score, HiscoreInfo.HardClueScrolls.Rank);
Output += string.Format("\nElite Clue Scrolls: {0} Rank: {1}", HiscoreInfo.EliteClueScrolls.Score, HiscoreInfo.EliteClueScrolls.Rank);
Output += string.Format("\nMaster Clue Scrolls: {0} Rank: {1}", HiscoreInfo.MasterClueScrolls.Score, HiscoreInfo.MasterClueScrolls.Rank);
Output += string.Format("\nLast Man Standing Score: {0} Rank: {1}", HiscoreInfo.LastManStanding.Score, HiscoreInfo.LastManStanding.Rank);
Output += string.Format("\nPvP Arena Score: {0} Rank: {1}", HiscoreInfo.PvPArena.Score, HiscoreInfo.PvPArena.Rank);
Output += string.Format("\nSoul Wars Zeal: {0} Rank: {1}", HiscoreInfo.SoulWarsZeal.Score, HiscoreInfo.SoulWarsZeal.Rank);
Output += string.Format("\nRifts Closed: {0} Rank: {1}", HiscoreInfo.RiftsClosed.Score, HiscoreInfo.RiftsClosed.Rank);
Output += string.Format("\nColosseum Glory: {0} Rank: {1}", HiscoreInfo.ColosseumGlory.Score, HiscoreInfo.ColosseumGlory.Rank);
Output += string.Format("\nCollections Logged: {0} Rank: {1}", HiscoreInfo.CollectionsLogged.Score, HiscoreInfo.CollectionsLogged.Rank);
break;
case "Bosses":
Output += string.Format("\nAbyssal Sire KC: {0} Rank: {1}", HiscoreInfo.AbyssalSire.Kills, HiscoreInfo.AbyssalSire.Rank);
Output += string.Format("\nAlchemical Hydra KC: {0} Rank: {1}", HiscoreInfo.AlchemicalHydra.Kills, HiscoreInfo.AlchemicalHydra.Rank);
Output += string.Format("\nAmoxliatl KC: {0} Rank: {1}", HiscoreInfo.Amoxliatl.Kills, HiscoreInfo.Amoxliatl.Rank);
Output += string.Format("\nAraxxor KC: {0} Rank: {1}", HiscoreInfo.Araxxor.Kills, HiscoreInfo.Araxxor.Rank);
Output += string.Format("\nArtio KC: {0} Rank: {1}", HiscoreInfo.Artio.Kills, HiscoreInfo.Artio.Rank);
Output += string.Format("\nBarrows Chests KC: {0} Rank: {1}", HiscoreInfo.BarrowsChests.Kills, HiscoreInfo.BarrowsChests.Rank);
Output += string.Format("\nBryophyta KC: {0} Rank: {1}", HiscoreInfo.Bryophyta.Kills, HiscoreInfo.Bryophyta.Rank);
Output += string.Format("\nCallisto KC: {0} Rank: {1}", HiscoreInfo.Callisto.Kills, HiscoreInfo.Callisto.Rank);
Output += string.Format("\nCalvarion KC: {0} Rank: {1}", HiscoreInfo.Calvarion.Kills, HiscoreInfo.Calvarion.Rank);
Output += string.Format("\nCerberus KC: {0} Rank: {1}", HiscoreInfo.Cerberus.Kills, HiscoreInfo.Cerberus.Rank);
Output += string.Format("\nChambers of Xeric KC: {0} Rank: {1}", HiscoreInfo.ChambersofXeric.Kills, HiscoreInfo.ChambersofXeric.Rank);
Output += string.Format("\nChambers of Xeric Challenge Mode KC: {0} Rank: {1}", HiscoreInfo.ChambersofXericChallengeMode.Kills, HiscoreInfo.ChambersofXericChallengeMode.Rank);
Output += string.Format("\nChaos Elemental KC: {0} Rank: {1}", HiscoreInfo.ChaosElemental.Kills, HiscoreInfo.ChaosElemental.Rank);
Output += string.Format("\nChaos Fanatic KC: {0} Rank: {1}", HiscoreInfo.ChaosFanatic.Kills, HiscoreInfo.ChaosFanatic.Rank);
Output += string.Format("\nCommander Zilyana KC: {0} Rank: {1}", HiscoreInfo.CommanderZilyana.Kills, HiscoreInfo.CommanderZilyana.Rank);
Output += string.Format("\nCorporeal Beast KC: {0} Rank: {1}", HiscoreInfo.CorporealBeast.Kills, HiscoreInfo.CorporealBeast.Rank);
Output += string.Format("\nCrazy Archaeologist KC: {0} Rank: {1}", HiscoreInfo.CrazyArchaeologist.Kills, HiscoreInfo.CrazyArchaeologist.Rank);
Output += string.Format("\nDagannoth Prime KC: {0} Rank: {1}", HiscoreInfo.DagannothPrime.Kills, HiscoreInfo.DagannothPrime.Rank);
Output += string.Format("\nDagannoth Rex KC: {0} Rank: {1}", HiscoreInfo.DagannothRex.Kills, HiscoreInfo.DagannothRex.Rank);
Output += string.Format("\nDagannoth Supreme KC: {0} Rank: {1}", HiscoreInfo.DagannothSupreme.Kills, HiscoreInfo.DagannothSupreme.Rank);
Output += string.Format("\nDeranged Archaeologist KC: {0} Rank: {1}", HiscoreInfo.DerangedArchaeologist.Kills, HiscoreInfo.DerangedArchaeologist.Rank);
Output += string.Format("\nDuke Sucellus KC: {0} Rank: {1}", HiscoreInfo.DukeSucellus.Kills, HiscoreInfo.DukeSucellus.Rank);
Output += string.Format("\nGeneral Graardor KC: {0} Rank: {1}", HiscoreInfo.GeneralGraardor.Kills, HiscoreInfo.GeneralGraardor.Rank);
Output += string.Format("\nGiant Mole KC: {0} Rank: {1}", HiscoreInfo.GiantMole.Kills, HiscoreInfo.GiantMole.Rank);
Output += string.Format("\nGrotesque Guardians KC: {0} Rank: {1}", HiscoreInfo.GrotesqueGuardians.Kills, HiscoreInfo.GrotesqueGuardians.Rank);
Output += string.Format("\nHespori KC: {0} Rank: {1}", HiscoreInfo.Hespori.Kills, HiscoreInfo.Hespori.Rank);
Output += string.Format("\nKalphite Queen KC: {0} Rank: {1}", HiscoreInfo.KalphiteQueen.Kills, HiscoreInfo.KalphiteQueen.Rank);
Output += string.Format("\nKing Black Dragon KC: {0} Rank: {1}", HiscoreInfo.KingBlackDragon.Kills, HiscoreInfo.KingBlackDragon.Rank);
Output += string.Format("\nKraken KC: {0} Rank: {1}", HiscoreInfo.Kraken.Kills, HiscoreInfo.Kraken.Rank);
Output += string.Format("\nKree'arra KC: {0} Rank: {1}", HiscoreInfo.Kreearra.Kills, HiscoreInfo.Kreearra.Rank);
Output += string.Format("\nK'ril Tsutsaroth KC: {0} Rank: {1}", HiscoreInfo.KrilTsutsaroth.Kills, HiscoreInfo.KrilTsutsaroth.Rank);
Output += string.Format("\nMoons of Peril KC: {0} Rank: {1}", HiscoreInfo.MoonsofPeril.Kills, HiscoreInfo.MoonsofPeril.Rank);
Output += string.Format("\nMimic KC: {0} Rank: {1}", HiscoreInfo.Mimic.Kills, HiscoreInfo.Mimic.Rank);
Output += string.Format("\nNex KC: {0} Rank: {1}", HiscoreInfo.Nex.Kills, HiscoreInfo.Nex.Rank);
Output += string.Format("\nThe Nightmare of Ashihama KC: {0} Rank: {1}", HiscoreInfo.Nightmare.Kills, HiscoreInfo.Nightmare.Rank);
Output += string.Format("\nPhosani's Nightmare KC: {0} Rank: {1}", HiscoreInfo.PhosanisNightmare.Kills, HiscoreInfo.PhosanisNightmare.Rank);
Output += string.Format("\nObor KC: {0} Rank: {1}", HiscoreInfo.Obor.Kills, HiscoreInfo.Obor.Rank);
Output += string.Format("\nPhantom Muspah KC: {0} Rank: {1}", HiscoreInfo.PhantomMuspah.Kills, HiscoreInfo.PhantomMuspah.Rank);
Output += string.Format("\nSarachnis KC: {0} Rank: {1}", HiscoreInfo.Sarachnis.Kills, HiscoreInfo.Sarachnis.Rank);
Output += string.Format("\nScorpia KC: {0} Rank: {1}", HiscoreInfo.Scorpia.Kills, HiscoreInfo.Scorpia.Rank);
Output += string.Format("\nScurrius KC: {0} Rank: {1}", HiscoreInfo.Scurrius.Kills, HiscoreInfo.Scurrius.Rank);
Output += string.Format("\nSkotizo KC: {0} Rank: {1}", HiscoreInfo.Skotizo.Kills, HiscoreInfo.Skotizo.Rank);
Output += string.Format("\nSol Heredit KC: {0} Rank: {1}", HiscoreInfo.SolHeredit.Kills, HiscoreInfo.SolHeredit.Rank);
Output += string.Format("\nSpindel KC: {0} Rank: {1}", HiscoreInfo.Spindel.Kills, HiscoreInfo.Spindel.Rank);
Output += string.Format("\nTempoross KC: {0} Rank: {1}", HiscoreInfo.Tempoross.Kills, HiscoreInfo.Tempoross.Rank);
Output += string.Format("\nThe Gauntlet KC: {0} Rank: {1}", HiscoreInfo.Gauntlet.Kills, HiscoreInfo.Gauntlet.Rank);
Output += string.Format("\nThe Corrupted Gauntlet KC: {0} Rank: {1}", HiscoreInfo.CorruptedGauntlet.Kills, HiscoreInfo.CorruptedGauntlet.Rank);
Output += string.Format("\nThe Hueycoatl KC: {0} Rank: {1}", HiscoreInfo.Hueycoatl.Kills, HiscoreInfo.Hueycoatl.Rank);
Output += string.Format("\nLeviathan KC: {0} Rank: {1}", HiscoreInfo.Leviathan.Kills, HiscoreInfo.Leviathan.Rank);
Output += string.Format("\nRoyal Titans KC: {0} Rank: {1}", HiscoreInfo.RoyalTitans.Kills, HiscoreInfo.RoyalTitans.Rank);
Output += string.Format("\nThe Whisperer KC: {0} Rank: {1}", HiscoreInfo.Whisperer.Kills, HiscoreInfo.Whisperer.Rank);
Output += string.Format("\nTheatre of Blood KC: {0} Rank: {1}", HiscoreInfo.TheatreofBlood.Kills, HiscoreInfo.TheatreofBlood.Rank);
Output += string.Format("\nTheatre of Blood Hard Mode KC: {0} Rank: {1}", HiscoreInfo.TheatreofBloodHardMode.Kills, HiscoreInfo.TheatreofBloodHardMode.Rank);
Output += string.Format("\nThermonuclear Smoke Devil KC: {0} Rank: {1}", HiscoreInfo.ThermonuclearSmokeDevil.Kills, HiscoreInfo.ThermonuclearSmokeDevil.Rank);
Output += string.Format("\nTombs of Amascut KC: {0} Rank: {1}", HiscoreInfo.TombsOfAmascut.Kills, HiscoreInfo.TombsOfAmascut.Rank);
Output += string.Format("\nTombs of Amascut Expert Mode KC: {0} Rank: {1}", HiscoreInfo.TombsOfAmascutExpertMode.Kills, HiscoreInfo.TombsOfAmascutExpertMode.Rank);
Output += string.Format("\nTzKal-Zuk KC: {0} Rank: {1}", HiscoreInfo.Zuk.Kills, HiscoreInfo.Zuk.Rank);
Output += string.Format("\nTzTok-Jad KC: {0} Rank: {1}", HiscoreInfo.Jad.Kills, HiscoreInfo.Jad.Rank);
Output += string.Format("\nVardorvis KC: {0} Rank: {1}", HiscoreInfo.Vardorvis.Kills, HiscoreInfo.Vardorvis.Rank);
Output += string.Format("\nVenenatis KC: {0} Rank: {1}", HiscoreInfo.Venenatis.Kills, HiscoreInfo.Venenatis.Rank);
Output += string.Format("\nVetion KC: {0} Rank: {1}", HiscoreInfo.Vetion.Kills, HiscoreInfo.Vetion.Rank);
Output += string.Format("\nVorkath KC: {0} Rank: {1}", HiscoreInfo.Vorkath.Kills, HiscoreInfo.Vorkath.Rank);
Output += string.Format("\nWintertodt KC: {0} Rank: {1}", HiscoreInfo.Wintertodt.Kills, HiscoreInfo.Wintertodt.Rank);
Output += string.Format("\nYama KC: {0} Rank: {1}", HiscoreInfo.Yama.Kills, HiscoreInfo.Yama.Rank);
Output += string.Format("\nZalcano KC: {0} Rank: {1}", HiscoreInfo.Zalcano.Kills, HiscoreInfo.Zalcano.Rank);
Output += string.Format("\nZulrah KC: {0} Rank: {1}", HiscoreInfo.Zulrah.Kills, HiscoreInfo.Zulrah.Rank);
break;
default:
return string.Empty;
}
return Output;
}
}
public ICommand LookupPlayer
@@ -48,7 +172,7 @@ namespace osrs_toolbox
public PlayerInfo HiscoreInfo
{
get { return _hiscoreInfo; }
set { SetProperty(ref _hiscoreInfo, value, nameof(HiscoreInfo)); }
set { SetProperty(ref _hiscoreInfo, value, nameof(HiscoreInfo)); OnPropertyChanged(nameof(DisplayOutput)); }
}
}
}

View File

@@ -17,6 +17,7 @@ namespace osrs_toolbox
private ICommand _openShopBuyoutCalculator;
private ICommand _openAPITest;
private ICommand _openDiceRoller;
private ICommand _openHiscoreLookup;
public ICommand OpenCompetitionOverlaySettings
{
@@ -50,5 +51,10 @@ namespace osrs_toolbox
get { return _openDiceRoller; }
set { SetProperty(ref _openDiceRoller, value, nameof(OpenDiceRoller)); }
}
public ICommand OpenHiscoreLookup
{
get { return _openHiscoreLookup; }
set { SetProperty(ref _openHiscoreLookup, value, nameof(OpenHiscoreLookup)); }
}
}
}

View File

@@ -19,7 +19,6 @@ namespace osrs_toolbox
PlayerName = string.Empty;
DisplayOption = "Skills";
DisplayOptions = ["Skills", "Activities", "Bosses"];
DisplayOutput = string.Empty;
HiscoreInfo = new();
}
@@ -30,7 +29,9 @@ namespace osrs_toolbox
private async void DoPlayerLookup(object obj)
{
HiscoreInfo = new();
PlayerInfoService pis = new(new());
HiscoreInfo = await pis.GetPlayerInfoAsync(PlayerName).ConfigureAwait(false);
}
}
}

View File

@@ -28,6 +28,7 @@ namespace osrs_toolbox
OpenShopBuyoutCalculator = new RelayCommand(DoOpenShopBuyoutCalculator);
OpenAPITest = new RelayCommand(DoOpenAPITest);
OpenDiceRoller = new RelayCommand(DoOpenDiceRoller);
OpenHiscoreLookup = new RelayCommand(DoOpenHiscoreLookup);
}
private void DoOpenCompetitionOverlaySettings(object obj)
@@ -113,5 +114,19 @@ namespace osrs_toolbox
drv.Show();
}
}
private void DoOpenHiscoreLookup(object obj)
{
if (HiscoreLookupView.Current != null)
{
HiscoreLookupView.Current.Close();
HiscoreLookupView.Current = null;
}
else
{
HiscoreLookupView hlv = new HiscoreLookupView();
hlv.Show();
}
}
}
}

View File

@@ -0,0 +1,29 @@
<Window x:Class="osrs_toolbox.HiscoreLookupView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:osrs_toolbox"
mc:Ignorable="d"
Title="Hiscore Lookup" Height="450" Width="800" Closed="Window_Closed">
<Window.DataContext>
<local:HiscoreLookupViewModel/>
</Window.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Player Name:" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="3"/>
<TextBox Text="{Binding PlayerName, UpdateSourceTrigger=PropertyChanged}" Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="3"/>
<Button Command="{Binding LookupPlayer, UpdateSourceTrigger=PropertyChanged}" Content="Lookup Player" Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="3" Padding="1"/>
<ComboBox ItemsSource="{Binding DisplayOptions, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding DisplayOption, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="3" Padding="1"/>
<TextBox Text="{Binding DisplayOutput, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="3" Padding="1" IsEnabled="False"/>
</Grid>
</Window>

View File

@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace osrs_toolbox
{
/// <summary>
/// Interaction logic for HiscoreLookupView.xaml
/// </summary>
public partial class HiscoreLookupView : Window
{
public static HiscoreLookupView Current;
public HiscoreLookupView()
{
InitializeComponent();
Current = this;
}
private void Window_Closed(object sender, EventArgs e)
{
Current = null;
}
}
}

View File

@@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:osrs_toolbox"
mc:Ignorable="d"
Title="OSRS Toolbox" Height="670" Width="500" Closed="Window_Closed" WindowStyle="None" Background="Transparent" AllowsTransparency="True">
Title="OSRS Toolbox" Height="770" Width="500" Closed="Window_Closed" WindowStyle="None" Background="Transparent" AllowsTransparency="True">
<Window.DataContext>
<local:HomePageViewModel/>
</Window.DataContext>
@@ -42,7 +42,7 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Source="/Resources/Panel/panel-background.png" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="Fill" Margin="-3"/>
<Image Source="/Resources/Panel/panel-background.png" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="Fill" Margin="-7"/>
<Image Source="/Resources/Panel/panel-left.png" Grid.Row="2" Grid.Column="0" Margin="0,-8,0,-8" Width="40" StretchDirection="Both" HorizontalAlignment="Stretch" VerticalAlignment="Top" Stretch="Fill"/>
<Image Source="/Resources/Panel/panel-bottom.png" Grid.Row="3" Margin="-8,0,-8,0" Grid.Column="1" Height="40" StretchDirection="Both" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"/>
<Image Source="/Resources/Panel/panel-right.png" Grid.Row="2" Grid.Column="2" Margin="0,-8,0,-8" Width="40" StretchDirection="Both" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"/>
@@ -116,6 +116,18 @@
<local:OutlinedTextBlock Text="Open Dice Roller" VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black" Fill="Yellow" FontSize="30" StrokeThickness="1.2" IsHitTestVisible="False" TextWrapping="Wrap" TextAlignment="Center"/>
</Grid>
</Button>
<Button Command="{Binding OpenHiscoreLookup, UpdateSourceTrigger=PropertyChanged}" Template="{StaticResource NoMouseOverButtonTemplate}" Width="350" Height="90" Margin="3" Padding="3" VerticalAlignment="Center" HorizontalAlignment="Center" Background="Transparent" BorderBrush="Transparent" BorderThickness="0">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Image Source="/Resources/wood-button.png" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" StretchDirection="Both" Stretch="Fill" MouseEnter="Button_Hovered" MouseLeave="Button_Unhovered"/>
<local:OutlinedTextBlock Text="Open Hiscore Lookup" VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black" Fill="Yellow" FontSize="30" StrokeThickness="1.2" IsHitTestVisible="False" TextWrapping="Wrap" TextAlignment="Center"/>
</Grid>
</Button>
</StackPanel>
</Border>
</Grid>