void OnStart()
{
AddEntityCollideCallback("Book1", "Bookarea1", "Bookstart", false, 1);
AddEntityCollideCallback("Book2", "Bookarea2", "Bookstart", false, 1);
AddEntityCollideCallback("Book3", "Bookarea3", "Bookstart", false, 1);
SetLocalVarInt("BookVar", 0);
}
void Bookstart(string &in asParent, string &in asChild, int alState)
{
AddTimer("Puzzletimer", 30.0f, "RestartPuzzle");
if(asParent == "Book1")
{
AddLocalVarInt("BookAm", 1);
SetPropObjectStuckState("Book1", 1);
PlaySoundAtEntity("Book1Sound, "gameplay_tick", Book1, 0.0f, false);
GetPuzzleComplete();
}
if(asParent == "Book2")
{
AddLocalVarInt("BookAm", 1);
SetPropObjectStuckState("Book2", 1);
PlaySoundAtEntity("Book2Sound, "gameplay_tick", Book2, 0.0f, false);
GetPuzzleComplete();
}
if(asParent == "Book3")
{
AddLocalVarInt("BookAm", 1);
SetPropObjectStuckState("Book3", 1);
PlaySoundAtEntity("Book3Sound, "gameplay_tick", Book3, 0.0f, false);
GetPuzzleComplete();
}
}
void GetPuzzleComplete()
{
if(GetLocalVarInt("BookAm") == 3)
{
SetSwingDoorLocked("Librarydoor", false, true);
PlaySoundAtEntity("BooksDone", "lock_door", "Player", 0, false);
RemoveTimer("Puzzletimer");
}
}
void RestartPuzzle(string &in asTimer)
{
SetLocalVarInt("BookAm", 0);
SetPropObjectStuckState("Book1", -1);
SetPropObjectStuckState("Book2", -1);
SetPropObjectStuckState("Book3", -1);
RemoveTimer("Puzzletimer");
AddTimer("Restarttimer", 1.0f, "RestartPuzzle2");
}
void RestartPuzzle2(string &in asTimer)
{
SetPropObjectStuckState("Book1", 0);
SetPropObjectStuckState("Book2", 0);
SetPropObjectStuckState("Book3", 0);
RemoveTimer("Restarttimer");
}