示例#1
0
 void CreateInstance()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        if (isActive == false && (Button1.GetComponent <Object_Button_Trigger>().activated == true || Button2.GetComponent <Object_Button_Trigger>().activated == true))
        {
            scrambleZone.SetActive(false);
            Timer    = 8;
            isActive = true;
            Door1.GetComponent <Object_Door>().DoorSwitch();
            Door2.GetComponent <Object_Door>().DoorSwitch();
            bopity = true;
        }
        if (isActive)
        {
            Timer -= Time.deltaTime;
            if (Timer <= 2 && bopity == true)
            {
                BipBop.Play();
                bopity = false;
            }

            if (Timer <= 0)
            {
                scrambleZone.SetActive(true);
                isActive = false;
                Door1.GetComponent <Object_Door>().DoorSwitch();
                Door2.GetComponent <Object_Door>().DoorSwitch();
            }
        }
    }
示例#3
0
    private void checkState()
    {
        if (fuses == 1)
        {
            sr.sprite = f1;
        }

        if (fuses == 2)
        {
            sr.sprite = f2;
        }

        if (fuses == 3)
        {
            sr.sprite = f3;
            if (Lift)
            {
                oc.Open();
            }
            if (Door1)
            {
                oc1.Open();
                oc2.Open();
                Door1.SendMessage("Open");
                Door2.SendMessage("Open");
            }
        }
    }
示例#4
0
 void OnTriggerEnter(Collider collision)
 {
     if (collision.tag == "Player")
     {
         if (SwitchName == "Switch1")
         {
             Door1.SetActive(false);
             GetComponent <Renderer> ().material = switchON;
             switches.Enqueue(1);
             Open.Play();
         }
         if (SwitchName == "Switch2")
         {
             Door2.SetActive(false);
             GetComponent <Renderer> ().material = switchON;
             switches.Enqueue(2);
             Open.Play();
         }
         if (SwitchName == "Switch3")
         {
             Door3.SetActive(false);
             GetComponent <Renderer> ().material = switchON;
             switches.Enqueue(3);
             Open.Play();
         }
     }
 }
    IEnumerator OpenDoors()
    {
        yield return(new WaitForSeconds(TimeToPlayTraps));

        Door1.OpenDoor();
        Door2.OpenDoor();
    }
示例#6
0
 public void OpenDoors()
 {
     if (!Door1.switchOpen)
     {
         Door1.DoorSwitch();
     }
     if (!Door2.switchOpen)
     {
         Door2.DoorSwitch();
     }
 }
示例#7
0
 void CloseDoors()
 {
     if (Door1.switchOpen)
     {
         Door1.DoorSwitch();
     }
     if (Door2.switchOpen)
     {
         Door2.DoorSwitch();
     }
 }
示例#8
0
 void Start()
 {
     sr = gameObject.GetComponent <SpriteRenderer>();
     if (Lift)
     {
         oc = Lift.GetComponent <open_close>();
     }
     if (Door1)
     {
         oc1 = Door1.GetComponent <open_close>();
         oc2 = Door2.GetComponent <open_close>();
     }
 }
示例#9
0
    private void Awake()
    {
        instance = this;

        playerController3 = FindObjectOfType <PlayerController3>();      //Find movement script
        playerGameObject  = GameObject.Find("Player");                   //Find player GameObject
        playerRb          = playerGameObject.GetComponent <Rigidbody>(); //Find player Rigidbody

        playerInteraction  = FindObjectOfType <PlayerInteraction>();
        interactiveElement = FindObjectOfType <InteractiveElement>();
        fireOnBrazier      = FindObjectOfType <FireOnBrazier>();
        health             = FindObjectOfType <Health>();
        audioManager       = FindObjectOfType <AudioManager>();
        door2  = FindObjectOfType <Door2>();
        damage = FindObjectOfType <Damage>();
    }
示例#10
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.CompareTag("Player") && !activated)
     {
         activated = true;
         controller.TurnOnTrap(TimeToPlayTraps);
         if (Door1 != null)
         {
             Door1.CloseDoor();
             Door2.CloseDoor();
             StartCoroutine(OpenDoors());
         }
         else if (Door3 != null)
         {
             Door3.CloseDoor();
             Door4.CloseDoor();
             StartCoroutine(OpenLateralDoors());
         }
     }
 }
示例#11
0
    private void Awake()
    {
        instance = this;

        playerController4 = FindObjectOfType <PlayerController4>();      //Find movement script
        playerRb          = playerGameObject.GetComponent <Rigidbody>(); //Find player Rigidbody

        playerInteraction  = FindObjectOfType <PlayerInteraction>();
        interactiveElement = FindObjectOfType <InteractiveElement>();
        fireOnBrazier      = FindObjectOfType <FireOnBrazier>();
        health             = FindObjectOfType <Health>();
        audioManager       = FindObjectOfType <AudioManager>();
        door2  = FindObjectOfType <Door2>();
        damage = FindObjectOfType <Damage>();

        if (YouAreInThePresent)
        {
            AudioManager.instance.PresentSnapshot();
        }
        else
        {
            AudioManager.instance.PastSnapshot();
        }
    }
 /// <summary>
 /// Konstrukcja stanu dostarczonych drzwi.
 /// </summary>
 /// <param name="door">drzwi wymagaj¹ce modelu stanu</param>
 public DoorClosing(Door2 door) : base(door)
 {
 }
示例#13
0
 /// <summary>
 /// Construct a state for the provided door.
 /// </summary>
 /// <param name="door">a door that needs a state model </param>
 public DoorOpening(Door2 door) : base(door)
 {
 }
示例#14
0
 /// <summary>
 /// Konstrukcja stanu dostarczonych drzwi.
 /// </summary>
 /// <param name="door">drzwi wymagaj¹ce modelu stanu</param>
 public DoorStayOpen(Door2 door) : base(door)
 {
 }
示例#15
0
    // Update is called once per frame
    void Update()
    {
        if (!isDisabled)
        {
            if (Out1.GetComponent <Object_Button_Trigger>().activated == true && !Ignoreinputs && Timer <= 0)
            {
                if (!FloorUp)
                {
                    CloseDoors();
                    Timer        = MovingTime;
                    insideElev   = false;
                    Ignoreinputs = true;
                    soundPlayed  = false;
                }
                else
                {
                    Door1.DoorSwitch();
                }
            }

            if (Out2.GetComponent <Object_Button_Trigger>().activated == true && !Ignoreinputs && Timer <= 0)
            {
                if (FloorUp)
                {
                    CloseDoors();
                    Timer        = MovingTime;
                    insideElev   = false;
                    Ignoreinputs = true;
                    soundPlayed  = false;
                }
                else
                {
                    Door2.DoorSwitch();
                }
            }

            if ((Switch1.GetComponent <Object_Button_Trigger>().activated == true || Switch2.GetComponent <Object_Button_Trigger>().activated == true) && !Ignoreinputs && Timer <= 0)
            {
                //SwitchFloor(Floor1.transform, Floor2.transform);
                CloseDoors();
                Door1.isDisabled = true;
                Door2.isDisabled = true;
                Timer            = MovingTime;
                insideElev       = true;
                Ignoreinputs     = true;
                soundPlayed      = false;
            }
        }


        Timer -= Time.deltaTime;

        if (Timer <= (MovingTime - 2) && !soundPlayed)
        {
            GameController.instance.GlobalSFX.PlayOneShot(elev);
            soundPlayed = true;
        }

        if (Timer <= 3 && Ignoreinputs)
        {
            Door1.isDisabled = false;
            Door2.isDisabled = false;

            FloorUp = !FloorUp;
            State   = !State;
            GameController.instance.SetObjectState(State, id);

            if (insideElev)
            {
                if (FloorUp)
                {
                    StartCoroutine(SwitchFloor(Floor2, Floor1));
                }
                else
                {
                    StartCoroutine(SwitchFloor(Floor1, Floor2));
                }
            }

            if (FloorUp)
            {
                Door1.DoorSwitch();
                GameController.instance.holdRoom = false;
            }
            else
            {
                Door2.DoorSwitch();
                GameController.instance.holdRoom = true;
            }

            GameController.instance.GlobalSFX.PlayOneShot(ding);
            Ignoreinputs = false;
        }
    }
 /// <summary>
 /// Konstrukcja stanu dostarczonych drzwi.
 /// </summary>
 /// <param name="door">drzwi wymagaj¹ce modelu stanu</param>
 public DoorClosed(Door2 door) : base(door)
 {
 }
示例#17
0
        /// <summary>
        /// làm mới Token, đây là phiên bản cũ
        /// </summary>
        /// <returns></returns>
        private string RenewToken1()
        {
            // nếu danh sách trước đang lấy Token thì danh sách mới sẽ phải chờ ở đây
            Door1.WaitOne();
            Door1.Release();

            // đăng ký vào danh sách nhận token
            registernumber++;

            // chạy qua cửa 2 để vào bấm nút
            Door2.WaitOne();

            string dublicate;

            // nếu token đã có sẵn thì lấy token đó rồi đi ra
            if (insidetokenvalue != null)
            {
                dublicate = insidetokenvalue;
                registernumber--;
                if (registernumber == 0) // tất cả các thread đăng ký đã lấy xong token
                {
                    // xóa giá trị token đã lưu
                    insidetokenvalue = null;
                    // mở cửa 1 cho đợt thread mới vào
                    Door1.Release();
                }
                Door2.Release();
                System.Diagnostics.Debug.WriteLine("got token : " + dublicate.ToString());
                return(dublicate);
            }



            try
            {
                Token            = GetAccessToken(_Secret, _PackageSID).AccessToken;
                insidetokenvalue = Token;

                // đã lấy được token, băt đầu đóng cổng ngoài để các register vào lấy token ra
                Door1.WaitOne();
                Console.WriteLine("Clicked button");
                System.Diagnostics.Debug.WriteLine("Clicked button");
            } catch (WebException ex)
            {
                if (ex.Status == WebExceptionStatus.ProtocolError)
                {
                    throw new UnauthorizedAccessException();
                }
                else
                {
                    throw new WebException();
                }
            }

            registernumber--;
            dublicate = Token;
            if (registernumber == 0) // tất cả các thread đăng ký đã lấy xong token
            {
                // xóa giá trị token đã lưu
                insidetokenvalue = null;
                // mở cửa 1 cho đợt thread mới vào
                Door1.Release();
            }
            // mở cổng trong cho các thread khác vào lấy
            Door2.Release();
            return(dublicate);
        }