////////////////////////////
// Run when starting game
void OnStart()
{
/////////////////////////////////////////////////////////////////////////////////////////
//Debug
    if(ScriptDebugOn())
          {
               GiveItemFromFile("lantern", "lantern.ent");
               SetPlayerLampOil(100.0f);
 
               for(int i = 0;i < 10;i++)
               {
                    GiveItemFromFile("tinderbox", "tinderbox.ent");
               }
          }
///////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
//Start Scene
    ShowPlayerCrossHairIcons(false);
    SetSanityDrainDisabled(true);
    SetPlayerCrouching(true);
    SetPlayerActive(false);
    FadeOut(0);
    AddTimer("StartGame", 6.0f, "IntroSequence");
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
//General
    
////////////////////////////////////////////////////////////////////////////////////////
}
///////////////////////////////////////////////////////////////////////////////////////
//Start Scene
void IntroSequence(string &in asTimer)
{
    AddLocalVarInt("iIntroPart", 1);
    float partSpeed = 0.5f;
    switch(GetLocalVarInt("iIntroPart")) {
        case 1:
            MovePlayerHeadPos(0, -0.9f, 0, 10.0f, 0.1f);
            PlayGuiSound("", 1.0f);
            StartPlayerLookAt("AreaIntroLook_1", 10.0f, 10.0f, "");
            FadePlayerRollTo(-50, 200, 200);
            partSpeed = 0.5f;
        break;
        
        case 2:
            StartPlayerLookAt("AreaIntroLook_1", 1.0f, 1.0f, "");
            FadeIn(2.0f);
            Manpig01();
            engineer_2();
            engineer_3();
            partSpeed = 3.0f;  
        break;
        
        case 3:
            StartPlayerLookAt("AreaIntroLook_2", 1.0f, 1.0f, "");
            partSpeed = 5.0f;
        break;
        
        case 4:
            StartPlayerLookAt("AreaIntroLook_3", 1.0f, 1.0f, "");
            PlayGuiSound("", 0.7f);
            FadeOut(5.7f);
            partSpeed = 6.0f;
        break;
        
        case 5:
            StopPlayerLookAt();
            StartPlayerLookAt("AreaIntroLook_4", 20.0f, 20.0f, "");
            TeleportPlayer("PlayerDrag");
            FadePlayerRollTo(70, 200, 200);
            partSpeed = 0.1f;
        break;
        
        case 6:
            StopPlayerLookAt();
            SetEntityActive("engineer_1", false);
            PlayGuiSound("joint_cage_slide_open", 10.0f);
            FadeIn(8.0f);
            partSpeed = 8.0f;
        break;
        
        case 7:
            AddTimer("drag", 1.0f, "Drag");
            FadeOut(9.0f);
            partSpeed = 10.0f;
        break;
        
        case 8:
            RemoveTimer("drag");
            partSpeed = 2.0f;
        break;
        
        case 9:
            TeleportPlayer("PlayerStartArea_2");
            FadeIn(5.0f);
            StartPlayerLookAt("AreaIntroLook_5", 20.0f, 20.0f, "");
            PlayGuiSound("", 1.0f);
            partSpeed = 6.0f;
        break;
        
        case 10:
            FadeOut(2.0f);
            PlayGuiSound("", 1.0f);
            partSpeed = 4.0f;
        break;
        
        case 11:
            FadeIn(4.5f);
            PlayGuiSound("", 1.0f);
            StopPlayerLookAt();
            FadePlayerRollTo(0, 20, 18);
            MovePlayerHeadPos(0.0, 0.0, 0.0, 0.5, 0.1f);
            partSpeed = 5.0f;
        break;
        
        case 12:
            ShowPlayerCrossHairIcons(true);
            SetPlayerCrouching(false);
            SetPlayerActive(true);
            partSpeed = 0.01f;
        break;
    }
    
    if(GetLocalVarInt("iIntroPart") < 13)    AddTimer("tmrIntro", partSpeed, "IntroSequence");     
}
void Drag(string &in asTimer)
{
  AddPlayerBodyForce(0, 0, 10000, false);
  AddTimer(asTimer, 1.5f, "Drag");
  PlayGuiSound("Drag03.snt", 1);
}
void Manpig01()
{
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_1", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_2", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_3", 0.0f, "");
} 
/////////////////////////////////////////////////////////////////////////////////////////////////
//General
/////////////////////////////////////////////////////////////////////////////////////////////////
void engineer_2()
{
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_19", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_78", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_97", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_119", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_19", 0.0f, "");
} 
void engineer_3()
{
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_119", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_19", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_78", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_97", 0.0f, "");
    AddEnemyPatrolNode("engineer_1", "PathNodeArea_119", 0.0f, "");
}