Exemplo n.º 1
0
 // Update is called once per frame
 void Update()
 {
     if (CardOn == true && card != null)
     {
         CardDrag drag = card.GetComponent <CardDrag> ();
         if (drag.dragged == false && drag.poweradded == false)
         {
             CardOn = false;
             cardlist.Add(card);
             this.GetComponentInParent <rowScore> ().addScore(drag.power);
             drag.poweradded = true;
             card            = null;
         }
     }
     cardcount = cardlist.Count;
     if (cardlist.Count > 0)
     {
         testing = (1 - cardcount) / (1.75);
         for (int i = 0; i < cardcount; i++)
         {
             GameObject test   = (GameObject)cardlist[i];
             Vector3    newPos = new Vector3((transform.position.x + (float)testing + i), transform.position.y, test.transform.position.z);
             test.transform.position = newPos;
         }
     }
 }
Exemplo n.º 2
0
 // -------------------------------------------------------------------------
 // CardDrag_flgActCheck()
 // CardDragのflg_Actチェック処理
 // -------------------------------------------------------------------------
 public void CardDrag_flgActCheck()
 {
     // 全てのカードのフラグ状態をチェック
     foreach (Transform child in OBJ_DECK.transform)
     {
         CardDrag script = child.GetComponent<CardDrag>();
         if (script.flg_Act == true) // まだ実施中のものがあれば処理を廃棄
             return;
     }
     for (int i = 0; i < Card_All_str.Length; i++)
     {
         if (Card_All_str[i] == "")
         {  // empty
             // カード探す
             GameObject child = GameObject.Find("GameCanvas/Deck/card_" + i);
             if (Card_queue.Count > 0)  // dequeueが空でなくば
             {
                 CardUpdating(i, CardDequeue()); // カードを格納
                 child.SetActive(true);  // デッキを再表示にする
                 CardDrag script = child.GetComponent<CardDrag>();
                 script.Card_Revival(); // カード復活処理
                 DeckMasterDisabledFunc(false);  // デッキを再度非表示にする
             }
             else
             {
                 child.SetActive(false); // 非表示に
                 FieldCountCheck(i); // 値を空にする+カウントチェック
             }
         }
     }
     PaneClearCheck();
     //        DrawScreen();   // デッキ枚数描画等
     Ques_Store(); // データ格納
 }
Exemplo n.º 3
0
    // -------------------------------------------------------------------------
    // DrawScreen
    // 画面への描画処理
    // -------------------------------------------------------------------------
    void DrawScreen()
    {
        // 小項目の描画(大項目は直接描画しているため必要なし)
        int cnt = 0;
        foreach (Transform child in OBJ_DECK.transform)
        {
            CardDrag script = child.GetComponent<CardDrag>();
            script.str_MainTxt = Card_All_str[cnt];
            script.str_Help = Card_All_strHelp[cnt];
            Text textComponent = child.GetComponentInChildren<Text>();
            if (DebugFlg.isOn == true)
                textComponent.text = 
                Card_All_str[cnt] + " : " + Card_All_txt[cnt];
            else
                textComponent.text = Card_All_txt[cnt];
            if (textComponent.text == "")   // 入れる値がなくば無効化
                child.gameObject.SetActive(false);
            cnt++;

            TEXT_CARD_NUM.text = Card_queue.Count.ToString();

            // 詳細の箇所は空欄にする。
            ChangeText_SC("");
            strDisplayNow = ""; // 表示用も空にする
        }

    }
Exemplo n.º 4
0
    public void OnDrop(PointerEventData eventData)
    {
        CardDrag card = eventData.pointerDrag.GetComponent <CardDrag>();

        if (card)
        {
            card.DefaultParent = transform;
        }
    }
Exemplo n.º 5
0
 public void RemoveCard(CardDrag cardDrag)
 {
     for (int i = 0; i < this.transform.childCount; i++)
     {
         if (this.transform.GetChild(i).Equals(cardDrag))
         {
             Destroy(this.transform.GetChild(i));
         }
     }
 }
Exemplo n.º 6
0
 void OnTriggerExit2D(Collider2D coll)
 {
     card = coll.gameObject;
     if (coll.gameObject.tag == "Card")
     {
         drag = card.GetComponent <CardDrag> ();
         hand.Remove(card);
     }
     card = null;
 }
Exemplo n.º 7
0
    void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)
    {
        cardDrag = this;
        myCanvas.sortingOrder = 2;

        startParent   = transform.parent;
        startPosition = transform.position;

        myCanvasGroup.blocksRaycasts = false;
    }
Exemplo n.º 8
0
    void IEndDragHandler.OnEndDrag(PointerEventData eventData)
    {
        cardDrag = null;
        myCanvas.sortingOrder = 1;

        if (transform.parent == startParent)
        {
            transform.position = startPosition;
        }

        myCanvasGroup.blocksRaycasts = true;
    }
Exemplo n.º 9
0
    // -------------------------------------------------------------------------
    // CorrectNext
    // 正解処理
    // -------------------------------------------------------------------------
    // 次の問題へ移行 1.5f
    void CorrectNext()
    {
        // 抽出されたものの選択肢を消す

        // 正解表示を消す
        CorrectPanel.SetActive(false);

        // 正解したカードを消す
        for(int i = 0; i < Card_All_str.Length; i++)
        {
            if (Card_All_str[i] == "")
            {
                int cnt = 0;
                foreach (Transform child in OBJ_DECK.transform)
                {
                    if (i == cnt)
                    {
                        child.gameObject.SetActive(false);
                        break;
                    }
                    cnt++;
                }
            }
        }

        // 但しカードがなくなったら補充する
        int chk = 0;
        for(chk = 0; chk < Card_All_str.Length; chk++)
        {
            if (Card_All_str[chk] != "")
                break;
        }
        if (chk >= Card_All_str.Length)
        {
            foreach (Transform child in OBJ_DECK.transform)
            {
                child.gameObject.SetActive(true);
            }
            SetCSVData_Sho();   // 初期化
        }


        // 全てのカードに対し、初期位置へ戻れ命令。
        foreach (Transform child in OBJ_DECK.transform)
        {
            CardDrag script = child.GetComponent<CardDrag>();
            script.InitPos();
        }


        SetCSVData_Dai();   // 新たな問題描画処理
    }
Exemplo n.º 10
0
 // -------------------------------------------------------------------------
 // OnClick_Help()
 // ヘルプボタン押下処理
 // strDisplayNowには現在詳細画面に表示されているカード名が入っている
 // そのカードのscriptまで行き、help表示flgを立てる
 // 表示の更新をしたらhelp表示が反映される
 // -------------------------------------------------------------------------
 public void OnClick_Help()
 {
     // フラグ変更
     foreach (Transform child in OBJ_DECK.transform)
     {
         if(child.gameObject.name == strDisplayNow) // 現在表示中のものを探す
         {
             CardDrag script = child.GetComponent<CardDrag>();
             script.flg_Help = true; // help表示フラグを更新
             script.DisplayText_SC(); // 表示の更新
         }
     }
 }
Exemplo n.º 11
0
    void OnTriggerEnter2D(Collider2D coll)
    {
        if (coll.gameObject.tag == "Card")
        {
            card = coll.gameObject;
            hand.Add(card);
            drag = card.GetComponent <CardDrag> ();
            card = null;
            //	CardOn = true;
        }

        /*else {
         *      CardOn = false;
         * }*/
    }
Exemplo n.º 12
0
 //Fixing Weird Bug , when two bar collider collide with card
 void OnTriggerExit2D(Collider2D coll)
 {
     card = coll.gameObject;
     if (coll.gameObject.tag == "Card")
     {
         CardDrag drag = card.GetComponent <CardDrag> ();
         if (drag.poweradded == true)
         {
             CardOn = false;
             cardlist.Remove(card);
             this.GetComponentInParent <rowScore> ().removeScore(drag.power);
             drag.poweradded = false;
         }
         card = null;
     }
 }
Exemplo n.º 13
0
    // -------------------------------------------------------------------------
    // Ques_Store
    // 問題格納処理
    // -------------------------------------------------------------------------
    void Ques_Store()
    {
        int cnt = 0;
        foreach (Transform child in OBJ_DECK.transform)
        {
            CardDrag script = child.GetComponent<CardDrag>();
            script.str_MainTxt = Card_All_txt[cnt];
            script.str_Help = Card_All_strHelp[cnt];
            Text textComponent = child.GetComponentInChildren<Text>();
            cnt++;

            TEXT_CARD_NUM.text = Card_queue.Count.ToString();

            // 詳細の箇所は空欄にする。
            ChangeText_SC("カードをタップ");
            strDisplayNow = ""; // 表示用も空にする
        }

    }
Exemplo n.º 14
0
    // -------------------------------------------------------------------------
    // NextCardButton_OnClick()
    // 次のカードボタン押下処理
    // -------------------------------------------------------------------------
    public void NextCardButton_OnClick()
    {
        if (SETTING_DB.CardInclude == true && flg_Miss == true && mode != 13)
        {
            TEXT_MISS_DISP.text = "Penalty + " + cnt_MissCard;
            CVS_MISS.enabled = true;  // 不正解キャンバスを表示
            StartCoroutine(PenaltyEnabled(1.0f, CVS_MISS));
            cnt_MissCard = 0;
        }

        for (int i = 0; i < strArray.Length; i++)
        {
            if (strArray[i] == "正解" || strArray[i] == "不正解")
            {
                foreach (Transform child in OBJ_DECK.transform)
                {
                    if (child.name == "card_" + i)
                    {
                        if (strArray[i] == "正解")
                        {
                            CardDrag script = child.GetComponent<CardDrag>();
                            // ここで縮小命令をかける
                            script.Card_Reduct_Order();
                            break;
                         }
                        else if (strArray[i] == "不正解")
                        {
                            CardDrag script = child.GetComponent<CardDrag>();
                            // デッキに戻る処理
                                script.DeckBackFunc();
                            break;
                        }
                    }
                }
            }
        }
        CVS_NEXT_BUTTON.enabled = false;    // NextCardボタン非表示
    }
Exemplo n.º 15
0
    public bool PlayCard(CardDrag cardDrag, PointerEventData eventData)
    {
        Tile tile = map.GetTileFromPosition(Camera.main.ScreenToWorldPoint(eventData.position));

        if (!tile.CanDrop())
        {
            return(false);
        }

        Unit     unit     = null;
        Building building = null;

        Card card;

        if (cardDrag.GetComponent <CardUnitDisplay>() == null)
        {
            card     = cardDrag.GetComponent <CardBuildingDisplay>().card;
            building = (Building)GamePiece.CreatePiece(this, card, tile);
        }
        else
        {
            card = cardDrag.GetComponent <CardUnitDisplay>().card;
            unit = (Unit)GamePiece.CreatePiece(this, card, tile);
        }


        if (card.cardType == CardType.Unit)
        {
            map.AddUnit(unit);
        }
        else if (card.cardType == CardType.Building)
        {
            map.AddBuilding(building);
        }
        hand.PlayCard(card);

        return(true);
    }
Exemplo n.º 16
0
    // -------------------------------------------------------------------------
    // ButtonClick_JudgenChange()
    // Judge n Change ボタンクリック処理
    // -------------------------------------------------------------------------
    public void ButtonClick_JudgenChange()
    {
        //flg_operate = false;    // ボタン操作フラグオフ
        Change_JudgenChangeButton(false);
        // 載っているカードの枚数を取得するとして
        // どうやればそれができるのか。
        // それぞれのCardFieldに聞きにいくしかあるまい。
        int cnt = 0;

        // 正解・不正解判定
        cnt = 0; // カウント用
        foreach(Transform child in OBJ_DECK.transform)
        {
            cnt++;
        }
        strArray = new string[cnt];

        for(int i = 0; i < cnt; i++)
        {
            strArray[i] = "";   // 配列の初期化
        }

        // どのカードがどのlsCodeかはこのScriptが持っている。
        // 問題はどれがどのフィールドに置かれているかということ
        // これを取得すればよい。

        foreach(Transform CFChild in OBJ_CARD_FIELD.transform)
        {
            foreach(Transform son in CFChild.transform)
            {
                if(son.name == "ColPos_JH") // 小学生
                {
                    FieldCube script = son.GetComponent<FieldCube>();
                    for ( int i = 0; i< cnt; i++)
                    {
                        if(script.Card_Put(i) == true)
                        {
                            switch (Card_All_str[i])
                            {
                                case "":
                                    strArray[i] = "-";
                                    break;
                                case "JH":
                                    strArray[i] = "正解";
                                    break;
                                default:
                                    strArray[i] = "不正解";
                                    break;
                            }
                        }
                    }
                }
                if (son.name == "ColPos_M") // 小学生
                {
                    FieldCube script = son.GetComponent<FieldCube>();
                    for (int i = 0; i < cnt; i++)
                    {
                        if (script.Card_Put(i) == true)
                        {
                            switch (Card_All_str[i])
                            {
                                case "":
                                    strArray[i] = "-";
                                    break;
                                case "MD":
                                    strArray[i] = "正解";
                                break;
                                default:
                                    strArray[i] = "不正解";
                                break;
                            }
                        }
                    }
                }

            }
        }

        flg_Miss = false; // ミスフラグ初期化

        for (int i = 0; i < cnt; i++)
        {
            if(strArray[i] == "正解" || strArray[i] == "不正解")
            {
                foreach (Transform child in OBJ_DECK.transform)
                {
                    if(child.name == "card_" + i)
                    {
                        // カード操作不能にする
                        CardDrag script = child.GetComponent<CardDrag>();
                        script.flg_EnableMove = false;
                        foreach(Transform son in child.transform)
                        {
                            // 花丸の表示 正解処理
                            if (strArray[i] == "正解" && son.name == "Hanamaru")
                            {
                                if(mode == 13)  // 復習モードなら
                                    CorrectToReview(Card_All_int[i]);    // 正解の問題除外
                                son.GetComponent<Image>().enabled = true;
                                break;
                            }
                            // バツの表示
                            else if 
                            (strArray[i] == "不正解" && son.name == "Batu") 
                            {
                                son.GetComponent<Image>().enabled = true;
                                Card_queue.Enqueue(Card_All_int[i]);
                                WrongToReview(Card_All_int[i]); // 復習に情報追加

                                if (SETTING_DB.CardInclude == true && mode != 13)
                                {  // カード追加用設定がOnなら
                                    flg_Miss = true;    // ミスフラグオン
                                    CardInclude();  // ミス時のカード追加処理
                                }
                                break;
                            }
                        }
                        // helpの表示
                        CardDrag CDScript = child.GetComponent<CardDrag>();
                        CDScript.flg_Help = true; // help表示フラグを更新
                        if(child.name == strDisplayNow) // 現在表示中の問題であったらば
                            CDScript.DisplayText_SC(); // 表示の更新
                    }
                }
            }
        }
        CVS_NEXT_BUTTON.enabled = true;    // NextCardボタン表示
        flg_Put = false;    // カード置きフラグオフ
    }