void SmartNameCacheTests::testCache() { SmartNameCache cache; Task projects( 1, QStringLiteral("Projects") ); Task charm( 2, QStringLiteral("Charm") ); charm.setParent( projects.id() ); Task charmDevelopment( 3, QStringLiteral("Development") ); charmDevelopment.setParent( charm.id() ); Task charmOverhead( 4, QStringLiteral("Overhead") ); charmOverhead.setParent( charm.id() ); Task lotsofcake( 5, QStringLiteral("Lotsofcake") ); lotsofcake.setParent( projects.id() ); Task lotsofcakeDevelopment( 6, QStringLiteral("Development") ); lotsofcakeDevelopment.setParent( lotsofcake.id() ); const TaskList tasks = TaskList() << projects << charm << charmDevelopment << charmOverhead << lotsofcake << lotsofcakeDevelopment; cache.setAllTasks( tasks ); QCOMPARE( cache.smartName( charmDevelopment.id() ), QLatin1String("Charm/Development") ); QCOMPARE( cache.smartName( charmOverhead.id() ), QLatin1String("Charm/Overhead") ); QCOMPARE( cache.smartName( projects.id() ), QLatin1String("Projects") ); QCOMPARE( cache.smartName( lotsofcakeDevelopment.id() ), QLatin1String("Lotsofcake/Development") ); }
void GameStateShop::ButtonPressed(int controllerId, int controlId) { int sel = bigSync.getOffset(); switch (controllerId) { case -102: //Buying something... mStage = STAGE_SHOP_PURCHASE; if (menu) menu->Close(); mBuying = controlId; return; case -145: if (controlId == -1) { //Nope, don't buy. if (sel < BOOSTER_SLOTS) cancelBooster(sel); else cancelCard(sel); menu->Close(); mStage = STAGE_SHOP_SHOP; return; } if (sel > -1 && sel < SHOP_ITEMS) { if (controlId == -2) playerdata->credits += mPrices[sel]; //We stole it. if (sel < BOOSTER_SLOTS) //Clicked a booster. purchaseBooster(sel); else purchaseCard(sel); //Check if we just scored an award... if (myCollection && myCollection->totalPrice() > 10000) { GameOptionAward * goa = dynamic_cast<GameOptionAward *> (&options[Options::AWARD_COLLECTOR]); if (goa) goa->giveAward(); } } mStage = STAGE_SHOP_SHOP; return; } //Basic Menu. switch (controlId) { case 12: if (taskList) taskList->save(); mStage = STAGE_SHOP_SHOP; mParent->DoTransition(TRANSITION_FADE, GAME_STATE_MENU); save(); GameStateMenu::genNbCardsStr(); break; case 14: mStage = STAGE_SHOP_TASKS; if (!taskList) taskList = NEW TaskList(); taskList->Start(); break; case 15: if (taskList) taskList->End(); break; case 22: beginFilters(); break; case -2: playerdata->credits += 1000; default: mStage = STAGE_SHOP_SHOP; } menu->Close(); }
void GameStateShop::Update(float dt) { if (menu && menu->isClosed()) SAFE_DELETE(menu); srcCards->Update(dt); alphaChange = 25 - static_cast<int>((float) (rand() - 1) / (RAND_MAX) * 50.0f); lightAlpha += alphaChange; if (lightAlpha < 0) lightAlpha = 0; if (lightAlpha > 50) lightAlpha = 50; JButton btn; switch (mStage) { case STAGE_SHOP_PURCHASE: if (menu) menu->Update(dt); beginPurchase(mBuying); mStage = STAGE_SHOP_SHOP; break; case STAGE_SHOP_MENU: if (menu) menu->Update(dt); else { menu = NEW SimpleMenu(JGE::GetInstance(), WResourceManager::Instance(), 11, this, Fonts::MENU_FONT, SCREEN_WIDTH / 2 - 100, 20); menu->Add(22, _("Ask about...").c_str()); menu->Add(14, _("Check task board").c_str()); if (options[Options::CHEATMODE].number) menu->Add(-2, _("Steal 1,000 credits").c_str()); menu->Add(12, _("Save And Exit").c_str()); menu->Add(kCancelMenuID, _("Cancel").c_str()); } break; case STAGE_SHOP_TASKS: if (menu && !menu->isClosed()) { menu->Update(dt); return; } if (taskList) { btn = mEngine->ReadButton(); taskList->Update(dt); if (taskList->getState() != TaskList::TASKS_INACTIVE) { if (btn == JGE_BTN_SEC || btn == JGE_BTN_CANCEL || btn == JGE_BTN_PREV) { taskList->End(); return; } else if (taskList->getState() == TaskList::TASKS_ACTIVE && btn == JGE_BTN_MENU) { if (!menu) { menu = NEW SimpleMenu(JGE::GetInstance(), WResourceManager::Instance(), 11, this, Fonts::MENU_FONT, SCREEN_WIDTH / 2 - 100, 20); menu->Add(15, "Return to shop"); menu->Add(12, "Save And Exit"); menu->Add(kCancelMenuID, "Cancel"); } } } else mStage = STAGE_SHOP_SHOP; } #ifdef TESTSUITE if ((mEngine->GetButtonClick(JGE_BTN_PRI)) && (taskList)) { taskList->passOneDay(); if (taskList->getTaskCount() < 6) { taskList->addRandomTask(); taskList->addRandomTask(); } taskList->save(); } #endif break; case STAGE_ASK_ABOUT: btn = mEngine->ReadButton(); if (menu && !menu->isClosed()) { menu->CheckUserInput(btn); menu->Update(dt); return; } if (filterMenu) { if (btn == JGE_BTN_CTRL) { needLoad = filterMenu->Finish(); filterMenu->Update(dt); return; } if (filterMenu->isFinished()) { if (needLoad) { srcCards->addFilter(NEW WCFilterNOT(NEW WCFilterRarity("T"))); srcCards->addFilter(NEW WCFilterNOT(NEW WCFilterSet(MTGSets::INTERNAL_SET))); if (!srcCards->Size()) { srcCards->clearFilters(); //Repetition of check at end of filterMenu->Finish(), for the token removal srcCards->addFilter(NEW WCFilterNOT(NEW WCFilterRarity("T"))); srcCards->addFilter(NEW WCFilterNOT(NEW WCFilterSet(MTGSets::INTERNAL_SET))); } load(); } mStage = STAGE_SHOP_SHOP; } else { filterMenu->CheckUserInput(btn); filterMenu->Update(dt); } return; } break; case STAGE_SHOP_SHOP: btn = mEngine->ReadButton(); if (menu && !menu->isClosed()) { menu->CheckUserInput(btn); menu->Update(dt); return; } if (btn == JGE_BTN_MENU) { if (boosterDisplay) { deleteDisplay(); return; } mStage = STAGE_SHOP_MENU; return; } else if (btn == JGE_BTN_CTRL) beginFilters(); else if (btn == JGE_BTN_NEXT) { mStage = STAGE_SHOP_TASKS; if (!taskList) taskList = NEW TaskList(); taskList->Start(); } else if (boosterDisplay) { if (btn == JGE_BTN_SEC) deleteDisplay(); else { boosterDisplay->CheckUserInput(btn); boosterDisplay->Update(dt); } return; } else if (btn == JGE_BTN_PRI) // so we don't shuffle while we view our newly purchased booster display. { srcCards->Shuffle(); load(); disablePurchase = false; clearInput = true; return; } else if (btn == JGE_BTN_CANCEL) options[Options::DISABLECARDS].number = !options[Options::DISABLECARDS].number; else if (btn == JGE_BTN_SEC) { bListCards = !bListCards; disablePurchase = false; clearInput = true; return; } else if (shopMenu) { #if defined (IOS) || defined (ANDROID) if ((cycleCardsButton->ButtonPressed() || showCardListButton->ButtonPressed())) #else if ( (btn == JGE_BTN_OK) && (cycleCardsButton->ButtonPressed() || showCardListButton->ButtonPressed())) #endif { disablePurchase = true; return; } else #if defined (IOS) || defined (ANDROID) if (clearInput && (btn == JGE_BTN_OK)) { clearInput = false; disablePurchase = false; return; } else #endif if (shopMenu->CheckUserInput(btn)) srcCards->Touch(); } if (shopMenu) shopMenu->Update(dt); break; case STAGE_FADE_IN: mParent->DoAnimation(TRANSITION_FADE_IN); mStage = STAGE_SHOP_SHOP; break; } }