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);
             }
         }
     }
 }
Example #2
0
    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));
        }
    }