public IEnumerator CheckIfGameStarted(SwitchResult GameStartedSwitch)
 {
     while (GameStartedSwitch.Data != "On")
     {
         yield return(StartCoroutine(MainConnectionScript.CheckDomoticzSwitch(gameStartedSwitchidx, GameStartedSwitch)));
     }
     StartHiderHidingFase();
 }
Пример #2
0
 public Parser(int numSwitches)
 {
     _switches = new SwitchResult[numSwitches];
     for (int i = 0; i < numSwitches; i++)
     {
         _switches[i] = new SwitchResult();
     }
 }
Пример #3
0
    public IEnumerator CheckGameBegan(string gameRole)
    {
        SwitchResult GameStartedSwitch = new SwitchResult();

        yield return(StartCoroutine(MainConnectionScript.CheckDomoticzSwitch(gameStartedSwitchidx, GameStartedSwitch)));

        if (GameStartedSwitch.Data == "On")
        {
            SceneManager.LoadSceneAsync(gameRole);
        }
        yield return(StartCoroutine(CheckGameBegan(gameRole)));
    }
    public IEnumerator CheckIfTriggeredDomoticz()
    {
        SwitchResult DistanceSensorSwitch = new SwitchResult();

        yield return(StartCoroutine(mainConnectionScript.CheckDomoticzSwitch(distanceSensorTriggeredidx, DistanceSensorSwitch)));

        // Needs to be dynamic!
        //yield return new WaitForSeconds(1.0f);
        if (DistanceSensorSwitch.Data == "On")
        {
            Debug.Log("Lmao!");
            TriggerSensor();
        }
    }
Пример #5
0
        public void Hash(string stringToHash, ref uint hashOne, ref uint hashTwo)
        {
            stringToHash += '\0';

            _strToHash = stringToHash;

            int len = _strToHash.Length - 1;

            _hashPartTwo   = (uint)(hashOne + len + 0xdeadbeef);
            _hashPartThree = (uint)(hashOne + len + 0xdeadbeef);
            _hashPartOne   = (hashTwo + _hashPartTwo);

            if (len > 12)
            {
                FirstBlockUseDwords(ref len);
            }

            SwitchResult switchResult = SwitchUseDwords(len);

            if (switchResult == SwitchResult.Final)
            {
                hashOne = _hashPartOne;
                hashTwo = _hashPartTwo;

                return;
            }

            if (switchResult == SwitchResult.Continue)
            {
                _hashPartThree += _strToHash[_strReadPos];
            }

            // Bitmath

            uint v52 = (_hashPartTwo ^ _hashPartOne) - ((_hashPartTwo << 14) ^ (_hashPartTwo >> 18));
            uint v53 = (_hashPartThree ^ v52) - ((v52 << 11) ^ (v52 >> 21));
            uint v54 = (v53 ^ _hashPartTwo) -
                       ((((_hashPartThree ^ v52) - ((v52 << 11) ^ (v52 >> 21))) >> 7) ^
                        (((_hashPartThree ^ v52) - ((v52 << 11) ^ (v52 >> 21))) << 25));

            uint v55 = (v54 ^ v52) - ((v54 << 16) ^ (v54 >> 16));
            uint v56 = (v53 ^ v55) - (16 * v55 ^ (v55 >> 28));

            _hashPartTwo = (v56 ^ v54) - ((v56 << 14) ^ (v56 >> 18));
            _hashPartOne = (_hashPartTwo ^ v55) - ((_hashPartTwo >> 8) ^ (_hashPartTwo << 24));

            hashOne = _hashPartOne;
            hashTwo = _hashPartTwo;
        }
Пример #6
0
    // If game knows hider is hidden, stop checking
    public IEnumerator CheckIfTriggeredDomoticz()
    {
        if (MainGamestateManager.hiderIsHidden == false)
        {
            SwitchResult DistanceSensorSwitch = new SwitchResult();
            yield return(StartCoroutine(MainConnectionScript.CheckDomoticzSwitch(distanceSensorTriggeredidx, DistanceSensorSwitch)));

            // Needs to be dynamic!
            if (DistanceSensorSwitch.Data == "On")
            {
                TriggerSensor();
                MainGamestateManager.hiderIsHidden = true;
            }
        }
    }
    public IEnumerator StartSeekerSeekingFase()
    {
        // enable movement
        GameObject SeekerPlayerGameObject = GameObject.Find("Seeker");

        SeekerPlayerGameObject.GetComponent <PlayerMovementScript>().CanMove = true;

        SwitchResult HiderIsCaughtSwitch = new SwitchResult();

        HiderIsCaughtSwitch.Data = "Off";
        // GameObject which is a collection of UI elements for the hiding timer. Is a child of a general collection of UI elements.
        GameObject RoundTimer = CanvasPlayerUI.transform.Find("RoundTimer").gameObject;

        RoundTimer.SetActive(true);

        // Is the script component of the UI that handles changing of HideTimer UI text.
        CountdownUIScript RoundTimerCountdown = RoundTimer.GetComponent <CountdownUIScript>();

        for (int i = secondsToFind; i > 0; i--)
        {
            // Changes text in UI.
            RoundTimerCountdown.ChangeCountdownNumber("You have ", i, "seconds to catch the hider!");
            yield return(new WaitForSecondsRealtime(1.0f));

            StartCoroutine(MainConnectionScript.CheckDomoticzSwitch(hiderIsCaughtSwitchidx, HiderIsCaughtSwitch));
            if (HiderIsCaughtSwitch.Data == "On")
            {
                hiderIsFound = true;
            }

            // Ends timer is player hides so player doesnt have to wait for the timer to run out
            if (hiderIsFound)
            {
                i = 0;
            }
        }
        if (hiderIsFound)
        {
            StartCoroutine(MainConnectionScript.ChangeDomoticzSwitchStatus(hiderIsCaughtSwitchidx, true));
            SeekerWon("HiderWasCaught");
        }
        else
        {
            SeekerLost("TimeRanOut");
        }
        StopSeekerSeekingFase();
    }
Пример #8
0
    public IEnumerator CheckDomoticzSwitch(int idx, SwitchResult SensorSwitch)
    {
        string switchCommandString = connectionString + string.Format("type=devices&rid={0}", idx);

        using (UnityWebRequest checkSwitchRequest = UnityWebRequest.Get(switchCommandString))
        {
            yield return(checkSwitchRequest.SendWebRequest());

            if (checkSwitchRequest.error != null)
            {
                Debug.Log(checkSwitchRequest.error);
                // No result given. Need error check in caller
            }
            else
            {
                Switch HidableObjectSwitch = JsonUtility.FromJson <Switch>(checkSwitchRequest.downloadHandler.text);
                Debug.Log(HidableObjectSwitch.result[0].Data);
                // Transfer status to switch
                SensorSwitch.Data = HidableObjectSwitch.result[0].Data;
            }
        }
    }
    public void WaitForGameToStart(string hiderOrSeeker)
    {
        SwitchResult GameStartedSwitch = new SwitchResult();

        if (hiderOrSeeker == "HiderPlayerScene")
        {
            MainTurnMapScript.canTurn = false;
            CanvasPlayerUI.transform.Find("WaitingForStartHider").gameObject.SetActive(true);
            StartCoroutine(CheckIfGameStarted(GameStartedSwitch));
        }

        if (hiderOrSeeker == "SeekerPlayerScene")
        {
            // disable locking cursor to mid of screen
            Cursor.lockState = CursorLockMode.Confined;
            // Disable movement
            GameObject SeekerPlayerGameObject = GameObject.Find("Seeker");
            SeekerPlayerGameObject.GetComponent <PlayerMovementScript>().CanMove = false;

            // Activate UI with a button. If button pressed: excecute SeekerInitiatedStartGame();
            CanvasPlayerUI.transform.Find("WaitingForStartSeeker").gameObject.SetActive(true);
        }
    }