示例#1
0
        /// <summary>
        /// 一个任务的NPC状态变化以后 需要对NPCStatus更新
        /// </summary>
        /// <param name="quest"></param>
        /// <param name="old"></param>
        /// <param name="new"></param>
        public void UpdateQuest(Quest quest, NpcQuestStatus old, NpcQuestStatus @new)
        {
            Debug.Log($"questID:{quest.ID} old:{old} new:{@new}");
            if (old == NpcQuestStatus.Visible || old == NpcQuestStatus.Acceptable || old == NpcQuestStatus.None)
            {
                RemoveQuestFromNpc(quest, quest.AcceptNpc);
                //NpcStatus[quest.AcceptNpc].Remove(quest);
            }
            else
            {
                RemoveQuestFromNpc(quest, quest.SubmitNpc);
                NpcStatus[quest.SubmitNpc].Remove(quest);
            }
            if (@new == NpcQuestStatus.Visible || @new == NpcQuestStatus.Acceptable || @new == NpcQuestStatus.None)
            {
                AddQuestToNpc(quest, quest.AcceptNpc);
            }
            else
            {
                AddQuestToNpc(quest, quest.SubmitNpc);
            }

            OnNpcStatusChange?.Invoke(quest.AcceptNpc);
            OnNpcStatusChange?.Invoke(quest.SubmitNpc);
        }
示例#2
0
 public void SetStatus(NpcQuestStatus status)
 {
     currentStatus = status;
     for (int i = 0; i < questStatusImgs.Length; i++)
     {
         questStatusImgs[i].gameObject.SetActive(i == (int)status);
     }
 }
示例#3
0
 internal void SetQuestStatus(NpcQuestStatus status)
 {
     this.questStatus = status;
     for (int i = 0; i < 4; i++)
     {
         if (this.statusImage[i] != null)
         {
             this.statusImage[i].gameObject.SetActive(i == (int)status);
         }
     }
 }
示例#4
0
    public void AddNpcQuest(Transform owner, NpcQuestStatus status)
    {
        if (!npcQuestStatus.ContainsKey(owner))
        {
            GameObject obj = ResManager.Instance.Load <GameObject>(ResManager.ResourceType.Panel, QuestStatusPath);
            obj.transform.parent     = worldCanvasTransform;
            obj.transform.localScale = Vector3.one;

            QuestStatusUI statusUI = obj.GetComponent <QuestStatusUI>();
            statusUI.Init(owner, status);

            npcQuestStatus.Add(owner, obj);
        }
    }
示例#5
0
 public void AddNpcQuestStatus(Transform owner, NpcQuestStatus status)
 {
     if (this.elementStatus.ContainsKey(owner))
     {
         elementStatus[owner].GetComponent <UIQuestStatus>().SetQuestStatus(status);
     }
     else
     {
         GameObject go = Instantiate(npcStatusPrefab, this.transform);
         go.name = "NpcQuestStatus" + owner.name;
         go.GetComponent <UIWorldElement>().owner = owner;
         go.GetComponent <UIQuestStatus>().SetQuestStatus(status);
         go.SetActive(true);
         this.elementStatus[owner] = go;
     }
 }
示例#6
0
 void RefreshNpcStatus()
 {
     questStatus = QuestManager.Instance.GetQuestStatusByNpc(this.npcId);
     UIWorldElementManager.Instance.AddNpcQuestStatus(this.transform, questStatus);
 }
示例#7
0
 private void OnNpcStatusChange(NpcQuestStatus old, NpcQuestStatus @new)
 {
     QuestManager.Instance.UpdateQuest(this, old, @new);
 }
示例#8
0
 private void RefreshNpcStatus()
 {
     questStatus = QuestManager.Instance.GetQuestStatusByNpc(this.npcID);           //获得状态
     UIWorldElementManager.Instance.AddNpcQuestStatus(this.transform, questStatus); //更新或生成状态图标
 }
示例#9
0
 public void Init(Transform owner, NpcQuestStatus status)
 {
     base.Owner = owner;
     SetStatus(status);
 }