public void DisableCardInPlayingDeck() { List <CardObj> listOfPlayingCard = PlayingDeck.GetComponent <PlayingDeck>().cardObjs; CardObj co = listOfPlayingCard[listOfPlayingCard.Count - 2]; co.gameObject.SetActive(false); }
//新たなカードを加える public bool CardAdd(Card c) { if (cards.Count < MainSystem.HAND_MAX) { } else { return(false); } cards.Add(c); var hage = Instantiate(cardObj, transform.position, transform.rotation, transform); Utility.SetChildrenTag(hage.transform, TAG); Utility.SetChildrenTag(hage.GetComponent <CardObj>().cc.transform, Utility.UNTAG); //CardObjのコンポーネントを取得する CardObj gcc = hage.GetComponent <CardObj>(); //取得したものを用いてカード情報を書き込む gcc.CardSet(c); gcc.isHand = true; gcc.isStateChanged = true; gcc.ObjReroad(true); hage.transform.parent = transform; cardsObj.Add(hage); gcc.LayerSet(cards.Count - 1, TAG); CardAlign(); return(true); }
public void AddCardToPlayerDeck(Card card, string playerId) { GameObject playerObject = GetPlayerObject(playerId); List <CardObj> listOfPlayerCard = playerObject.GetComponent <PlayerCardList>().cardObjs; if (PhotonNetwork.LocalPlayer.NickName == playerId) { CardObj co = AllCardsObj[AllCardsObj.Count - 1]; co.SetCardValue(card); co.SetCardFacedUp(); AllCardsObj.Remove(co); if (listOfPlayerCard.Count == 0) { listOfPlayerCard.Add(co); MoveCard(co.gameObject, playerObject.transform.position); } else { CardObj lastCardObject = listOfPlayerCard[listOfPlayerCard.Count - 1]; listOfPlayerCard.Add(co); MoveCard(co.gameObject, new Vector3( lastCardObject.gameObject.transform.position.x + (Constants.PLAYER_CARDS_SPACE_OFFSET), (lastCardObject.gameObject.transform.position.y) )); } co.gameObject.transform.SetParent(playerObject.transform); } else { CardObj co = AllCardsObj[AllCardsObj.Count - 1]; AllCardsObj.Remove(co); if (listOfPlayerCard.Count == 0) { listOfPlayerCard.Add(co); MoveCard(co.gameObject, playerObject.transform.position); } else { CardObj lastCardObject = listOfPlayerCard[listOfPlayerCard.Count - 1]; listOfPlayerCard.Add(co); MoveCard(co.gameObject, new Vector3( lastCardObject.gameObject.transform.position.x + Constants.CARDS_SPACE_OFFSET, (lastCardObject.gameObject.transform.position.y) )); } co.gameObject.transform.SetParent(playerObject.transform); // ReArrange All Players Card } //SpaceAllCards(); //ReArrangeAllOpponetCards(); }
public void DeleteCard(CardObj cardObj = null) { ObjectPoolManager.Instance.Despawn(cardObj.gameObject); graveCard.Add(cardObj.cardData); showingPlayerCard.Remove(cardObj); CardAllignment(); }
//// Update is called once per frame //void Update () { // if (Input.GetMouseButtonDown(0)) { // click_start = Input.mousePosition / Screen.height; // } // if (Input.GetMouseButtonUp(0)) { // CardTouch(); // } // } // public void SetFocus(bool f) { // focus = f; // card_obj.GetComponent<CardObj>().isSelected = f; // } // //プレイヤーカードをセットする // public bool SetCard(Card c) { // //プレイヤーカードでないならエラー // if (c.origin.type == 1) { return false; } // if (card_obj != null) { Destroy(card_obj); } // card_obj = Instantiate(card_obj_origin, transform.position, // transform.rotation, transform); // card_obj.SetActive(true); // card = c; // var co = card_obj.GetComponent<CardObj>(); // co.CardSet(c); // co.isStateChanged = true; // co.LayerSet(0, LAYER); // co.ObjReroad(true); // Utility.SetChildrenTag(card_obj.transform, TAG); // return true; // } //カードを入力したとき public void SetCard(Card _card) { if (cardObj == null) { cardObj = Utility.InstantiateWithTransform(CardObj.GetPrefab(), transform); } cardObj.GetComponent <CardObj>().card = _card; }
public async Task DealCardsToPlayerAsync() { int extralenght = 0; for (int x = 1; x <= Constants.PLAYER_INITIAL_CARDS; x++) { foreach (GameObject p in PlayersObjectArray) { CardObj coj = AllCardsObj[AllCardsObj.Count - 1]; StartCoroutine(MoveToPosition(coj.gameObject.transform, new Vector3(p.transform.position.x + extralenght, p.transform.position.y, 0) , 0.6f)); coj.gameObject.transform.SetParent(p.transform); p.GetComponent <PlayerCardList>().cardObjs.Add(coj); AllCardsObj.Remove(coj); await Task.Delay(900); } extralenght += Constants.CARDS_SPACE_OFFSET; } CardObj selfCoj = AllCardsObj[AllCardsObj.Count - 1]; StartCoroutine(MoveToPosition(selfCoj.gameObject.transform, PlayingDeck.transform.position, 0.6f)); PlayingDeck.GetComponent <PlayingDeck>().cardObjs.Add(selfCoj); selfCoj.SetCardValue(cardManager.GetPlayingCard()[0]); selfCoj.SetCardFacedUp(); selfCoj.gameObject.transform.SetParent(PlayingDeck.transform); AllCardsObj.Remove(selfCoj); PlayerCards playercard = cardManager.GetAllPlayerCards().Where(ap => ap.playerName == PhotonNetwork.NickName).First(); int i = 0; GameObject player = PlayersObjectArray.Where(ap => ap.GetComponent <PlayerCardList>().isMine == true).First(); foreach (CardObj cardobj in player.GetComponent <PlayerCardList>().cardObjs) { cardobj.SetCardValue(playercard.cards[i]); cardobj.SetCardFacedUp(); i++; } SpaceAllCards(); ReArrangeAllOpponetCards(); // PLAY FIRST ACTIV CARD if (isFirstCardActionDone == false) { isFirstCardActionDone = true; cardManager.StartFirstCard(); } }
//動かした後に位置を再計算する void CardAlign() { for (int i = 0; i < cards.Count; ++i) { var v = new Vector3((i - (float)(cards.Count - 1) / 2) * cardBlank, 0, i * cardZ); cardsObj[i].transform.position = transform.position - v; CardObj c = cardsObj[i].GetComponent <CardObj>(); c.LayerSet(i, TAG); c.ObjReroad(false); } }
//================================================================= //CardObjのUtility public static void SetCardObjs(Card[] _cards, ref List <GameObject> _orig_cards) { for (int i = _orig_cards.Count; _cards.Length <= i; --i) { Destroy(_orig_cards[i]); _orig_cards.RemoveAt(i); } for (int i = 0; i < _cards.Length; ++i) { if (_orig_cards.Count == i) { _orig_cards.Add(CardObj.GetPrefab()); } _orig_cards[i].GetComponent <CardObj>().SetCard(_cards[i]); } }
public void PlayCard(GameObject cardGameObject) { CardObj card = cardGameObject.GetComponent <CardObj>(); Card playedCard = card.GetCard(); Card currentCard = cardManager.GetPlayingCard()[cardManager.GetPlayingCard().Count - 1]; if (playedCard.GetRank() == currentCard.GetRank() || playedCard.GetSuit() == currentCard.GetSuit() || playedCard.GetSuit() == Suits.Whot) { cardManager.PlayCard(playedCard); } else { Debug.Log("Invalid Card Play Another"); } }
//手札の更新 public void SetCards(Card[] _cards) { CardObj.SetCardObjs(_cards, ref cards); }
//カードを触る void CardTouch() { float dis = Vector3.Distance(clickStart, Input.mousePosition / Screen.height); if (touchBorder <= dis || touchSpeed <= Mathf.Abs(velocity)) { if (0 <= focus && focus < cards.Count) { cardsObj[focus].GetComponent <CardObj>().isSelected = false; } focus = -1; return; } if (m_camera.rect.width <= 0 || m_camera.rect.height <= 0) { return; } int re = -1; //カメラからポインタ方向に出るビーム Ray ray = m_camera.ScreenPointToRay(Input.mousePosition); //ビームがぶつかったオブジェクトの情報 RaycastHit hit = new RaycastHit(); //Physics.Raycast(Ray, out RaycastHit, float, int) //ビームと衝突判定で実際に計算を行う //Ray ビーム //out RaycastHit 結果を hit に出力する //float ビーム長さ(入力しないと無限長) //int ビームが衝突するレイヤー(入力しないと「Ignore Raycast」以外) //一番手前のオブジェクトの情報を得ることができる if (Physics.Raycast(ray, out hit, Mathf.Infinity, LayerMask.GetMask(Utility.TOUCHABLE))) { //衝突したオブジェクトはhitに記録される(outの特徴) //衝突したものが手札のカードだった場合 GameObject c = hit.collider.gameObject; CardObj choosen = c.GetComponent <CardObj>(); for (int i = 0; i < cardsObj.Count; ++i) { GameObject h = cardsObj[i]; CardObj hoge = h.GetComponent <CardObj>(); if (c.transform.position == h.transform.position) { re = i; hoge.isSelected = true; } else { hoge.isSelected = false; } } } else { for (int i = 0; i < cardsObj.Count; ++i) { CardObj hoge = cardsObj[i].GetComponent <CardObj>(); hoge.isSelected = false; } } focus = re; }
// } else { // if (isClearing) { // view_frame = view_period; // isClearing = false; // } // } // } //色の決定 void ViewFadeColor() { // if (view_frame == view_period - 1 && !isClearing) { //最初の色を決定 if (!isClearing) { colorFrame = -1; colorFrom = CardObj.GetStartColor(card); } //次の色を決定 if (colorFrame < 0) { colorFrom = colorTo; int colorHave = 0; for (int i = 0; i < (int)Card.Color.size; ++i) { if (card.color[(i + 1 + (int)colorFrom) % (int)Card.Color.size] > 0) { colorTo = (Card.Color)((i + 1 + (int)colorFrom) % (int)Card.Color.size); ++colorHave; break; } } if (colorHave == 0) { colorTo = Card.Color.size; ++colorHave; } if (colorHave == 1) { colorFrame = colorPeriodAdd; colorPeriod = colorPeriodAdd; } else { colorFrame = colorPeriod = (colorPeriodMin + (colorHave - 2) * colorPeriodAdd) / (colorHave - 1); } } //色を確定させて塗る if (colorFrom != colorTo || !isClearing) { for (int i = 0; i < (int)CardObj.ColorMaterial.size; ++i) { Card.State iState = 0; switch ((CardObj.ColorMaterial)i) { case CardObj.ColorMaterial.frame: case CardObj.ColorMaterial.name: continue; case CardObj.ColorMaterial.cost: iState = Card.State.cost; break; case CardObj.ColorMaterial.power: iState = Card.State.power; break; case CardObj.ColorMaterial.toughness: iState = Card.State.toughness; break; } GameObject obj = obj_stateView[(int)iState]; //外部のカードの情報を用いる Color color = Utility.GetRatio( CardObj.colorList[(int)colorFrom][i], CardObj.colorList[(int)colorTo][i], (Mathf.Cos(Mathf.PI * colorFrame / colorPeriod) + 1f) / 2); color.a = viewFrame / viewPeriod; obj.GetComponent <Image>().color = color; if ((CardObj.ColorMaterial)i == CardObj.ColorMaterial.cost) { obj_characterStateView[(int)Card.CharacterState.mana].GetComponent <Image>().color = color; obj_characterStateView[(int)Card.CharacterState.od].GetComponent <Image>().color = color; } } } colorFrame = (colorFrame + 1) % colorPeriod; }
//カード情報をウィンドウに反映させる void WriteWindow(Card _card) { text_name.text = _card.GetName(); text_user.text = ""; for (int i = 0; i < _card.GetUser().Length; ++i) { text_user.text += i == 0 ? "" : " " + _card.GetUser()[i]; } // //書き換えタイミング // if (view_frame == view_period - 1 && !isClearing) { // //if (!isClearing) { // Card cs = card; //GetByteCountは使えない //nm_size = nm_char_size * System.Text.Encoding.GetEncoding(932) // .GetByteCount(nm.text.ToString()) / 2; var gui = new GUIStyle() { font = font_name }; nameSize = gui.CalcSize(new GUIContent(text_name.text)).x; text_name.rectTransform.offsetMin.Set(0, text_name.rectTransform.offsetMin.y); nameMode = ScrollMode.size - 1; nameFrame = -1; //nmMode = NameModeType.size - 1; //nm_frame = -1; //テキストの決定 //テキストで使えるのは //\n : 改行 //\h : ぶら下げ float textLength = 0; //1行に入るテキスト長さ float textLine = 0; //縦の長さ int lineStart = 0; //一行の開始地点 int lineFromFirst = 0; //段落から何行目か bool yen = false; //直前が\のときに真 bool breakFlag = false; //改行フラグ string hungFirst = ""; //段落冒頭の左側 string hungSecond = ""; //段落冒頭以外の左側 string buffer = ""; //これを最終的にtxt.textに流す gui = new GUIStyle() { font = font_text }; for (int i = 0; i < _card.text.Length; ++i) { if (_card.text[i] == '\\') { yen = true; continue; } if (yen) { yen = false; switch (_card.text[i]) { case 'n': breakFlag = true; hungFirst = ""; hungSecond = ""; continue; case 'h': breakFlag = true; hungFirst = ""; hungSecond = " "; continue; } } textLength += gui.CalcSize(new GUIContent(_card.text[i].ToString())).x; if (textLength > textLengthBorder || breakFlag || i == _card.text.Length - 1) { string line = _card.text.Substring(lineStart, i - lineStart); line = line.Replace("\\n", ""); line = line.Replace("\\h", ""); buffer += lineFromFirst == 0 ? hungFirst : hungSecond + line + "\n"; lineStart = i; if (breakFlag) { lineFromFirst = 0; } else { ++lineFromFirst; } textLine += gui.CalcSize(new GUIContent(_card.text[i].ToString())).y; textLength = gui.CalcSize(new GUIContent( (lineFromFirst == 0 ? hungFirst : hungSecond))).x; breakFlag = false; } } text_text.text = buffer; //offsetMin = new Vector2 (left,top); //offsetMax = new Vector2 (right,bottom); var hoge = new Vector2(0, textLineBorder - textLine); text_text.rectTransform.offsetMin = hoge; if (textLine < textLineBorder) { text_text.rectTransform.offsetMax = hoge; obj_textScroll.GetComponent <ScrollRect>().vertical = false; } else { text_text.rectTransform.offsetMax = new Vector2(0, 0); obj_textScroll.GetComponent <ScrollRect>().vertical = true; } obj_textScroll.GetComponent <ScrollRect>().verticalNormalizedPosition = 1f; //コスト火力耐久の反映 for (int i = 0; i < obj_stateView.Length; ++i) { int state = 0; switch ((Card.State)i) { case Card.State.cost: state = _card.GetCost(); break; case Card.State.power: state = _card.GetPower(); break; case Card.State.toughness: state = _card.GetToughness(); break; } stateNum[i].GetComponent <Number>().num = state; stateNum[i].transform.localScale = new Vector3(1, 1, 0) * numScale; } stateNum[(int)Card.State.cost].GetComponent <Number>().isVisible = _card.type != Card.Type.character; for (int i = 0; i < (int)Card.CharacterState.size; ++i) { var isTypeChar = _card.type == Card.Type.character; obj_characterStateView[i].SetActive(isTypeChar); characterStateNum[i].GetComponent <Number>().isVisible = isTypeChar; characterStateNum[i].transform.localScale = new Vector3(1, 1, 0) * numScale; int state = 0; switch ((Card.CharacterState)i) { case Card.CharacterState.mana: state = _card.mana; break; case Card.CharacterState.manaCapacity: state = _card.manaCapacity; break; case Card.CharacterState.od: state = _card.od; break; } characterStateNum[i].GetComponent <Number>().num = state; } //彩度の決定 foreach (var i in chromas) { Destroy(i); } foreach (var i in chromaNums) { Destroy(i); } chromas.Clear(); chromaNums.Clear(); //スタート地点を見つける Card.Color start = CardObj.GetStartColor(_card); //シンボルの種類を数える int colorHave = 0; for (int i = 0; i < (int)Card.Color.size; ++i) { if (_card.color[i] > 0) { ++colorHave; } } //配置する for (int i = 0, a = 0; i < (int)Card.Color.size; ++i) { int b = ((int)start + i) % (int)Card.Color.size; if (0 < _card.color[b]) { var obj = Utility.InstantiateWithTransform(orig_chroma, orig_chroma.transform); obj.transform.localPosition += new Vector3(chromaBlank * a++, 0, 0); obj.transform.localScale = new Vector3(1, 1, 1) * chromaScale; obj.GetComponent <Image>().sprite = chromaPic[b]; chromas.Add(obj); if (1 < _card.color[b]) { var num = Instantiate(orig_num, obj.transform.position + chromaNumPos, obj.transform.rotation, obj.transform); num.GetComponent <Number>().num = _card.color[b]; num.transform.localScale = new Vector3(1, 1, 0) * chromaNumScale; chromaNums.Add(num); } } } }
private void AddCardToPlayingDeck(CardObj co) { PlayingDeck.GetComponent <PlayingDeck>().cardObjs.Add(co); MoveCard(co.gameObject, PlayingDeck.transform.position); co.gameObject.transform.SetParent(PlayingDeck.transform); }
public void AddCardtoPlayingDeck(Card card, string playerId) { GameObject playerObject = GetPlayerObject(playerId); List <CardObj> listOfPlayerCard = playerObject.GetComponent <PlayerCardList>().cardObjs; PlayerCards playerCard = cardManager.GetPlayerCardFromPlayerId(playerId); if (PhotonNetwork.LocalPlayer.NickName == playerId) { CardObj co = GetCardObj(listOfPlayerCard, card); co.gameObject.transform.SetSiblingIndex(0); listOfPlayerCard.Remove(co); AddCardToPlayingDeck(co); SpaceAllCards(); } else { CardObj co = listOfPlayerCard[listOfPlayerCard.Count - 1]; co.gameObject.transform.SetSiblingIndex(0); listOfPlayerCard.Remove(co); co.SetCardValue(card); co.SetCardFacedUp(); AddCardToPlayingDeck(co); } //Display Card Message //string actionMessage = DisplayCardMessage(card, playerCard.player); //if (actionMessage != "NULL") //{ // StartCoroutine(ShowNextPlayer(actionMessage)); //} string nextPlayerMessage = DisplayNextPlayerMessage(card, playerCard.player); StartCoroutine(ShowCardAction(nextPlayerMessage)); //END >>> if (cardManager.IsCardsPoolEmpty()) { // Calculate and return winner Debug.Log("Game Over Cards Finished"); } if (cardManager.IsPlayerCardRemainingOne(playerCard.player)) { // Show Last Card Warning Debug.Log("Last Card" + playerCard.player.NickName); } if (cardManager.IsPlayerCardFinish(playerCard.player)) { // return winner Debug.Log("Winner" + playerCard.player.NickName); } }
void OnGUI() { float per1x = 65f; float per1y = 65f; float basex = 735f + per1x; float basey = 590f + per1y; if (this.step == EFFECT.STEP.ATTACK) { //EFFECT EFFECT = GetComponentInParent<EFFECT>(); //int[,] position = EFFECT.A_1(); // ここで座標のみを受け取っているため受け取りもとで行っている作業を下でもしている /* * Type t = this.GetType(); * MethodInfo mi = t.GetMethod(cardname); * object o = mi.Invoke(this, null); * int[,] position = mi.Invoke(null, null); */ int[,] position = A_1(); /* * * ここに個別の処理をそれぞれ埋め込む * */ if (cardname == "A_1") { position = A_1(); } if (cardname == "A_2") { position = A_2(); } if (cardname == "A_3") { position = A_3(); } if (cardname == "A_4") { position = A_4(); } if (cardname == "A_5") { position = A_5(); } if (cardname == "A_6") { position = A_6(); } if (cardname == "A_7") { position = A_7(); } if (cardname == "A_8") { position = A_8(); } if (cardname == "A_9") { position = A_9(); } if (cardname == "A_10") { position = A_10(); } if (cardname == "A_11") { position = A_11(); } int damage = position[0, 2]; int distance = position[0, 3]; int cost = position[0, 4]; int[,] own_dice_position = Get_own_diceposition(); int[,] opp_dice_position = Get_opp_diceposition(); int enable_cost = GetHand() - 1; // 発動中のカードを除くため-1 //int in_distance_dicenum = Get_in_distance_dicenum(distance); // distance内存在する相手のダイス数 distanceを渡せばいいのかな? int dice_x; int dice_y; int attacker_dice_x; int attacker_dice_y; int target_dice_x; int target_dice_y; void attack_processing() { GameObject gameOb = GameObject.Find("GameMaster"); GameMaster gamemaster = gameOb.GetComponent <GameMaster>(); player1 player = gamemaster.currentPlayer; Card card = this.GetComponent <Card>(); player.PushSettingCardOnFieldFromHand(card); //List<GameObject> attackers = own_diceList(); List <GameObject> attackers = Attackable_dice_object(distance); //List<GameObject> targets = opp_diceList(); bool activate_dice = DiceExistActivate(); int selected_dice_num = DiceExistSelected(); if (activate_dice == false) { foreach (GameObject attacker in attackers) { attacker_dice_x = attacker.GetComponent <Dice>().x; attacker_dice_y = attacker.GetComponent <Dice>().y; bool attacker_i = GUI.Button(new Rect(basex - 33f - per1x * (attacker_dice_x), basey - 432f + per1y * (attacker_dice_y), 66, 66), ""); if (attacker_i == true) { attacker.GetComponent <Dice>().activate = true; } } } GameObject attackerObj = diceExistActivate(); GameObject selectedObj = diceExistSelected(); attacker_dice_x = attackerObj.GetComponent <Dice>().x; attacker_dice_y = attackerObj.GetComponent <Dice>().y; target_dice_x = selectedObj.GetComponent <Dice>().x; target_dice_y = selectedObj.GetComponent <Dice>().y; List <GameObject> targets = Target_dice_object(attackerObj, distance); if (activate_dice == true) { bool attacker_ = GUI.Button(new Rect(basex - 33f - per1x * (attacker_dice_x), basey - 432f + per1y * (attacker_dice_y), 66, 66), "att"); foreach (GameObject target in targets) { target_dice_x = target.GetComponent <Dice>().x; target_dice_y = target.GetComponent <Dice>().y; bool atrget_i = GUI.Button(new Rect(basex - 33f - per1x * (target_dice_x), basey - 432f + per1y * (target_dice_y), 66, 66), ""); if (atrget_i == true) { target.GetComponent <Dice>().selected = true; } } } if (activate_dice == true && selected_dice_num > 0) { bool attacker_ = GUI.Button(new Rect(basex - 33f - per1x * (attacker_dice_x), basey - 432f + per1y * (attacker_dice_y), 66, 66), "att"); bool target_ = GUI.Button(new Rect(basex - 33f - per1x * (target_dice_x), basey - 432f + per1y * (target_dice_y), 66, 66), "tar"); GameObject target = diceExistSelected(); Dice dice = target.GetComponent <Dice>(); DragObj dragObj = dice.GetComponent <DragObj>(); dragObj.eee(); dice.hp -= damage; step = EFFECT.STEP.IDLE; activate_step = ACTIVATE.STEP.NONE; DiceFlagrestore(); } } // 手札が発動コストを満たしているか確認 if (cost <= enable_cost || activate_step == ACTIVATE.STEP.IDLE) { List <GameObject> attackers = Attackable_dice_object(distance); if (attackers.Count == 0) { bool card_choose = GUI.Button(new Rect(350, 220, 500, 450), "有効射程範囲に敵ダイスが存在しません"); if (card_choose == true) { step = EFFECT.STEP.IDLE; } } else if (attackers.Count > 0) { activate_step = ACTIVATE.STEP.IDLE; if (cost == 1 && activate_cost != EFFECT.COST.ONE) { bool card_choose = GUI.Button(new Rect(350, 220, 500, 450), "捨てるカードを1枚選択してください"); if (card_choose == true) { //enable_cost = GetHand(); activate_cost = EFFECT.COST.ONE; CardObj _cardobj = GetComponentInParent <CardObj>(); _cardobj.GetCardCost(cost); Card card = GetComponentInParent <Card>(); card.activate = true; } } if (cost == 2 && activate_cost != EFFECT.COST.TWO) { bool card_choose = GUI.Button(new Rect(350, 220, 500, 450), "捨てるカードを2枚選択してください"); if (card_choose == true) { //enable_cost = GetHand(); activate_cost = EFFECT.COST.TWO; CardObj _cardobj = GetComponentInParent <CardObj>(); _cardobj.GetCardCost(cost); Card card = GetComponentInParent <Card>(); card.activate = true; } } if (cost > 3) { bool card_choose = GUI.Button(new Rect(550, 350, 500, 450), "捨てるカードを選択してください"); } if (activate_cost == EFFECT.COST.ONE) { // カードの発動コストを支払い終えたか確認 if (this.CardExistActivate() == false) { attack_processing(); } } if (activate_cost == EFFECT.COST.TWO) { // カードの発動コストを支払い終えたか確認 if (this.CardExistActivate() == false) { attack_processing(); } } if (cost == 0) { attack_processing(); } } } else { Debug.Log("cost:" + cost + "enable_cost:" + enable_cost); bool card_choose = GUI.Button(new Rect(350, 220, 500, 450), "このカードの発動に必要なコストが足りていません"); if (card_choose == true) { step = EFFECT.STEP.IDLE; } } } if (step == EFFECT.STEP.MANA) { GameObject gameOb = GameObject.Find("GameMaster"); GameMaster gamemaster = gameOb.GetComponent <GameMaster>(); player1 player = gamemaster.currentPlayer; Card card = this.GetComponent <Card>(); player.PushSettingCardOnFieldFromHand(card); int dice_x; int dice_y; List <GameObject> targets = own_diceList(); foreach (GameObject target in targets) { dice_x = target.GetComponent <Dice>().x; dice_y = target.GetComponent <Dice>().y; ; bool activate_i = GUI.Button(new Rect(basex - 33f - per1x * (dice_x), basey - 432f + per1y * (dice_y), 66, 66), ""); if (activate_i == true) { Dice dice = target.GetComponent <Dice>(); DragObj dragObj = dice.GetComponent <DragObj>(); dragObj.ddd(); step = EFFECT.STEP.IDLE; } } } /* * if (step == EFFECT.STEP.MANA) * { * GameObject gameOb = GameObject.Find("GameMaster"); * GameMaster gamemaster = gameOb.GetComponent<GameMaster>(); * player1 player = gamemaster.currentPlayer; * Card card = this.GetComponent<Card>(); * player.PushSettingCardOnFieldFromHand(card); * * int[,] position = M_1(); * int damage = position[0, 2]; * int distance = position[0, 3]; * int dice_x; * int dice_y; * * List<GameObject> targets = own_diceList(); * * for (int i = 0; i < position.GetLength(0); i++) * { * dice_x = position[i, 0]; * dice_y = position[i, 1]; * * bool activate_i = GUI.Button(new Rect(basex - 33f - per1x * (dice_x), basey - 432f + per1y * (dice_y), 66, 66), ""); * if (activate_i == true) * { * //dice_step = DICE.STEP.TOUCHE; * Debug.Log("aaaaaaaaaaaaaaaaaaaaa"); * var gameObj = GameObject.FindGameObjectsWithTag("DICE"); * for (int j = 0; j < position.GetLength(0); j++) // A_1でtargetobjごと受け取っていれば同じことをせずに済んだ * { * Dice dice = gameObj[j].GetComponent<Dice>(); * Debug.Log("dice.x:" + dice.x + "dice_x:" + dice_x); * Debug.Log("dice.y:" + dice.y + "dice_y:" + dice_y); * if (dice.x == dice_x && dice.y == dice_y) // 再び座標と一致するオブジェクトを探している、後で絶対直す * { * Debug.Log("bbbbbbbbbbbbbbb"); * DragObj dragObj = dice.GetComponent<DragObj>(); * dragObj.ddd(); * step = EFFECT.STEP.IDLE; * } * } * } * } * } */ }