void OnStart()
{
TeleportPlayer("PlayerStartArea_1");
CompleteQuest("Academy", "FindAcademy");
AddCombineCallback("ladder", "ladder1", "ladder2", "CombineLadder", false);
AddCombineCallback("ladder", "ladder1", "ladder3", "CombineLadder", false);
AddCombineCallback("ladder", "ladder3", "ladder2", "CombineLadder", false);
SetGlobalVarInt("LadVar", 0);
//GiveItem("Key2", "chemical_container_full.ent", "pick", "chemical_container_full.tga", 1);
SetEntityPlayerInteractCallback("KainamKey", "Dialogue", true);
SetEntityPlayerInteractCallback("PurpleOrb", "Dialogue2", true);
////////////////////////////Item interactions
AddUseItemCallback("kiki", "crowbar2", "padlock", "UnbreakableMessage", false);
AddUseItemCallback("koko", "crowbar2", "padlock_acid", "BreakPadlock", false);
AddUseItemCallback("acidididi", "Jar", "FillAcidJar", "FillJar", false);
AddUseItemCallback("kaka", "acid", "padlock", "Melt", false);
AddUseItemCallback("hgh", "ladder_complete", "Penis", "InsertLadder", false);
//doors
AddUseItemCallback("", "StorageKey", "Storage", "OpenDoor", false);
AddUseItemCallback("", "LabKey", "LabDoor", "OpenDoor", false);
AddUseItemCallback("", "StudyKey", "mansion_12", "OpenDoor", false);
AddUseItemCallback("", "item", "door", "OpenDoor", false);
AddUseItemCallback("", "Key2", "mansion_1", "PickLock", false);
AddUseItemCallback("", "Key2", "mansion_2", "PickLock", false);
AddUseItemCallback("", "Key2", "mansion_3", "PickLock", false);
AddUseItemCallback("", "Key2", "FancyDoor_12", "PickLock", false);
AddUseItemCallback("", "Key2", "padlock", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "padlock_acid", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "Storage", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "LabDoor", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "mansion_12", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "FancyDoor_4", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "FancyDoor_11", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "mansion_5", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "mansion_6", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "castle_1", "LockPickMessage", false);
AddUseItemCallback("", "Key2", "castle_2", "LockPickMessage", false);
//end doors
/////////////////////////////
if(HasItem("crowbar2") == false)
{
SetEntityActive("crowbar2", true);
}
AddTimer("wegorz", 0.1f, "ShowEasterEggCount");
}
void LockPickMessage(string &in asItem, string &in asEntity)
{
SetMessage("Messages", "Locked4", 3);
}
void OnLeave()
{
StopMusic(1.0f, 1);
StopMusic(1.0f, 2);
SetupLoadScreen("LoadingScreens", "LoadScreen12", 0, "");
}
void ShowEasterEggCount(string &in asTimer)
{
if(ScriptDebugOn())
{
AddDebugMessage("Number of Poems:" +GetGlobalVarInt("LyricsVar"), true);
}
AddTimer("wegorz2", 0.1f, "ShowEasterEggCount");
}
void OnEnter()
{
PlayMusic("22_amb", true, 1.0f, 0.0f, 1, false);
AutoSave();
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_31", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_7", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_2", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_3", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_4", 3.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_6", 7.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_7", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_31", 50.0f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_1", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_2", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_3", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_4", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_5", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_51", 2.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_53", 7.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_52", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_17", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_24", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_26", 0.01f, "");
}
void DisplayEE(string &in asEntity)
{
SetMessage("Messages", "EasterL", 6);
if(GetGlobalVarInt ("LyricsVar") == 0)
{
SetMessage("Messages", "EasterL", 6);
}
else
{
SetMessage("Messages", "EasterL2", 3);
}
AddGlobalVarInt("LyricsVar", 1);
}
void OpenDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "unlock_door.snt", "Player", 0, false);
RemoveItem(asItem);
AddPlayerSanity( -1);
AddPlayerSanity( 16);
AutoSave();
}
void PickLock(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "unlock_door.snt", "Player", 0, false);
}
void PickMessage(string &in asEntity)
{
SetMessage("Messages", "Lousy", 0);
}
//////////////OPEN THE ATTIC GATE//////////////////
void UnbreakableMessage(string &in asItem, string &in asEntity)
{
SetMessage("Messages", "Popup33", 3);
}
void BreakPadlock(string &in asItem, string &in asEntity)
{
PlaySoundAtEntity("", "16_ladder_imp3", "padlock_acid", 0.01f, false);
SetEntityActive("padlock_acid", false);
SetEntityActive("padlock_broken", true);
SetPropStaticPhysics("gate", false);
AddPlayerSanity(-1.0f);
GiveSanityBoost();
AutoSave();
}
void Melt(string &in asItem, string &in asEntity)
{
SetPropActiveAndFade("padlock", false, 2.0f);
SetPropActiveAndFade("padlock_acid", true, 1.0f);
PlaySoundAtEntity("", "puzzle_acid", "padlock_acid", 0.01f, false);
FadeLightTo("AcidLight", 0.0f, 1.0f, 0.3f, 1.0f, -1, 1);
AddTimer("", 1.1f, "TurnOffLight");
RemoveItem(asItem);
AutoSave();
}
void FillJar(string &in asItem, string &in asEntity)
{
RemoveItem(asItem);
PlayGuiSound("puzzle_acid_success.snt", 1.0f);
GiveItem("acid", "chemical_container_full.ent", "jar3", "chemical_container_full.tga", 1);
AutoSave();
}
void TurnOffLight(string &in asTimer)
{
FadeLightTo("AcidLight", 0.0f, 0.0f, 0.0f, 0.0f, -1, 1);
}
////////////////END OPENING THE GATE///////////////
void End(string &in asEntity)
{
//StartCredits("Kai_Engel_-_02_-_Melancholy_Aftersounds.ogg", false, "Endings", "Ending1", 3);
//StartCredits("", false, "Endings", "Ending1", 3);
}
void AddLadVar(string &in asEntity)
{
AddGlobalVarInt("LadVar", 1);
}
///////////DIALOGUE///////////
void Dialogue(string &in asEntity)
{
AddEffectVoice("Academy_warning_1", "", "Dialogues", "Academy_Warning_1", false, "Player", 0.0f, 25.0f);
if(HasItem("PurpleOrb") == false)
{
AddEffectVoice("Academy_warning_2", "", "Dialogues", "Academy_Warning_2", false, "Player", 0.0f, 25.0f);
}
else
{
SetLevelDoorLocked("level_wood_2", false);
SetLevelDoorLocked("level_wood_1", false);
}
AddEffectVoice("Academy_warning_3", "", "Dialogues", "Academy_Warning_3", false, "Player", 0.0f, 25.0f);
SetEffectVoiceOverCallback("EventMusic");
}
void EventMusic()
{
PlayMusic("19_event_brute.ogg", false, 1.0f, 0.4f, 2, false);
AddEffectVoice("Academy_warning_4", "", "Dialogues", "Academy_Warning_4", false, "Player", 0.0f, 25.0f);
CompleteQuest("laboratory", "LaboratoryKey");
CheckPoint("", "KeyTeleport", "Respawn", "DeathHint", "Entry2");
AddTimer("sdgd", 3.0f, "Spawn");
AutoSave();
}
void Spawn(string &in asTimer)
{
SetEntityActive("servant_brute_1", true);
SetEntityActive("servant_brute_2", true);
SetEntityActive("pot_plant_small01_5", true);
SetEntityActive("chair_nice02_12", true);
AddEntityCollideCallback("ScriptArea_1", "servant_brute_2", "StopGrunt", true, 1);
}
void Respawn(string &in asName, int alCount)
{
if(alCount < 4)
{
PlayMusic("19_event_brute.ogg", false, 1.0f, 0.4f, 2, false);
AddTimer("sdgd", 3.0f, "Spawn");
}
if(GetEntitiesCollide("mansion_12", "ScriptArea_3") == false)
{
CreateEntityAtArea("mansion_12", "mansion.ent", "ScriptArea_3", false);
}
if(GetEntitiesCollide("ScriptArea_2", "pot_plant_small01_5") == false)
{
CreateEntityAtArea("pot_plant_small01_5", "pot_plant_small01.ent", "ScriptArea_2", false);
}
SetEntityActive("pot_plant_small01_5", true);
SetEntityActive("chair_nice02_12", true);
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_31", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_7", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_2", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_3", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_4", 3.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_6", 7.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_7", 0.01f, "");
AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_31", 50.0f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_1", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_2", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_3", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_4", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_5", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_51", 2.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_53", 7.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_52", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_17", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_24", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_26", 0.01f, "");
}
void StopGrunt(string &in asParent, string &in asChild, int alState)
{
SetEntityActive(asParent, true);
AddEntityCollideCallback("ScriptArea_4", "Player", "AddNodes", false, 1);
AddEntityCollideCallback("ScriptArea_5", "Player", "Attack", false, 1);
}
void AddNodes(string &in asParent, string &in asChild, int alState)
{
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_52", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_17", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_24", 0.01f, "");
AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_26", 0.01f, "");
}
void Attack(string &in asParent, string &in asChild, int alState)
{
ClearEnemyPatrolNodes("servant_brute_2");
ShowEnemyPlayerPosition("servant_brute_2");
}
void Dialogue2(string &in asEntity)
{
FadeLightTo("PointLight_58", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f);
FadeLightTo("PointLight_6", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f);
AutoSave();
AddEffectVoice("Academy_Speech_1", "", "Dialogues", "Academy_Speech_1", false, "Player", 0.0f, 25.0f);
PlayMusic("02_thegreatunderground.ogg", false, 1.0f, 0.4f, 2, false);
AddEffectVoice("Academy_Speech_2", "", "Dialogues", "Academy_Speech_2", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_3", "", "Dialogues", "Academy_Speech_3", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_4", "", "Dialogues", "Academy_Speech_4", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_5", "", "Dialogues", "Academy_Speech_5", false, "Player", 0.0f, 25.0f);
SetEffectVoiceOverCallback("ContinueDialogue1");
}
void ContinueDialogue1()
{
FadeRadialBlurTo(0.05f, 0.1f);
FadeSepiaColorTo(1.0f, 0.5f);
ContinueDialogue();
}
void ContinueDialogue()
{
AddEffectVoice("Academy_Speech_6", "", "Dialogues", "Academy_Speech_6", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_7", "", "Dialogues", "Academy_Speech_7", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_8", "", "Dialogues", "Academy_Speech_8", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_9", "", "Dialogues", "Academy_Speech_9", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_10", "", "Dialogues", "Academy_Speech_10", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_11", "", "Dialogues", "Academy_Speech_11", false, "Player", 0.0f, 25.0f);
if(HasItem("KainamKey") == false)
{
AddEffectVoice("Academy_Speech_12", "", "Dialogues", "Academy_Speech_12", false, "Player", 0.0f, 25.0f);
//add memento
}
else
{
SetLevelDoorLocked("level_wood_2", false);
SetLevelDoorLocked("level_wood_1", false);
}
AddEffectVoice("Academy_Speech_13", "", "Dialogues", "Academy_Speech_13", false, "Player", 0.0f, 25.0f);
AddEffectVoice("Academy_Speech_14", "", "Dialogues", "Academy_Speech_14", false, "Player", 0.0f, 25.0f);
FadeRadialBlurTo(0.0f, 0.0f);
FadeSepiaColorTo(0.0f, 0.0f);
SetEffectVoiceOverCallback("ContinueDialogue2");
}
void ContinueDialogue2()
{
SetEntityActive("GoOut", true);
SetEntityPlayerInteractCallback("GoOut", "TeleportBack", false);
}
void TeleportBack(string &in asEntity)
{
AddTimer("fadetimer", 1.2f, "TeleportProper");
AddTimer("tptimer", 1.1f, "TeleportProper");
FadeOut(1.0f);
PlayGuiSound("player_climb.snt", 1.0f);
StopMusic(0.5f, 2);
}
void TeleportProper(string &in asTimer)
{
if(asTimer == "tptimer")
{
TeleportPlayer("PlayerStartArea_2");
}
if(asTimer == "fadetimer")
{
FadeIn(1.0f);
}
}
///////////END DIALOGUE
void InsertLadder(string &in asItem, string &in asEntity)
{
RemoveItem(asItem);
PlayGuiSound("puzzle_place_jar.snt", 1.0f);
SetEntityActive("ladder_static_1", true);
SetEntityActive("LadderArea_1", true);
SetEntityActive("Penis", false);
AutoSave();
}