Example #1
0
    void DrawRightPane(bool bLayoutUpdate, bool bRepaintUpdate)
    {
        Rect AreaRect = new Rect(Screen.width / 2 + 20, 130, Screen.width / 2 - 40, Screen.height - 150 - 50);

        GUILayout.BeginArea(AreaRect);
        ParsedScrollPos = GUILayout.BeginScrollView(ParsedScrollPos);
        //ParseTeamsText = GUILayout.TextArea(ParseTeamsText);
        GUILayout.BeginVertical();
        for (int PoolIndex = 0; PoolIndex < AllPools.Count; ++PoolIndex)
        {
            GUILayout.BeginVertical();
            PoolData PData = AllPools[PoolIndex].Data;
            GUILayout.Label("Pool " + PData.PoolName + ":");
            for (int TeamIndex = 0; TeamIndex < PData.Teams.Count; ++TeamIndex)
            {
                TeamData TData      = PData.Teams[TeamIndex].Data;
                GUIStyle LabelStyle = new GUIStyle();
                if (AllPools[PoolIndex].Data.Teams[TeamIndex].bClickedOn)
                {
                    LabelStyle.normal.textColor = Color.grey;
                }
                else
                {
                    LabelStyle.normal.textColor = Color.white;
                }

                if (DivisionCombo.IsPicking || RoundCombo.IsPicking)
                {
                }
                else
                {
                    string TeamStr = (TeamIndex + 1) + ". " + TData.PlayerNames + " : " +
                                     (TData.ContainsJudgeScores() ? TData.RoutineScores.GetTotalPoints() : TData.TotalRankPoints);
                    bool bTeamClicked = GUILayout.RepeatButton(TeamStr, LabelStyle);
                    AllPools[PoolIndex].Data.Teams[TeamIndex].bClickedOn |= !bLayoutUpdate ? bTeamClicked : AllPools[PoolIndex].Data.Teams[TeamIndex].bClickedOn;
                    if (bTeamClicked)
                    {
                        MovingTeam = PData.Teams[TeamIndex];
                    }
                }
            }
            GUILayout.EndVertical();

            if (bRepaintUpdate)
            {
                AllPools[PoolIndex].DisplayRect    = GUILayoutUtility.GetLastRect();
                AllPools[PoolIndex].DisplayRect.x += AreaRect.x;
                AllPools[PoolIndex].DisplayRect.y += AreaRect.y;
            }
        }

        GUILayout.EndVertical();
        GUILayout.EndScrollView();
        GUILayout.EndArea();
    }
    string GetTotalDiffPointsString(TeamDataDisplay tdd)
    {
        float ret = 0;

        foreach (DiffData dd in tdd.Data.RoutineScores.DiffResults)
        {
            ret += dd.GetTotalPoints();
        }

        return(ret.ToString("0.0"));
    }
    string GetTotalAiPointsString(TeamDataDisplay tdd)
    {
        float ret = 0;

        foreach (AIData ai in tdd.Data.RoutineScores.AIResults)
        {
            ret += ai.GetTotalPoints();
        }

        return(ret.ToString("0.0"));
    }
    string GetTotalExPointsString(TeamDataDisplay tdd)
    {
        float ret = 0;

        foreach (ExData ed in tdd.Data.RoutineScores.ExResults)
        {
            ret += ed.GetTotalPoints();
        }

        return(ret.ToString("0.0"));
    }
 void WritePlayerNamesXml(XmlWriter writer, List <TeamDataDisplay> TeamList)
 {
     for (int TeamIndex = 0; TeamIndex < TeamList.Count; ++TeamIndex)
     {
         TeamDataDisplay tdd = TeamList[TeamIndex];
         for (int PlayerIndex = 0; PlayerIndex < tdd.Data.Players.Count; ++PlayerIndex)
         {
             string PlayerName = tdd.Data.Players[PlayerIndex].Fullname;
             writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Player" + (PlayerIndex + 1), PlayerName);
         }
     }
 }
    int GetTeamPlace(List <TeamDataDisplay> InList, TeamDataDisplay InData)
    {
        float TotalPoints = InData.Data.RoutineScores.GetTotalPoints();
        int   Place       = 1;

        foreach (TeamDataDisplay tdd in InList)
        {
            if (tdd.Data.RoutineScores.GetTotalPoints() > TotalPoints)
            {
                ++Place;
            }
        }

        return(Place);
    }
    void WriteExXml(XmlWriter writer, List <TeamDataDisplay> TeamList, int JudgeIndex)
    {
        if (TeamList.Count > 0 && TeamList[0].Data.RoutineScores.ExResults.Count > JudgeIndex)
        {
            writer.WriteStartElement("ns2:Ex" + (JudgeIndex + 1));
            for (int TeamIndex = 0; TeamIndex < TeamList.Count; ++TeamIndex)
            {
                TeamDataDisplay tdd = TeamList[TeamIndex];
                if (JudgeIndex < tdd.Data.RoutineScores.ExResults.Count)
                {
                    ExData ed = tdd.Data.RoutineScores.ExResults[JudgeIndex];

                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Point1", ed.Point1Count.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Point2", ed.Point2Count.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Point3", ed.Point3Count.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Point5", ed.Point5Count.ToString());
                }
            }
            writer.WriteEndElement();
        }
    }
Example #8
0
    void MovedTeamBetweenPools(TeamDataDisplay InTeam, int NewPoolIndex)
    {
        for (int PoolIndex = 0; PoolIndex < AllPools.Count; ++PoolIndex)
        {
            PoolData PData = AllPools[PoolIndex].Data;
            for (int TeamIndex = 0; TeamIndex < PData.Teams.Count; ++TeamIndex)
            {
                TeamDataDisplay TData = PData.Teams[TeamIndex];
                if (TData == InTeam)
                {
                    PData.Teams.Remove(TData);
                    PoolIndex = AllPools.Count;
                    break;
                }
            }
        }

        AllPools[NewPoolIndex].Data.Teams.Add(InTeam);

        AllPools[NewPoolIndex].Data.Teams.Sort(TeamSorter);
    }
    void WriteAiXml(XmlWriter writer, List <TeamDataDisplay> TeamList, int JudgeIndex)
    {
        if (TeamList.Count > 0 && TeamList[0].Data.RoutineScores.AIResults.Count > JudgeIndex)
        {
            writer.WriteStartElement("ns2:Ai" + (JudgeIndex + 1));
            for (int TeamIndex = 0; TeamIndex < TeamList.Count; ++TeamIndex)
            {
                TeamDataDisplay tdd = TeamList[TeamIndex];
                if (JudgeIndex < tdd.Data.RoutineScores.AIResults.Count)
                {
                    AIData ad = tdd.Data.RoutineScores.AIResults[JudgeIndex];

                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Variety", ad.Variety.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Teamwork", ad.Teamwork.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Music", ad.Music.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Flow", ad.Flow.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Form", ad.Form.ToString());
                    writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "General", ad.General.ToString());
                }
            }
            writer.WriteEndElement();
        }
    }
 void WriteDiffXml(XmlWriter writer, List <TeamDataDisplay> TeamList, int JudgeIndex)
 {
     if (TeamList.Count > 0 && TeamList[0].Data.RoutineScores.DiffResults.Count > JudgeIndex)
     {
         writer.WriteStartElement("ns2:Diff" + (JudgeIndex + 1));
         for (int TeamIndex = 0; TeamIndex < TeamList.Count; ++TeamIndex)
         {
             TeamDataDisplay tdd = TeamList[TeamIndex];
             if (JudgeIndex < tdd.Data.RoutineScores.DiffResults.Count)
             {
                 DiffData dd             = tdd.Data.RoutineScores.DiffResults[JudgeIndex];
                 int      DiffScoreCount = (int)(Global.AllData.AllDivisions[CurDivIndex].Rounds[CurRoundIndex].RoutineLengthMinutes * 4f);
                 for (int ScoreIndex = 0; ScoreIndex < DiffScoreCount; ++ScoreIndex)
                 {
                     float DiffScore = dd.DiffScores[ScoreIndex];
                     writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Diff" + (ScoreIndex + 1), DiffScore.ToString());
                     string ConsecValue = dd.ConsecScores[ScoreIndex] == 1 ? "+" : "";
                     writer.WriteElementString("ns2:Team" + (TeamIndex + 1) + "Consec" + (ScoreIndex + 1), ConsecValue);
                 }
             }
         }
         writer.WriteEndElement();
     }
 }
Example #11
0
 int TeamResultsSorter(TeamDataDisplay t1, TeamDataDisplay t2)
 {
     return(TeamResultsSorter(t1.Data, t2.Data));
 }
Example #12
0
    // Update is called once per frame
    void Update()
    {
        if (bGetRankings)
        {
            RankingsRequest     = new WWW(RankingURL);
            bWaitingForRankings = true;
            bGetRankings        = false;
            FetchStatus         = "Querying Shrednow.com";
        }
        else if (bWaitingForRankings && RankingsRequest.isDone)
        {
            if (RankingsRequest.error != null)
            {
                FetchStatus = RankingsText = RankingsRequest.error;
            }
            else
            {
                RankingsText = Encoding.UTF7.GetString(RankingsRequest.bytes, 0, RankingsRequest.bytes.Length);

                //int RankStartIndex = "<td align=\"center\">".Length;
                string       line    = null;
                StringReader AllText = new StringReader(RankingsText);
                AllPlayers.Clear();
                while ((line = AllText.ReadLine()) != null)
                {
                    // Old Arthur parsing
                    //if (line.StartsWith("<td align=\"center\">"))
                    //{
                    //    PlayerData NewData = new PlayerData();
                    //    int.TryParse(line.Substring(RankStartIndex, line.IndexOf('<', RankStartIndex) - RankStartIndex), out NewData.Rank);
                    //    int StartNameIndex = line.IndexOf("</td><td>") + "</td><td>".Length;
                    //    string LastName = line.Substring(StartNameIndex, line.IndexOf(',', StartNameIndex) - StartNameIndex);
                    //    string FirstName = line.Substring(line.IndexOf(',', StartNameIndex) + 2, line.IndexOf('<', StartNameIndex) - line.IndexOf(',', StartNameIndex) - 2);
                    //    int StartPointsIndex = line.IndexOf("</td><td align=\"center\">", StartNameIndex + FirstName.Length + LastName.Length + 10) +
                    //        "</td><td align=\"center\">".Length;
                    //    float.TryParse(line.Substring(StartPointsIndex, line.IndexOf('<', StartPointsIndex) - StartPointsIndex), out NewData.RankingPoints);

                    //    NameData NewName = NameDatabase.TryAddNewName(FirstName, LastName);
                    //    NewData.NameId = NewName.Id;

                    //    AllPlayers.Add(NewData);
                    //}

                    line = line.Trim();

                    string RankTd = "<td height=19 class=xl6322297 style='height:14.5pt'>";

                    string NameClass   = "xl1522297";
                    string PointsClass = "xl6322297";

                    // New Kolja parsing
                    if (line.StartsWith(RankTd))
                    {
                        PlayerData NewData = new PlayerData();
                        string     rankStr = line.Trim().Replace(RankTd, "");
                        rankStr = rankStr.Replace("</td>", "");
                        int.TryParse(rankStr, out NewData.Rank);
                        AllText.ReadLine();

                        string NameLine           = AllText.ReadLine().Trim().Replace("<td class=" + NameClass + ">", "");
                        int    NameLineCommaIndex = NameLine.IndexOf(',');
                        if (NameLineCommaIndex == -1)
                        {
                            continue;
                        }
                        string   LastName  = NameLine.Substring(0, NameLineCommaIndex);
                        string   FirstName = NameLine.Substring(NameLineCommaIndex + 2, NameLine.Length - LastName.Length - 7);
                        NameData NewName   = NameDatabase.TryAddNewName(FirstName, LastName);
                        NewData.NameId = NewName.Id;

                        AllText.ReadLine();
                        AllText.ReadLine();
                        string PointsLine = AllText.ReadLine().Trim();
                        PointsLine = PointsLine.Replace("<td class=" + PointsClass + ">", "").Replace("</td>", "").Replace(",", ".");
                        float.TryParse(PointsLine, out NewData.RankingPoints);

                        AllPlayers.Add(NewData);
                    }
                }

                RankingsText = "";
                for (int i = 0; i < AllPlayers.Count; ++i)
                {
                    PlayerData Data = AllPlayers[i];
                    RankingsText += NameDatabase.FindInDatabase(Data.NameId).DisplayName + "   " + Data.Rank + "   " + Data.RankingPoints + "\n";
                }

                FetchStatus = "Got " + AllPlayers.Count + " Players Rankings";

                InputTeamsTextChanged = true;
            }

            bWaitingForRankings = false;
        }

        if (InputTeamsTextChanged)
        {
            InputTeamsTextChanged = false;

            ParseTeamsText = "";
            StringReader TeamText = new StringReader(InputTeamsText);
            string       line     = null;
            AllTeams.Clear();
            ErrorList.Clear();
            while ((line = TeamText.ReadLine()) != null)
            {
                TeamData NewTeam = GetTeamFromString(line);
                if (NewTeam != null)
                {
                    AllTeams.Add(NewTeam);
                }
                else
                {
                    char[] BreakCharArray = new char[10];
                    BreakChars.CopyTo(BreakCharArray, 0);
                    string[]  NameArray = line.Split(BreakCharArray);
                    ErrorLine NewError  = new ErrorLine();
                    NewError.OriginalLine = line;
                    foreach (string s in NameArray)
                    {
                        string            NameStr    = s.Trim();
                        List <PlayerData> OutPlayers = new List <PlayerData>();
                        GetPlayersFromString(NameStr, ref OutPlayers);
                        NewError.ErrorList.Add(new ErrorData(NameStr, OutPlayers.Count == 0));
                    }
                    ErrorList.Add(NewError);
                }
            }

            if (bSortTeams)
            {
                AllTeams.Sort(TeamSorter);
            }

            for (int TeamIndex = 0; TeamIndex < AllTeams.Count; ++TeamIndex)
            {
                ParseTeamsText += (TeamIndex + 1) + ". " + AllTeams[TeamIndex].PlayerNames + " : " + AllTeams[TeamIndex].TotalRankPoints + "\n";
            }

            AllPools.Clear();
            if (PoolCount > 0)
            {
                char PoolName = 'A';
                for (int TeamIndex = 0; TeamIndex < AllTeams.Count; ++TeamIndex)
                {
                    if (bSortTeams)
                    {
                        int PoolIndex = TeamIndex % PoolCount;
                        if (PoolIndex >= AllPools.Count)
                        {
                            AllPools.Add(new PoolDataDisplay((PoolName++).ToString()));
                        }

                        AllPools[PoolIndex].Data.Teams.Add(new TeamDataDisplay(AllTeams[TeamIndex]));
                    }
                    else
                    {
                        int TeamsPerPool = AllTeams.Count / PoolCount;
                        int PoolIndex    = TeamIndex / TeamsPerPool;
                        if (PoolIndex >= AllPools.Count)
                        {
                            AllPools.Add(new PoolDataDisplay((PoolName++).ToString()));
                        }

                        AllPools[PoolIndex].Data.Teams.Add(new TeamDataDisplay(AllTeams[TeamIndex]));
                    }
                }
            }

            InputTeamsTextReduced = false;

            //Debug.Log("Parsing pools. Teams: " + AllTeams.Count + "  Pools: " + AllPools.Count);
        }

        if (Input.GetMouseButton(0))
        {
            if (MovingTeam != null)
            {
            }
        }
        else
        {
            if (MovingTeam != null)
            {
                for (int PoolIndex = 0; PoolIndex < AllPools.Count; ++PoolIndex)
                {
                    Vector3 NewMousePos = new Vector3(Input.mousePosition.x, Screen.height - Input.mousePosition.y + ParsedScrollPos.y, 0);
                    if (AllPools[PoolIndex].DisplayRect.Contains(NewMousePos))
                    {
                        MovedTeamBetweenPools(MovingTeam, PoolIndex);
                        break;
                    }
                }
            }

            for (int PoolIndex = 0; PoolIndex < AllPools.Count; ++PoolIndex)
            {
                PoolData PData = AllPools[PoolIndex].Data;
                for (int TeamIndex = 0; TeamIndex < PData.Teams.Count; ++TeamIndex)
                {
                    PData.Teams[TeamIndex].bClickedOn = false;
                }
            }

            MovingTeam = null;
        }
    }