Пример #1
0
 public void SSAngle(PlayerInfo.PlayerType player)
 {
     /*Time.timeScale = 0.1f;
      * DOVirtual.DelayedCall(1f,()=>{
      *      Time.timeScale = 1;
      * });*/
     /*Vector3 p = transform.position;
      * Quaternion q = transform.rotation;
      *
      * if((GameMaster.Instance.mode == GameMaster.GameMode.TwoPlayerMode
      *      && player == PlayerInfo.PlayerType.Player1) ||
      *      (GameMaster.Instance.ctrPos == GameMaster.CtrLeft && player == PlayerInfo.PlayerType.Player1)){
      *      Sequence sq = DOTween.Sequence ();
      *      sq.Append (transform.DOMove (new Vector3(0.05f,0.6f,-0.61f), 0.3f));
      *      sq.Join (transform.DORotate (new Vector3(5.25f,-12.86f,0f), 0.3f));
      *      sq.OnComplete (() => {
      *              Time.timeScale = 0.1f;
      *              DOVirtual.DelayedCall(1f,()=>{
      *                      Time.timeScale = 1;
      *              });
      *
      *      });
      *      sq.Play ();
      * }*/
 }
Пример #2
0
 public void Win(PlayerInfo.PlayerType player)
 {
     if (GameMaster.Instance.mode == GameMaster.GameMode.TwoPlayerMode)
     {
         if (player == PlayerInfo.PlayerType.Player1)
         {
             Sequence sq = DOTween.Sequence();
             sq.Append(transform.DOMove(p1WinPos, 2f));
             sq.Join(transform.DORotate(p1WinRotate, 2f));
             sq.Play();
         }
         else
         {
             Sequence sq = DOTween.Sequence();
             sq.Append(transform.DOMove(p2WinPos, 2f));
             sq.Join(transform.DORotate(p2WinRotate, 2f));
             sq.Play();
         }
     }
     else
     {
         if (GameMaster.Instance.ctrPos == GameMaster.CtrLeft)
         {
             if (player == PlayerInfo.PlayerType.Player1)
             {
                 Sequence sq = DOTween.Sequence();
                 sq.Append(transform.DOMove(p1WinPos, 2f));
                 sq.Join(transform.DORotate(p1WinRotate, 2f));
                 sq.Play();
             }
             else
             {
                 Sequence sq = DOTween.Sequence();
                 sq.Append(transform.DOMove(p2WinPos, 2f));
                 sq.Join(transform.DORotate(p2WinRotate, 2f));
                 sq.Play();
             }
         }
         else
         {
             if (player == PlayerInfo.PlayerType.Player1)
             {
                 Sequence sq = DOTween.Sequence();
                 sq.Append(transform.DOMove(p1RWinPos, 2f));
                 sq.Join(transform.DORotate(p1RWinRotate, 2f));
                 sq.Play();
             }
             else
             {
                 Sequence sq = DOTween.Sequence();
                 sq.Append(transform.DOMove(p2RWinPos, 2f));
                 sq.Join(transform.DORotate(p2RWinRotate, 2f));
                 sq.Play();
             }
         }
     }
 }
Пример #3
0
    private bool IsPlayer(PlayerInfo.PlayerType playerType)
    {
        if ((GameMaster.Instance.ctrPos == GameMaster.CtrLeft && playerType == PlayerInfo.PlayerType.Player1) ||
            (GameMaster.Instance.ctrPos == GameMaster.CtrRight && playerType == PlayerInfo.PlayerType.Player2))
        {
            return(true);
        }

        return(false);
    }
Пример #4
0
    public void Init(PlayerInfo.PlayerType type)
    {
        playerInfo.playerType = type;
        gameObject.layer      = LayerMask.NameToLayer("Player");
        action = PlayerInfo.Action.None;
        if (playerInfo.playerType == PlayerInfo.PlayerType.Player1)
        {
            playerInfo.charaType = GameMaster.Instance.charaType1;
        }
        else
        {
            playerInfo.charaType = GameMaster.Instance.charaType2;
        }

        if (GameMaster.Instance.mode == GameMaster.GameMode.TwoPlayerMode)
        {
            playerInfo.humanType = PlayerInfo.HumanType.Human;
            GetComponent <EnemyAi> ().enabled = false;
        }
        else
        {
            if (GameMaster.Instance.ctrPos == GameMaster.CtrLeft)
            {
                //左ならCOMは右
                if (playerInfo.playerType == PlayerInfo.PlayerType.Player1)
                {
                    GetComponent <EnemyAi> ().enabled = false;
                    playerInfo.humanType = PlayerInfo.HumanType.Human;
                }
                else
                {
                    humanPlayer          = GameObject.Find("Player1");
                    playerInfo.humanType = PlayerInfo.HumanType.Com;
                    GetComponent <EnemyAi> ().enabled = true;
                    enemyAi = GetComponent <EnemyAi> ();
                }
            }
            else
            {
                //右ならCOMは左
                if (playerInfo.playerType == PlayerInfo.PlayerType.Player1)
                {
                    humanPlayer          = GameObject.Find("Player2");
                    playerInfo.humanType = PlayerInfo.HumanType.Com;
                    GetComponent <EnemyAi> ().enabled = true;
                    enemyAi = GetComponent <EnemyAi> ();
                }
                else
                {
                    GetComponent <EnemyAi> ().enabled = false;
                    playerInfo.humanType = PlayerInfo.HumanType.Human;
                }
            }
        }
    }
Пример #5
0
    public void Lose(PlayerInfo.PlayerType player)
    {
        Vector3 endPos    = Vector3.zero;
        Vector3 endRotate = Vector3.zero;

        if (player == PlayerInfo.PlayerType.Player1)
        {
            endPos    = lLosePos;
            endRotate = lLoseRotate;
        }
        else
        {
            endPos    = rLosePos;
            endRotate = rLoseRotate;
        }
        Sequence sq = DOTween.Sequence();

        sq.Append(transform.DOMove(endPos, 3f));
        sq.Join(transform.DORotate(endRotate, 3f));
        sq.Play();
    }
Пример #6
0
    private void ShowChara(PlayerInfo.PlayerType player, int chara, int index)
    {
        GameObject charaObj = null;

        if (chara == PlayerInfo.KOHAKU)
        {
            if (player == PlayerInfo.PlayerType.Player1)
            {
                charaObj = SwitchChara(kohaku1Array, index);
            }
            else
            {
                charaObj = SwitchChara(kohaku2Array, index);
            }
        }
        else if (chara == PlayerInfo.YUKO)
        {
            if (player == PlayerInfo.PlayerType.Player1)
            {
                charaObj = SwitchChara(yuko1Array, index);
            }
            else
            {
                charaObj = SwitchChara(yuko2Array, index);
            }
        }
        else if (chara == PlayerInfo.MISAKI)
        {
            if (player == PlayerInfo.PlayerType.Player1)
            {
                charaObj = SwitchChara(misaki1Array, index);
            }
            else
            {
                charaObj = SwitchChara(misaki2Array, index);
            }
        }

        SetBuyButton(player, charaObj);
    }
Пример #7
0
    private GameObject GetCharactor(PlayerInfo.PlayerType player, int chara, int index)
    {
        GameObject charactor = null;

        if (chara == PlayerInfo.KOHAKU)
        {
            if (player == PlayerInfo.PlayerType.Player1)
            {
                charactor = GetChara(kohaku1Array, index);
            }
            else
            {
                charactor = GetChara(kohaku2Array, index);
            }
        }
        else if (chara == PlayerInfo.YUKO)
        {
            if (player == PlayerInfo.PlayerType.Player1)
            {
                charactor = GetChara(yuko1Array, index);
            }
            else
            {
                charactor = GetChara(yuko2Array, index);
            }
        }
        else if (chara == PlayerInfo.MISAKI)
        {
            if (player == PlayerInfo.PlayerType.Player1)
            {
                charactor = GetChara(misaki1Array, index);
            }
            else
            {
                charactor = GetChara(misaki2Array, index);
            }
        }
        return(charactor);
    }
Пример #8
0
    IEnumerator ShowEndCanvas(PlayerInfo.PlayerType winPlayerType)
    {
        //そこまで!
        r3.SetActive(true);
        SoundMainScene.Instans.PlaySe(SoundMainScene.Instans.sokomade);
        Sound.Instans.Stop();
        yield return(new WaitForSeconds(2));

        mainCanvas.SetActive(false);
        endCanvas.SetActive(true);

        GameMaster.Instance.p1Win = 0;
        GameMaster.Instance.p2Win = 0;

        if (GameMaster.Instance.mode == GameMaster.GameMode.OnePlayerMode ||
            GameMaster.Instance.mode == GameMaster.GameMode.TwoPlayerMode)
        {
            GameMaster.Instance.round = 0;
            if (IsPlayer(winPlayerType) ||
                GameMaster.Instance.mode == GameMaster.GameMode.TwoPlayerMode)
            {
                if (winPlayerType == PlayerInfo.PlayerType.Player1)
                {
                    OnVictory(GameMaster.Instance.charaType1, player1);
                }
                else
                {
                    OnVictory(GameMaster.Instance.charaType2, player2);
                }

                // 勝ちキャラアップ
                Camera.main.gameObject.SendMessage("Win", winPlayerType);

                yield return(new WaitForSeconds(3));

                // キャラのセリフ
                if (winPlayerType == PlayerInfo.PlayerType.Player1)
                {
                    talkEvent.SendMessage("OnSerihu", GameMaster.Instance.charaType1);
                }
                else
                {
                    talkEvent.SendMessage("OnSerihu", GameMaster.Instance.charaType2);
                }
                yield return(new WaitForSeconds(0.5f));
            }
        }

        if (GameMaster.Instance.mode == GameMaster.GameMode.TwoPlayerMode)
        {
            //対戦モード
            yield return(new WaitForSeconds(1.5f));

            Application.CaptureScreenshot("screenShot.png");
            yield return(new WaitForSeconds(1.5f));

            SetShareImage();
            //二人プレイ
            endPanel.SetActive(true);
            retryButton.SetActive(true);
            nextButtonText.GetComponent <TextMeshProUGUI>().text = "きゃらせんたく";
        }
        else if (GameMaster.Instance.mode == GameMaster.GameMode.OnePlayerMode)
        {
            //ストーリーモード ゲームオーバー判定
            if (IsPlayer(winPlayerType))
            {
                yield return(new WaitForSeconds(1.5f));

                Application.CaptureScreenshot("screenShot.png");
                yield return(new WaitForSeconds(1.5f));

                //シェア画像生成
                SetShareImage();
                int currentCoin = EncryptedPlayerPrefs.LoadInt(Const.KEY_COIN, 0);
                currentCoinText.GetComponent <TextMeshProUGUI> ().text = currentCoin.ToString();
                coinPanel.SetActive(true);
                //コイン計算
                gotCoins = level * (GameMaster.Instance.stage + 1) * 10;
                SetCoinText(gotCoins);
                CountUpCoin(currentCoin, gotCoins);
                endPanel.SetActive(true);
                //ステージ繰り上げ
                GameMaster.Instance.stage += 1;
            }
            else
            {
                // ゲームオーバーの場合
                levelTextPanel.SetActive(false);
                // カメラ移動
                if (GameMaster.Instance.ctrPos == GameMaster.CtrLeft)
                {
                    Destroy(player2);
                    // カメラ移動
                    Camera.main.gameObject.SendMessage("Lose", PlayerInfo.PlayerType.Player1);
                }
                if (GameMaster.Instance.ctrPos == GameMaster.CtrRight)
                {
                    Destroy(player1);
                    Camera.main.gameObject.SendMessage("Lose", PlayerInfo.PlayerType.Player2);
                }
                yield return(new WaitForSeconds(1.5f));

                SoundMainScene.Instans.PlaySe(SoundMainScene.Instans.zannen);
                gameOverPanel.SetActive(true);
                gameOverText.SetActive(true);
            }
        }
        else
        {
            //勝ち抜きモード
            if (winPlayerType == PlayerInfo.PlayerType.Player1)
            {
                Destroy(player2);
                transform.position = player1LPos;
                OnVictoryNonVoice(GameMaster.Instance.charaType1, player1);
                // 負けキャラアップ
                Camera.main.gameObject.SendMessage("Win", PlayerInfo.PlayerType.Player1);
            }
            else
            {
                Destroy(player1);
                OnVictoryNonVoice(GameMaster.Instance.charaType2, player2);
                // 負けキャラアップ
                Camera.main.gameObject.SendMessage("Win", PlayerInfo.PlayerType.Player2);
            }
            SoundMainScene.Instans.PlaySe(SoundMainScene.Instans.kekka);
            // 結果発表
            yield return(new WaitForSeconds(3f));

            katinukiKekkaPanel.SetActive(true);
            yield return(new WaitForSeconds(1.5f));

            katinukiText.GetComponent <TextMeshProUGUI>().text = GameMaster.Instance.round + "にんぬき!";
            katinukiText.SetActive(true);
            yield return(new WaitForSeconds(0.5f));

            Application.CaptureScreenshot("screenShot.png");
            yield return(new WaitForSeconds(1.5f));

            SetShareImage();

            int currentCoin = EncryptedPlayerPrefs.LoadInt(Const.KEY_COIN, 0);
            currentCoinText.GetComponent <TextMeshProUGUI> ().text = currentCoin.ToString();
            yield return(new WaitForSeconds(0.5f));

            //勝ち抜き数で評価ボイス
            if (0 <= GameMaster.Instance.round && GameMaster.Instance.round <= 4)
            {
                SoundMainScene.Instans.PlaySe(SoundMainScene.Instans.end04);
            }
            else if (5 <= GameMaster.Instance.round && GameMaster.Instance.round <= 9)
            {
                SoundMainScene.Instans.PlaySe(SoundMainScene.Instans.end59);
            }
            else if (10 <= GameMaster.Instance.round && GameMaster.Instance.round <= 19)
            {
                SoundMainScene.Instans.PlaySe(SoundMainScene.Instans.end1019);
            }
            else if (20 <= GameMaster.Instance.round)
            {
                SoundMainScene.Instans.PlaySe(SoundMainScene.Instans.end20);
            }
            yield return(new WaitForSeconds(0.5f));

            if (GameMaster.Instance.round > 0)
            {
                gotCoins = GameMaster.Instance.round * 10;
                SetCoinText(gotCoins);
                coinPanel.SetActive(true);
                CountUpCoin(currentCoin, gotCoins);
            }
            endPanel.SetActive(true);
            retryButton.SetActive(true);
            nextButtonText.GetComponent <TextMeshProUGUI>().text = "きゃらせんたく";
            //シェアするための勝ち抜き数を保持
            chareKatinukiCount        = GameMaster.Instance.round;
            GameMaster.Instance.round = 0;
        }
    }
Пример #9
0
    //決定ボタン制御
    private void SetBuyButton(PlayerInfo.PlayerType player, GameObject charaObj)
    {
        if (PlayerInfo.PlayerType.Player1 == player)
        {
            buyChara1 = charaObj;
        }
        else
        {
            buyChara2 = charaObj;
        }

        SelectPlayer selectChara = charaObj.GetComponent <SelectPlayer> ();

        if (selectChara.enableFlg)
        {
            // 使える
            if (player == PlayerInfo.PlayerType.Player1)
            {
                p1Button.SetActive(true);
                p1BuyButton.SetActive(false);
            }
            else
            {
                p2Button.SetActive(true);
                p2BuyButton.SetActive(false);
            }
        }
        else
        {
            float alpha = 0.3f;
            //ボタンに値段をセット
            int             price = selectChara.price;
            TextMeshProUGUI priceText;
            Image           buttonImage;
            if (player == PlayerInfo.PlayerType.Player1)
            {
                p1Button.SetActive(false);
                p1BuyButton.SetActive(true);
                buttonImage    = p1BuyButton.GetComponent <Image> ();
                priceText      = p1PriceText.GetComponent <TextMeshProUGUI> ();
                priceText.text = price.ToString();
            }
            else
            {
                p2Button.SetActive(false);
                p2BuyButton.SetActive(true);
                buttonImage    = p2BuyButton.GetComponent <Image> ();
                priceText      = p2PriceText.GetComponent <TextMeshProUGUI> ();
                priceText.text = price.ToString();
            }
            int coin = EncryptedPlayerPrefs.LoadInt(Const.KEY_COIN, 0);
            if (coin >= price)
            {
                // 買える
                if (player == PlayerInfo.PlayerType.Player1)
                {
                    p1BuyButton.GetComponent <Button> ().enabled = true;
                }
                else
                {
                    p2BuyButton.GetComponent <Button> ().enabled = true;
                }
                DOTween.ToAlpha(() => buttonImage.color, color => buttonImage.color = color, 1f, 0f);
                DOTween.ToAlpha(() => priceText.color, color => priceText.color     = color, 1f, 0f);
            }
            else
            {
                // 買えない
                if (player == PlayerInfo.PlayerType.Player1)
                {
                    p1BuyButton.GetComponent <Button> ().enabled = false;
                }
                else
                {
                    p2BuyButton.GetComponent <Button> ().enabled = false;
                }
                DOTween.ToAlpha(() => buttonImage.color, color => buttonImage.color = color, alpha, 0f);
                DOTween.ToAlpha(() => priceText.color, color => priceText.color     = color, alpha, 0f);
            }
        }
    }