private void UpdateQuests() { if (_activeQuests == null) _activeQuests = new List<QuestContainer>(); foreach (Quest q in QuestManager.Instance.ActiveQuests) { QuestContainer container = new QuestContainer(); container.ActiveTaskStatus = new List<bool>(); container.ActiveTaskTargetsCounter = new List<int>(); //Если квест по текущему ключу еще не сохранен, тогда создается квест-контейнер, содержащий данные о каждом задании и добавляется в общий лист квест-контейнеров if (!_activeQuests.Any(c => c.ActiveQuestKey == q.Key)) { container.ActiveQuestKey = q.Key; foreach (Task task in q.Tasks) { container.ActiveTaskStatus.Add(task.Status); container.ActiveTaskTargetsCounter.Add(task.TaskTargetsAmountCounter); } _activeQuests.Add(container); } //Иначе обновляем данные в квест-контейнерах, которые будут сохранены else { foreach (Task task in q.Tasks) { _activeQuests[QuestManager.Instance.ActiveQuests.IndexOf(q)].ActiveTaskStatus[q.Tasks.IndexOf(task)] = task.Status; _activeQuests[QuestManager.Instance.ActiveQuests.IndexOf(q)].ActiveTaskTargetsCounter[q.Tasks.IndexOf(task)] = task.TaskTargetsAmountCounter; } } } }
public void respawn() { if (onPlayerRespawnHandler != null) { onPlayerRespawnHandler(); } GameObject player = Instantiate(playerPrefab, this.transform.position, Quaternion.identity); GameObject.Find("Main Camera").GetComponent <follow>().target = player.transform; PlayerStatus ps = player.GetComponent <PlayerStatus>(); PlayerStatus ops = currentPlayer.GetComponent <PlayerStatus>(); ps.hpSlider = ops.hpSlider; ps.spSlider = ops.spSlider; ps.expSlider = ops.expSlider; ps.hpText = ops.hpText; ps.spText = ops.spText; ps.expText = ops.expText; ps.levelText = ops.levelText; ps.uiRespawn = ops.uiRespawn; QuestContainer oqc = currentPlayer.GetComponent <QuestContainer>(); PlayerStatus.copyStatus(ps, ops); ps.recoverStatus(); GameObject.Find("Camera_Avatar").GetComponent <follow>().target = player.transform.GetChild(0).transform; Destroy(currentPlayer); currentPlayer = player; player.GetComponent <QuestContainer>().copyQuestContainer(oqc); // copy quest container from old character }
public void enterWorld() { // Set target for main camera to follow GameObject mainCamera = GameObject.FindGameObjectWithTag("MainCamera"); mainCamera.transform.position = playerSystem.transform.GetChild(0).transform.position; mainCamera.GetComponent <follow>().target = playerSystem.transform.GetChild(0); mainCamera.GetComponent <follow>().enabled = true; // Set Gameplay UI to show up [child 2 of UI gameobject] loading.transform.parent.GetChild(1).gameObject.SetActive(true); //////////// Quest Part ////////////// // Quest Success QuestContainer qcont = playerSystem.transform.GetChild(0).GetComponent <QuestContainer>(); int[] questSuccessId = selectCharacter.GetQuestSuccess(); foreach (int questID in questSuccessId) { Quest quest = QuestManager.GetQuestByID(questID); qcont.AddSuccessQuest(quest); } // Quest Process Dictionary <int, int> questProcess = selectCharacter.GetQuestProcess(); foreach (KeyValuePair <int, int> data in questProcess) { Quest quest = QuestManager.GetQuestByID(data.Key); qcont.AddProcessQuest(quest, data.Value); } //////////// Quest Part ////////////// // Enter world will auto fade loading screen off when finished load GameObject.Find("EnterGame").GetComponent <EnterGame>().EnterWorld(selectCharacter.GetCurrentMap()); }
public void SetQuest(Quest quest) { QuestContainer container = new QuestContainer(); container.ContainedQuest = quest; loadedQuest = quest; }
/* Inicialización de misiones activas */ private void SetActiveQuest() { QuestContainer qc = QuestContainer.Load(path); activeQuests[0] = qc.quests[DataManager.GetActiveMissionsIndex(0)]; activeQuests[1] = qc.quests[DataManager.GetActiveMissionsIndex(1)]; activeQuests[2] = qc.quests[DataManager.GetActiveMissionsIndex(2)]; }
public void toggleActive(bool toggle, QuestContainer container) { this.image.enabled = toggle; this.closeButton.SetActive(toggle); container.isClicked = toggle; foreach (Transform childTransform in this.transform.getAllChildren()) { childTransform.gameObject.SetActive(toggle); } }
public void GetProcessList() { state = 0; ClearQuestList(); QuestContainer qcon = QuestContainer.Instance; foreach (Quest q in qcon.processList) { AddQuestList(q, false); } }
public void GetDoneList() { state = 1; ClearQuestList(); QuestContainer qcon = QuestContainer.Instance; foreach (Quest q in qcon.successList) { AddQuestList(q, true); } }
void setUP() { //load Quests database questContainer = loadQuest(); Debug.Log(questContainer.currentQuest); //load dialogue database dialogueCollection = loadDialogue(); Debug.Log(dialogueCollection.dialogueArray[0]); //call the spawner to create the npcs for the begining of the game NPCsCaching(questContainer.questCollection[0].stateArray[0].LinkedActor); }
public void onQuestContainerClick() { int clickAmount = 0; QuestContainer clicked = null; foreach (QuestContainer qContainer in questContainers) { if (qContainer.isClicked) { qContainer.isClicked = false; return; } } }
/* Función interfaz de carga de fichero de misiones */ public static QuestContainer Load(string path) { TextAsset _xml = Resources.Load <TextAsset>(path); XmlSerializer serializer = new XmlSerializer(typeof(QuestContainer)); StringReader reader = new StringReader(_xml.text); QuestContainer quests = serializer.Deserialize(reader) as QuestContainer; reader.Close(); return(quests); }
public Sprite getSprite(int questId, QuestContainer container) { foreach (NPCMain main in npcMain) { for (int i = 0; i < main.questIds.Length; i++) { if (container.getQuest().getId().Equals(main.questIds[i])) { return(main.getSprite()); } } } return(null); }
public void copyQuestContainer(QuestContainer qc) { Debug.Log("Start Copy Quest"); Debug.Log("From " + qc.gameObject.name + " to " + this.gameObject.name); Debug.Log("Process list Count : " + qc.processList.Count); qc.processList.ForEach(q => this.acceptQuest(q)); qc.successList.ForEach(q => this.successList.Add(q)); /*foreach(Quest q in qc.processList.ToArray()) { * Debug.Log("Move " + q.questTitle + " to new Quest Container Process"); * this.processList.Add(q); * } * foreach(Quest q in qc.successList.ToArray()) { * Debug.Log("Move " + q.questTitle + " to new Quest Container Success"); * this.successList.Add(q); * }*/ }
public void addNewQuestPanel(Quest quest) { GameObject tempQuestPanel = Instantiate(this.questContainer); tempQuestPanel.transform.SetParent(this.questWrapper.transform); tempQuestPanel.GetComponentInChildren <Text>().text = quest.getName(); RectTransform rect = tempQuestPanel.GetComponent <RectTransform>(); rect.anchoredPosition = this.questContainer.GetComponent <RectTransform>().anchoredPosition; rect.localPosition = new Vector2(0, 170 + (rect.sizeDelta.y * -questPanels.Count)); rect.sizeDelta = new Vector2(0, 50); QuestContainer container = tempQuestPanel.GetComponent <QuestContainer>(); container.init(quest); questPanelContainers.Add(container); questPanels.Add(quest.getId(), tempQuestPanel); Debug.Log("new quest panel added"); }
private void Start() { if (!Instance) { Instance = this as QuestContainer; } // Code สำหรับทดสอบระบบ Quest Container /*Quest q = new Quest(1, "Test " + questSuccessId, "Detail ", null, null, 100); * q.isQuestSuccess = true; * processList.Add(q); * * successList.Add(new Quest(2, "Test " + questSuccessId, "Detail ", null, null, 100)); */ /*foreach (Quest qs in successList) { * Debug.Log(qs.questID); * }*/ //Debug.Log("Is q1 done ? : " + checkQuestStatusDone(q)); //Debug.Log("Is quest process have quest from 201 : " + checkQuestProcessFromNPC(201)); }
private void LoadQuests() { questContainer = QuestContainer.LoadFromXML("XML/Quests"); }
// public class QuestContainer{ // public Quest[] CompletedQuest; // public Quest[] LockedQuest; // public Quest[] UnlockedQuest; // } protected IEnumerator SyncGameStateToServer(){ /* WWW www = WWWX.Get(WebRequests.urlGetCurrentPlayer, WebRequests.authenticatedParameters); while (!www.isDone){ yield return www; } Dictionary<string, Quest> locked, unlocked, completed; QuestPackage qp = JSONDecoder.DecodeValue<QuestPackage>(www.text); QuestContainer QuestDic = qp.player.quests; //load quests from server (buffer area) #region unlocked = new Dictionary<string,Quest>(); if(QuestDic.UnlockedQuest != null && QuestDic.UnlockedQuest.Length != 0){ //Messenger<Dictionary<string, Quest>>.Broadcast("UnlockedQuestFromServer", QuestDic["UnlockedQuest"]); foreach(Quest q in QuestDic.UnlockedQuest){ unlocked.Add(q.Name,q); } } locked = new Dictionary<string,Quest>(); completed = new Dictionary<string, Quest>(); if(QuestDic.CompletedQuest != null && QuestDic.CompletedQuest.Length != 0){ //Messenger<Dictionary<string,Quest>>.Broadcast("CompletedQuestFromServer", QuestDic["CompletedQuest"]); foreach(Quest q in QuestDic.CompletedQuest){ completed.Add (q.Name, q); } } #endregion */ QuestContainer QuestDic = new QuestContainer(); /* //compare client's quests and add to server list #region Quest[] Questlist = QuestManager.Instance.GetUnlockedQuests(); Quest[] CompareList = QuestManager.Instance.GetCompletedQuests(); foreach(Quest q in CompareList){ if(unlocked.ContainsKey(q.Name)){ unlocked.Remove(q.Name); } } foreach(Quest q in Questlist){ if(!unlocked.ContainsKey(q.Name)){ unlocked.Add(q.Name,q); } } List<Quest> questList = new List<Quest>(); foreach(Quest q in unlocked.Values){ questList.Add (q); } QuestDic.UnlockedQuest = questList.ToArray(); questList.Clear (); Questlist = QuestManager.Instance.GetLockedQuests(); foreach(Quest q in Questlist){ locked.Add(q.Name, q); } foreach(Quest q in locked.Values){ questList.Add (q); } QuestDic.LockedQuest = questList.ToArray(); questList.Clear (); Questlist = QuestManager.Instance.GetCompletedQuests(); foreach(Quest q in Questlist){ if(!completed.ContainsKey(q.Name)){ completed.Add(q.Name, q); } } foreach(Quest q in completed.Values){ questList.Add (q); } QuestDic.CompletedQuest = questList.ToArray(); questList.Clear(); #endregion */ #region Quest[] Questlist = QuestManager.Instance.GetUnlockedQuests(); List<Quest> questList = new List<Quest>(); foreach(Quest q in Questlist){ questList.Add (q); } QuestDic.UnlockedQuest = questList.ToArray(); questList.Clear (); Questlist = QuestManager.Instance.GetLockedQuests(); foreach(Quest q in Questlist){ questList.Add(q); } QuestDic.LockedQuest = questList.ToArray(); questList.Clear (); Questlist = QuestManager.Instance.GetCompletedQuests(); foreach(Quest q in Questlist){ questList.Add (q); } QuestDic.CompletedQuest = questList.ToArray(); questList.Clear(); #endregion string jsonUrl = JsonMapper.ToJson(QuestDic); string goServerUrl= "{\"player\":{\"quests\":" + jsonUrl.ToString() + "}}"; WWW www = WWWX.Put (WebRequests.urlGetCurrentPlayer, goServerUrl, WebRequests.authenticatedGodModeParameters); while(!www.isDone){ yield return www; } yield return new WaitForSeconds(10); StartCoroutine(UpdateClientOnQuest()); yield break; }
// Use this for initialization void Start() { quests = QuestContainer.Load(filePath); }
private void loadQuestTrees() { qt = QuestContainer.Load(Path.Combine(Application.streamingAssetsPath, "quest.xml")); reloadQuestTrees(); }