// achievements scene SceneAchievements::SceneAchievements() : IGScene() { IGLog("SceneAchievements init"); // load the resources IwGetResManager()->LoadGroup("achievements.group"); // the background IGSprite* spriteBackground = new IGSprite("background_wood", IGPoint(160,240), 0); this->addChild(spriteBackground); // header IGSprite* spriteHeader = new IGSprite("achievements_header", IGPoint(160,41), 1); this->addChild(spriteHeader); // the menu items buttonBack = new AchievementsButtonBack(); buttonBack->setOpacity(64); AchievementsButtonMenu* buttonMenu = new AchievementsButtonMenu(); buttonNext = new AchievementsButtonNext(); this->addChild(buttonBack); this->addChild(buttonMenu); this->addChild(buttonNext); // pages pageNumber = 0; numPages = (int)(ACHIEVEMENT_NUM / 5); if(ACHIEVEMENT_NUM % 5 > 0) numPages++; // display achievements updateAchievements(); }
void SceneAchievements::pageNext() { if(pageNumber < numPages-1) { pageNumber++; if(pageNumber == numPages-1) buttonNext->setOpacity(64); buttonBack->setOpacity(255); updateAchievements(); } }
void SceneAchievements::pageBack() { if(pageNumber > 0) { pageNumber--; if(pageNumber == 0) buttonBack->setOpacity(64); buttonNext->setOpacity(255); updateAchievements(); } }
void TroopsMover::moveTroops(Army* army, Hexagon* endHex) { // used for achievements and shake const int armySize = army->getTroopsCount(); const int endHexArmySize = endHex->getTroopsCount(); Hexagon* startHex = army->getCurrentHex(); const int troops = army->getTroopsCount(); startHex->removeArmy(army); if(troops == 0){ army->free(); return; } if(endHex->getOwner() == startHex->getOwner()){ endHex->addArmy(army); }else{ AttackResult attackResult = getAttackResult(army, endHex); updateAchievements(army->getCurrentHex()->getOwner(), attackResult, armySize, endHexArmySize, endHex); handleAttackResult(attackResult, army, startHex, endHex); if(attackResult == DefenderWins){ if(endHex->getOwner()) EffectPlayer::playAttackEffect(); } checkAndShake(armySize, endHexArmySize, endHex); } if((endHex->getTroopsCount() > 0) && (startHex != endHex)){ endHex->runScaleAction(); } }