148 lines
5.2 KiB
C#
148 lines
5.2 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class EOTDRouxlsRoom_Puzzle : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private PushBlock_PreasurePlate[] PreasurePlates;
|
|
|
|
[SerializeField]
|
|
private int AmountRequired = 2;
|
|
|
|
[SerializeField]
|
|
private bool PuzzleComplete;
|
|
|
|
[SerializeField]
|
|
private bool ConfettiDrop;
|
|
|
|
public bool hasMovedPartyMembers;
|
|
|
|
[SerializeField]
|
|
private bool PlayerInputDisable;
|
|
|
|
[SerializeField]
|
|
private AudioClip CompleteSound;
|
|
|
|
[SerializeField]
|
|
private ParticleSystem ConfettiParticle;
|
|
|
|
[SerializeField]
|
|
private INT_Chat AngryRouxlsChat;
|
|
|
|
[SerializeField]
|
|
private HypothesisGoal RouxlsPuzzleGoal;
|
|
|
|
[SerializeField]
|
|
private Vector2 SusieMovePos;
|
|
|
|
[SerializeField]
|
|
private Vector2 RalseiMovePos;
|
|
|
|
private void Update()
|
|
{
|
|
if (!PuzzleComplete)
|
|
{
|
|
int num = 0;
|
|
PushBlock_PreasurePlate[] preasurePlates = PreasurePlates;
|
|
for (int i = 0; i < preasurePlates.Length; i++)
|
|
{
|
|
if (preasurePlates[i].Complete)
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
if (num == AmountRequired)
|
|
{
|
|
CompletePuzzle();
|
|
PuzzleComplete = true;
|
|
}
|
|
}
|
|
else if (PlayerInputDisable)
|
|
{
|
|
PlayerManager.Instance._PlayerState = PlayerManager.PlayerState.Cutscene;
|
|
DarkworldMenu.Instance.CanOpenMenu = false;
|
|
}
|
|
if (ConfettiDrop)
|
|
{
|
|
ConfettiParticle.transform.position = ConfettiParticle.transform.position + Vector3.down * 10f * Time.deltaTime;
|
|
}
|
|
}
|
|
|
|
private void CompletePuzzle()
|
|
{
|
|
PlayerManager.Instance.PlayerAudioSource.PlayOneShot(CompleteSound);
|
|
ConfettiParticle.Play();
|
|
PlayerInputDisable = true;
|
|
StartCoroutine(DelayUntilConfettiMove());
|
|
HypotheticalGoalManager.Instance.CompleteGoal(RouxlsPuzzleGoal);
|
|
}
|
|
|
|
private IEnumerator DelayUntilConfettiMove()
|
|
{
|
|
yield return new WaitForSeconds(3f);
|
|
AngryRouxlsChat.RUN();
|
|
ConfettiDrop = true;
|
|
while (ChatboxManager.Instance.ChatIsCurrentlyRunning)
|
|
{
|
|
yield return null;
|
|
}
|
|
yield return null;
|
|
PlayerManager.Instance._PlayerState = PlayerManager.PlayerState.Game;
|
|
DarkworldMenu.Instance.CanOpenMenu = true;
|
|
}
|
|
|
|
public void FUCKINGMOVE()
|
|
{
|
|
if (hasMovedPartyMembers)
|
|
{
|
|
return;
|
|
}
|
|
hasMovedPartyMembers = true;
|
|
foreach (ActivePartyMember activePartyMember in PartyMemberSystem.Instance.ActivePartyMembers)
|
|
{
|
|
activePartyMember.PartyMemberFollowSettings.FollowingEnabled = false;
|
|
activePartyMember.PartyMemberFollowSettings.currentState = Susie_Follower.MemberFollowerStates.Disabled;
|
|
activePartyMember.PartyMemberFollowSettings.RotateSusieToDirection(Vector2.right);
|
|
}
|
|
StartCoroutine(FUCKINGMOVE_TIMED());
|
|
}
|
|
|
|
public void okaysorrycomeback()
|
|
{
|
|
foreach (ActivePartyMember activePartyMember in PartyMemberSystem.Instance.ActivePartyMembers)
|
|
{
|
|
activePartyMember.PartyMemberFollowSettings.FollowingEnabled = true;
|
|
activePartyMember.PartyMemberFollowSettings.AnimationOverriden = false;
|
|
activePartyMember.PartyMemberFollowSettings.SusieAnimator.SetBool("InCutscene", value: false);
|
|
activePartyMember.PartyMemberFollowSettings.ClearAllMovementHistory();
|
|
activePartyMember.PartyMemberFollowSettings.currentState = Susie_Follower.MemberFollowerStates.SettingUpPosition;
|
|
}
|
|
}
|
|
|
|
private IEnumerator FUCKINGMOVE_TIMED()
|
|
{
|
|
ActivePartyMember susie = PartyMemberSystem.Instance.HasMemberInParty(PartyMemberSystem.Instance.Default_SusieDarkworld);
|
|
ActivePartyMember ralsei = PartyMemberSystem.Instance.HasMemberInParty(PartyMemberSystem.Instance.Default_Ralsei);
|
|
while ((Vector2)susie.PartyMemberTransform.position != SusieMovePos || (Vector2)ralsei.PartyMemberTransform.position != RalseiMovePos)
|
|
{
|
|
yield return null;
|
|
susie.PartyMemberTransform.position = Vector2.MoveTowards(susie.PartyMemberTransform.position, SusieMovePos, 6f * Time.deltaTime);
|
|
susie.PartyMemberFollowSettings.AnimationOverriden = true;
|
|
susie.PartyMemberFollowSettings.SusieAnimator.Play("Idle");
|
|
susie.PartyMemberFollowSettings.SusieAnimator.SetBool("InCutscene", value: true);
|
|
ralsei.PartyMemberTransform.position = Vector2.MoveTowards(ralsei.PartyMemberTransform.position, RalseiMovePos, 6f * Time.deltaTime);
|
|
ralsei.PartyMemberFollowSettings.AnimationOverriden = true;
|
|
ralsei.PartyMemberFollowSettings.SusieAnimator.Play("Idle");
|
|
ralsei.PartyMemberFollowSettings.SusieAnimator.SetBool("InCutscene", value: true);
|
|
}
|
|
}
|
|
|
|
public void EndCutscene()
|
|
{
|
|
PlayerInputDisable = false;
|
|
PlayerManager.Instance._PlayerState = PlayerManager.PlayerState.Game;
|
|
DarkworldMenu.Instance.CanOpenMenu = true;
|
|
okaysorrycomeback();
|
|
}
|
|
}
|