コード例 #1
0
    void FilterAvailableJudges(string InFilterStr, ref List <NameData> OutFilteredJudges)
    {
        if (InFilterStr.Trim().Length == 0)
        {
            return;
        }

        char[]           Seperators = new char[] { ',', ' ', '-' };
        string[]         Names      = InFilterStr.Split(Seperators);
        List <MatchData> CloseNames = NameDatabase.GetCloseNames(Names.Length > 0 ? Names[0].Trim() : "", Names.Length > 1 ? Names[1].Trim() : "");

        CloseNames.AddRange(NameDatabase.GetCloseNames(Names.Length > 1 ? Names[1].Trim() : "", Names.Length > 0 ? Names[0].Trim() : ""));
        for (int JudgeIndex = 0; JudgeIndex < OutFilteredJudges.Count; ++JudgeIndex)
        {
            NameData nd     = OutFilteredJudges[JudgeIndex];
            bool     bFound = false;
            foreach (MatchData md in CloseNames)
            {
                if (nd == md.Name)
                {
                    bFound = true;
                }
            }

            if (!bFound)
            {
                OutFilteredJudges.RemoveAt(JudgeIndex);
                --JudgeIndex;
            }
        }
    }
コード例 #2
0
        public static void GenerateName(IQuestSource instance, ReputationNameConventions forcedType)
        {
            while (forcedType == ReputationNameConventions.UNKNOWN)
            {
                forcedType = EnumUtility.GetRandomEnumValue <ReputationNameConventions>();
            }

            StringBuilder sb = new StringBuilder();

            switch (forcedType)
            {
            case ReputationNameConventions.COMPOUND:
                instance.DisplayName = NameDatabase.GetCompoundName();
                break;

            case ReputationNameConventions.GROUP:
                instance.DisplayName = NameDatabase.GetGroupName();
                break;

            case ReputationNameConventions.POINT_OF_INTEREST:
                instance.DisplayName = NameDatabase.GetPointOfInterestName();
                break;

            case ReputationNameConventions.TERRITORY:
                instance.DisplayName = NameDatabase.GetTerritoryName();
                break;
            }
        }
コード例 #3
0
    void WriteJudgeNamesXml(XmlWriter writer, int PoolIndex)
    {
        ResultsData RData = TournamentData.FindResultsData((EDivision)CurDivIndex, (ERound)CurRoundIndex, (EPool)PoolIndex);

        int ExCount = RData.ExJudgeIds.Count;

        for (int ExIndex = 0; ExIndex < ExCount; ++ExIndex)
        {
            string JudgeName = NameDatabase.FindInDatabase(RData.ExJudgeIds[ExIndex]).DisplayName;
            writer.WriteElementString("ns2:Ex" + (ExIndex + 1), JudgeName);
        }

        int AiCount = RData.AIJudgeIds.Count;

        for (int AiIndex = 0; AiIndex < AiCount; ++AiIndex)
        {
            string JudgeName = NameDatabase.FindInDatabase(RData.AIJudgeIds[AiIndex]).DisplayName;
            writer.WriteElementString("ns2:Ai" + (AiIndex + 1), JudgeName);
        }

        int DiffCount = RData.DiffJudgeIds.Count;

        for (int DiffIndex = 0; DiffIndex < DiffCount; ++DiffIndex)
        {
            string JudgeName = NameDatabase.FindInDatabase(RData.DiffJudgeIds[DiffIndex]).DisplayName;
            writer.WriteElementString("ns2:Diff" + (DiffIndex + 1), JudgeName);
        }
    }
コード例 #4
0
    public static NameDatabase Load(Stream InStream)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(NameDatabase));
        NameDatabase  LoadedData = serializer.Deserialize(InStream) as NameDatabase;

        return(LoadedData);
    }
コード例 #5
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
コード例 #6
0
    static Agent()
    {
        TextAsset asset = Resources.Load("names") as TextAsset;

        Debug.Log(asset);
        names = JsonUtility.FromJson <NameDatabase>(asset.text);
    }
コード例 #7
0
ファイル: GameItem.cs プロジェクト: Randehh/Overworld-Patron
        public GameItem(GameItemTypes type, GameItemRarity rarity)
        {
            ItemType = type;
            Rarity   = rarity;

            DisplayName = NameDatabase.GetItemName(this);
            BasePower   = Random.Range(12f, 15f);
        }
コード例 #8
0
 void OnServerInitialized()
 {
     Debug.Log("Server Initialized");
     connected = true;
     NameDatabase.clearNames();
     NameDatabase.addName(Network.player.guid, PlayerPrefs.GetString("userName"));
     setRace(Network.player, raceListKey[raceListEntry]);
 }
コード例 #9
0
        public static FactionInstance GenerateFaction()
        {
            FactionInstance newFaction = new FactionInstance();

            newFaction.DisplayName = NameDatabase.GetGroupName();

            return(newFaction);
        }
コード例 #10
0
        public static QuestInstance GenerateQuest(int difficulty, QuestMakeupType makeup)
        {
            string        questName = NameDatabase.GetQuestName();
            QuestInstance quest     = new QuestInstance(questName, difficulty, QuestMakeup.GetMakeup(makeup));

            quest.Duration.OriginalValue   = UnityEngine.Random.Range(TimeUtilities.GetSecondsInDays(0.1f), TimeUtilities.GetSecondsInDays(0.4f));
            quest.TravelTime.OriginalValue = UnityEngine.Random.Range(TimeUtilities.GetSecondsInDays(0.2f), TimeUtilities.GetSecondsInDays(0.4f));
            quest.ExpireTime = UnityEngine.Random.Range(TimeUtilities.MIN_QUEST_EXPIRE_TIME, TimeUtilities.MAX_QUEST_EXPIRE_TIME);
            return(quest);
        }
コード例 #11
0
    string GetBackupDisplayString(BackupAIData bd)
    {
        TeamData td            = Global.GetTeamData(bd.Data.Division, bd.Data.Round, bd.Data.Pool, bd.Data.Team);
        string   TeamName      = td != null ? td.PlayerNames : "Missing Team";
        NameData JudgeNameData = NameDatabase.FindInDatabase(bd.Data.JudgeNameId);
        string   JudgeName     = JudgeNameData != null ? JudgeNameData.DisplayName : "Missing Judge";
        string   BackupStr     = JudgeName + "  " + bd.Data.Division.ToString() + " " + bd.Data.Round.ToString() + " " +
                                 (char)(bd.Data.Pool + 'A') + " | " + TeamName + " | " + bd.WrittenTime.ToString();

        return(BackupStr);
    }
コード例 #12
0
    void OnConnectedToServer()
    {
        NameDatabase.clearNames();
        Debug.Log("Connected to Server");
        connected = true;
        string myname = PlayerPrefs.GetString("userName");

        NameDatabase.addName(Network.player.guid, myname);
        networkView.RPC("registerName", RPCMode.Server, myname, Network.player.guid);
        networkView.RPC("requestNames", RPCMode.Server);
    }
コード例 #13
0
 public static void LoadNameData()
 {
     if (Global.AllNameData == null)
     {
         Global.AllNameData = NameDatabase.Load(Application.persistentDataPath + "/names.xml");
         if (Global.AllNameData == null)
         {
             Global.AllNameData = new NameDatabase();
         }
     }
 }
コード例 #14
0
 void GetPlayersFromString(string InLine, ref List <PlayerData> OutPlayers)
 {
     for (int PlayerIndex = 0; PlayerIndex < AllPlayers.Count; ++PlayerIndex)
     {
         PlayerData Data = AllPlayers[PlayerIndex];
         if (NameDatabase.FindInDatabase(Data.NameId).IsInLine(InLine))
         {
             OutPlayers.Add(Data);
         }
     }
 }
コード例 #15
0
ファイル: ConnectDB.cs プロジェクト: nstungxd/ips-project-vdc
 public static OracleConnection GetOracleConnection(OracleConnection connect, NameDatabase dbName = NameDatabase.GiamSat)
 {
     try
     {
         connect.ConnectionString = dbName == NameDatabase.DauTu ? OradbDt : OradbGs;
         connect.Open();
         return connect;
     }
     catch (Exception)
     {
         return null;
     }
 }
コード例 #16
0
ファイル: ConnectDB.cs プロジェクト: nstungxd/ips-project-vdc
 public static OracleConnection GetOracleConnection(OracleConnection connect, NameDatabase dbName = NameDatabase.GiamSat)
 {
     try
     {
         connect.ConnectionString = dbName == NameDatabase.DauTu ? OradbDt : OradbGs;
         connect.Open();
         return(connect);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #17
0
    public static NameData TryAddNewName(string InFirstName, string InLastName)
    {
        NameData NewName = NameDatabase.FindInDatabase(InFirstName, InLastName);

        if (NewName == null)
        {
            NewName = new NameData(InFirstName, InLastName);
            Global.AllNameData.AllNames.Add(NewName);

            Global.AllNameData.Save();
        }

        return(NewName);
    }
コード例 #18
0
    void OnGUI_DisplayPlayer(NetworkPlayer player)
    {
        GUILayout.BeginHorizontal("box", GUILayout.Height(50));

        GUILayout.Label(NameDatabase.getName(player.guid), GUILayout.Width(200));
        if (Network.isServer && player != Network.player)
        {
            if (GUILayout.Button("Kick"))
            {
                Network.CloseConnection(player, true);
            }
        }
        GUILayout.FlexibleSpace();

        if (player == Network.player)
        {
            GUILayout.Label(new GUIContent("", "Click to pick a Race!"), "", GUILayout.Width(125));
            if (GUI.tooltip != "")
            {
                GUI.Label(new Rect(Input.mousePosition.x - 50, Screen.height - Input.mousePosition.y - 50, 200, 30), "Click to pick a Race!");
            }

            Rect popupRect = GUILayoutUtility.GetLastRect();

            if (player == Network.player)
            {
                if (Popup.List(popupRect, ref raceListShow, ref raceListEntry, new GUIContent(RaceDatabase.getRace(Network.player)), raceList, "button", "box", raceListStyle))
                {
                    if (Network.isServer)
                    {
                        requestRace(Network.player, raceListKey[raceListEntry]);
                    }
                    else
                    {
                        networkView.RPC("requestRace", RPCMode.Server, Network.player, raceListKey[raceListEntry]);
                    }
                }
            }
        }
        else
        {
            GUILayout.Label(RaceDatabase.getRace(player));
        }

        GUILayout.FlexibleSpace();

        GUILayout.Label("Ping: " + Network.GetAveragePing(player), GUILayout.Width(150));

        GUILayout.EndHorizontal();
    }
コード例 #19
0
    void DrawJudgeLabel(ResultsData InRData, int InId)
    {
        GUIStyle JudgeStyle = new GUIStyle("label");

        JudgeStyle.fontSize = 15;
        GUIStyle LabelStyle = new GUIStyle("label");
        NameData NData      = NameDatabase.FindInDatabase(InId);

        if (NData != null)
        {
            string           Str    = NData.DisplayName;
            NetworkJudgeData NJData = GetJudgeDataFromNameId(InRData, NData.Id);
            //Debug.Log(" asdf: " + InRData.AIJudgeIds[0] + "   " + NData.Id + "  " + InId);
            if (NJData != null)
            {
                if (NJData.bJudging)
                {
                    JudgeStyle.normal.textColor = Color.yellow;
                    Str += " - JUDGING";
                }
                else if (NJData.bLocked)
                {
                    JudgeStyle.normal.textColor = Color.green;
                    Str += " - LOCKED";
                }
                else if (NJData.bIsHoldReady)
                {
                    JudgeStyle.normal.textColor = Color.green;
                    Str += " - READY";
                }
                else if (NJData.bEditing)
                {
                    JudgeStyle.normal.textColor = Color.yellow;
                    Str += " - EDITING";
                }
                else
                {
                    JudgeStyle.normal.textColor = Color.red;
                    Str += " - NOT READY";
                }
            }
            else
            {
                JudgeStyle.normal.textColor = LabelStyle.normal.textColor;
                Str += " - NOT CONNECTED";
            }
            GUILayout.Label(Str, JudgeStyle);
        }
    }
コード例 #20
0
    void FinishSendNamesRPC()
    {
        bGettingNames = false;
        try
        {
            using (Stream stream = Global.GenerateStreamFromString(NamesBuilderString))
                Global.AllNameData = NameDatabase.Load(stream);
        }
        catch (Exception e)
        {
            Debug.Log("Exception in FinishSendNamesRPC: " + e.Message);
        }

        //Debug.Log(" finished: ");
    }
コード例 #21
0
        public static HeroInstance GenerateHero(int level, HeroType heroType)
        {
            HeroInstance newHero = new HeroInstance();

            newHero.DisplayName = NameDatabase.GetHeroName();
            newHero.Experience  = HeroUtility.GetTotalExperienceRequiredForLevel(level);
            newHero.HeroType    = heroType;

            for (int i = 0; i < Random.Range(0, 4); i++)
            {
                newHero.Traits.Add(DataFetcher.HeroTraits.traits.GetRandom());
            }

            return(newHero);
        }
コード例 #22
0
    string GetBackupDisplayString(BackupDiffData bd)
    {
        if (bd.Data == null)
        {
            Debug.Log(String.Format(" {0}, {1}, {2} ", bd != null, bd != null && bd.Data != null, bd != null && bd.Data != null ? (int)bd.Data.Pool : 0));
        }

        TeamData td            = Global.GetTeamData(bd.Data.Division, bd.Data.Round, bd.Data.Pool, bd.Data.Team);
        string   TeamName      = td != null ? td.PlayerNames : "Missing Team";
        NameData JudgeNameData = NameDatabase.FindInDatabase(bd.Data.JudgeNameId);
        string   JudgeName     = JudgeNameData != null ? JudgeNameData.DisplayName : "Missing Judge";
        string   BackupStr     = JudgeName + "  " + bd.Data.Division.ToString() + " " + bd.Data.Round.ToString() + " " +
                                 (char)(bd.Data.Pool + 'A') + " | " + TeamName + " | " + bd.WrittenTime.ToString();

        return(BackupStr);
    }
コード例 #23
0
    void requestNames(NetworkMessageInfo info)
    {
        Debug.Log("requestNames received from " + info);

        foreach (string key in NameDatabase.getKeys())
        {
            //Register other users
            Debug.Log("Sent name= " + NameDatabase.getName(key) + ", key = " + key);
            if (Network.isServer && key == Network.player.guid)
            {
                networkView.RPC("registerName", info.sender, NameDatabase.getName(key), "");
            }
            else
            {
                networkView.RPC("registerName", info.sender, NameDatabase.getName(key), key);
            }
        }
    }
コード例 #24
0
        public static GameItem GenerateItem(
            GameItemTypes type    = GameItemTypes.UNKNOWN,
            GameItemRarity rarity = GameItemRarity.UNKNOWN,
            float quality         = 0.5f)
        {
            if (type == GameItemTypes.UNKNOWN)
            {
                type = EnumUtility.GetRandomEnumValue <GameItemTypes>(1);
            }
            if (rarity == GameItemRarity.UNKNOWN)
            {
                rarity = EnumUtility.GetRandomEnumValue <GameItemRarity>(1);
            }

            GameItem newItem = new GameItem(type, rarity, quality);

            newItem.DisplayName      = NameDatabase.GetItemName(newItem);
            newItem.BaseAttackPower  = Random.Range(1f, 3f);
            newItem.BaseDefencePower = Random.Range(1f, 3f);
            return(newItem);
        }
コード例 #25
0
        public static HeroInstance GenerateHero(QuestSourceFaction faction, int level, bool addToRoster)
        {
            HeroInstance newHero = new HeroInstance();

            newHero.DisplayName = NameDatabase.GetHeroName();
            //newHero.Nickname = UnityEngine.Random.Range(0, 4) == 0 ? NameDatabase.GetCompoundName() : "";
            newHero.Class          = EnumUtility.GetRandomEnumValue <HeroClasses>();
            newHero.Experience     = HeroUtility.GetTotalExperienceRequiredForLevel(level);
            newHero.EquipmentLevel = UnityEngine.Random.Range(1, 10);
            newHero.HeroState      = HeroStates.IDLE;

            Dictionary <QuestTypes, float> tempQuestValues = new Dictionary <QuestTypes, float>();
            float tempQuestValuesTotal = 0;

            foreach (QuestTypes questType in Enum.GetValues(typeof(QuestTypes)))
            {
                tempQuestValues.Add(questType, UnityEngine.Random.Range(0f, 10f));
                tempQuestValuesTotal = tempQuestValues[questType];
            }
            foreach (QuestTypes questType in Enum.GetValues(typeof(QuestTypes)))
            {
                newHero.QuestTypePreferences[questType] = (tempQuestValues[questType] / tempQuestValuesTotal).Map(0, 1, 0.6f, 1.25f);
            }

            float offset = 0.25f;

            newHero.QuestPrefRewardGold  = UnityEngine.Random.Range(0f, 1f);
            newHero.QuestPrefRewardItem  = 1 - newHero.QuestPrefRewardGold;
            newHero.QuestPrefRewardGold += offset;
            newHero.QuestPrefRewardItem += offset;


            if (addToRoster)
            {
                HeroManager.AddHero(newHero, faction);
            }

            return(newHero);
        }
コード例 #26
0
    // Update is called once per frame
    public void Update()
    {
        UpdateQuitGesture();

        Global.NetObj.UpdateUdpListener();

        Global.NetObj.UpdateClientJudgeState();

        if (bIsJudging && HeaderDrawer.RoutineTime / 60f >= GetRoutineLengthMinutes())
        {
            bRoutineTimeEnded = true;
        }

        TestReadyTimer -= Time.deltaTime;

        if (Global.AllData == null || Global.AllNameData == null)
        {
            return;
        }

        if (CurPool != EPool.None)
        {
            int NameId = GetJudgeNameId();
            if (NameId != -1)
            {
                HeaderDrawer.JudgeName = NameDatabase.FindInDatabase(NameId).DisplayName;
            }
        }

        HeaderDrawer.DivisionString        = CurDivision.ToString();
        HeaderDrawer.RoutineTime           = bIsJudging ? (float)(DateTime.Now - RoutineStartTime).TotalSeconds : 0;
        HeaderDrawer.bShowReadyButton      = bHeadJudgeRequestingReady && !bLockedForJudging && !bRoutineTimeEnded && !bClientReadyToBeLocked;
        HeaderDrawer.bShowFinishedButton   = bRoutineTimeEnded;
        HeaderDrawer.WaitingForJudgesCount = WaitingForJudgesCount;
        HeaderDrawer.bShowWaitingForJudges = WaitingForJudgesCount > 0 && !bLockedForJudging &&
                                             !bIsJudging && !HeaderDrawer.bShowFinishedButton && !HeaderDrawer.bShowReadyButton && !bIsEditing;

        bIsDataDirty = false;
    }
コード例 #27
0
    public static NameDatabase Load(string Filename)
    {
        if (!File.Exists(Filename))
        {
            return(null);
        }

        NameDatabase LoadedData = null;

        try
        {
            XmlSerializer serializer = new XmlSerializer(typeof(NameDatabase));
            FileStream    stream     = new FileStream(Filename, FileMode.Open);
            LoadedData = serializer.Deserialize(stream) as NameDatabase;
            stream.Close();
        }
        catch (IOException e)
        {
            Debug.Log("Loading exception: " + e.Message);
        }

        return(LoadedData);
    }
コード例 #28
0
    public string GetResultsString(int InResultIndex, ECategoryView InCat, bool bInIncludeName, List <RoutineScoreData> sortedScores)
    {
        switch (InCat)
        {
        case ECategoryView.AI:
            if (InResultIndex < AIResults.Count)
            {
                return(System.String.Format((bInIncludeName ? "{6}:  " : "") + "V: {0:0.0}  T: {1:0.0}  M: {2:0.0}  Fw: {3:0.0}  Fm: {4:0.0}  G: {5:0.0}  Total: {7:0.00}",
                                            AIResults[InResultIndex].Variety, AIResults[InResultIndex].Teamwork, AIResults[InResultIndex].Music, AIResults[InResultIndex].Flow,
                                            AIResults[InResultIndex].Form, AIResults[InResultIndex].General,
                                            NameDatabase.FindInDatabase(AIResults[InResultIndex].JudgeNameId).DisplayName, AIResults[InResultIndex].GetTotalPoints()));
            }
            break;

        case ECategoryView.Ex:
            if (InResultIndex < ExResults.Count)
            {
                return(System.String.Format((bInIncludeName ? "{4}:  " : "") + ".1: {0}  .2: {1}  .3: {2}  .5: {3}  Total: {5:0.00}", ExResults[InResultIndex].Point1Count, ExResults[InResultIndex].Point2Count,
                                            ExResults[InResultIndex].Point3Count, ExResults[InResultIndex].Point5Count,
                                            NameDatabase.FindInDatabase(ExResults[InResultIndex].JudgeNameId).DisplayName, ExResults[InResultIndex].GetTotalPoints()));
            }
            break;

        case ECategoryView.Diff:
            if (InResultIndex < DiffResults.Count)
            {
                string Ret = bInIncludeName ? NameDatabase.FindInDatabase(DiffResults[InResultIndex].JudgeNameId).DisplayName + ":  " : "";
                for (int i = 0; i < DiffResults[InResultIndex].NumScores; ++i)
                {
                    Ret += DiffResults[InResultIndex].DiffScores[i].ToString("0.0") + DiffResults[InResultIndex].GetConsecString(i) +
                           ((i < DiffResults[InResultIndex].NumScores - 1) ? ", " : "");
                }
                Ret += "  Total: " + DiffResults[InResultIndex].GetTotalPoints().ToString("0.00");
                return(Ret);
            }
            break;

        case ECategoryView.Overview:
        {
            string Ret      = "";
            float  AIPoints = 0;
            foreach (AIData aid in AIResults)
            {
                AIPoints += aid.GetTotalPoints();
                Ret      += "  AI: " + aid.GetTotalPoints().ToString("0.00");
            }
            float ExPoints = 0;
            foreach (ExData exd in ExResults)
            {
                ExPoints += exd.GetTotalPoints();
                Ret      += "  Ex: " + exd.GetTotalPoints().ToString("0.00");
            }
            float DiffPoints = 0;
            foreach (DiffData dd in DiffResults)
            {
                DiffPoints += dd.GetTotalPoints();
                Ret        += "  Diff: " + dd.GetTotalPoints().ToString("0.00");
            }
            float TotalPoints = AIPoints + ExPoints + DiffPoints;
            if (TotalPoints > 0)
            {
                int resultIndex = 0;
                if (sortedScores != null)
                {
                    foreach (RoutineScoreData score in sortedScores)
                    {
                        if (score == this)
                        {
                            break;
                        }

                        ++resultIndex;
                    }
                }

                Ret += "    Totals:  Diff: " + DiffPoints.ToString("0.00") + " AI: " + AIPoints.ToString("0.00") + " Ex: " +
                       ExPoints.ToString("0.00") + " All: " + TotalPoints.ToString("0.00") + "   Place: " + (resultIndex + 1);
            }

            return(Ret);
        }
        }

        return("");
    }
コード例 #29
0
 public Game()
 {
     GameClock.currentTime = GameSettings.gameStartDate;
     NameDatabase.createNameDatabase();
 }
コード例 #30
0
    void OnGUI()
    {
        bool bRepaintUpdate = Event.current.ToString() == "Repaint";

        if (GUI.Button(new Rect(Screen.width - 150, Screen.height - 150, 150, 150), "Save"))
        {
            Global.AllData.Save();
        }

        float StartSelectY = 30;
        float SelectHeight = 30;

        DivisionCombo.Draw(new Rect(20, StartSelectY, Screen.width * .18f, SelectHeight));
        RoundCombo.Draw(new Rect(20 + Screen.width * .2f, StartSelectY, Screen.width * .18f, SelectHeight));

        GUILayout.BeginArea(new Rect(20 + Screen.width * .4f, StartSelectY, Screen.width - Screen.width * .4f - 40, SelectHeight));
        GUILayout.BeginHorizontal();

        List <PoolData> Pools = Global.AllData.AllDivisions[DivisionCombo.GetSelectedItemIndex()].Rounds[RoundCombo.GetSelectedItemIndex()].Pools;

        for (int PoolIndex = 0; PoolIndex < Pools.Count; ++PoolIndex)
        {
            DrawPoolButton("Pool: " + Pools[PoolIndex].PoolName, PoolIndex, SelectHeight);
        }

        GUILayout.EndHorizontal();
        GUILayout.EndArea();

        float RightRectStartY = Screen.height * .02f + SelectHeight + StartSelectY;
        Rect  RightRect       = new Rect(20, RightRectStartY, Screen.width * .3f, Screen.height - RightRectStartY - 20);
        Rect  LeftRect        = new Rect(RightRect.x + RightRect.width + Screen.width * .1f, RightRect.y, RightRect.width, Screen.height * .5f);

        if (CurPoolButtonIndex != -1)
        {
            ResultsData RData = TournamentData.FindResultsData((EDivision)DivisionCombo.GetSelectedItemIndex(), (ERound)RoundCombo.GetSelectedItemIndex(), (EPool)CurPoolButtonIndex);
            if (RData == null)
            {
                RData = new ResultsData((EDivision)DivisionCombo.GetSelectedItemIndex(), (ERound)RoundCombo.GetSelectedItemIndex(), (EPool)CurPoolButtonIndex);
                Pools[CurPoolButtonIndex].JudgersId = RData.Id;

                Global.AllData.ResultsList.Add(RData);
            }
            else if (Pools[CurPoolButtonIndex].JudgersId == -1)
            {
                if (RData.Id == -1)
                {
                    RData.Id = ResultsData.GetUniqueId();
                }

                Pools[CurPoolButtonIndex].JudgersId = RData.Id;
            }


            if (RData != null && Global.AllNameData.AllJudges != null)
            {
                GUILayout.BeginArea(RightRect);
                RightScroll = GUILayout.BeginScrollView(RightScroll);
                GUILayout.BeginVertical();

                string NewFilterStr = GUILayout.TextField(JudgeFilterStr);

                if (NewFilterStr != JudgeFilterStr || AvailableJudges.Count == 0)
                {
                    JudgeFilterStr = NewFilterStr;

                    AvailableJudges.Clear();
                    foreach (NameData pd in Global.AllNameData.AllJudges)
                    {
                        if (!IsPlayingInPool(pd, RData) && !RData.ContainsPlayer(pd))
                        {
                            AvailableJudges.Add(pd);
                        }
                    }

                    FilterAvailableJudges(JudgeFilterStr, ref AvailableJudges);
                }

                GUILayout.Space(20);

                GUIStyle LabelStyle  = new GUIStyle("label");
                GUIStyle PlayerStyle = new GUIStyle("label");
                PlayerStyle.alignment = TextAnchor.MiddleLeft;
                foreach (NameData nd in AvailableJudges)
                {
                    bool bMoving = MovingNameId == nd.Id;
                    PlayerStyle.normal.textColor = bMoving ? Color.grey : LabelStyle.normal.textColor;

                    GUIContent PlayerCont = new GUIContent(nd.DisplayName);
                    Vector2    PlayerSize = PlayerStyle.CalcSize(PlayerCont);
                    if (GUILayout.RepeatButton(PlayerCont, PlayerStyle, GUILayout.Width(RightRect.width * .9f), GUILayout.Height(PlayerSize.y)))
                    {
                        MovingNameId = nd.Id;
                    }
                }

                GUILayout.EndVertical();
                GUILayout.EndScrollView();
                GUILayout.EndArea();


                // Left Rect ------------
                GUILayout.BeginArea(LeftRect);
                GUILayout.BeginVertical();
                GUIStyle JudgeStyle = new GUIStyle("label");
                JudgeStyle.alignment = TextAnchor.MiddleLeft;

                GUILayout.BeginVertical();
                GUILayout.Label("AI Judges:", JudgeStyle);
                for (int PlayerIndex = 0; PlayerIndex < Mathf.Max(RData.AIJudgeIds.Count, 3); ++PlayerIndex)
                {
                    int    PlayerId  = -1;
                    bool   bMoving   = false;
                    string PlayerStr = PlayerIndex < 3 ? (PlayerIndex + 1) + ". " : "";
                    if (PlayerIndex < RData.AIJudgeIds.Count)
                    {
                        PlayerId = RData.AIJudgeIds[PlayerIndex];
                        bMoving  = PlayerId == MovingNameId;

                        PlayerStr += NameDatabase.FindInDatabase(PlayerId).DisplayName;
                    }

                    JudgeStyle.normal.textColor = bMoving ? Color.grey : LabelStyle.normal.textColor;

                    GUIContent JudgeCont = new GUIContent(PlayerStr);
                    Vector2    JudgeSize = JudgeStyle.CalcSize(JudgeCont);
                    if (GUILayout.RepeatButton(JudgeCont, JudgeStyle, GUILayout.Width(LeftRect.width * .6f), GUILayout.Height(JudgeSize.y)) && PlayerIndex < RData.AIJudgeIds.Count)
                    {
                        MovingNameId = PlayerId;
                    }
                }
                GUILayout.EndVertical();
                if (bRepaintUpdate)
                {
                    JudgeRects[0]   = GUILayoutUtility.GetLastRect();
                    JudgeRects[0].x = LeftRect.x;
                    JudgeRects[0].y = LeftRect.y;
                }

                GUILayout.BeginVertical();
                GUILayout.Label("Ex Judges:", JudgeStyle);
                for (int PlayerIndex = 0; PlayerIndex < Mathf.Max(RData.ExJudgeIds.Count, 3); ++PlayerIndex)
                {
                    int    PlayerId  = -1;
                    bool   bMoving   = false;
                    string PlayerStr = PlayerIndex < 3 ? (PlayerIndex + 1) + ". " : "";
                    if (PlayerIndex < RData.ExJudgeIds.Count)
                    {
                        PlayerId = RData.ExJudgeIds[PlayerIndex];
                        bMoving  = PlayerId == MovingNameId;

                        PlayerStr += NameDatabase.FindInDatabase(PlayerId).DisplayName;
                    }

                    JudgeStyle.normal.textColor = bMoving ? Color.grey : LabelStyle.normal.textColor;

                    GUIContent JudgeCont = new GUIContent(PlayerStr);
                    Vector2    JudgeSize = JudgeStyle.CalcSize(JudgeCont);
                    if (GUILayout.RepeatButton(JudgeCont, JudgeStyle, GUILayout.Width(LeftRect.width * .6f), GUILayout.Height(JudgeSize.y)) && PlayerIndex < RData.ExJudgeIds.Count)
                    {
                        MovingNameId = PlayerId;
                    }
                }
                GUILayout.EndVertical();
                if (bRepaintUpdate)
                {
                    JudgeRects[1]    = GUILayoutUtility.GetLastRect();
                    JudgeRects[1].x += LeftRect.x;
                    JudgeRects[1].y += LeftRect.y;
                }

                GUILayout.BeginVertical();
                GUILayout.Label("Diff Judges:", JudgeStyle);
                for (int PlayerIndex = 0; PlayerIndex < Mathf.Max(RData.DiffJudgeIds.Count, 3); ++PlayerIndex)
                {
                    int    PlayerId  = -1;
                    bool   bMoving   = false;
                    string PlayerStr = PlayerIndex < 3 ? (PlayerIndex + 1) + ". " : "";
                    if (PlayerIndex < RData.DiffJudgeIds.Count)
                    {
                        PlayerId = RData.DiffJudgeIds[PlayerIndex];
                        bMoving  = PlayerId == MovingNameId;

                        PlayerStr += NameDatabase.FindInDatabase(PlayerId).DisplayName;
                    }

                    JudgeStyle.normal.textColor = bMoving ? Color.grey : LabelStyle.normal.textColor;

                    GUIContent JudgeCont = new GUIContent(PlayerStr);
                    Vector2    JudgeSize = JudgeStyle.CalcSize(JudgeCont);
                    if (GUILayout.RepeatButton(JudgeCont, JudgeStyle, GUILayout.Width(LeftRect.width * .6f), GUILayout.Height(JudgeSize.y)) && PlayerIndex < RData.DiffJudgeIds.Count)
                    {
                        MovingNameId = PlayerId;
                    }
                }
                GUILayout.EndVertical();
                if (bRepaintUpdate)
                {
                    JudgeRects[2]    = GUILayoutUtility.GetLastRect();
                    JudgeRects[2].x += LeftRect.x;
                    JudgeRects[2].y += LeftRect.y;
                }

                GUILayout.EndVertical();
                GUILayout.EndArea();

                if (MovingNameId != -1)
                {
                    GUI.Label(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 500, 30), NameDatabase.FindInDatabase(MovingNameId).DisplayName);
                }
            }
        }

        float BottomRectX = RightRect.x + RightRect.width + 20;
        float BottomRectY = LeftRect.y + LeftRect.height;

        GUILayout.BeginArea(new Rect(BottomRectX, BottomRectY, Screen.width - BottomRectX - 170, Screen.height - BottomRectY - 20));
        GUILayout.Label("All Judges Names");
        AllJudgesTextScrollPos = GUILayout.BeginScrollView(AllJudgesTextScrollPos);
        string NewAllJudgesString = GUILayout.TextArea(AllJudgesString);

        if (NewAllJudgesString != AllJudgesString)
        {
            AllJudgesString = NewAllJudgesString;
            AvailableJudges.Clear();
            Global.AllNameData.AllJudges.Clear();

            StringReader reader = new StringReader(AllJudgesString);
            string       line   = null;
            while ((line = reader.ReadLine()) != null)
            {
                AddJudgersFromString(line);
            }

            Global.AllNameData.Save();
        }
        GUILayout.EndScrollView();
        GUILayout.EndArea();
    }
コード例 #31
0
    void ExportScheduleToExcel()
    {
        if (CurDivIndex != -1 && CurRoundIndex != -1 && File.Exists(ExcelPath))
        {
            StringWriter OutStr = new StringWriter();

            OutStr.WriteLine((EDivision)(CurDivIndex) + " - " + (ERound)(CurRoundIndex) + "\t\tJudges");
            List <PoolData> Pools     = Global.AllData.AllDivisions[CurDivIndex].Rounds[CurRoundIndex].Pools;
            int             PoolIndex = 0;
            foreach (PoolData pd in Pools)
            {
                OutStr.WriteLine("Pool " + pd.PoolName + "\t\tAI\tEx\tDiff");
                ResultsData JData = TournamentData.FindResultsData((EDivision)CurDivIndex, (ERound)CurRoundIndex, (EPool)PoolIndex);

                int TeamNum = 0;
                foreach (TeamDataDisplay tdd in pd.Teams)
                {
                    ++TeamNum;
                    OutStr.Write(TeamNum + ": " + tdd.Data.PlayerNames + "\t\t");

                    if (JData != null)
                    {
                        int NameId = JData.GetNameId(ECategory.AI, TeamNum - 1);
                        if (NameId != -1)
                        {
                            OutStr.Write(NameDatabase.FindInDatabase(NameId).DisplayName);
                        }
                        OutStr.Write("\t");

                        NameId = JData.GetNameId(ECategory.Ex, TeamNum - 1);
                        if (NameId != -1)
                        {
                            OutStr.Write(NameDatabase.FindInDatabase(NameId).DisplayName);
                        }
                        OutStr.Write("\t");

                        NameId = JData.GetNameId(ECategory.Diff, TeamNum - 1);
                        if (NameId != -1)
                        {
                            OutStr.Write(NameDatabase.FindInDatabase(NameId).DisplayName);
                        }
                        OutStr.WriteLine("\t");
                    }
                }

                OutStr.WriteLine();

                ++PoolIndex;
            }

            int    TempNum      = 0;
            string TempFilePath = Application.persistentDataPath + "/TempExcelStr.txt";
            if (File.Exists(TempFilePath))
            {
                bool bDeletedFile = false;
                while (!bDeletedFile)
                {
                    try
                    {
                        File.Delete(TempFilePath);

                        bDeletedFile = true;
                    }
                    catch
                    {
                        TempFilePath = Application.persistentDataPath + "/TempExcelStr-" + TempNum++ + ".txt";
                    }
                }
            }
            StreamWriter TempFile = new StreamWriter(TempFilePath);
            TempFile.Write(OutStr.ToString());
            TempFile.Close();
            OutStr.Close();

            TempFilePath = TempFilePath.Replace('/', '\\');
            Process.Start(ExcelPath, "\"" + TempFilePath + "\"");
        }
    }