DRHPS/code-csharp/en_US/EOTDREWRITE_FountainRoom.cs
2025-04-08 11:31:35 +08:00

190 lines
6.5 KiB
C#

using System.Collections;
using UnityEngine;
public class EOTDREWRITE_FountainRoom : MonoBehaviour
{
public int CutsceneIndex;
[Header("-- Cutscene References --")]
[SerializeField]
private CameraManager PlayerCamera;
[Header("Characters")]
[SerializeField]
private PlayerManager Kris;
[SerializeField]
private Susie_Follower Susie;
[SerializeField]
private Susie_Follower Ralsei;
[Header("Character Positions")]
[SerializeField]
private Transform SusieStartPos;
[SerializeField]
private Transform RalseiStartPos;
[Header("UI")]
[SerializeField]
private GameObject CutsceneFade;
[Header("-- Cutscene Settings --")]
[SerializeField]
private AudioClip Music_Fountain;
[SerializeField]
private AudioClip Music_Friendship;
[SerializeField]
private CHATBOXTEXT[] CutsceneChats;
private void Start()
{
Kris = PlayerManager.Instance;
IncrementCutsceneIndex();
StartCoroutine(Cutscene());
}
private void Update()
{
if (CutsceneIndex > 0)
{
Kris._PlayerState = PlayerManager.PlayerState.Cutscene;
DarkworldMenu.Instance.CanOpenMenu = false;
}
}
public void IncrementCutsceneIndex()
{
CutsceneIndex++;
}
private IEnumerator Cutscene()
{
yield return null;
Susie = PartyMemberSystem.Instance.HasMemberInParty(PartyMemberSystem.Instance.Default_SusieDarkworld).PartyMemberFollowSettings;
Ralsei = PartyMemberSystem.Instance.HasMemberInParty(PartyMemberSystem.Instance.Default_Ralsei).PartyMemberFollowSettings;
Susie.transform.position = new Vector2(-8f, 0.092f);
Ralsei.transform.position = new Vector2(-8f, -2.5f);
if (Susie == null)
{
MonoBehaviour.print("Susie Missing?");
}
if (Ralsei == null)
{
MonoBehaviour.print("Ralsei Missing?");
}
Susie.transform.Find("Shadow").gameObject.SetActive(value: true);
Ralsei.transform.Find("Shadow").gameObject.SetActive(value: true);
if (PlayerPrefs.GetInt("EOTD_FinishedArgueCutscene", 0) == 0)
{
Susie.FollowingEnabled = false;
Ralsei.FollowingEnabled = false;
Susie.transform.position = SusieStartPos.position;
Ralsei.transform.position = RalseiStartPos.position;
Susie.RotateSusieToDirection(Vector2.right);
Ralsei.RotateSusieToDirection(Vector2.down);
PlayerManager.Instance._PMove.RotatePlayerAnim(Vector2.left);
CameraManager.instance.transform.position = new Vector3(Ralsei.transform.position.x, CameraManager.instance.transform.position.y, CameraManager.instance.transform.position.z);
CutsceneIndex = 1;
PlayerPrefs.SetInt("EOTD_FinishedArgueCutscene", 1);
MusicManager.PlaySong(Music_Fountain, FadePreviousSong: false, 0f);
yield return new WaitForSeconds(0.5f);
yield return new WaitForSeconds(0.5f);
CutsceneUtils.RunFreshChat(CutsceneChats[0], 0, ForcePosition: true, OnBottom: true);
DEBUG_EnableMarkiplier.ChangeMarkiplierState(DEBUG_EnableMarkiplier.MarkiplierEmotions.Shock);
while (CutsceneIndex != 2)
{
yield return null;
}
SusieIdle_Up();
KrisIdle_Up();
yield return new WaitForSeconds(1f);
UI_FADE.Instance.StartFadeOut(0.35f);
CutsceneFade.SetActive(value: false);
DEBUG_EnableMarkiplier.ChangeMarkiplierState(DEBUG_EnableMarkiplier.MarkiplierEmotions.Horror);
yield return new WaitForSeconds(2f);
CutsceneUtils.RunFreshChat(CutsceneChats[0], 1, ForcePosition: true, OnBottom: false);
while (CutsceneIndex != 3)
{
yield return null;
}
DEBUG_EnableMarkiplier.ChangeMarkiplierState(DEBUG_EnableMarkiplier.MarkiplierEmotions.Crying);
while (PlayerCamera.transform.position.x != Kris.transform.position.x)
{
yield return null;
Vector3 target = new Vector3(Kris.transform.position.x, PlayerCamera.transform.position.y, PlayerCamera.transform.position.z);
PlayerCamera.transform.position = Vector3.MoveTowards(PlayerCamera.transform.position, target, 3f * Time.deltaTime);
}
PlayerCamera.FollowPlayerX = true;
CutsceneIndex = 0;
Kris.ResetToGameState();
Susie.FollowingEnabled = true;
Ralsei.FollowingEnabled = true;
DarkworldMenu.Instance.CanOpenMenu = true;
PlayerPrefs.SetInt("EOTD_FinishedArgueCutscene", 1);
}
else
{
CutsceneFade.SetActive(value: false);
MusicManager.PlaySong(Music_Friendship, FadePreviousSong: false, 0f);
CutsceneIndex = 0;
PlayerCamera.FollowPlayerX = true;
CutsceneIndex = 0;
Kris.ResetToGameState();
Susie.FollowingEnabled = true;
Ralsei.FollowingEnabled = true;
DarkworldMenu.Instance.CanOpenMenu = true;
Kris.transform.position = new Vector2(-7.95f, -1.35f);
Susie.transform.position = Kris.transform.position;
Ralsei.transform.position = Kris.transform.position;
}
}
public void SusieIdle_Right()
{
Susie.SusieAnimator.Play("Idle");
Susie.RotateSusieToDirection(Vector2.right);
}
public void SusieIdle_Up()
{
Susie.SusieAnimator.Play("Idle");
Susie.RotateSusieToDirection(Vector2.up);
}
public void SusieConfident_Right()
{
Susie.SusieAnimator.Play("SusieDarkworld_Proud_Right");
}
public void RalseiIdle_Down()
{
Ralsei.SusieAnimator.Play("Idle");
Ralsei.RotateSusieToDirection(Vector2.down);
}
public void RalseiIdle_Up()
{
Ralsei.SusieAnimator.Play("Idle");
Ralsei.RotateSusieToDirection(Vector2.up);
}
public void RalseiIdleBlush_Down()
{
Ralsei.SusieAnimator.Play("Ralsei_Blush_Down");
}
public void KrisIdle_Up()
{
Kris._PMove.RotatePlayerAnim(Vector2.up);
}
public void KrisIdle_Left()
{
Kris._PMove.RotatePlayerAnim(Vector2.left);
}
}