示例#1
0
    //---------------------------------------------------------------------------


    //手札を増やす--------------------------------
    public void IncreaseHand(CardMain card)
    {
        _card.Add(card);
        card.transform.parent = this.transform;

        Sort(player);
    }
示例#2
0
    //-----------------------------------------------------------------------------------------


    //ダイレクトアタック処理Update------------------------------------------------------------------------
    void EnemyDirectAttackUpdate( )
    {
        for (int i = 0; i < ConstantStorehouse.SQUARE_ROW_NUM; i++)
        {
            Square square = _field.getSquare((ConstantStorehouse.SQUARE_ROW_NUM * ConstantStorehouse.FIFTH_ROW_INDEX) + i);                     // ( 横のマス数 × 五列目 ) + 左からの番号

            if (square.On_Card == null)
            {
                continue;
            }
            if (square.On_Card.gameObject.tag != ConstantStorehouse.TAG_PLAYER2)
            {
                continue;
            }

            CardMain directAttackCard = square.On_Card;
            int      nowAP            = _enemyActivePoint.Point_Num;
            if (directAttackCard.Card_Data._necessaryAP > nowAP)
            {
                continue;
            }
            if (directAttackCard.Action_Count >= directAttackCard.MAX_ACTION_COUNT)
            {
                continue;
            }

            _enemy.DirectAttack(_player, directAttackCard.Card_Data._necessaryAP, directAttackCard);
            return;
        }

        _enemyBehaviorStatus = ENEMY_BEHAVIOR_STATUS.MOVE;
    }
示例#3
0
    //-----------------------------------------------------------------------------------------------------


    //移動できたら移動して移動できたかどうかを返す-----------------------------------------------------------
    bool EnemyCardMove(CardMain enemyMoveCard, Square nowSquare, PRIORITY_DIRECTION priority)
    {
        List <Field.DIRECTION> directions = EnemyDirectionSorting(enemyMoveCard, priority);

        if (directions.Count == 0)
        {
            return(false);
        }


        List <Field.DIRECTION> enemyDirection = new List <Field.DIRECTION>( );

        for (int i = 0; i < directions.Count; i++)
        {
            enemyDirection.Add(directions[i]);

            List <Field.DIRECTION> preDirection = enemyMoveCard.Card_Data_Direction;
            enemyMoveCard.Card_Data_Direction = enemyDirection;              //一時的にエネミーのカードの移動先を書き換えている。

            List <Square> moveSquare = _field.MovePossibleSquare(enemyMoveCard, enemyMoveCard.Card_Data._directionOfTravel, nowSquare);

            if (moveSquare.Count == 0)
            {
                enemyMoveCard.Card_Data_Direction = preDirection;
                enemyDirection.Remove(directions[i]);
                continue;
            }

            MoveCard(enemyMoveCard, nowSquare, moveSquare[0]);                          //あとでこの関数の役割を分けないといけない
            enemyMoveCard.Card_Data_Direction = preDirection;
            return(true);
        }

        return(false);
    }
示例#4
0
    //--------------------------------------------------------------


    //移動できる場所を事前に調べる関数-------------------------------------------------------------------------------------------------
    public List <Square> MovePossibleSquare(CardMain card, List <DIRECTION> direction, Square nowSquare, int distans = 1)
    {
        List <Square> squares = new List <Square>( );

        //移動できるマスだけ格納
        List <DIRECTION> directions = card.getDirections(card.gameObject.tag, direction);

        for (int i = 0; i < directions.Count; i++)
        {
            Square square = SquareInThatDirection(nowSquare, directions[i], distans);

            if (square == null)
            {
                continue;
            }
            if (square.On_Card != null)
            {
                if (square.On_Card.gameObject.tag == card.gameObject.tag)
                {
                    continue;                                                                           //マスにあるのが自分のカードだったらcontinue
                }
            }

            squares.Add(square);
        }

        return(squares);
    }
示例#5
0
    //--------------------------------------------------------------


    //召喚処理-----------------------------------------------------------------------------------------------------------
    public void Summon(CardMain card, Square square, string player)
    {
        List <Square> summonableSquares = _field.SummonSquare(player);

        for (int i = 0; i < summonableSquares.Count; i++)
        {
            if (square.Index != summonableSquares[i].Index)
            {
                continue;
            }

            _hand.DecreaseHandCard(card);
            GameObject fieldCardObj = Instantiate(_fieldCard, square.transform.position, Quaternion.identity);                  //生成はHnadがやるプレイヤーがやる?

            if (fieldCardObj.gameObject.tag == ConstantStorehouse.TAG_PLAYER2)
            {
                fieldCardObj.transform.eulerAngles = new Vector3(ENEMY_FIELD_CARD_ROTA_X, 0, 0);                        //反転
            }


            CardMain fieldCard = fieldCardObj.GetComponent <CardMain>( );
            fieldCard.loadID = card.loadID;

            //召喚エフェクト処理
            Vector3 effectPos = fieldCardObj.transform.position;
            effectPos.z = Camera.main.transform.position.z + 1f;            //カメラに近い位置に生成したいため
            Instantiate <AutoDestroyEffect>(_summonEffect, effectPos, Quaternion.identity);

            _magicPoint.DecreasePoint(card.Card_Data._necessaryMP);
            square.On_Card = fieldCard;
            AddMyFieldCards(fieldCard);
            return;
        }
    }
示例#6
0
    //----------------------------------------------------------------------------------------------------------------------------------


    //攻撃効果をするマスにカードがあるマスを事前に調べる関数-----------------------------------------------------------------------------------
    public List <Square> AttackEffectPossibleOnCardSquare(CardMain card, Square nowSquare)
    {
        List <Square> squares = new List <Square>( );

        //攻撃できるマスだけ格納
        List <Field.DIRECTION> directions = card.getDirections(card.gameObject.tag, card.Card_Data._effect_direction);

        for (int i = 0; i < directions.Count; i++)
        {
            Square square = SquareInThatDirection(nowSquare, directions[i], card.Card_Data._effect_distance);

            if (square == null)
            {
                continue;
            }
            if (square.On_Card == null)
            {
                continue;
            }
            squares.Add(square);
        }

        Debug.Log(squares);
        return(squares);
    }
示例#7
0
    //-----------------------------------------------------------------------------------


    //回復効果(オーバロード)----------------------------------------
    public void UseEffect(CardMain card)
    {
        card.Recovery(card.Card_Data._effect_value);
        //エフェクト処理---------------------------------------------------------------
        Instantiate <AutoDestroyEffect>(_recoveryEffect, card.transform.position, Quaternion.identity);
        //----------------------------------------------------------------------------
        _activePoint.DecreasePoint(card.Card_Data._necessaryAPForEffect);
    }
示例#8
0
    //----------------------------------------------------------------------------------------------------------------------------------------------


    //ダイレクトアタック処理--------------------------------------------------
    public void DirectAttack(Participant opponentPlayer, int moveAp, CardMain card)
    {
        _activePoint.DecreasePoint(moveAp);
        opponentPlayer._lifePoint.DecreasePoint(1);
        card.Action_Count++;

        //ダイレクトアタックアニメーション--------------------
        _opponentLifeSpace.StartDirectAttackAnimation( );
        //--------------------------------------------------
    }
示例#9
0
    //-----------------------------------------------------


    //ドロー処理---------------------------
    public void Draw( )
    {
        CardMain card = _deck.Draw( );

        if (card)
        {
            card.gameObject.tag   = this.gameObject.tag;                //自身のカードであることを示すタグを付ける
            card.gameObject.layer = LayerMask.NameToLayer("HandCard");  //手札レイヤー層に設定する
            _hand.IncreaseHand(card);
        }
    }
示例#10
0
    //-------------------------------------------------------------------------------------------


    //移動効果(オーバロード)-------------------------------------------------------------
    public void UseEffect(CardMain card, Square nowSquare, Square touchSquare)
    {
        bool isMoved = MoveCard(card, card.Card_Data._effect_direction, card.Card_Data._necessaryAPForEffect, nowSquare, touchSquare, card.Card_Data._effect_distance);

        //エフェクト処理-----------------------------------------------------------------------------------------
        if (isMoved)
        {
            Instantiate <AutoDestroyEffect>(_moveEffect, touchSquare.transform.position, Quaternion.identity);
        }
        //------------------------------------------------------------------------------------------------------
    }
示例#11
0
    void EnemyTurnUpdate( )
    {
        List <CardMain> handCards = _turnPlayer.Hand_Cards;
        CardMain        card      = handCards[0];

        _turnPlayer.HandThrowAway(card);
        if (_turnPlayer.Hand_Num == _turnPlayer.Max_Hnad_Num)
        {
            _didHandThrowAway = true;
        }
    }
示例#12
0
    //召喚処理Update-------------------------------------------------------------------
    void EnemySummonUpdate( )
    {
        List <Square> summonSquares = _field.SummonSquare(_enemy.gameObject.tag);

        if (summonSquares.Count == 0)
        {
            _enemyBehaviorStatus = ENEMY_BEHAVIOR_STATUS.DIRECT_ATTACK;
            return;
        }


        CardMain summonCard = null;

        summonCard = SummonCardSearch( );
        if (summonCard == null)
        {
            _enemyBehaviorStatus = ENEMY_BEHAVIOR_STATUS.DIRECT_ATTACK;
            return;
        }


        Square summonSquare = null;

        //第一条件
        summonSquare = FirstPrioritySquareSearch( );
        if (summonSquare != null)
        {
            Summon(summonCard, summonSquare);
            return;
        }

        //第二条件
        summonSquare = SecondPrioritySquareSearch( );
        if (summonSquare != null)
        {
            Summon(summonCard, summonSquare);
            return;
        }

        //第三条件
        summonSquare = ThirdPrioritySquareSearch( );
        if (summonSquare != null)
        {
            Summon(summonCard, summonSquare);
            return;
        }

        if (summonSquare == null)
        {
            _enemyBehaviorStatus = ENEMY_BEHAVIOR_STATUS.DIRECT_ATTACK;
            return;
        }
    }
示例#13
0
    //---------------------------------------------------------------


    //手札のカードがタッチされたら処理-------------------------------------------
    void HandCardTouch( )
    {
        _handCard = _rayShooter.RayCastHandCard(_turnPlayer.gameObject.tag);
        if (_handCard == null)
        {
            return;
        }

        _handCardPos = _handCard.transform.position;
        _handCard.gameObject.GetComponent <BoxCollider2D>( ).enabled = false;
        _handCard.CardExpansion( );
        _mainPhaseStatus = MAIN_PHASE_STATUS.HAND_CARD_OPERATION;
    }
示例#14
0
        private void FmMOReport_Load(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(cardNo))
            {
                throw new Exception("流转卡号不能为空!");
            }
            else if (!dal.Exists(cardNo))
            {
                throw new Exception("流转卡号[" + cardNo + "] 不存在!");
            }

            this.cardM = dal.GetCardMain(cardNo);
            this.LoadData();
        }
示例#15
0
    //--------------------------------------------------------------------------------------------------------


    //移動ボタンの表示処理-----------------------------------------------------------------------------
    void MoveButtonActiveConditions(CardMain card, Participant turnPlayer, Square nowSquare)
    {
        if (MainPhase._precedenceOneTurnFlag)
        {
            return;
        }

        //APが消費する分あって移動できるマスがあったてまだ行動できるカードだったら
        if (turnPlayer.DecreaseActivePointConfirmation(card.Card_Data._necessaryAP) &&
            _field.MovePossibleSquare(card, card.Card_Data._directionOfTravel, nowSquare).Count > 0 &&
            card.Action_Count < card.MAX_ACTION_COUNT)
        {
            ButtonActiveChanger(true, BUTTON.MOVE);
        }
    }
示例#16
0
        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            if (e.FocusedRowHandle > -1)
            {
                CardMain cardm = ConvertToModel.DataRowToModel <CardMain>(GirdCard.GetFocusedDataRow());

                gridControl2.DataSource = dal.GetDetailList(cardm.CardNo);
                gridControl3.DataSource = dal.GetChildList(cardm.CardNo);
            }
            else
            {
                gridControl2.DataSource = null;
                gridControl3.DataSource = null;
            }
        }
示例#17
0
        private void BtnOK_Click(object sender, EventArgs e)
        {
            List <DataRow> list     = new List <DataRow>();
            List <DataRow> children = new List <DataRow>();

            foreach (ListViewItem item in listView1.Items)
            {
                list.Add(item.Tag as DataRow);
            }

            foreach (DataRow r in woModel.WorkOrderDetail.Rows)
            {
                if (r["iQty"].ToString() == "" || Convert.ToDecimal(r["iQty"]) <= 0)
                {
                    throw new Exception("材料数量不能小于等于0!");
                }
                children.Add(r);
            }


            CardMain cardM = new CardMain();

            cardM.bChild    = true;
            cardM.cInvCode  = model.cInvCode;
            cardM.WOGuid    = model.WOGuid;
            cardM.pCardNo   = model.CardNo;
            cardM.cMemo     = txt_cMemo.Text.Trim();
            cardM.iQuantity = Convert.ToDecimal(txt_curQuantity.Text);
            cardM.cMaker    = Information.UserInfo.cUser_Name;



            this.cardNo = new MCardDAL().CreateCard(cardM, list.ToArray(), children.ToArray());


            this.txtr_cardNo.Text = cardNo;

            this.txt_curQuantity.Enabled = false;
            this.txtr_cardNo.Enabled     = false;
            this.txt_cMemo.Enabled       = false;
            this.BtnCreate.Enabled       = false;
            this.BtnAddOp.Enabled        = false;
            this.BtnDelOp.Enabled        = false;
            this.BtnDelChild.Enabled     = false;
        }
示例#18
0
    void PlayerTurnUpdate( )
    {
        if (_mainSceneOperation.MouseTouch( ))
        {
            CardMain card = _rayShooter.RayCastHandCard(_turnPlayer.gameObject.tag);
            if (card == null)
            {
                return;
            }

            _turnPlayer.HandThrowAway(card);
            if (_turnPlayer.Hand_Num == _turnPlayer.Max_Hnad_Num)
            {
                _didHandThrowAway = true;
                _uiActiveManager.TextActiveChanger(false, UIActiveManager.TEXT.HAND_CARD_LIMIT);
            }
        }
    }
示例#19
0
    //-------------------------------------------------------------------------------


    //攻撃効果(オーバロード)---------------------------------------------------------------------
    public void UseEffect(CardMain card, Square nowSquare)
    {
        List <Square> squares = new List <Square>( );

        //効果範囲内でカードがあるマスだけ格納
        squares = _field.AttackEffectPossibleOnCardSquare(card, nowSquare);


        for (int i = 0; i < squares.Count; i++)
        {
            _cardDamageManager.CardEffectDamage(squares[i], card.Card_Data._effect_value);
            //エフェクト処理-----------------------------------------------------------------------------------------
            Instantiate <AutoDestroyEffect>(_blackDamageEffect, squares[i].transform.position, Quaternion.identity);
            //------------------------------------------------------------------------------------------------------
        }

        _activePoint.DecreasePoint(card.Card_Data._necessaryAPForEffect);
    }
示例#20
0
    //-----------------------------------------------------------------


    //手札を消費する-------------------------------------------------------------
    public void DecreaseHandCard(CardMain card)         //今のやりかたでは別にCardを返す理由が思いつかなかったのでvoidに変更
    {
        for (int i = 0; i < _card.Count; i++)
        {
            if (_card[i] != card)
            {
                continue;
            }

            Destroy(_card[i].gameObject);
            _card.Remove(_card[i]);

            Sort(player);
            return;
        }

        Debug.Log("[エラー]手札に登録されていないカードを使おうとしています");
    }
示例#21
0
    //----------------------------------------------------------------------------


    //フィールドカードの操作系UIの表示処理----------------------------------------------------------------------------
    public void ShowCardOperationUI(CardMain card, Participant turnPlayer, Square nowSquare)
    {
        //自分のカードだったら
        if (card.gameObject.tag == turnPlayer.gameObject.tag)
        {
            ButtonActiveChanger(true, BUTTON.BACK);

            EffectButtonActiveConditions(card, turnPlayer, nowSquare);
            MoveButtonActiveConditions(card, turnPlayer, nowSquare);
            DirectAttackButtonActiveConditions(card, turnPlayer, nowSquare);
        }

        //相手のカードだったら
        if (card.gameObject.tag != turnPlayer.gameObject.tag)
        {
            ButtonActiveChanger(true, BUTTON.BACK);
        }
    }
示例#22
0
    //攻撃効果のダメージによる処理----------------------------------------
    public void CardEffectDamage(Square onCardSquare, int damage)
    {
        if (onCardSquare == null)
        {
            Debug.Log("[エラー]マスがありません");
            return;
        }

        CardMain damageCard = onCardSquare.On_Card;

        damageCard.Damage(damage);

        if (damageCard.Card_Data._toughness == 0)
        {
            damageCard.Death( );
            onCardSquare.On_Card = null;
        }
    }
示例#23
0
    //-------------------------------------------------------------------------------------------------


    //エフェクトボタンの表示処理------------------------------------------------------------------------------
    void EffectButtonActiveConditions(CardMain card, Participant turnPlayer, Square nowSquare)
    {
        if (MainPhase._precedenceOneTurnFlag)
        {
            return;
        }

        //効果の種類によって処理を変える
        //効果ボタン表示条件
        switch (card.Card_Data._effect_type)
        {
        case CardData.EFFECT_TYPE.ATTACK:
            if (turnPlayer.DecreaseActivePointConfirmation(card.Card_Data._necessaryAPForEffect) &&
                _field.AttackEffectPossibleOnCardSquare(card, nowSquare).Count > 0)
            {
                ButtonActiveChanger(true, BUTTON.EFFECT);
            }
            break;

        case CardData.EFFECT_TYPE.MOVE:
            if (turnPlayer.DecreaseActivePointConfirmation(card.Card_Data._necessaryAPForEffect) &&
                _field.MovePossibleSquare(card, card.Card_Data._effect_direction, nowSquare, card.Card_Data._effect_distance).Count > 0 &&
                card.Action_Count < card.MAX_ACTION_COUNT)
            {
                ButtonActiveChanger(true, BUTTON.EFFECT);
            }
            break;

        case CardData.EFFECT_TYPE.RECOVERY:
            if (turnPlayer.DecreaseActivePointConfirmation(card.Card_Data._necessaryAPForEffect) &&
                card.Card_Data._toughness < card.Card_Data._maxToughness)
            {
                ButtonActiveChanger(true, BUTTON.EFFECT);
            }
            break;

        case CardData.EFFECT_TYPE.NO_EFFECT:
            break;

        default:
            Debug.Log("想定していない効果がボタン表示に来ています");
            break;
        }
    }
示例#24
0
    //-------------------------------------------------------------------------------------


    //召喚処理--------------------------------------------------------------------------------
    void HandCardSummon( )
    {
        List <Square> summonableSquares = _field.SummonSquare(_turnPlayer.gameObject.tag);

        //MPが足りなかったら
        if (!_turnPlayer.DecreaseMPointConfirmation(_handCard.Card_Data._necessaryMP))
        {
            HandCardRestore( );
            _mainPhaseStatus = MAIN_PHASE_STATUS.IDLE;
            return;
        }

        Square rayHitedSquare = _rayShooter.RayCastSquare( );

        //離したときにマスがなかったら
        if (rayHitedSquare == null)
        {
            HandCardRestore( );
            _handCard.gameObject.GetComponent <BoxCollider2D>( ).enabled = true;
            _mainPhaseStatus = MAIN_PHASE_STATUS.IDLE;
            return;
        }

        //召喚
        for (int i = 0; i < summonableSquares.Count; i++)
        {
            if (rayHitedSquare.Index != summonableSquares[i].Index)
            {
                continue;
            }

            _turnPlayer.SquareChangeColor(summonableSquares, false);
            _turnPlayer.Summon(_handCard, rayHitedSquare, _turnPlayer.gameObject.tag);
            _handCard        = null;
            _mainPhaseStatus = MAIN_PHASE_STATUS.IDLE;
            return;
        }



        _turnPlayer.SquareChangeColor(summonableSquares, false);
        HandCardRestore( );
        _mainPhaseStatus = MAIN_PHASE_STATUS.IDLE;
    }
示例#25
0
    //--------------------------------------------------


    //フィールドのカードがタッチされたら処理------------------------
    void FieldCardTouch( )
    {
        //カードとそのマスの取得
        _nowSquare = _rayShooter.RayCastSquare( );
        if (_nowSquare == null)
        {
            return;
        }
        _card = _nowSquare.On_Card;
        if (_card == null)
        {
            return;
        }

        ShowCardDetails( );             //カードの詳細画像の表示
        ShowCardOperationUI( );         //プレイヤーによって表示するUI

        _mainPhaseStatus = MAIN_PHASE_STATUS.CARD_DETAILS;
    }
示例#26
0
    //-------------------------------------------------------------------------------------------------------


    //エネミーカードの移動したくてかつできる場所を優先順位が高い順に抽出する-------------------------
    List <Field.DIRECTION> EnemyDirectionSorting(CardMain card, PRIORITY_DIRECTION priorityDirection)
    {
        Field.DIRECTION[] enemyDirections = null;

        switch (priorityDirection)
        {
        case PRIORITY_DIRECTION.RIGHT_PRIORITY:
            Field.DIRECTION[] right = { Field.DIRECTION.RIGHT };
            enemyDirections = right;
            break;

        case PRIORITY_DIRECTION.LEFT_PRIORITY:
            Field.DIRECTION[] left = { Field.DIRECTION.LEFT };
            enemyDirections = left;
            break;

        case PRIORITY_DIRECTION.NORMAR:
            Field.DIRECTION[] normarDirections = { Field.DIRECTION.FORWAED,
                                                   Field.DIRECTION.LEFT_FORWARD,
                                                   Field.DIRECTION.RIGHT_FORWARD,
                                                   Field.DIRECTION.RIGHT,
                                                   Field.DIRECTION.LEFT };

            enemyDirections = normarDirections;
            break;
        }

        List <Field.DIRECTION> direction = new List <Field.DIRECTION>( );

        for (int i = 0; i < enemyDirections.Length; i++)
        {
            for (int j = 0; j < card.Card_Data._directionOfTravel.Count; j++)
            {
                if (card.Card_Data._directionOfTravel[j] != enemyDirections[i])
                {
                    continue;
                }
                direction.Add(card.Card_Data._directionOfTravel[j]);
            }
        }

        return(direction);
    }
示例#27
0
    //-----------------------------------------------------------------


    //戦闘のダメージ処理によって戦闘の結果を返す------------------------------------------------------
    public BATTLE_RESULT CardBattleDamage(Square onPlayerCardSquare, Square onEnemyCardSquare)
    {
        if (onPlayerCardSquare == null || onEnemyCardSquare == null)
        {
            Debug.Log("[エラー]マスがありません");
            return(BATTLE_RESULT.NOT_BATTLE);
        }

        CardMain playerCard = onPlayerCardSquare.On_Card;
        CardMain enemy_card = onEnemyCardSquare.On_Card;

        playerCard.Damage(enemy_card.Card_Data._attack);
        enemy_card.Damage(playerCard.Card_Data._attack);

        if (playerCard.Card_Data._toughness == 0 && enemy_card.Card_Data._toughness == 0)
        {
            onPlayerCardSquare.On_Card = null;
            onEnemyCardSquare.On_Card  = null;
            return(BATTLE_RESULT.BOTH_DEATH);
        }

        if (enemy_card.Card_Data._toughness == 0)
        {
            onEnemyCardSquare.On_Card = null;
            return(BATTLE_RESULT.PLAYER_WIN);
        }

        if (playerCard.Card_Data._toughness == 0)
        {
            onPlayerCardSquare.On_Card = null;
            return(BATTLE_RESULT.PLAYER_LOSE);
        }

        if (playerCard.Card_Data._toughness > 0 && enemy_card.Card_Data._toughness > 0)
        {
            return(BATTLE_RESULT.BOTH_ALIVE);
        }

        Debug.Log("[エラー]戦闘の結果がおかしいです");
        return(BATTLE_RESULT.NOT_BATTLE);
    }
示例#28
0
    //------------------------------------------------------------------------------------------------------


    //第二優先カード移動-------------------------------------------------------------------------------------
    //移動したかどうかをboolで返す
    bool SecondPriorityMoveCard( )
    {
        for (int i = 0; i < _field.Max_Index; i++)
        {
            Square square = _field.getSquare(i);

            if (square == null)
            {
                continue;
            }
            if (square.On_Card == null)
            {
                continue;
            }
            if (square.On_Card.gameObject.tag != ConstantStorehouse.TAG_PLAYER2)
            {
                continue;
            }

            CardMain enemyMoveCard = null;
            enemyMoveCard = square.On_Card;
            int nowAP = _enemyActivePoint.Point_Num;
            if (enemyMoveCard.Card_Data._necessaryAP > nowAP)
            {
                continue;
            }
            if (enemyMoveCard.Action_Count >= enemyMoveCard.MAX_ACTION_COUNT)
            {
                continue;
            }

            if (!EnemyCardMove(enemyMoveCard, square, PRIORITY_DIRECTION.NORMAR))
            {
                continue;
            }

            return(true);
        }

        return(false);
    }
示例#29
0
    //-------------------------------------------------------------------------------------------------


    //攻撃ボタンの表示処理---------------------------------------------------------------------------------------------
    void DirectAttackButtonActiveConditions(CardMain card, Participant turnPlayer, Square nowSquare)
    {
        if (MainPhase._precedenceOneTurnFlag)
        {
            return;
        }

        //消費するAPがあってまだ行動できるカードだったら
        if (turnPlayer.DecreaseActivePointConfirmation(card.Card_Data._necessaryAP) &&
            card.Action_Count < card.MAX_ACTION_COUNT)
        {
            if (((nowSquare.Index) / ConstantStorehouse.SQUARE_ROW_NUM == ConstantStorehouse.FIRST_ROW_INDEX) && card.gameObject.tag == "Player1")                              //一列目にいたら攻撃ボタンを表示//修正するだろうからマジックナンバーを放置
            {
                ButtonActiveChanger(true, BUTTON.DIRECT_ATTACK);
            }

            //if ( ( ( _nowSquare.Index ) / SQUARE_ROW_NUM == FIFTH_ROW_INDEX ) && _card.gameObject.tag == "Player2" ) {		//五列目にいたら攻撃ボタンを表示//修正するだろうからマジックナンバーを放置
            //	_directAttackButton.SetActive( true );
            //}
        }
    }
示例#30
0
    //--デッキからカードをドローする関数
    public CardMain Draw( )
    {
        CardMain card = null;

        //ドロー処理--------------------------------------------------------------------------------------------------------
        if (_cardIDs.Count > 0)
        {
            GameObject prefab  = (GameObject)Resources.Load("Prefab/Card");
            GameObject cardObj = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity); //原点にInstantiateする
            card        = cardObj.GetComponent <CardMain> ();
            card.loadID = _cardIDs [0];                                                              //デッキトップのカードIDを読み込むように設定する
            _cardIDs.RemoveAt(0);
            _deckNum = _cardIDs.Count;                                                               //デッキ枚数の更新
        }
        else
        {
            Debug.Log("デッキのカードがありません!!");
        }
        //-----------------------------------------------------------------------------------------------------------------
        return(card);
    }