// Displaying Changes -------------------------------------------------------------------------------

        private void LayoutTiers()
        {
            string[] labelTexts = new string[48];
            int      i          = 0;

            foreach (PlayerTierCompletion datum in recordsData)
            {
                labelTexts[i++] = datum.map + "/" + datum.mapTotal + " (" + String_Formatter.toString_CompletionPercent(datum.map, datum.mapTotal) + ")";
                labelTexts[i++] = String_Formatter.toString_Points(datum.stage) + "/" + String_Formatter.toString_Points(datum.stageTotal)
                                  + " (" + String_Formatter.toString_CompletionPercent(datum.stage, datum.stageTotal) + ")";
                labelTexts[i++] = String_Formatter.toString_Points(datum.bonus) + "/" + String_Formatter.toString_Points(datum.bonusTotal)
                                  + " (" + String_Formatter.toString_CompletionPercent(datum.bonus, datum.bonusTotal) + ")";
            }

            applyLabelTexts(labelTexts);
        }
        // Displaying Changes -------------------------------------------------------------------------------

        private void LayoutTopCountries()
        {
            foreach (CountryPoints datum in topCountriesData)
            {
                RankStack.Children.Add(new Label
                {
                    Text  = list_index + ". " + String_Formatter.toEmoji_Country(datum.country) + " " + datum.country,
                    Style = App.Current.Resources["GridLabelStyle"] as Style
                });
                PointsStack.Children.Add(new Label
                {
                    Text  = String_Formatter.toString_Points(datum.points),
                    Style = App.Current.Resources["GridLabelStyle"] as Style
                });

                list_index++;
            }

            moreRecords         = (((list_index - 1) % LIST_LIMIT == 0) && ((list_index - 1) < CALL_LIMIT));
            MoreFrame.IsVisible = moreRecords;
        }
示例#3
0
        private void LayoutPoints()
        {
            int fontsize = 16;

            CompletionStack.Children.Add(new Label {
                Text     = "Map",
                Style    = Resources["PointsStyle"] as Style,
                FontSize = fontsize
            });

            CompletionValueStack.Children.Add(new Label
            {
                Text     = String_Formatter.toString_Points(mapSettings.map_finish),
                Style    = App.Current.Resources["RightColStyle"] as Style,
                FontSize = fontsize
            });

            if (stageCount > 0)
            {
                CompletionStack.Children.Add(new Label {
                    Text  = "Stage",
                    Style = Resources["PointsStyle"] as Style
                });

                CompletionValueStack.Children.Add(new Label
                {
                    Text     = String_Formatter.toString_Points(mapSettings.stage_finish),
                    Style    = App.Current.Resources["RightColStyle"] as Style,
                    FontSize = fontsize
                });
            }

            if (bonusCount > 0)
            {
                CompletionStack.Children.Add(new Label {
                    Text     = "Bonus",
                    Style    = Resources["PointsStyle"] as Style,
                    FontSize = fontsize
                });

                CompletionValueStack.Children.Add(new Label
                {
                    Text     = String_Formatter.toString_Points(mapSettings.bonus_finish),
                    Style    = App.Current.Resources["RightColStyle"] as Style,
                    FontSize = fontsize
                });
            }


            int i = 1;

            foreach (double points in pointsData.TopPoints)
            {
                if (points == 0)
                {
                    continue;
                }

                TopGroupStack.Children.Add(new Label {
                    Text     = (i != 1) ? "R" + i : "WR",
                    Style    = Resources["PointsStyle"] as Style,
                    FontSize = fontsize
                });

                TopGroupValueStack.Children.Add(new Label
                {
                    Text     = String_Formatter.toString_Points(points),
                    Style    = App.Current.Resources["RightColStyle"] as Style,
                    FontSize = fontsize
                });;

                i++;
            }

            i = 0;
            int rank = 10;

            foreach (double points in pointsData.GroupPoints)
            {
                if (points == 0)
                {
                    continue;
                }
                i++;

                int groupEnd = 10 + pointsData.GroupRanks[i];

                GroupStack.Children.Add(new Label {
                    Text     = "G" + i + " (" + String_Formatter.toString_Points(rank + 1) + "-" + String_Formatter.toString_Points(groupEnd) + ")",
                    Style    = Resources["PointsStyle"] as Style,
                    FontSize = fontsize
                });

                GroupValueStack.Children.Add(new Label
                {
                    Text     = String_Formatter.toString_Points(points),
                    Style    = App.Current.Resources["RightColStyle"] as Style,
                    FontSize = fontsize
                });;

                rank = groupEnd;
            }
        }
示例#4
0
        // UI -----------------------------------------------------------------------------------------------
        #region UI

        private async Task ChangeMostByType(EFilter_Game game, EFilter_MostType type, EFilter_Mode mode, bool clearGrid)
        {
            string        rightColString = "Player";
            string        leftColString  = "";
            List <string> players        = new List <string>();
            List <string> values         = new List <string>();

            switch (type)
            {
            case EFilter_MostType.pc:
            {
                var mostPCDatum = await recordsViewModel.GetMostPC(game, mode, list_index);

                mostPCData = mostPCDatum?.data;
                if (mostPCData is null || mostPCData.Count < 1)
                {
                    MoreFrame.IsVisible = false;
                    return;
                }

                leftColString = "Total";
                foreach (MostPCDatum datum in mostPCData)
                {
                    players.Add(String_Formatter.toEmoji_Country(datum.country) + " " + datum.name);
                    values.Add((double.Parse(datum.percentCompletion) * 100).ToString("0.00") + "%");
                }
                break;
            }

            case EFilter_MostType.wr:
            case EFilter_MostType.wrcp:
            case EFilter_MostType.wrb:
            case EFilter_MostType.mostwr:
            case EFilter_MostType.mostwrcp:
            case EFilter_MostType.mostwrb:
            {
                var mostCountDatum = await recordsViewModel.GetMostCount(game, type, mode, list_index);

                mostCountData = mostCountDatum?.data;
                if (mostCountData is null || mostCountData.Count < 1)
                {
                    MoreFrame.IsVisible = false;
                    return;
                }

                leftColString = "Total";
                foreach (MostCountDatum datum in mostCountData)
                {
                    players.Add(String_Formatter.toEmoji_Country(datum.country) + " " + datum.name);
                    values.Add(String_Formatter.toString_Int(datum.total));
                }
                break;
            }

            case EFilter_MostType.top10:
            {
                var mostTopDatum = await recordsViewModel.GetMostTop(game, mode, list_index);

                mostTopData = mostTopDatum?.data;
                if (mostTopData is null || mostTopData.Count < 1)
                {
                    MoreFrame.IsVisible = false;
                    return;
                }

                leftColString = "Points";
                foreach (MostTopDatum datum in mostTopData)
                {
                    players.Add(String_Formatter.toEmoji_Country(datum.country) + " " + datum.name);
                    values.Add(String_Formatter.toString_Points(datum.top10Points));
                }
                break;
            }

            case EFilter_MostType.group:
            {
                var mostGroupDatum = await recordsViewModel.GetMostGroup(game, mode, list_index);

                mostGroupData = mostGroupDatum?.data;
                if (mostGroupData is null || mostGroupData.Count < 1)
                {
                    MoreFrame.IsVisible = false;
                    return;
                }

                leftColString = "Points";
                foreach (MostGroupDatum datum in mostGroupData)
                {
                    players.Add(String_Formatter.toEmoji_Country(datum.country) + " " + datum.name);
                    values.Add(String_Formatter.toString_Points(datum.groupPoints));
                }
                break;
            }

            case EFilter_MostType.mostcontestedwr:
            {
                var mostContWrDatum = await recordsViewModel.GetMostContWr(game, mode, list_index);

                mostContWrData = mostContWrDatum?.data;
                if (mostContWrData is null || mostContWrData.Count < 1)
                {
                    MoreFrame.IsVisible = false;
                    return;
                }

                rightColString = "Map";
                leftColString  = "Beaten";
                foreach (MostContWrDatum datum in mostContWrData)
                {
                    players.Add(datum.mapName);
                    values.Add(String_Formatter.toString_Int(datum.total));
                }
                break;
            }

            case EFilter_MostType.mostcontestedwrcp:
            case EFilter_MostType.mostcontestedwrb:
            {
                var mostContZoneDatum = await recordsViewModel.GetMostContZone(game, type, mode, list_index);

                mostContZoneData = mostContZoneDatum?.data;
                if (mostContZoneData is null || mostContZoneData.Count < 1)
                {
                    MoreFrame.IsVisible = false;
                    return;
                }

                rightColString = "Zone";
                leftColString  = "Beaten";
                foreach (MostContZoneDatum datum in mostContZoneData)
                {
                    string zoneString = EFilter_ToString.zoneFormatter(datum.zoneID, false, false);
                    players.Add(datum.mapName + " " + zoneString);
                    values.Add(String_Formatter.toString_Int(datum.total));
                }
                break;
            }

            case EFilter_MostType.playtimeday:
            case EFilter_MostType.playtimeweek:
            case EFilter_MostType.playtimemonth:
            {
                var mostTimeDatum = await recordsViewModel.GetMostTime(game, type, mode, list_index);

                mostTimeData = mostTimeDatum?.data;
                if (mostTimeData is null || mostTimeData.Count < 1)
                {
                    return;
                }

                rightColString = "Map";
                leftColString  = "Time";
                foreach (MostTimeDatum datum in mostTimeData)
                {
                    players.Add(datum.mapName);
                    values.Add(String_Formatter.toString_PlayTime(datum.totalplaytime.ToString(), true));
                }
                break;
            }

            default: return;
            }

            MostTypeOptionLabel.Text = "Type: " + EFilter_ToString.toString2(type);

            if (clearGrid)
            {
                ClearMostByTypeGrid(rightColString, leftColString);
            }
            LayoutMostByType(type, players, values);
        }
示例#5
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);
        }