630 lines
27 KiB
C#
630 lines
27 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class Cutscene_SansBeforePapyrus : MonoBehaviour
|
|
{
|
|
public Vector3[] SansWalkPositions;
|
|
|
|
public float[] SansWalkspeeds;
|
|
|
|
public Susie_Follower Susie;
|
|
|
|
public NPC Sans;
|
|
|
|
public INT_Chat[] ChatsToDisable;
|
|
|
|
public INT_Chat SansCutsceneChat;
|
|
|
|
private int cutsceneIndex;
|
|
|
|
private int SansWalkIndex;
|
|
|
|
[Space(5f)]
|
|
public TRIG_LEVELTRANSITION PapyrusRoomLevelPosition;
|
|
|
|
public bool ActivatePrunselVarient;
|
|
|
|
[Header("Before Cutscene Stuff")]
|
|
public bool InLivingRoomMode;
|
|
|
|
public bool WalkToKitchen;
|
|
|
|
private bool previousWTK;
|
|
|
|
public Vector2 LivingRoomPosition;
|
|
|
|
public Vector2 KitchenPosition;
|
|
|
|
private int walkamount;
|
|
|
|
[SerializeField]
|
|
private INT_Chat sansFinishedChat;
|
|
|
|
[Header("Cutscene Stuff")]
|
|
public AudioSource SansCutsceneSource;
|
|
|
|
public AudioClip[] SansCutsceneSounds;
|
|
|
|
public AudioReverbFilter PlayerCameraReverb;
|
|
|
|
[Space(5f)]
|
|
public SpriteRenderer PapyrusDoor;
|
|
|
|
public Sprite PapyrusDoor_Open;
|
|
|
|
[Space(5f)]
|
|
public CHATBOXTEXT Papyrus_BaitnSwitch;
|
|
|
|
public CHATBOXTEXT Susie_ConfirmKnight;
|
|
|
|
public CHATBOXTEXT Susie_CountDown3;
|
|
|
|
public CHATBOXTEXT Susie_CountDown2;
|
|
|
|
public CHATBOXTEXT Susie_CountDown1;
|
|
|
|
public CHATBOXTEXT Susie_CountDownGO;
|
|
|
|
public CHATBOXTEXT Susie_ReplyToSans;
|
|
|
|
public Vector3[] KrisCutscenePositions;
|
|
|
|
public Vector3[] SusieCutscenePositions;
|
|
|
|
[Space(5f)]
|
|
[SerializeField]
|
|
private HypothesisGoal Goal_AmbushPapyrus;
|
|
|
|
[SerializeField]
|
|
private HypothesisGoal Goal_GreetPapyrus;
|
|
|
|
[SerializeField]
|
|
private HypothesisGoal Goal_SusieSnack;
|
|
|
|
[SerializeField]
|
|
private HypothesisGoal Goal_PrunselAnomalies;
|
|
|
|
private void Start()
|
|
{
|
|
Susie = PartyMemberSystem.Instance.HasMemberInParty(PartyMemberSystem.Instance.Default_Susie).PartyMemberFollowSettings;
|
|
}
|
|
|
|
public void StartCutscene()
|
|
{
|
|
StartCoroutine(Cutscene());
|
|
PlayerPrefs.SetInt("PapyrusMeet_AmbushCutscene", 0);
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (cutsceneIndex != 0)
|
|
{
|
|
CutsceneUpdate();
|
|
PlayerManager.Instance._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
LightworldMenu.Instance.CanOpenMenu = false;
|
|
}
|
|
else if (InLivingRoomMode)
|
|
{
|
|
LivingRoomModeUpdate();
|
|
}
|
|
}
|
|
|
|
private void LivingRoomModeUpdate()
|
|
{
|
|
if (previousWTK != WalkToKitchen)
|
|
{
|
|
previousWTK = WalkToKitchen;
|
|
if (Sans.CurrentWalkRoutine != null)
|
|
{
|
|
Sans.StopCoroutine(Sans.CurrentWalkRoutine);
|
|
Sans.CurrentWalkRoutine = null;
|
|
}
|
|
walkamount++;
|
|
if (walkamount > 6)
|
|
{
|
|
sansFinishedChat.IndexToLoop = 1;
|
|
sansFinishedChat.FirstTextPlayed = true;
|
|
sansFinishedChat.CurrentIndex = 1;
|
|
}
|
|
}
|
|
if (WalkToKitchen && (Vector2)Sans.transform.position != KitchenPosition && Sans.CurrentWalkRoutine == null)
|
|
{
|
|
Sans.WalkToPosition(KitchenPosition, 9f);
|
|
}
|
|
if (!WalkToKitchen && (Vector2)Sans.transform.position != LivingRoomPosition && Sans.CurrentWalkRoutine == null)
|
|
{
|
|
Sans.WalkToPosition(LivingRoomPosition, 9f);
|
|
}
|
|
if ((Vector2)Sans.transform.position == KitchenPosition)
|
|
{
|
|
Sans.RotateNPC(Vector2.up);
|
|
Collider2D[] collidersToDisableOnWalk = Sans.CollidersToDisableOnWalk;
|
|
for (int i = 0; i < collidersToDisableOnWalk.Length; i++)
|
|
{
|
|
collidersToDisableOnWalk[i].enabled = false;
|
|
}
|
|
}
|
|
if ((Vector2)Sans.transform.position == LivingRoomPosition)
|
|
{
|
|
Sans.RotateNPC(Vector2.right);
|
|
sansFinishedChat.CanUse = true;
|
|
}
|
|
else
|
|
{
|
|
sansFinishedChat.CanUse = false;
|
|
}
|
|
}
|
|
|
|
private void CutsceneUpdate()
|
|
{
|
|
switch (cutsceneIndex)
|
|
{
|
|
case 1:
|
|
PlayerManager.Instance._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
PlayerManager.Instance._PMove._rb.simulated = false;
|
|
Susie.FollowingEnabled = false;
|
|
if (SansWalkIndex < SansWalkPositions.Length && !Sans.ismoving)
|
|
{
|
|
Sans.WalkToPosition(SansWalkPositions[SansWalkIndex], SansWalkspeeds[SansWalkIndex]);
|
|
Sans.ismoving = true;
|
|
}
|
|
if (Sans.FinishedMoveTo && SansWalkIndex < SansWalkPositions.Length)
|
|
{
|
|
SansWalkIndex++;
|
|
Sans.FinishedMoveTo = false;
|
|
Sans.ismoving = false;
|
|
}
|
|
PlayerManager.Instance._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
if (PlayerManager.Instance.transform.position != KrisCutscenePositions[0])
|
|
{
|
|
PlayerManager.Instance.transform.position = Vector3.MoveTowards(PlayerManager.Instance.transform.position, KrisCutscenePositions[0], 5f * Time.deltaTime);
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[0])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[0], 5f * Time.deltaTime);
|
|
}
|
|
if (Sans.transform.position == SansWalkPositions[SansWalkPositions.Length - 1])
|
|
{
|
|
cutsceneIndex = 26;
|
|
StartCoroutine(SansKnockScene());
|
|
}
|
|
break;
|
|
case 2:
|
|
cutsceneIndex = 3;
|
|
break;
|
|
case 4:
|
|
if (PlayerManager.Instance.transform.position != KrisCutscenePositions[1])
|
|
{
|
|
PlayerManager.Instance.transform.position = Vector3.MoveTowards(PlayerManager.Instance.transform.position, KrisCutscenePositions[1], 2f * Time.deltaTime);
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: true);
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[1])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[1], 2f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 100f);
|
|
}
|
|
if (Susie.transform.position == SusieCutscenePositions[1] && PlayerManager.Instance.transform.position == KrisCutscenePositions[1])
|
|
{
|
|
Susie.AnimationOverriden = false;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove.AnimationOverriden = false;
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: false);
|
|
SetupCutscene4();
|
|
}
|
|
break;
|
|
case 7:
|
|
PlayerManager.Instance._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
if (Susie.transform.position != SusieCutscenePositions[2])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[2], 6f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", -1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 100f);
|
|
}
|
|
if (Susie.transform.position == SusieCutscenePositions[2])
|
|
{
|
|
Susie.AnimationOverriden = false;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(-1f, 0f));
|
|
SansCutsceneSource.PlayOneShot(SansCutsceneSounds[1]);
|
|
Susie.SusieAnimator.Play("Susie_TalkKris");
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove.RotatePlayerAnim(new Vector2(1f, 0f));
|
|
StartCoroutine(Cutscene8());
|
|
}
|
|
break;
|
|
case 9:
|
|
if (PlayerManager.Instance.transform.position != KrisCutscenePositions[2])
|
|
{
|
|
PlayerManager.Instance._PMove.transform.position = Vector3.MoveTowards(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[2], 5f * Time.deltaTime);
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: true);
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[3])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[3], 4f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 100f);
|
|
Susie.SusieAnimator.Play("Walk");
|
|
}
|
|
if (Vector2.Distance(Susie.transform.position, SusieCutscenePositions[3]) < 0.5f)
|
|
{
|
|
Vector2.Distance(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[2]);
|
|
_ = 0.5f;
|
|
}
|
|
break;
|
|
case 10:
|
|
if (PlayerManager.Instance._PMove.transform.position != KrisCutscenePositions[3])
|
|
{
|
|
PlayerManager.Instance._PMove.transform.position = Vector3.MoveTowards(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[3], 2f * Time.deltaTime);
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: true);
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[4])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[4], 2f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 100f);
|
|
Susie.SusieAnimator.Play("Walk");
|
|
}
|
|
if (Vector2.Distance(Susie.transform.position, SusieCutscenePositions[4]) < 0.5f && Vector2.Distance(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[3]) < 0.5f)
|
|
{
|
|
cutsceneIndex = 11;
|
|
Susie.AnimationOverriden = false;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove.AnimationOverriden = false;
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: false);
|
|
}
|
|
break;
|
|
case 11:
|
|
cutsceneIndex = 12;
|
|
ChatboxManager.Instance.CurrentTextIndex = 0;
|
|
SansCutsceneChat.Text = Susie_CountDown3;
|
|
SansCutsceneChat.OnBottom = false;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
SansCutsceneChat.RUN();
|
|
break;
|
|
case 13:
|
|
if (PlayerManager.Instance._PMove.transform.position != KrisCutscenePositions[4])
|
|
{
|
|
PlayerManager.Instance._PMove.transform.position = Vector3.MoveTowards(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[4], 2f * Time.deltaTime);
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: true);
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[5])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[5], 2f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 100f);
|
|
Susie.SusieAnimator.Play("Walk");
|
|
}
|
|
if (Vector2.Distance(Susie.transform.position, SusieCutscenePositions[5]) < 0.5f && Vector2.Distance(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[4]) < 0.5f)
|
|
{
|
|
cutsceneIndex = 14;
|
|
Susie.AnimationOverriden = false;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove.AnimationOverriden = false;
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: false);
|
|
}
|
|
ChatboxManager.Instance.CurrentTextIndex = 0;
|
|
SansCutsceneChat.Text = Susie_CountDown2;
|
|
SansCutsceneChat.OnBottom = false;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
break;
|
|
case 15:
|
|
if (PlayerManager.Instance._PMove.transform.position != KrisCutscenePositions[5])
|
|
{
|
|
PlayerManager.Instance._PMove.transform.position = Vector3.MoveTowards(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[5], 2f * Time.deltaTime);
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: true);
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[6])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[6], 2f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 100f);
|
|
Susie.SusieAnimator.Play("Walk");
|
|
}
|
|
if (Vector2.Distance(Susie.transform.position, SusieCutscenePositions[6]) < 0.5f && Vector2.Distance(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[5]) < 0.5f)
|
|
{
|
|
cutsceneIndex = 16;
|
|
Susie.AnimationOverriden = false;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove.AnimationOverriden = false;
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: false);
|
|
}
|
|
ChatboxManager.Instance.CurrentTextIndex = 0;
|
|
SansCutsceneChat.Text = Susie_CountDown1;
|
|
SansCutsceneChat.OnBottom = false;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
break;
|
|
case 17:
|
|
if (PlayerManager.Instance._PMove.transform.position != KrisCutscenePositions[6])
|
|
{
|
|
PlayerManager.Instance._PMove.transform.position = Vector3.MoveTowards(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[6], 2f * Time.deltaTime);
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: true);
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[7])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[7], 2f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 100f);
|
|
Susie.SusieAnimator.Play("Walk");
|
|
}
|
|
if (Vector2.Distance(Susie.transform.position, SusieCutscenePositions[7]) < 0.5f && Vector2.Distance(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[6]) < 0.5f)
|
|
{
|
|
cutsceneIndex = 18;
|
|
Susie.AnimationOverriden = false;
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
PlayerManager.Instance._PMove.AnimationOverriden = false;
|
|
PlayerManager.Instance._PMove._anim.SetBool("MOVING", value: false);
|
|
}
|
|
ChatboxManager.Instance.CurrentTextIndex = 0;
|
|
SansCutsceneChat.Text = Susie_CountDownGO;
|
|
SansCutsceneChat.OnBottom = false;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
break;
|
|
case 19:
|
|
if (PlayerManager.Instance._PMove.transform.position != KrisCutscenePositions[2])
|
|
{
|
|
PlayerManager.Instance._PMove.transform.position = Vector3.MoveTowards(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[2], 8f * Time.deltaTime);
|
|
PlayerManager.Instance._PMove.AnimationOverriden = true;
|
|
PlayerManager.Instance._PMove._anim.Play("Kris_SprintUp");
|
|
}
|
|
if (Susie.transform.position != SusieCutscenePositions[3])
|
|
{
|
|
Susie.transform.position = Vector3.MoveTowards(Susie.transform.position, SusieCutscenePositions[3], 7f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Susie_SprintUp");
|
|
}
|
|
if (Vector2.Distance(Susie.transform.position, SusieCutscenePositions[3]) < 0.5f && Vector2.Distance(PlayerManager.Instance._PMove.transform.position, KrisCutscenePositions[2]) < 0.5f)
|
|
{
|
|
cutsceneIndex = 420;
|
|
}
|
|
break;
|
|
case 3:
|
|
case 5:
|
|
case 6:
|
|
case 8:
|
|
case 12:
|
|
case 14:
|
|
case 16:
|
|
case 18:
|
|
break;
|
|
}
|
|
}
|
|
|
|
private IEnumerator Cutscene()
|
|
{
|
|
cutsceneIndex = 1;
|
|
yield return new WaitForSeconds(1f);
|
|
}
|
|
|
|
public void SetupCutscene2()
|
|
{
|
|
PlayerManager.Instance._PMove.Manager._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
cutsceneIndex = 4;
|
|
}
|
|
|
|
private IEnumerator Cutscene4()
|
|
{
|
|
MusicManager.StopSong(Fade: true, 0.5f);
|
|
PlayerCameraReverb.reverbPreset = AudioReverbPreset.Arena;
|
|
PapyrusDoor.sprite = PapyrusDoor_Open;
|
|
SansCutsceneSource.PlayOneShot(SansCutsceneSounds[0]);
|
|
yield return new WaitForSeconds(2f);
|
|
SansCutsceneChat.Text = Papyrus_BaitnSwitch;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
SansCutsceneChat.RUN();
|
|
}
|
|
|
|
public void SetupCutscene4()
|
|
{
|
|
PlayerManager.Instance._PMove.Manager._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
cutsceneIndex = 5;
|
|
StartCoroutine(Cutscene4());
|
|
}
|
|
|
|
public void SetupCutscene6()
|
|
{
|
|
PlayerCameraReverb.reverbPreset = AudioReverbPreset.Off;
|
|
PlayerManager.Instance._PMove.Manager._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
cutsceneIndex = 6;
|
|
StartCoroutine(Cutscene6());
|
|
}
|
|
|
|
public void Susie_Countdown()
|
|
{
|
|
cutsceneIndex++;
|
|
StartCoroutine(CounterDelay());
|
|
PlayerManager.Instance._PMove.Manager._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
}
|
|
|
|
public void Susie_CountdownFinale()
|
|
{
|
|
SansCutsceneSource.PlayOneShot(SansCutsceneSounds[2]);
|
|
cutsceneIndex++;
|
|
PlayerManager.Instance._PMove.Manager._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
PapyrusRoomLevelPosition.BeginTransition(2.45f);
|
|
}
|
|
|
|
private IEnumerator Cutscene6()
|
|
{
|
|
PlayerManager.Instance._PMove.Manager._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
yield return new WaitForSeconds(1f);
|
|
Sans.AnimateAutomatically = false;
|
|
PlayerCameraReverb.reverbPreset = AudioReverbPreset.Off;
|
|
Sans.PlayAnimation("Idle");
|
|
Sans.RotateNPC(Vector2.right);
|
|
yield return new WaitForSeconds(0.5f);
|
|
Sans.PlayAnimation("Idle");
|
|
Sans.RotateNPC(Vector2.down);
|
|
yield return new WaitForSeconds(1.2f);
|
|
SansCutsceneChat.Text = Susie_ConfirmKnight;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
SansCutsceneChat.ManualTextboxPosition = true;
|
|
SansCutsceneChat.OnBottom = true;
|
|
SansCutsceneChat.RUN();
|
|
cutsceneIndex = 999;
|
|
}
|
|
|
|
public void StartChat_SusieReplyToSans()
|
|
{
|
|
StartCoroutine(DelayForSusieReply());
|
|
}
|
|
|
|
private IEnumerator DelayForSusieReply()
|
|
{
|
|
yield return new WaitForSeconds(0.5f);
|
|
SansCutsceneChat.Text = Susie_ReplyToSans;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
SansCutsceneChat.ManualTextboxPosition = true;
|
|
SansCutsceneChat.OnBottom = false;
|
|
SansCutsceneChat.RUN();
|
|
}
|
|
|
|
public void EndCutscene()
|
|
{
|
|
PlayerManager.Instance._PMove.Manager._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
PapyrusRoomLevelPosition.BeginTransition();
|
|
}
|
|
|
|
private IEnumerator Cutscene8()
|
|
{
|
|
if (!ActivatePrunselVarient)
|
|
{
|
|
cutsceneIndex = 8;
|
|
yield return new WaitForSeconds(0.45f);
|
|
ChatboxManager.Instance.CurrentTextIndex = 0;
|
|
SansCutsceneChat.Text = Susie_ConfirmKnight;
|
|
SansCutsceneChat.OnBottom = false;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
SansCutsceneChat.RUN();
|
|
}
|
|
else
|
|
{
|
|
cutsceneIndex = 19;
|
|
PapyrusRoomLevelPosition.BeginTransition();
|
|
yield return new WaitForSeconds(0.25f);
|
|
}
|
|
}
|
|
|
|
public void BeginWalkToDoor()
|
|
{
|
|
StartCoroutine(WalkToDoorTimed());
|
|
HypotheticalGoalManager.Instance.CompleteGoal(Goal_GreetPapyrus);
|
|
}
|
|
|
|
public void SprintToDoor()
|
|
{
|
|
cutsceneIndex = 10;
|
|
StartCoroutine(SprintToDoorTimed());
|
|
PlayerPrefs.SetInt("PapyrusMeet_AmbushCutscene", 1);
|
|
HypotheticalGoalManager.Instance.CompleteGoal(Goal_AmbushPapyrus);
|
|
}
|
|
|
|
public void FaceSusieToSans()
|
|
{
|
|
Susie.RotateSusieTowardsPosition(base.transform.position);
|
|
}
|
|
|
|
private IEnumerator WalkToDoorTimed()
|
|
{
|
|
PapyrusRoomLevelPosition.BeginTransition();
|
|
yield return new WaitForSeconds(0.25f);
|
|
cutsceneIndex = 9;
|
|
}
|
|
|
|
private IEnumerator SprintToDoorTimed()
|
|
{
|
|
yield return new WaitForSeconds(0.5f);
|
|
SansCutsceneChat.RUN();
|
|
}
|
|
|
|
private IEnumerator CounterDelay()
|
|
{
|
|
yield return new WaitForSeconds(1f);
|
|
SansCutsceneChat.RUN();
|
|
}
|
|
|
|
private IEnumerator SansKnockScene()
|
|
{
|
|
yield return new WaitForSeconds(0.5f);
|
|
PapyrusDoor.sprite = PapyrusDoor_Open;
|
|
SansCutsceneSource.PlayOneShot(SansCutsceneSounds[0]);
|
|
MusicManager.StopSong(Fade: true, 0.5f);
|
|
PlayerCameraReverb.reverbPreset = AudioReverbPreset.Arena;
|
|
yield return new WaitForSeconds(1.2f);
|
|
SansCutsceneChat.Text = Papyrus_BaitnSwitch;
|
|
SansCutsceneChat.CurrentIndex = 0;
|
|
SansCutsceneChat.FirstTextPlayed = false;
|
|
SansCutsceneChat.ManualTextboxPosition = true;
|
|
SansCutsceneChat.OnBottom = true;
|
|
SansCutsceneChat.RUN();
|
|
yield return new WaitForSeconds(0.3f);
|
|
cutsceneIndex = 2;
|
|
}
|
|
|
|
public void CompleteSusieSnack()
|
|
{
|
|
HypotheticalGoalManager.Instance.CompleteGoal(Goal_SusieSnack);
|
|
}
|
|
|
|
public void IncrementPrunselAnomaly()
|
|
{
|
|
HypotheticalGoalManager.Instance.IncrementGoal(Goal_PrunselAnomalies, 1);
|
|
}
|
|
|
|
public void EnableSansLivingRoomMode()
|
|
{
|
|
InLivingRoomMode = true;
|
|
}
|
|
}
|