603 lines
29 KiB
C#
603 lines
29 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using InfallibleCode;
|
|
|
|
public class GameManagerEarly : MonoBehaviour
|
|
{
|
|
|
|
public bool DoAction;
|
|
public bool RunCode;
|
|
|
|
private static GameManagerEarly _instance;
|
|
public static GameManagerEarly GetInstance() { return _instance; }
|
|
|
|
void Awake()
|
|
{
|
|
if (!_instance)
|
|
{
|
|
_instance = this;
|
|
}
|
|
}
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
StorylineStates();
|
|
|
|
#region Do Action Debbuging
|
|
if (DoAction)
|
|
{
|
|
print("DoAction = true");
|
|
}
|
|
else
|
|
{
|
|
print("DoAction = false");
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
public enum StorylineState
|
|
{
|
|
MainHouseStoryline,
|
|
LoopsToGhostReveal,
|
|
LampsSequence
|
|
}
|
|
|
|
public StorylineState storylineState = StorylineState.LoopsToGhostReveal;
|
|
|
|
public enum LoopsState
|
|
{
|
|
LoopedRoom0,
|
|
LoopedRoom1,
|
|
LoopedRoom2,
|
|
LoopedRoom3,
|
|
LoopedRoom4,
|
|
LoopedRoom5,
|
|
LoopedRoom6,
|
|
LoopedRoom7,
|
|
LoopedRoom8,
|
|
LoopedRoom9,
|
|
LoopedRoom10,
|
|
LoopedRoom11,
|
|
LoopedRoom12,
|
|
LoopedRoom13,
|
|
LoopedRoom14,
|
|
LoopedRoom15,
|
|
LoopedRoom16,
|
|
LoopedRoom17,
|
|
LoopedRoom18
|
|
}
|
|
|
|
public LoopsState loopsState = LoopsState.LoopedRoom0;
|
|
|
|
public void StorylineStates()
|
|
{
|
|
switch (storylineState)
|
|
{
|
|
case StorylineState.LoopsToGhostReveal:
|
|
|
|
LoopsStates();
|
|
|
|
break;
|
|
|
|
case StorylineState.LampsSequence:
|
|
//LampsSequence
|
|
break;
|
|
case StorylineState.MainHouseStoryline:
|
|
|
|
// MainHouseGameManager.GetInstance().Story();
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void LoopsStates()
|
|
{
|
|
switch (loopsState)
|
|
{
|
|
case LoopsState.LoopedRoom0:
|
|
#region OLD IMPLEMENTATION
|
|
//if (RunCode)
|
|
//{
|
|
// #region DEEEEEELEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEETEEEEEEEEEEEE!!!!!!!!!!!!!!!
|
|
// //DoorsManager.GetInstance().OpenDoorTEST(DoorsManager.GetInstance().manageDoorsInHouse, 0, 0, 0.5f);
|
|
// #endregion
|
|
|
|
// #region Manage Doors
|
|
// //DoorsManager.GetInstance().LockDoor(0/*Loop0*/, 0/*Door0*/); // this is an example
|
|
// #endregion
|
|
// RunCode = false;
|
|
//}
|
|
//else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 1)
|
|
//{
|
|
// loopsState = LoopsState.LoopedRoom1;
|
|
// RunCode = true;
|
|
//}
|
|
#endregion
|
|
break;
|
|
case LoopsState.LoopedRoom1:
|
|
#region OLD IMPLEMENTATION
|
|
//if (RunCode)
|
|
//{
|
|
// #region Manage Doors
|
|
// DoorsManager.GetInstance().LockDoor(1/*Loop1*/, 0/*Door0*/); // this is an example
|
|
// #endregion
|
|
// RunCode = false;
|
|
//}
|
|
//else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 2)
|
|
//{
|
|
// loopsState = LoopsState.LoopedRoom2;
|
|
// RunCode = true;
|
|
//}
|
|
#endregion
|
|
break;
|
|
|
|
case LoopsState.LoopedRoom2:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(2/*Loop2*/, 0/*Door0*/); // this is an example
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 3)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom3;
|
|
RunCode = true;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom3:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(3/*Loop3*/, 0/*Door0*/); // this is an example
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 4)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom4;
|
|
RunCode = true;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom4:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(4/*Loop4*/, 0/*Door0*/); // this is an example
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 5)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom5;
|
|
RunCode = true;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom5:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(5/*Loop5*/, 0/*Door0*/); // this is an example
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 6)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom6;
|
|
RunCode = true;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom6:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(6/*Loop6*/, 0/*Door0*/); //Locks Firt loop door.
|
|
DoorsManager.GetInstance().LockDoor(6, 5); //locks door (5) *DefinedPath*
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 7)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom7;
|
|
RunCode = true;
|
|
}
|
|
#region Windows Managment
|
|
if (!WindowsManager.GetInstance().WindowIsOpen(6, 0)) //If window is closed:
|
|
{
|
|
DoorsManager.GetInstance().UnlockDoor(6, 5); //unlocks door (5) *DefinedPath*
|
|
#region Implement When window script is corrected
|
|
//IN ORDER FOR PLAYER TO NOT BE ABLE TO OPEN THE WINDOWS AGAIN:
|
|
WindowsManager.GetInstance().LockWindow(6, 0);
|
|
#endregion
|
|
}
|
|
#endregion
|
|
break;
|
|
case LoopsState.LoopedRoom7:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(7/*Loop7*/, 0/*Door0*/); //Locks Firt loop door.
|
|
DoorsManager.GetInstance().LockDoor(7, 5); //locks door (5) *DefinedPath*
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 8)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom8;
|
|
RunCode = true;
|
|
}
|
|
#region Windows Managment
|
|
if (!WindowsManager.GetInstance().WindowIsOpen(7,0) && !WindowsManager.GetInstance().WindowIsOpen(7, 1) && !WindowsManager.GetInstance().WindowIsOpen(7, 2))
|
|
{
|
|
DoorsManager.GetInstance().UnlockDoor(7, 5); //unlocks door (5) *DefinedPath*
|
|
#region Implement When window script is corrected
|
|
//IN ORDER FOR PLAYER TO NOT BE ABLE TO OPEN THE WINDOWS AGAIN:
|
|
WindowsManager.GetInstance().LockWindow(7, 0);
|
|
WindowsManager.GetInstance().LockWindow(7, 1);
|
|
WindowsManager.GetInstance().LockWindow(7, 2);
|
|
#endregion
|
|
}
|
|
//else //If windows are open:
|
|
//{
|
|
// DoorsManager.GetInstance().LockDoor(7, 5); //locks door (5) *DefinedPath*
|
|
//}
|
|
#endregion
|
|
break;
|
|
case LoopsState.LoopedRoom8:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(8/*Loop8*/, 0/*Door0*/); //Locks Firt loop door.
|
|
//-> It's already closed from inspector-> //DoorsManager.GetInstance().LockDoor(8, 5); //locks door (5) *DefinedPath*
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 9)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom9;
|
|
LoopsManager.GetInstance().loopedRoom[0].LoadNextRoom = false; //Do not load next room.
|
|
RunCode = true;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom9:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(9/*Loop9*/, 0/*Door0*/); //Locks Firt loop door.
|
|
DoorsManager.GetInstance().LockDoor(9, 5); //locks door (5) *DefinedPath*
|
|
DoorsManager.GetInstance().UnlockDoor(9, 6); //locks door (6) *Bedroom*
|
|
#endregion
|
|
DoAction = true; //Sets true to perform the event;
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 10)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom10;
|
|
LoopsManager.GetInstance().loopedRoom[0].UpdateTeleportPOS = false; //Do not teleport the current room.
|
|
RunCode = true;
|
|
}
|
|
if (!WindowsManager.GetInstance().WindowIsOpen(9, 3) && DoAction) //If window is closed:
|
|
{
|
|
WindowsManager.GetInstance().LockWindow(9, 3);
|
|
DoorsManager.GetInstance().LockDoor(9, 3); //locks door (3) *Bedroom hall*
|
|
DoorsManager.GetInstance().CloseDoor(9, 3, 0.5f); //Closes door (3) *bedroom hall* in loop 9.
|
|
//DoAction
|
|
#region Event Trigger
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger LoopedRoom (9) (Bedroom)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
DoAction = false; //Sets false to stop the event from running every frame.
|
|
#endregion
|
|
//Set active pentagram.
|
|
//Set false piano in room.
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom10:
|
|
if (RunCode)
|
|
{
|
|
//DoAction = true; //Sets true to perform the event;
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 11)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom11;
|
|
LoopsManager.GetInstance().loopedRoom[0].LoadNextRoom = true; //Load next room.
|
|
RunCode = true;
|
|
}
|
|
if (DoAction) //DoAction will be enabled when player closes the cap.
|
|
{
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger LoopedRoom (10) (Bedroom)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
//Event trigger Sets active the mannequin with the knife.
|
|
//Makes the light in the bedroom hall flickering.
|
|
//Unlocks Door in current bedroom loop.
|
|
|
|
//Unlocks Door in bedroom hall.
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().UnlockDoor(10/*Loop 10*/, 0/*Door 0*/); //Unlocks door (0) *Hall door Bedroom*
|
|
#endregion
|
|
DoAction = false;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom11:
|
|
//Epanefere:
|
|
if (RunCode)
|
|
{
|
|
WindowsManager.GetInstance().UnlockWindow(11/*Loop 11*/, 0/*window 0 Bedroom*/);
|
|
WindowsManager.GetInstance().OpenWindow(11, 0, 0.5f);
|
|
|
|
DoAction = true; //Sets true to perform the event;
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 12)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom12;
|
|
LoopsManager.GetInstance().loopedRoom[0].UpdateTeleportPOS = false; //Do not teleport the current room.
|
|
RunCode = true;
|
|
}
|
|
if (!WindowsManager.GetInstance().WindowIsOpen(11/*Loop 11*/, 0/*window 0 Bedroom*/) && DoAction && !EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom11_afterPianoCap) //If window is closed:
|
|
{
|
|
WindowsManager.GetInstance().LockWindow(11/*Loop 11*/, 0/*window 0 Bedroom*/);
|
|
//DoAction
|
|
#region Event Trigger
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger LoopedRoom (11) (Bedroom)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
DoAction = false; //Sets false to stop the event from running every frame.
|
|
#endregion
|
|
//Sets active piano.
|
|
//Piano starts playing audio clip.
|
|
//Sets active candles in piano.
|
|
//Teleports rocking chair to new position right next to the piano.
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom11_afterPianoCap = true;
|
|
}
|
|
if(EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom11_afterPianoCap && DoAction)
|
|
{
|
|
//DoAction
|
|
#region Event Trigger
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger LoopedRoom (11) (Bedroom) (PianoCloseCap)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
DoAction = false; //Sets false to stop the event from running every frame.
|
|
#endregion
|
|
//Stops the sound of the piano.
|
|
//Unlocks Door in bedroom in order for the player to leave.
|
|
//Teleports the loop trigger.
|
|
//Sets active the mannequin.
|
|
Debug.Log("Piano cap Closed");
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom12:
|
|
if (RunCode)
|
|
{
|
|
LoopsManager.GetInstance().loopedRoom[0].UpdateTeleportPOS = true; //teleport the rooms again.
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 13)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom13;
|
|
RunCode = true;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom13:
|
|
if (RunCode)
|
|
{
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 14)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom14;
|
|
RunCode = true;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom14:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(14/*Loop13*/, 0/*Door0*/); //Locks Firt loop door.
|
|
DoorsManager.GetInstance().LockDoor(14, 5); //locks door (5) *DefinedPath*
|
|
#endregion
|
|
DoAction = true; //Sets true to perform the event;
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 15)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom15;
|
|
RunCode = true;
|
|
}
|
|
if (DoorsManager.GetInstance().CanOpenDoor(14, 2) && DoAction && !EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom14_afterCollectedKeyFromBathroom)//If player can open door && DoAction is set to true:
|
|
{
|
|
//Fore Stop sound.
|
|
GameObject.Find("DoorKnockingSoundEffect").GetComponent<AudioSource>().Stop();
|
|
GameObject.Find("StopMultipleSounds LoopedRoom14").GetComponent<StopMultipleSounds>().StopMultipleSoundsNow();
|
|
Debug.Log("Stop door knocking sound");
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom14_afterCollectedKeyFromBathroom = true;
|
|
DoAction = false;
|
|
}
|
|
if (DoAction && EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom14_afterCollectedKeyFromBathroom)
|
|
{
|
|
#region Event Trigger
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger(Bathroom Loop 14)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom14_afterCollectedKeyFromBathroom = false;
|
|
#endregion
|
|
DoorsManager.GetInstance().OpenDoor(14, 5, 0.5f); //Opens door *DefinedPath*.
|
|
DoorsManager.GetInstance().UnlockDoor(14, 5); //Unlocks door *DefinedPath*.
|
|
DoAction = false;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom15:
|
|
if (RunCode)
|
|
{
|
|
#region Event Trigger
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger (Enable Bedroom Loop15)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 16)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom16;
|
|
RunCode = true;
|
|
}
|
|
if (!EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom15_afterMannequinJumpscare && DoAction) //If jump scare has not happened yet and Do action is set to true(Do action is set to true from the Spaw_Or_Animation_Trigger)
|
|
{
|
|
//DoAction
|
|
#region Event Trigger
|
|
DoorsManager.GetInstance().UnlockDoor(15, 3); //Unlocks door (3) *bedroom hall * in loop 15.
|
|
DoorsManager.GetInstance().OpenDoor(15, 3, 0.5f); //Opens door (3) *bedroom hall* in loop 15.
|
|
DoorsManager.GetInstance().UnlockDoor(15, 6); //Unlocks door (6) *bedroom * in loop 15.
|
|
GameObject.Find("PlaySound (Piano Loop 15)").GetComponent<PlaySound>().PlayThisSoundLooped(); //Piano starts playing.
|
|
GameObject.Find("StopMultipleSoundTrigger (Loop 15)").GetComponent<StopMultipleSounds>().StopMultipleSoundsNow(); //Stops the sounds from the bathroom.
|
|
DoAction = false; //Sets false to stop the event from running every frame.
|
|
#endregion
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom15_afterMannequinJumpscare = true;
|
|
}
|
|
if (!EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom15_afterPianoCap && DoAction) //If jump scare has not happened yet and Do action is set to true(Do action is set to true from the Spaw_Or_Animation_Trigger)
|
|
{
|
|
//DoAction
|
|
#region Event Trigger
|
|
WindowsManager.GetInstance().UnlockWindow(15, 3); //Bedroom window Unlock.
|
|
WindowsManager.GetInstance().OpenWindow(15, 3, 0.5f); //Bedroom window Open.
|
|
DoorsManager.GetInstance().CloseDoor(15, 3, 0.5f); //Closes door in the bedroom hall that leads to the loop room 15. (Door belongs to loopedRoom15)
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger LoopedRoom (15) (Bedroom) (PianoCloseCap)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
print("Piano cap closed.");
|
|
#endregion
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom15_afterPianoCap = true;
|
|
}
|
|
if (!WindowsManager.GetInstance().WindowIsOpen(15, 3)/* && EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom15_afterPianoCap*/ && DoAction) //If window 4 *Bedroom* in loop 15 is open:
|
|
{
|
|
#region Event Trigger
|
|
WindowsManager.GetInstance().LockWindow(15, 3); //Loop 15 window 4 *Bedroom*.
|
|
DoorsManager.GetInstance().OpenDoor(15, 5, 0.5f); //Opens door for the basement.
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger LoopedRoom (15) (Bedroom) (WindowClose)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
print(":))))))))))Window is closed in room 15!");
|
|
DoAction = false; //Sets false to stop the event from running every frame.
|
|
#endregion
|
|
//Enables pentagram.
|
|
//Open window.
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom16:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(16/*Loop13*/, 0/*Door0*/); //Locks Firt loop door.
|
|
DoorsManager.GetInstance().LockDoor(16, 5); //locks door (5) *DefinedPath*
|
|
#endregion
|
|
#region Event Trigger (Enable bathroom)
|
|
//Find me the bathroom loop 16 and enable it:
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger (Enable Bathroom Loop16)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
#endregion
|
|
RunCode = false;
|
|
DoAction = true;
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterPickedUpKeyInMainHall = true;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 17)
|
|
{
|
|
loopsState = LoopsState.LoopedRoom17;
|
|
RunCode = true;
|
|
}
|
|
if (DoorsManager.GetInstance().CanOpenDoor(16, 2) && DoAction && EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterPickedUpKeyInMainHall && !EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterPickedUpDrawingInBathroom)
|
|
{
|
|
GameObject.Find("DoorKnockingSoundEffect").GetComponent<AudioSource>().Stop();
|
|
GameObject.Find("StopMultipleSounds LoopedRoom16").GetComponent<StopMultipleSounds>().StopMultipleSoundsNow();
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterPickedUpKeyInMainHall = false;
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterPickedUpDrawingInBathroom = true;
|
|
DoAction = false;
|
|
}
|
|
if (DoAction && EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterPickedUpDrawingInBathroom) //It becomes true when player is no longer examining the bathroom child's drawing.
|
|
{
|
|
#region Event Trigger
|
|
GameObject eventTriggerGO = GameObject.Find("BathroomChildsDrawing (Loop 16)");
|
|
CutscenesManager.GetInstance().PlayCutscene(CutscenesManager.GetInstance().MedeaKillingBabyCutscene);
|
|
print("Medea bathroom cutscene started playing");
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterPickedUpDrawingInBathroom = false;
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterCollectedKeyFromBathroom = true;
|
|
DoAction = false; //Sets false to stop the event from running every frame.
|
|
#endregion
|
|
}
|
|
if(DoAction && EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterCollectedKeyFromBathroom)
|
|
{
|
|
print("Loop 16, Door in bathroom unlocked & opened after key collected.");
|
|
DoorsManager.GetInstance().UnlockDoor(16, 2); //Unlock bathroom door in Loop 16.
|
|
DoorsManager.GetInstance().OpenDoor(16, 2, 0.5f); //Opend bathroom door in loop 16.
|
|
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterCollectedKeyFromBathroom = false;
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterAllLightsInBasementAreBroken = true;
|
|
DoAction = false;
|
|
//#region EventTrigger
|
|
//#endregion
|
|
}
|
|
if (DoAction && EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterAllLightsInBasementAreBroken && !EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterCollectedKeyFromBathroom)
|
|
{
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger (Loop 16 DefinedPath)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
print("All lambs are broken and mannequins, red lights are enabled");
|
|
EventTriggerManager.GetInstance().DoEventTriggerLoopedRoom16_afterAllLightsInBasementAreBroken = false;
|
|
DoAction = false;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom17:
|
|
if (RunCode)
|
|
{
|
|
DoAction = false;
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(17/*Loop13*/, 0/*Door0*/); //Locks Firt loop door.
|
|
DoorsManager.GetInstance().LockDoor(17, 5); //locks door (5) *DefinedPath*
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 18)
|
|
{
|
|
//LoopsManager.GetInstance().loopedRoom[0].LoadNextRoom = false; //Do not Load next room.
|
|
//if (LoopsManager.GetInstance().loopedRoom[0].LoadNextRoom == false)
|
|
//{
|
|
loopsState = LoopsState.LoopedRoom18;
|
|
RunCode = true;
|
|
//}
|
|
}
|
|
if (DoAction) //When player get's the key from the child's bedroom hallway.
|
|
{
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger (Loop 17)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
DoAction = false;
|
|
}
|
|
break;
|
|
case LoopsState.LoopedRoom18:
|
|
if (RunCode)
|
|
{
|
|
#region Manage Doors
|
|
DoorsManager.GetInstance().LockDoor(18/*Loop13*/, 0/*Door0*/); //Locks Firt loop door.
|
|
//DoorsManager.GetInstance().LockDoor(18, 5); //locks door (5) *DefinedPath*
|
|
#endregion
|
|
RunCode = false;
|
|
}
|
|
//else if (LoopsManager.GetInstance().loopedRoom[0].CurrentRoomLoopID == 19) //There is no loop 19!
|
|
//{
|
|
// //loopsState = LoopsState.LoopedRoom19;
|
|
// RunCode = true;
|
|
//}
|
|
if (DoAction) //Do action is true when player gets the drawing from the child's bedroom.
|
|
{
|
|
DoorsManager.GetInstance().OpenDoor(18/*Loop18*/, 1/*Door1*/,0.5f);
|
|
GameObject loopTrigger = GameObject.Find("LoopTrigger");
|
|
loopTrigger.gameObject.SetActive(false);
|
|
print("Got drawing (Bye mom)");
|
|
GameObject eventTriggerGO = GameObject.Find("EventTrigger (AfterDrawing Loop 18)");
|
|
eventTriggerGO.GetComponent<EventTrigger>().Invoke();
|
|
DoAction = false;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|