/// <summary> /// Sorts the data. Easier for retrieval later /// Hash -- Key: missionID, Value: (Hash -- Key: category , Value: List<ImmutableDataWellapadTask>) /// </summary> /// <param name="data">Data.</param> private void SortData(ImmutableDataWellapadTask data) { if (missionTaskHash == null) { missionTaskHash = new Hashtable(); } string missionID = data.GetTaskType(); if (!missionTaskHash.ContainsKey(missionID)) { missionTaskHash[missionID] = new Hashtable(); } // this is the hashtable of tasks in a mission Hashtable taskHash = (Hashtable)missionTaskHash[missionID]; // now drill deeper -- we want to sort by categories string category = data.GetCategory(); if (!taskHash.ContainsKey(category)) { taskHash[category] = new List <ImmutableDataWellapadTask>(); } List <ImmutableDataWellapadTask> tasks = (List <ImmutableDataWellapadTask>)taskHash[category]; tasks.Add(data); }
private MiniPetRetentionPet retentionScript; // Reference to minipet logic public void InitializeContent(string taskID, MiniPetRetentionPet retentionScript) { this.retentionScript = retentionScript; rewardButton.SetActive(false); if (DataManager.Instance.GameData.Wellapad.CurrentTasks.ContainsKey("DailyInhaler")) { List <MutableDataWellapadTask> listTasks = WellapadMissionController.Instance.GetTaskGroup("TutorialPart1"); task = listTasks[0]; ImmutableDataWellapadTask missionTask = DataLoaderWellapadTasks.GetTask(task.TaskID); SetCheckboxSprite(true, slash1); task = listTasks[1]; SetCheckboxSprite(true, slash2); ImmutableDataWellapadTask missionTask2 = DataLoaderWellapadTasks.GetTask(task.TaskID); mission1Localize.text = Localization.Localize("Task_" + missionTask.GetTaskID()); mission2Localize.text = Localization.Localize("Task_" + missionTask2.GetTaskID()); mission3Localize.gameObject.SetActive(false); mission4Localize.gameObject.SetActive(false); if (WellapadMissionController.Instance.GetTaskStatus(listTasks[0]) == WellapadTaskCompletionStates.Completed && WellapadMissionController.Instance.GetTaskStatus(listTasks[1]) == WellapadTaskCompletionStates.Completed) { rewardButton.SetActive(true); GameObject peb = MiniPetManager.Instance.MiniPetTable["MiniPet0"]; rewardButton.GetComponent <Button>().onClick.AddListener(() => peb.GetComponent <MiniPetRetentionPet>().OnTurnInButton()); } } else { // Debug.Log(DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].RewardStatus); if (DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].isReward == RewardStatuses.Unclaimed || DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID].isReward == RewardStatuses.Unearned) { //Debug.Log(taskID); List <MutableDataWellapadTask> listTasks = WellapadMissionController.Instance.GetTaskGroup("Critical"); task = listTasks[0]; SetCheckboxSprite(true, slash1); ImmutableDataWellapadTask missionTask = DataLoaderWellapadTasks.GetTask(task.TaskID); rewardButton.GetComponent <LgWorldButtonMessage>().target = MiniPetManager.Instance.MiniPetTable["MiniPet0"]; task = listTasks[1]; SetCheckboxSprite(true, slash2); ImmutableDataWellapadTask missionTask2 = DataLoaderWellapadTasks.GetTask(task.TaskID); task = listTasks[2]; SetCheckboxSprite(true, slash3); ImmutableDataWellapadTask missionTask3 = DataLoaderWellapadTasks.GetTask(task.TaskID); if (WellapadMissionController.Instance.GetTaskStatus(listTasks[0]) == WellapadTaskCompletionStates.Completed && WellapadMissionController.Instance.GetTaskStatus(listTasks[1]) == WellapadTaskCompletionStates.Completed && WellapadMissionController.Instance.GetTaskStatus(listTasks[2]) == WellapadTaskCompletionStates.Completed) { rewardButton.SetActive(true); } mission1Localize.text = Localization.Localize("Task_" + missionTask.GetTaskID()); mission2Localize.text = Localization.Localize("Task_" + missionTask2.GetTaskID()); mission3Localize.text = Localization.Localize("Task_" + missionTask3.GetTaskID()); mission4Localize.gameObject.SetActive(false); } } }
public void AddTask(string taskID) { ImmutableDataWellapadTask task = DataLoaderWellapadTasks.GetTask(taskID); DataManager.Instance.GameData.Wellapad.CurrentTasks[taskID] = new MutableDataWellapadTask(task); // reset the time -- I probably want to change this to a per mission basis at some point if we expand the system? DataManager.Instance.GameData.Wellapad.DateMissionsCreated = LgDateTime.GetTimeNow(); // send event if (OnMissionsRefreshed != null) { OnMissionsRefreshed(this, EventArgs.Empty); } }
public MutableDataWellapadTask(ImmutableDataWellapadTask data, WellapadTaskCompletionStates completionStatus = WellapadTaskCompletionStates.Uncompleted) { TaskID = data.GetTaskID(); if (data.GetCategory() == "Critical") { Category = MiniGameCategory.Critical; } else { Category = MiniGameCategory.Regular; } Amount = data.GetRandomCompleteCondition(); Completed = completionStatus; }
protected override void XMLNodeHandler(string id, IXMLNode xmlNode, Hashtable hashData, string errorMessage) { ImmutableDataWellapadTask data = new ImmutableDataWellapadTask(id, xmlNode, errorMessage); if (hashData.ContainsKey(id)) { Debug.LogError("Duplicate task id: " + id); } else { hashData[id] = data; } SortData(data); }
//--------------------------------------------------- // SetDesc() // Sets the description for this task. //--------------------------------------------------- private void SetDesc() { // set the label showing what the task entails ImmutableDataWellapadTask data = DataLoaderWellapadTasks.GetTask(task.TaskID); string strDesc = data.GetText(); // if the task has an amount, we want to integrate that into the string if (task.Amount > 0) { strDesc = string.Format(strDesc, task.Amount); } label.text = strDesc; }
private MiniPetGameMaster gameMasterScript; // Reference to minipet logic public void InitializeContent(string taskID, MinigameTypes type, MiniPetGameMaster gameMasterScript) { this.gameMasterScript = gameMasterScript; task = WellapadMissionController.Instance.GetTask(taskID); ImmutableDataWellapadTask missionTask = DataLoaderWellapadTasks.GetTask(task.TaskID); string desc = missionTask.GetText(); if (task.Amount > 0) { desc = String.Format(desc, task.Amount); } label.text = desc; spriteIcon.sprite = SpriteCacheManager.GetSprite("mapIcons" + type.ToString()); rewardButton.SetActive(false); SetCheckboxSprite(true); }