Exemple #1
0
        public bool TryToAcquire(string guid, Player player, SimulationLockType requestedLock)
        {
            lock (playerLocksByGuid)
            {
                PlayerLock playerLock;

                // If no one is simulating then aquire a lock for this player
                if (!playerLocksByGuid.TryGetValue(guid, out playerLock))
                {
                    playerLocksByGuid[guid] = new PlayerLock(player, requestedLock);
                    return(true);
                }

                // If this player owns the lock then they are already simulating
                if (playerLock.Player == player)
                {
                    // update the lock type in case they are attempting to downgrade
                    playerLocksByGuid[guid] = new PlayerLock(player, requestedLock);
                    return(true);
                }

                // If the current lock owner has a transient lock then only override if we are requesting exclusive access
                if (playerLock.LockType == SimulationLockType.TRANSIENT && requestedLock == SimulationLockType.EXCLUSIVE)
                {
                    playerLocksByGuid[guid] = new PlayerLock(player, requestedLock);
                    return(true);
                }

                // We must be requesting a transient lock and the owner already has a lock (either transient or exclusive).
                // there is no way to break it so we will return false.
                return(false);
            }
        }
Exemple #2
0
    void checkBackPressed()
    {
        for (var i = 0; i < controllerCount; i++)
        {
            if (Input.GetKeyDown("joystick " + (i + 1) + " button 1"))
            {
                // normal back
                if (!cbIconList[i].IsLocked)
                {
                    isBackPressed = true;
                    curtain.close();
                }

                // free player lock
                else
                {
                    PlayerLock playerLock = cbIconList[i];

                    playerLock.IsLocked = false;
                    playerLock.LockTime = 0;

                    // if start is initiated, reverse it
                    if (start_initiated)
                    {
                        start_initiated = false;
                        cb_ready.SetActive(false);
                    }
                }
            }
        }
    }
    // Use this for initialization
    void Start()
    {
        controllerCount = Input.GetJoystickNames().Length;

        playerColors = new List<Color32>();
        playerColors.Add(P1_Color);
        playerColors.Add(P2_Color);
        playerColors.Add(P3_Color);
        playerColors.Add(P4_Color);

        charList = new List<CharacterObject>();
        foreach(CharacterObject charObject in GameObject.FindObjectsOfType<CharacterObject>())
            charList.Add(charObject);

        csList = new List<GameObject>();
        for (var i = 0; i < characterCount; i++)
        {
            GameObject characterSelectObject = transform.Find("CS " + (i + 1)).gameObject;
            csList.Add(characterSelectObject);

            Text titleObject = characterSelectObject.transform.Find("title").gameObject.GetComponent<Text>();
            titleObject.text = charList[i].name;
        }

        csIconList = new List<List<GameObject>>();
        for (var i = 0; i < characterCount; i++)
        {
            csIconList.Add(new List<GameObject>());

            for (var i2 = 0; i2 < 4; i2++)
            {
                csIconList[i].Add(csList[i].transform.Find("icon " + (i2+1)).gameObject);
            }
        }

        pbList = new List<GameObject>();
        for (var i = 1; i < 5; i++) pbList.Add(transform.Find("PB " + i).gameObject);

        dbList = new List<GameObject>();
        for (var i = 1; i < 5; i++) dbList.Add(transform.Find("DB " + i).gameObject);

        cb = transform.Find("CB").gameObject;
        cbIconList = new List<PlayerLock>();
        for (var i = 1; i < 5; i++)
        {
            Image img = cb.transform.Find("P" + i).gameObject.GetComponent<Image>();
            Image ico = cb.transform.Find("P" + i + " Check").gameObject.GetComponent<Image>();
            img.color = playerColors[i-1];
            PlayerLock pl = new PlayerLock(img, ico, TIME_TO_LOCK);
            cbIconList.Add(pl);
        }

        cb_ready = transform.Find("CB Ready").gameObject;
        cb_ready_text = cb_ready.transform.Find("Text").gameObject.GetComponent<Text>();
        cb_ready_time = 0;
        start_initiated = false;

        characterSelections = new List<List<int>>();
        for (var i = 0; i < characterCount; i++) characterSelections.Add(new List<int>());
        for (var i = 0; i < controllerCount; i++) characterSelections[0].Add(i);

        playerSelections = new List<int>();
        for (var i = 0; i < controllerCount; i++) playerSelections.Add(0);

        timeSinceLastMovement = new List<float>();
        for (var i = 0; i < controllerCount; i++) timeSinceLastMovement.Add(0);

        isBackPressed = false;
        curtain = transform.Find("Curtain").gameObject.GetComponent<Curtain>();

        generateCharacterUI();
        generatePlayerUI();

        setCharSelect(0, 0);
        setCharSelect(1, 0);
        setCharSelect(2, 0);
        setCharSelect(3, 0);
    }
Exemple #4
0
    // Use this for initialization
    void Start()
    {
        controllerCount = Input.GetJoystickNames().Length;

        playerColors = new List <Color32>();
        playerColors.Add(P1_Color);
        playerColors.Add(P2_Color);
        playerColors.Add(P3_Color);
        playerColors.Add(P4_Color);

        charList = new List <CharacterObject>();
        foreach (CharacterObject charObject in GameObject.FindObjectsOfType <CharacterObject>())
        {
            charList.Add(charObject);
        }

        csList = new List <GameObject>();
        for (var i = 0; i < characterCount; i++)
        {
            GameObject characterSelectObject = transform.Find("CS " + (i + 1)).gameObject;
            csList.Add(characterSelectObject);

            Text titleObject = characterSelectObject.transform.Find("title").gameObject.GetComponent <Text>();
            titleObject.text = charList[i].name;
        }

        csIconList = new List <List <GameObject> >();
        for (var i = 0; i < characterCount; i++)
        {
            csIconList.Add(new List <GameObject>());

            for (var i2 = 0; i2 < 4; i2++)
            {
                csIconList[i].Add(csList[i].transform.Find("icon " + (i2 + 1)).gameObject);
            }
        }

        pbList = new List <GameObject>();
        for (var i = 1; i < 5; i++)
        {
            pbList.Add(transform.Find("PB " + i).gameObject);
        }

        dbList = new List <GameObject>();
        for (var i = 1; i < 5; i++)
        {
            dbList.Add(transform.Find("DB " + i).gameObject);
        }

        cb         = transform.Find("CB").gameObject;
        cbIconList = new List <PlayerLock>();
        for (var i = 1; i < 5; i++)
        {
            Image img = cb.transform.Find("P" + i).gameObject.GetComponent <Image>();
            Image ico = cb.transform.Find("P" + i + " Check").gameObject.GetComponent <Image>();
            img.color = playerColors[i - 1];
            PlayerLock pl = new PlayerLock(img, ico, TIME_TO_LOCK);
            cbIconList.Add(pl);
        }

        cb_ready        = transform.Find("CB Ready").gameObject;
        cb_ready_text   = cb_ready.transform.Find("Text").gameObject.GetComponent <Text>();
        cb_ready_time   = 0;
        start_initiated = false;

        characterSelections = new List <List <int> >();
        for (var i = 0; i < characterCount; i++)
        {
            characterSelections.Add(new List <int>());
        }
        for (var i = 0; i < controllerCount; i++)
        {
            characterSelections[0].Add(i);
        }

        playerSelections = new List <int>();
        for (var i = 0; i < controllerCount; i++)
        {
            playerSelections.Add(0);
        }

        timeSinceLastMovement = new List <float>();
        for (var i = 0; i < controllerCount; i++)
        {
            timeSinceLastMovement.Add(0);
        }

        isBackPressed = false;
        curtain       = transform.Find("Curtain").gameObject.GetComponent <Curtain>();

        generateCharacterUI();
        generatePlayerUI();

        setCharSelect(0, 0);
        setCharSelect(1, 0);
        setCharSelect(2, 0);
        setCharSelect(3, 0);
    }
Exemple #5
0
    void animateTest()
    {
        for (var i = 0; i < controllerCount; i++)
        {
            if (timeSinceLastMovement[i] < TIME_TO_MOVE && Time.fixedTime > 1)
            {
                int   iconIndex = characterSelections[playerSelections[i]].IndexOf(i);
                float scale     = timeSinceLastMovement[i] / TIME_TO_MOVE;
                csIconList[playerSelections[i]][iconIndex].transform.localScale = new Vector3(scale, scale, 1);
            }

            // player lock code

            PlayerLock playerLock = cbIconList[i];
            Vector3    iconScale  = playerLock.LockBackground.transform.localScale;

            if (Input.GetKey("joystick " + (i + 1) + " button 0"))
            {
                if (!playerLock.IsLocked)
                {
                    playerLock.LockTime += Time.deltaTime;

                    if (playerLock.LockTime >= playerLock.TimeToLock)
                    {
                        playerLock.IsLocked       = true;
                        iconScale.y               = 1;
                        playerLock.LockIcon.color = new Color32(33, 33, 33, 255);
                        playerLock.LockBackground.transform.localScale = iconScale;
                    }
                }
            }

            else
            {
                if (playerLock.LockTime > 0 && !playerLock.IsLocked)
                {
                    playerLock.LockTime -= Time.deltaTime;
                }

                if (playerLock.LockTime < 0)
                {
                    playerLock.LockTime = 0;
                }
            }

            if (!playerLock.IsLocked)
            {
                iconScale.y = playerLock.LockTime / playerLock.TimeToLock;
                playerLock.LockBackground.transform.localScale = iconScale;
            }
        }

        // game start code
        if (!start_initiated)
        {
            bool isAllLocked = true;
            for (var i = 0; i < controllerCount; i++)
            {
                if (!cbIconList[i].IsLocked)
                {
                    isAllLocked = false;
                }
            }

            if (isAllLocked)
            {
                start_initiated = true;
                cb_ready.SetActive(true);
                cb_ready_time      = 0;
                currentStartSecond = (int)(START_TIME - cb_ready_time) + 1;
                cb_ready_text.text = "Starting in " + currentStartSecond;
            }
        }

        else
        {
            if (cb_ready_time > START_TIME)
            {
                // start dungeon
                cb_ready_text.text = "Starting...";

                string sceneName;
                switch (PlayerPrefs.GetString("mode"))
                {
                case "dungeon": sceneName = "split_screen_test"; break;

                case "arena": sceneName = "arena_scene"; break;

                case "oddball": sceneName = "oddball_scene"; break;

                default: sceneName = "split_screen_test"; break;
                }

                SceneManager.LoadScene(sceneName);
                curtain.instantOpen();
            }

            else
            {
                int tempCurSec = currentStartSecond;
                cb_ready_time     += Time.deltaTime;
                currentStartSecond = (int)(START_TIME - cb_ready_time) + 1;

                // if second changes, update text
                if (tempCurSec != currentStartSecond)
                {
                    cb_ready_text.text = "Starting in " + currentStartSecond;
                }

                //
                if (!curtain.isRunning && curtain.transitionTime > (START_TIME - cb_ready_time))
                {
                    curtain.close();
                }
            }
        }
    }