833 lines
34 KiB
C#
833 lines
34 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class EOTDCutscene_WalkTown : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private int CutsceneIndex;
|
|
|
|
[Header("-- Cutscene References --")]
|
|
[SerializeField]
|
|
private CameraManager PlayerCamera;
|
|
|
|
[SerializeField]
|
|
private TRIG_LEVELTRANSITION LevelTransition;
|
|
|
|
[Header("Characters")]
|
|
[SerializeField]
|
|
private PlayerManager Kris;
|
|
|
|
[SerializeField]
|
|
private Susie_Follower Susie;
|
|
|
|
[SerializeField]
|
|
private Animator JigsawJoe;
|
|
|
|
[SerializeField]
|
|
private SpriteRenderer Tasque;
|
|
|
|
[SerializeField]
|
|
private GameObject TasqueManager;
|
|
|
|
[SerializeField]
|
|
private Sprite TasqueMoveSprite;
|
|
|
|
[SerializeField]
|
|
private SpriteRenderer Rudinn_Dojo;
|
|
|
|
[SerializeField]
|
|
private SpriteRenderer Rudinn_Lancer;
|
|
|
|
[SerializeField]
|
|
private Animator Lancer;
|
|
|
|
[SerializeField]
|
|
private Transform Werewire;
|
|
|
|
[SerializeField]
|
|
private Animator Ralsei;
|
|
|
|
[SerializeField]
|
|
private SpriteRenderer Cafe;
|
|
|
|
[SerializeField]
|
|
private Sprite Cafe_Open;
|
|
|
|
[Header("-- Character Move Positions --")]
|
|
[Header("Kris and Susie")]
|
|
[SerializeField]
|
|
private Vector3[] KrisWalkPositions;
|
|
|
|
[SerializeField]
|
|
private Vector3[] SusieWalkPositions;
|
|
|
|
[SerializeField]
|
|
private int KrisWalkIndex;
|
|
|
|
[SerializeField]
|
|
private int TargetKrisWalkIndex;
|
|
|
|
[SerializeField]
|
|
private int SusieWalkIndex;
|
|
|
|
[SerializeField]
|
|
private int TargetSusieWalkIndex;
|
|
|
|
[Header("Jigsaw Joe")]
|
|
[SerializeField]
|
|
private Vector3[] JJWalkPositions;
|
|
|
|
[SerializeField]
|
|
private int JJWalkIndex;
|
|
|
|
[SerializeField]
|
|
private bool JJHasBegunDelay;
|
|
|
|
[Header("Tasque and Tasque Manager")]
|
|
[SerializeField]
|
|
private Vector3[] TasqueWalkPositions;
|
|
|
|
[SerializeField]
|
|
private Vector3[] TasqueManagerWalkPositions;
|
|
|
|
[SerializeField]
|
|
private int TasqueWalkIndex;
|
|
|
|
[SerializeField]
|
|
private int TargetTasqueWalkIndex;
|
|
|
|
[SerializeField]
|
|
private int TasqueManagerWalkIndex;
|
|
|
|
[SerializeField]
|
|
private int TargetTasqueManagerWalkIndex;
|
|
|
|
[Header("Rudinn")]
|
|
[SerializeField]
|
|
private Vector3 RudinnWalkPositions;
|
|
|
|
[Header("-- Cutscene Chats --")]
|
|
[SerializeField]
|
|
private INT_Chat CutsceneChatter;
|
|
|
|
[SerializeField]
|
|
private CHATBOXTEXT[] CutsceneChats;
|
|
|
|
[Header("-- Cutscene Audio --")]
|
|
[SerializeField]
|
|
private AudioSource CutsceneSource;
|
|
|
|
[SerializeField]
|
|
private AudioClip[] CutsceneSounds;
|
|
|
|
[SerializeField]
|
|
private AudioClip MusicCastleTown;
|
|
|
|
[SerializeField]
|
|
private AudioClip MusicLancer;
|
|
|
|
private void Start()
|
|
{
|
|
Kris = PlayerManager.Instance;
|
|
Susie = PartyMemberSystem.Instance.HasMemberInParty(PartyMemberSystem.Instance.Default_SusieDarkworld).PartyMemberFollowSettings;
|
|
if (Susie == null)
|
|
{
|
|
MonoBehaviour.print("Susie Missing?");
|
|
}
|
|
Susie.FollowingEnabled = false;
|
|
Susie.transform.position = (Vector2)Kris.transform.position + Vector2.down * 2.5f;
|
|
CutsceneIndex = 1;
|
|
MusicManager.PlaySong(MusicCastleTown, FadePreviousSong: true, 1f);
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (CutsceneIndex != 0)
|
|
{
|
|
CutsceneUpdate();
|
|
Kris._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
DarkworldMenu.Instance.CanOpenMenu = false;
|
|
}
|
|
}
|
|
|
|
private void CutsceneUpdate()
|
|
{
|
|
switch (CutsceneIndex)
|
|
{
|
|
case 1:
|
|
if (KrisWalkIndex < TargetKrisWalkIndex)
|
|
{
|
|
if (Kris.transform.position != KrisWalkPositions[KrisWalkIndex])
|
|
{
|
|
Kris.transform.position = Vector2.MoveTowards(Kris.transform.position, KrisWalkPositions[KrisWalkIndex], 3f * Time.deltaTime);
|
|
Kris._PMove.AnimationOverriden = true;
|
|
Kris._PMove._anim.SetBool("MOVING", value: true);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 1f);
|
|
}
|
|
else
|
|
{
|
|
KrisWalkIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
IncrementCutsceneIndex();
|
|
MusicManager.PauseMusic();
|
|
JigsawJoe.gameObject.SetActive(value: true);
|
|
Rudinn_Dojo.flipX = false;
|
|
CutsceneSource.PlayOneShot(CutsceneSounds[0]);
|
|
}
|
|
if (SusieWalkIndex < TargetSusieWalkIndex)
|
|
{
|
|
if (Susie.transform.position != SusieWalkPositions[SusieWalkIndex])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[SusieWalkIndex], 3.1f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Walk");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
else
|
|
{
|
|
SusieWalkIndex++;
|
|
}
|
|
}
|
|
if (Kris.transform.position.y > PlayerCamera.transform.position.y)
|
|
{
|
|
PlayerCamera.FollowPlayerY = true;
|
|
}
|
|
break;
|
|
case 2:
|
|
{
|
|
Kris._PMove._anim.SetBool("MOVING", value: false);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 0f);
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(-1f, 0f));
|
|
Susie.SusieAnimator.Play("Idle");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(-1f, 0f));
|
|
Vector3 vector3 = new Vector3(-4f, PlayerCamera.transform.position.y, -10f);
|
|
if (PlayerCamera.transform.position != vector3)
|
|
{
|
|
PlayerCamera.transform.position = Vector2.MoveTowards(PlayerCamera.transform.position, vector3, 4f * Time.deltaTime);
|
|
break;
|
|
}
|
|
IncrementCutsceneIndex();
|
|
RunFreshChat(CutsceneChats[0], 0, ForcePosition: false, OnBottom: false);
|
|
break;
|
|
}
|
|
case 4:
|
|
JigsawJoe.Play("JJ_Dissapointed");
|
|
if (JJWalkIndex < JJWalkPositions.Length)
|
|
{
|
|
if (JigsawJoe.transform.position != JJWalkPositions[JJWalkIndex])
|
|
{
|
|
JigsawJoe.transform.position = Vector3.MoveTowards(JigsawJoe.transform.position, JJWalkPositions[JJWalkIndex], 8f * Time.deltaTime);
|
|
}
|
|
else
|
|
{
|
|
JJWalkIndex++;
|
|
}
|
|
}
|
|
if (!JJHasBegunDelay)
|
|
{
|
|
JJHasBegunDelay = true;
|
|
CutsceneSource.PlayOneShot(CutsceneSounds[3]);
|
|
StartCoroutine(JJWalkDelay());
|
|
}
|
|
if (JJWalkIndex == 2)
|
|
{
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(0f, -1f));
|
|
Susie.RotateSusieToDirection(new Vector2(0f, -1f));
|
|
}
|
|
break;
|
|
case 6:
|
|
{
|
|
Vector3 vector4 = new Vector3(Kris.transform.position.x, PlayerCamera.transform.position.y, -10f);
|
|
if (PlayerCamera.transform.position != vector4)
|
|
{
|
|
PlayerCamera.transform.position = Vector2.MoveTowards(PlayerCamera.transform.position, vector4, 4f * Time.deltaTime);
|
|
break;
|
|
}
|
|
MusicManager.ResumeMusic();
|
|
TargetKrisWalkIndex = 2;
|
|
TargetSusieWalkIndex = 2;
|
|
if (KrisWalkIndex < TargetKrisWalkIndex)
|
|
{
|
|
if (Kris.transform.position != KrisWalkPositions[KrisWalkIndex])
|
|
{
|
|
Kris.transform.position = Vector2.MoveTowards(Kris.transform.position, KrisWalkPositions[KrisWalkIndex], 3f * Time.deltaTime);
|
|
Kris._PMove.AnimationOverriden = true;
|
|
Kris._PMove._anim.SetBool("MOVING", value: true);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 1f);
|
|
}
|
|
else
|
|
{
|
|
KrisWalkIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
IncrementCutsceneIndex();
|
|
}
|
|
if (SusieWalkIndex < TargetSusieWalkIndex)
|
|
{
|
|
if (Susie.transform.position != SusieWalkPositions[SusieWalkIndex])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[SusieWalkIndex], 3.1f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Walk");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
else
|
|
{
|
|
SusieWalkIndex++;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case 7:
|
|
{
|
|
Kris._PMove._anim.SetBool("MOVING", value: false);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 0f);
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(1f, 0f));
|
|
Susie.SusieAnimator.Play("Idle");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(1f, 0f));
|
|
Vector3 vector6 = new Vector3(2f, PlayerCamera.transform.position.y, -10f);
|
|
if (PlayerCamera.transform.position != vector6)
|
|
{
|
|
PlayerCamera.transform.position = Vector2.MoveTowards(PlayerCamera.transform.position, vector6, 4f * Time.deltaTime);
|
|
break;
|
|
}
|
|
IncrementCutsceneIndex();
|
|
RunFreshChat(CutsceneChats[1], 0, ForcePosition: false, OnBottom: false);
|
|
break;
|
|
}
|
|
case 9:
|
|
{
|
|
Kris._PMove._anim.SetBool("MOVING", value: false);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 0f);
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(1f, 0f));
|
|
Susie.SusieAnimator.Play("Idle");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(1f, 0f));
|
|
PlayerCamera.FollowPlayerY = false;
|
|
PlayerCamera.FollowPlayerX = false;
|
|
Vector3 vector = new Vector3(2f, 18f, -10f);
|
|
if (PlayerCamera.transform.position != vector)
|
|
{
|
|
PlayerCamera.transform.position = Vector3.MoveTowards(PlayerCamera.transform.position, vector, 4f * Time.deltaTime);
|
|
break;
|
|
}
|
|
IncrementCutsceneIndex();
|
|
StartCoroutine(TasqueCutscene());
|
|
break;
|
|
}
|
|
case 11:
|
|
if (TasqueWalkIndex < TargetTasqueWalkIndex)
|
|
{
|
|
if (Tasque.transform.position != TasqueWalkPositions[TasqueWalkIndex])
|
|
{
|
|
Tasque.transform.position = Vector2.MoveTowards(Tasque.transform.position, TasqueWalkPositions[TasqueWalkIndex], 10f * Time.deltaTime);
|
|
Tasque.sprite = TasqueMoveSprite;
|
|
}
|
|
else
|
|
{
|
|
TasqueWalkIndex++;
|
|
}
|
|
}
|
|
if (TasqueManager.activeSelf && TasqueManagerWalkIndex < TargetTasqueManagerWalkIndex)
|
|
{
|
|
if (TasqueManager.transform.position != TasqueManagerWalkPositions[TasqueManagerWalkIndex])
|
|
{
|
|
TasqueManager.transform.position = Vector2.MoveTowards(TasqueManager.transform.position, TasqueManagerWalkPositions[TasqueManagerWalkIndex], 8f * Time.deltaTime);
|
|
}
|
|
else
|
|
{
|
|
TasqueManagerWalkIndex++;
|
|
}
|
|
}
|
|
break;
|
|
case 12:
|
|
TargetTasqueManagerWalkIndex = 2;
|
|
if (TasqueManager.activeSelf)
|
|
{
|
|
if (TasqueManagerWalkIndex < TargetTasqueManagerWalkIndex)
|
|
{
|
|
if (TasqueManager.transform.position != TasqueManagerWalkPositions[TasqueManagerWalkIndex])
|
|
{
|
|
TasqueManager.transform.position = Vector2.MoveTowards(TasqueManager.transform.position, TasqueManagerWalkPositions[TasqueManagerWalkIndex], 10f * Time.deltaTime);
|
|
}
|
|
else
|
|
{
|
|
TasqueManagerWalkIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
IncrementCutsceneIndex();
|
|
TasqueManager.SetActive(value: false);
|
|
}
|
|
}
|
|
if (TasqueWalkIndex < TargetTasqueWalkIndex)
|
|
{
|
|
if (Tasque.transform.position != TasqueWalkPositions[TasqueWalkIndex])
|
|
{
|
|
Tasque.transform.position = Vector2.MoveTowards(Tasque.transform.position, TasqueWalkPositions[TasqueWalkIndex], 8f * Time.deltaTime);
|
|
}
|
|
else
|
|
{
|
|
TasqueWalkIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Tasque.gameObject.SetActive(value: false);
|
|
}
|
|
break;
|
|
case 13:
|
|
{
|
|
Vector3 vector2 = new Vector3(Kris.transform.position.x, Kris.transform.position.y, -10f);
|
|
if (PlayerCamera.transform.position != vector2)
|
|
{
|
|
PlayerCamera.transform.position = Vector3.MoveTowards(PlayerCamera.transform.position, vector2, 6f * Time.deltaTime);
|
|
break;
|
|
}
|
|
PlayerCamera.FollowPlayerY = true;
|
|
RunFreshChat(CutsceneChats[3], 0, ForcePosition: false, OnBottom: false);
|
|
IncrementCutsceneIndex();
|
|
break;
|
|
}
|
|
case 15:
|
|
TargetKrisWalkIndex = 4;
|
|
TargetSusieWalkIndex = 4;
|
|
MusicManager.ResumeMusic();
|
|
if (KrisWalkIndex < TargetKrisWalkIndex)
|
|
{
|
|
if (Kris.transform.position != KrisWalkPositions[KrisWalkIndex])
|
|
{
|
|
Kris.transform.position = Vector2.MoveTowards(Kris.transform.position, KrisWalkPositions[KrisWalkIndex], 3f * Time.deltaTime);
|
|
Kris._PMove.AnimationOverriden = true;
|
|
Kris._PMove._anim.SetBool("MOVING", value: true);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 1f);
|
|
}
|
|
else
|
|
{
|
|
KrisWalkIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
IncrementCutsceneIndex();
|
|
RunFreshChat(CutsceneChats[4], 0, ForcePosition: true, OnBottom: true);
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
Kris._PMove._anim.SetBool("MOVING", value: false);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
Susie.SusieAnimator.Play("Idle");
|
|
}
|
|
if (SusieWalkIndex < TargetSusieWalkIndex)
|
|
{
|
|
if (Susie.transform.position != SusieWalkPositions[SusieWalkIndex])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[SusieWalkIndex], 3.1f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Walk");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
else
|
|
{
|
|
SusieWalkIndex++;
|
|
}
|
|
}
|
|
break;
|
|
case 16:
|
|
if (SusieWalkIndex < TargetSusieWalkIndex)
|
|
{
|
|
if (Susie.transform.position != SusieWalkPositions[SusieWalkIndex])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[SusieWalkIndex], 3.1f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Walk");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
else
|
|
{
|
|
SusieWalkIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
Susie.SusieAnimator.Play("Idle");
|
|
}
|
|
Werewire.position = Vector3.MoveTowards(Werewire.position, Werewire.position + Vector3.down * 40f, 10f * Time.deltaTime);
|
|
break;
|
|
case 17:
|
|
if (Rudinn_Lancer.transform.position != RudinnWalkPositions)
|
|
{
|
|
Rudinn_Lancer.transform.position = Vector3.MoveTowards(Rudinn_Lancer.transform.position, RudinnWalkPositions, 4f * Time.deltaTime);
|
|
}
|
|
else
|
|
{
|
|
IncrementCutsceneIndex();
|
|
Rudinn_Lancer.gameObject.SetActive(value: false);
|
|
RunFreshChat(CutsceneChats[5], 0, ForcePosition: true, OnBottom: true);
|
|
}
|
|
if (SusieWalkIndex < TargetSusieWalkIndex)
|
|
{
|
|
if (Susie.transform.position != SusieWalkPositions[SusieWalkIndex])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[SusieWalkIndex], 3.1f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Walk");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
else
|
|
{
|
|
SusieWalkIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
Susie.SusieAnimator.Play("Idle");
|
|
}
|
|
Werewire.position = Vector3.MoveTowards(Werewire.position, Werewire.position + Vector3.down * 40f, 10f * Time.deltaTime);
|
|
break;
|
|
case 19:
|
|
TargetSusieWalkIndex = 5;
|
|
if (SusieWalkIndex < TargetSusieWalkIndex)
|
|
{
|
|
if (Susie.transform.position != SusieWalkPositions[SusieWalkIndex])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[SusieWalkIndex], 6f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Idle");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", -1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
Lancer.Play("Lancer_Idle_Right");
|
|
}
|
|
else
|
|
{
|
|
SusieWalkIndex++;
|
|
}
|
|
}
|
|
if (Susie.transform.position == SusieWalkPositions[SusieWalkIndex])
|
|
{
|
|
IncrementCutsceneIndex();
|
|
StartCoroutine(LancerSusieHighFive());
|
|
}
|
|
Werewire.position = Vector3.MoveTowards(Werewire.position, Werewire.position + Vector3.down * 40f, 10f * Time.deltaTime);
|
|
break;
|
|
case 21:
|
|
IncrementCutsceneIndex();
|
|
StartCoroutine(RalseiChatDelay());
|
|
break;
|
|
case 23:
|
|
{
|
|
Vector3 vector5 = new Vector3(0f, Kris.transform.position.y + 4f, -10f);
|
|
PlayerCamera.FollowPlayerY = false;
|
|
PlayerCamera.FollowPlayerX = false;
|
|
if (PlayerCamera.transform.position != vector5)
|
|
{
|
|
PlayerCamera.transform.position = Vector3.MoveTowards(PlayerCamera.transform.position, vector5, 4f * Time.deltaTime);
|
|
}
|
|
if (Ralsei.transform.position != new Vector3(0f, 26.65f, 0f))
|
|
{
|
|
Ralsei.transform.position = Vector3.MoveTowards(Ralsei.transform.position, new Vector3(0f, 26.65f, 0f), 6f * Time.deltaTime);
|
|
Ralsei.Play("Walk");
|
|
Ralsei.SetFloat("VelocityX", 0f);
|
|
Ralsei.SetFloat("VelocityY", -1f);
|
|
Ralsei.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
else
|
|
{
|
|
Ralsei.Play("Idle");
|
|
Ralsei.SetFloat("VelocityX", 0f);
|
|
Ralsei.SetFloat("VelocityY", -1f);
|
|
Ralsei.SetFloat("VelocityMagnitude", 0f);
|
|
}
|
|
if (Susie.transform.position != SusieWalkPositions[6])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[6], 6f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Idle");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
}
|
|
if (Kris.transform.position != KrisWalkPositions[4])
|
|
{
|
|
Kris.transform.position = Vector2.MoveTowards(Kris.transform.position, KrisWalkPositions[4], 3f * Time.deltaTime);
|
|
Kris._PMove.AnimationOverriden = true;
|
|
Kris._PMove._anim.SetBool("MOVING", value: false);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 1f);
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
}
|
|
if (Kris.transform.position == KrisWalkPositions[4] && Susie.transform.position == SusieWalkPositions[6] && Ralsei.transform.position == new Vector3(0f, 26.65f, 0f) && PlayerCamera.transform.position == vector5)
|
|
{
|
|
IncrementCutsceneIndex();
|
|
StartCoroutine(RalseiWelcomeBackDelay());
|
|
RalseiAnim_Wave();
|
|
}
|
|
break;
|
|
}
|
|
case 25:
|
|
if (LevelTransition != null)
|
|
{
|
|
LevelTransition.BeginTransition();
|
|
LevelTransition = null;
|
|
}
|
|
if (Ralsei.transform.position != new Vector3(0f, 30f, 0f))
|
|
{
|
|
Ralsei.transform.position = Vector3.MoveTowards(Ralsei.transform.position, new Vector3(0f, 30f, 0f), 1f * Time.deltaTime);
|
|
Ralsei.Play("Walk");
|
|
Ralsei.SetFloat("VelocityX", 0f);
|
|
Ralsei.SetFloat("VelocityY", 1f);
|
|
Ralsei.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
else
|
|
{
|
|
Ralsei.Play("Idle");
|
|
Ralsei.SetFloat("VelocityX", 0f);
|
|
Ralsei.SetFloat("VelocityY", 1f);
|
|
Ralsei.SetFloat("VelocityMagnitude", 0f);
|
|
}
|
|
if (Susie.transform.position != SusieWalkPositions[7])
|
|
{
|
|
Susie.transform.position = Vector2.MoveTowards(Susie.transform.position, SusieWalkPositions[7], 1f * Time.deltaTime);
|
|
Susie.AnimationOverriden = true;
|
|
Susie.SusieAnimator.Play("Walk");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 1f);
|
|
}
|
|
if (Kris.transform.position != KrisWalkPositions[5])
|
|
{
|
|
Kris.transform.position = Vector2.MoveTowards(Kris.transform.position, KrisWalkPositions[5], 1f * Time.deltaTime);
|
|
Kris._PMove.AnimationOverriden = true;
|
|
Kris._PMove._anim.SetBool("MOVING", value: false);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTX", 0f);
|
|
Kris._PMove._anim.SetFloat("MOVEMENTY", 1f);
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
}
|
|
break;
|
|
case 3:
|
|
case 5:
|
|
case 8:
|
|
case 10:
|
|
case 14:
|
|
case 18:
|
|
case 20:
|
|
case 22:
|
|
case 24:
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void IncrementCutsceneIndex()
|
|
{
|
|
CutsceneIndex++;
|
|
}
|
|
|
|
private void RunFreshChat(CHATBOXTEXT text, int index, bool ForcePosition, bool OnBottom)
|
|
{
|
|
CutsceneChatter.FirstTextPlayed = false;
|
|
CutsceneChatter.CurrentIndex = index;
|
|
CutsceneChatter.FinishedText = false;
|
|
CutsceneChatter.Text = text;
|
|
if (ForcePosition)
|
|
{
|
|
CutsceneChatter.ManualTextboxPosition = true;
|
|
CutsceneChatter.OnBottom = OnBottom;
|
|
}
|
|
CutsceneChatter.RUN();
|
|
}
|
|
|
|
private IEnumerator JJWalkDelay()
|
|
{
|
|
yield return new WaitForSeconds(3f);
|
|
IncrementCutsceneIndex();
|
|
RunFreshChat(CutsceneChats[0], 1, ForcePosition: false, OnBottom: false);
|
|
}
|
|
|
|
private IEnumerator TasqueCutscene()
|
|
{
|
|
yield return new WaitForSeconds(0.5f);
|
|
CutsceneSource.PlayOneShot(CutsceneSounds[1]);
|
|
Cafe.sprite = Cafe_Open;
|
|
Tasque.gameObject.SetActive(value: true);
|
|
IncrementCutsceneIndex();
|
|
MusicManager.PauseMusic();
|
|
Kris._PMove.RotatePlayerAnim(new Vector2(0f, 1f));
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
yield return new WaitForSeconds(1f);
|
|
TasqueManager.SetActive(value: true);
|
|
yield return new WaitForSeconds(0.35f);
|
|
RunFreshChat(CutsceneChats[2], 0, ForcePosition: true, OnBottom: true);
|
|
}
|
|
|
|
private IEnumerator LancerSusieHighFive()
|
|
{
|
|
MusicManager.StopSong(Fade: true, 0.5f);
|
|
Susie.gameObject.SetActive(value: false);
|
|
Susie.transform.position = SusieWalkPositions[5];
|
|
Lancer.Play("Lancer_HighFive");
|
|
yield return new WaitForSeconds(1f / 3f);
|
|
CutsceneSource.PlayOneShot(CutsceneSounds[2]);
|
|
yield return new WaitForSeconds(1.3333334f);
|
|
CutsceneSource.PlayOneShot(CutsceneSounds[2]);
|
|
yield return new WaitForSeconds(7f / 12f);
|
|
CutsceneSource.PlayOneShot(CutsceneSounds[4]);
|
|
yield return new WaitForSeconds(0.75f);
|
|
CutsceneSource.PlayOneShot(CutsceneSounds[5]);
|
|
yield return new WaitForSeconds(2f);
|
|
Susie.gameObject.SetActive(value: true);
|
|
Susie.RotateSusieToDirection(new Vector2(0f, -1f));
|
|
Lancer.Play("Lancer_Idle_Right");
|
|
yield return new WaitForSeconds(0.5f);
|
|
Susie.RotateSusieToDirection(new Vector2(-1f, 0f));
|
|
RunFreshChat(CutsceneChats[6], 0, ForcePosition: true, OnBottom: true);
|
|
MusicManager.PlaySong(MusicLancer, FadePreviousSong: false, 1f);
|
|
}
|
|
|
|
private IEnumerator RalseiChatDelay()
|
|
{
|
|
MusicManager.StopSong(Fade: true, 0.5f);
|
|
yield return new WaitForSeconds(0.5f);
|
|
RunFreshChat(CutsceneChats[7], 0, ForcePosition: true, OnBottom: true);
|
|
LancerAnim_Idle_Up();
|
|
Susie.RotateSusieToDirection(new Vector2(0f, 1f));
|
|
}
|
|
|
|
private IEnumerator RalseiWelcomeBackDelay()
|
|
{
|
|
MusicManager.PlaySong(MusicCastleTown, FadePreviousSong: false, 1f);
|
|
yield return new WaitForSeconds(0.5f);
|
|
RunFreshChat(CutsceneChats[8], 0, ForcePosition: true, OnBottom: false);
|
|
}
|
|
|
|
public void LancerAnim_Idle_Down()
|
|
{
|
|
Lancer.Play("Lancer_Idle_Down");
|
|
}
|
|
|
|
public void LancerAnim_Idle_Right()
|
|
{
|
|
Lancer.Play("Lancer_Idle_Right");
|
|
}
|
|
|
|
public void LancerAnim_Idle_Up()
|
|
{
|
|
Lancer.Play("Lancer_Idle_Up");
|
|
}
|
|
|
|
public void LancerAnim_Concerned_Down()
|
|
{
|
|
Lancer.Play("Lancer_Concerned_Down");
|
|
}
|
|
|
|
public void LancerAnim_Concerned_Right()
|
|
{
|
|
Lancer.Play("Lancer_Concerned_Right");
|
|
}
|
|
|
|
public void RalseiAnim_Idle_Down()
|
|
{
|
|
Ralsei.Play("Idle");
|
|
Ralsei.SetFloat("VelocityX", 0f);
|
|
Ralsei.SetFloat("VelocityY", -1f);
|
|
Ralsei.SetFloat("VelocityMagnitude", 0f);
|
|
}
|
|
|
|
public void RalseiAnim_Idle_Right()
|
|
{
|
|
Ralsei.Play("Idle");
|
|
Ralsei.SetFloat("VelocityX", -1f);
|
|
Ralsei.SetFloat("VelocityY", 0f);
|
|
Ralsei.SetFloat("VelocityMagnitude", 0f);
|
|
}
|
|
|
|
public void RalseiAnim_Wave()
|
|
{
|
|
Ralsei.Play("Ralsei_Wave");
|
|
}
|
|
|
|
public void RalseiAnim_Laugh()
|
|
{
|
|
Ralsei.Play("Ralsei_Laugh");
|
|
}
|
|
|
|
public void RalseiAnim_Shock()
|
|
{
|
|
Ralsei.Play("Ralsei_Shock");
|
|
}
|
|
|
|
public void RalseiAnim_CrazyWalk()
|
|
{
|
|
Ralsei.Play("Ralsei_CrazyWalk");
|
|
}
|
|
|
|
public void RalseiAnim_Blush_Down()
|
|
{
|
|
Ralsei.Play("Ralsei_Blush_Down");
|
|
}
|
|
|
|
public void RalseiAnim_Sad_Down()
|
|
{
|
|
Ralsei.Play("Ralsei_Sad_Down");
|
|
}
|
|
|
|
public void RalseiAnim_Sad_Left()
|
|
{
|
|
Ralsei.Play("Ralsei_Sad_Left");
|
|
}
|
|
|
|
public void SusieAnim_Idle_Up()
|
|
{
|
|
Susie.SusieAnimator.Play("Idle");
|
|
Susie.SusieAnimator.SetFloat("VelocityX", 0f);
|
|
Susie.SusieAnimator.SetFloat("VelocityY", 1f);
|
|
Susie.SusieAnimator.SetFloat("VelocityMagnitude", 0f);
|
|
}
|
|
|
|
public void SusieAnim_Scratch()
|
|
{
|
|
Susie.SusieAnimator.Play("SusieDarkworld_Scratch");
|
|
}
|
|
|
|
public void SusieAnim_Proud_Right()
|
|
{
|
|
Susie.SusieAnimator.Play("SusieDarkworld_Proud_Right");
|
|
}
|
|
}
|