Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (!updatedSceneToClient && GlobalController.Instance.getConnectionStatus())
        {
            sender.prepareNewMessage4Client(PublicLabFactors.MessageType.Scene);
            updatedSceneToClient = true;
        }


        if (curPhase == Lab0Phase.in_lab0_scene)
        {
            switchPhase(Lab0Phase.check_connection);
        }
        else if (curPhase == Lab0Phase.check_connection)
        {
            // check if client is in the lab scene
            if (GlobalController.Instance.getConnectionStatus())
            {
                trialController.setConnectionStatus(true);
                switchPhase(Lab0Phase.check_client_scene);
            }
        }
        else if (curPhase == Lab0Phase.check_client_scene)
        {
            if (GlobalController.Instance.curClientScene == PublicLabFactors.LabScene.Lab0_tap_5_5)
            {
                switchPhase(Lab0Phase.in_experiment);
            }
        }
        else if (curPhase == Lab0Phase.in_experiment)
        {
            trialController.setExperimentStatus(true);
        }
        else if (curPhase == Lab0Phase.end_experiment)
        {
            trialController.setExperimentStatus(false);
            curPhase = Lab0Phase.wait_to_back_to_entry;
        }
        else if (curPhase == Lab0Phase.wait_to_back_to_entry)
        {
            uiController.btnBack.gameObject.SetActive(true);
        }
        else if (curPhase == Lab0Phase.out_lab0_scene)
        {
            if (GlobalController.Instance.haveNextBlock())
            {
                GlobalController.Instance.moveToNextBlock();
            }
            else
            {
                sender.prepareNewMessage4Client(PublicLabFactors.MessageType.Command,
                                                PublicLabFactors.ServerCommand.server_say_end_lab);
                uiController.ShowTheEndText();
                GlobalController.Instance.writeAllBlocksFinishedFlagToFile();
            }
        }
    }
Esempio n. 2
0
 public void moveToPhase(Lab0Phase p0)
 {
     switchPhase(p0);
 }
Esempio n. 3
0
 private void switchPhase(Lab0Phase p0)
 {
     curPhase = p0;
     GlobalController.Instance.curLab0Phase = curPhase;
 }
Esempio n. 4
0
    // Update is called once per frame
    void Update()
    {
        if (!updatedSceneToServer && GlobalController.Instance.getConnectionStatus())
        {
            sender.prepareNewMessage4Server(PublicLabFactors.MessageType.Scene);
            updatedSceneToServer = true;
        }

        if (curPhase != prevPhase)
        {
            GlobalController.Instance.curLab0Phase = curPhase;
            Debug.Log("Lab0Phase changed: " + prevPhase + " -> " + curPhase);
            prevPhase = curPhase;
        }

        if (curPhase == Lab0Phase.in_lab0_scene)
        {
            switchPhase(Lab0Phase.check_connection);
        }
        else if (curPhase == Lab0Phase.check_connection)
        {
            // check if client is in the lab scene
            if (GlobalController.Instance.getConnectionStatus())
            {
                trialController.setConnectionStatus(true);
                switchPhase(Lab0Phase.check_client_scene);
            }
        }
        else if (curPhase == Lab0Phase.check_client_scene)
        {
            if (GlobalController.Instance.curServerScene == PublicLabFactors.LabScene.Lab0_tap_5_5)
            {
                switchPhase(Lab0Phase.in_experiment);
            }
        }
        else if (curPhase == Lab0Phase.in_experiment)
        {
            trialController.setExperimentStatus(true);
        }
        else if (curPhase == Lab0Phase.end_experiment)
        {
            trialController.setExperimentStatus(false);
            curPhase = Lab0Phase.wait_to_back_to_entry;
        }
        else if (curPhase == Lab0Phase.wait_to_back_to_entry)
        {
            if (GlobalController.Instance.serverCmdQueue.Count != 0 &&
                GlobalController.Instance.serverCmdQueue.Peek() == PublicLabFactors.ServerCommand.server_say_exit_lab)
            {
                finishCurrentServerCmdExcution();
                switchPhase(Lab0Phase.out_lab0_scene);
            }
            else if (GlobalController.Instance.serverCmdQueue.Count != 0 &&
                     GlobalController.Instance.serverCmdQueue.Peek() == PublicLabFactors.ServerCommand.server_say_end_lab)
            {
                finishCurrentServerCmdExcution();
                uiController.ShowTheEndText();
            }
        }
        else if (curPhase == Lab0Phase.out_lab0_scene)
        {
            GlobalController.Instance.curEntryPhase = PublicLabFactors.WelcomePhase.check_server_scene;
            Debug.Log("lab0Phase: back to entry scene soon");
            string entrySceneName = (PublicLabFactors.LabScene.Entry_scene).ToString();
            SceneManager.LoadScene(entrySceneName);
        }
    }