Пример #1
0
 public void BtnYes()
 {
     if (GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().pausedState == 1)
     {
         if (NetworkManager.IsConnected())
         {
             NetworkManager.DebugLog("Cannot restart!\n");
         }
         else
         {
             SceneManager.LoadScene("GameScene");
         }
     }
     else if (GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().pausedState == 2)
     {
         if (NetworkManager.IsConnected())
         {
             NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
             networkLogic.AfterActionDecision(NetworkGameLogic.GetPlayerNumber(), NetworkGameLogic.AFTERMATH_ACTION.QUIT);
         }
         else
         {
             SceneManager.LoadScene("MainMenu");
         }
     }
 }
Пример #2
0
    void ResetVars()
    {
        gridEffect_growStage = 0;
        startTime            = 300.0f;
        gameDuration         = 0.0f;
        isPaused             = false;
        isEmoteScreen        = false;

        timerP1 = timerP2 = GlobalScript.Instance.timePerTurn;
        nameP1  = GlobalScript.Instance.nameP1;
        nameP2  = GlobalScript.Instance.nameP2;

        GUINameP1.GetComponent <Text>().text = nameP1;
        GUINameP2.GetComponent <Text>().text = nameP2;

        GUICfmNewGame.SetActive(false);
        GUICfmEndGame.SetActive(false);
        GUICfmMainMenu.SetActive(false);
        SetCfmAlpha(false);

        GUICenterText.transform.localScale = new Vector3(4.0f, 4.0f, 1.0f);
        GUICfmFrame.SetActive(false);

        GUIEmoteScreen.SetActive(false);
        //GUIP1EmoteSpeech.SetActive(false);
        //GUIP2EmoteSpeech.SetActive(false);
        GUIP1EmoteSpeech.transform.localScale = Vector3.zero;
        GUIP2EmoteSpeech.transform.localScale = Vector3.zero;
        p1EmoteTimer = Defines.EMOTE_SHOW_TIME;
        p2EmoteTimer = Defines.EMOTE_SHOW_TIME;

        emoteP1UpAnimation           = false;
        emoteP1DownAnimation         = false;
        emoteP2UpAnimation           = false;
        emoteP2DownAnimation         = false;
        emoteP1AnimTimer             = 0.0f;
        emoteP2AnimTimer             = 0.0f;
        addedMoney                   = false;
        Defines.Instance.playerScore = 0;
        isBGSet = false;

        if (NetworkManager.IsConnected() && !NetworkManager.IsPlayerOne())
        {
            ChangeEmoteButtonColors();
        }

        isCDSoundPlayed6 = isCDSoundPlayed5 = isCDSoundPlayed4 = isCDSoundPlayed3 = isCDSoundPlayed2 = isCDSoundPlayed1 = false;

        if (GetComponent <TurnHandler>() != null)
        {
            GetComponent <TurnHandler>().UpdatePlayerIcons();
            SetAvatar();
        }

        if (NetworkManager.IsConnected() && !NetworkManager.IsPlayerOne())
        {
            NetworkGameLogic.GetNetworkGameLogic().SendReadySignal(GlobalScript.Instance.timePerTurn);
        }
    }
Пример #3
0
    public void BtnYes()
    {
        if (GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().pausedState == 1)
        {
            if (NetworkManager.IsConnected())
            {
                NetworkManager.DebugLog("Cannot restart!\n");
            }
            else
            {
                GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().UpdateAnalyticsGameEnd();
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.CLICK);
                }
                BGManager.Instance.partsParent.SetActive(false);
                BackToMainMenu(2, false);
                Adverts.Instance.RandomShowAd();
            }
        }
        else if (GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().pausedState == 2)
        {
            GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().UpdateAnalyticsGameEnd();
            BGManager.Instance.partsParent.SetActive(false);

            GameObject [] allGUI = GameObject.FindGameObjectsWithTag("GUIManager");
            foreach (GameObject curr in allGUI)
            {
                Destroy(curr);
            }

            if (NetworkManager.IsConnected())
            {
                Defines.TURN turn = GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().turn;
                Debug.Log("ttt: : " + turn);
                if (turn == Defines.TURN.P1 || turn == Defines.TURN.P2 || turn == Defines.TURN.NOTSTARTED)
                {
                    NetworkManager.Disconnect();
                }
                else
                {
                    NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
                    networkLogic.AfterActionDecision(NetworkGameLogic.GetPlayerNumber(), NetworkGameLogic.AFTERMATH_ACTION.QUIT);
                    GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().turn = Defines.TURN.DISCONNECTED;
                    NetworkManager.Disconnect();
                }
            }

            if (AudioManager.Instance)
            {
                AudioManager.Instance.PlaySoundEvent(SOUNDID.CLICK);
            }
            BGManager.Instance.partsParent.SetActive(false);
            BackToMainMenu(1, false);
            Adverts.Instance.RandomShowAd();
        }
    }
Пример #4
0
 public void BtnNewGame()
 {
     // New Game
     if (NetworkManager.IsConnected())
     {
         NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
         networkLogic.AfterActionDecision(NetworkGameLogic.GetPlayerNumber(), NetworkGameLogic.AFTERMATH_ACTION.RESTART);
         GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().WaitingForOtherPlayer();
     }
     else
     {
         SceneManager.LoadScene("GameScene");
     }
 }
Пример #5
0
    public void SetNetworkReady(float timer)
    {
        if (!NetworkManager.IsConnected())
        {
            return;
        }

        networkStart = true;
        timerP1      = timerP2 = GlobalScript.Instance.timePerTurn = Mathf.Max(timer, GlobalScript.Instance.timePerTurn);

        if (NetworkManager.IsPlayerOne())
        {
            NetworkGameLogic.GetNetworkGameLogic().SendReadySignal(GlobalScript.Instance.timePerTurn);
        }
    }
Пример #6
0
    public void BtnNewGame()
    {
        BGManager.Instance.partsParent.SetActive(false);
        if (AudioManager.Instance)
        {
            AudioManager.Instance.PlaySoundEvent(SOUNDID.BGM);
        }

        // New Game
        if (NetworkManager.IsConnected())
        {
            NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
            networkLogic.AfterActionDecision(NetworkGameLogic.GetPlayerNumber(), NetworkGameLogic.AFTERMATH_ACTION.RESTART);
            GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().WaitingForOtherPlayer();
        }
        else
        {
            SceneManager.LoadScene("GameScene");
        }
        //Adverts.Instance.RandomShowAd();
    }
Пример #7
0
    void BtnClickEmote(string emote)
    {
        if (NetworkManager.IsConnected())
        {
            if (NetworkManager.IsPlayerOne())
            {
                GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().ShowP1EmoteSpeech(emote);
            }
            else
            {
                GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().ShowP2EmoteSpeech(emote);
            }

            // Network logic
            NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
            networkLogic.SendEmote(emote);
        }
        else
        {
            if (GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().turn == Defines.TURN.P1)
            {
                GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().ShowP1EmoteSpeech(emote);
            }
            else
            {
                GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().ShowP2EmoteSpeech(emote);
            }
        }

        GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().HideEmoteMenu();

        if (AudioManager.Instance)
        {
            AudioManager.Instance.PlaySoundEvent(SOUNDID.CLICK);
        }
    }
Пример #8
0
    void BtnClickEmote(string emote)
    {
        if (NetworkManager.IsConnected())
        {
            if (NetworkManager.IsPlayerOne())
            {
                GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().ShowP1EmoteSpeech(emote);
            }
            else
            {
                GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().ShowP2EmoteSpeech(emote);
            }

            // Network logic
            NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
            networkLogic.SendEmote(emote);
        }
        else
        {
            GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().ShowP1EmoteSpeech(emote);
        }

        GameObject.FindGameObjectWithTag("GUIManager").GetComponent <GUIManagerScript>().HideEmoteMenu();
    }
Пример #9
0
    void OnMouseDown()
    {
        if (GlobalScript.Instance.isInputPaused)
        {
            return;
        }

        if (GetGUIManagerScript().isEmoteScreen)
        {
            return;
        }

        if (GetBoardScript().gameMode == Defines.GAMEMODE.AI &&
            GetTurnHandler().turn == GameObject.FindGameObjectWithTag("AIMiniMax").GetComponent <AIMiniMax>().AITurn)
        {
            if (gridState == 0)
            {
                PlaceOnGrid(4);
            }
            return;
        }

        if (GetBoardScript().gameMode == Defines.GAMEMODE.ONLINE &&
            ((NetworkManager.IsPlayerOne() && GetTurnHandler().turn != Defines.TURN.P1) ||
             (!NetworkManager.IsPlayerOne() && GetTurnHandler().turn != Defines.TURN.P2)))
        {
            if (gridState == 0)
            {
                PlaceOnGrid(4);
            }
            return;
        }

        //if(Input.touchCount != 1)
        //	return;

        // Don't do anything if the big grid is already won, or game hasn't started/has ended, or game is paused.
        if (parentGrid.GetComponent <BigGridScript>().gridWinner != 0 ||
            GetTurnHandler().turn == Defines.TURN.NOTSTARTED ||
            GetTurnHandler().turn == Defines.TURN.GAMEOVER ||
            GetGUIManagerScript().GUIEmoteScreen.GetActive() ||
            GetTurnHandler().pausedState != 0 ||
            GetTurnHandler().turn == Defines.TURN.DISCONNECTED)
        {
            return;
        }


        // Special Case: Tutorials
        if (TutorialScript.Instance.isTutorial)
        {
            if ((TutorialScript.Instance.tStage == TUTORIALSTAGE.PLACE_TOPLEFT_P) ||
                TutorialScript.Instance.tStage == TUTORIALSTAGE.ICON_HIGHLIGHTED)
            {
                if (GetBoardScript().activeBigGrid == 0 && gridID == 5 && parentGrid.GetComponent <BigGridScript>().bigGridID == 0)
                {
                    if (gridState == 0)
                    {
                        HighlightGrid();
                        TutorialScript.Instance.tStage = TUTORIALSTAGE.ICON_HIGHLIGHTED;
                    }
                    else if (gridState == 3)
                    {
                        ConfirmPlacement();
                        TutorialScript.Instance.tStage = TUTORIALSTAGE.OPPONENT_TURN1;
                    }
                }
                else
                {
                    if (gridState == 0)
                    {
                        TutorialScript.Instance.tStage = TUTORIALSTAGE.PLACE_TOPLEFT_P;
                        PlaceOnGrid(4);
                    }
                }
            }

            else if (TutorialScript.Instance.tStage == TUTORIALSTAGE.PLACE_BOTLEFT)
            {
                if (GetBoardScript().activeBigGrid == 6 && gridID == 2 && parentGrid.GetComponent <BigGridScript>().bigGridID == 6)
                {
                    if (gridState == 0)
                    {
                        HighlightGrid();
                    }
                    else if (gridState == 3)
                    {
                        ConfirmPlacement();
                        TutorialScript.Instance.tStage = TUTORIALSTAGE.OPPONENT_TURN2;
                    }
                }
                else
                {
                    if (gridState == 0)
                    {
                        PlaceOnGrid(4);
                    }
                }
            }

            else if (TutorialScript.Instance.tStage == TUTORIALSTAGE.PLACE_BOTRIGHT_P2)
            {
                if (GetBoardScript().activeBigGrid == 10 && gridID == 1 && parentGrid.GetComponent <BigGridScript>().bigGridID == 8)
                {
                    if (gridState == 0)
                    {
                        HighlightGrid();
                    }
                    else if (gridState == 3)
                    {
                        ConfirmPlacement();
                        TutorialScript.Instance.tStage = TUTORIALSTAGE.WIN;
                    }
                }
                else
                {
                    if (gridState == 0)
                    {
                        PlaceOnGrid(4);
                    }
                }
            }
        }

        // Check if node belongs to the activeGrid
        else
        {
            if (GetBoardScript().activeBigGrid == parentGrid.GetComponent <BigGridScript>().bigGridID ||
                GetBoardScript().activeBigGrid == 10)
            {
                // Highlight grid
                if (gridState == 0)
                {
                    if (GetBoardScript().gameMode == Defines.GAMEMODE.ONLINE)
                    {
                        NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
                        networkLogic.HighlightGrid(parentGrid.GetComponent <BigGridScript>().bigGridID, gridID);
                    }
                    else
                    {
                        HighlightGrid();
                    }
                }

                // Only allowed if grid is highlighted
                else if (gridState == 3)
                {
                    if (GetBoardScript().gameMode == Defines.GAMEMODE.ONLINE)
                    {
                        NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
                        networkLogic.ConfirmPlacement(parentGrid.GetComponent <BigGridScript>().bigGridID, gridID,
                                                      NetworkManager.IsPlayerOne() ? Defines.TURN.P1 : Defines.TURN.P2,
                                                      NetworkManager.IsPlayerOne() ? GetGUIManagerScript().timerP1 : GetGUIManagerScript().timerP2);

                        // Player is acting like server
                        if (NetworkManager.IsPlayerOne())
                        {
                            ConfirmPlacement();
                        }
                    }
                    else
                    {
                        ConfirmPlacement();
                    }
                }
            }
            else
            {
                if (gridState == 0)
                {
                    PlaceOnGrid(4);                     // Current grid is invalid (red)
                }
            }
        }
    }
Пример #10
0
    void UpdateTurnGUI()
    {
        // Whose Turn
        if (GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().turn == Defines.TURN.P1)
        {
            if (!TutorialScript.Instance.isTutorial && !isPaused)
            {
                timerP1 -= Time.deltaTime;
            }

            if (timerP1 < 6.0f && !isCDSoundPlayed6)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed6 = true;
            }
            if (timerP1 < 5.0f && !isCDSoundPlayed5)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed5 = true;
            }
            else if (timerP1 < 4.0f && !isCDSoundPlayed4)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed4 = true;
            }
            else if (timerP1 < 3.0f && !isCDSoundPlayed3)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed3 = true;
            }
            else if (timerP1 < 2.0f && !isCDSoundPlayed2)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed2 = true;
            }
            else if (timerP1 < 1.0f && !isCDSoundPlayed1)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed1 = true;
            }

            if (timerP1 <= 0.0f)
            {
                if (GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().gameMode != Defines.GAMEMODE.ONLINE)
                {
                    ChangeTurn();
                }
                else if (GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().gameMode == Defines.GAMEMODE.ONLINE && NetworkManager.IsPlayerOne())
                {
                    ChangeTurn();
                    Defines.TURN current = GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().turn;
                    NetworkGameLogic.GetNetworkGameLogic().ChangeTurn(Defines.TURN.P1, current);
                }
                else if (GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().gameMode == Defines.GAMEMODE.ONLINE && !NetworkManager.IsPlayerOne())
                {
                    timerP1 = 0.0f;
                }
                GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().ResetAllHighlights();
            }
            //GameObject.FindGameObjectWithTag("Board").GetComponent<BoardScript>().SetWinner((int)Defines.TURN.P2);

            GUINameP1.GetComponent <Text>().color = Color.green;

            if (timerP1 > 6.0f)
            {
                GUITimerP1.GetComponent <Text>().color = Color.green;
            }
            else
            {
                GUITimerP1.GetComponent <Text>().color = Defines.ICON_COLOR_P2;
            }
            GUINameP2.GetComponent <Text>().color  = Color.grey;
            GUITimerP2.GetComponent <Text>().color = Color.grey;

            GUITurn.GetComponent <Text>().text = GetTurnName();
            //GUITurn.GetComponent<Text>().color = Defines.ICON_COLOR_P1;

            // Icon Frame Animation during the player's turn
            FrameLeft.GetComponent <Animator>().SetBool("isMoving", true);
            FrameRight.GetComponent <Animator>().SetBool("isMoving", false);

            /*if(FrameLeft.transform.localScale.x < currMax)
             * {
             *      FrameLeft.transform.localScale = new Vector3(FrameLeft.transform.localScale.x + (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameLeft.transform.localScale.y + (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameLeft.transform.localScale.z);
             *
             *      ImageLeft.transform.localScale = new Vector3(ImageLeft.transform.localScale.x + (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageLeft.transform.localScale.y + (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageLeft.transform.localScale.z);
             * }
             *
             * if(FrameRight.transform.localScale.y > currMin)
             * {
             *      FrameRight.transform.localScale = new Vector3(FrameRight.transform.localScale.x + (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameRight.transform.localScale.y - (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameRight.transform.localScale.z);
             *
             *      ImageRight.transform.localScale = new Vector3(ImageRight.transform.localScale.x + (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageRight.transform.localScale.y - (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageRight.transform.localScale.z);
             * }*/
        }
        else if (GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().turn == Defines.TURN.P2)
        {
            if (!TutorialScript.Instance.isTutorial && !isPaused)
            {
                timerP2 -= Time.deltaTime;
            }

            if (timerP2 < 6.0f && !isCDSoundPlayed6)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed6 = true;
            }
            if (timerP2 < 5.0f && !isCDSoundPlayed5)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed5 = true;
            }
            else if (timerP2 < 4.0f && !isCDSoundPlayed4)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed4 = true;
            }
            else if (timerP2 < 3.0f && !isCDSoundPlayed3)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed3 = true;
            }
            else if (timerP2 < 2.0f && !isCDSoundPlayed2)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed2 = true;
            }
            else if (timerP2 < 1.0f && !isCDSoundPlayed1)
            {
                if (AudioManager.Instance)
                {
                    AudioManager.Instance.PlaySoundEvent(SOUNDID.COUNTDOWN);
                }
                isCDSoundPlayed1 = true;
            }

            if (timerP2 <= 0.0f)
            {
                if (GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().gameMode != Defines.GAMEMODE.ONLINE)
                {
                    ChangeTurn();
                }
                else if (GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().gameMode == Defines.GAMEMODE.ONLINE && NetworkManager.IsPlayerOne())
                {
                    ChangeTurn();
                    Defines.TURN current = GameObject.FindGameObjectWithTag("GUIManager").GetComponent <TurnHandler>().turn;
                    NetworkGameLogic.GetNetworkGameLogic().ChangeTurn(Defines.TURN.P2, current);
                }
                else if (GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().gameMode == Defines.GAMEMODE.ONLINE && !NetworkManager.IsPlayerOne())
                {
                    timerP2 = 0.0f;
                }
                GameObject.FindGameObjectWithTag("Board").GetComponent <BoardScript>().ResetAllHighlights();
            }
            //GameObject.FindGameObjectWithTag("Board").GetComponent<BoardScript>().SetWinner((int)Defines.TURN.P2);

            GUINameP1.GetComponent <Text>().color  = Color.grey;
            GUITimerP1.GetComponent <Text>().color = Color.grey;
            GUINameP2.GetComponent <Text>().color  = Color.green;
            if (timerP2 > 6.0f)
            {
                GUITimerP2.GetComponent <Text>().color = Color.green;
            }
            else
            {
                GUITimerP2.GetComponent <Text>().color = Defines.ICON_COLOR_P2;
            }

            GUITurn.GetComponent <Text>().text = GetTurnName();
            //GUITurn.GetComponent<Text>().color = Defines.ICON_COLOR_P2;

            // Icon Frame Animation during the player's turn
            FrameLeft.GetComponent <Animator>().SetBool("isMoving", false);
            FrameRight.GetComponent <Animator>().SetBool("isMoving", true);

            /*if(FrameLeft.transform.localScale.y > currMin)
             * {
             *      FrameLeft.transform.localScale = new Vector3(FrameLeft.transform.localScale.x - (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameLeft.transform.localScale.y - (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameLeft.transform.localScale.z);
             *
             *      ImageLeft.transform.localScale = new Vector3(ImageLeft.transform.localScale.x - (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageLeft.transform.localScale.y - (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageLeft.transform.localScale.z);
             * }
             *
             * if(FrameRight.transform.localScale.y < currMax)
             * {
             *      FrameRight.transform.localScale = new Vector3(FrameRight.transform.localScale.x - (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameRight.transform.localScale.y + (frameScaleSpeed * Time.deltaTime),
             *                                                      FrameRight.transform.localScale.z);
             *
             *      ImageRight.transform.localScale = new Vector3(ImageRight.transform.localScale.x - (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageRight.transform.localScale.y + (frameScaleSpeed * Time.deltaTime),
             *                                                      ImageRight.transform.localScale.z);
             * }*/
        }
        else
        {
            GUITurn.GetComponent <Text>().text = "";
        }
    }
Пример #11
0
    // Use this for initialization
    void Start()
    {
        m_bGameStart = false;

        // Initialise link
        CreateLink();
        m_Link      = m_LinkObject.GetComponent <Link>();
        m_LinkedGem = new List <Gem>();

        // Get spawning information
        m_HalfDimension = Camera.main.ScreenToWorldPoint(new Vector3((Screen.width), (Screen.height)));
        m_fLaneWidth    = m_HalfDimension.x * 2.0f / LANE_NUM;
        //m_fBaseGemDropSpeed = m_HalfDimension.y * 2.0f / BASE_GEM_DROP_TIME;

        // Gem details
        m_GemDetails = GameObject.FindGameObjectWithTag("Gem Details").GetComponent <GemDetails>();
        if (m_GemDetails != null)
        {
            Debug.Log("Reset explosion!");
            m_GemExplosionPrefab = m_GemDetails.m_GemSet.m_Explosion;
        }

        //m_nGemTypeNum = m_aGemList.Length;
        m_nGemTypeNum = GemContainerSet.GEM_SET_NUM;

        // Initialise spawning history variables
        m_PreviousLanes = Enumerable.Repeat(INVALID_LANE, LOOKBACK_NUM).ToList();
        //m_PreviousGems = new List<int>();
        m_SpawnPattern           = GetComponent <SpawnPattern>();
        m_lSequence              = new List <int>();
        m_mSequenceGemTypeMap    = new List <int>();
        m_nSequenceIndex         = 0;
        m_nSequenceIndexFromList = -1;

        m_nLastInsertedLaneIndex = -1;

        // Initialising spawning timer
        m_fSpawnTimer = 0.0f;
        //m_fSpawnRate = BASE_SPAWN_RATE;

        // Initialising spawning live information
        m_aGemCount      = Enumerable.Repeat(0, m_nGemTypeNum).ToArray();
        m_nTotalGemCount = 0;
        m_Gems           = new List <List <GameObject> >();
        for (int i = 0; i < LANE_NUM; ++i)
        {
            m_Gems.Add(new List <GameObject>());
        }
        m_StonedGems        = new List <GameObject>();
        m_GemsToBeRemoved   = new List <GameObject>();
        m_GemsToBeDestroyed = new List <GameObject>();
        if (NetworkManager.IsConnected() && NetworkManager.IsPlayerOne())
        {
            m_NetworkGemsToBeDestroyed = new List <GameObject>();
        }
        if (NetworkManager.IsConnected() && !NetworkManager.IsPlayerOne())
        {
            m_DestroyedNetworkInfo = new Dictionary <int, DestroyedNetworkInfo>();
        }

        // Initialise life line
        if (m_LineLine != null)
        {
            m_LineLine.transform.position = new Vector3(0.0f, (UNLINKABLE_ZONE * m_HalfDimension.y * 2.0f) + -m_HalfDimension.y, 0.0f) + FRONT_OFFSET;
        }

        // Initialising animation timer

        /*
         * m_nFrameNum = m_aGemList[0].GetComponent<GemSpriteContainer>().m_Sprites.Length;
         * for ( int i = 1; i < m_aGemList.Length; ++i )
         * {
         *      int num = m_aGemList[i].GetComponent<GemSpriteContainer>().m_Sprites.Length;
         *      m_nFrameNum = m_nFrameNum > num ? num : m_nFrameNum;
         * }
         */
        m_nFrameNum = m_GemDetails.GetComponent <GemDetails>().m_GemSet.GetGemContainer(0).Length;
        for (int i = 1; i < GemContainerSet.GEM_SET_NUM; ++i)
        {
            int num = m_GemDetails.GetComponent <GemDetails>().m_GemSet.GetGemContainer(i).Length;
            m_nFrameNum = m_nFrameNum > num ? num : m_nFrameNum;
        }

        m_fAnimationIntervalTimer = 0.0f;
        m_fAnimationTimer         = 0.0f;
        m_bAnimating      = false;
        m_nAnimatingFrame = -1;

        // Initialise player's stats
        m_nLevel            = 0;
        m_nPoints           = 0;
        m_nShowingPoints    = 0;
        m_nPrevPoints       = 0;
        m_fPointTimer       = 0.0f;
        m_nHealth           = MAX_HEALTH;
        m_nCurrentCombo     = 0;
        m_nMaxCombo         = 0;
        m_nShowingCombo     = 0;
        m_nPrevCombo        = 0;
        m_fComboTimer       = 0.0f;
        m_fPraiseTimer      = 0.0f;
        m_PraisePos         = m_PraiseText.transform.position;
        m_fSpawnRate        = BASE_SPAWN_RATE - m_nLevel * SPAWN_RATE_GROWTH;
        m_fBaseGemDropSpeed = m_HalfDimension.y * 2.0f / (BASE_GEM_DROP_TIME - (m_nLevel / 2) * GEM_DROP_TIME_GROWTH);

        m_PlayerStats = GameObject.FindGameObjectWithTag("Player Statistics").GetComponent <PlayerStatistics>();

        m_PlayerStats.m_aGems         = m_aGemList;
        m_PlayerStats.m_aDestroyCount = new int [m_aGemList.Length];
        for (int i = 0; i < m_aGemList.Length; ++i)
        {
            m_PlayerStats.m_aDestroyCount[i] = 0;
        }

        // Texts and display
        m_HealthText.GetComponent <Text>().text = m_nHealth.ToString();
        m_ComboText.GetComponent <Text>().text  = "Combo\n" + m_nCurrentCombo.ToString();
        {
            Color c = m_ComboText.GetComponent <Text>().color;
            c.a = 0.0f;
            m_ComboText.GetComponent <Text>().color = c;
        }
        {
            m_PraiseText.GetComponent <Text>().text = "";

            Color c = m_PraiseText.GetComponent <Text>().color;
            c.a = 0.0f;
            m_PraiseText.GetComponent <Text>().color = c;
        }
        m_LineLine.GetComponent <SpriteRenderer>().color = GetLifeLineColour();

        // Gameover
        m_bGameover      = false;
        m_fGameoverTimer = 0.0f;

        // Transition Overlay
        GameObject transition = GameObject.FindGameObjectWithTag("Transition");

        transition.transform.position += 5.0f * FRONT_OFFSET;

        if (NetworkManager.IsConnected())
        {
            m_Network = GameObject.Find("Network Manager").GetComponent <NetworkGameLogic>();
        }
    }
Пример #12
0
    void OnMouseDown()
    {
        if (GetBoardScript().gameMode == Defines.GAMEMODE.AI &&
            GetTurnHandler().turn == GameObject.FindGameObjectWithTag("AIMiniMax").GetComponent <AIMiniMax>().AITurn)
        {
            return;
        }
        if (GetBoardScript().gameMode == Defines.GAMEMODE.ONLINE &&
            ((NetworkManager.IsPlayerOne() && GetTurnHandler().turn != Defines.TURN.P1) ||
             (!NetworkManager.IsPlayerOne() && GetTurnHandler().turn != Defines.TURN.P2)))
        {
            return;
        }

        //if(Input.touchCount != 1)
        //	return;

        // Don't do anything if the big grid is already won, or game hasn't started/has ended, or game is paused.
        if (parentGrid.GetComponent <BigGridScript>().gridWinner != 0 ||
            GetTurnHandler().turn == Defines.TURN.NOTSTARTED ||
            GetTurnHandler().turn == Defines.TURN.GAMEOVER ||
            GetTurnHandler().pausedState != 0)
        {
            return;
        }

        // Check if node belongs to the activeGrid
        if (GetBoardScript().activeBigGrid == parentGrid.GetComponent <BigGridScript>().bigGridID ||
            GetBoardScript().activeBigGrid == 10)
        {
            // Highlight grid
            if (gridState == 0)
            {
                if (GetBoardScript().gameMode == Defines.GAMEMODE.ONLINE)
                {
                    NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
                    networkLogic.HighlightGrid(parentGrid.GetComponent <BigGridScript>().bigGridID, gridID);
                }
                else
                {
                    HighlightGrid();
                }
            }

            // Only allowed if grid is highlighted
            else if (gridState == 3)
            {
                if (GetBoardScript().gameMode == Defines.GAMEMODE.ONLINE)
                {
                    NetworkGameLogic networkLogic = NetworkGameLogic.GetNetworkGameLogic();
                    networkLogic.ConfirmPlacement(parentGrid.GetComponent <BigGridScript>().bigGridID, gridID,
                                                  NetworkManager.IsPlayerOne() ? Defines.TURN.P1 : Defines.TURN.P2,
                                                  NetworkManager.IsPlayerOne() ? GetGUIManagerScript().timerP1 : GetGUIManagerScript().timerP2);
                }
                else
                {
                    ConfirmPlacement();
                }
            }
        }
    }