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(); } }
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(); } }
int TeamResultsSorter(TeamDataDisplay t1, TeamDataDisplay t2) { return(TeamResultsSorter(t1.Data, t2.Data)); }
// 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; } }