// Run first time starting map
void OnStart()
{
AddEntityCollideCallback("Player", "SoundArea_1", "Sound_1", true, 1);
AddEntityCollideCallback("Player", "fallarea", "fall", true, 1);
AddEntityCollideCallback("Player", "SoundArea_2", "Sound_2", true, 1);
AddEntityCollideCallback("Player", "SoundArea_3", "Sound_3", true, 1);
AddEntityCollideCallback("Player", "SoundArea_4", "Sound_4", true, 1);
AddEntityCollideCallback("Player", "SoundArea_5", "Sound_5", true, 1);
AddEntityCollideCallback("Player", "SoundArea_6", "Sound_5", true, 1);
AddEntityCollideCallback("Player", "SoundArea_7", "Sound_5", true, 1);
AddEntityCollideCallback("Handle", "AreaConnect", "AttachLever", true, 1);
AddEntityCollideCallback("Player", "AreaCollide", "EventCollide", true, 1);
AddUseItemCallback("", "Key", "Door", "UsedKeyonDoor", true);
}
void fall(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("2", true);
SetEntityActive("3", true);
SetEntityActive("4", true);
SetEntityActive("5", true);
SetEntityActive("6", true);
}
void Sound_1(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "24_rock.snt", "Player", 0, false);
}
void UsedKeyonDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("Door", false,true);
PlaySoundAtEntity("", "unlock_door", "Door", 0, false);
RemoveItem("Key");
}
void Sound_2(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "24_iron_maiden.snt", "Player", 0, false);
}
void Sound_3(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "react_breath.snt", "Player", 0, false);
}
void Sound_4(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "react_breath.snt", "Player", 0, false);
}
void Sound_5(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "24_mb_04.snt", "Player", 0, false);
}
void Sound_6(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "18_blow_wind.snt", "Player", 0, false);
}
void Sound_7(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "guardian_idle.snt", "Player", 0, false);
}
void EventCollide(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("Grunt", true);
AddEnemyPatrolNode("Grunt", "Node_1", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_2", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_3", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_4", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_5", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_6", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_7", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_8", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_9", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_10", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_11", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_12", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_13", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_14", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_15", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_16", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_17", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_18", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_19", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_20", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_21", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_22", 0.001f, "");
AddEnemyPatrolNode("Grunt", "Node_23", 0.001f, "");
}
void AttachLever(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("Lever", true);
PlaySoundAtEntity("", "pickaxe_charge.snt", "Lever", 0, false);
SetEntityActive(asParent, false);
SetEntityActive("Mount", false);
}
void UnlockDoor(string &in asEntity, int LeverState)
{
if(LeverState == 1) {
SetSwingDoorLocked("Door", false, true);
PlaySoundAtEntity("", "unlock_door.snt", "Door", 0, false);
SetLeverStuckState(asEntity, LeverState, true);
}
}
void Puzzle(string &in asEntity, int LeverState)
{
if(GetLeverState("Lever1") == -1
&& GetLeverState("Lever2") == 1)
{
SetPropHealth("Door", 0);
SetLeverStuckState("Lever1", -1, true);
SetLeverStuckState("Lever2", 1, true);
}
}