package cardgamescreen;
import cardgamecard.CGBaseCard;
import cardgamecard.CGBattleSetCard;
import cardgamecard.implementcard.TestCard;
import cardgameevents.CGIEvent;
import cardgameplayer.CGPlayer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class CGBattleScreenModel {
CGPlayer[] mPlayers; //Игроки в битве. Человек - нулевой(внизу), комп - первый (вверху)
int curPlayer; //(curPlayer % 2) - Кто сейчас ходит
CGBaseCard curCard; //Текущая активная карта
Map<Integer, ArrayList<CGIEvent>> events = new HashMap<Integer, ArrayList<CGIEvent>>(); //события, происходящие в бою
private final static int COUNT_PLAYERS = 2;
private final static int BEFORE_STEP_EVENT = 0; //События до начала хода
private final static int AFTER_STEP_EVENT = 0; //События после хода
public CGBattleScreenModel(){
mPlayers = new CGPlayer[2];
mPlayers[0] = new CGPlayer();
mPlayers[1] = new CGPlayer();
curPlayer = 0;
events.put(BEFORE_STEP_EVENT, new ArrayList<CGIEvent>());
events.put(AFTER_STEP_EVENT, new ArrayList<CGIEvent>());
//Нагенерим игрокам карты
for( int i = 0; i < 15; i++ ){
mPlayers[0].addCard( new TestCard() );
mPlayers[1].addCard( new TestCard() );
}
}
/**
* Получить игрока по индексу
*/
public CGPlayer Player( int idx ){
return mPlayers[idx % 2];
}
/**
* До хода игрока - получить активную карту, нанести урон всем, кому надо и т.п.
*/
public void beforeStepPlayer(){
//Отрабатываем все события до начала хода
for( CGIEvent ev : events.get(BEFORE_STEP_EVENT) ){
}
//Подсвечиваем активную карту игрока, которая щас ходит
CGBattleSetCard card_set = mPlayers[curPlayer%2].BattleCards();
curCard = card_set.nextStepCard();
curCard.setActive(true);
}
}