public void CollisionCemeteryCard(Vector3 mousePosition) { // 墓地カードとあたり判定を取る uGUICard hit = cemeteryInfoUIManager.CollisionCards(mousePosition); // 当たっていたら if (hit) { // ヒットしたカードの情報を表示させる AppearBattleCardInfomation(hit.cardData); } else { // カード情報閉じる DisAppearBattleCardInfomation(); } }
//+-------------------------------------- // デッキのカードを外す 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(); } } } }// イベント満タンを外す処理 }
//+-------------------------------------- // デッキのカード変更 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(); }
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; }