コード例 #1
0
ファイル: SceneDeck.cs プロジェクト: WassyoiTCG/TCG
    // ライン変更
    public void ChangeLine(int iNextLine)
    {
        // (11/13)(TODO)この処理だと全部取ってきて重いので何とかする。
        // 解決案 最大サイズ取得したいだけなので最初にInt型にサイズを保存しておく。
        CardData[] all      = CardDataBase.GetDeckSortedCardData(); // カード情報を全て取得する。1/12 デッキ選択用のソートした配列を取得
        int        iMaxSize = all.Length;                           // カードの最大数


        //  セレクトタイプによってステート変更
        switch ((CHANGE_LINE_TYPE)iNextLine)
        {
        case CHANGE_LINE_TYPE.BACK:

            SelectData.iDeckCollectLineNo -= 1;
            Debug.Log("SceneCollectState: LINE移動↑(マイナス)");

            //+--------------------------------------------
            //  ラインが0より低ければ0にして何もせずReturun
            if (SelectData.iDeckCollectLineNo <= -1)
            {
                Debug.Log("ChangeLine:0よりマイナス行こうとしたため0に戻しReturun ");

                SelectData.iDeckCollectLineNo = 0;
                return;
            }
            ;

            // アニメーション開始
            CollectCardGroup.GetComponent <ScreenOutAppeared>().SetPos(new Vector3(0, 600, 0));
            //CollectCardGroup.GetComponent<ScreenOutAppeared>().SetNextPos(new Vector3(0, 0, 0));
            CollectCardGroup.GetComponent <ScreenOutAppeared>().Action();

            break;

        case CHANGE_LINE_TYPE.NEXT:
            SelectData.iDeckCollectLineNo += 1;
            Debug.Log("SceneCollectState: LINE移動↓(プラス)");

            //+--------------------------------------------
            //  ラインが0より低ければ0にして何もせずReturun
            if ((SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX) >= iMaxSize)
            {
                Debug.Log("ChangeLine:カード最大数を超えた空間に移動しようとしていたためReturn");
                SelectData.iDeckCollectLineNo -= 1;
                return;
            }
            ;

            // アニメーション開始
            CollectCardGroup.GetComponent <ScreenOutAppeared>().SetPos(new Vector3(0, -600, 0));
            //CollectCardGroup.GetComponent<ScreenOutAppeared>().SetNextPos(new Vector3(0, 0, 0));
            CollectCardGroup.GetComponent <ScreenOutAppeared>().Action();

            break;

        case CHANGE_LINE_TYPE.END:
            Debug.LogWarning("SceneCollectState: それ以上のタイプはない。");
            break;

        default:
            break;
        }



        int iNextNo = SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX;



        for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++)
        {
            m_aCollectCard[i].SetActive(true);//絵が表示されていない可能性があるため毎回True

            // 最大カード数を超えたら
            if ((iNextNo + i) >= iMaxSize)
            {
                m_aCollectCard[i].SetActive(false); //絵を表示しない
                continue;
            }

            // 01/12変更 ソートしたやつを左の表示をソートしたやつに変更
            m_aCollectCard[i].GetComponent <uGUICard>().SetCardData(CardDataBase.GetSortedCardData(iNextNo + i));



            // (11/13)最後にいつものうんこソート
            // 先にデッキに入っていないカード状態に
            m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_Off();
            for (int i2 = 0; i2 < PlayerDeckData.deckMax; i2++)
            {
                // ★コレクションにあるカードがすでに被ってたら暗くするソート
                if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.id == m_aMyDeckCard[i2].GetComponent <uGUICard>().cardData.id)
                {
                    // デッキに入っている状態
                    m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_On();
                    break;
                }
            }// ソート
        }
        EventMANTAN();
        AbilityMANTAN();
    }