private void CatchUpdate(OnUpdateNPCInfo e) { if (pnj != null) { SetVisibility(Vector3.Distance(PlayerManager.Instance.player.transform.position, pnj.Position), Player.NPC_HELP_DIST); UpdateInfo(); for (int i = 0; i < stars.Count; i++) { if (i >= pnj.neededItems.Count) { stars[i].gameObject.SetActive(false); } else { EItemType lEItem = pnj.neededItems[i]; Item lItem = ResourcesManager.Instance.ItemModels.Find(it => it.itemType == lEItem); if (pnj.HaveItem(lEItem) && pnj.HaveBudget(lEItem)) { stars[i].texture = starUnlockSprite.texture; } else { stars[i].texture = starLockSprite.texture; } stars[i].gameObject.SetActive(true); } } if (pnj.neededItems.Count > 1) { for (int i = 0; i < arrows.Count; i++) { arrows[i].SetActive(true); } } else { for (int i = 0; i < arrows.Count; i++) { arrows[i].SetActive(false); } } } }
protected void CheckStep(Quest selectedQuest) { int pnjCount = InteractablePNJ.PNJs.Count; for (int i = 0; i < selectedQuest.activitiesName.Length; i++) { for (int j = 0; j < pnjCount; j++) { InteractablePNJ pnj = InteractablePNJ.PNJs[j]; if (pnj.budgetComponent == null) { continue; } if (pnj.budgetComponent.type == selectedQuest.activitiesName[i]) { InteractablePNJ_TownHall major = pnj as InteractablePNJ_TownHall; InteractablePNJ_CoalPower coalPNJ = pnj as InteractablePNJ_CoalPower; if (major != null) { if (major.HaveItem(selectedQuest.itemType)) { ValidQuest(selectedQuest); } } else if (coalPNJ != null) { if (coalPNJ.HaveItem(selectedQuest.itemType)) { ValidQuest(selectedQuest); } } else { if (pnj.HaveItem(selectedQuest.itemType)) { ValidQuest(selectedQuest); } } } } } if (selectedQuest.validated) { UpdateQuestList(); Events.Instance.Raise(new OnShowPin(EPin.Quest, true)); } }