Package cardgamecard

Source Code of cardgamecard.CGBattleSetCard

/*
* To change this template, choose Tools | Templates and open the template in
* the editor.
*/
package cardgamecard;

import cardgamecard.implementcard.EmptyCard;

/*
      1   2   3   Г   4    5    6       пехота
          7   8   Г   9    10           башни
             11   *   12                маги
                 13                     драконы
                                        Герой занимает 2 клетки. он - 14я карта.
*/
public class CGBattleSetCard {
    public static final int MAX_CARD_FROM_SET = 14;
   
    CGBaseCard[] mBattleCards;      //Карты, участвующие в бою
    CGBaseCard[] mQueueSteps;       //Карты, упорядоченные по тому, кто когда ходит
    int mCurStep = 0;               //ход данной карты
   
    public CGBattleSetCard(){
        mBattleCards = new CGBaseCard[MAX_CARD_FROM_SET];
        mQueueSteps = new CGBaseCard[MAX_CARD_FROM_SET];
       
        for( int i = 0; i < MAX_CARD_FROM_SET; i++ )
            mBattleCards[i] = new EmptyCard();
    }
   
    /**
     * Получить карты, находящиеся в бою
     */
    public CGBaseCard[] BattleCards(){
        return mBattleCards;
    }
    /**
     * Получить карту по позиции
     */
    public CGBaseCard BattleCard(int index){
        if(index < 0 || index > mBattleCards.length - 1)
            return null;
        else return mBattleCards[index];
    }
    /**
     * Добавить карту в массив боевых карт и установить ее очередность хода
     * @param card - добавляемая карта
     * @param pos  - в какую ячейку пирамиды ее поставить
     */
    public void addCard(CGBaseCard card, int pos) {
        mBattleCards[pos] = card;
        mQueueSteps[mCurStep] = card;
        card.setBattle(true);
        mCurStep++;
    }
   
    /**
     * Получить карту, которая будет ходить следующей/ если ничего не вернулось - живых карт нету
     * @return
     */
    public CGBaseCard nextStepCard(){
        int tmp_cur_step = mCurStep;
        do{
            CGBaseCard card = mQueueSteps[mCurStep];
            mCurStep++;
            if( card != null && !card.isDead() )
                return card;
           
            if( mCurStep >= MAX_CARD_FROM_SET )
                mCurStep = 0;
        }while( mCurStep != tmp_cur_step );
       
        return null;
    }
   
    /**
     * Текущий ход - нулевая карта
     */
    public void ClearCurStep(){
        mCurStep = 0;
    }
   
}
TOP

Related Classes of cardgamecard.CGBattleSetCard

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.