protected TaskNPCBehavior.TaskNPCState SetNPCCurrentState(int npcDataID, NPCInformation info) { NPCStatus status = info.status; if (status == NPCStatus.FOLLOW) { return(new TaskNPCBehavior.TaskNPCState { state = TaskNPCBehavior.TaskNPCState.TaskNPCStateType.Follow, Position = Vector3.get_zero(), Direction = Vector3.get_forward() }); } if (status != NPCStatus.NAV_TO_POINT) { return(new TaskNPCBehavior.TaskNPCState { state = TaskNPCBehavior.TaskNPCState.TaskNPCStateType.Stand, Position = new Vector3(info.position.x * 0.01f, info.position.y * 0.01f, info.position.z * 0.01f), Direction = this.GetDefaultDir(npcDataID) }); } return(new TaskNPCBehavior.TaskNPCState { state = TaskNPCBehavior.TaskNPCState.TaskNPCStateType.NavToPos, Position = new Vector3(info.position.x * 0.01f, info.position.y * 0.01f, info.position.z * 0.01f), Direction = this.GetDefaultDir(npcDataID) }); }
/// <summary> /// 상호작용 버튼 /// </summary> public void Speechup() { if (!is_Trigger) { if (HJ.Manager.DialogueManager.is_nextmsg && HJ.Manager.DialogueManager.is_Msg) { return; } NPCInformation info = collider2d.GetComponent <NPCInformation>(); if (info == null) { return; } //? 플레이메이커 //info.fsmBox.SendEvent("NPC"); info.PlayerRayCast(); //? 플레이 레이케스트 실행 } else { WarpScript info = collider2d.GetComponent <WarpScript>(); if (info == null) { return; } info.TelePort(); info = null; } // Debug.Log(info._name); }
public void CreateNPC(int npcDataID, NPCInformation info) { this.RemoveNPC(npcDataID); ActorNPC value = NPCManager.Instance.CreateNPC(npcDataID, DataReader <NPC> .Get(npcDataID).model, new TaskNPCBehavior(npcDataID, this.SetNPCCurrentState(npcDataID, info))); this.taskNPCData.Add(npcDataID, value); }
public void UpdateNPC(int npcDataID, NPCInformation info) { if (!this.taskNPCData.ContainsKey(npcDataID)) { return; } this.taskNPCData[npcDataID].UpdateState(this.SetNPCCurrentState(npcDataID, info)); }
public void IntializeNpcQuest() { System.Array.Sort(iD); npcInformation = gameObject.GetComponent <NPCInformation>(); for (int i = 0; i < iD.Length; i++) { npcInformation.QuestIDs[i] = iD[i]; } }
/// <summary> /// Gave me the name so I can return the game object /// Give me the gameObject controller so i have the npc that gave the quest /// </summary> /// <param name="name"></param> public void StartSaveQuest(string name, GameObject questNPC) { GameObject temp = NPCInformation.ReturnNPCGameObject(name); temp.AddComponent <SaveQuest>(); questController = questNPC; savedCharacter = name; temp.GetComponent <SaveQuest>().savedCharacter = name; temp.GetComponent <SaveQuest>().questController = this.gameObject; }
public void CompletedQuest() { questList.DeleteFromQuestLog((FetchQuest)Quest.quest[questId - 1]); FetchQuest quest = new FetchQuest(); quest.CompleteQuest(questId); GameObject temp = GameObject.FindGameObjectWithTag("QuestNotif"); temp.GetComponent <Text>().text = "Completed! " + "Reward: " + "Xp" + quest.GetXPReward(questId) + " Gold: " + quest.GetGoldReward(questId); NPCInformation npc = gameObject.GetComponent <NPCInformation>(); quest = (FetchQuest)Quest.quest[questId - 1]; GameInformation.activeQuest.Remove(quest); npc.QuestCounter++; questId = npc.QuestIDs[npc.QuestCounter]; isDisplayed = false; isAccepted = false; StartCoroutine(GetRidOfCompleteText()); }