Exemplo n.º 1
0
 public override void OnPrimaryActionFinished()
 {
     Juicer.ShakeCamera(0.5f);
     Juicer.PlaySound(1);
     GameConductor.KillNPC();
     transform.parent.parent.Translate(0, -10, 0);
 }
Exemplo n.º 2
0
 public override void OnPrimaryActionFinished()
 {
     GameConductor.IsPlayerAWarrior = true;
     Juicer.PlaySound(1);
     playerSword.SetActive(true);
     GameConductor.EnqueueReset(() =>
     {
         playerSword.SetActive(false);
         GameConductor.IsPlayerAWarrior = false;
         transform.parent.Translate(0, 10, 0);
     });
     transform.parent.Translate(0, -10, 0);
 }
Exemplo n.º 3
0
    public void OnInteract()
    {
        Juicer.PlaySound(2);
        GameConductor.FreezePlayer();
        List <string> selectedTexts = used
            ? secondaryTexts
            : texts;

        if (!used)
        {
            GameConductor.EnqueueReset(() =>
            {
                used    = false;
                cleared = false;
            });
        }
        for (int i = 0; i < selectedTexts.Count; ++i)
        {
            if (!string.IsNullOrWhiteSpace(cameraTrigger))
            {
                GameConductor.CameraStateTrigger(cameraTrigger);
            }
            if (i < selectedTexts.Count - 1)
            {
                MessageController.AddMessage(selectedTexts[i]);
            }
            else
            {
                MessageController.AddMessage(selectedTexts[i], postAction: () =>
                {
                    GameConductor.UnfreezePlayer();
                    if (!string.IsNullOrWhiteSpace(cameraTrigger))
                    {
                        GameConductor.CameraStateTrigger("FocusPlayer");
                    }
                    if (used)
                    {
                        OnSecondaryActionFinished();
                        cleared = true;
                    }
                    else
                    {
                        OnPrimaryActionFinished();
                        used = true;
                    }
                    Player.DeselectInteractable();
                });
            }
        }
    }
Exemplo n.º 4
0
    IEnumerator DrunkSequence()
    {
        GameConductor.CameraStateTrigger("drunk");
        GameConductor.FreezePlayer();
        yield return(new WaitForSeconds(2));

        Juicer.ShakeCamera(0.3f);
        Juicer.PlaySound(0);
        passedOutGuy.transform.position = transform.position;
        transform.parent.position       = otherStart;
        yield return(new WaitForSeconds(2));

        GameConductor.UnfreezePlayer();
        GameConductor.CameraStateTrigger("FocusPlayer");
    }
Exemplo n.º 5
0
 private IEnumerator PlayMessages()
 {
     OnPanelOpen.Invoke();
     playingMessages = true;
     while (playingMessages)
     {
         var currentMessage     = messages.Dequeue();
         var currentMessageText = currentMessage.Text;
         OnMessageStart.Invoke(currentMessageText);
         for (int i = CharacterBunch; i < currentMessageText.Length; i += CharacterBunch)
         {
             if (ShouldSkipText())
             {
                 break;
             }
             messageText.text = currentMessageText.Substring(0, i);
             yield return(new WaitForSecondsOr(CharacterDelay, ShouldSkipText));
         }
         messageText.text = currentMessageText;
         OnMessageEnd.Invoke(currentMessageText);
         skipKeyActive = false;
         if (RequireConfirmation)
         {
             while (!ShouldSkipText())
             {
                 yield return(null);
             }
         }
         else
         {
             yield return(new WaitForSecondsOr(MessageDelay, ShouldSkipText));
         }
         Juicer.PlaySound(3);
         skipKeyActive           = false;
         interruptCurrentMessage = false;
         currentMessage.Action();
         if (messages.Count == 0)
         {
             playingMessages = false;
         }
     }
     messageText.text = string.Empty;
     OnPanelClose.Invoke();
 }
Exemplo n.º 6
0
    public IEnumerator OnUpdate()
    {
        GameConductor.FreezePlayer();
        GameConductor.CameraStateTrigger("OblexCam");
        yield return(new WaitForSeconds(2));

        // todo: shwink sound and animations
        GameConductor.GetGate.transform.Translate(0, -10, 0);
        Juicer.PlaySound(1);
        Juicer.ShakeCamera(0.1f);
        yield return(new WaitForSeconds(1));

        GameConductor.CameraStateTrigger("NextState");
        yield return(new WaitForSeconds(1));

        Juicer.PlaySound(0);
        Juicer.ShakeCamera(1);
        yield return(new WaitForSeconds(1));

        Juicer.PlaySound(1);
        Juicer.PlaySound(0);
        GameConductor.GetCurtain.transform.Translate(0, -10, 0);
        foreach (var npc in GameConductor.GetBandNPCs)
        {
            npc.transform.Translate(0, -10, 0);
        }
        GameConductor.GetOblexBody.SetActive(true);
        foreach (var npc in GameConductor.GetNPCs)
        {
            npc.GetComponentInChildren <OblexNPC>()?.Activate();
        }
        // todo: disable doors
        GameConductor.IsOblexRevealed = true;
        yield return(new WaitForSeconds(3));

        GameConductor.UnfreezePlayer();
        GameConductor.CameraStateTrigger("FocusPlayer");
        while (GameConductor.NPCsKilled < 11)
        {
            yield return(null);
        }
    }