void CollideSecretBook(string &in asParent, string &in asChild, int alState)
{
if(alState == 1) {
SetLocalVarInt("Var"+asParent, 1);
AddTimer(asParent, 20, "PushBackBook");
SetPropObjectStuckState(asParent, 1);
PlaySoundAtEntity("Sound"+asParent, "gameplay_tick", asParent, 0.0f, false);
StartScreenShake(0.001f, 0.5f, 0.5f, 0.5f);
PlayGuiSound("16_lever_stuck", 0.3f);
AddDebugMessage("Book in area: "+asParent, true);
}
else
{
SetLocalVarInt("Var"+asParent, 0);
RemoveTimer(asParent);
PlaySoundAtEntity("Sound2"+asParent, "lock_door", asParent, 1.5f, false);
PlayGuiSound("16_lever_stuck", 0.2f);
StopSound("Sound"+asParent, 1.0f);
AddDebugMessage("Book out of area: "+asParent, true);
}
if(GetLocalVarInt("VarSecretBook_1") == 1 && GetLocalVarInt("VarSecretBook_2") == 1 && GetLocalVarInt("VarSecretBook_3") == 1)
{
SetMoveObjectState("shelf_secret_door_1", 1);
SetPropObjectStuckState("SecretBook_*", -1);
SetEntityInteractionDisabled("SecretBook_*", true);
PlaySoundAtEntity("BooksDone", "lock_door", "Player", 0, false);
CreateParticleSystemAtEntity("dust", "ps_dust_falling_door_quick", "AreaDoorParticle", false);
for(int i=1;i<=3;i++){ RemoveTimer("SecretBook_"+i); StopSound("SoundSecretBook_"+i, 0.0f); }
GiveSanityBoostSmall();
PlayMusic("03_puzzle_secret.ogg", false, 0.7f, 0, 10, false);
CompleteQuest("03Books", "03Books");
AddDebugMessage("All books in position, move shelf!", true);
}
}
void PushBackBook(string &in asTimer)
{
SetPropObjectStuckState(asTimer, -1);
AddTimer("2"+asTimer, 0.25f, "PushBackBook02");
AddDebugMessage("Push back book: "+asTimer, true);
}
void PushBackBook02(string &in asTimer)
{
if(asTimer == "2SecretBook_1") SetPropObjectStuckState("SecretBook_1", 0);
else if(asTimer == "2SecretBook_2") SetPropObjectStuckState("SecretBook_2", 0);
else SetPropObjectStuckState("SecretBook_3", 0);
SetEntityPlayerInteractCallback("shelf_secret_door_1", "InteractMoveShelf", true);
}