////////////////////////////
// Run first time starting map
void OnStart()
//The key "Hall2" is needed to unlock the room called "Hall2" and plays the unlock_door sound.
{
AddEntityCollideCallback("Player", "door_open_hall_key", "Doorslam1", true, 1);
SetEntityPlayerInteractCallback("keyhall2", "monsterspawn", true);
SetEntityPlayerInteractCallback("key_prison", "monsterspawn2", true);
AddUseItemCallback("", "keyhall2", "room_hall2", "UsedKeyOnDoor", true);
AddUseItemCallback("", "key_office", "room_office", "UsedKeyOnDoor2", true);
AddUseItemCallback("", "key_prison", "door_prison", "UsedKeyOnDoor3", true);
AddUseItemCallback("", "key_prison", "door_prison", "SanityWhenPickPrisonKey", true);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("room_hall2", false, true);
PlaySoundAtEntity("", "unlock_door", "room_hall2", 0, false);
RemoveItem("keyhall2");
}
void UsedKeyOnDoor2(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("room_office", false, true);
PlaySoundAtEntity("", "unlock_door", "room_office", 0, false);
RemoveItem("key_office");
}
void UsedKeyOnDoor3(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("door_prison", false, true);
PlaySoundAtEntity("", "unlock_door", "door_prison", 0, false);
RemoveItem("key_prison");
}
void TriggerSanityDamageLook(string &in asEntity, int alState)
{
PlaySoundAtEntity("", "react_scare.snt", "Player", 0, false);
GiveSanityDamage(60.0f, true);
PlayMusic("05_event_steps.ogg", false, 80, 0, 10, false);
SetMessage("Inventory","SH*T!",0);
}
void monsterspawn(string &in asEntity)
{
SetEntityActive("monster_key_keeper1", true);
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_1", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_2", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_3", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_4", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_5", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_6", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_7", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_8", 0.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_9", 1.0f, "");
AddEnemyPatrolNode("monster_key_keeper1", "PosNodeArea_10", 1.0f, "");
}
void monsterspawn2(string &in asEntity)
{
PlayMusic("05_event_steps.ogg", false, 80, 0, 10, false);
PlaySoundAtEntity("", "react_scare.snt", "Player", 0, false);
SetEntityActive("EnemyGruntHall", true);
}
void SanityWhenPickPrisonKey(string &in asEntity, int alState)
{
PlaySoundAtEntity("", "react_scare.snt", "Player", 0, false);
GiveSanityDamage(60.0f, true);
PlayMusic("05_event_steps.ogg", false, 80, 0, 10, false);
SetMessage("Inventory","SH*T!",0);
}
void Doorslam1(string &in asParent, string &in asChild, int alState)
{
StartPlayerLookAt("door_to_hall_key", 10, 50, "");
AddTimer("", 0.5f, "TimerSlamDoor");
SetEntityActive("ParticleSystem_1" , true);
}
void TimerSlamDoor(string &in asTimer)
{
SetSwingDoorClosed("door_to_hall_key", true, true);
GiveSanityDamage(4.0f, true);
PlaySoundAtEntity("", "react_breath_slow.snt", "Player", 0, false);
AddTimer("", 2.0f, "TimerStopLook");
}
void TimerStopLook(string &in asTimer)
{
StopPlayerLookAt();
}
////////////////////////////
// Run when entering map
void OnEnter()
{
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}