Erwan
- Added "Evil twin" Mode to unlock
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
class AIMomirPlayer:public AIPlayerBaka{
|
class AIMomirPlayer:public AIPlayerBaka{
|
||||||
public:
|
public:
|
||||||
AIMomirPlayer(MTGPlayerCards * _deck, char * file, char * avatarFile);
|
AIMomirPlayer(MTGPlayerCards * _deck, char * file, char * fileSmall, char * avatarFile);
|
||||||
int getEfficiency(AIAction * action);
|
int getEfficiency(AIAction * action);
|
||||||
int momir();
|
int momir();
|
||||||
int computeActions();
|
int computeActions();
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ class AIPlayer: public Player{
|
|||||||
virtual int displayStack(){return 0;};
|
virtual int displayStack(){return 0;};
|
||||||
AIStats * stats;
|
AIStats * stats;
|
||||||
ManaCost * getPotentialMana();
|
ManaCost * getPotentialMana();
|
||||||
AIPlayer(MTGPlayerCards * _deck, string deckFile);
|
AIPlayer(MTGPlayerCards * _deck, string deckFile, string deckFileSmall);
|
||||||
virtual ~AIPlayer();
|
virtual ~AIPlayer();
|
||||||
virtual MTGCardInstance * chooseCard(TargetChooser * tc, MTGCardInstance * source, int random = 0);
|
virtual MTGCardInstance * chooseCard(TargetChooser * tc, MTGCardInstance * source, int random = 0);
|
||||||
virtual int chooseTarget(TargetChooser * tc = NULL);
|
virtual int chooseTarget(TargetChooser * tc = NULL);
|
||||||
@@ -85,7 +85,7 @@ class AIPlayerBaka: public AIPlayer{
|
|||||||
float timer;
|
float timer;
|
||||||
MTGCardInstance * FindCardToPlay(ManaCost * potentialMana, const char * type);
|
MTGCardInstance * FindCardToPlay(ManaCost * potentialMana, const char * type);
|
||||||
public:
|
public:
|
||||||
AIPlayerBaka(MTGPlayerCards * _deck, char * deckFile, char * avatarFile);
|
AIPlayerBaka(MTGPlayerCards * _deck, char * deckFile, char * deckfileSmall, char * avatarFile);
|
||||||
virtual int Act(float dt);
|
virtual int Act(float dt);
|
||||||
void initTimer();
|
void initTimer();
|
||||||
virtual int computeActions();
|
virtual int computeActions();
|
||||||
@@ -93,7 +93,7 @@ class AIPlayerBaka: public AIPlayer{
|
|||||||
|
|
||||||
class AIPlayerFactory{
|
class AIPlayerFactory{
|
||||||
public:
|
public:
|
||||||
AIPlayer * createAIPlayer(MTGAllCards * collection, MTGPlayerCards * oponents_deck, int deckid = 0);
|
AIPlayer * createAIPlayer(MTGAllCards * collection, Player * opponent, int deckid = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class Credits{
|
|||||||
private:
|
private:
|
||||||
int isDifficultyUnlocked();
|
int isDifficultyUnlocked();
|
||||||
int isMomirUnlocked();
|
int isMomirUnlocked();
|
||||||
|
int isEvilTwinUnlocked();
|
||||||
public:
|
public:
|
||||||
int value;
|
int value;
|
||||||
Player * p1, *p2;
|
Player * p1, *p2;
|
||||||
|
|||||||
@@ -8,8 +8,12 @@ using std::string;
|
|||||||
|
|
||||||
#define OPTIONS_MUSICVOLUME "musicVolume"
|
#define OPTIONS_MUSICVOLUME "musicVolume"
|
||||||
#define OPTIONS_SFXVOLUME "sfxVolume"
|
#define OPTIONS_SFXVOLUME "sfxVolume"
|
||||||
|
|
||||||
#define OPTIONS_DIFFICULTY_MODE_UNLOCKED "prx_handler" //huhu
|
#define OPTIONS_DIFFICULTY_MODE_UNLOCKED "prx_handler" //huhu
|
||||||
#define OPTIONS_MOMIR_MODE_UNLOCKED "prx_rimom" //haha
|
#define OPTIONS_MOMIR_MODE_UNLOCKED "prx_rimom" //haha
|
||||||
|
#define OPTIONS_EVILTWIN_MODE_UNLOCKED "prx_eviltwin"
|
||||||
|
#define OPTIONS_RANDOMDECK_MODE_UNLOCKED "prx_rnddeck"
|
||||||
|
|
||||||
#define OPTIONS_DIFFICULTY "difficulty"
|
#define OPTIONS_DIFFICULTY "difficulty"
|
||||||
#define OPTIONS_CACHESIZE "cacheSize"
|
#define OPTIONS_CACHESIZE "cacheSize"
|
||||||
#define OPTIONS_PLASMAEFFECT "plasmaEffect"
|
#define OPTIONS_PLASMAEFFECT "plasmaEffect"
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class Player: public Damageable{
|
|||||||
MTGPlayerCards * game;
|
MTGPlayerCards * game;
|
||||||
int testLife();
|
int testLife();
|
||||||
int afterDamage();
|
int afterDamage();
|
||||||
Player(MTGPlayerCards * _deck, string deckFile);
|
Player(MTGPlayerCards * _deck, string deckFile, string deckFileSmall);
|
||||||
virtual ~Player();
|
virtual ~Player();
|
||||||
void unTapPhase();
|
void unTapPhase();
|
||||||
MTGInPlay * inPlay();
|
MTGInPlay * inPlay();
|
||||||
@@ -37,11 +37,12 @@ class Player: public Damageable{
|
|||||||
int getId();
|
int getId();
|
||||||
JQuad * getIcon();
|
JQuad * getIcon();
|
||||||
string deckFile;
|
string deckFile;
|
||||||
|
string deckFileSmall;
|
||||||
};
|
};
|
||||||
|
|
||||||
class HumanPlayer: public Player{
|
class HumanPlayer: public Player{
|
||||||
public:
|
public:
|
||||||
HumanPlayer(MTGPlayerCards * _deck, char * _deckFile);
|
HumanPlayer(MTGPlayerCards * _deck, char * _deckFile, string _deckFileSmall);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
MTGAbility * AIMomirPlayer::momirAbility = NULL;
|
MTGAbility * AIMomirPlayer::momirAbility = NULL;
|
||||||
|
|
||||||
AIMomirPlayer::AIMomirPlayer(MTGPlayerCards * _deck, char * file, char * avatarFile): AIPlayerBaka(_deck,file, avatarFile){
|
AIMomirPlayer::AIMomirPlayer(MTGPlayerCards * _deck, char * file, char * fileSmall, char * avatarFile): AIPlayerBaka(_deck,file, fileSmall, avatarFile){
|
||||||
momirAbility = NULL;
|
momirAbility = NULL;
|
||||||
agressivity = 100;
|
agressivity = 100;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ int AIAction::Act(){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
AIPlayer::AIPlayer(MTGPlayerCards * _deck, string file): Player(_deck, file){
|
AIPlayer::AIPlayer(MTGPlayerCards * _deck, string file, string fileSmall): Player(_deck, file, fileSmall){
|
||||||
potentialMana = NEW ManaCost();
|
potentialMana = NEW ManaCost();
|
||||||
nextCardToPlay = NULL;
|
nextCardToPlay = NULL;
|
||||||
stats = NULL;
|
stats = NULL;
|
||||||
@@ -519,113 +519,54 @@ int AIPlayer::combatDamages(){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
int AIPlayer::combatDamages(){
|
|
||||||
int result = 0;
|
|
||||||
GameObserver * gameObs = GameObserver::GetInstance();
|
|
||||||
int currentGamePhase = gameObs->getCurrentGamePhase();
|
|
||||||
|
|
||||||
if (currentGamePhase == Constants::MTG_PHASE_COMBATBLOCKERS) return orderBlockers();
|
|
||||||
|
|
||||||
if (currentGamePhase != Constants::MTG_PHASE_COMBATDAMAGE) return 0;
|
|
||||||
DamageResolverLayer * drl = gameObs->mLayers->combatLayer();
|
|
||||||
#if defined (WIN32) || defined (LINUX)
|
|
||||||
OutputDebugString("AI Combat Phase START\n");
|
|
||||||
#endif
|
|
||||||
if (drl->currentChoosingPlayer == this){
|
|
||||||
#if defined (WIN32) || defined (LINUX)
|
|
||||||
OutputDebugString("This player chooses\n");
|
|
||||||
#endif
|
|
||||||
for (int i = 0; i < drl->mCount; i++){
|
|
||||||
#if defined (WIN32) || defined (LINUX)
|
|
||||||
OutputDebugString("AI Combat Phase\n");
|
|
||||||
#endif
|
|
||||||
DamagerDamaged * current = (DamagerDamaged *) drl->mObjects[i];
|
|
||||||
if (current->damageSelecter == this){
|
|
||||||
result = 1;
|
|
||||||
DamagerDamaged * canardEmissaire = NULL;
|
|
||||||
for (int j = 0; j < drl->mCount; j++){
|
|
||||||
DamagerDamaged * opponent = (DamagerDamaged *) drl->mObjects[j];
|
|
||||||
if (drl->isOpponent(current, opponent)){
|
|
||||||
if (!canardEmissaire) canardEmissaire = opponent;
|
|
||||||
int over = opponent->hasLethalDamage();
|
|
||||||
while(!over){
|
|
||||||
if(!current->dealOneDamage(opponent)){
|
|
||||||
over = 1;
|
|
||||||
}else{
|
|
||||||
over = opponent->hasLethalDamage();
|
|
||||||
}
|
|
||||||
#if defined (WIN32) || defined (LINUX)
|
|
||||||
char buf[4096];
|
|
||||||
sprintf(buf, "==========\n%s deals %i damages to %s\n=============\n", current->card->getName(), 1, opponent->card->getName());
|
|
||||||
OutputDebugString(buf);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (canardEmissaire && !current->card->has(Constants::TRAMPLE)){
|
|
||||||
while(current->dealOneDamage(canardEmissaire)){
|
|
||||||
#if defined (WIN32) || defined (LINUX)
|
|
||||||
OutputDebugString("==========\nDealing damage to Canard Emissaire\n================\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result){
|
|
||||||
drl->nextPlayer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
AIStats * AIPlayer::getStats(){
|
AIStats * AIPlayer::getStats(){
|
||||||
if (!stats){
|
if (!stats){
|
||||||
char statFile[512];
|
char statFile[512];
|
||||||
sprintf(statFile, RESPATH"/ai/baka/stats/%s.stats", opponent()->deckFile.c_str());
|
sprintf(statFile, RESPATH"/ai/baka/stats/%s.stats", opponent()->deckFileSmall.c_str());
|
||||||
stats = NEW AIStats(this, statFile);
|
stats = NEW AIStats(this, statFile);
|
||||||
}
|
}
|
||||||
return stats;
|
return stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
AIPlayer * AIPlayerFactory::createAIPlayer(MTGAllCards * collection, MTGPlayerCards * oponents_deck, int deckid){
|
AIPlayer * AIPlayerFactory::createAIPlayer(MTGAllCards * collection, Player * opponent, int deckid){
|
||||||
if (!deckid){
|
|
||||||
int nbdecks = 0;
|
|
||||||
int found = 1;
|
|
||||||
while (found){
|
|
||||||
found = 0;
|
|
||||||
char buffer[512];
|
|
||||||
sprintf(buffer, RESPATH"/ai/baka/deck%i.txt",nbdecks+1);
|
|
||||||
std::ifstream file(buffer);
|
|
||||||
if(file){
|
|
||||||
found = 1;
|
|
||||||
file.close();
|
|
||||||
nbdecks++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!nbdecks) return NULL;
|
|
||||||
deckid = 1 + rand() % (nbdecks);
|
|
||||||
}
|
|
||||||
char deckFile[512];
|
char deckFile[512];
|
||||||
sprintf(deckFile, RESPATH"/ai/baka/deck%i.txt",deckid);
|
|
||||||
char avatarFile[512];
|
char avatarFile[512];
|
||||||
sprintf(avatarFile, "ai/baka/avatars/avatar%i.jpg",deckid);
|
|
||||||
|
|
||||||
char deckFileSmall[512];
|
char deckFileSmall[512];
|
||||||
sprintf(deckFileSmall, "ai_baka_deck%i",deckid);
|
|
||||||
#if defined (WIN32) || defined (LINUX)
|
if (deckid == -1){ //Evil twin
|
||||||
char debuf[4096];
|
sprintf(deckFile, opponent->deckFile.c_str());
|
||||||
sprintf(debuf,"Deck File: %s", deckFile);
|
OutputDebugString(opponent->deckFile.c_str());
|
||||||
OutputDebugString(debuf);
|
sprintf(avatarFile, "player/avatar.jpg");
|
||||||
#endif
|
sprintf(deckFileSmall, "ai_baka_eviltwin");
|
||||||
|
}else{
|
||||||
|
if (!deckid){
|
||||||
|
int nbdecks = 0;
|
||||||
|
int found = 1;
|
||||||
|
while (found){
|
||||||
|
found = 0;
|
||||||
|
char buffer[512];
|
||||||
|
sprintf(buffer, RESPATH"/ai/baka/deck%i.txt",nbdecks+1);
|
||||||
|
std::ifstream file(buffer);
|
||||||
|
if(file){
|
||||||
|
found = 1;
|
||||||
|
file.close();
|
||||||
|
nbdecks++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!nbdecks) return NULL;
|
||||||
|
deckid = 1 + rand() % (nbdecks);
|
||||||
|
}
|
||||||
|
sprintf(deckFile, RESPATH"/ai/baka/deck%i.txt",deckid);
|
||||||
|
sprintf(avatarFile, "ai/baka/avatars/avatar%i.jpg",deckid);
|
||||||
|
sprintf(deckFileSmall, "ai_baka_deck%i",deckid);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
MTGDeck * tempDeck = NEW MTGDeck(deckFile, NULL, collection);
|
MTGDeck * tempDeck = NEW MTGDeck(deckFile, NULL, collection);
|
||||||
MTGPlayerCards * deck = NEW MTGPlayerCards(collection,tempDeck);
|
MTGPlayerCards * deck = NEW MTGPlayerCards(collection,tempDeck);
|
||||||
delete tempDeck;
|
delete tempDeck;
|
||||||
AIPlayerBaka * baka = NEW AIPlayerBaka(deck,deckFileSmall, avatarFile);
|
AIPlayerBaka * baka = NEW AIPlayerBaka(deck,deckFile, deckFileSmall, avatarFile);
|
||||||
return baka;
|
return baka;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -665,7 +606,7 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * potentialMana, const c
|
|||||||
return nextCardToPlay;
|
return nextCardToPlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
AIPlayerBaka::AIPlayerBaka(MTGPlayerCards * _deck, char * file, char * avatarFile): AIPlayer(_deck,file){
|
AIPlayerBaka::AIPlayerBaka(MTGPlayerCards * _deck, char * file, char * fileSmall, char * avatarFile): AIPlayer(_deck,file, fileSmall){
|
||||||
if (fileExists(avatarFile)){
|
if (fileExists(avatarFile)){
|
||||||
mAvatarTex = JRenderer::GetInstance()->LoadTexture(avatarFile, TEX_TYPE_USE_VRAM);
|
mAvatarTex = JRenderer::GetInstance()->LoadTexture(avatarFile, TEX_TYPE_USE_VRAM);
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@@ -78,14 +78,16 @@ void Credits::compute(Player * _p1, Player * _p2, GameApp * _app){
|
|||||||
unlockedQuad = NEW JQuad(unlockedTex, 2, 2, 396, 96);
|
unlockedQuad = NEW JQuad(unlockedTex, 2, 2, 396, 96);
|
||||||
GameOptions::GetInstance()->values[OPTIONS_DIFFICULTY_MODE_UNLOCKED] = GameOption(1);
|
GameOptions::GetInstance()->values[OPTIONS_DIFFICULTY_MODE_UNLOCKED] = GameOption(1);
|
||||||
GameOptions::GetInstance()->save();
|
GameOptions::GetInstance()->save();
|
||||||
}else{
|
}else if(unlocked = isMomirUnlocked()) {
|
||||||
unlocked = isMomirUnlocked();
|
|
||||||
if (unlocked){
|
|
||||||
unlockedTex = JRenderer::GetInstance()->LoadTexture("graphics/momir_unlocked.png", TEX_TYPE_USE_VRAM);
|
unlockedTex = JRenderer::GetInstance()->LoadTexture("graphics/momir_unlocked.png", TEX_TYPE_USE_VRAM);
|
||||||
unlockedQuad = NEW JQuad(unlockedTex, 2, 2, 396, 96);
|
unlockedQuad = NEW JQuad(unlockedTex, 2, 2, 396, 96);
|
||||||
GameOptions::GetInstance()->values[OPTIONS_MOMIR_MODE_UNLOCKED] = GameOption(1);
|
GameOptions::GetInstance()->values[OPTIONS_MOMIR_MODE_UNLOCKED] = GameOption(1);
|
||||||
GameOptions::GetInstance()->save();
|
GameOptions::GetInstance()->save();
|
||||||
}
|
}else if(unlocked = isEvilTwinUnlocked()) {
|
||||||
|
unlockedTex = JRenderer::GetInstance()->LoadTexture("graphics/eviltwin_unlocked.png", TEX_TYPE_USE_VRAM);
|
||||||
|
unlockedQuad = NEW JQuad(unlockedTex, 2, 2, 396, 96);
|
||||||
|
GameOptions::GetInstance()->values[OPTIONS_EVILTWIN_MODE_UNLOCKED] = GameOption(1);
|
||||||
|
GameOptions::GetInstance()->save();
|
||||||
}
|
}
|
||||||
if (unlocked){
|
if (unlocked){
|
||||||
JSample * sample = SampleCache::GetInstance()->getSample("sound/sfx/bonus.wav");
|
JSample * sample = SampleCache::GetInstance()->getSample("sound/sfx/bonus.wav");
|
||||||
@@ -195,3 +197,9 @@ int Credits::isMomirUnlocked(){
|
|||||||
if (p1->game->inPlay->countByType("land") == 8) return 1;
|
if (p1->game->inPlay->countByType("land") == 8) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Credits::isEvilTwinUnlocked(){
|
||||||
|
if (GameOptions::GetInstance()->values[OPTIONS_EVILTWIN_MODE_UNLOCKED].getIntValue()) return 0;
|
||||||
|
if (p1->game->inPlay->nb_cards && (p1->game->inPlay->nb_cards == p2->game->inPlay->nb_cards)) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -119,9 +119,9 @@ void GameStateDuel::loadPlayerMomir(int playerId, int isAI){
|
|||||||
MTGDeck * tempDeck = NEW MTGDeck(deckFile, NULL, mParent->collection);
|
MTGDeck * tempDeck = NEW MTGDeck(deckFile, NULL, mParent->collection);
|
||||||
deck[playerId] = NEW MTGPlayerCards(mParent->collection,tempDeck);
|
deck[playerId] = NEW MTGPlayerCards(mParent->collection,tempDeck);
|
||||||
if (!isAI){ //Human Player
|
if (!isAI){ //Human Player
|
||||||
mPlayers[playerId] = NEW HumanPlayer(deck[playerId],deckFileSmall);
|
mPlayers[playerId] = NEW HumanPlayer(deck[playerId],deckFile, deckFileSmall);
|
||||||
}else{
|
}else{
|
||||||
mPlayers[playerId] = NEW AIMomirPlayer(deck[playerId],deckFile,empty);
|
mPlayers[playerId] = NEW AIMomirPlayer(deck[playerId],deckFile,deckFileSmall, empty);
|
||||||
}
|
}
|
||||||
delete tempDeck;
|
delete tempDeck;
|
||||||
}
|
}
|
||||||
@@ -138,15 +138,19 @@ void GameStateDuel::loadPlayer(int playerId, int decknb, int isAI){
|
|||||||
MTGDeck * tempDeck = NEW MTGDeck(deckFile, NULL, mParent->collection);
|
MTGDeck * tempDeck = NEW MTGDeck(deckFile, NULL, mParent->collection);
|
||||||
deck[playerId] = NEW MTGPlayerCards(mParent->collection,tempDeck);
|
deck[playerId] = NEW MTGPlayerCards(mParent->collection,tempDeck);
|
||||||
delete tempDeck;
|
delete tempDeck;
|
||||||
mPlayers[playerId] = NEW HumanPlayer(deck[playerId],deckFileSmall);
|
mPlayers[playerId] = NEW HumanPlayer(deck[playerId],deckFile, deckFileSmall);
|
||||||
}else{ //AI Player, chose deck
|
}else{ //AI Player, chose deck
|
||||||
AIPlayerFactory playerCreator;
|
AIPlayerFactory playerCreator;
|
||||||
mPlayers[playerId] = playerCreator.createAIPlayer(mParent->collection,NULL,decknb);
|
Player * opponent = NULL;
|
||||||
|
if (playerId == 1) opponent = mPlayers[0];
|
||||||
|
mPlayers[playerId] = playerCreator.createAIPlayer(mParent->collection,opponent,decknb);
|
||||||
deck[playerId] = mPlayers[playerId]->game;
|
deck[playerId] = mPlayers[playerId]->game;
|
||||||
}
|
}
|
||||||
}else{
|
}else{ //Random AI deck
|
||||||
AIPlayerFactory playerCreator;
|
AIPlayerFactory playerCreator;
|
||||||
mPlayers[playerId] = playerCreator.createAIPlayer(mParent->collection,NULL);
|
Player * opponent = NULL;
|
||||||
|
if (playerId == 1) opponent = mPlayers[0];
|
||||||
|
mPlayers[playerId] = playerCreator.createAIPlayer(mParent->collection,opponent);
|
||||||
deck[playerId] = mPlayers[playerId]->game;
|
deck[playerId] = mPlayers[playerId]->game;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -262,6 +266,9 @@ void GameStateDuel::Update(float dt)
|
|||||||
if (!opponentMenu){
|
if (!opponentMenu){
|
||||||
opponentMenu = NEW SimpleMenu(DUEL_MENU_CHOOSE_OPPONENT, this, opponentMenuFont, 35, 25, "Choose Opponent");
|
opponentMenu = NEW SimpleMenu(DUEL_MENU_CHOOSE_OPPONENT, this, opponentMenuFont, 35, 25, "Choose Opponent");
|
||||||
opponentMenu->Add(0,"Random");
|
opponentMenu->Add(0,"Random");
|
||||||
|
if (GameOptions::GetInstance()->values[OPTIONS_EVILTWIN_MODE_UNLOCKED].getIntValue()){
|
||||||
|
opponentMenu->Add(-1,"Evil Twin", "Can you play against yourself?");
|
||||||
|
}
|
||||||
nbAIDecks = 0;
|
nbAIDecks = 0;
|
||||||
int found = 1;
|
int found = 1;
|
||||||
while (found){
|
while (found){
|
||||||
@@ -425,13 +432,13 @@ void GameStateDuel::ButtonPressed(int controllerId, int controlId)
|
|||||||
switch(controlId){
|
switch(controlId){
|
||||||
case 0:
|
case 0:
|
||||||
loadPlayer(1);
|
loadPlayer(1);
|
||||||
opponentMenu->Close();
|
opponentMenu->Close();
|
||||||
mGamePhase = DUEL_STATE_CHOOSE_DECK2_TO_PLAY;
|
mGamePhase = DUEL_STATE_CHOOSE_DECK2_TO_PLAY;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
loadPlayer(1,controlId,1);
|
loadPlayer(1,controlId,1);
|
||||||
opponentMenu->Close();
|
opponentMenu->Close();
|
||||||
mGamePhase = DUEL_STATE_CHOOSE_DECK2_TO_PLAY;
|
mGamePhase = DUEL_STATE_CHOOSE_DECK2_TO_PLAY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
#include "../include/DeckStats.h"
|
#include "../include/DeckStats.h"
|
||||||
|
|
||||||
|
|
||||||
Player::Player(MTGPlayerCards * _deck, string file): Damageable(20){
|
Player::Player(MTGPlayerCards * _deck, string file, string fileSmall): Damageable(20){
|
||||||
deckFile = file;
|
deckFile = file;
|
||||||
|
deckFileSmall = fileSmall;
|
||||||
game = _deck;
|
game = _deck;
|
||||||
game->setOwner(this);
|
game->setOwner(this);
|
||||||
manaPool = NEW ManaCost();
|
manaPool = NEW ManaCost();
|
||||||
@@ -55,7 +56,7 @@ Player * Player::opponent(){
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
HumanPlayer::HumanPlayer(MTGPlayerCards * _deck, char * file):Player(_deck, file){
|
HumanPlayer::HumanPlayer(MTGPlayerCards * _deck, char * file, string fileSmall):Player(_deck, file, fileSmall){
|
||||||
mAvatarTex = JRenderer::GetInstance()->LoadTexture("player/avatar.jpg", TEX_TYPE_USE_VRAM);
|
mAvatarTex = JRenderer::GetInstance()->LoadTexture("player/avatar.jpg", TEX_TYPE_USE_VRAM);
|
||||||
if (mAvatarTex)
|
if (mAvatarTex)
|
||||||
mAvatar = NEW JQuad(mAvatarTex, 0, 0, 35, 50);
|
mAvatar = NEW JQuad(mAvatarTex, 0, 0, 35, 50);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
using std::string;
|
using std::string;
|
||||||
|
|
||||||
TestSuiteAI::TestSuiteAI(TestSuite * _suite, int playerId):AIPlayer(_suite->buildDeck(playerId),"testsuite"){
|
TestSuiteAI::TestSuiteAI(TestSuite * _suite, int playerId):AIPlayer(_suite->buildDeck(playerId),"testsuite", "testsuite"){
|
||||||
suite = _suite;
|
suite = _suite;
|
||||||
timer= 0;
|
timer= 0;
|
||||||
mAvatarTex = JRenderer::GetInstance()->LoadTexture("ai/baka/avatar.jpg", TEX_TYPE_USE_VRAM);
|
mAvatarTex = JRenderer::GetInstance()->LoadTexture("ai/baka/avatar.jpg", TEX_TYPE_USE_VRAM);
|
||||||
|
|||||||
Reference in New Issue
Block a user