Example #1
0
 public void UnsubscribeMethods(InteractingState state)
 {
     state.OnInteractingStart -= TakeKnife;
     state.OnInteractingStop  -= PutDownKnife;
     playerHands = null;
 }
Example #2
0
 public void StartEvent()
 {
     interactingState = InteractingState.INTERACTING_WITH_PLAYER;
     NPCs.Instance.DisableInput();
 }
Example #3
0
 public void SubscribeMethods(InteractingState state, Transform hands)
 {
     playerHands = hands;
     state.OnInteractingStart += TakeKnife;
     state.OnInteractingStop  += PutDownKnife;
 }
Example #4
0
    /// <summary>
    /// Starts the conversation with the player
    /// </summary>
    public void StartConversation()
    {
        if (conversationTree.root == conversationTree.currentNode)
        {
            DialogueWindow.instance.progressBar.ClearStars(conversationParts);
            DialogueWindow.instance.UpdateNPCArrow(conversationTree.currentNode);
            DialogueWindow.instance.UpdateNPCPortrait(conversationTree.currentNode);

            #if !UNITY_WEBPLAYER
            if (npcDatabaseId != -1)
            {
                MainDatabase.Instance.InsertSql("INSERT INTO Interaction (NPCID,LevelPlayID,Completed)VALUES(" + npcDatabaseId + "," + GameManager.Instance.LevelPlayID + ",'False');");
                interactionID = MainDatabase.Instance.getIDs("Select Max(InteractionID) from Interaction;");
                MainDatabase.Instance.InsertSql("INSERT INTO InteractionTime (InteractionID,StartTime)VALUES(" + interactionID + ",datetime('now','localtime'));");
            }
            #endif

        }

        // Set NPC interaction state to talking with the player
        interactingState = InteractingState.TALKING_PLAYER;
        // Set dialogue to current conversation node
        SetDialogue(conversationTree.currentNode);
        // Disable input to all other NPCs
        NPCs.Instance.DisableInput();
    }
Example #5
0
 /// <summary>
 /// Sets current dialogue in conversation tree
 /// </summary>
 /// <param name='dialogueReply'>
 /// Dialogue to be used for conversation
 /// </param>
 public void SetDialogue(Sentence dialogueReply)
 {
     // If a dialogue was given in the function
     if (dialogueReply != null)
     {
         // then start the conversation with given dialogue
         conversationTree.ShowCurrentDialogue(dialogueReply);
     } else
     {
         // Otherwise hide dialogue window
         DialogueWindow.instance.ShowWindow(null);
         // Set state to waiting player
         interactingState = InteractingState.WAITING_PLAYER;
     }
 }
Example #6
0
 public void ResetState()
 {
     interactingState = InteractingState.WAITING_PLAYER;
     NPCs.Instance.EnableInput();
     Glow();
 }
Example #7
0
    /// <summary>
    /// Handle Event: OnQuestCompleted
    /// </summary>
    public void OnQuestCompleted()
    {
        if (miniGame != null)
        {
            ResourceManager.UnloadAsset(miniGame.gameObject);
            Destroy(miniGame.gameObject);
        }

        Destroy(conversationTree.gameObject);
        conversationTree = null;

        Destroy(cutScene.gameObject);
        cutScene = null;

        Resources.UnloadUnusedAssets();

        InputManager.Instance.ReceivedUIInput();
        Player.instance.PlayRewardPortrait(playerRewardPortrait, missingToy, foundToyColor, celebratingTime);

        //Add interaction Completed in interaction table
        //RecordAnswers("Emotions");
        //RecordAnswers("Comprehension");
        //RecordAnswers("ConversationStart");
        //RecordAnswers("MaintainConversation");
        //RecordAnswers("ProblemSolving");
        interactionID = MainDatabase.Instance.getIDs("Select Max(InteractionID) from Interaction;");
        MainDatabase.Instance.UpdateSql("UPDATE Interaction SET Completed='True' WHERE InteractionID=" + interactionID + ";");
        int NPCID = MainDatabase.Instance.getIDs("Select NPCID from Interaction where InteractionID=" + interactionID + ";");
        //changing the status of NPC to completed by assigning to 1
        MainDatabase.Instance.ChangeUserNPCStatus(ApplicationState.Instance.userID, NPCID, 1);
        //Adding toy to userToy table.
        DBToyInfo toyAchieved = MainDatabase.Instance.getToyInfoByInteractionID(interactionID);
        MainDatabase.Instance.InsertSql("INSERT INTO UserToy (UserID,ToyID,InteractionID) VALUES ('" + ApplicationState.Instance.userID + "','"+toyAchieved.ToyID+ "','"+interactionID+ "');");

        // Remove glowing effect around NPC
        RemoveGlow();
        Markers.Instance.OnQuestCompleted(toyWorldPosition, NPCs.Instance.GetNpcID(this));
        interactingState = InteractingState.COMPLETED_TASK;
        NPCs.Instance.UpdateNPCStatus();

        NPCs.Instance.EnableInput();
        GameManager.Instance.PrepareUserPrompt();
    }
Example #8
0
    //Set NPC to completed state (used for when loading)
    public void NPCCompletedStatus()
    {
        if (miniGame != null)
            Destroy(miniGame.gameObject);
        if (conversationTree != null)
            Destroy(conversationTree.gameObject);
        if (cutScene != null)
            Destroy(cutScene.gameObject);

        RemoveGlow();
        Markers.Instance.DisplayNPCToyCompleted(NPCs.Instance.GetNpcID(this));
        interactingState = InteractingState.COMPLETED_TASK;
        if (finalSprite1 != null)
            sprite.mainTexture = finalSprite1;
        if (finalSprite2 != null)
            sprite2.mainTexture = finalSprite2;
        NPCs.Instance.EnableInput();
    }