/// <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); }
public void SetStatus(NpcQuestStatus status) { currentStatus = status; for (int i = 0; i < questStatusImgs.Length; i++) { questStatusImgs[i].gameObject.SetActive(i == (int)status); } }
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); } } }
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); } }
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; } }
void RefreshNpcStatus() { questStatus = QuestManager.Instance.GetQuestStatusByNpc(this.npcId); UIWorldElementManager.Instance.AddNpcQuestStatus(this.transform, questStatus); }
private void OnNpcStatusChange(NpcQuestStatus old, NpcQuestStatus @new) { QuestManager.Instance.UpdateQuest(this, old, @new); }
private void RefreshNpcStatus() { questStatus = QuestManager.Instance.GetQuestStatusByNpc(this.npcID); //获得状态 UIWorldElementManager.Instance.AddNpcQuestStatus(this.transform, questStatus); //更新或生成状态图标 }
public void Init(Transform owner, NpcQuestStatus status) { base.Owner = owner; SetStatus(status); }