예제 #1
0
    IEnumerator TriggerAction()
    {
        yield return(new WaitForSeconds(Const_WaitTimes.OnTrigger));

        Script_VCamManager.VCamMain.SetNewVCam(VCamLB1);
        game.PlayerFaceDirection(Directions.Down);
        game.NPCFaceDirection(0, Directions.Up);
        dialogueManager.StartDialogueNode(EroNode);
    }
예제 #2
0
    public override void HandleMovingNPCOnApproachedTarget(int i)
    {
        if (game.Run.dayId == Script_Run.DayId.none)
        {
            dm.StartDialogueNode(TriggerNodes[activeTriggerIndex - 1]);
            RehydrateMovingNPCMoves(0);
            game.ChangeStateCutScene();
        }

        void RehydrateMovingNPCMoves(int Id)
        {
            Script_MovingNPC npc = game.GetMovingNPC(Id);

            npc.moveSets = truncatedMoveSet;

            npc.QueueMoves();
        }
    }
예제 #3
0
    public override bool ActivateTrigger(string Id)
    {
        if (game.Run.dayId == Script_Run.DayId.none)
        {
            if (
                (
                    (Id == "room_1" && activeTriggerIndex == 0) ||
                    (Id == "room_2" && activeTriggerIndex == 1)
                ) && !isDone
                )
            {
                game.ChangeStateCutScene();

                if (activeTriggerIndex == 0)
                {
                    game.PauseBgMusic();
                    game.PlayNPCBgTheme(EroBgThemePlayerPrefab);
                    game.PlayerFaceDirection(Directions.Down);
                    Ero.GetComponent <Script_MovingNPCFaceDirectionController>().FacePlayer();
                }
                else if (activeTriggerIndex == 1)
                {
                    game.PlayerFaceDirection(Directions.Right);
                    Ero.GetComponent <Script_MovingNPCFaceDirectionController>().FacePlayer();
                    Script_VCamManager.VCamMain.SetNewVCam(VCamLB3);
                }

                dm.StartDialogueNode(triggerNodes[activeTriggerIndex]);

                activeTriggerIndex++;
                if (activeTriggerIndex > 1)
                {
                    isDone = true;
                }

                return(true);
            }
        }

        return(false);
    }
    public void PreShakeRoom()
    {
        // fade out music
        StartCoroutine(
            Script_AudioMixerFader.Fade(
                audioMixer,
                Const_AudioMixerParams.ExposedBGVolume,
                beforeShakeFadeOutMusicTime,
                0f,
                () => { game.StopBgTheme(); }
                )
            );

        // wait a bit, then talk
        StartCoroutine(WaitToStartErasQuestion());

        IEnumerator WaitToStartErasQuestion()
        {
            yield return(new WaitForSeconds(preShakeRoomWaitTime));

            dialogueManager.StartDialogueNode(erasQuestionNode);
        }
    }
예제 #5
0
 void SaveDialogue()
 {
     if (!game.GetPlayerIsTalking())
     {
         dm.StartDialogueNode(dialogueNode, SFXOn: true, null, this);
     }
     else
     {
         if (dm.IsDialogueSkippable())
         {
             dm.SkipTypingSentence();
         }
         else
         {
             dm.ContinueDialogue();
         }
     }
 }
    public void OnNotify(Playable origin, INotification notification, object context)
    {
        Script_DialogueStartMarker dm = notification as Script_DialogueStartMarker;

        if (dm != null)
        {
            double time = origin.IsValid() ? origin.GetTime() : 0.0;
            Debug.LogFormat("Received dialogue start notification of type {0} at time {1}", dm.GetType(), time);

            Script_DialogueNode node = nodes[dm.dialogueNodeIndex];
            bool isSFXOn             = !dm.isSilent;

            Script_DialogueManager dialogueManager = Script_DialogueManager.DialogueManager;
            dialogueManager.StartDialogueNode(node, isSFXOn);

            if (dm.isPauseTimeline)
            {
                director = (origin.GetGraph().GetResolver() as PlayableDirector);
                director.Pause();
            }
        }
    }
예제 #7
0
    void OnEntrance()
    {
        if (game.state == "interact" && !isActivated && !isDone)
        {
            isActivated = true;

            // foreach(bool demonSpawn in level3.demonSpawns)
            // {
            //     if (!demonSpawn)    didEatDemons = true;
            // }
            // if (didEatDemons)   dm.StartDialogueNode(ateDemonsNode);
            // else                dm.StartDialogueNode(sparedDemonsNode);
            /// Always use Ate node because must EAT on lvl0 Woods
            dm.StartDialogueNode(ateDemonsNode);

            game.ChangeStateCutScene();
        }
    }