private async void WRTypeOptionLabel_Tapped(object sender, EventArgs e) { List <string> types = new List <string>(); string currentTypeString = EFilter_ToString.toString2(wrsType); foreach (string type in EFilter_ToString.wrtype_arr2) { if (type != currentTypeString) { types.Add(type); } } string newTypeString = await DisplayActionSheet("Choose a different type", "Cancel", null, types.ToArray()); EFilter_PlayerWRsType newType = EFilter_PlayerWRsType.wr; switch (newTypeString) { case "Cancel": return; case "WRCP": newType = EFilter_PlayerWRsType.wrcp; break; case "WRB": newType = EFilter_PlayerWRsType.wrb; break; } wrsType = newType; list_index = 1; LoadingAnimation.IsRunning = true; await ChangeRecords(newType); LoadingAnimation.IsRunning = false; }
public PlayerWorldRecordsPage(string title, PlayerViewModel playerViewModel, EFilter_Game game, EFilter_Mode mode, EFilter_PlayerType playerType, string playerValue, EFilter_PlayerWRsType wrsType) { this.playerViewModel = playerViewModel; this.game = game; this.mode = mode; this.playerType = playerType; this.playerValue = playerValue; this.wrsType = wrsType; InitializeComponent(); Title = title; }
public static string toString2(EFilter_PlayerWRsType type) { string typeString = ""; switch (type) { case EFilter_PlayerWRsType.wr: typeString = wrtype_arr2[0]; break; case EFilter_PlayerWRsType.wrcp: typeString = wrtype_arr2[1]; break; case EFilter_PlayerWRsType.wrb: typeString = wrtype_arr2[2]; break; default: break; } return(typeString); }
public PlayerOldestRecordsPage(string title, PlayerViewModel playerViewModel, EFilter_Game game, EFilter_Mode mode, EFilter_PlayerType playerType, string playerValue, EFilter_PlayerWRsType wrsType, bool hasTop) { this.playerViewModel = playerViewModel; this.game = game; this.mode = mode; this.playerType = playerType; this.playerValue = playerValue; this.wrsType = wrsType; this.hasTop = hasTop; oldRecordsOptionStrings = new List <string>(EFilter_ToString.ortype_arr); InitializeComponent(); Title = title; }
// UI ----------------------------------------------------------------------------------------------- #region UI private async Task ChangeRecords(EFilter_PlayerWRsType type) { var worldRecordsDatum = await playerViewModel.GetPlayerWRs(game, mode, type, playerType, playerValue, list_index); worldRecordsData = worldRecordsDatum?.data.records; if (worldRecordsData is null) { return; } WRTypeOptionLabel.Text = "Type: " + EFilter_ToString.toString2(type); if (list_index == 1) { WRsStack.Children.Clear(); } LayoutRecords(); }
// UI ----------------------------------------------------------------------------------------------- #region UI private async Task ChangePlayerInfo(EFilter_Game newGame, EFilter_Mode newMode, EFilter_PlayerType newPlayerType, string newPlayerValue) { if (newGame == game && newMode == mode && newPlayerValue == playerValue) { return; } var playerInfoDatum = await playerViewModel.GetPlayerInfo(newGame, newMode, newPlayerType, newPlayerValue); playerInfoData = playerInfoDatum?.data; if (playerInfoData is null || playerInfoData.basicInfo is null) { await DisplayAlert("Could not find player profile!", "Invalid SteamID or rank.", "OK"); return; } playerType = newPlayerType; playerValue = newPlayerValue; game = newGame; mode = newMode; playerSteamId = playerInfoData.basicInfo.steamID; playerRank = playerInfoData.SurfRank; string playerName = playerInfoData.basicInfo.name; if (playerName.Length > 18) { playerName = playerName.Substring(0, 13) + "..."; } Title = playerName + " [" + EFilter_ToString.toString2(game) + ", " + EFilter_ToString.toString(mode) + "]"; var PlayerSteamDatum = await playerViewModel.GetPlayerSteamProfile(playerSteamId); playerSteamProfile = PlayerSteamDatum?.response.players[0]; wrsType = EFilter_PlayerWRsType.none; LayoutPlayerInfo(); LayoutPlayerProfile(); }
internal async Task <PlayerWRsRootObject> GetPlayerWRs(EFilter_Game game, EFilter_Mode mode, EFilter_PlayerWRsType wrType, EFilter_PlayerType playerType, string playerValue, int startIndex) { if (!BaseViewModel.hasConnection()) { return(null); } string gameString = EFilter_ToString.toString(game); string modeString = ((int)mode).ToString(); string wrString = EFilter_ToString.toString(wrType); string playerTypeString = EFilter_ToString.toString(playerType); if (gameString == "" || playerValue == "") { return(null); } client.BaseUrl = new Uri("http://surf.ksfclan.com/api2/" + gameString + "/" + playerTypeString + "/" + playerValue + "/" + wrString + "/" + startIndex + ",10/" + modeString); await Task.Run(() => response = client.Execute(request)); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return(JsonConvert.DeserializeObject <PlayerWRsRootObject>(response.Content)); } else { return(null); } }
private void LayoutPlayerInfo() { // Info ----------------------------------------------------------- RankLabel.Text = String_Formatter.toString_Int(playerInfoData.SurfRank); PointsLabel.Text = String_Formatter.toString_Points(playerInfoData.playerPoints.points); CompletionLabel.Text = playerInfoData.percentCompletion + "%"; WRsLabel.Text = playerInfoData.WRZones.wr; WRCPsLabel.Text = String_Formatter.toString_Int(playerInfoData.WRZones.wrcp); WRBsLabel.Text = String_Formatter.toString_Points(playerInfoData.WRZones.wrb); if (int.Parse(playerInfoData.WRZones.wr) > 0) { wrsType = EFilter_PlayerWRsType.wr; } else if (int.Parse(playerInfoData.WRZones.wrcp) > 0) { wrsType = EFilter_PlayerWRsType.wrcp; } else if (int.Parse(playerInfoData.WRZones.wrb) > 0) { wrsType = EFilter_PlayerWRsType.wrb; } WRsFrame.IsVisible = (wrsType != EFilter_PlayerWRsType.none); FirstOnlineLabel.Text = String_Formatter.toString_KSFDate(playerInfoData.basicInfo.firstOnline); LastSeenLabel.Text = String_Formatter.toString_LastOnline(playerInfoData.basicInfo.lastOnline); SurfTimeLabel.Text = String_Formatter.toString_PlayTime(playerInfoData.basicInfo.aliveTime, true); SpecTimeLabel.Text = String_Formatter.toString_PlayTime(playerInfoData.basicInfo.deadTime, true); // Completion ----------------------------------------------------- MapsValueLabel.Text = playerInfoData.CompletedZones.map + "/" + playerInfoData.TotalZones.TotalMaps; MapsValueLabel.Text += " (" + String_Formatter.toString_CompletionPercent(playerInfoData.CompletedZones.map, playerInfoData.TotalZones.TotalMaps) + ")"; StagesValueLabel.Text = String_Formatter.toString_Points(playerInfoData.CompletedZones.stage) + "/" + String_Formatter.toString_Points(playerInfoData.TotalZones.TotalStages); StagesValueLabel.Text += " (" + String_Formatter.toString_CompletionPercent(playerInfoData.CompletedZones.stage, playerInfoData.TotalZones.TotalStages) + ")"; BonusesValueLabel.Text = String_Formatter.toString_Points(playerInfoData.CompletedZones.bonus) + "/" + String_Formatter.toString_Points(playerInfoData.TotalZones.TotalBonuses); BonusesValueLabel.Text += " (" + String_Formatter.toString_CompletionPercent(playerInfoData.CompletedZones.bonus, playerInfoData.TotalZones.TotalBonuses) + ")"; // Groups --------------------------------------------------------- Top10sLabel.Text = playerInfoData.Top10Groups.top10; hasTop = (playerInfoData.Top10Groups.top10 != "0"); if (hasTop) { if (playerInfoData.Top10Groups.rank1 != "0") { R1GroupLabel.IsVisible = true; R1ValueLabel.IsVisible = true; R1ValueLabel.Text = playerInfoData.Top10Groups.rank1; } else { R1GroupLabel.IsVisible = false; R1ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank2 != "0") { R2GroupLabel.IsVisible = true; R2ValueLabel.IsVisible = true; R2ValueLabel.Text = playerInfoData.Top10Groups.rank2; } else { R2GroupLabel.IsVisible = false; R2ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank3 != "0") { R3GroupLabel.IsVisible = true; R3ValueLabel.IsVisible = true; R3ValueLabel.Text = playerInfoData.Top10Groups.rank3; } else { R3GroupLabel.IsVisible = false; R3ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank4 != "0") { R4GroupLabel.IsVisible = true; R4ValueLabel.IsVisible = true; R4ValueLabel.Text = playerInfoData.Top10Groups.rank4; } else { R4GroupLabel.IsVisible = false; R4ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank5 != "0") { R5GroupLabel.IsVisible = true; R5ValueLabel.IsVisible = true; R5ValueLabel.Text = playerInfoData.Top10Groups.rank5; } else { R5GroupLabel.IsVisible = false; R5ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank6 != "0") { R6GroupLabel.IsVisible = true; R6ValueLabel.IsVisible = true; R6ValueLabel.Text = playerInfoData.Top10Groups.rank6; } else { R6GroupLabel.IsVisible = false; R6ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank7 != "0") { R7GroupLabel.IsVisible = true; R7ValueLabel.IsVisible = true; R7ValueLabel.Text = playerInfoData.Top10Groups.rank7; } else { R7GroupLabel.IsVisible = false; R7ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank8 != "0") { R8GroupLabel.IsVisible = true; R8ValueLabel.IsVisible = true; R8ValueLabel.Text = playerInfoData.Top10Groups.rank8; } else { R8GroupLabel.IsVisible = false; R8ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank9 != "0") { R9GroupLabel.IsVisible = true; R9ValueLabel.IsVisible = true; R9ValueLabel.Text = playerInfoData.Top10Groups.rank9; } else { R9GroupLabel.IsVisible = false; R9ValueLabel.IsVisible = false; } if (playerInfoData.Top10Groups.rank10 != "0") { R10GroupLabel.IsVisible = true; R10ValueLabel.IsVisible = true; R10ValueLabel.Text = playerInfoData.Top10Groups.rank10; } else { R10GroupLabel.IsVisible = false; R10ValueLabel.IsVisible = false; } } else { R1GroupLabel.IsVisible = false; R1ValueLabel.IsVisible = false; R2GroupLabel.IsVisible = false; R2ValueLabel.IsVisible = false; R3GroupLabel.IsVisible = false; R3ValueLabel.IsVisible = false; R4GroupLabel.IsVisible = false; R4ValueLabel.IsVisible = false; R5GroupLabel.IsVisible = false; R5ValueLabel.IsVisible = false; R6GroupLabel.IsVisible = false; R6ValueLabel.IsVisible = false; R7GroupLabel.IsVisible = false; R7ValueLabel.IsVisible = false; R8GroupLabel.IsVisible = false; R8ValueLabel.IsVisible = false; R9GroupLabel.IsVisible = false; R9ValueLabel.IsVisible = false; R10GroupLabel.IsVisible = false; R10ValueLabel.IsVisible = false; } G1sLabel.Text = playerInfoData.Top10Groups.g1; G2sLabel.Text = playerInfoData.Top10Groups.g2; G3sLabel.Text = playerInfoData.Top10Groups.g3; G4sLabel.Text = playerInfoData.Top10Groups.g4; G5sLabel.Text = playerInfoData.Top10Groups.g5; G6sLabel.Text = playerInfoData.Top10Groups.g6; GroupsLabel.Text = playerInfoData.Top10Groups.groups; // Points Stack ------------------------------------------------------ Top10PtsLabel.Text = String_Formatter.toString_Points(playerInfoData.playerPoints.top10); GroupsPtsLabel.Text = String_Formatter.toString_Points(playerInfoData.playerPoints.groups); MapsPtsLabel.Text = String_Formatter.toString_Points(playerInfoData.playerPoints.map); string wrcpPoints = ""; if (playerInfoData.playerPoints.wrcp != "0") { wrcpPoints = "[+" + String_Formatter.toString_Points(playerInfoData.playerPoints.wrcp) + "] "; } StagesPtsLabel.Text = wrcpPoints + String_Formatter.toString_Points(playerInfoData.playerPoints.stage); string wrbPoints = ""; if (playerInfoData.playerPoints.wrb != "0") { wrbPoints = "[+" + String_Formatter.toString_Points(playerInfoData.playerPoints.wrb) + "] "; } BonusesPtsLabel.Text = wrbPoints + String_Formatter.toString_Points(playerInfoData.playerPoints.bonus); }