예제 #1
0
    private void SetElements(CompleteCaseEvaluation caseEvaluation)
    {
        CaseField.DestroyAllChildren();

        CaseDescription   caseDescription = caseEvaluation.RoleplayDescription.Case;
        ModuleCaseProfile profile         = ProfileContainer.GetCaseProfileOfModule(caseDescription.Module);

        int[][] characteristics = caseDescription.Characteristics;

        for (int i = 0; i < characteristics.Length; i++)
        {
            CaseElement       element           = profile.GetElement(i);
            VisualCaseElement visualCaseElement = Instantiate(ElementObject, CaseField);
            visualCaseElement.SetName(element.Name);
            int[] elementIndices = characteristics[i];

            for (int j = 0; j < elementIndices.Length; j++)
            {
                int    k = elementIndices[j];
                string characteristic = element.OptionPool[k];

                visualCaseElement.AddCharacteristic(characteristic);
            }
        }
    }
예제 #2
0
    public void PrepareScreen(string serializedCompleteEvaluation)
    {
        CompleteCaseEvaluation caseEvaluation = JsonUtility.FromJson <CompleteCaseEvaluation>(serializedCompleteEvaluation);

        SetNames(caseEvaluation);
        SetElements(caseEvaluation);
        SetEvaluation(caseEvaluation.EvaluationUserA, EvaluationUserAFields);
        SetEvaluation(caseEvaluation.EvaluationUserB, EvaluationUserBFields);
    }
        public void OnHistoryLogsRequested(Participant participant, string serializedIndex)
        {
            int index = int.Parse(serializedIndex);

            string[] ids = LoadUserLogs(participant.Id);


            int count = Mathf.Clamp(Mathf.Min(ChunkSize, ids.Length - index), 0, int.MaxValue);

            SerializedHistory serializedHistory = new SerializedHistory()
            {
                Index = index,
                SerializedHistoryLogs = new string[count]
            };

            for (int i = index; i < count; i++)
            {
                string id   = ids[i];
                string name = string.Format(CompleteEvaluationName.Value, id);
                SaveLoad.Load(name, out string log);

                if (log == null)
                {
                    Debug.LogWarning("Missing Evaluation Entry: " + id);
                    break;
                }

                CompleteCaseEvaluation caseEvaluation = JsonUtility.FromJson <CompleteCaseEvaluation>(log);

                char c = (char)124;

                string serializedCase = caseEvaluation.RoleplayDescription.Case.Module.ToString() + c
                                        + caseEvaluation.EvaluationUserA.User.Name + c
                                        + caseEvaluation.EvaluationUserB.User.Name + c
                                        + caseEvaluation.TimeStamp + c
                                        + caseEvaluation.RoleplayDescription.Id;

                serializedHistory.SerializedHistoryLogs[i - index] = serializedCase;
            }

            string         json    = JsonUtility.ToJson(serializedHistory);
            NetworkMessage message = new NetworkMessage(NetworkMessageType.RequestHistoryLogs, "", participant.Id, json);

            Manager.SendMessage(message, participant.IP);
        }
    private void GenerateCompleteEvaluation(string id, CaseEvaluation caseEvaluation)
    {
        // Removes the case from the dictionary.
        CaseEvaluation other = acquiredEvaluations[id];

        acquiredEvaluations.Remove(id);

        // Converts the stored roleplay to an object.
        string roleplayJson;
        string fileName = string.Format(RoleplaySaveName.Value, id);

        SaveLoad.Load(fileName, out roleplayJson);
        RoleplayDescription roleplayDescription = JsonUtility.FromJson <RoleplayDescription>(roleplayJson);

        // serialized the complete evaluation.
        bool isUserA = id == roleplayDescription.UserA.Id;
        CompleteCaseEvaluation completeCaseEvaluation = new CompleteCaseEvaluation()
        {
            RoleplayDescription = roleplayDescription,
            EvaluationUserA     = isUserA ? caseEvaluation : other,
            EvaluationUserB     = isUserA ? other : caseEvaluation,
            TimeStamp           = DateTime.Now.ToString()
        };

        string completeEvalJson = JsonUtility.ToJson(completeCaseEvaluation);

        SaveLoad.Save(completeEvalJson, string.Format(CompleteEvaluationName.Value, id));

        SendMessageTo(roleplayDescription.UserA, completeEvalJson);
        SendMessageTo(roleplayDescription.UserB, completeEvalJson);

        AddIdToUserLog(roleplayDescription.UserA.Id, id);
        AddIdToUserLog(roleplayDescription.UserB.Id, id);

        SocialManager.AddToRecentLog(roleplayDescription.UserA, roleplayDescription.UserB);
        SocialManager.AddToRecentLog(roleplayDescription.UserB, roleplayDescription.UserA);

        SaveLoad.Remove(fileName);
    }
예제 #5
0
 private void SetNames(CompleteCaseEvaluation caseEvaluation)
 {
     UserANameField.text = caseEvaluation.RoleplayDescription.UserA.Name;
     UserBNameField.text = caseEvaluation.RoleplayDescription.UserB.Name;
     ModuleField.text    = MultilanguageSupport.GetKeyWord("module_" + caseEvaluation.RoleplayDescription.Case.Module.ToString());
 }