private void OnTriggerEnter(Collider other)
    {
        if (!triggered)
        {
            triggered = true;
            dispatcher.SendEvent(new EBEvent()
            {
                type = EBEventType.HallEntered
            });
            door.Close();
            door.Lock();
            if (other.gameObject.tag.Equals("Player"))
            {
                NoiseEffectsManager noiseEffectsManager = other.gameObject.GetComponentInChildren <NoiseEffectsManager>();
                noiseEffectsManager.enabled = true;
                noiseEffectsManager.SetMonster(monster.transform);

                catchAnimation.Init(
                    other.gameObject.GetComponentInChildren <Camera>(),
                    other.gameObject.GetComponent <FirstPersonController>()
                    );

                monster.GetComponent <MonsterBehaviour>().SetMainTarget(other.transform);
                monster.GetComponent <CameraVisibilityChecker>().SetCamera(other.gameObject.GetComponentInChildren <Camera>());
            }
        }
    }
Esempio n. 2
0
    public void OnReceived(EBEvent e)
    {
        switch (e.type)
        {
        case EBEventType.InteractionWithDoor:
        {
            DoorInteractionEvent die = e as DoorInteractionEvent;
            if (!isDoorTriggered && (die.door == door))
            {
                isDoorTriggered = true;
                monster.SetActive(true);
                monster.GetComponent <CameraVisibilityChecker>().SetCamera(camera);
                monster.GetComponent <MonsterBehaviour>().SetMainTarget(controller.transform);
                NoiseEffectsManager noiseEffectsManager = controller.gameObject.GetComponentInChildren <NoiseEffectsManager>();
                noiseEffectsManager.SetMonster(monster.transform);
                noiseEffectsManager.enabled = true;
                dispatcher.Subscribe(EBEventType.CaughtByMonster, address, gameObject);
                dispatcher.Subscribe(EBEventType.MonsterInFrustum, address, gameObject);
            }
        }
        break;

        case EBEventType.CaughtByMonster:
            StartCoroutine(EndingAnimation());
            break;

        case EBEventType.MonsterInFrustum:
            controller.SetMouseLookEnabled(false);
            controller.SetHeadBobEnabled(false);
            controller.enabled = false;
            director.StartAnimating(camera, rotationTarget, camera.transform);
            break;
        }
    }
Esempio n. 3
0
 private void OnTriggerEnter(Collider other)
 {
     if (!triggered)
     {
         triggered = true;
         door.Close();
         door.Lock();
         Dispatcher.GetInstance().SendEvent(new EBEvent()
         {
             type = EBEventType.PositiveEpilogueEntered
         });
         NoiseEffectsManager noiseEffectManager = other.gameObject.GetComponentInChildren <NoiseEffectsManager>();
         noiseEffectManager.enabled = false;
         noiseEffectManager.SetMonster(null);
         RoomsManager manager = RoomsManager.GetManager();
         manager.UnloadHall();
     }
 }