private void CheckPostButtonStatus() { bool isPostable = true; if ((InventoryManager.Gold < CurrentQuest.GetTotalGoldCount() && InventoryManager.Gold >= 0) || (QuestDetailsWindow.Instance.SelectedGoldRewards[m_HeroNumber] == 0 && m_SelectedItemReward == 0)) { isPostable = false; } QuestDetailsWindow.Instance.PostButtonStatuses[m_HeroNumber] = isPostable; if (isPostable) { UIHighlighter.Instance.GetGroup(QuestDetailsWindow.HIGHLIGHT_GROUP_ID).RemoveObjects(highlightsRewards); } else { UIHighlighter.Instance.GetGroup(QuestDetailsWindow.HIGHLIGHT_GROUP_ID).AddObjects(highlightsRewards, UIHighlighter.Instance.redHighlightColor, highlightsRewards[0].color); } QuestDetailsWindow.Instance.CheckPostButtonStatus(); }
void Start() { closeButton.onClick.AddListener(() => { CloseWindow(); }); skipButton.onClick.AddListener(() => { CloseWindow(); }); cancelButton.onClick.AddListener(() => { CurrentQuest.RefundQuestRewards(true, true); QuestManager.PostedQuests.Remove(CurrentQuest); QuestManager.Requests.Add(CurrentQuest); QuestsWindow.Instance.Reload(); CloseWindow(); }); acceptButton.onClick.AddListener(() => { foreach (HeroInstance hero in SelectedHeroes) { if (hero == null) { continue; } HeroManager.SetHeroToState(hero, HeroStates.ON_QUEST); } QuestManager.PostedQuests.Remove(CurrentQuest); QuestManager.ActiveQuests.Add(CurrentQuest, SelectedHeroes.Clone() as HeroInstance[]); QuestsWindow.Instance.Reload(); CloseWindow(); }); completeButton.onClick.AddListener(() => { foreach (HeroInstance hero in QuestManager.ActiveQuests[CurrentQuest]) { if (hero == null) { continue; } HeroManager.SetHeroToState(hero, HeroStates.IDLE); } QuestManager.ActiveQuests.Remove(CurrentQuest); QuestsWindow.Instance.Reload(); CloseWindow(); }); postButton.onClick.AddListener(() => { QuestManager.Requests.Remove(CurrentQuest); QuestManager.PostedQuests.Add(CurrentQuest); QuestsWindow.Instance.Reload(); for (int i = 0; i < SelectedGoldRewards.Length; i++) { CurrentQuest.GoldRewards[i] = new QuestRewardGold(); CurrentQuest.GoldRewards[i].GoldCount = SelectedGoldRewards[i]; } for (int i = 0; i < SelectedItemRewards.Length; i++) { GameItem item = SelectedItemRewards[i]; if (item == null) { continue; } CurrentQuest.ItemRewards[i] = new QuestRewardItem(item); InventoryManager.MoveItemToReserved(item); } InventoryManager.Gold -= CurrentQuest.GetTotalGoldCount(); CloseWindow(); }); Instance = this; gameObject.SetActive(false); }