Пример #1
0
//    public void TurnFinished(int numberSelectedDuringTurn){
//
//        //Need to move all code away from this function into PlayerScript for consistency.
//        return;
//
//        bool turnPlayerDetected = false;
//        print("Tick validity");
//
//        List<PhotonPlayerScript> clientScripts = new List<PhotonPlayerScript>();
//
//        if(AllPlayersObj == null) AllPlayersObj = ConnectedPlayersStaticScript.instance;
//        foreach (Transform child in AllPlayersObj.transform)
//        {
//            PhotonPlayerScript clientPlayerScript = child.gameObject.GetComponent<PhotonPlayerScript>();
//
//            clientScripts.Add(clientPlayerScript);
//
//        }
//
//        for(int i = 0; i < clientScripts.Count; i++){
//            PhotonPlayerScript clientPlayerScript = clientScripts[i];
//            if(clientPlayerScript.isTurn == true){
//                clientPlayerScript.isTurn = false;
//                turnPlayerDetected = true;
//            }else if(turnPlayerDetected == true){
//                if(clientPlayerScript.gameWon == false){
//                    clientPlayerScript.isTurn = true;
//                    return;
//                }
//            }
//        }
//
//        //If it survived the check, then select first player.
//        foreach (Transform child in AllPlayersObj.transform)
//        {
//            PhotonPlayerScript clientPlayerScript = child.gameObject.GetComponent<PhotonPlayerScript>();
//            if(clientPlayerScript.gameWon == false){
//                clientPlayerScript.isTurn = true;
//                return;
//            }
//        }
//    }

    void FixedUpdate()
    {
        //This code isnt supposed to be run if game has allready started.
        if (PhotonGameManagerBingo.scriptInstance.gameStarted)
        {
            return;
        }

        winnersCount = 0;
        if (AllPlayersObj == null)
        {
            AllPlayersObj = ConnectedPlayersStaticScript.instance;
        }
        foreach (Transform child in AllPlayersObj.transform)
        {
            PhotonPlayerScript clientPlayerScript = child.gameObject.GetComponent <PhotonPlayerScript>();
            if (clientPlayerScript.gameWon)
            {
                winnersCount += 1;
            }
        }

        //Assume everyone's ready.
        bool everyOneReady = true;

        if (AllPlayersObj == null)
        {
            AllPlayersObj = ConnectedPlayersStaticScript.instance;
        }

        //Constantly check if all players are ready;
        foreach (Transform child in AllPlayersObj.transform)
        {
            PhotonPlayerScript clientPlayerScript = child.gameObject.GetComponent <PhotonPlayerScript>();
            if (!clientPlayerScript.ready)
            {
                everyOneReady = false;
            }
        }

        if (PhotonNetwork.IsMasterClient)
        {
            DisplayContentManager.scriptInstance.StartButtonScript.gameObject.SetActive(true);
        }


        EveryOneReady = everyOneReady;
        if (PhotonNetwork.IsMasterClient)
        {
            DisplayContentManager.scriptInstance.StartButtonScript.interactable = EveryOneReady;
        }
    }
    void FixedUpdate()
    {
        if (AllPlayersObj == null)
        {
            AllPlayersObj = ConnectedPlayersStaticScript.instance.gameObject;
        }

        string connectedListString = "";

        List <Transform> childrenList = AllPlayersObj.transform.Cast <Transform>().ToList();

        Transform child;

        for (int i = 0; childrenList.Count > i; i++)
        {
            child = childrenList[i];
            PhotonPlayerScript clientPlayerScript = child.gameObject.GetComponent <PhotonPlayerScript>();

            string clientDisplayName = clientPlayerScript.playerName;

            //If game started, get from PhotonGameManagerBingo.
            if (PhotonGameManagerBingo.scriptInstance.gameStarted == true)
            {
                //Do something if player won game.
                if (clientPlayerScript.gameWon == true)
                {
                    clientDisplayName += " (Won " + clientPlayerScript.winOrder + " )";
                }

                //If this player yet to win, do somethign if its turn.
                else if (clientPlayerScript.isTurn)
                {
                    clientDisplayName += " (Current Turn)";
                }
            }

            //If still in selection round, check if player ready.
            else if (clientPlayerScript.ready)
            {
                clientDisplayName += " (Ready)";
            }

            clientDisplayName   += "\n";
            connectedListString += clientDisplayName;
        }

        //Set the player display list text.
        connectedPlayersText.text = connectedListString;
    }
Пример #3
0
    void Update()
    {
        if (!transformed)
        {
            ChangeParent();
        }

        if (AllPlayersObj == null)
        {
            AllPlayersObj = ConnectedPlayersStaticScript.instance;
        }

        if (!photonView.IsMine)
        {
            return;
        }

        //If game started.
        if (PhotonGameManagerBingo.scriptInstance.gameStarted)
        {
            //Find who has the turn...
            PhotonPlayerScript mostCurrentTurnSciptInstance = null;

            List <PhotonPlayerScript> otherPhotonPlayerScripts = AllPlayersObj.GetComponentsInChildren <PhotonPlayerScript>().ToList();;

            for (int i = 0; i < otherPhotonPlayerScripts.Count; i++)
            {
                if (otherPhotonPlayerScripts[i].isTurn)
                {
                    mostCurrentTurnSciptInstance = otherPhotonPlayerScripts[i];
                    break;
                }
            }

            //If game just started...
            if (currentTurnScriptInstance == null)
            {
                currentTurnScriptInstance = mostCurrentTurnSciptInstance;
            }
            else if (currentTurnScriptInstance != mostCurrentTurnSciptInstance)
            {
                //TODO: Run this script only if others turn Finished?

                //So turn changed and previous turn just finished.
                //Now we need to update our cards with data from turn.

                //First check if the number is updated. Return if not.
                if (PhotonPlayerScript.scriptInstance.selfId == currentTurnScriptInstance.nextPlayerid)
                {
                    PhotonPlayerScript.scriptInstance.isTurn = true;
                    mostCurrentTurnSciptInstance             = this;
                }

                //Update Cards now.
                PhotonGameManagerBingo.scriptInstance.OtherPlayersTurnFinished(currentTurnScriptInstance.thisTurnNumberSelected);

                //Now we know whose current turn.
                if (mostCurrentTurnSciptInstance != null)
                {
                    currentTurnScriptInstance = mostCurrentTurnSciptInstance;
                }
                print("Updating cards now.");
            }
        }
    }
Пример #4
0
 public void StartLocalPlayer()
 {
     scriptInstance = this;
     selfId         = PhotonNetwork.LocalPlayer.ActorNumber;
     nextPlayerid   = PhotonNetwork.LocalPlayer.GetNext().ActorNumber;
 }