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); }
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); }