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;
        }
示例#3
0
        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();
        }
示例#6
0
        // 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();
        }
示例#7
0
        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);
            }
        }
示例#8
0
        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);
        }