public void OnRoleplayLoaded(string serializedRoleplayDescription)
    {
        currentRoleplay = JsonUtility.FromJson <RoleplayDescription>(serializedRoleplayDescription);

        isClient = currentRoleplay.UserA.Id == Manager.ClientId;

        Participant other;
        Participant self;

        PrepareBriefingScreens(currentRoleplay);

        if (isClient)
        {
            other = currentRoleplay.UserB;
            self  = currentRoleplay.UserA;
            ScreenController.SwitchScreenToClientBriefing();
        }
        else
        {
            other = currentRoleplay.UserA;
            self  = currentRoleplay.UserB;
            ScreenController.SwitchScreenToProfessionalBriefing();
        }

        RoleplayCall.Initialize(isClient, other, self);
    }
Пример #2
0
    private void OnMatchFound(Participant participantA, Participant participantB, RoleplayModule module)
    {
        RoleplayDescription roleplayDescription = RoleplayDescriptionGenerator.Generate(participantA, participantB, module);
        string json = JsonUtility.ToJson(roleplayDescription);

        string name = string.Format(RoleplayFileName.Value, roleplayDescription.Id);

        SaveLoad.Save(json, name);

        SendRoleplayDescription(json, participantA);
        SendRoleplayDescription(json, participantB);
    }
    private void PrepareBriefingScreens(RoleplayDescription roleplay)
    {
        ModuleCaseProfile profile = ProfileContainer.GetCaseProfileOfModule(roleplay.Case.Module);

        UserBCaseField.DestroyAllChildren();
        UserACaseField.DestroyAllChildren();

        ClientName.text       = roleplay.UserB.Name;
        ProfessionalName.text = roleplay.UserA.Name;

        for (int i = 0; i < roleplay.Case.Characteristics.Length; i++)
        {
            int[] characteristics = roleplay.Case.Characteristics[i];

            CaseElement element = profile.Elements[i];

            VisualCaseElement visualCaseUserA = null;
            VisualCaseElement visualCaseUserB = null;

            if (element.VisibleUserA)
            {
                visualCaseUserA = Instantiate(ElementObject, UserACaseField);
                visualCaseUserA.SetName(element.Name);
            }

            if (element.VisibleUserB)
            {
                visualCaseUserB = Instantiate(ElementObject, UserBCaseField);
                visualCaseUserB.SetName(element.Name);
            }

            for (int j = 0; j < characteristics.Length; j++)
            {
                string option = element.OptionPool[j];

                if (element.VisibleUserA)
                {
                    visualCaseUserA.AddCharacteristic(option);
                }

                if (element.VisibleUserB)
                {
                    visualCaseUserB.AddCharacteristic(option);
                }
            }
        }
    }
    public RoleplayDescription Generate(Participant participantA, Participant participantB, RoleplayModule module)
    {
        CaseDescription caseDescription = GenerateCase(module);

        RoleplayDescription roleplayDescription;

        string id = GetCaseId();

        int rnd = random.Next(0, 2);

        if (rnd % 2 == 0)
        {
            roleplayDescription = new RoleplayDescription(id, participantA, participantB, caseDescription);
        }
        else
        {
            roleplayDescription = new RoleplayDescription(id, participantB, participantA, caseDescription);
        }

        return(roleplayDescription);
    }
    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);
    }