private Quest.Quest LoadQuestItem(QuestUIComponets questUIComponent, SaveData.QuestInfo savedQuestInfo = null, int lvl = 1) { if (questUIComponent.quest == null) { if (savedQuestInfo != null) { Quest.Quest quest = new Quest.Quest(savedQuestInfo.id, savedQuestInfo.level).SetupRandomQuest(); quest.mainCondition.UpdateProgress(savedQuestInfo.progress); questUIComponent.quest = quest; questUIComponent.ShowQuestData(questUIComponent.quest); } else { questUIComponent.quest = new Quest.Quest(0, lvl).SetupRandomQuest(); questUIComponent.ShowQuestData(questUIComponent.quest); } } else { Debug.Log($"{GetType().FullName} :: Quest in component is not null"); questUIComponent.ShowQuestData(questUIComponent.quest); } //Setup claim btn questUIComponent.claimBTN.onClick.AddListener(() => OnClaimClicked(questUIComponent, questUIComponent.quest)); return(questUIComponent.quest); }
public void UpdateQuestProgress(QuestUIComponets p_questUIC) { if (p_questUIC.quest.mainCondition.progress >= p_questUIC.quest.mainCondition.progessGoal) { p_questUIC.ShowQuestData(p_questUIC.quest); return; } p_questUIC.progressText.text = $"{Math.Round(p_questUIC.quest.mainCondition.progress, 1)} / {p_questUIC.quest.mainCondition.progessGoal}"; }
private void OnClaimClicked(QuestUIComponets questUIComponent, Quest.Quest quest) { if (quest.completed) { questUIComponent.claimBTN.onClick.RemoveAllListeners(); questUIComponent.quest = null; if (saveData.quest1.id == quest.id) { saveData.quest1 = null; saveData.quest1 = LoadQuestItem(questUIComponent, null, 1).GetQuestInfo(); } if (saveData.quest2.id == quest.id) { saveData.quest2 = null; saveData.quest2 = LoadQuestItem(questUIComponent, null, 2).GetQuestInfo(); } if (saveData.quest3.id == quest.id) { saveData.quest3 = null; saveData.quest3 = LoadQuestItem(questUIComponent, null, 3).GetQuestInfo(); } quest.mainCondition.GiveAllRewards(); UpdateAllQuestDisplays(); SaveJson(); } else { Debug.LogError($"{GetType().FullName} :: Quest is not completed and is trying to be redeemed"); } }
public override void Init(MenuData menuData, Menu menu) { base.Init(menuData, menu); //Setup commands for reloading json =) IngameDebugConsole.DebugLogConsole.AddCommand("reloadblood", "Reloads the blood save json", delegate { InitSaveJSON(); SetupAllQuests(); UpdateAllStats(); }); Instance = this; //Get quest ui components questUI1 = menu.GetCustomReference("Quest1").GetComponent <QuestUIComponets>(); questUI2 = menu.GetCustomReference("Quest2").GetComponent <QuestUIComponets>(); questUI3 = menu.GetCustomReference("Quest3").GetComponent <QuestUIComponets>(); darkChoicePage = menu.GetCustomReference("DarkChoice").gameObject; lightChoicePage = menu.GetCustomReference("LightChoice").gameObject; page1Picked = menu.GetCustomReference("Page1Picked").gameObject; page2Picked = menu.GetCustomReference("Page2Picked").gameObject; lightSkillTree = menu.GetCustomReference("LightSkillTree").gameObject; darkSkillTree = menu.GetCustomReference("DarkSkillTree").gameObject; LP = menu.GetCustomReference("LP").GetComponent <Text>(); DP = menu.GetCustomReference("DP").GetComponent <Text>(); InitSaveJSON(); QuestHandler.globalRandom = new System.Random(UnityEngine.Random.Range(1, 10000000)); menu.GetCustomReference("SkillTreeBTN").GetComponent <Button>().onClick.AddListener(delegate { LoadSkillTree(); AbilityInfo.gameObject.SetActive(false); }); menu.GetCustomReference("OtherSkill").GetComponent <Button>().onClick.AddListener(delegate { LoadSkillTree(); AbilityInfo.gameObject.SetActive(false); }); menu.GetCustomReference("QuestBTN").GetComponent <Button>().onClick.AddListener(delegate { LoadQuestPage(); AbilityInfo.gameObject.SetActive(false); }); SetupAllQuests(); menu.GetCustomReference("DebugNewQuest").GetComponent <Button>().onClick.AddListener(delegate { saveData.quest1 = null; saveData.quest2 = null; saveData.quest3 = null; questUI1.quest = null; questUI2.quest = null; questUI3.quest = null; SetupAllQuests(); }); menu.GetCustomReference("DebugNewQuest").gameObject.SetActive(false); UpdateAllStats(); MainCondition.OnAnyMainConditionProgressedEvent += OnAnyMainConditionCompleted; EventManager.onCreatureKill += AddDrainComponentOnKill; }