From 328aa1c9f491aa3d4022e0c078330808c1792585 Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew@gmail.com" Date: Thu, 23 Jul 2009 13:44:50 +0000 Subject: [PATCH] Erwan - reduced price of boosters - Sets need to be unlocked in order to be accessed from the shop - Added a "refresh" option in the shop --- .../mtg/bin/Res/graphics/set_unlocked.png | Bin 0 -> 16267 bytes projects/mtg/include/Credits.h | 2 + projects/mtg/include/GameStateShop.h | 2 +- projects/mtg/include/MTGDeck.h | 4 +- projects/mtg/src/ActionStack.cpp | 4 + projects/mtg/src/Credits.cpp | 22 ++++++ projects/mtg/src/GameStateDuel.cpp | 18 ++--- projects/mtg/src/GameStateMenu.cpp | 62 ++++++++------- projects/mtg/src/GameStateShop.cpp | 74 +++++++++++++++--- projects/mtg/src/MTGCardInstance.cpp | 2 +- projects/mtg/src/MTGDeck.cpp | 29 ++++--- projects/mtg/src/ShopItem.cpp | 7 +- 12 files changed, 161 insertions(+), 65 deletions(-) create mode 100644 projects/mtg/bin/Res/graphics/set_unlocked.png diff --git a/projects/mtg/bin/Res/graphics/set_unlocked.png b/projects/mtg/bin/Res/graphics/set_unlocked.png new file mode 100644 index 0000000000000000000000000000000000000000..b269412ec0b82dfb19445e7ad9a3581d1e79f1b0 GIT binary patch literal 16267 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 literal 0 HcmV?d00001 diff --git a/projects/mtg/include/Credits.h b/projects/mtg/include/Credits.h index 075f6029f..61472399f 100644 --- a/projects/mtg/include/Credits.h +++ b/projects/mtg/include/Credits.h @@ -26,6 +26,7 @@ private: int isMomirUnlocked(); int isEvilTwinUnlocked(); int isRandomDeckUnlocked(); + int unlockRandomSet(); public: int value; Player * p1, *p2; @@ -34,6 +35,7 @@ public: int unlocked; JQuad * unlockedQuad; JTexture * unlockedTex; + string unlockedString; vector bonus; Credits(); ~Credits(); diff --git a/projects/mtg/include/GameStateShop.h b/projects/mtg/include/GameStateShop.h index 1317e9850..12275da85 100644 --- a/projects/mtg/include/GameStateShop.h +++ b/projects/mtg/include/GameStateShop.h @@ -29,7 +29,7 @@ class GameStateShop: public GameState, public JGuiListener char starterBuffer[128], boosterBuffer[128]; char setNames[SHOP_BOOSTERS][128]; int setIds[SHOP_BOOSTERS]; - + void load(); public: GameStateShop(GameApp* parent); virtual ~GameStateShop(); diff --git a/projects/mtg/include/MTGDeck.h b/projects/mtg/include/MTGDeck.h index cb6eb1f09..cb7572f14 100644 --- a/projects/mtg/include/MTGDeck.h +++ b/projects/mtg/include/MTGDeck.h @@ -23,7 +23,7 @@ class GameApp; class MTGCard; -#define MAX_SETS 50 +#define MAX_SETS 100 @@ -94,7 +94,7 @@ class MTGDeck{ int totalCards(); MTGDeck(TexturesCache * cache, MTGAllCards * _allcards); MTGDeck(const char * config_file, TexturesCache * cache, MTGAllCards * _allcards, int meta_only = 0); - int addRandomCards(int howmany, int setId = -1, int rarity = -1, const char * subtype = NULL, int * colors = NULL, int nbcolors = 0); + int addRandomCards(int howmany, int * setIds = NULL, int nbSets = 0, int rarity = -1, const char * subtype = NULL, int * colors = NULL, int nbcolors = 0); int add(int cardid); int add(MTGDeck * deck); // adds the contents of "deck" into myself int remove(int cardid); diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index d79b216db..a8f503a0b 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -744,6 +744,10 @@ while( iter != mObjects.end() ){ } void ActionStack::Fizzle(Interruptible * action){ + if (!action){ + OutputDebugString("==ERROR==: action is NULL in ActionStack::Fizzle\n"); + return; + } if (action->type == ACTION_SPELL){ Spell * spell = (Spell *) action; spell->source->controller()->game->putInGraveyard(spell->source); diff --git a/projects/mtg/src/Credits.cpp b/projects/mtg/src/Credits.cpp index 8d1e518ac..a79ce0fd9 100644 --- a/projects/mtg/src/Credits.cpp +++ b/projects/mtg/src/Credits.cpp @@ -5,6 +5,7 @@ #include "../include/PlayerData.h" #include "../include/DeckStats.h" #include "../include/Translate.h" +#include "../include/MTGDeck.h" CreditBonus::CreditBonus(int _value, string _text){ value = _value; @@ -93,6 +94,14 @@ void Credits::compute(Player * _p1, Player * _p2, GameApp * _app){ unlockedQuad = NEW JQuad(unlockedTex, 2, 2, 396, 96); GameOptions::GetInstance()->values[OPTIONS_RANDOMDECK_MODE_UNLOCKED] = GameOption(1); GameOptions::GetInstance()->save(); + }else if(unlocked = unlockRandomSet()) { + unlockedTex = JRenderer::GetInstance()->LoadTexture("graphics/set_unlocked.png", TEX_TYPE_USE_VRAM); + unlockedQuad = NEW JQuad(unlockedTex, 2, 2, 396, 96); + char buffer[4096]; + unlockedString = MtgSets::SetsList->values[unlocked -1]; + sprintf(buffer,"unlocked_%s", unlockedString.c_str()); + GameOptions::GetInstance()->values[buffer] = GameOption(1); + GameOptions::GetInstance()->save(); } if (unlocked){ JSample * sample = SampleCache::GetInstance()->getSample("sound/sfx/bonus.wav"); @@ -138,6 +147,9 @@ void Credits::Render(){ showMsg = 0; r->RenderQuad(unlockedQuad, 20, 20); } + if(unlockedString.size()){ + f2->DrawString(unlockedString.c_str(),SCREEN_WIDTH/2, 80,JGETEXT_CENTER); + } }else{ sprintf (buffer, _("You have been defeated").c_str()); } @@ -215,3 +227,13 @@ int Credits::isRandomDeckUnlocked(){ if (p1->life >= 20 ) return 1; return 0; } + +int Credits::unlockRandomSet(){ + if (rand() % 2) return 0; + int setId = rand() % MtgSets::SetsList->nb_items; + char buffer[4096]; + string s = MtgSets::SetsList->values[setId]; + sprintf(buffer,"unlocked_%s", s.c_str()); + if (GameOptions::GetInstance()->values[buffer].getIntValue() == 1 ) return 0; + return setId+1; +} diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index e30be19b3..9cd9d6a0b 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -119,15 +119,15 @@ void GameStateDuel::loadPlayerRandom(int playerId, int isAI, int mode){ MTGDeck * tempDeck = NEW MTGDeck(NULL, mParent->collection); - tempDeck->addRandomCards(9,-1,-1,lands[color1].c_str()); - tempDeck->addRandomCards(9,-1,-1,lands[color2].c_str()); - tempDeck->addRandomCards(1,-1,'U',"land",colors,nbcolors); - tempDeck->addRandomCards(1,-1,'R',"land",colors,nbcolors); - tempDeck->addRandomCards(12,-1,-1,"creature",colors,nbcolors); - tempDeck->addRandomCards(2,-1,-1,"sorcery",colors,nbcolors); - tempDeck->addRandomCards(2,-1,-1,"enchantment",colors,nbcolors); - tempDeck->addRandomCards(2,-1,-1,"instant",colors,nbcolors); - tempDeck->addRandomCards(2,-1,-1,"artifact",colors,nbcolors); + tempDeck->addRandomCards(9,0,0,-1,lands[color1].c_str()); + tempDeck->addRandomCards(9,0,0,-1,lands[color2].c_str()); + tempDeck->addRandomCards(1,0,0,'U',"land",colors,nbcolors); + tempDeck->addRandomCards(1,0,0,'R',"land",colors,nbcolors); + tempDeck->addRandomCards(12,0,0,-1,"creature",colors,nbcolors); + tempDeck->addRandomCards(2,0,0,-1,"sorcery",colors,nbcolors); + tempDeck->addRandomCards(2,0,0,-1,"enchantment",colors,nbcolors); + tempDeck->addRandomCards(2,0,0,-1,"instant",colors,nbcolors); + tempDeck->addRandomCards(2,0,0,-1,"artifact",colors,nbcolors); char * deckFile = "random"; string deckFileSmall = "random"; diff --git a/projects/mtg/src/GameStateMenu.cpp b/projects/mtg/src/GameStateMenu.cpp index 376b08164..0594392ec 100644 --- a/projects/mtg/src/GameStateMenu.cpp +++ b/projects/mtg/src/GameStateMenu.cpp @@ -290,17 +290,24 @@ void GameStateMenu::Update(float dt) break; case MENU_STATE_MAJOR_FIRST_TIME : { - //Give the player cards from the set for which we have the most variety - int setId = 0; - int maxcards = 0; - for (int i=0; i< MtgSets::SetsList->nb_items; i++){ - int value = mParent->collection->countBySet(i); - if (value > maxcards){ - maxcards = value; - setId = i; - } - } - createUsersFirstDeck(setId); + //Give the player cards from the set for which we have the most variety + int setId = 0; + int maxcards = 0; + for (int i=0; i< MtgSets::SetsList->nb_items; i++){ + int value = mParent->collection->countBySet(i); + if (value > maxcards){ + maxcards = value; + setId = i; + } + } + //Save this set as "unlocked" + string s = MtgSets::SetsList->values[setId]; + char buffer[4096]; + sprintf(buffer,"unlocked_%s", s.c_str()); + GameOptions::GetInstance()->values[buffer] = GameOption(1); + GameOptions::GetInstance()->save(); + + createUsersFirstDeck(setId); } currentState = MENU_STATE_MAJOR_MAINMENU | MENU_STATE_MINOR_NONE; break; @@ -388,20 +395,21 @@ void GameStateMenu::createUsersFirstDeck(int setId){ #endif MTGDeck *mCollection = NEW MTGDeck(RESPATH"/player/collection.dat", mParent->cache, mParent->collection); //10 lands of each - if (!mCollection->addRandomCards(10, setId,Constants::RARITY_L,"Forest")){ - mCollection->addRandomCards(10, -1,Constants::RARITY_L,"Forest"); + int sets[] = {setId}; + if (!mCollection->addRandomCards(10, sets,1, Constants::RARITY_L,"Forest")){ + mCollection->addRandomCards(10, 0,0,Constants::RARITY_L,"Forest"); } - if (!mCollection->addRandomCards(10, setId,Constants::RARITY_L,"Plains")){ - mCollection->addRandomCards(10, -1,Constants::RARITY_L,"Plains"); + if (!mCollection->addRandomCards(10, sets,1,Constants::RARITY_L,"Plains")){ + mCollection->addRandomCards(10, 0,0,Constants::RARITY_L,"Plains"); } - if (!mCollection->addRandomCards(10, setId,Constants::RARITY_L,"Swamp")){ - mCollection->addRandomCards(10, -1,Constants::RARITY_L,"Swamp"); + if (!mCollection->addRandomCards(10, sets,1,Constants::RARITY_L,"Swamp")){ + mCollection->addRandomCards(10, 0,0,Constants::RARITY_L,"Swamp"); } - if (!mCollection->addRandomCards(10, setId,Constants::RARITY_L,"Mountain")){ - mCollection->addRandomCards(10, -1,Constants::RARITY_L,"Mountain"); + if (!mCollection->addRandomCards(10, sets,1,Constants::RARITY_L,"Mountain")){ + mCollection->addRandomCards(10, 0,0,Constants::RARITY_L,"Mountain"); } - if (!mCollection->addRandomCards(10, setId,Constants::RARITY_L,"Island")){ - mCollection->addRandomCards(10, -1,Constants::RARITY_L,"Island"); + if (!mCollection->addRandomCards(10, sets,1,Constants::RARITY_L,"Island")){ + mCollection->addRandomCards(10, 0,0,Constants::RARITY_L,"Island"); } @@ -410,18 +418,18 @@ void GameStateMenu::createUsersFirstDeck(int setId){ #endif //Starter Deck - mCollection->addRandomCards(3, setId,Constants::RARITY_R,NULL); - mCollection->addRandomCards(9, setId,Constants::RARITY_U,NULL); - mCollection->addRandomCards(48, setId,Constants::RARITY_C,NULL); + mCollection->addRandomCards(3, sets,1,Constants::RARITY_R,NULL); + mCollection->addRandomCards(9, sets,1,Constants::RARITY_U,NULL); + mCollection->addRandomCards(48, sets,1,Constants::RARITY_C,NULL); #if defined (WIN32) || defined (LINUX) OutputDebugString("2\n"); #endif //Boosters for (int i = 0; i< 2; i++){ - mCollection->addRandomCards(1, setId,Constants::RARITY_R); - mCollection->addRandomCards(3, setId,Constants::RARITY_U); - mCollection->addRandomCards(11, setId,Constants::RARITY_C); + mCollection->addRandomCards(1, sets,1,Constants::RARITY_R); + mCollection->addRandomCards(3, sets,1,Constants::RARITY_U); + mCollection->addRandomCards(11, sets,1,Constants::RARITY_C); } mCollection->save(); SAFE_DELETE(mCollection); diff --git a/projects/mtg/src/GameStateShop.cpp b/projects/mtg/src/GameStateShop.cpp index 9a6d3fb94..345e4ef0f 100644 --- a/projects/mtg/src/GameStateShop.cpp +++ b/projects/mtg/src/GameStateShop.cpp @@ -7,7 +7,7 @@ #include "../include/GameApp.h" #include "../include/MTGDeck.h" #include "../include/Translate.h" - +#include "../include/GameOptions.h" GameStateShop::GameStateShop(GameApp* parent): GameState(parent) {} @@ -40,17 +40,55 @@ void GameStateShop::Start() JRenderer::GetInstance()->EnableVSync(true); + shop = NULL; + load(); + +} + + +void GameStateShop::load(){ + SAFE_DELETE(shop); int sets[500]; + int boosterSets[500]; + int unlocked[500]; int nbsets = 0; + int nbboostersets = 0; + + //Unlock a default set if no set is unlocked + int ok = 0; + int defaultSet = 0; for (int i = 0; i < MtgSets::SetsList->nb_items; i++){ - if (mParent->collection->countBySet(i) > 80){ //Only sets with more than 80 cards can get boosters and starters - sets[nbsets] = i; - nbsets++; + string s = MtgSets::SetsList->values[i]; + if (s.compare("10E") == 0) defaultSet = i; + char buffer[4096]; + sprintf(buffer,"unlocked_%s", s.c_str()); + unlocked[i] = GameOptions::GetInstance()->values[buffer].getIntValue(); + if ( unlocked[i] ){ + ok = 1; } } - if (nbsets){ + if (!ok){ + unlocked[defaultSet] = 1; + string s = MtgSets::SetsList->values[defaultSet]; + char buffer[4096]; + sprintf(buffer,"unlocked_%s", s.c_str()); + GameOptions::GetInstance()->values[buffer] = GameOption(1); + GameOptions::GetInstance()->save(); + } + + for (int i = 0; i < MtgSets::SetsList->nb_items; i++){ + if (unlocked[i] ){ + sets[nbsets] = i; + nbsets++; + if (mParent->collection->countBySet(i) > 80){ //Only sets with more than 80 cards can get boosters and starters + boosterSets[nbboostersets] = i; + nbboostersets++; + } + } + } + if (nbboostersets){ for (int i = 0; i < SHOP_BOOSTERS; i++){ - setIds[i] = sets[(rand() % nbsets)]; + setIds[i] = boosterSets[(rand() % nbboostersets)]; } }else{ for (int i = 0; i < SHOP_BOOSTERS; i++){ @@ -59,21 +97,24 @@ void GameStateShop::Start() } JQuad * mBackThumb = GameApp::CommonRes->GetQuad("back_thumb"); - shop = NULL; + shop = NEW ShopItems(10, this, itemFont, 10, 0, mParent->collection, setIds); for (int i = 0; i < SHOP_BOOSTERS; i++){ sprintf(setNames[i], "%s Booster (15 %s)",MtgSets::SetsList->values[setIds[i]].c_str(), _("cards").c_str()); - shop->Add(setNames[i],mBack,mBackThumb, 1200); + shop->Add(setNames[i],mBack,mBackThumb, 700); } - for (int i = 0; i < 8; i++){ - shop->Add(mParent->collection->randomCardId()); + MTGDeck * tempDeck = NEW MTGDeck(NULL,mParent->collection); + tempDeck->addRandomCards(8,sets,nbsets); + for (map::iterator it = tempDeck->cards.begin(); it!=tempDeck->cards.end(); it++){ + for (int j = 0; j < it->second; j++){ + shop->Add(it->first); + } } - + delete tempDeck; } - void GameStateShop::End() { JRenderer::GetInstance()->EnableVSync(false); @@ -103,6 +144,9 @@ void GameStateShop::Update(float dt) if (mEngine->GetButtonClick(PSP_CTRL_START)){ mStage = STAGE_SHOP_MENU; } + if (mEngine->GetButtonClick(PSP_CTRL_SQUARE)){ + load(); + } if (shop) shop->Update(dt); } @@ -112,10 +156,14 @@ void GameStateShop::Update(float dt) void GameStateShop::Render() { //Erase - JRenderer::GetInstance()->ClearScreen(ARGB(0,0,0,0)); + JRenderer * r = JRenderer::GetInstance(); + r->ClearScreen(ARGB(0,0,0,0)); if (mBg)JRenderer::GetInstance()->RenderQuad(mBg,0,0); if (shop) shop->Render(); + + r->FillRect(5,SCREEN_HEIGHT-15,110,15,ARGB(200,0,0,0)); + itemFont->DrawString(_("press [] to refresh").c_str(),10,SCREEN_HEIGHT-12); if (mStage == STAGE_SHOP_MENU && menu){ menu->Render(); } diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 130095b4b..7e10482d7 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -304,7 +304,7 @@ int MTGCardInstance::reset(){ Player * MTGCardInstance::controller(){ GameObserver * game = GameObserver::GetInstance(); if (!game) return NULL; - for (int i = 0; i < 2; i++){ + for (int i = 0; i < 2; ++i){ if (game->players[i]->game->inPlay->hasCard(this)) return game->players[i]; if (game->players[i]->game->stack->hasCard(this)) return game->players[i]; if (game->players[i]->game->graveyard->hasCard(this)) return game->players[i]; diff --git a/projects/mtg/src/MTGDeck.cpp b/projects/mtg/src/MTGDeck.cpp index 0f794926e..f9ed81ba7 100644 --- a/projects/mtg/src/MTGDeck.cpp +++ b/projects/mtg/src/MTGDeck.cpp @@ -421,7 +421,7 @@ MTGCard * MTGDeck::getCardById(int mtgId){ } -int MTGDeck::addRandomCards(int howmany, int setId, int rarity, const char * _subtype, int * colors, int nbcolors){ +int MTGDeck::addRandomCards(int howmany, int * setIds, int nbSets, int rarity, const char * _subtype, int * colors, int nbcolors){ int unallowedColors[Constants::MTG_NB_COLORS+1]; for (int i=0; i < Constants::MTG_NB_COLORS; ++i){ if (nbcolors) unallowedColors[i] = 1; @@ -433,7 +433,7 @@ int MTGDeck::addRandomCards(int howmany, int setId, int rarity, const char * _su int collectionTotal = database->totalCards(); if (!collectionTotal) return 0; - if (setId == -1 && rarity == -1 && !_subtype && !nbcolors){ + if (nbSets == 0 && rarity == -1 && !_subtype && !nbcolors){ for (int i = 0; i < howmany; i++){ add(database->randomCardId()); } @@ -448,17 +448,28 @@ int MTGDeck::addRandomCards(int howmany, int setId, int rarity, const char * _su int subtotal = 0; for (int i = 0; i < collectionTotal; i++){ MTGCard * card = database->_(i); - if ((setId == -1 || card->setId == setId) && - (rarity == -1 || card->getRarity()==rarity) && + if ((rarity == -1 || card->getRarity()==rarity) && (!_subtype || card->hasSubtype(subtype)) ){ - int ok = 1; - for (int j=0; j < Constants::MTG_NB_COLORS; ++j){ - if (unallowedColors[j] && card->hasColor(j)){ - ok = 0; + int ok = 0; + + if (!nbSets) ok = 1; + for (int j=0; j < nbSets; ++j){ + if (card->setId == setIds[j]){ + ok = 1; break; } } + + if (ok){ + for (int j=0; j < Constants::MTG_NB_COLORS; ++j){ + if (unallowedColors[j] && card->hasColor(j)){ + ok = 0; + break; + } + } + } + if (ok){ subcollection.push_back(card->getId()); subtotal++; @@ -466,7 +477,7 @@ int MTGDeck::addRandomCards(int howmany, int setId, int rarity, const char * _su } } if (subtotal == 0){ - if (rarity == Constants::RARITY_M) return addRandomCards(howmany, setId, Constants::RARITY_R, _subtype, colors, nbcolors); + if (rarity == Constants::RARITY_M) return addRandomCards(howmany, setIds, nbSets, Constants::RARITY_R, _subtype, colors, nbcolors); return 0; } for (int i = 0; i < howmany; i++){ diff --git a/projects/mtg/src/ShopItem.cpp b/projects/mtg/src/ShopItem.cpp index 1c60168f9..3370b19af 100644 --- a/projects/mtg/src/ShopItem.cpp +++ b/projects/mtg/src/ShopItem.cpp @@ -256,9 +256,10 @@ void ShopItems::ButtonPressed(int controllerId, int controlId){ int rare_or_mythic = Constants::RARITY_R; int rnd = rand() % 8; if (rnd == 0) rare_or_mythic = Constants::RARITY_M; - tempDeck->addRandomCards(1, setIds[showPriceDialog],rare_or_mythic); - tempDeck->addRandomCards(3, setIds[showPriceDialog],Constants::RARITY_U); - tempDeck->addRandomCards(11, setIds[showPriceDialog],Constants::RARITY_C); + int sets[] = {setIds[showPriceDialog]}; + tempDeck->addRandomCards(1, sets,1,rare_or_mythic); + tempDeck->addRandomCards(3, sets,1,Constants::RARITY_U); + tempDeck->addRandomCards(11, sets,1,Constants::RARITY_C); playerdata->collection->add(tempDeck);