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));
 }
Beispiel #5
0
 public void IntializeNpcQuest()
 {
     System.Array.Sort(iD);
     npcInformation = gameObject.GetComponent <NPCInformation>();
     for (int i = 0; i < iD.Length; i++)
     {
         npcInformation.QuestIDs[i] = iD[i];
     }
 }
Beispiel #6
0
    /// <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;
    }
Beispiel #7
0
    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());
    }