Beispiel #1
0
    //走棋
    virtual public void moveChess(Chess moving_chess, ChessContainer targetContainer, bool trigger_strike)
    {
        /*  移动耗牌
         * if (Data.MOVE_COST_HANDCARD)
         * {
         * CardContainer cdc;
         * GameObject[] cdcs;
         * ArrayList hand;
         * if (turn_player == ePlayer.Player1)
         * {
         * cdc = cardcont_p1[0].GetComponent<CardContainer>();
         * cdcs = cardcont_p1;
         * hand = player_1.hand_cards;
         * } else
         * {
         * cdc = cardcont_p2[0].GetComponent<CardContainer>();
         * cdcs = cardcont_p2;
         * hand = player_2.hand_cards;
         * }
         * if (cdc.gameObject.transform.childCount <= 0)
         * {
         * return;
         * }
         * Card card = cdc.gameObject.transform.GetChild(0).gameObject.GetComponent<Card>();
         * if (!judgeSelectCard(card))
         * return;
         * removeCard(card);
         * setHand(hand, cdcs);
         * }*/

        moving_chess.container.removeChess();
        targetContainer.appendChess(moving_chess);

        //驱散迷雾 随设计改变而无效
        //BKTools.FogLift(moving_chess.container.number, moving_chess.attribute.spd + GameRule.Default_PvE_Fog_Lift_Range, GameRule.Default_PvE_Fog_Lift_Range, new int[] { (int)moving_chess.belong });
        //攻击
        if (trigger_strike && !BuffContrllor.ContainEffect(moving_chess, eBuff_Effect.Attack_BAN))
        {
            moving_chess.CheckStrike(0);
        }
        //卡牌信息显示
        Main.Inst.clearCardInfo();
        //TODO 流程控制更新
        //		Main.Instance.b_setchess = true;
        //		Main.Instance.now_phase = ePhase.Battle;
        //		Main.Instance.b_phase_trigger = true;//从战斗阶段往主要阶段2

        //清除移动操作暴击
        Main.Inst.b_moving_chess = false;        //应该已经没用了
        Chess.clear_Moveable_Area();
        //清理所有移动标记(上面谁写的,都是错别字!
        foreach (var item in Main.Inst.chess_grids)
        {
            item.Value.clearMoveFlag();
        }

        CheckMoveEvent(moving_chess, nextPhaseDefault);
    }