public void UpdateQuest(GameObject MissionManager) { this.MissionManager = MissionManager; coObjective = MissionManager.GetComponent <CollectionObjective>(); loObjective = MissionManager.GetComponent <LocationObjective>(); ioObjective = MissionManager.GetComponent <InteractionObjective>(); }
// Update is called once per frame void Update() { if (hasFound == false) { RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, interactRange); if (hit.collider != null) { hasFound = true; Debug.Log(hit.collider.name); PlayerController playerCont = Player.GetComponent <PlayerController>(); InteractionObjective playerInt = Player.GetComponent <InteractionObjective>(); playerCont.isMoveEnabled = false; playerInt.interactCircumstance(gameObject.name); } } }
public void GetData(ScriptableQuest quest, GameObject MissionManager) { this.quest = quest; this.MissionManager = MissionManager; startEvents = quest.startEvents; endEvents = quest.endEvents; titel = quest.missionName; id = quest.name; isCompleted = false; coObjective = MissionManager.GetComponent <CollectionObjective>(); loObjective = MissionManager.GetComponent <LocationObjective>(); ioObjective = MissionManager.GetComponent <InteractionObjective>(); waveEvent = MissionManager.GetComponent <WaveEvent>(); if (startEvents != null) { StartEvent(startEvents); } NextObjective(); }
/// <summary> /// Return the encoded string of all current data model values to pass to the client. This method /// reinitializes the ObjectiveIndexer and InteractionIndexer values. /// </summary> public override DataModelValues GetDataModelValues(AddDataModelValue addDataModelValue) { StringBuilder dataModelValuesBuffer = new StringBuilder(4096); // data model values string n; LearningDataModel dm = this.DataModel; Learner learner = dm.Learner; addDataModelValue(dataModelValuesBuffer, "cmi.core.student_id", learner.Id); addDataModelValue(dataModelValuesBuffer, "cmi.core.student_name", learner.Name); // cmi.core values addDataModelValue(dataModelValuesBuffer, "cmi.core.lesson_location", dm.Location); addDataModelValue(dataModelValuesBuffer, "cmi.core.credit", GetRteCredit(dm.Credit, this.View)); addDataModelValue(dataModelValuesBuffer, "cmi.core.lesson_status", GetRteLessonStatus(dm.LessonStatus)); addDataModelValue(dataModelValuesBuffer, "cmi.core.entry", GetRteEntry(dm.Entry)); AddDataModelScore(addDataModelValue, dataModelValuesBuffer, "cmi.core.score", dm.Score); addDataModelValue(dataModelValuesBuffer, "cmi.core.total_time", GetRteTimeSpan(dm.TotalTime)); addDataModelValue(dataModelValuesBuffer, "cmi.core.lesson_mode", GetRteMode(this.View)); addDataModelValue(dataModelValuesBuffer, "cmi.suspend_data", dm.SuspendData); addDataModelValue(dataModelValuesBuffer, "cmi.launch_data", dm.LaunchData); addDataModelValue(dataModelValuesBuffer, "cmi.comments", GetRteComment(dm.CommentsFromLearner)); addDataModelValue(dataModelValuesBuffer, "cmi.comments_from_lms", GetRteCommentFromLms(dm.CommentsFromLms)); int objCountOrig = dm.Objectives.Count; // num objectives in data model int objCountToClient = 0; // num objectives sent to client for (int i = 0; i < objCountOrig; i++) { Objective objective = dm.Objectives[i]; n = XmlConvert.ToString(objCountToClient); addDataModelValue( dataModelValuesBuffer, ResHelper.FormatInvariant("cmi.objectives.{0}.id", n), objective.Id); AddDataModelScore( addDataModelValue, dataModelValuesBuffer, ResHelper.FormatInvariant("cmi.objectives.{0}.score", n), objective.Score); if (objective.Status != null) { addDataModelValue( dataModelValuesBuffer, ResHelper.FormatInvariant("cmi.objectives.{0}.status", n), GetRteLessonStatus(objective.Status.Value)); } objCountToClient++; } addDataModelValue(dataModelValuesBuffer, "cmi.objectives._count", RteIntValue(objCountToClient)); // cmi.student_data addDataModelValue(dataModelValuesBuffer, "cmi.student_data.mastery_score", GetRteFloat(dm.MasteryScore)); addDataModelValue( dataModelValuesBuffer, "cmi.student_data.max_time_allowed", GetRteTimeSpan(dm.MaxTimeAllowed)); addDataModelValue( dataModelValuesBuffer, "cmi.student_data.time_limit_action", GetTimeLimitAction(dm.TimeLimitAction)); // cmi.student_preference addDataModelValue(dataModelValuesBuffer, "cmi.student_preference.audio", GetRteFloat(learner.AudioLevel)); addDataModelValue(dataModelValuesBuffer, "cmi.student_preference.language", learner.Language); addDataModelValue(dataModelValuesBuffer, "cmi.student_preference.speed", GetRteFloat(learner.DeliverySpeed)); addDataModelValue( dataModelValuesBuffer, "cmi.student_preference.text", GetRteAudioCaptioning(learner.AudioCaptioning)); // Interactions int numInterations = dm.Interactions.Count; addDataModelValue( dataModelValuesBuffer, "cmi.interactions._count", numInterations.ToString(NumberFormatInfo.InvariantInfo)); int count = 0; foreach (Interaction interaction in dm.Interactions) { n = XmlConvert.ToString(count); // Not intuitive: interaction.n.id, time, weighting, student_response and type are write only in Scorm 1.2, so don't add them here. int numObjectives = interaction.Objectives.Count; for (int j = 0; j < numObjectives; j++) { InteractionObjective obj = interaction.Objectives[j]; addDataModelValue( dataModelValuesBuffer, ResHelper.FormatInvariant("cmi.interactions.{0}.objectives.{1}.id", n, RteIntValue(j)), obj.Id); } addDataModelValue( dataModelValuesBuffer, ResHelper.FormatInvariant("cmi.interactions.{0}.objectives._count", n), RteIntValue(numObjectives)); int numResponses = interaction.CorrectResponses.Count; addDataModelValue( dataModelValuesBuffer, ResHelper.FormatInvariant("cmi.interactions.{0}.correct_responses._count", n), RteIntValue(numResponses)); for (int resI = 0; resI < numResponses; resI++) { CorrectResponse response = interaction.CorrectResponses[resI]; if (response.Pattern != null) { addDataModelValue( dataModelValuesBuffer, ResHelper.FormatInvariant("cmi.interactions.{0}.correct_responses.{1}.pattern", n, RteIntValue(resI)), response.Pattern); } } count++; } // end interactions return(new DataModelValues(new PlainTextString(dataModelValuesBuffer.ToString()))); }