public override void EventUpdate()
    {
        Timer -= Time.deltaTime;

        if (Timer <= 0.0f && StopTimer == false)
        {
            GameController.instance.player.GetComponent <Player_Control>().FakeBlink(1f);
            GameController.instance.ambianceController.ChangeAmbiance(NewAmbiance, 6);
            GameController.instance.GlobalSFX.PlayOneShot(blackout);
            GameController.instance.npcController.mainList[(int)npc.scp173].Spawn(false, GameController.instance.transform.position);
            StopTimer = true;
            SCP_UI.instance.ShowTutorial("tutorun");
            EventFinished();
        }

        if (Timer <= 4f && step == false && StopTimer == false)
        {
            GameController.instance.player.GetComponent <Player_Control>().FakeBlink(1f);
            GameController.instance.GlobalSFX.PlayOneShot(blackout);
            GameController.instance.npcController.mainList[(int)npc.scp173].Spawn(false, Anchor2.transform.position);
            step = true;
        }


        if (check2 == true)
        {
            if (trigger2.GetComponent <BoxTrigger>().GetState())
            {
                Sci_.SetRota(Anchor1.transform);
                Gua_.SetRota(Anchor1.transform);
                Sci_.SetPath(Path, false);
                Gua_.SetPath(Path, false);
                Gua_.PlaySound(Dialog);
                SubtitleEngine.instance.playVoice("scene_BreachStart_1", true);

                GameController.instance.npcController.mainList[(int)npc.scp173].Spawn(false, Anchor1.transform.position);
                GameController.instance.player.GetComponent <Player_Control>().FakeBlink(0.5f);
                GameController.instance.GlobalSFX.PlayOneShot(blackout);

                GameController.instance.npcController.mainList[(int)npc.scp173].transform.rotation = Anchor1.transform.rotation;
                check2    = false;
                StopTimer = false;
                Timer     = 10;
            }
        }

        if (check1 == true)
        {
            if (trigger1.GetComponent <BoxTrigger>().GetState())
            {
                SCP_UI.instance.ShowTutorial("tutodead");
                check1 = false;
            }
        }
    }
Ejemplo n.º 2
0
    void Scene2()
    {
        Guard1_con.SetRota(leftTurn, true);
        Guard1_con.SetPath(Path1, false);
        Guard1_con.StopLookAt();
        Guard2_con.SetRota(leftTurn, true);
        Guard2_con.SetPath(Path1, false);
        //Guard2_con.SetLookAt(playerHead);
        EventState = 3;
        Timer      = Timer3;

        ActiveTimer2   = true;
        TimerSecondary = 5;
        EventState2    = 1;


        Check2 = true;
    }
Ejemplo n.º 3
0
    // Update is called once per frame
    void LateUpdate()
    {
        if (eventstat == 0)
        {
            d2_.AnimTrigger(2, true);
            if (tri1.GetComponent <BoxTrigger>().GetState())
            {
                eventstat = 1;
                Debug.Log("Door 2 switch");
                door2.GetComponent <Object_Door>().DoorSwitch();
                d1_.SetLookAt(Camera.main.transform);
                Timer       = Timer1;
                ActiveTimer = true;
            }
        }

        if (check2 == true)
        {
            if (tri2.GetComponent <BoxTrigger>().GetState())
            {
                Debug.Log("Closing door");
                door1.GetComponent <Object_Door>().DoorSwitch();
                sci_.PlaySound(Dialogs[1], true);
                sci_.AnimTrigger(-6);
                check2       = false;
                Timer        = 4f;
                eventstat    = 5;
                ActiveTimer  = true;
                ActiveRefuse = false;
                StopTimer    = false;
                guard_.StopRota();
                d1_.StopLookAt();
                d2_.StopLookAt();
            }
        }

        if (check3 == true)
        {
            if (tri3.GetComponent <BoxTrigger>().GetState())
            {
                guard_.SetLookAt(objPlayer.transform);
                guard_.PlaySound(guardExit[Random.Range(0, guardExit.Length)]);
                check3 = false;
            }
        }



        if (ActiveTimer)
        {
            Timer -= Time.deltaTime;
        }
        if (ActiveRefuse)
        {
            refuseTimer -= Time.deltaTime;

            if (refuseTimer <= 0)
            {
                switch (refusestat)
                {
                case 0:
                {
                    sci_.PlaySound(Refuse[0], true);
                    refusestat  = 1;
                    refuseTimer = refuseTimer2;
                    guard_.SetRota(objPlayer.transform);
                    d2_.SetLookAt(GameController.instance.playercache.DefHead);
                    break;
                }

                case 1:
                {
                    refusestat = 2;
                    sci_.PlaySound(Refuse[1], true);
                    refuseTimer = refuseTimer3;
                    break;
                }

                case 2:
                {
                    d1_.StopLookAt();
                    d2_.StopLookAt();
                    refusestat = 3;
                    guard_.AnimTrigger(1, true);
                    sci_.PlaySound(Refuse[2], true);
                    Debug.Log("Another door opening, cause refuse");
                    door1.GetComponent <Object_Door>().DoorSwitch();
                    refuseTimer = refuseTimer4;
                    break;
                }

                case 3:
                {
                    guard_.PlaySFX(GeneralSFX[4]);
                    GameController.instance.playercache.Death(0);
                    ActiveRefuse = false;
                    break;
                }
                }
            }
        }

        if (Timer <= 0.0f && StopTimer == false)
        {
            switch (eventstat)
            {
            case 1:
            {
                d1_.StopLookAt();
                d2_.StopLookAt();
                Debug.Log("Door should open");
                door1.GetComponent <Object_Door>().DoorSwitch();
                sci_.PlaySound(Dialogs[0], true);
                sci_.AnimTrigger(-6);
                Timer        = Timer2;
                eventstat    = 2;
                ActiveRefuse = true;
                refuseTimer  = refuseTimer1;
                break;
            }

            case 2:
            {
                d1_.SetPath(path1);
                GameController.instance.PlayHorror(Horror[0], ata1, npc.none);
                eventstat = 3;
                Timer     = 0.8f;
                break;
            }

            case 3:
            {
                d2_.SetPath(path2);
                eventstat = 4;
                Timer     = Timer3;
                break;
            }

            case 4:
            {
                check2    = true;
                StopTimer = true;
                d1_.SetLookAt(GameController.instance.npcController.mainList[(int)npc.scp173].transform);
                d2_.SetLookAt(GameController.instance.npcController.mainList[(int)npc.scp173].transform);
                break;
            }

            case 5:
            {
                d1_.SetPath(path3);
                StartCoroutine(WaitForWalk());
                eventstat = 6;
                Timer     = 3f;
                break;
            }

            case 6:
            {
                Debug.Log("Door should open on chaos");
                door1.GetComponent <Object_Door>().DoorSwitch();
                check3 = true;
                sci_.PlaySound(Dialogs[2], true);
                sci_.AnimTrigger(-6);
                d2_.SetRota(door1.transform);
                d2_.StopLookAt();
                StartCoroutine(SmallSequence());
                eventstat = 7;
                Timer     = Timer4;
                break;
            }

            case 7:
            {
                objPlayer.GetComponent <Player_Control>().FakeBlink(0.6f);
                lightmana.SetActive(false);
                d1_.PlaySound(classd2);
                eventstat = 8;
                Timer     = 0.7f;
                d1_.AnimTrigger(-1, true);

                GameController.instance.npcController.mainList[(int)npc.scp173].transform.rotation = Quaternion.Euler(0, 90, 0);
                GameController.instance.npcController.mainList[(int)npc.scp173].Spawn(false, ata1.position);
                DecalSystem.instance.Decal(ata1.transform.position, new Vector3(90f, 0, 0), 2f, true, 0.4f, 1, 2);
                d1_.StopLookAt();

                break;
            }

            case 8:
            {
                d2_.StopLookAt();
                d2_.AnimTrigger(-5);
                d1_.PlaySFX(GeneralSFX[3]);
                lightmana.SetActive(true);
                sci2_.AnimTrigger(-4);
                sci_.PlaySFX(GeneralSFX[0]);
                eventstat = 9;
                Timer     = 1f;
                GameController.instance.PlayHorror(Horror[1], null, npc.none);
                break;
            }

            case 9:
            {
                lightmana.SetActive(false);
                objPlayer.GetComponent <Player_Control>().FakeBlink(0.3f);
                eventstat = 10;
                Timer     = 0.5f;
                GameController.instance.npcController.mainList[(int)npc.scp173].Spawn(false, ata2.position);
                DecalSystem.instance.Decal(ata2.transform.position, new Vector3(90f, 0, 0), 4f, true, 0.4f, 1, 0);
                d2_.AnimTrigger(-2, true);
                d2_.StopLookAt();
                d2_.PlaySFX(GeneralSFX[3]);
                break;
            }

            case 10:
            {
                check3 = false;
                GameController.instance.npcController.mainList[(int)npc.scp173].Event_Spawn(true, ata2.transform.position);
                guard_.PlaySound(guardWhat[Random.Range(0, guardWhat.Length)]);

                sci_.PlaySFX(GeneralSFX[1]);
                lightmana.SetActive(true);
                sci2_.AnimTrigger(1, true);
                Timer     = Timer5;
                eventstat = 11;
                break;
            }

            case 11:
            {
                lightmana.SetActive(false);
                objPlayer.GetComponent <Player_Control>().FakeBlink(0.4f);
                eventstat = 12;
                Timer     = 0.7f;
                GameController.instance.npcController.mainList[(int)npc.scp173].transform.rotation = Quaternion.Euler(0, -90, 0);
                GameController.instance.npcController.mainList[(int)npc.scp173].Spawn(false, ata3.position);
                guard_.StopLookAt();
                guard_.PlaySound(guardDies);
                guard_.SetRota(GameController.instance.npcController.mainList[(int)npc.scp173].transform);
                sci_.PlaySFX(GeneralSFX[5]);
                break;
            }

            case 12:
            {
                sci_.PlaySFX(GeneralSFX[2]);
                emelight.SetActive(true);
                guard_.AnimTrigger(1, true);
                Timer        = 1.5f;
                eventstat    = 13;
                ActiveTimer2 = true;
                if (GetComponent <ReflectionProbe>() != null)
                {
                    RerenderProbe1.GetComponent <ReflectionProbe>().RenderProbe();
                    RerenderProbe2.GetComponent <ReflectionProbe>().RenderProbe();
                }
                break;
            }

            case 13:
            {
                emelight.SetActive(false);
                objPlayer.GetComponent <Player_Control>().FakeBlink(0.4f);
                GameController.instance.npcController.mainList[(int)npc.scp173].Spawn(false, ataFinal.position);
                eventstat = 14;
                Timer     = 0.7f;
                guard_.AnimTrigger(-2, true);

                guard_.PlaySFX(GeneralSFX[3]);
                sci_.PlaySFX(GeneralSFX[5]);
                sci_.PlaySFX(GeneralSFX[6]);
                StopTimer2 = true;
                flask.SetActive(false);
                break;
            }

            case 14:
            {
                objPlayer.GetComponent <Player_Control>().FakeBlink(0.6f);
                sci_.SetSeq(Alarm);

                guard_.StopRota();
                objPlayer.GetComponent <Player_Control>().playerWarp((GameController.instance.WorldAnchor.transform.position + ((GameController.instance.WorldAnchor.transform.rotation * Quaternion.Inverse(TeleportAnchor.transform.rotation)) * (objPlayer.transform.position - TeleportAnchor.position))), GameController.instance.WorldAnchor.transform.eulerAngles.y - TeleportAnchor.transform.eulerAngles.y);
                d1_.puppetWarp(GameController.instance.WorldAnchor.transform.position + ((GameController.instance.WorldAnchor.transform.rotation * Quaternion.Inverse(TeleportAnchor.transform.rotation)) * (d1.transform.position - TeleportAnchor.position)), GameController.instance.WorldAnchor.transform.eulerAngles.y - TeleportAnchor.transform.eulerAngles.y);
                d2_.puppetWarp(GameController.instance.WorldAnchor.transform.position + ((GameController.instance.WorldAnchor.transform.rotation * Quaternion.Inverse(TeleportAnchor.transform.rotation)) * (d2.transform.position - TeleportAnchor.position)), GameController.instance.WorldAnchor.transform.eulerAngles.y - TeleportAnchor.transform.eulerAngles.y);
                guard_.puppetWarp(GameController.instance.WorldAnchor.transform.position + ((GameController.instance.WorldAnchor.transform.rotation * Quaternion.Inverse(TeleportAnchor.transform.rotation)) * (guard.transform.position - TeleportAnchor.position)), GameController.instance.WorldAnchor.transform.eulerAngles.y - TeleportAnchor.transform.eulerAngles.y);


                d1_.DeactivateCollision();
                d2_.DeactivateCollision();

                StopTimer = true;



                firstEvent.End();

                if (GameController.instance.isAlive)
                {
                    GameController.instance.DefaultAmbiance();
                    GameController.instance.DefMusic();
                    GameController.instance.doGameplay = true;
                    GameController.instance.Action_QuickSave();
                    GameController.instance.SetMapPos(0, 10);
                    GameController.instance.canSave = true;
                    RenderSettings.fog = true;
                    GameController.instance.CullerFlag = true;
                    Destroy(introZone);
                }
                break;
            }
            }
        }



        if (ActiveTimer2)
        {
            TimerSecondary -= Time.deltaTime;
        }
        if (TimerSecondary <= 0.0f && StopTimer2 == false)
        {
            if (flask.activeSelf == true)
            {
                flask.SetActive(false);
            }
            else
            {
                flask.SetActive(true);
            }

            guard_.PlaySFX(GeneralSFX[4]);
            TimerSecondary = 0.1f;
        }
    }
    public override void EventUpdate()
    {
        if (Time.frameCount % 15 == 0 && eventState != 20 && !outDoorsClosed && isOut.GetState())
        {
            eventState = 1;
            Timer      = 2;

            Object_Door door;
            outDoorsClosed = true;
            audSource.clip = scene1;
            SubtitleEngine.instance.playVoice(scene1.name, true);
            audSource.Play();
            Interact = Physics.OverlapSphere(doorCloser1.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door = Interact[0].gameObject.GetComponent <Object_Door>();
                if (door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
            Interact = Physics.OverlapSphere(doorCloser2.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door = Interact[0].gameObject.GetComponent <Object_Door>();
                if (door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
            Interact = Physics.OverlapSphere(doorCloser3.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door = Interact[0].gameObject.GetComponent <Object_Door>();
                if (door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
            Interact = Physics.OverlapSphere(doorCloser4.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door            = Interact[0].gameObject.GetComponent <Object_Door>();
                door.isDisabled = false;
                if (door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
            Interact = Physics.OverlapSphere(doorCloser5.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door            = Interact[0].gameObject.GetComponent <Object_Door>();
                door.isDisabled = false;
                if (door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
        }

        if (Time.frameCount % 15 == 0 && eventState == 14 && inDoorsClosed)
        {
            /*eventState = 1;
             * Timer = 2;*/
            inDoorsClosed = false;
            Object_Door door;
            Interact = Physics.OverlapSphere(doorCloser4.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door            = Interact[0].gameObject.GetComponent <Object_Door>();
                door.isDisabled = false;
                if (!door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
            Interact = Physics.OverlapSphere(doorCloser5.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door            = Interact[0].gameObject.GetComponent <Object_Door>();
                door.isDisabled = false;
                if (!door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
        }

        if (Time.frameCount % 15 == 0 && eventState == 14 && !inDoorsClosed && isIn.GetState())
        {
            eventState    = 15;
            inDoorsClosed = true;

            /*
             * Timer = 2;*/

            Object_Door door;
            Interact = Physics.OverlapSphere(doorCloser4.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door            = Interact[0].gameObject.GetComponent <Object_Door>();
                door.isDisabled = false;
                if (door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;
            }
            Interact = Physics.OverlapSphere(doorCloser5.position, 1f, doorLayer);
            if (Interact.Length > 0)
            {
                door            = Interact[0].gameObject.GetComponent <Object_Door>();
                door.isDisabled = false;
                if (door.GetState())
                {
                    door.DoorSwitch();
                }
                door.isDisabled = true;

                audSource.PlayOneShot(blackOut);
                GameController.instance.canSave = true;

                GameController.instance.playercache.FakeBlink(0.25f);
                probe.RenderProbe();

                EventFinished();
            }
        }



        Timer -= Time.deltaTime;

        if (Timer < 0)
        {
            switch (eventState)
            {
            case 1:
            {
                Debug.Log("Step one");
                guard.SetPath(new Transform[1] {
                        step1
                    }, false);
                eventState = 2;
                Timer      = 3.5f;
                break;
            }

            case 2:
            {
                guard.AnimTrigger(3, false);
                eventState = 3;
                Timer      = 1.5f;
                break;
            }

            case 3:
            {
                Debug.Log("Step two");
                guard.StopRota();
                guard.SetPath(stepSeq, false);
                eventState = 4;
                Timer      = 0.5f;
                break;
            }

            case 4:
            {
                scp.RotateTo(guard.transform.position);
                eventState = 5;
                Timer      = 1.5f;
                break;
            }

            case 5:
            {
                guard.SetLookAt(scp.transform);
                scp.evChangeState(3);
                eventState = 6;
                Timer      = 1.5f;
                break;
            }

            case 6:
            {
                guard.StopLookAt();
                guard.SetRota(scp.transform);
                guard.AnimTrigger(1, true);
                eventState = 7;
                Timer      = 3;
                break;
            }

            case 7:
            {
                guard.SetPath(new Transform[1] {
                        step3
                    }, false);
                eventState = 8;
                Timer      = 3;
                break;
            }

            case 8:
            {
                guard.SetPath(new Transform[1] {
                        step4
                    }, false);
                eventState = 9;
                Timer      = 3;
                break;
            }

            case 9:
            {
                guard.SetPath(stepSeq2, false);
                eventState = 10;
                Timer      = 1.5f;
                break;
            }

            case 10:
            {
                guard.StopRota();
                guard.AnimTrigger(-3);
                scp.evWalkTo(stepSeq2[1].position);
                eventState = 11;
                Timer      = 0.75f;
                audSource.Stop();
                audSource.clip = scene2;
                audSource.Play();
                break;
            }

            case 11:
            {
                DecalSystem.instance.Decal(decal1.transform.position, decal1.transform.rotation.eulerAngles, 2, false, 0.2f, 1, 2);
                DecalSystem.instance.Decal(decal1.transform.position, decal1.transform.rotation.eulerAngles - new Vector3(0, 180, 0), 2, false, 0.2f, 1, 2);

                DecalSystem.instance.Decal(decal2.transform.position, decal2.transform.rotation.eulerAngles, 2, false, 0.2f, 1, 2);
                DecalSystem.instance.Decal(decal2.transform.position, decal2.transform.rotation.eulerAngles - new Vector3(0, 180, 0), 3, false, 0.2f, 1, 2);

                DecalSystem.instance.Decal(decal3.transform.position, decal3.transform.rotation.eulerAngles, 2, false, 0.2f, 1, 2);
                DecalSystem.instance.Decal(decal3.transform.position, decal3.transform.rotation.eulerAngles - new Vector3(0, 180, 0), 3, false, 0.2f, 1, 2);

                DecalSystem.instance.Decal(decal4.transform.position, decal4.transform.rotation.eulerAngles, 2, false, 0.2f, 1, 2);
                DecalSystem.instance.Decal(decal4.transform.position, decal4.transform.rotation.eulerAngles - new Vector3(0, 180, 0), 2, false, 0.2f, 1, 2);

                eventState = 12;
                Timer      = 0.25f;
                break;
            }

            case 12:
            {
                eventState = 13;
                //scp.evChangeState(0);
                Timer = 10f;
                Destroy(guard.gameObject);
                break;
            }

            case 13:
            {
                eventState = 14;
                scp.StopEvent();
                Debug.Log("096 Stopped");
                break;
            }
            }
        }
    }