コード例 #1
0
ファイル: UIManager.cs プロジェクト: WassyoiTCG/TCG
    public void CollisionCemeteryCard(Vector3 mousePosition)
    {
        // 墓地カードとあたり判定を取る
        uGUICard hit = cemeteryInfoUIManager.CollisionCards(mousePosition);

        // 当たっていたら
        if (hit)
        {
            // ヒットしたカードの情報を表示させる
            AppearBattleCardInfomation(hit.cardData);
        }
        else
        {
            // カード情報閉じる
            DisAppearBattleCardInfomation();
        }
    }
コード例 #2
0
ファイル: SceneDeck.cs プロジェクト: WassyoiTCG/TCG
    //+--------------------------------------
    // デッキのカードを外す
    public void DeckOut()
    {
        uGUICard GraspCard = m_uGraspCard.GetComponent <uGUICard>();

        m_uGraspVanishCard.GetComponent <uGUICard>().SetCardData(GraspCard.cardData);
        m_uGraspVanishCard.transform.localPosition = GraspCard.transform.localPosition;
        m_uGraspVanishCard.GetComponent <Ripple>().Action();
        //m_uGraspVanishCard.GetComponent<Ripple>().SetPos();

        // デッキ15枚から握っているIDを探し消す
        for (int i = 0; i < PlayerDeckData.deckMax; i++)
        {
            // 空き枠を探す
            if (m_aMyDeckCard[i].GetComponent <uGUICard>().cardData.id ==
                GraspCard.GetComponent <uGUICard>().cardData.id)
            {
                Debug.Log(" 握っているID発見、消します。-DeckOut");
                //m_aMyDeckCard[i].GetComponent<uGUICard>().NoneCard();

                // SE
                oulAudio.PlaySE("edit_out");

                m_aMyDeckCard[i].GetComponent <uGUICard>().MissingCard();

                // ★イベントは消したらずらす処理
                // 11以上のデータが消されたつまりイベントカードのデータを消したということ
                if (i >= PlayerDeckData.numStriker + PlayerDeckData.numJoker)
                {
                    //int iEventIndex = i++;
                    // 消した後のカード達を動かしずらす処理
                    for (int iEventIndex = i++; iEventIndex < PlayerDeckData.deckMax; iEventIndex++)
                    {
                        // 最後の配列の場合
                        if (iEventIndex == PlayerDeckData.deckMax - 1)
                        {
                            // 最後のカードを空白に
                            m_aMyDeckCard[iEventIndex].GetComponent <uGUICard>().MissingCard();
                        }
                        else
                        {
                            // まず次のデータを今のデータに保存
                            m_aMyDeckCard[iEventIndex].GetComponent <uGUICard>().SetCardData(m_aMyDeckCard[iEventIndex + 1].GetComponent <uGUICard>().cardData);
                        }

                        // 欠番はアニメさせない! (なざならアニメをするとその関数の中でビョウガしてエウレシアが見えるから)
                        if (m_aMyDeckCard[iEventIndex].GetComponent <uGUICard>().cardData.id != (int)IDType.NONE)
                        {
                            m_aMyDeckCard[iEventIndex].transform.localPosition += new Vector3(120, 0, 0); //GetComponent<ScreenOutAppeared>().SetPos(new Vector3(400, 300, 0));
                                                                                                          // アニメーション常に実行(磁力の力だ!)
                            m_aMyDeckCard[iEventIndex].GetComponent <ScreenOutAppeared>().Action();
                        }
                    }
                }// イベントずらすif分
            }
        }



        //+-----------------------------------------------------------------------
        // (11/13)(TODO)この処理だと全部取ってきて重いので何とかする。
        // 解決案 最大サイズ取得したいだけなので最初にInt型にサイズを保存しておく。
        //CardData[] all = CardDataBase.GetCardList();    // カード情報を全て取得する。
        //int iMaxSize = all.Length;  // カードの最大数

        int iNextNo = SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX;

        for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++)
        {
            if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.id == GraspCard.cardData.id)
            {
                // ★デッキに入っていない状態に
                m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_Off();

                // エフェクト
                EffectRiipleCardBack.transform.localPosition = m_aCollectCard[i].transform.localPosition;
                EffectRiipleCardBack.GetComponent <Ripple>().Action();

                EffectRiipleGraspCardBack.transform.localPosition = GraspCard.transform.localPosition;
                EffectRiipleGraspCardBack.GetComponent <Ripple>().Action();

                break;
            }
        }


        // イベント満タンを外す処理
        if (EventCardFullTankCheak() == false)// 逆に
        {
            // コレクションにあるイベント全部
            for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++)
            {
                if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.cardType == CardType.Support ||
                    m_aCollectCard[i].GetComponent <uGUICard>().cardData.cardType == CardType.Connect ||
                    m_aCollectCard[i].GetComponent <uGUICard>().cardData.cardType == CardType.Intercept)
                {
                    int  iEventIndex = PlayerDeckData.numStriker + PlayerDeckData.numJoker;
                    bool bIDCheakOK  = true;
                    for (int i2 = 0; i2 < PlayerDeckData.numEvent; i2++)
                    {
                        if (m_aMyDeckCard[iEventIndex + i2].GetComponent <uGUICard>().cardData.id ==
                            m_aCollectCard[i].GetComponent <uGUICard>().cardData.id)
                        {
                            bIDCheakOK = false;// デッキに同じIDあり
                        }
                    }

                    // IDがデッキになかったら
                    if (bIDCheakOK == true)
                    {
                        // 満杯マーク外す
                        m_aCollectCard[i].GetComponent <uGUICard>().EventFullInfo_Off();
                    }
                }
            }
        }// イベント満タンを外す処理

        // 効果満タンを外す処理
        if (AbilityCardFullTankCheak() == false)// 逆に
        {
            // コレクションにある__全部
            for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++)
            {
                if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.cardType == CardType.AbilityFighter)
                {
                    bool bIDCheakOK = true;
                    for (int i2 = 0; i2 < PlayerDeckData.numStriker; i2++)
                    {
                        if (m_aMyDeckCard[i2].GetComponent <uGUICard>().cardData.id ==
                            m_aCollectCard[i].GetComponent <uGUICard>().cardData.id)
                        {
                            bIDCheakOK = false;// デッキに同じIDあり
                        }
                    }

                    // IDがデッキになかったら
                    if (bIDCheakOK == true)
                    {
                        // 満杯マーク外す
                        m_aCollectCard[i].GetComponent <uGUICard>().AbilityFullInfo_Off();
                    }
                }
            }
        }// イベント満タンを外す処理
    }
コード例 #3
0
ファイル: SceneDeck.cs プロジェクト: WassyoiTCG/TCG
    //+--------------------------------------
    // デッキのカード変更
    public void DeckSet()
    {
        uGUICard GraspCard = m_uGraspCard.GetComponent <uGUICard>();

        bool ChangeFlag   = false;
        int  ChangeCardID = 0;

        Vector3 EffectPos = new Vector3(0, 0, 0);

        // 握ってるカードがファイターor効果持ちファイターなら
        if (GraspCard.cardData.cardType == CardType.Fighter ||
            GraspCard.cardData.cardType == CardType.AbilityFighter)
        {
            // パワーと同じ場所の所へ書き換え
            int iGraspCardPower = GraspCard.cardData.power;

            // 変える前のカードに何か入ってたら
            if (m_aMyDeckCard[iGraspCardPower - 1].GetComponent <uGUICard>().cardData.id != (int)IDType.NONE)
            {
                ChangeFlag   = true;
                ChangeCardID = m_aMyDeckCard[iGraspCardPower - 1].GetComponent <uGUICard>().cardData.id;
            }

            // 変える
            m_aMyDeckCard[iGraspCardPower - 1].GetComponent <uGUICard>().SetCardData(GraspCard.cardData);


            // エフェクトポジション
            EffectPos = m_aMyDeckCard[iGraspCardPower - 1].transform.localPosition;
        }

        // 握ってるカードがJOKERなら
        if (GraspCard.cardData.cardType == CardType.Joker)
        {
            // 変える前のカードに何か入ってたら
            if (m_aMyDeckCard[PlayerDeckData.numStriker].GetComponent <uGUICard>().cardData.id != (int)IDType.NONE)
            {
                ChangeFlag   = true;
                ChangeCardID = m_aMyDeckCard[PlayerDeckData.numStriker].GetComponent <uGUICard>().cardData.id;
            }

            // JOKERゾーンを書き換え
            m_aMyDeckCard[PlayerDeckData.numStriker].GetComponent <uGUICard>().SetCardData(GraspCard.cardData);



            // エフェクトポジション
            EffectPos = m_aMyDeckCard[PlayerDeckData.numStriker].transform.localPosition;
        }

        // 握ってるカードがイベントなら
        if (GraspCard.cardData.cardType == CardType.Support ||
            GraspCard.cardData.cardType == CardType.Connect ||
            GraspCard.cardData.cardType == CardType.Intercept)
        {
            // イベントゾーンを書き換え
            int iStartIndex = PlayerDeckData.numStriker + PlayerDeckData.numJoker;

            // イベント
            for (int i = 0; i < PlayerDeckData.numEvent; i++)
            {
                // 空き枠を探す
                if (m_aMyDeckCard[iStartIndex + i].GetComponent <uGUICard>().cardData.id == (int)IDType.NONE)
                {
                    Debug.Log(" イベント枠の空きを発見!-ChangeDeck");
                    m_aMyDeckCard[iStartIndex + i].GetComponent <uGUICard>().SetCardData(GraspCard.cardData);

                    // エフェクトポジション
                    EffectPos = m_aMyDeckCard[iStartIndex + i].transform.localPosition;

                    break; // □一つ入れたらさいさいさいなら。
                }

                // 最後まで来てどこも枠が空いていなかったらReturn
                if (i == (PlayerDeckData.numEvent - 1))
                {
                    Debug.Log(" イベント入れれなかったら出ていけぇ!(仮)-ChangeDeck");
                    return;
                }
            }
        }

        // エフェクト
        EffectRiipleCard.transform.localPosition = EffectPos;
        EffectRiipleCard.GetComponent <Ripple>().Action();

        // SE
        oulAudio.PlaySE("edit_set");

        //+-----------------------------------------------------------------------
        // (11/13)(TODO)この処理だと全部取ってきて重いので何とかする。
        // 解決案 最大サイズ取得したいだけなので最初にInt型にサイズを保存しておく。
        //CardData[] all = CardDataBase.GetCardList();    // カード情報を全て取得する。
        //int iMaxSize = all.Length;  // カードの最大数

        int iNextNo = SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX;

        for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++)
        {
            if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.id == GraspCard.cardData.id)
            {
                // デッキに入っている状態に
                m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_On();
                break;
            }
        }

        if (ChangeFlag == true)
        {
            iNextNo = SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX;
            for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++)
            {
                if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.id == ChangeCardID)
                {
                    // ★デッキに入っていない状態に
                    m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_Off();

                    break;
                }
            }
        }

        EventMANTAN();
        AbilityMANTAN();
    }
コード例 #4
0
        public override void Enter(SceneDeck e)
        {
            Debug.Log("DeckSettingに来た列車");

            // SE
            oulAudio.PlaySE("card_hold");

            Vector3  vNextPos  = new Vector3(0, 0, 0);
            uGUICard GraspCard = e.m_uGraspCard.GetComponent <uGUICard>();

            // 握ってるカードがファイターor効果持ちファイターなら
            if (GraspCard.cardData.cardType == CardType.Fighter ||
                GraspCard.cardData.cardType == CardType.AbilityFighter)
            {
                // パワーと同じ場所の所へ書き換え
                int iGraspCardPower = GraspCard.cardData.power;
                vNextPos = e.m_aMyDeckCard[iGraspCardPower - 1].transform.localPosition;
            }

            // 握ってるカードがJOKERなら
            if (GraspCard.cardData.cardType == CardType.Joker)
            {
                // エフェクトポジション
                vNextPos = e.m_aMyDeckCard[PlayerDeckData.numStriker].transform.localPosition;
            }

            // 握ってるカードがイベントなら
            if (GraspCard.cardData.cardType == CardType.Support ||
                GraspCard.cardData.cardType == CardType.Connect ||
                GraspCard.cardData.cardType == CardType.Intercept)
            {
                // イベントゾーンを書き換え
                int iStartIndex = PlayerDeckData.numStriker + PlayerDeckData.numJoker;
                // イベント
                for (int i = 0; i < PlayerDeckData.numEvent; i++)
                {
                    // 空き枠を探す
                    if (e.m_aMyDeckCard[iStartIndex + i].GetComponent <uGUICard>().cardData.id == (int)IDType.NONE)
                    {
                        vNextPos = e.m_aMyDeckCard[iStartIndex + i].transform.localPosition;
                        break; // □一つ入れたらさいさいさいなら。
                    }

                    // 最後まで来てどこも枠が空いていなかったらReturn
                    if (i == (PlayerDeckData.numEvent - 1))
                    {
                        Debug.Log(" イベント入れれなかったら出ていけぇ!(仮)-DeckSetting");
                        // メインへ戻る
                        e.m_pStateMachine.ChangeState(SceneDeckState.Main.GetInstance());
                        return;
                    }
                }
            }


            // 演出
            e.m_uGraspCard.GetComponent <ScreenOutAppeared>().SetNextPos(vNextPos);
            e.m_uGraspCard.GetComponent <ScreenOutAppeared>().Action();
            e.m_uGraspCard.GetComponent <ScaleAppeared>().Action();

            return;
        }