From adad723110e19ac2d9ac1165bc7939a3ac06bcc7 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 11 Aug 2016 14:26:41 +0800 Subject: [PATCH] game mode info --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 3 +- projects/mtg/src/GameStateDuel.cpp | 37 +++++++++++++++++++- projects/mtg/src/GuiAvatars.cpp | 6 ++-- projects/mtg/src/MTGAbility.cpp | 13 ++----- 4 files changed, 43 insertions(+), 16 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index d874aff17..4930d6239 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -119077,8 +119077,7 @@ toughness=4 [/card] [card] name=Vesuva -auto=tap(noevent) -auto=may copy notatarget(land) +auto=may copy notatarget(land) and!( tap(noevent) )! text=You may have Vesuva enter the battlefield tapped as a copy of any land on the battlefield. type=Land [/card] diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index 69221161c..5ab78aeb8 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -1196,24 +1196,59 @@ void GameStateDuel::Render() case DUEL_STATE_BACK_TO_MAIN_MENU: if (game) { + string gtype = ""; + if(game->gameType() == GAME_TYPE_CLASSIC) + gtype = "Classic"; + else if(game->gameType() == GAME_TYPE_MOMIR) + gtype = "Momir"; + else if(game->gameType() == GAME_TYPE_RANDOM1 || game->gameType() == GAME_TYPE_RANDOM2) + gtype = "Random"; + else if(game->gameType() == GAME_TYPE_STORY) + gtype = "Story"; + else if(game->gameType() == GAME_TYPE_DEMO) + gtype = "Demo"; + else if(game->gameType() == GAME_TYPE_STONEHEWER) + gtype = "Stone Hewer"; + else if(game->gameType() == GAME_TYPE_HERMIT) + gtype = "Hermit Druid"; + else + gtype = "Blitzkrieg"; r->FillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, ARGB(100,0,0,0)); char buffer[4096]; sprintf(buffer, _("Turn:%i").c_str(), game->turn); mFont->SetColor(ARGB(255,255,255,255)); mFont->DrawString(buffer, SCREEN_WIDTH / 2, 0, JGETEXT_CENTER); + mFont->DrawString(gtype, SCREEN_WIDTH / 2, SCREEN_HEIGHT - 15, JGETEXT_CENTER); } if (menu) { menu->Render(); // display the player deck names in their respective corners + string p0playmode = ""; + if(game->players[0]->playMode == Player::MODE_TEST_SUITE) + p0playmode = "AI Testsuite"; + else if(game->players[0]->playMode == Player::MODE_HUMAN) + p0playmode = "Human"; + else + p0playmode = "AI"; string playerDeckName = game->players[0]->deckName; float playerDeckNamePixelLength = mFont->GetStringWidth(playerDeckName.c_str()); + float playerModePixelLength = mFont->GetStringWidth(p0playmode.c_str()); mFont->DrawString( playerDeckName, SCREEN_WIDTH_F - playerDeckNamePixelLength, SCREEN_HEIGHT_F - 50); + mFont->DrawString( p0playmode, SCREEN_WIDTH_F - playerModePixelLength, SCREEN_HEIGHT_F - 60); if(game->players.size()>1) { + string p1playmode = ""; + if(game->players[1]->playMode == Player::MODE_TEST_SUITE) + p1playmode = "AI Testsuite"; + else if(game->players[1]->playMode == Player::MODE_HUMAN) + p1playmode = "Human"; + else + p1playmode = "AI"; string opponentDeckName = game->players[1]->deckName; - mFont->DrawString( opponentDeckName, 0, 50); + mFont->DrawString( opponentDeckName, 0, 40); + mFont->DrawString( p1playmode, 0, 50); } } } diff --git a/projects/mtg/src/GuiAvatars.cpp b/projects/mtg/src/GuiAvatars.cpp index 4d2af134b..5645195e6 100644 --- a/projects/mtg/src/GuiAvatars.cpp +++ b/projects/mtg/src/GuiAvatars.cpp @@ -12,10 +12,10 @@ GuiAvatars::GuiAvatars(DuelLayers* duelLayers) : { Add(self = NEW GuiAvatar(SCREEN_WIDTH, SCREEN_HEIGHT, false, mpDuelLayers->getRenderedPlayer(), GuiAvatar::BOTTOM_RIGHT, this)); self->zoom = 0.9f; - Add(selfGraveyard = NEW GuiGraveyard(SCREEN_WIDTH - GuiAvatar::Width - GuiGameZone::Width / 2 - 11, SCREEN_HEIGHT - GuiAvatar::Height - 1, false, mpDuelLayers->getRenderedPlayer(), this)); - Add(selfLibrary = NEW GuiLibrary(SCREEN_WIDTH - GuiAvatar::Width - GuiGameZone::Width / 2 - 11, SCREEN_HEIGHT - GuiAvatar::Height - 5 + GuiGameZone::Height + 5, false, mpDuelLayers->getRenderedPlayer(), this)); + Add(selfGraveyard = NEW GuiGraveyard(SCREEN_WIDTH - GuiAvatar::Width - GuiGameZone::Width / 2 - 11, SCREEN_HEIGHT - GuiAvatar::Height - 7, false, mpDuelLayers->getRenderedPlayer(), this)); + Add(selfLibrary = NEW GuiLibrary(SCREEN_WIDTH - GuiAvatar::Width - GuiGameZone::Width / 2 - 11, SCREEN_HEIGHT - GuiAvatar::Height - 10 + GuiGameZone::Height + 5, false, mpDuelLayers->getRenderedPlayer(), this)); //myexile - Add(selfExile = NEW GuiExile(SCREEN_WIDTH - GuiAvatar::Width - GuiGameZone::Width / 2 - 11, SCREEN_HEIGHT - GuiAvatar::Height - 30, false, mpDuelLayers->getRenderedPlayer(), this)); + Add(selfExile = NEW GuiExile(SCREEN_WIDTH - GuiAvatar::Width - GuiGameZone::Width / 2 - 11, SCREEN_HEIGHT - GuiAvatar::Height - 34, false, mpDuelLayers->getRenderedPlayer(), this)); Add(opponent = NEW GuiAvatar(0, 0, false, mpDuelLayers->getRenderedPlayerOpponent(), GuiAvatar::TOP_LEFT, this)); opponent->zoom = 0.9f; diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index b3055061e..5b0ac20fd 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -3391,16 +3391,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG /*vectorFlipStats = split(splitFlipStat[1],'%');*/ flipStats = splitFlipStat[1]; } - if(card->getdoubleFaced() == "kamiflip") - {//old flip cards kamigawa - MTGAbility * a = NEW AAFlip(observer, id, card, target,flipStats,true); - return a; - } - else//regular transform - { - MTGAbility * a = NEW AAFlip(observer, id, card, target,flipStats); - return a; - } + bool transmode = card->getdoubleFaced() == "kamiflip"?true:false; + MTGAbility * a = NEW AAFlip(observer, id, card, target,flipStats,transmode); + return a; } //Change Power/Toughness