diff --git a/.gitignore b/.gitignore index 6e941ea65..9b6ff4219 100644 --- a/.gitignore +++ b/.gitignore @@ -132,10 +132,13 @@ proj.win32/*.opendb # Keystore files *.jks *.keystore + **/goa/firebase_cpp_sdk **/goa/Classes/firebase **/goa/cocos2d/cocos/firebase +google-services.json + # Generated documentation, it can be regenerated using doxygen # ###################### -docs/html/* \ No newline at end of file +docs/html/* diff --git a/Chimple-Privacy-Policy.pdf b/Chimple-Privacy-Policy.pdf deleted file mode 100644 index f922c684c..000000000 Binary files a/Chimple-Privacy-Policy.pdf and /dev/null differ diff --git a/SimpleClass-Privacy-Policy.pdf b/SimpleClass-Privacy-Policy.pdf new file mode 100644 index 000000000..f64f05821 Binary files /dev/null and b/SimpleClass-Privacy-Policy.pdf differ diff --git a/goa/.vscode/ipch/1d93d47ff5935787/mmap_address.bin b/goa/.vscode/ipch/1d93d47ff5935787/mmap_address.bin deleted file mode 100644 index 862b8428b..000000000 Binary files a/goa/.vscode/ipch/1d93d47ff5935787/mmap_address.bin and /dev/null differ diff --git a/goa/Classes/lang/EnglishUtil.cpp b/goa/Classes/lang/EnglishUtil.cpp index ec8895396..d027ae21d 100644 --- a/goa/Classes/lang/EnglishUtil.cpp +++ b/goa/Classes/lang/EnglishUtil.cpp @@ -7,123 +7,141 @@ // #include "EnglishUtil.h" +#include "../menu/LevelHelpScene.h" #include "ctype.h" USING_NS_CC; #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) -static const char* audioExt = ".wav"; +static const char *audioExt = ".wav"; #else -static const char* audioExt = ".m4a"; +static const char *audioExt = ".m4a"; #endif -static const char* pronounciationAudioExt = ".ogg"; +static const char *pronounciationAudioExt = ".ogg"; -static const wchar_t* const allCharacters = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ" ; -static const wchar_t* const allLowerCaseCharacters = L"abcdefghijklmnopqrstuvwxyz" ; -static const wchar_t* const allNumbers = L"0123456789" ; +static const wchar_t *const allCharacters = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +static const wchar_t *const allLowerCaseCharacters = L"abcdefghijklmnopqrstuvwxyz"; +static const wchar_t *const allNumbers = L"0123456789"; -const wchar_t* EnglishUtil::getAllLowerCaseCharacters() { +const wchar_t *EnglishUtil::getAllLowerCaseCharacters() +{ return allLowerCaseCharacters; } -const wchar_t* EnglishUtil::getAllNumbers() { +const wchar_t *EnglishUtil::getAllNumbers() +{ return allNumbers; } -const wchar_t* EnglishUtil::getAllCharacters() { +const wchar_t *EnglishUtil::getAllCharacters() +{ return allCharacters; } -int EnglishUtil::getNumberOfCharacters() { +int EnglishUtil::getNumberOfCharacters() +{ return 26; } -const std::vector EnglishUtil::getNumCharsInRows() { +const std::vector EnglishUtil::getNumCharsInRows() +{ static const int en[] = {26}; static const std::vector englishNumCharsInRows(en, en + 1); return englishNumCharsInRows; } -std::string EnglishUtil::getMonsterAnimationFileName(std::string alpha) { - return std::string("lang/eng/") + alpha +".csb"; +std::string EnglishUtil::getMonsterAnimationFileName(std::string alpha) +{ + return std::string("lang/eng/") + alpha + ".csb"; } -std::string EnglishUtil::getSpecialAnimationFileName(wchar_t alpha, std::string suffix) { - return std::string("lang/eng/") + suffix + "/" + convertUTF16CharToString(alpha) +".csb"; +std::string EnglishUtil::getSpecialAnimationFileName(wchar_t alpha, std::string suffix) +{ + return std::string("lang/eng/") + suffix + "/" + convertUTF16CharToString(alpha) + ".csb"; } -std::string EnglishUtil::getBMFontFileName() { +std::string EnglishUtil::getBMFontFileName() +{ return "lang/eng/baloo_bhai_common.fnt"; } -std::string EnglishUtil::getAlphabetSoundFileName(wchar_t alpha) { - auto lowerCase = tolower(alpha); - auto someString = convertUTF16CharToString(lowerCase); +std::string EnglishUtil::getAlphabetSoundFileName(wchar_t alpha) +{ + auto lowerCase = tolower(alpha); + auto someString = convertUTF16CharToString(lowerCase); auto fileName = std::string("lang/eng/sounds/") + someString + audioExt; - return fileName; + return fileName; } -std::string EnglishUtil::getPhoneticSoundFileName(wchar_t alpha) { +std::string EnglishUtil::getPhoneticSoundFileName(wchar_t alpha) +{ auto fileName = std::string("lang/eng/sounds/") + convertUTF16CharToString(tolower(alpha)) + audioExt; return fileName; } -std::string EnglishUtil::getAlphabetSoundFileNameForString(std::string alpha) { +std::string EnglishUtil::getAlphabetSoundFileNameForString(std::string alpha) +{ std::transform(alpha.begin(), alpha.end(), alpha.begin(), ::tolower); auto fileName = std::string("lang/eng/sounds/") + alpha + audioExt; return fileName; } -std::string EnglishUtil::getPhoneticSoundFileNameForString(std::string alpha) { +std::string EnglishUtil::getPhoneticSoundFileNameForString(std::string alpha) +{ std::transform(alpha.begin(), alpha.end(), alpha.begin(), ::tolower); auto fileName = std::string("lang/eng/audio/phonetic/") + alpha + pronounciationAudioExt; return fileName; } -bool EnglishUtil::isGraphemeStart(uint32_t prevCodePoint, uint32_t currentCodePoint) { +bool EnglishUtil::isGraphemeStart(uint32_t prevCodePoint, uint32_t currentCodePoint) +{ return true; } - -std::string EnglishUtil::getPronounciationFileNameForWord(std::string word) { +std::string EnglishUtil::getPronounciationFileNameForWord(std::string word) +{ std::replace(word.begin(), word.end(), ' ', '_'); std::transform(word.begin(), word.end(), word.begin(), ::tolower); - + char ch = word.back(); - if(ch == '.') + if (ch == '.') { - word = word.substr(0, word.size()-1); - } + word = word.substr(0, word.size() - 1); + } auto fileName = std::string("lang/eng/audio/words/") + word + pronounciationAudioExt; return fileName; } - -bool EnglishUtil::isTextToSpeechSupported() { +bool EnglishUtil::isTextToSpeechSupported() +{ return true; } -std::string EnglishUtil::getDir() { +std::string EnglishUtil::getDir() +{ return "lang/eng"; } -std::string EnglishUtil::getLang() { +std::string EnglishUtil::getLang() +{ return "eng"; } -EnglishUtil::EnglishUtil() { +EnglishUtil::EnglishUtil() +{ this->initializeWordManager(); - Data moData = FileUtils::getInstance()->getDataFromFile("res/lang/eng/eng.mo"); + Data moData = FileUtils::getInstance()->getDataFromFile("res/lang/eng/eng_" + localeCode + ".mo"); I18N::I18nUtils::getInstance()->removeAllMO(); I18N::I18nUtils::getInstance()->addMO(moData.getBytes()); } -EnglishUtil::~EnglishUtil() { +EnglishUtil::~EnglishUtil() +{ } - -void EnglishUtil::initializeWordManager() { +void EnglishUtil::initializeWordManager() +{ this->wordManager = WordManager::getInstance(); } \ No newline at end of file diff --git a/goa/Classes/menu/LevelHelpScene.cpp b/goa/Classes/menu/LevelHelpScene.cpp index a7ea17983..a738e0df6 100644 --- a/goa/Classes/menu/LevelHelpScene.cpp +++ b/goa/Classes/menu/LevelHelpScene.cpp @@ -84,7 +84,7 @@ bool LevelHelpScene::initWithGame(std::string gameName) gameName = "story-catalogue"; } - std::string contents = FileUtils::getInstance()->getStringFromFile("config/game_levels.json"); + std::string contents = FileUtils::getInstance()->getStringFromFile("config/game_levels_" + localeCode + ".json"); rapidjson::Document d; diff --git a/goa/Classes/menu/LevelHelpScene.h b/goa/Classes/menu/LevelHelpScene.h index cb3876043..6da7816a7 100644 --- a/goa/Classes/menu/LevelHelpScene.h +++ b/goa/Classes/menu/LevelHelpScene.h @@ -12,22 +12,23 @@ #include "cocos2d.h" #include "ui/CocosGUI.h" -class LevelHelpScene: public cocos2d::Node { +const static std::string localeCode = "hi"; // en/hi to set English/Hindi locale +class LevelHelpScene : public cocos2d::Node +{ public: static cocos2d::Scene *createScene(std::string gameName); static LevelHelpScene *create(std::string gameName); - cocos2d::ui::Button *_resumeButton; + cocos2d::ui::Button *_resumeButton; cocos2d::ui::ListView *listviewScroll; void onEnterTransitionDidFinish() override; void onExitTransitionDidStart() override; - void ResumeButtonAction(cocos2d::Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); -CC_CONSTRUCTOR_ACCESS: - LevelHelpScene(); + void ResumeButtonAction(cocos2d::Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); + CC_CONSTRUCTOR_ACCESS : LevelHelpScene(); virtual ~LevelHelpScene(); virtual bool init() override; bool initWithGame(std::string gameName); std::vector split(std::string s, char delim); - + protected: int _currentLevel; std::string _gameName; @@ -36,17 +37,16 @@ class LevelHelpScene: public cocos2d::Node { std::vector _videos; std::vector _videoNames; int _currentVideo; - virtual void gotoGame(Ref* pSender, cocos2d::ui::Widget::TouchEventType eEventType); + virtual void gotoGame(Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS) - cocos2d::experimental::ui::VideoPlayer* _vp; - void videoEventCallback(Ref* sender, cocos2d::experimental::ui::VideoPlayer::EventType eventType); - + cocos2d::experimental::ui::VideoPlayer *_vp; + void videoEventCallback(Ref *sender, cocos2d::experimental::ui::VideoPlayer::EventType eventType); + #endif void playNextVideo(float dt); virtual void decideIndexOfVideo(); void videoPlayStart(); void videoPlayOverCallback(); - }; #endif /* LevelHelpScene_h */ diff --git a/goa/Classes/menu/MainMenuHome.cpp b/goa/Classes/menu/MainMenuHome.cpp index e13d605a4..6817fe127 100644 --- a/goa/Classes/menu/MainMenuHome.cpp +++ b/goa/Classes/menu/MainMenuHome.cpp @@ -10,6 +10,7 @@ #include "MapScene.h" #include "../misc/ScaleGuiElements.cpp" #include "misc/FirebaseHelper.hpp" +#include "LevelHelpScene.h" USING_NS_CC; @@ -79,7 +80,7 @@ bool MainMenuHome::init() // } cocos2d::ui::Button *backButton = createBackButton(); - ScaleUIElement::scaleGuiElements(backButton); + ScaleUIElement::scaleGuiElements(backButton); backButton->setPosition(Vec2(origin.x + 150, origin.y + visibleSize.height - 150)); this->addChild(backButton); @@ -175,11 +176,11 @@ void MainMenuHome::bindEvents(cocos2d::Node *rootNode) if (button->getName() == "alphabet" || button->getName() == "writing" || button->getName() == "grammar") { - button->setPosition(Vec2 (buttonPosition.x, buttonPosition.y - 40)); + button->setPosition(Vec2(buttonPosition.x, buttonPosition.y - 40)); } else if (button->getName() == "map" || button->getName() == "library" || button->getName() == "shapes") { - button->setPosition(Vec2 (buttonPosition.x, buttonPosition.y - 70)); + button->setPosition(Vec2(buttonPosition.x, buttonPosition.y - 70)); } if (button->getName() == "library") @@ -203,21 +204,42 @@ void MainMenuHome::bindEvents(cocos2d::Node *rootNode) if (textTitle) { - std::string translatedString = this->currentLangUtil->translateString(textTitle->getName()); + std::string translatedString; + std::string fileName = "config/main_menu_title.json"; + bool isBilingual = localeCode != "en"; string gameName = textTitle->getName().c_str(); string mainMenuEnglishText = ""; + int engLabelOffset = isBilingual ? 0 : 50; // to remove the extra space between image and text if (gameName == "alphabet") - mainMenuEnglishText = "Alphabet"; + { + mainMenuEnglishText = readTitleFromJson(fileName, 0, false); + translatedString = readTitleFromJson(fileName, 0, isBilingual); + } else if (gameName == "shapes") - mainMenuEnglishText = "Numbers"; + { + mainMenuEnglishText = readTitleFromJson(fileName, 1, false); + translatedString = readTitleFromJson(fileName, 1, isBilingual); + } else if (gameName == "writing") - mainMenuEnglishText = "Writing"; + { + mainMenuEnglishText = readTitleFromJson(fileName, 2, false); + translatedString = readTitleFromJson(fileName, 2, isBilingual); + } else if (gameName == "library") - mainMenuEnglishText = "Library"; + { + mainMenuEnglishText = readTitleFromJson(fileName, 3, false); + translatedString = readTitleFromJson(fileName, 3, isBilingual); + } else if (gameName == "grammar") - mainMenuEnglishText = "Grammar"; + { + mainMenuEnglishText = readTitleFromJson(fileName, 4, false); + translatedString = readTitleFromJson(fileName, 4, isBilingual); + } else if (gameName == "map") - mainMenuEnglishText = "Map"; + { + mainMenuEnglishText = readTitleFromJson(fileName, 5, false); + translatedString = readTitleFromJson(fileName, 5, isBilingual); + } textTitle->setText(mainMenuEnglishText); textTitle->setTextHorizontalAlignment(TextHAlignment::CENTER); @@ -232,24 +254,44 @@ void MainMenuHome::bindEvents(cocos2d::Node *rootNode) if (gameName == "alphabet" || gameName == "writing" || gameName == "grammar") { - textTitle->setPosition(Vec2 (englishTextPosition.x, englishTextPosition.y + 130)); + textTitle->setPosition(Vec2(englishTextPosition.x, englishTextPosition.y + 130 - engLabelOffset)); } else if (gameName == "map" || gameName == "library" || gameName == "shapes") { - textTitle->setPosition(Vec2 (englishTextPosition.x, englishTextPosition.y + 100)); + textTitle->setPosition(Vec2(englishTextPosition.x, englishTextPosition.y + 100 - engLabelOffset)); } - - Label *mainMenuHindiText = Label::createWithSystemFont(translatedString, "arial", 70); - mainMenuHindiText->setPosition(Vec2(textTitle->getPositionX(), textTitle->getPositionY() - 90)); - mainMenuHindiText->setColor(Color3B::WHITE); - this->addChild(mainMenuHindiText); + if (isBilingual) + { + Label *mainMenuLocaleText = Label::createWithSystemFont(translatedString, "arial", 70); + mainMenuLocaleText->setPosition(Vec2(textTitle->getPositionX(), textTitle->getPositionY() - 90)); + mainMenuLocaleText->setColor(Color3B::WHITE); + this->addChild(mainMenuLocaleText); + } } } } } } +std::string MainMenuHome::readTitleFromJson(std::string fileName, int pos, bool isBilingual) +{ + std::string contents = FileUtils::getInstance()->getStringFromFile(fileName); + rapidjson::Document mapPlaces; + if (!mapPlaces.Parse<0>(contents.c_str()).HasParseError()) // to validate the structure of JSON file + { + if (isBilingual) + { + const rapidjson::Value &placeNameLoc = mapPlaces[localeCode.c_str()]; // get the list of locale specific strings + assert(placeNameLoc.IsArray()); + return placeNameLoc[pos].GetString(); + } + const rapidjson::Value &placeNameEng = mapPlaces["en"]; + assert(placeNameEng.IsArray()); + return placeNameEng[pos].GetString(); + } +} + void MainMenuHome::mainMenuSelected(Ref *pSender, ui::Widget::TouchEventType eEventType) { cocos2d::ui::Button *clickedButton = dynamic_cast(pSender); diff --git a/goa/Classes/menu/MainMenuHome.hpp b/goa/Classes/menu/MainMenuHome.hpp index 166ea1eaa..53f13a24d 100644 --- a/goa/Classes/menu/MainMenuHome.hpp +++ b/goa/Classes/menu/MainMenuHome.hpp @@ -29,42 +29,42 @@ #define MAIN_HOME_NUMBER_OF_BUTTONS_ROWS 2 #define MAIN_HOME_NUMBER_OF_BUTTONS_COLS 6 - class MenuContext; -typedef std::map map_type; +typedef std::map map_type; -class MainMenuHome : public cocos2d::Node { +class MainMenuHome : public cocos2d::Node +{ public: - static cocos2d::Scene* createScene(); + static cocos2d::Scene *createScene(); + static std::string readTitleFromJson(std::string fileName, int pos, bool isBilingual); CREATE_FUNC(MainMenuHome); - -CC_CONSTRUCTOR_ACCESS: - virtual bool init(); + + CC_CONSTRUCTOR_ACCESS : virtual bool init(); MainMenuHome(); virtual ~MainMenuHome(); - + protected: - MenuContext* menuContext; - cocos2d::LayerColor* _greyLayer; + MenuContext *menuContext; + cocos2d::LayerColor *_greyLayer; std::string _gameNameToNavigate; float _leftMostX = 0.0f; float _rightMostX = 0.0f; - LangUtil* currentLangUtil; - + LangUtil *currentLangUtil; + void addGreyLayer(); bool greyLayerTouched(cocos2d::Touch *touch, cocos2d::Event *event); void bindEvents(cocos2d::Node *rootNode); - void mainMenuSelected(cocos2d::Ref* pSender, cocos2d::ui::Widget::TouchEventType eEventType); - void mainMenuMapSelected(cocos2d::Ref* pSender, cocos2d::ui::Widget::TouchEventType eEventType); + void mainMenuSelected(cocos2d::Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); + void mainMenuMapSelected(cocos2d::Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); void transition(float dt); void transitionToMap(float dt); - - cocos2d::ui::Button* createButton(); + + cocos2d::ui::Button *createButton(); void storyTransition(float dt); - void storySelected(cocos2d::Ref* pSender, cocos2d::ui::Widget::TouchEventType eEventType); - cocos2d::ui::Button* createBackButton(); - void backButtonPressed(cocos2d::Ref* pSender, cocos2d::ui::Widget::TouchEventType eEventType); + void storySelected(cocos2d::Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); + cocos2d::ui::Button *createBackButton(); + void backButtonPressed(cocos2d::Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); }; #endif /* MainMenuHome_hpp */ diff --git a/goa/Classes/menu/MapScene.cpp b/goa/Classes/menu/MapScene.cpp index 3e34bd658..543d45a74 100644 --- a/goa/Classes/menu/MapScene.cpp +++ b/goa/Classes/menu/MapScene.cpp @@ -6,7 +6,6 @@ // // - #include "MapScene.h" #include "../menu/LevelHelpScene.h" #include "../menu/LevelHelpOverlay.h" @@ -20,46 +19,48 @@ const std::map MapScene::levelToGameNameMap = MapScene USING_NS_CC; -Scene* MapScene::createScene() +Scene *MapScene::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); - + // 'layer' is an autorelease object auto layer = MapScene::create(); - + layer->menuContext = MenuContext::create(layer, MapScene::gameName()); scene->addChild(layer->menuContext, 2); - - + std::string currentLevelStr; localStorageGetItem(MapScene::gameName() + CURRENT_LEVEL, ¤tLevelStr); - - if(currentLevelStr.empty()) { + + if (currentLevelStr.empty()) + { std::string defaultLevel = "1"; localStorageSetItem(MapScene::gameName() + CURRENT_LEVEL, defaultLevel); layer->unlockLevel = 1; } localStorageGetItem(MapScene::gameName() + CURRENT_LEVEL, ¤tLevelStr); - - if(!currentLevelStr.empty()) { - layer->menuContext->setCurrentLevel(std::atoi( currentLevelStr.c_str())); + + if (!currentLevelStr.empty()) + { + layer->menuContext->setCurrentLevel(std::atoi(currentLevelStr.c_str())); layer->unlockLevel = std::atoi(currentLevelStr.c_str()); } - + layer->loadMap(); // add layer as a child to scene scene->addChild(layer); - + // return the scene - + return scene; } -MapScene* MapScene::create() +MapScene *MapScene::create() { - MapScene* mapLayer = new (std::nothrow) MapScene(); - if(mapLayer && mapLayer->init()) { + MapScene *mapLayer = new (std::nothrow) MapScene(); + if (mapLayer && mapLayer->init()) + { mapLayer->autorelease(); return mapLayer; } @@ -67,123 +68,142 @@ MapScene* MapScene::create() return nullptr; } - -MapScene::MapScene(): -menuContext(nullptr), -unlockLevel(0) +MapScene::MapScene() : menuContext(nullptr), + unlockLevel(0) { } -MapScene::~MapScene() { +MapScene::~MapScene() +{ } bool MapScene::init() { ////////////////////////////// // 1. super init first - if ( !Layer::init() ) + if (!Layer::init()) { return false; } - -// FileUtils::getInstance()->addSearchPath("res/map"); - + + // FileUtils::getInstance()->addSearchPath("res/map"); + this->currentLangUtil = LangUtil::getInstance(); - - gameNameToLevelMap.insert({CAMP,"1"}); - gameNameToLevelMap.insert({FARMHOUSE,"2"}); - gameNameToLevelMap.insert({MININGBG,"3"}); - gameNameToLevelMap.insert({CITY1,"4"}); - gameNameToLevelMap.insert({CITY2,"5"}); - gameNameToLevelMap.insert({CITY3,"6"}); - gameNameToLevelMap.insert({CITY4,"7"}); - gameNameToLevelMap.insert({CITY5,"8"}); - + gameNameToLevelMap.insert({CAMP, "1"}); + gameNameToLevelMap.insert({FARMHOUSE, "2"}); + gameNameToLevelMap.insert({MININGBG, "3"}); + gameNameToLevelMap.insert({CITY1, "4"}); + gameNameToLevelMap.insert({CITY2, "5"}); + gameNameToLevelMap.insert({CITY3, "6"}); + gameNameToLevelMap.insert({CITY4, "7"}); + gameNameToLevelMap.insert({CITY5, "8"}); + return true; } - -void MapScene::loadMap() { +void MapScene::loadMap() +{ Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); - + Node *rootNode = CSLoader::createNode(MAP_FILE); this->addChild(rootNode); this->processChildNodes(rootNode); - cocos2d::ui::Button* backButton = createBackButton(); - ScaleUIElement::scaleGuiElements(backButton); - + cocos2d::ui::Button *backButton = createBackButton(); + ScaleUIElement::scaleGuiElements(backButton); + backButton->setPosition(Vec2(origin.x + 150, origin.y + visibleSize.height - 150)); this->addChild(backButton); } - -void MapScene::processChildNodes(cocos2d::Node *rootNode) { +void MapScene::processChildNodes(cocos2d::Node *rootNode) +{ //iterate thru all children auto children = rootNode->getChildren(); - Node* mainLayer = NULL; - for (std::vector::iterator it = children.begin() ; it != children.end(); ++it) { - cocos2d::Node* node = *it; + Node *mainLayer = NULL; + for (std::vector::iterator it = children.begin(); it != children.end(); ++it) + { + cocos2d::Node *node = *it; //based on custom data create layers - cocostudio::ComExtensionData* data = (cocostudio::ComExtensionData*)node->getComponent("ComExtensionData"); - if(data != NULL) { + cocostudio::ComExtensionData *data = (cocostudio::ComExtensionData *)node->getComponent("ComExtensionData"); + if (data != NULL) + { CCLOG("%s", data->getCustomProperty().c_str()); - - if(data->getCustomProperty() == MAIN_LAYER) + + if (data->getCustomProperty() == MAIN_LAYER) { mainLayer = node; } } } - + assert(mainLayer != NULL); //iterate thru all children auto mapChildren = mainLayer->getChildren(); - for (std::vector::iterator it = mapChildren.begin() ; it != mapChildren.end(); ++it) { - cocos2d::Node* node = *it; - - - - cocostudio::ComExtensionData* data = (cocostudio::ComExtensionData*)node->getComponent("ComExtensionData"); - if(data != NULL && !data->getCustomProperty().empty()) { + for (std::vector::iterator it = mapChildren.begin(); it != mapChildren.end(); ++it) + { + cocos2d::Node *node = *it; + + cocostudio::ComExtensionData *data = (cocostudio::ComExtensionData *)node->getComponent("ComExtensionData"); + if (data != NULL && !data->getCustomProperty().empty()) + { std::unordered_map attributes = RPGConfig::parseUserData(data->getCustomProperty()); - - std::unordered_map::const_iterator it = attributes.find("text"); - - std::unordered_map::const_iterator itNextScene = attributes.find("nextScene"); - - if ( it != attributes.end() ) { + + std::unordered_map::const_iterator it = attributes.find("text"); + + std::unordered_map::const_iterator itNextScene = attributes.find("nextScene"); + + if (it != attributes.end()) + { // process text - if (it->first.compare("text") == 0) { + if (it->first.compare("text") == 0) + { std::string lName = node->getName(); std::string englishName = ""; - if (lName.compare("City1") == 0) { - lName = "बेंगलुरु"; // Bengaluru - englishName = "Bengaluru"; - } else if (lName.compare("City2") == 0) { - lName = "लॉस एंजेलिस";// Los Angeles - englishName = "Los Angeles"; - } else if (lName.compare("City3") == 0) { - lName = "ह्यूस्टन"; // Houston - englishName = "Houston"; - } else if (lName.compare("city4") == 0) { - lName = "लंडन"; // London - englishName = "London"; - } else if (lName.compare("City5") == 0) { - lName = "डार एस सलाम"; // Dar es Salaam - englishName = "Dar es Salaam"; - } else if (lName.compare("Camp") == 0) { - lName = "कैंप"; // Camp - englishName = "Camp"; - } else if (lName.compare("Farm House") == 0) { - lName ="फार्म हाउस"; // Farm House - englishName = "Farm House"; - } else if (lName.compare("Mining Town") == 0) { - lName ="खनन शहर"; // Mining Town - englishName = "Mining Town"; - } + bool isBilingual = localeCode != "en"; + std::string fileName = "config/map_places.json"; + if (lName.compare("City1") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 0, false); + lName = MainMenuHome::readTitleFromJson(fileName, 0, isBilingual); + } + else if (lName.compare("City2") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 1, false); + lName = MainMenuHome::readTitleFromJson(fileName, 1, isBilingual); + } + else if (lName.compare("City3") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 2, false); + lName = MainMenuHome::readTitleFromJson(fileName, 2, isBilingual); + } + else if (lName.compare("city4") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 3, false); + lName = MainMenuHome::readTitleFromJson(fileName, 3, isBilingual); + } + else if (lName.compare("City5") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 4, false); + lName = MainMenuHome::readTitleFromJson(fileName, 4, isBilingual); + } + else if (lName.compare("Camp") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 5, false); + lName = MainMenuHome::readTitleFromJson(fileName, 5, isBilingual); + } + else if (lName.compare("Farm House") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 6, false); + lName = MainMenuHome::readTitleFromJson(fileName, 6, isBilingual); + } + else if (lName.compare("Mining Town") == 0) + { + englishName = MainMenuHome::readTitleFromJson(fileName, 7, false); + lName = MainMenuHome::readTitleFromJson(fileName, 7, isBilingual); + } /* * Make the text of the map section @@ -192,89 +212,93 @@ void MapScene::processChildNodes(cocos2d::Node *rootNode) { */ std::string mapText = this->currentLangUtil->translateString(lName); node->setPosition(Vec2(node->getPosition().x, node->getPosition().y + 40)); - - cocos2d::Label* label = Label::createWithSystemFont(mapText, "arial", 70); - label->setPosition(Vec2(node->getPosition().x, node->getPosition().y - 60)); - label->setColor(Color3B(128, 64, 0)); - mainLayer->addChild(label); + + if (isBilingual) + { + cocos2d::Label *label = Label::createWithSystemFont(mapText, "arial", 70); + label->setPosition(Vec2(node->getPosition().x, node->getPosition().y - 60)); + label->setColor(Color3B(128, 64, 0)); + mainLayer->addChild(label); + } // Add English Label above the hindi text - cocos2d::Label* englishLabel = Label::createWithTTF(englishName, "fonts/arial.ttf", 70); + cocos2d::Label *englishLabel = Label::createWithTTF(englishName, "fonts/arial.ttf", 70); englishLabel->setPosition(Vec2(node->getPosition().x, node->getPosition().y + 15)); englishLabel->setColor(Color3B(128, 64, 0)); mainLayer->addChild(englishLabel); - } } - - if(itNextScene != attributes.end()) + + if (itNextScene != attributes.end()) { //bind events - cocos2d::ui::Button* button = dynamic_cast(node); - if(button) { + cocos2d::ui::Button *button = dynamic_cast(node); + if (button) + { button->setPosition(Vec2(button->getPosition().x, button->getPosition().y + 30)); button->setScale(0.95); button->setName(itNextScene->second); button->setTitleText(""); button->addTouchEventListener(CC_CALLBACK_2(MapScene::islandSelected, this)); std::string buttonLevel = gameNameToLevelMap.at(button->getName()); - if(!buttonLevel.empty()) { + if (!buttonLevel.empty()) + { std::string unlockStr; localStorageGetItem(".unlock", &unlockStr); bool lockAll = false; - if (unlockStr.empty() || unlockStr == "1") { + if (unlockStr.empty() || unlockStr == "1") + { lockAll = true; } - // unlocked all games in Map Scene + // unlocked all games in Map Scene button->setEnabled(true); - } else { + } + else + { button->setEnabled(false); - } + } } } - } - } - } - -void MapScene::islandSelected(Ref* pSender, ui::Widget::TouchEventType eEventType) +void MapScene::islandSelected(Ref *pSender, ui::Widget::TouchEventType eEventType) { - cocos2d::ui::Button* clickedButton = dynamic_cast(pSender); - switch (eEventType) { - case ui::Widget::TouchEventType::BEGAN: - { - clickedButton->setHighlighted(true); - break; - } - case ui::Widget::TouchEventType::MOVED: - break; - case ui::Widget::TouchEventType::ENDED: + cocos2d::ui::Button *clickedButton = dynamic_cast(pSender); + switch (eEventType) + { + case ui::Widget::TouchEventType::BEGAN: + { + clickedButton->setHighlighted(true); + break; + } + case ui::Widget::TouchEventType::MOVED: + break; + case ui::Widget::TouchEventType::ENDED: + { + clickedButton->setEnabled(false); + if (gameNameToLevelMap.count(clickedButton->getName()) == 1) { - clickedButton->setEnabled(false); - if(gameNameToLevelMap.count(clickedButton->getName()) == 1) - { - std::string level = gameNameToLevelMap.at(clickedButton->getName()); - localStorageSetItem("map.currentLevel", level); - } - Director::getInstance()->replaceScene(LevelHelpScene::createScene(clickedButton->getName().c_str())); - break; + std::string level = gameNameToLevelMap.at(clickedButton->getName()); + localStorageSetItem("map.currentLevel", level); } - - case ui::Widget::TouchEventType::CANCELED: - break; - default: - break; + Director::getInstance()->replaceScene(LevelHelpScene::createScene(clickedButton->getName().c_str())); + break; + } + + case ui::Widget::TouchEventType::CANCELED: + break; + default: + break; } - } -const std::map MapScene::createLevelToGameName() { - +const std::map MapScene::createLevelToGameName() +{ + std::map levelToGameNameMaps; - + levelToGameNameMaps.insert(std::make_pair("1", CAMP)); levelToGameNameMaps.insert(std::make_pair("2", FARMHOUSE)); levelToGameNameMaps.insert(std::make_pair("3", MININGBG)); @@ -283,30 +307,31 @@ const std::map MapScene::createLevelToGameName() { levelToGameNameMaps.insert(std::make_pair("6", CITY3)); levelToGameNameMaps.insert(std::make_pair("7", CITY4)); levelToGameNameMaps.insert(std::make_pair("8", CITY5)); - - + return levelToGameNameMaps; } -cocos2d::ui::Button* MapScene::createBackButton() { - +cocos2d::ui::Button *MapScene::createBackButton() +{ + std::string buttonNormalIcon = "menu/back.png"; std::string buttonPressedIcon = buttonNormalIcon; - cocos2d::ui::Button* button = ui::Button::create(); + cocos2d::ui::Button *button = ui::Button::create(); std::string buttonDisabledIcon = buttonNormalIcon; - if(buttonDisabledIcon.find(".png") != std::string::npos) { + if (buttonDisabledIcon.find(".png") != std::string::npos) + { buttonDisabledIcon = buttonDisabledIcon.insert(buttonDisabledIcon.find(".png"), "_disabled"); } - + button->loadTextureNormal(buttonNormalIcon); button->loadTexturePressed(buttonPressedIcon); button->loadTextureDisabled(buttonDisabledIcon); button->addTouchEventListener(CC_CALLBACK_2(MapScene::backButtonPressed, this)); - + return button; } -void MapScene::backButtonPressed(Ref* pSender, ui::Widget::TouchEventType eEventType) +void MapScene::backButtonPressed(Ref *pSender, ui::Widget::TouchEventType eEventType) { Director::getInstance()->replaceScene(MainMenuHome::createScene()); } diff --git a/goa/Classes/menu/MenuContext.cpp b/goa/Classes/menu/MenuContext.cpp index 9f3c1c2c6..bc708f70d 100644 --- a/goa/Classes/menu/MenuContext.cpp +++ b/goa/Classes/menu/MenuContext.cpp @@ -150,7 +150,7 @@ bool MenuContext::init(Node* main) { Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); - _menuButton = Button::create("menu/menu.png", "menu/menu.png", "menu/menu.png", Widget::TextureResType::LOCAL); + _menuButton = Button::create("menu/menu_" + localeCode + ".png", "menu/menu_" + localeCode + ".png", "menu/menu_" + localeCode + ".png", Widget::TextureResType::LOCAL); _menuButton->addTouchEventListener(CC_CALLBACK_2(MenuContext::expandMenu, this)); if(gameName == "menu") { _menuButton->setPosition(Vec2((NUMBER_OF_BUTTONS_COLS - 0.5) * visibleSize.width / NUMBER_OF_BUTTONS_COLS, visibleSize.height + 50 - (0.5) * (visibleSize.height + 50) / (NUMBER_OF_BUTTONS_ROWS + 1))); @@ -729,18 +729,18 @@ void MenuContext::increasePoints(int points) { } void MenuContext::happyFace() { - _menuButton->loadTextureNormal("menu/happy.png"); + _menuButton->loadTextureNormal("menu/happy_" + localeCode +".png"); ScaleUIElement::scaleGuiElements(_menuButton); } void MenuContext::sadFace() { - _menuButton->loadTextureNormal("menu/frown.png"); + _menuButton->loadTextureNormal("menu/frown_" + localeCode +".png"); ScaleUIElement::scaleGuiElements(_menuButton); } void MenuContext::normalFace() { - _menuButton->loadTextureNormal("menu/menu.png"); + _menuButton->loadTextureNormal("menu/menu_" + localeCode +".png"); ScaleUIElement::scaleGuiElements(_menuButton); } diff --git a/goa/Classes/menu/ScrollableGameMapScene.cpp b/goa/Classes/menu/ScrollableGameMapScene.cpp index 0542ec84c..07657fdd4 100644 --- a/goa/Classes/menu/ScrollableGameMapScene.cpp +++ b/goa/Classes/menu/ScrollableGameMapScene.cpp @@ -65,7 +65,6 @@ #include "../menu/MainMenuHome.hpp" #include "../misc/ScaleGuiElements.cpp" - USING_NS_CC; static const bool KIOSK = true; const static string delimiter = "$#$"; @@ -76,20 +75,19 @@ std::map ScrollableGameMapScene::BUTTON_TEXT_COLO {"writing", Color3B(0x27, 0x43, 0x48)}, {"words", Color3B(0x58, 0x39, 0x41)}, {"maths", Color3B(0x47, 0x11, 0x11)}, - {"grammar", Color3B(0xC4, 0xC4, 0x92)} -}; + {"grammar", Color3B(0xC4, 0xC4, 0x92)}}; -ScrollableGameMapScene::ScrollableGameMapScene(): _greyLayer(NULL),_gameNameToNavigate(""), _subGameMenuToNavigate("") +ScrollableGameMapScene::ScrollableGameMapScene() : _greyLayer(NULL), _gameNameToNavigate(""), _subGameMenuToNavigate("") { } -ScrollableGameMapScene::~ScrollableGameMapScene() { - +ScrollableGameMapScene::~ScrollableGameMapScene() +{ } - -ScrollableGameMapScene* ScrollableGameMapScene::create(std::string subGameMenuName) { - ScrollableGameMapScene* sGameMapScene = new (std::nothrow) ScrollableGameMapScene(); +ScrollableGameMapScene *ScrollableGameMapScene::create(std::string subGameMenuName) +{ + ScrollableGameMapScene *sGameMapScene = new (std::nothrow) ScrollableGameMapScene(); if (sGameMapScene && sGameMapScene->init(subGameMenuName)) { sGameMapScene->autorelease(); @@ -99,7 +97,8 @@ ScrollableGameMapScene* ScrollableGameMapScene::create(std::string subGameMenuNa return nullptr; } -Scene* ScrollableGameMapScene::createSceneWithSubGames(std::string gameMenuName) { +Scene *ScrollableGameMapScene::createSceneWithSubGames(std::string gameMenuName) +{ auto scene = Scene::create(); auto layer = ScrollableGameMapScene::create(gameMenuName); scene->addChild(layer); @@ -107,11 +106,11 @@ Scene* ScrollableGameMapScene::createSceneWithSubGames(std::string gameMenuName) layer->_subGameMenuToNavigate = gameMenuName; scene->addChild(layer->menuContext); return scene; - } -Scene* ScrollableGameMapScene::createScene() { - auto scene = Scene::create(); +Scene *ScrollableGameMapScene::createScene() +{ + auto scene = Scene::create(); auto layer = ScrollableGameMapScene::create(""); scene->addChild(layer); layer->menuContext = MenuContext::create(layer, "menu"); @@ -119,135 +118,138 @@ Scene* ScrollableGameMapScene::createScene() { return scene; } - std::vector ScrollableGameMapScene::split(std::string s, char delim) { std::vector elems; std::stringstream ss; ss.str(s); std::string item; - while (getline(ss, item, delim)) { + while (getline(ss, item, delim)) + { elems.push_back(item); } return elems; } - -void ScrollableGameMapScene::addGreyLayer() { - if(!_greyLayer) { +void ScrollableGameMapScene::addGreyLayer() +{ + if (!_greyLayer) + { //later customize and add image Size visibleSize = Director::getInstance()->getVisibleSize(); _greyLayer = LayerGradient::create(Color4B(0, 0, 0, 100), Color4B(15, 15, 15, 100)); _greyLayer->setContentSize(visibleSize); addChild(_greyLayer, 3); - - Node* animationNode = CSLoader::createNode("loading/animation_4.csb"); - animationNode->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); - animationNode->setAnchorPoint(Vec2(0.5,0.5)); - _greyLayer->addChild(animationNode,1); - - cocostudio::timeline::ActionTimeline * _animationTimeLine = CSLoader::createTimeline("loading/animation_4.csb"); + + Node *animationNode = CSLoader::createNode("loading/animation_4.csb"); + animationNode->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2)); + animationNode->setAnchorPoint(Vec2(0.5, 0.5)); + _greyLayer->addChild(animationNode, 1); + + cocostudio::timeline::ActionTimeline *_animationTimeLine = CSLoader::createTimeline("loading/animation_4.csb"); animationNode->runAction(_animationTimeLine); _animationTimeLine->gotoFrameAndPlay(0); - auto _listener = EventListenerTouchOneByOne::create(); _listener->setSwallowTouches(true); _listener->onTouchBegan = CC_CALLBACK_2(ScrollableGameMapScene::greyLayerTouched, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(_listener, _greyLayer); - } } - bool ScrollableGameMapScene::greyLayerTouched(Touch *touch, Event *event) { return true; } - -void ScrollableGameMapScene::onExitTransitionDidStart() { +void ScrollableGameMapScene::onExitTransitionDidStart() +{ Node::onExitTransitionDidStart(); CCLOG("ScrollableGameMapScene::onExitTransitionDidStart"); - if(_greyLayer != NULL) { + if (_greyLayer != NULL) + { Director::getInstance()->getEventDispatcher()->removeEventListenersForTarget(_greyLayer); } - } - -bool ScrollableGameMapScene::init(std::string subGameMenuName) { - if(!Node::init()) +bool ScrollableGameMapScene::init(std::string subGameMenuName) +{ + if (!Node::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); - if(!subGameMenuName.empty()) { + if (!subGameMenuName.empty()) + { _subGameMenuToNavigate = subGameMenuName; } - -// auto spriteCache = SpriteFrameCache::getInstance(); -// spriteCache->addSpriteFramesWithFile("gamemap/gamemap/gamemap.plist"); - + // auto spriteCache = SpriteFrameCache::getInstance(); + // spriteCache->addSpriteFramesWithFile("gamemap/gamemap/gamemap.plist"); + std::string mainMenuHomeSelectedItem; localStorageGetItem("mainMenuHomeSelectedItem", &mainMenuHomeSelectedItem); - if(!mainMenuHomeSelectedItem.empty()) { + if (!mainMenuHomeSelectedItem.empty()) + { _subGameMenuToNavigate = mainMenuHomeSelectedItem; } - + std::string configDir = "config/"; - std::string gameMapJsonFile = _subGameMenuToNavigate + "_game_map.json"; + std::string gameMapJsonFile = _subGameMenuToNavigate + "_game_map_" + localeCode + ".json"; configDir.append(gameMapJsonFile); - + std::string contents = ""; - - if(FileUtils::getInstance()->isFileExist(configDir)) { + + if (FileUtils::getInstance()->isFileExist(configDir)) + { contents = FileUtils::getInstance()->getStringFromFile(configDir); - } else { + } + else + { contents = FileUtils::getInstance()->getStringFromFile("config/game_map.json"); } - - + std::string backGroundMap = "backgoundmap/backgoundmap_background.csb"; std::string mainGroundMap = "backgoundmap/backgoundmap_mainground.csb"; std::string foreGroundMap = "backgoundmap/backgoundmap_foreground.csb"; std::string frontGroundMap = "backgoundmap/backgoundmap_frontground.csb"; - - std::string tBackGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_background.csb"; - std::string tMainGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_mainground.csb"; - std::string tForeGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_foreground.csb"; - std::string tFrontGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_frontground.csb"; - - - if(FileUtils::getInstance()->isFileExist(tBackGroundMap)) { + std::string tBackGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_background.csb"; + std::string tMainGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_mainground.csb"; + std::string tForeGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_foreground.csb"; + std::string tFrontGroundMap = _subGameMenuToNavigate + "/" + _subGameMenuToNavigate + "_frontground.csb"; + + if (FileUtils::getInstance()->isFileExist(tBackGroundMap)) + { backGroundMap = tBackGroundMap; } - if(FileUtils::getInstance()->isFileExist(tMainGroundMap)) { + if (FileUtils::getInstance()->isFileExist(tMainGroundMap)) + { mainGroundMap = tMainGroundMap; } - if(FileUtils::getInstance()->isFileExist(tForeGroundMap)) { + if (FileUtils::getInstance()->isFileExist(tForeGroundMap)) + { foreGroundMap = tForeGroundMap; } - if(FileUtils::getInstance()->isFileExist(tFrontGroundMap)) { + if (FileUtils::getInstance()->isFileExist(tFrontGroundMap)) + { frontGroundMap = tFrontGroundMap; } - cocos2d::ui::Button* backButton = createBackButton(); - ScaleUIElement::scaleGuiElements(backButton); - - + cocos2d::ui::Button *backButton = createBackButton(); + ScaleUIElement::scaleGuiElements(backButton); + rapidjson::Document d; - - if (false == d.Parse<0>(contents.c_str()).HasParseError()) { + + if (false == d.Parse<0>(contents.c_str()).HasParseError()) + { const int numRows = NUMBER_OF_BUTTONS_ROWS; const int numCols = NUMBER_OF_BUTTONS_COLS; - - const int numberOfPages = ceil((float) (d.Size()) / (numRows * numCols)); + + const int numberOfPages = ceil((float)(d.Size()) / (numRows * numCols)); std::string unlockedGamesStr; localStorageGetItem("unlockedGames", &unlockedGamesStr); @@ -257,18 +259,22 @@ bool ScrollableGameMapScene::init(std::string subGameMenuName) { std::string unlockStr; localStorageGetItem(".unlock", &unlockStr); bool lockAll = !KIOSK; -// if (unlockStr.empty() || unlockStr == "1") { -// lockAll = true; -// } + // if (unlockStr.empty() || unlockStr == "1") { + // lockAll = true; + // } std::vector orderedGameIndexes; int unlockPosition = 0; - for (int dIndex = 0; dIndex < d.Size(); dIndex++) { - const rapidjson::Value& game = d[dIndex]; + for (int dIndex = 0; dIndex < d.Size(); dIndex++) + { + const rapidjson::Value &game = d[dIndex]; auto gameName = game["name"].GetString(); - if((game.HasMember("unlock") && game["unlock"].GetBool()) || (doc.IsObject() && doc.HasMember(gameName))) { + if ((game.HasMember("unlock") && game["unlock"].GetBool()) || (doc.IsObject() && doc.HasMember(gameName))) + { orderedGameIndexes.insert(orderedGameIndexes.begin() + unlockPosition, dIndex); unlockPosition++; - } else { + } + else + { orderedGameIndexes.push_back(dIndex); } } @@ -286,7 +292,7 @@ bool ScrollableGameMapScene::init(std::string subGameMenuName) { node = CSLoader::createNode(frontGroundMap); _parallax->addChild(node, -1, Vec2(0.8, 0.8), Vec2::ZERO); _pageView->addChild(_parallax); - + auto topBarGames = getTopBarGames(); topBarGames.insert(topBarGames.begin(), "story-catalogue"); std::map topBarGamesIndexes = {{"story-catalogue", 0}}; @@ -297,19 +303,20 @@ bool ScrollableGameMapScene::init(std::string subGameMenuName) { _pageView->setDirection(cocos2d::ui::ScrollView::Direction::BOTH); _pageView->setInnerContainerSize(Size(visibleSize.width * numberOfPages, visibleSize.height)); - for(int k = 0; k < numberOfPages; k++) { + for (int k = 0; k < numberOfPages; k++) + { auto page = ui::Widget::create(); page->setContentSize(Size(visibleSize.width, visibleSize.height)); _pageView->addPage(page); -// Texture2D *texture = Director::getInstance()->getTextureCache()->addImage("black_concrete.png"); -// Texture2D::TexParams tp = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT}; -// texture->setTexParameters(&tp); -// Sprite *backgroundSpriteMapTile = Sprite::createWithTexture(texture, Rect(0, 0, visibleSize.width, visibleSize.height)); -// backgroundSpriteMapTile->setPosition(Vec2( visibleSize.width/2, visibleSize.height/2 )); -// page->addChild(backgroundSpriteMapTile); - -// auto node = CSLoader::createNode("gamemap/gamemap_bg.csb"); -// page->addChild(node); + // Texture2D *texture = Director::getInstance()->getTextureCache()->addImage("black_concrete.png"); + // Texture2D::TexParams tp = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT}; + // texture->setTexParameters(&tp); + // Sprite *backgroundSpriteMapTile = Sprite::createWithTexture(texture, Rect(0, 0, visibleSize.width, visibleSize.height)); + // backgroundSpriteMapTile->setPosition(Vec2( visibleSize.width/2, visibleSize.height/2 )); + // page->addChild(backgroundSpriteMapTile); + + // auto node = CSLoader::createNode("gamemap/gamemap_bg.csb"); + // page->addChild(node); /* * Add a scroll view for different sections @@ -322,32 +329,38 @@ bool ScrollableGameMapScene::init(std::string subGameMenuName) { ui::ScrollView *scrollView = ui::ScrollView::create(); scrollView->setDirection(ui::ScrollView::Direction::VERTICAL); scrollView->setContentSize(visibleSize); - scrollView->setInnerContainerSize (Size(visibleSize.width - 700, visibleSize.height + difference)); + scrollView->setInnerContainerSize(Size(visibleSize.width - 700, visibleSize.height + difference)); scrollView->setTouchEnabled(true); scrollView->setBounceEnabled(true); scrollView->setAnchorPoint(_pageView->getAnchorPoint()); scrollView->setPosition(Vec2(0, difference)); scrollView->setScrollBarEnabled(true); - - if(k == 0) { + + if (k == 0) + { backButton->setPosition(Vec2((0.5) * visibleSize.width / numCols, visibleSize.height + 50 - (0.5) * (visibleSize.height + 50) / (NUMBER_OF_BUTTONS_ROWS + 1))); } page->addChild(scrollView); - for (int i = 0; i < numRows; i++) { - for (int j = 0; j < numCols; j++) { - if(index < orderedGameIndexes.size()) { + for (int i = 0; i < numRows; i++) + { + for (int j = 0; j < numCols; j++) + { + if (index < orderedGameIndexes.size()) + { int dIndex = orderedGameIndexes[index]; - const rapidjson::Value& game = d[dIndex]; + const rapidjson::Value &game = d[dIndex]; auto gameName = game["name"].GetString(); - bool active = !lockAll || (game.HasMember("unlock") && game["unlock"].GetBool()) || (doc.IsObject() && doc.HasMember(gameName)); + bool active = !lockAll || (game.HasMember("unlock") && game["unlock"].GetBool()) || (doc.IsObject() && doc.HasMember(gameName)); auto button = createButton(game, active); - if(button != nullptr) { + if (button != nullptr) + { latestRow = i + 1; button->setPosition(Vec2((j + 0.5) * visibleSize.width / numCols, visibleSize.height + yOffset - (i + 1.5) * ((visibleSize.height + yOffset) / (numRows + 1)))); page->addChild(button); - scrollView->addChild( button ); - if(std::find(topBarGames.begin(), topBarGames.end(), gameName) != topBarGames.end()) { + scrollView->addChild(button); + if (std::find(topBarGames.begin(), topBarGames.end(), gameName) != topBarGames.end()) + { topBarGamesIndexes[gameName] = dIndex; } } @@ -362,37 +375,37 @@ bool ScrollableGameMapScene::init(std::string subGameMenuName) { */ if (latestRow < 4) { - scrollView->setInnerContainerSize (Size(visibleSize.width - 700, visibleSize.height)); + scrollView->setInnerContainerSize(Size(visibleSize.width - 700, visibleSize.height)); scrollView->setPosition(Vec2(0, 0)); } page->addChild(backButton); } - -// for (auto it = topBarGames.begin() ; it != topBarGames.end(); ++it) { -// const rapidjson::Value& game = d[topBarGamesIndexes[*it]]; -// auto gameName = game["name"].GetString(); -// bool active = !lockAll || (game.HasMember("unlock") && game["unlock"].GetBool()) || (doc.IsObject() && doc.HasMember(gameName)); -// auto topBarButton = createButton(game, active); -// auto index = std::distance(topBarGames.begin(), it); -// topBarButton->setPosition(Vec2((index + 0.5) * visibleSize.width / numCols, visibleSize.height + yOffset - (0 + 0.5) * ((visibleSize.height + yOffset) / (numRows + 1)))); -// addChild(topBarButton); -// } + // for (auto it = topBarGames.begin() ; it != topBarGames.end(); ++it) { + // const rapidjson::Value& game = d[topBarGamesIndexes[*it]]; + // auto gameName = game["name"].GetString(); + // bool active = !lockAll || (game.HasMember("unlock") && game["unlock"].GetBool()) || (doc.IsObject() && doc.HasMember(gameName)); + // auto topBarButton = createButton(game, active); + // auto index = std::distance(topBarGames.begin(), it); + // topBarButton->setPosition(Vec2((index + 0.5) * visibleSize.width / numCols, visibleSize.height + yOffset - (0 + 0.5) * ((visibleSize.height + yOffset) / (numRows + 1)))); + // addChild(topBarButton); + // } } return true; } - -cocos2d::ui::Button* ScrollableGameMapScene::createBackButton() { +cocos2d::ui::Button *ScrollableGameMapScene::createBackButton() +{ std::string buttonNormalIcon = "menu/back.png"; std::string buttonPressedIcon = buttonNormalIcon; - cocos2d::ui::Button* button = ui::Button::create(); + cocos2d::ui::Button *button = ui::Button::create(); std::string buttonDisabledIcon = buttonNormalIcon; - if(buttonDisabledIcon.find(".png") != std::string::npos) { + if (buttonDisabledIcon.find(".png") != std::string::npos) + { buttonDisabledIcon = buttonDisabledIcon.insert(buttonDisabledIcon.find(".png"), "_disabled"); } - + button->loadTextureNormal(buttonNormalIcon); button->loadTexturePressed(buttonPressedIcon); button->loadTextureDisabled(buttonDisabledIcon); @@ -401,37 +414,40 @@ cocos2d::ui::Button* ScrollableGameMapScene::createBackButton() { return button; } -void ScrollableGameMapScene::backButtonPressed(Ref* pSender, ui::Widget::TouchEventType eEventType) +void ScrollableGameMapScene::backButtonPressed(Ref *pSender, ui::Widget::TouchEventType eEventType) { Director::getInstance()->replaceScene(MainMenuHome::createScene()); } - - - -cocos2d::ui::Button* ScrollableGameMapScene::createButton(const rapidjson::Value& gameJson, bool active) { +cocos2d::ui::Button *ScrollableGameMapScene::createButton(const rapidjson::Value &gameJson, bool active) +{ std::string ICONS = ICON_FOLDER; std::string gameName = gameJson["name"].GetString(); rapidjson::StringBuffer buffer; rapidjson::Writer writer(buffer); gameJson.Accept(writer); - const char* output = buffer.GetString(); + const char *output = buffer.GetString(); localStorageSetItem(gameName + ".json", output); - if(gameName != "dummy") { + if (gameName != "dummy") + { std::string buttonNormalIcon = gameJson["icon"].GetString(); std::string buttonPressedIcon = gameJson["cIcon"].GetString(); - cocos2d::ui::Button* button = ui::Button::create(); + cocos2d::ui::Button *button = ui::Button::create(); std::string buttonDisabledIcon = buttonNormalIcon; - if(buttonDisabledIcon.find(".png") != std::string::npos) { + if (buttonDisabledIcon.find(".png") != std::string::npos) + { buttonDisabledIcon = buttonDisabledIcon.insert(buttonDisabledIcon.find(".png"), "_disabled"); } - if(active) { + if (active) + { button->loadTextureNormal(buttonNormalIcon); button->loadTexturePressed(buttonPressedIcon); button->loadTextureDisabled(buttonDisabledIcon); button->addTouchEventListener(CC_CALLBACK_2(ScrollableGameMapScene::gameSelected, this)); - } else { + } + else + { button->loadTextureNormal(buttonDisabledIcon); button->loadTexturePressed(buttonPressedIcon); button->loadTextureDisabled(buttonNormalIcon); @@ -439,89 +455,103 @@ cocos2d::ui::Button* ScrollableGameMapScene::createButton(const rapidjson::Value } string gameTitle = gameJson["title"].GetString(); - - // splitting the string into its chanakya component - string gameTitleHindi = gameTitle.substr(0, gameTitle.find(delimiter)); - string gameTitleEnglish = gameTitle.substr(gameTitle.find(delimiter) + delimiter.size(), gameTitle.size() - 1); + string gameTitleEnglish, gameTitleLocale; + int delimPos = gameTitle.find(delimiter); + if (delimPos == -1) + { + gameTitleEnglish = gameTitle; + } + else + { + gameTitleEnglish = gameTitle.substr(delimPos + delimiter.size(), gameTitle.size() - 1); + gameTitleLocale = gameTitle.substr(0, gameTitle.find(delimiter)); + } button->setName(gameJson["name"].GetString()); button->setTitleText(LangUtil::getInstance()->translateString(gameTitleEnglish)); button->setTitleAlignment(TextHAlignment::CENTER, TextVAlignment::BOTTOM); auto titleColor = Color3B(0xFF, 0xF2, 0x00); - if(!_subGameMenuToNavigate.empty()) { + if (!_subGameMenuToNavigate.empty()) + { auto it = BUTTON_TEXT_COLOR_MAP.find(_subGameMenuToNavigate); - if (it != BUTTON_TEXT_COLOR_MAP.end()) { + if (it != BUTTON_TEXT_COLOR_MAP.end()) + { titleColor = BUTTON_TEXT_COLOR_MAP.at(_subGameMenuToNavigate); } } button->setTitleColor(titleColor); - button->setTitleFontSize(100); + button->setTitleFontSize(105); auto label = button->getTitleRenderer(); - label->setPosition(Vec2(label->getPositionX(), label->getPositionY()- 300)); + label->setPosition(Vec2(label->getPositionX(), label->getPositionY() - 300)); button->setScale(0.5); - - Label *engText = Label::createWithSystemFont(gameTitleHindi, "arial", 110); - engText->setPosition(Vec2(label->getPositionX(), label->getPositionY() - 130)); - engText->setColor(titleColor); - button->addChild(engText); + + if (delimPos != -1) + { + Label *localeText = Label::createWithSystemFont(gameTitleLocale, "arial", 105); + localeText->setPosition(Vec2(label->getPositionX(), label->getPositionY() - 130)); + localeText->setColor(titleColor); + button->addChild(localeText); + } return button; } return nullptr; } -void ScrollableGameMapScene::gameSelected(Ref* pSender, ui::Widget::TouchEventType eEventType) +void ScrollableGameMapScene::gameSelected(Ref *pSender, ui::Widget::TouchEventType eEventType) { - cocos2d::ui::Button* clickedButton = dynamic_cast(pSender); - switch (eEventType) { - case ui::Widget::TouchEventType::BEGAN: - break; - case ui::Widget::TouchEventType::MOVED: - break; - case ui::Widget::TouchEventType::ENDED: - { - addGreyLayer(); - clickedButton->setEnabled(false); - _gameNameToNavigate = clickedButton->getName(); - this->scheduleOnce(schedule_selector(ScrollableGameMapScene::transition), 1.5); - - break; - } + cocos2d::ui::Button *clickedButton = dynamic_cast(pSender); + switch (eEventType) + { + case ui::Widget::TouchEventType::BEGAN: + break; + case ui::Widget::TouchEventType::MOVED: + break; + case ui::Widget::TouchEventType::ENDED: + { + addGreyLayer(); + clickedButton->setEnabled(false); + _gameNameToNavigate = clickedButton->getName(); + this->scheduleOnce(schedule_selector(ScrollableGameMapScene::transition), 1.5); - case ui::Widget::TouchEventType::CANCELED: - break; - default: - break; + break; + } + + case ui::Widget::TouchEventType::CANCELED: + break; + default: + break; } - } -void ScrollableGameMapScene::disabledGameSelected(Ref* pSender, ui::Widget::TouchEventType eEventType) +void ScrollableGameMapScene::disabledGameSelected(Ref *pSender, ui::Widget::TouchEventType eEventType) { - cocos2d::ui::Button* clickedButton = dynamic_cast(pSender); - switch (eEventType) { - case ui::Widget::TouchEventType::ENDED: - { - auto shake = FShake::actionWithDuration(1.0f, 10.0f); - clickedButton->runAction(shake); - auto soundStr = LangUtil::getInstance()->getLang() + "/audio/disabled_game_help.ogg"; - CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(soundStr.c_str(), false); - break; - } - default: - break; + cocos2d::ui::Button *clickedButton = dynamic_cast(pSender); + switch (eEventType) + { + case ui::Widget::TouchEventType::ENDED: + { + auto shake = FShake::actionWithDuration(1.0f, 10.0f); + clickedButton->runAction(shake); + auto soundStr = LangUtil::getInstance()->getLang() + "/audio/disabled_game_help.ogg"; + CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(soundStr.c_str(), false); + break; + } + default: + break; } - } - -void ScrollableGameMapScene::transition(float dt) { +void ScrollableGameMapScene::transition(float dt) +{ nagivateToGame(_gameNameToNavigate); } -std::string ScrollableGameMapScene::parseGameConfig(std::string gameConfigStr) { +std::string ScrollableGameMapScene::parseGameConfig(std::string gameConfigStr) +{ rapidjson::Document gameConfig; std::string scriptName = ""; - if (false == gameConfig.Parse<0>(gameConfigStr.c_str()).HasParseError()) { + if (false == gameConfig.Parse<0>(gameConfigStr.c_str()).HasParseError()) + { // document is ok printf("name = %s\n", gameConfig["name"].GetString()); printf("cIcon = %s\n", gameConfig["cIcon"].GetString()); @@ -530,89 +560,108 @@ std::string ScrollableGameMapScene::parseGameConfig(std::string gameConfigStr) { printf("script = %s\n", gameConfig["script"].GetString()); localStorageSetItem("currentLaunchGameName", gameConfig["name"].GetString()); scriptName = gameConfig["script"].GetString(); - - }else{ + } + else + { // error } - - return scriptName; + return scriptName; } -std::map ScrollableGameMapScene::parseGameConfigToMap(std::string gameConfigStr) { +std::map ScrollableGameMapScene::parseGameConfigToMap(std::string gameConfigStr) +{ rapidjson::Document gameConfig; std::map returnMap; - if (false == gameConfig.Parse<0>(gameConfigStr.c_str()).HasParseError()) { + if (false == gameConfig.Parse<0>(gameConfigStr.c_str()).HasParseError()) + { // document is ok returnMap["name"] = gameConfig["name"].GetString(); returnMap["cIcon"] = gameConfig["cIcon"].GetString(); returnMap["icon"] = gameConfig["icon"].GetString(); returnMap["title"] = LangUtil::getInstance()->translateString(gameConfig["title"].GetString()); - if(gameConfig.HasMember("unlock") && gameConfig["unlock"].GetBool()) { + if (gameConfig.HasMember("unlock") && gameConfig["unlock"].GetBool()) + { returnMap["unlock"] = "true"; - } else { + } + else + { returnMap["unlock"] = "false"; } - if(gameConfig.HasMember("autoLevel") && gameConfig["autoLevel"].GetBool()) { + if (gameConfig.HasMember("autoLevel") && gameConfig["autoLevel"].GetBool()) + { returnMap["autoLevel"] = "true"; - } else { + } + else + { returnMap["autoLevel"] = "false"; } - }else{ + } + else + { // error } return returnMap; } -std::vector ScrollableGameMapScene::getTopBarGames() { +std::vector ScrollableGameMapScene::getTopBarGames() +{ std::vector topBarGames; std::string firstGame; localStorageGetItem("topBarGame.1", &firstGame); - if(!firstGame.empty()) { + if (!firstGame.empty()) + { topBarGames.push_back(firstGame); } std::string secondGame; localStorageGetItem("topBarGame.2", &secondGame); - if(!secondGame.empty()) { + if (!secondGame.empty()) + { topBarGames.push_back(secondGame); } std::string thirdGame; localStorageGetItem("topBarGame.3", &thirdGame); - if(!thirdGame.empty()) { + if (!thirdGame.empty()) + { topBarGames.push_back(thirdGame); } return topBarGames; } -void ScrollableGameMapScene::pushTopBarGame(const std::string game) { - if(game == "story-catalogue") { +void ScrollableGameMapScene::pushTopBarGame(const std::string game) +{ + if (game == "story-catalogue") + { return; } auto topBarGames = getTopBarGames(); auto shiftedGame = game; bool shouldInsert = true; - for (auto it = topBarGames.begin(); it != topBarGames.end(); ++it) { + for (auto it = topBarGames.begin(); it != topBarGames.end(); ++it) + { auto temp = *it; *it = shiftedGame; shiftedGame = temp; - if(game == shiftedGame) { + if (game == shiftedGame) + { shouldInsert = false; break; } } - if(topBarGames.size() < 3 && shouldInsert) { + if (topBarGames.size() < 3 && shouldInsert) + { topBarGames.push_back(shiftedGame); } - if(topBarGames.size() >= 1) + if (topBarGames.size() >= 1) localStorageSetItem("topBarGame.1", topBarGames[0]); - if(topBarGames.size() >= 2) + if (topBarGames.size() >= 2) localStorageSetItem("topBarGame.2", topBarGames[1]); - if(topBarGames.size() >= 3) + if (topBarGames.size() >= 3) localStorageSetItem("topBarGame.3", topBarGames[2]); } - -void ScrollableGameMapScene::nagivateToGame(std::string gameName) { +void ScrollableGameMapScene::nagivateToGame(std::string gameName) +{ pushTopBarGame(gameName); std::string gameConfig; localStorageGetItem(gameName + ".json", &gameConfig); @@ -620,52 +669,55 @@ void ScrollableGameMapScene::nagivateToGame(std::string gameName) { auto configMap = parseGameConfigToMap(gameConfig); bool autoLevel = false; auto it = configMap.find("autoLevel"); - if(it != configMap.end() && "true" == it->second) { + if (it != configMap.end() && "true" == it->second) + { autoLevel = true; } CCLOG("autoLevel %s", configMap.at("autoLevel").c_str()); localStorageSetItem("currentGame", gameName); - if(gameName == "show_bluetoothPeers") + if (gameName == "show_bluetoothPeers") { -// ScriptingCore::getInstance()->runScript("src/start/showBluetoothPeers.js"); + // ScriptingCore::getInstance()->runScript("src/start/showBluetoothPeers.js"); } - else if(gameName == "choose_character") + else if (gameName == "choose_character") { -// ScriptingCore::getInstance()->runScript("src/start/characterConfigure.js"); + // ScriptingCore::getInstance()->runScript("src/start/characterConfigure.js"); } - else if(gameName == "story-telling") + else if (gameName == "story-telling") { -// ScriptingCore::getInstance()->runScript("src/start/storytelling.js"); + // ScriptingCore::getInstance()->runScript("src/start/storytelling.js"); } - else if(gameName == "map") + else if (gameName == "map") { Director::getInstance()->replaceScene(MapScene::createScene()); } - else if(gameName == "story-catalogue") + else if (gameName == "story-catalogue") { Director::getInstance()->replaceScene(LevelHelpScene::createScene(gameName)); } - else if(autoLevel) + else if (autoLevel) { std::string progressStr; localStorageGetItem(gameName + ".level", &progressStr); - + rapidjson::Document d; - rapidjson::Document::AllocatorType& allocator = d.GetAllocator(); - if(progressStr.empty()) { + rapidjson::Document::AllocatorType &allocator = d.GetAllocator(); + if (progressStr.empty()) + { d.SetArray(); d.PushBack(0, allocator); - } else { + } + else + { d.Parse(progressStr.c_str()); } localStorageSetItem(gameName + ".currentLevel", MenuContext::to_string(d.Size())); MenuContext::launchGameFromJS(gameName); - } else + } + else { // ScriptingCore::getInstance()->runScript("src/start/menu.js"); Director::getInstance()->replaceScene(LevelMenu::createScene(gameName)); } - - } diff --git a/goa/Classes/misc/ChooseCharacter.cpp b/goa/Classes/misc/ChooseCharacter.cpp index 4ac297cd1..e3311f84f 100644 --- a/goa/Classes/misc/ChooseCharacter.cpp +++ b/goa/Classes/misc/ChooseCharacter.cpp @@ -11,29 +11,30 @@ USING_NS_CC; -Scene* ChooseCharacter::createScene(const std::string& island) +Scene *ChooseCharacter::createScene(const std::string &island) { // 'scene' is an autorelease object auto scene = Scene::create(); - + // 'layer' is an autorelease object auto layer = ChooseCharacter::create(island); - + // add layer as a child to scene scene->addChild(layer); - + layer->menuContext = MenuContext::create(layer, "ChooseCharacterScene"); scene->addChild(layer->menuContext); - + // return the scene - + return scene; } -ChooseCharacter* ChooseCharacter::create(const std::string& island) +ChooseCharacter *ChooseCharacter::create(const std::string &island) { - ChooseCharacter* chooseCharacterLayer = new (std::nothrow) ChooseCharacter(); - if(chooseCharacterLayer && chooseCharacterLayer->init(island)) { + ChooseCharacter *chooseCharacterLayer = new (std::nothrow) ChooseCharacter(); + if (chooseCharacterLayer && chooseCharacterLayer->init(island)) + { chooseCharacterLayer->autorelease(); return chooseCharacterLayer; } @@ -41,146 +42,152 @@ ChooseCharacter* ChooseCharacter::create(const std::string& island) return nullptr; } - -ChooseCharacter::ChooseCharacter(): -menuContext(nullptr) +ChooseCharacter::ChooseCharacter() : menuContext(nullptr) { } -ChooseCharacter::~ChooseCharacter() { +ChooseCharacter::~ChooseCharacter() +{ } -bool ChooseCharacter::init(const std::string& island) +bool ChooseCharacter::init(const std::string &island) { ////////////////////////////// // 1. super init first - if ( !Layer::init() ) + if (!Layer::init()) { return false; } - + this->island = island; this->load(); - + return true; } - -void ChooseCharacter::load() { +void ChooseCharacter::load() +{ Node *rootNode = CSLoader::createNode("choose/choose.csb"); this->addChild(rootNode); this->processChildNodes(rootNode); } - -void ChooseCharacter::processChildNodes(cocos2d::Node *rootNode) { +void ChooseCharacter::processChildNodes(cocos2d::Node *rootNode) +{ //iterate thru all children auto children = rootNode->getChildren(); - Node* mainLayer = NULL; - for (std::vector::iterator it = children.begin() ; it != children.end(); ++it) { - cocos2d::Node* node = *it; + Node *mainLayer = NULL; + for (std::vector::iterator it = children.begin(); it != children.end(); ++it) + { + cocos2d::Node *node = *it; CCLOG("node name %s", node->getName().c_str()); - if(node->getName().compare(MAIN_LAYER) == 0) { + if (node->getName().compare(MAIN_LAYER) == 0) + { mainLayer = node; } } - + assert(mainLayer != NULL); - - - Node* chooseText = mainLayer->getChildByName(CHOOSE_TEXT); - if(chooseText != NULL) { - cocos2d::ui::Text* chooseLabel = dynamic_cast(chooseText); - if(chooseLabel != NULL) { - std::string chooseText = LangUtil::getInstance()->translateString(CHOOSE_CHARACTER_TEXT); + + Node *chooseText = mainLayer->getChildByName(CHOOSE_TEXT); + if (chooseText != NULL) + { + cocos2d::ui::Text *chooseLabel = dynamic_cast(chooseText); + if (chooseLabel != NULL) + { + std::string chooseText = LangUtil::getInstance()->translateString(localeCode != "en" ? CHOOSE_CHARACTER_TEXT_LOC : CHOOSE_CHARACTER_TEXT_EN); chooseLabel->setString(chooseText); - chooseLabel->setFontSize(150); + chooseLabel->setFontSize(110); chooseLabel->setFontName("arial"); chooseLabel->setTextColor(Color4B::WHITE); } } - - Node* boyNode = mainLayer->getChildByName(BOY_BUTTON); - if(boyNode != NULL) { - cocos2d::ui::Button* boyButton = dynamic_cast(boyNode); - if(boyButton != NULL) { + + Node *boyNode = mainLayer->getChildByName(BOY_BUTTON); + if (boyNode != NULL) + { + cocos2d::ui::Button *boyButton = dynamic_cast(boyNode); + if (boyButton != NULL) + { boyButton->addTouchEventListener(CC_CALLBACK_2(ChooseCharacter::characterSelected, this)); } } - Node* girlNode = mainLayer->getChildByName(GIRL_BUTTON); - if(girlNode != NULL) { - cocos2d::ui::Button* girlButton = dynamic_cast(girlNode); - if(girlButton != NULL) { + Node *girlNode = mainLayer->getChildByName(GIRL_BUTTON); + if (girlNode != NULL) + { + cocos2d::ui::Button *girlButton = dynamic_cast(girlNode); + if (girlButton != NULL) + { girlButton->addTouchEventListener(CC_CALLBACK_2(ChooseCharacter::characterSelected, this)); } } - - Node* boyText = mainLayer->getChildByName(BOY_TEXT); - if(boyText != NULL) { - cocos2d::ui::Text* boyLabel = dynamic_cast(boyText); - if(boyLabel != NULL) { - std::string boyText = "लड़का"; - boyLabel->setString(boyText); - boyLabel->setFontSize(130); + Node *boyText = mainLayer->getChildByName(BOY_TEXT); + if (boyText != NULL) + { + cocos2d::ui::Text *boyLabel = dynamic_cast(boyText); + if (boyLabel != NULL) + { + boyLabel->setString(localeCode != "en" ? BOY_LABEL_TEXT_LOC : BOY_LABEL_TEXT_EN); + boyLabel->setFontSize(100); boyLabel->setFontName("arial"); boyLabel->setTextColor(Color4B::WHITE); - } } - Node* girlText = mainLayer->getChildByName(GIRL_TEXT); - if(boyText != NULL) { - cocos2d::ui::Text* girlLabel = dynamic_cast(girlText); - if(girlLabel != NULL) { - std::string girlText = "लड़की"; - girlLabel->setString(girlText); - girlLabel->setFontSize(130); + Node *girlText = mainLayer->getChildByName(GIRL_TEXT); + if (boyText != NULL) + { + cocos2d::ui::Text *girlLabel = dynamic_cast(girlText); + if (girlLabel != NULL) + { + girlLabel->setString(localeCode != "en" ? GIRL_LABEL_TEXT_LOC : GIRL_LABEL_TEXT_EN); + girlLabel->setFontSize(100); girlLabel->setFontName("arial"); girlLabel->setTextColor(Color4B::WHITE); - } } } - - -void ChooseCharacter::characterSelected(Ref* pSender, ui::Widget::TouchEventType eEventType) +void ChooseCharacter::characterSelected(Ref *pSender, ui::Widget::TouchEventType eEventType) { - cocos2d::ui::Button* clickedButton = dynamic_cast(pSender); - switch (eEventType) { - case ui::Widget::TouchEventType::BEGAN: + cocos2d::ui::Button *clickedButton = dynamic_cast(pSender); + switch (eEventType) + { + case ui::Widget::TouchEventType::BEGAN: + { + clickedButton->setHighlighted(true); + break; + } + case ui::Widget::TouchEventType::MOVED: + break; + case ui::Widget::TouchEventType::ENDED: + { + clickedButton->setEnabled(false); + std::string characterPreference = ""; + if (clickedButton->getName().compare(BOY_BUTTON) == 0) + { + characterPreference = "true"; + } + else if (clickedButton->getName().compare(GIRL_BUTTON) == 0) { - clickedButton->setHighlighted(true); - break; + characterPreference = "false"; } - case ui::Widget::TouchEventType::MOVED: - break; - case ui::Widget::TouchEventType::ENDED: + + if (!characterPreference.empty()) { - clickedButton->setEnabled(false); - std::string characterPreference = ""; - if(clickedButton->getName().compare(BOY_BUTTON) == 0) { - characterPreference = "true"; - } else if(clickedButton->getName().compare(GIRL_BUTTON) == 0) { - characterPreference = "false"; - } - - if(!characterPreference.empty()) { - localStorageSetItem(CHARACTER_PREFERENCE, characterPreference); - } - - - Director::getInstance()->replaceScene(TransitionFade::create(0.5, HelloWorld::createScene(this->island.c_str(),"",true), Color3B::BLACK)); - - break; + localStorageSetItem(CHARACTER_PREFERENCE, characterPreference); } - - case ui::Widget::TouchEventType::CANCELED: - break; - default: - break; + + Director::getInstance()->replaceScene(TransitionFade::create(0.5, HelloWorld::createScene(this->island.c_str(), "", true), Color3B::BLACK)); + + break; + } + + case ui::Widget::TouchEventType::CANCELED: + break; + default: + break; } - } diff --git a/goa/Classes/misc/ChooseCharacter.hpp b/goa/Classes/misc/ChooseCharacter.hpp index db52abb53..c1355c87b 100644 --- a/goa/Classes/misc/ChooseCharacter.hpp +++ b/goa/Classes/misc/ChooseCharacter.hpp @@ -26,30 +26,29 @@ #define GIRL_BUTTON "girl_button" #define BOY_TEXT "boy_text" #define GIRL_TEXT "girl_text" -#define CHOOSE_CHARACTER_TEXT "choose Character" -#define BOY_LABEL_TEXT "लड़का" -#define GIRL_LABEL_TEXT "लड़की" +#define CHOOSE_CHARACTER_TEXT_EN "Select gender" +#define BOY_LABEL_TEXT_EN "BOY" +#define GIRL_LABEL_TEXT_EN "GIRL" +#define CHOOSE_CHARACTER_TEXT_LOC "Select gender\n लिंग चुनिए" +#define BOY_LABEL_TEXT_LOC "\n\n Boy\nलड़का" +#define GIRL_LABEL_TEXT_LOC "\n\n Girl\nलड़की" - -class ChooseCharacter : public cocos2d::Layer { +class ChooseCharacter : public cocos2d::Layer +{ public: - - static cocos2d::Scene* createScene(const std::string& island); - static ChooseCharacter* create(const std::string& island); - -CC_CONSTRUCTOR_ACCESS: - virtual bool init(const std::string& island); + static cocos2d::Scene *createScene(const std::string &island); + static ChooseCharacter *create(const std::string &island); + + CC_CONSTRUCTOR_ACCESS : virtual bool init(const std::string &island); ChooseCharacter(); virtual ~ChooseCharacter(); - + private: std::string island; - MenuContext* menuContext; + MenuContext *menuContext; void load(); void processChildNodes(cocos2d::Node *rootNode); - void characterSelected(cocos2d::Ref* pSender, cocos2d::ui::Widget::TouchEventType eEventType); - + void characterSelected(cocos2d::Ref *pSender, cocos2d::ui::Widget::TouchEventType eEventType); }; - #endif /* ChooseCharacter_hpp */ diff --git a/goa/Classes/splash/SplashScene.cpp b/goa/Classes/splash/SplashScene.cpp index d54d4bb60..c4ae56f7e 100644 --- a/goa/Classes/splash/SplashScene.cpp +++ b/goa/Classes/splash/SplashScene.cpp @@ -14,24 +14,24 @@ #include "../misc/PhotoCaptureScene.hpp" #include "../menu/Introduction.hpp" #include "../menu/MainMenuHome.hpp" +#include "../menu/LevelHelpScene.h" #include "audio/include/SimpleAudioEngine.h" #include "storage/local-storage/LocalStorage.h" - USING_NS_CC; -Scene* SplashScene::createScene() +Scene *SplashScene::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); - + // 'layer' is an autorelease object auto layer = SplashScene::create(); - + // add layer as a child to scene scene->addChild(layer); - + // return the scene return scene; } @@ -41,40 +41,33 @@ bool SplashScene::init() { ////////////////////////////// // 1. super init first - if ( !Layer::init() ) + if (!Layer::init()) { return false; } - + Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); - + this->loadDepedencies(); - - this->scheduleOnce( schedule_selector( SplashScene::GoToMainMenuScene ), DISPLAY_TIME_SPLASH_SCENE ); - - Node* animationNode = CSLoader::createNode("chimpleloading/chimpleloading.csb"); - animationNode->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); - animationNode->setAnchorPoint(Vec2(0.5,0.5)); - this->addChild(animationNode,1); - - cocostudio::timeline::ActionTimeline * _animationTimeLine = CSLoader::createTimeline("chimpleloading/chimpleloading.csb"); - animationNode->runAction(_animationTimeLine); - _animationTimeLine->gotoFrameAndPlay(0); + this->scheduleOnce(schedule_selector(SplashScene::GoToMainMenuScene), DISPLAY_TIME_SPLASH_SCENE); + + auto splashScreenNode = Sprite::create("chimpleloading/splashscene_" + localeCode + ".png"); + splashScreenNode->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2)); + splashScreenNode->setAnchorPoint(Vec2(0.5, 0.5)); + this->addChild(splashScreenNode, 1); - return true; } - -void SplashScene::loadDepedencies() { +void SplashScene::loadDepedencies() +{ localStorageInit(FileUtils::getInstance()->getWritablePath() + "/goa.sqlite"); } -void SplashScene::GoToMainMenuScene( float dt ) +void SplashScene::GoToMainMenuScene(float dt) { -// Director::getInstance()->replaceScene(ScrollableGameMapScene::createScene()); + // Director::getInstance()->replaceScene(ScrollableGameMapScene::createScene()); Director::getInstance()->replaceScene(MainMenuHome::createScene()); - } diff --git a/goa/Resources/res/HD/menu/frown.png b/goa/Resources/res/HD/menu/frown.png deleted file mode 100644 index 2916ce330..000000000 Binary files a/goa/Resources/res/HD/menu/frown.png and /dev/null differ diff --git a/goa/Resources/res/HD/menu/frown_en.png b/goa/Resources/res/HD/menu/frown_en.png new file mode 100644 index 000000000..2ca2b8bac Binary files /dev/null and b/goa/Resources/res/HD/menu/frown_en.png differ diff --git a/goa/Resources/res/HD/menu/frown_hi.png b/goa/Resources/res/HD/menu/frown_hi.png new file mode 100644 index 000000000..58e06fd13 Binary files /dev/null and b/goa/Resources/res/HD/menu/frown_hi.png differ diff --git a/goa/Resources/res/HD/menu/happy.png b/goa/Resources/res/HD/menu/happy.png deleted file mode 100644 index 2167193e9..000000000 Binary files a/goa/Resources/res/HD/menu/happy.png and /dev/null differ diff --git a/goa/Resources/res/HD/menu/happy_en.png b/goa/Resources/res/HD/menu/happy_en.png new file mode 100644 index 000000000..0acc38ebd Binary files /dev/null and b/goa/Resources/res/HD/menu/happy_en.png differ diff --git a/goa/Resources/res/HD/menu/happy_hi.png b/goa/Resources/res/HD/menu/happy_hi.png new file mode 100644 index 000000000..fe5e07558 Binary files /dev/null and b/goa/Resources/res/HD/menu/happy_hi.png differ diff --git a/goa/Resources/res/HD/menu/menu.png b/goa/Resources/res/HD/menu/menu.png deleted file mode 100644 index 344e98dec..000000000 Binary files a/goa/Resources/res/HD/menu/menu.png and /dev/null differ diff --git a/goa/Resources/res/HD/menu/menu_en.png b/goa/Resources/res/HD/menu/menu_en.png new file mode 100644 index 000000000..39c26a4b5 Binary files /dev/null and b/goa/Resources/res/HD/menu/menu_en.png differ diff --git a/goa/Resources/res/HD/menu/menu_hi.png b/goa/Resources/res/HD/menu/menu_hi.png new file mode 100644 index 000000000..8c7d63595 Binary files /dev/null and b/goa/Resources/res/HD/menu/menu_hi.png differ diff --git a/goa/Resources/res/HDR/menu/frown.png b/goa/Resources/res/HDR/menu/frown.png deleted file mode 100644 index 68926b966..000000000 Binary files a/goa/Resources/res/HDR/menu/frown.png and /dev/null differ diff --git a/goa/Resources/res/HDR/menu/frown_en.png b/goa/Resources/res/HDR/menu/frown_en.png new file mode 100644 index 000000000..b6222c886 Binary files /dev/null and b/goa/Resources/res/HDR/menu/frown_en.png differ diff --git a/goa/Resources/res/HDR/menu/frown_hi.png b/goa/Resources/res/HDR/menu/frown_hi.png new file mode 100644 index 000000000..4df2941b1 Binary files /dev/null and b/goa/Resources/res/HDR/menu/frown_hi.png differ diff --git a/goa/Resources/res/HDR/menu/happy.png b/goa/Resources/res/HDR/menu/happy.png deleted file mode 100644 index 3f1711208..000000000 Binary files a/goa/Resources/res/HDR/menu/happy.png and /dev/null differ diff --git a/goa/Resources/res/HDR/menu/happy_en.png b/goa/Resources/res/HDR/menu/happy_en.png new file mode 100644 index 000000000..fd6ade9ee Binary files /dev/null and b/goa/Resources/res/HDR/menu/happy_en.png differ diff --git a/goa/Resources/res/HDR/menu/happy_hi.png b/goa/Resources/res/HDR/menu/happy_hi.png new file mode 100644 index 000000000..7acf9ffa2 Binary files /dev/null and b/goa/Resources/res/HDR/menu/happy_hi.png differ diff --git a/goa/Resources/res/HDR/menu/menu.png b/goa/Resources/res/HDR/menu/menu.png deleted file mode 100755 index cca8c5d93..000000000 Binary files a/goa/Resources/res/HDR/menu/menu.png and /dev/null differ diff --git a/goa/Resources/res/HDR/menu/menu_en.png b/goa/Resources/res/HDR/menu/menu_en.png new file mode 100644 index 000000000..f67dbc863 Binary files /dev/null and b/goa/Resources/res/HDR/menu/menu_en.png differ diff --git a/goa/Resources/res/HDR/menu/menu_hi.png b/goa/Resources/res/HDR/menu/menu_hi.png new file mode 100644 index 000000000..718ed1367 Binary files /dev/null and b/goa/Resources/res/HDR/menu/menu_hi.png differ diff --git a/goa/Resources/res/chimpleloading/chimpleloading.csb b/goa/Resources/res/chimpleloading/chimpleloading.csb deleted file mode 100644 index 0205a3e27..000000000 Binary files a/goa/Resources/res/chimpleloading/chimpleloading.csb and /dev/null differ diff --git a/goa/Resources/res/chimpleloading/splashscene_en.png b/goa/Resources/res/chimpleloading/splashscene_en.png new file mode 100644 index 000000000..7d77a8415 Binary files /dev/null and b/goa/Resources/res/chimpleloading/splashscene_en.png differ diff --git a/goa/Resources/res/chimpleloading/splashscene_hi.png b/goa/Resources/res/chimpleloading/splashscene_hi.png new file mode 100644 index 000000000..57403f34b Binary files /dev/null and b/goa/Resources/res/chimpleloading/splashscene_hi.png differ diff --git a/goa/Resources/res/config/alphabet_game_map_en.json b/goa/Resources/res/config/alphabet_game_map_en.json new file mode 100644 index 000000000..9b33b2d25 --- /dev/null +++ b/goa/Resources/res/config/alphabet_game_map_en.json @@ -0,0 +1,1085 @@ +[ + { + "name": "decomone", + "title": "Decorate the Alphabet", + "unlock": true, + "cIcon": "gameicons/decomone_pressed.png", + "icon": "gameicons/decomone.png", + "multiPlayer": false, + "autoLevel": true, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "10", + "numLevels": "63", + "rewards": { + "9": { + "unlock": "Alphamon Feed" + }, + "10": { + "badge": "s/cool_cap" + }, + "20": { + "badge": "m/curly_mustache" + }, + "30": { + "badge": "p/dary_tophat" + }, + "52": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + }, + "40": { + "badge": "g/color_brush" + }, + "50": { + "badge": "b/shining_crown" + }, + "62": { + "badge": "c/cute_decomon" + } + }, + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "r", + "s", + "t", + "u", + "v", + "w", + "y", + "z", + "a-z", + "a-z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + "numLevels": "62" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + "numLevels": "62" + } + }, + "backgroundJson": "decomonlevel/Layer1.json", + "foregroundJson": "decomonlevel/Layer3.json", + "frontgroundJson": "decomonlevel/Layer4.json", + "maingroundJson": "decomonlevel/Layer2.json", + "menuPlist": "decomonlevel/decomonlevel.plist", + "menuPng": "decomonlevel/decomonlevel.png" + }, + { + "name": "EndlessRunner", + "title": "Run and Catch", + "unlock": false, + "cIcon": "gameicons/EndlessRunner_pressed.png", + "icon": "gameicons/EndlessRunner.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "28", + "autoLevel": true, + "backgroundJson": "endlessrunner/Layer1.json", + "foregroundJson": "endlessrunner/Layer3.json", + "frontgroundJson": "endlessrunner/Layer4.json", + "maingroundJson": "endlessrunner/Layer2.json", + "menuPlist": "endlessrunner/endlessrunner_01.plist", + "menuPng": "endlessrunner/endlessrunner_01.png", + "rewards": { + "9": { + "unlock": "Cannon Ball" + }, + "5": { + "badge": "s/butterfly_net" + }, + "10": { + "badge": "m/speed_runner" + }, + "15": { + "badge": "p/cracked_egg" + }, + "20": { + "badge": "c/shiny_goggles" + }, + "23": { + "badge": "b/friendly_monster" + }, + "25": { + "badge": "g/flaming_hero" + } + }, + "lang": { + "swa": { + "labels": [ + "ABC", + "DEF", + "GHI", + "JKL", + "MNO", + "PRS", + "TUV", + "WYZ", + "A-Z", + "abc", + "def", + "ghi", + "jkl", + "mno", + "prs", + "tuv", + "wyz", + "a-z", + "A-F", + "G-L", + "M-S", + "T-Z", + "A-Z", + "a-f", + "g-l", + "m-s", + "t-z", + "a-z" + ], + "numLevels": "28" + }, + "eng": { + "labels": [ + "ABC", + "DEF", + "GHI", + "JKL", + "MNO", + "PQR", + "STU", + "VWX", + "YZ", + "abc", + "def", + "ghi", + "jkl", + "mno", + "pqr", + "stu", + "vwx", + "yz", + "A-F", + "G-L", + "M-R", + "S-X", + "YZ", + "a-f", + "g-l", + "m-r", + "s-x", + "yz" + ], + "numLevels": "28" + } + } + }, + { + "name": "Alphamon Feed", + "title": "Feed the Monsters", + "unlock": false, + "cIcon": "gameicons/Alphamon Feed_pressed.png", + "icon": "gameicons/Alphamon Feed.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "26", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "book" + }, + "4": { + "badge": "c/tasty_mango" + }, + "8": { + "badge": "m/charming_face" + }, + "12": { + "badge": "p/tasty_pineapple" + }, + "16": { + "badge": "g/juicy_strawberry" + }, + "20": { + "badge": "b/delicious_cherry" + }, + "23": { + "badge": "c/tasty_mango" + }, + "26": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "backgroundJson": "alphafeedlevel/Layer1.json", + "foregroundJson": "alphafeedlevel/Layer3.json", + "frontgroundJson": "alphafeedlevel/Layer4.json", + "maingroundJson": "alphafeedlevel/Layer2.json", + "menuPlist": "alphafeedlevel/alphafeedlevel.plist", + "menuPng": "alphafeedlevel/alphafeedlevel.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z" + ], + "numLevels": "26" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z" + ], + "numLevels": "26" + } + } + }, + { + "name": "book", + "title": "Alphabet Fight", + "unlock": false, + "cIcon": "gameicons/book_pressed.png", + "icon": "gameicons/book.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "1", + "numLevels": "26", + "autoLevel": true, + "backgroundJson": "bgmap/bgmap_background.json", + "foregroundJson": "bgmap/bgmap_foreground.json", + "frontgroundJson": "bgmap/bgmap_frontground.json", + "maingroundJson": "bgmap/bgmap_mainground.json", + "menuPlist": "bgmap/bgmap.plist", + "menuPng": "bgmap/bgmap.png", + "rewards": { + "9": { + "unlock": "alphamole" + }, + "2": { + "badge": "s/amazing_book" + }, + "6": { + "badge": "m/quacky_base" + }, + "10": { + "badge": "p/cute_monster" + }, + "15": { + "badge": "g/blazing_wheels" + }, + "19": { + "badge": "b/lightning_bolt" + }, + "22": { + "badge": "c/candy_mountain" + }, + "24": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "lang": { + "swa": { + "labels": [ + "1", + "2" + ], + "numLevels": "2" + }, + "eng": { + "labels": [ + "1", + "2" + ], + "numLevels": "2" + } + } + }, + { + "name": "alphamole", + "title": "Whack a Monster", + "unlock": false, + "cIcon": "gameicons/alphamole_pressed.png", + "icon": "gameicons/alphamole.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "3", + "numLevels": "26", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "Cross The Bridge" + }, + "4": { + "badge": "c/candy_flake" + }, + "8": { + "badge": "m/golden_carrot" + }, + "12": { + "badge": "p/scary_scarecrow" + }, + "16": { + "badge": "g/patterned_shell" + }, + "20": { + "badge": "b/paddling_shovel" + }, + "26": { + "badge": "c/candy_flake" + }, + "24": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "backgroundJson": "alphamolelevel/alphamolebackground.json", + "foregroundJson": "alphamolelevel/alphamoleforeground.json", + "frontgroundJson": "alphamolelevel/alphamolefrontground.json", + "maingroundJson": "alphamolelevel/alphamolemainground.json", + "menuPlist": "alphamolelevel/alphamolelevel.plist", + "menuPng": "alphamolelevel/alphamolelevel.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z" + ], + "numLevels": "26" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z" + ], + "numLevels": "26" + } + } + }, + { + "name": "Cross The Bridge", + "title": "Cross the Bridge", + "unlock": false, + "cIcon": "gameicons/Cross The Bridge_pressed.png", + "icon": "gameicons/Cross The Bridge.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "3", + "numLevels": "26", + "autoLevel": true, + "rewards": { + "4": { + "badge": "m/impervious_bridge" + }, + "8": { + "badge": "p/knockout_punch" + }, + "12": { + "badge": "g/sneaky_charcater" + }, + "16": { + "badge": "b/splashy_water" + }, + "20": { + "badge": "c/gingerbread_house" + }, + "26": { + "badge": "s/game_house" + }, + "24": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "backgroundJson": "crossthebridgelevel/background.json", + "foregroundJson": "crossthebridgelevel/foreground.json", + "frontgroundJson": "crossthebridgelevel/frontground.json", + "maingroundJson": "crossthebridgelevel/mainground.json", + "menuPlist": "crossthebridgelevel/crossthebridgelevel.plist", + "menuPng": "crossthebridgelevel/crossthebridgelevel.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z" + ], + "numLevels": "26" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z" + ], + "numLevels": "26" + } + } + }, + { + "name": "Cannon Ball", + "title": "Cannon Ball", + "unlock": false, + "cIcon": "gameicons/Cannon Ball_pressed.png", + "icon": "gameicons/Cannon Ball.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "autoLevel": true, + "rewards": { + "5": { + "unlock": "bubble", + "badge": "s/blasting_cannon" + }, + "2": { + "badge": "m/falling_asteroid" + }, + "4": { + "badge": "p/burning_flame" + }, + "6": { + "badge": "g/tender_leaf" + }, + "8": { + "badge": "b/fiery_cannonblaster" + }, + "9": { + "badge": "c/cannon_bolt" + }, + "10": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "numLevels": "10", + "backgroundJson": "plevelscreen2/cblevelbg.json", + "foregroundJson": "plevelscreen2/cblevelfrg.json", + "frontgroundJson": "plevelscreen2/cblevelfng.json", + "maingroundJson": "plevelscreen2/cblevelmng.json", + "menuPlist": "plevelscreen2/plevelscreen2.plist", + "menuPng": "plevelscreen2/plevelscreen2.png" + }, + { + "name": "bubble", + "title": "Pop the Bubble", + "unlock": false, + "cIcon": "gameicons/bubble_pressed.png", + "icon": "gameicons/bubble.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "3", + "numLevels": "14", + "autoLevel": true, + "rewards": { + "6": { + "unlock": "Smash The Rock" + }, + "2": { + "badge": "s/bubble_gun" + }, + "4": { + "badge": "m/yummy_mushroom" + }, + "7": { + "badge": "p/bubbley_soap" + }, + "9": { + "badge": "g/funky_bubble" + }, + "11": { + "badge": "b/bubbling_foam" + }, + "13": { + "badge": "c/bubble_wand" + }, + "14": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "lang": { + "swa": { + "labels": [ + "ABC", + "DEF", + "GHI", + "JKL", + "MNO", + "PRS", + "TUV", + "WYZ", + "A-Z", + "0-2", + "3-5", + "6-8", + "9", + "0-9" + ], + "numLevels": "14" + }, + "eng": { + "labels": [ + "ABC", + "DEF", + "GHI", + "JKL", + "MNO", + "PQR", + "STU", + "VWX", + "YZ", + "0-2", + "3-5", + "6-8", + "9", + "0-9" + ], + "numLevels": "14" + } + }, + "backgroundJson": "bubble_shooter_level/background.json", + "foregroundJson": "bubble_shooter_level/foreground.json", + "frontgroundJson": "bubble_shooter_level/frontground.json", + "maingroundJson": "bubble_shooter_level/mainground.json", + "menuPlist": "bubble_shooter_level/bubble_shooter_level.plist", + "menuPng": "bubble_shooter_level/bubble_shooter_level.png" + }, + { + "name": "Smash The Rock", + "title": "Rock Smash", + "unlock": false, + "cIcon": "gameicons/Smash The Rock_pressed.png", + "icon": "gameicons/Smash The Rock.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "26", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "dino" + }, + "4": { + "badge": "s/boxing_gloves" + }, + "8": { + "badge": "m/shattered_base" + }, + "12": { + "badge": "p/mighty_hammer" + }, + "16": { + "badge": "g/monolith_stone" + }, + "20": { + "badge": "b/strolling_cart" + }, + "22": { + "badge": "c/sweet_chisel" + }, + "24": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "backgroundJson": "smash_de_rock/layer1.json", + "foregroundJson": "smash_de_rock/layer3.json", + "frontgroundJson": "smash_de_rock/layer4.json", + "maingroundJson": "smash_de_rock/layer2.json", + "menuPlist": "smash_de_rock/smashderock_01.plist", + "menuPng": "smash_de_rock/smashderock_01.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z" + ], + "numLevels": "26" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z" + ], + "numLevels": "26" + } + } + }, + { + "name": "dino", + "title": "Alphabet", + "unlock": false, + "cIcon": "gameicons/dino_pressed.png", + "icon": "gameicons/dino.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "3", + "rewards": { + "1": { + "badge": "s/cute_dino" + }, + "2": { + "badge": "g/old_gem", + "unlock": "Patch The Wall" + }, + "3": { + "badge": "c/choco_saur", + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "backgroundJson": "dinolevel/Layer1.json", + "foregroundJson": "dinolevel/Layer3.json", + "frontgroundJson": "dinolevel/Layer4.json", + "maingroundJson": "dinolevel/Layer2.json", + "menuPlist": "dinolevel/dinolevel.plist", + "menuPng": "dinolevel/dinolevel.png" + }, + { + "name": "Patch The Wall", + "title": "Patch the Wall", + "unlock": false, + "cIcon": "gameicons/Patch The Wall_pressed.png", + "icon": "gameicons/Patch The Wall.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "3", + "numLevels": "10", + "autoLevel": true, + "rewards": { + "1": { + "badge": "s/bouncy_castle" + }, + "2": { + "badge": "m/kaboom_cannon" + }, + "4": { + "badge": "p/great_wall" + }, + "5": { + "unlock": "basiclettercase" + }, + "6": { + "badge": "g/exploding_brick" + }, + "8": { + "badge": "b/tough_brick" + }, + "9": { + "badge": "c/sugar_concrete" + }, + "10": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + }, + "backgroundJson": "patchthewalllevel/background.json", + "foregroundJson": "patchthewalllevel/foreground.json", + "frontgroundJson": "patchthewalllevel/frontground.json", + "maingroundJson": "patchthewalllevel/mainground.json", + "menuPlist": "patchthewalllevel/patchthewalllevel.plist", + "menuPng": "patchthewalllevel/patchthewalllevel.png" + }, + { + "name": "basiclettercase", + "title": "icecream", + "cIcon": "gameicons/basiclettercase_pressed.png", + "icon": "gameicons/basiclettercase.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "unlock": false, + "span": "2", + "numLevels": "10", + "autoLevel": true, + "backgroundJson": "endlessrunner/Layer1.json", + "foregroundJson": "endlessrunner/Layer3.json", + "frontgroundJson": "endlessrunner/Layer4.json", + "maingroundJson": "endlessrunner/Layer2.json", + "menuPlist": "endlessrunner/endlessrunner_01.plist", + "menuPng": "endlessrunner/endlessrunner_01.png", + "rewards": { + "9": { + "unlock": "alphaarrange" + }, + "5": { + "badge": "s/butterfly_net" + }, + "10": { + "badge": "m/speed_runner" + }, + "15": { + "badge": "p/cracked_egg" + }, + "20": { + "badge": "c/shiny_goggles" + }, + "23": { + "badge": "b/friendly_monster" + }, + "25": { + "badge": "g/flaming_hero" + }, + "28": { + "unlockMin": "Kung Fu Alpha", + "min": "5" + } + } + }, + { + "name": "alphaarrange", + "title": "Alpha Arrange", + "unlock": false, + "cIcon": "gameicons/AlphaArrange_pressed.png", + "icon": "gameicons/AlphaArrange.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "1", + "numLevels": "6", + "rewards": { + "1": { + "unlock": "table" + }, + "2": { + "badge": "s/golden_boot" + }, + "3": { + "badge": "s/golden_boot" + }, + "4": { + "badge": "s/golden_boot" + }, + "5": { + "badge": "s/golden_boot" + }, + "6": { + "badge": "s/golden_boot" + } + }, + "backgroundJson": "alphabetslevel/Layer1.json", + "foregroundJson": "alphabetslevel/Layer3.json", + "frontgroundJson": "alphabetslevel/Layer4.json", + "maingroundJson": "alphabetslevel/Layer2.json", + "menuPlist": "icecreamlevel/icecreamlevel.plist", + "menuPng": "icecreamlevel/icecreamlevel.png" + } +] diff --git a/goa/Resources/res/config/alphabet_game_map.json b/goa/Resources/res/config/alphabet_game_map_hi.json similarity index 98% rename from goa/Resources/res/config/alphabet_game_map.json rename to goa/Resources/res/config/alphabet_game_map_hi.json index d81c7cca0..739fe07cc 100644 --- a/goa/Resources/res/config/alphabet_game_map.json +++ b/goa/Resources/res/config/alphabet_game_map_hi.json @@ -1,7 +1,7 @@ [ { "name": "decomone", - "title": "अक्षर सजाओ$#$Decomone", + "title": "अक्षर सजाओ$#$Decorate the Alphabet", "_title_comment": "अक्षर सजाओ", "unlock": true, "cIcon": "gameicons/decomone_pressed.png", @@ -184,7 +184,7 @@ }, { "name": "EndlessRunner", - "title":"भागो और पकड़ो$#$Endless Runner", + "title":"भागो और पकड़ो$#$Run and catch", "_title_comment": "भागो और पकड़ो", "unlock": true, "cIcon": "gameicons/EndlessRunner_pressed.png", @@ -295,7 +295,7 @@ }, { "name": "Alphamon Feed", - "title": "राक्षसों को खिलाओ$#$Alphamon Feed", + "title": "राक्षसों को खिलाओ$#$Feed the monsters", "_title_comment": "राक्षसों को खिलाओ", "unlock": true, "cIcon": "gameicons/Alphamon Feed_pressed.png", @@ -406,7 +406,7 @@ }, { "name": "book", - "title": "अक्षर की लड़ाई$#$Book", + "title": "अक्षर की लड़ाई$#$Alphabet fight", "_title_comment": "अक्षर की लड़ाई", "unlock": true, "cIcon": "gameicons/book_pressed.png", @@ -733,7 +733,7 @@ }, { "name": "bubble", - "title": "बुलबुला फोड़ो$#$Bubble", + "title": "बुलबुला फोड़ो$#$Bubble Pop", "_title_comment": "बुलबुला फोड़ो", "unlock": true, "cIcon": "gameicons/bubble_pressed.png", @@ -931,7 +931,7 @@ }, { "name": "dino", - "title": "वर्णमाला$#$Dino", + "title": "वर्णमाला$#$Alphabet", "_title_comment": "वर्णमाला", "unlock": true, "cIcon": "gameicons/dino_pressed.png", @@ -1011,7 +1011,7 @@ }, { "name": "basiclettercase", - "title": "आइसक्रीम$#$Basic Letter Case", + "title": "आइसक्रीम$#$Ice-cream", "_title_comment": "आइसक्रीम", "cIcon": "gameicons/basiclettercase_pressed.png", "icon": "gameicons/basiclettercase.png", diff --git a/goa/Resources/res/config/game_levels_en.json b/goa/Resources/res/config/game_levels_en.json new file mode 100644 index 000000000..19a70d103 --- /dev/null +++ b/goa/Resources/res/config/game_levels_en.json @@ -0,0 +1,1563 @@ +{ + "table": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + ], + "help": "Enter the correct number on the missing fish. The fishes are arranged according to the multiplication table. If you multiply the top of the column with the left of the row, you will get the correct number.", + "video": "table.webm" + } + + ], + "MainMenuHome": [ + { + "levels": [ + 1 + ], + "help": "Welcome to Chimple!", + "video": "MainMenuHome_help.webm" + } + ], + "menu": [ + { + "levels": [ + 1 + ], + "help": "Welcome to Chimple!", + "video": "menu_help.webm" + } + ], + "camp": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the camp director get a red purse for the party.", + "video": "camp_help.webm" + } + ], + "miningbg": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the miner find a flashlight.", + "video": "camp_help.webm" + } + ], + "farmhouse": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the farmer find his shovel.", + "video": "camp_help.webm" + } + ], + "city1": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the girl by giving her money to reach home.", + "video": "camp_help.webm" + } + ], + "city2": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the mother by getting her baby milk.", + "video": "camp_help.webm" + } + ], + "city3": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the villager get medicine.", + "video": "camp_help.webm" + } + ], + "city4": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the sailor get the earth globe.", + "video": "camp_help.webm" + } + ], + "city5": [ + { + "levels": [ + 1 + ], + "help": "You have to help others and become a hero! Your goal is to help the scientist go to his conference by giving him a plane ticket.", + "video": "camp_help.webm" + } + ], + "StoryCoverPage": [ + { + "levels": [ + 1 + ], + "help": "Welcome to the book library. You can click on any book to read it.", + "video": "story-help.webm" + } + ], + "story-catalogue": [ + { + "levels": [ + 1 + ], + "help": "Welcome to the book library. You can click on any book to read it.", + "video": "story_help.webm" + } + ], + "choose_character": [ + { + "levels": [ + 1 + ], + "help": "choose_character.", + "video": "choose_character_1.webm" + } + ], + "story-teller": [ + { + "levels": [ + 1 + ], + "help": "story-teller.", + "video": "story-teller_1.webm" + } + ], + "popcount": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10 + ], + "concepts": [ + "number" + ], + "help": "Count the number of Starfish and select the correct number.", + "video": "popcount_1.webm" + } + ], + "jumpingNumbers": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10 + ], + "concepts": [ + "number" + ], + "help": "Jump on the correct numbers in order.", + "video": "jumpingNumbers_1.webm" + }, + { + "levels": [ + 11 + ], + "concepts": [ + "table2" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 12 + ], + "concepts": [ + "table3" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 13 + ], + "concepts": [ + "table4" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 14 + ], + "concepts": [ + "table5" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 15 + ], + "concepts": [ + "table6" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 16 + ], + "concepts": [ + "table7" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 17 + ], + "concepts": [ + "table8" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 18 + ], + "concepts": [ + "table9" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 19 + ], + "concepts": [ + "table10" + ], + "help": "Jump on the correct numbers according to the multiplication tables.", + "video": "jumping_2.webm" + }, + { + "levels": [ + 20 + ], + "concepts": [ + "even_odd" + ], + "help": "Jump on odd numbers.", + "video": "step_odd_candy.webm" + }, + { + "levels": [ + 22,24,26,28 + ], + "concepts": [ + "even_odd" + ], + "help": "Jump on odd numbers.", + "video": "step_odd.webm" + }, + { + "levels": [ + 21,23,25,27,29 + ], + "concepts": [ + "even_odd" + ], + "help": "Jump on even numbers.", + "video": "jumping_3.webm" + } + ], + "atm": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 + ], + "help": "Choose the correct number of notes to make it equal to the value shown in the money machine.", + "video": "atm_1.webm" + } + ], + "Item": [ + { + "levels": [ + 1,2,3,4,5 + ], + "concepts": [ + "addition" + ], + "help": "Fill the pond with the number of fishes shown.", + "video": "Item_1.webm" + }, + { + "levels": [ + 6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 + ], + "concepts": [ + "addition" + ], + "help": "Fill the box with the number of frogs shown.", + "video": "Item_calculator.webm" + } + ], + "cardraw": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62 + ], + "help": "Write the alphabet shown to make the car drive home.", + "video": "cardraw_1.webm", + "writing": [ + { + "level":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26], + "upper":true + }, + { + "level":[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52], + "upper":false + }, + { + "level":[53,54,55,56,57,58,59,60,61,62], + "numeric":true + } + + ] + } + ], + "Line": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 + ], + + "help": "Place the candy on the line according to the number on it.", + "video": "Line_1.webm" + } + ], + "blastletter": [ + { + "levels": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], + "concepts": [ + "alphabet-info" + ], + "help": "Write the alphabet shown before the bomb blasts.", + "video": "defuse_the_bomb_1.webm", + "writing": [ + { + "level":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26], + "upper":true + } + ] + }, + { + "levels": [ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36 ], + "concepts": [ + "number" + ], + "help": "Write the number shown before the bomb blasts.", + "video": "defuse_the_bomb_2.webm", + "writing": [ + { + "level":[27,28,29,30,31,32,33,34,35,36], + "numeric":true + } + ] + }, + { + "levels": [ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 ], + "concepts": [ + "word" + ], + "help": "Write the word shown before the bomb blasts.", + "video": "defuse_the_bomb_3.webm", + "writing": [ + { + "level":[37,38,39,40,41,42,43,44,45,46], + "upper":true + } + ] + }, + { + "levels": [ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], + "concepts": [ + "plural" + ], + "help": "Write the plural of the word shown before the bomb blasts.", + "video": "defuse_the_bomb_4.webm", + "writing": [ + { + "level":[47,48,49,50,51,52,53,54,55,56], + "upper":true + } + ] + }, + { + "levels": [ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 ], + "concepts": [ + "antonym" + ], + "help": "Write the opposite of the word shown before the bomb blasts.", + "video": "defuse_the_bomb_5.webm", + "writing": [ + { + "level":[57,58,59,60,61,62,63,64,65,66], + "upper":true + } + ] + }, + { + "levels": [ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 ], + "concepts": [ + "synonym" + ], + "help": "Write the word with the same meaning of the word shown before the bomb blasts.", + "video": "defuse_the_bomb_6.webm", + "writing": [ + { + "level":[67,68,69,70,71,72,73,74,75,76], + "upper":true + } + ] + }, + { + "levels": [ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 ], + "concepts": [ + "homonym" + ], + "help": "Write the word with the same pronunciation of the word shown before the bomb blasts.", + "video": "defuse_the_bomb_7.webm", + "writing": [ + { + "level":[77,78,79,80,81,82,83,84,85,86], + "upper":true + } + ] + } + ], + "Door": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Write the alphabet shown on each door to make the animals go.", + "video": "Barndoor.webm", + "writing": [ + { + "level":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26], + "upper":true + }, + { + "level":[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52], + "upper":false + }, + { + "level":[53,54,55,56,57,58,59,60,61,62], + "numeric":true + } + + ] + }, + { + "levels": [ + 63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80 + ], + "concepts": [ + "word" + ], + "help": "Write the each alphabet of the word on each door to make the animals go.", + "video": "door_words.webm", + "writing": [ + { + "level":[63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80], + "upper":true + } + ] + } + ], + "book": [ + { + "levels": [ + 1,101,2,202 + ], + "level_concepts": [ + "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" + ], + "swa_levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 + ], + "swa_level_concepts": [ + "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","U","V","W","Y","Z" + ], + "concepts": [ + "alphabet-info" + ], + "help": "Choose the correct alphabet below to give power to the alphabet monster. If you choose correctly, your monster will get more power and defeat the opposite monster", + "video": "AlphamonCombat.webm" + } + ], + "EndlessRunner": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 + ], + "level_concepts": [ + "ABC","DEF","GHI","JKL","MNO","PQR","STU","VWX","YZ","ABC","DEF","GHI","JKL","MNO","PQR","STU","VWX","YZ" + ], + "help": "Catch the correct alphabet shown above by jumping. Do not catch the wrong alphabet.", + "video": "endlessrunner_1.webm" + } + ], + "baja": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 + ], + "concepts": [ + "word" + ], + "help": "Choose the correct alphabets to form the word and make your car go fast.", + "video": "baja_1.webm" + } + ], + "bubble": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9 + ], + "level_concepts": [ + "ABC","DEF","GHI","JKL","MNO","PQR","STU","VWX","YZ" + ], + "help": "Shoot the bubble and match the correct letter.", + "video": "bubbleshooter_letter_1.webm" + }, + { + "levels": [ + 10,11,12,13,14 + ], + "concepts": [ + "number" + ], + "help": "Shoot the bubble and match the correct number.", + "video": "bubbleshooter_number_1.webm" + } + ], + "shoot": [ + { + "levels": [ 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65 ], + "concepts": [ + "homonym" + ], + "help": "Choose the word with the same pronunciation of the word shown below. If you choose correctly, you get a chance to shoot.", + "video": "shoot_1.webm" + }, + { + "levels": [ 6,7,8,9,10,21,22,23,24,25,36,37,38,39,40,51,52,53,54,55,66,67,68,69,70 ], + "concepts": [ + "antonym" + ], + "help": "Choose the opposite of the word shown below. If you choose correctly, you get a chance to shoot.", + "video": "shoot_2.webm" + }, + { + "levels": [ 11,12,13,14,15,26,27,28,29,30,41,42,43,44,45,56,57,58,59,60,71,72,73,74,75 ], + "concepts": [ + "synonym" + ], + "help": "Choose the word with the same meaning of the word shown below. If you choose correctly, you get a chance to shoot.", + "video": "shoot_3.webm" + } + ], + "owl": [ + { + "levels": [ 1, 2, 3, 4, 5, 26, 27, 28, 29, 30, 51, 52, 53, 54, 55, 76, 77, 78, 79, 80 ], + "concepts": [ + "word" + ], + "help": "Spell the word shown by choosing the correct alphabets.", + "video": "owl_1.webm" + }, + { + "levels": [6,7,8,9,10,31,32,33,34,35,56,57,58,59,60,81,82,83,84,85], + "concepts": [ + "plural" + ], + "help": "Spell the plural of the word shown by choosing the correct alphabets.", + "video": "owl_2.webm" + }, + { + "levels": [11,12,13,14,15,36,37,38,39,40,61,62,63,64,65,86,87,88,89,90], + "concepts": [ + "antonym" + ], + "help": "Spell the opposite of the word shown by choosing the correct alphabets.", + "video": "owl_3.webm" + }, + { + "levels": [16,17,18,19,20,41,42,43,44,45,66,67,68,69,70,91,92,93,94,95], + "concepts": [ + "synonym" + ], + "help": "Spell the word with the same meaning of the word shown by choosing the correct alphabets.", + "video": "owl_4.webm" + }, + { + "levels": [21,22,23,24,25,46,47,48,49,50,71,72,73,74,75,96,97,98,99,100], + "concepts": [ + "homonym" + ], + "help": "Spell the word with the same pronunciation of the word shown by choosing the correct alphabets.", + "video": "owl_5.webm" + } + ], + "ConnectTheDots": [ + { + "levels": [ + 1 + ], + "concepts":[ + "number" + ], + "help": "Join dots of the same color to make the number shown on the right.", + "video": "ConnectTheDots_1.webm" + } + ], + "Dots": [ + { + "levels": [ + 1 + ], + "concepts":[ + "number" + ], + "help": "Count the number of dots with your fingers. Choose the fingers that match the number of dots on the screen.", + "video": "Dots_1.webm" + } + ], + "Maze": [ + { + "levels": [ + 1 + ], + "help": "Use the finger shown in the beginning to trace the line.", + "video": "Maze_1.webm" + } + ], + "Bounce": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 + ], + "level_concepts":[ + "addition","addition","addition","addition","addition","addition_carryover_1","addition_carryover_1","addition_carryover_1","addition_carryover_1","addition_carryover_1","subtraction","subtraction","subtraction","subtraction","subtraction","subtraction_carryover_1","subtraction_carryover_1","subtraction_carryover_1","subtraction_carryover_1","subtraction_carryover_1" + ], + "help": "When the ice cream drops on the cup, it will jump according to the number written on it. Place the cups on the line and drop the ice cream so that it bounces and reaches the cone.", + "video": "icecream.webm" + } + ], + "train": [ + { + "levels": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 ], + "help": "Click on the words in the right order to make a proper sentence.", + "video": "train.webm" + } + ], + "stack": [ + { + "levels": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], + "concepts": [ + "word" + ], + "help": "Choose the box with the matching start of the word.", + "video": "stack_farm.webm" + } + ], + "talk": [ + { + "levels": [ + 1, 2, 3, 4, 5, 6, 55, 56, 57, 58, 59, 60 + ], + "concepts": [ + "verb" + ], + "help": "Choose all the verbs in the sentence.", + "video": "talk_island.webm" + }, + + { + "levels": [ + 7, 8, 9, 10, 11, 12, 61, 62, 63, 64, 65, 66 + ], + "concepts": [ + "noun" + ], + "help": "Choose all the nouns in the sentence.", + "video": "talk_city.webm" + }, + + { + "levels": [ + 13, 14, 15, 16, 17, 18, 67, 68, 69, 70, 71, 72 + ], + "concepts": [ + "pronoun" + ], + "help": "Choose all the pronouns in the sentence.", + "video": "talk_island.webm" + }, + + { + "levels": [ + 19, 20, 21, 22, 23, 24 + ], + "concepts": [ + "adverb" + ], + "help": "Choose all the adverbs in the sentence.", + "video": "talk_island.webm" + }, + + { + "levels": [ + 25, 26, 27, 28, 29, 30 + ], + "concepts": [ + "adjective" + ], + "help": "Choose all the adjectives in the sentence.", + "video": "talk_island.webm" + }, + + { + "levels": [ + 31, 32, 33, 34, 35, 36 + ], + "concepts": [ + "preposition" + ], + "help": "Choose all the prepositions in the sentence.", + "video": "talk_island.webm" + }, + + { + "levels": [ + 37, 38, 39, 40, 41, 42 + ], + "concepts": [ + "conjunction" + ], + "help": "Choose all the conjuctions in the sentence.", + "video": "talk_island.webm" + }, + + { + "levels": [ + 43, 44, 45, 46, 47, 48 + ], + "concepts": [ + "interjection" + ], + "help": "Choose all the interjections in the sentence.", + "video": "talk_island.webm" + }, + + { + "levels": [ + 49, 50, 51, 52, 53, 54 + ], + "concepts": [ + "article" + ], + "help": "Choose all the articles in the sentence.", + "video": "talk_island.webm" + } + + ], + "jasmine": [ + { + "levels": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 + ], + "concepts": [ + "word" + ], + "help": "Choose the correct alphabets to form the word and see the flowers bloom.", + "video": "jasmin.webm" + } + ], + "Cannon Ball": [ + { + "levels": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 + ], + "help": "Drag the alphabet and put it on the correct cannon.", + "video": "cannonball.webm" + } + ], + "Patch The Wall": [ + { + "levels": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 + ], + "help": "Drag the alphabet and put it on the correct alphabet.", + "video": "patchthewall.webm" + } + ], + "decomone": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 + ], + "help": "Have fun by decorating the alphabet. At the end, take a photo of your alphabet.", + "video": "decomone_1.webm" + } + ], + "order": [ + { + "levels": [ + 1,2,3,4,5 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Arrange the Alphabets from bottom to top.", + "video": "order_1.webm" + }, + { + "levels": [ + 6 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Arrange the Alphabets from bottom to top.", + "video": "order_2.webm" + }, + { + "levels": [ + 7,8,9,10 + ], + "help": "Arrange the blocks in ascending order from bottom to top.", + "video": "order_4.webm" + }, + { + "levels": [ + 11 + ], + "help": "Arrange the blocks in ascending order from bottom to top.", + "video": "order_3.webm" + }, + { + "levels": [ + 12,13,14,15,16,17,18 + ], + "concepts": [ + "number" + ], + "help": "Arrange the numbers in ascending order from bottom to top.", + "video": "order_5.webm" + }, + { + "levels": [ + 19 + ], + "concepts": [ + "day" + ], + "help": "Arrange the days of the week in order from bottom to top.", + "video": "order_weekdays.webm" + }, + { + "levels": [ + 20 + ], + "concepts": [ + "month" + ], + "help": "Arrange the months of the year in order from bottom to top.", + "video": "order_months.webm" + } + ], + "dash": [ + { + "levels": [ + 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65 + ], + "concepts": [ + "synonym" + ], + "help": "Click on the word with the same meaning of the word shown above to jump. Finish the race quicker than your opponent.", + "video": "dash_1.webm" + }, + { + "levels": [ + 6,7,8,9,10,21,22,23,24,25,36,37,38,39,40,51,52,53,54,55,66,67,68,69,70 + ], + "concepts": [ + "antonym" + ], + "help": "Click on the word with the opposite meaning of the word shown above to jump. Finish the race quicker than your opponent.", + "video": "dash_11.webm" + }, + { + "levels": [ + 11,12,13,14,15,26,27,28,29,30,41,42,43,44,45,56,57,58,59,60,71,72,73,74,75 + ], + "concepts": [ + "homonym" + ], + "help": "Click on the word with the same pronunciation of the word shown above to jump. Finish the race quicker than your opponent.", + "video": "dash_22.webm" + } + ], + "cat": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, + 39,40 + ], + "concepts": [ + "word" + ], + "help": "Choose the correct alphabets to form the word.", + "video": "cat_1.webm" + } + ], + "Alphamon Feed": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Drag the monster to feed the correct alphabet.", + "video": "Alphamon Feed_1.webm" + } + ], + "alphamole": [ + { + "levels": [ + 1,6,11,16,21,26 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Whack the alphabet monster if it is the same one shown on the upper left.", + "video": "Alphamole_1.webm" + }, + { + "levels": [ + 2,7,12,17,22 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Whack the alphabet monster if it is the same one shown on the upper left.", + "video": "Alphamole_2.webm" + }, + { + "levels": [ + 3,8,13,18,23 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Whack the alphabet monster if it is the same one shown on the upper left.", + "video": "Alphamole_3.webm" + }, + { + "levels": [ + 4,9,14,19,24 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Whack the alphabet monster if it is the same one shown on the upper left.", + "video": "Alphamole_4.webm" + }, + { + "levels": [ + 5,10,15,20,25 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Whack the alphabet monster if it is the same one shown on the upper left.", + "video": "Alphamole_5.webm" + } + ], + "dino": [ + { + "levels": [ + 1,2,3 + ], + "help": "Drag the alphabet and drop on the dino", + "video": "dino_1.webm" + } + ], + "Cross The Bridge": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Allow the same alphabet monster given on the board to cross the bridge. If a different monster tries to enter, open the bridge to make the monster fall.", + "video": "Cross_the_bridge.webm" + } + ], + "chain": [ + { + "levels": [ + 1 + ], + "concepts": [ + "word" + ], + "help": "Choose the correct alphabets to form the word.", + "video": "Chain.webm" + } + ], + "balloonMath": [ + { + "levels": [ + 1 + ], + "concepts": [ + "subtraction", + "subtraction_carryover_1", + "subtraction_carryover_2", + "subtraction_carryover_3" + ], + "help": "Burst the balloons with the pin so that only the number shown will be left.", + "video": "Balloon_math.webm" + } + ], + "pop": [ + { + "levels": [ + 1 + ], + "help": "Click on the words in the right order to make a proper sentence.", + "video": "Pop.webm" + } + ], + "bingo": [ + { + "levels": [ + 1, + 2, + 3, + 4, + 13, + 14, + 15, + 16, + 25, + 26, + 27, + 28 + ], + "concepts": [ + "synonym" + ], + "help": "Click on the word with the same meaning of the word above. When you get all words in a line correct, you win! Bingo!.", + "video": "Bingo_city_3x3.webm" + }, + { + "levels": [ + 5,6,7,8,17,18,19,20,29,30,31,32 + ], + "concepts": [ + "antonym" + ], + "help": "Click on the word with the opposite meaning of the word above. When you get all words in a line correct, you win! Bingo!.", + "video": "Bingo_jungle_3x3.webm" + }, + { + "levels": [ + 9,10,11,12,21,22,23,24,33,34,35,36 + ], + "concepts": [ + "homonym" + ], + "help": "Click on the word with the same pronunciation of the word above. When you get all words in a line correct, you win! Bingo!.", + "video": "Bingo_farm_3x3.webm" + } + ], + "drop": [ + { + "levels": [ + 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50 + ], + "concepts": [ + "word" + ], + "help": "Drop the correct alphabet into the empty box to make the given word.", + "video": "Drop_Jungle.webm" + }, + { + "levels": [ + 6,7,8,9,10,21,22,23,24,25,36,37,38,39,40,51,52,53,54,55 + ], + "concepts": [ + "synonym" + ], + "help": "Drop the correct alphabet into the empty box to make the word with the same meaning of the given word.", + "video": "Drop_City.webm" + }, + { + "levels": [ + 11,12,13,14,15,26,27,28,29,30,41,42,43,44,45,56,57,58,59,60 + ], + "concepts": [ + "antonym" + ], + "help": "Drop the correct alphabet into the empty box to make the word with the opposite meaning of the given word.", + "video": "Drop_Hero.webm" + } + ], + "chocolateFactory": [ + { + "levels": [ + 1 + ], + "help": "Arrange the tray in ascending order according to the count of milk bottle present in each tray.", + "video": "chocolateFactory_1.webm" + } + ], + "find": [ + { + "levels": [ + 1 + ], + "help": "Arrange the tray in ascending order according to the count of milk bottle present in each tray.", + "video": "chocolateFactory_1.webm" + } + ], + + "shop": [ + { + "levels": [ + 1 + ], + "concepts": [ + "addition", + "addition_carryover_1", + "addition_carryover_2", + "addition_carryover_3" + ], + "help": "Place the correct vegetable on the weighing machine and calculate the total price of vegetables on the calculator.", + "video": "Shop.webm" + } + ], + "Kung Fu Alpha": [ + { + "levels": [ + 1 + ], + "help": "Move the ball to trace the alphabet.", + "video": "kungfualpha.webm" + } + ], + "alphaarrange": [ + { + "levels": [ + 1 + ], + "help": "Drag and drop the alphabet in correct sequence.", + "video": "alphaarrange.webm" + } + ], + "sortit": [ + { + "levels": [ + 1 + ], + "help": "Sort the items.", + "video": "sortit.webm" + } + ], + "wembley": [ + { + "levels": [ + 1 + ], + "help": "Click on the footballs to form the word mentioned on the top.", + "video": "wembley.webm" + } + ], + "memory": [ + { + "levels": [ + 1,2,7,8,13,14,19,20,25,26,31,32 + ], + "concepts": [ + "antonym" + ], + "help": "Match the opposites words to form a pair.", + "video": "memory-antonym.webm" + }, + { + "levels": [ + 3,4,9,10,15,16,21,22,27,28,33,34 + ], + "concepts": [ + "synonym" + ], + "help": "Match the same meaning words to form a pair.", + "video": "memory-synonym.webm" + }, + { + "levels": [ + 5,6,11,12,17,18,23,24,29,30,35,36 + ], + "concepts": [ + "homonym" + ], + "help": "Match the same sounding words to form a pair.", + "video": "memory-homonym.webm" + } + ], + "balloon": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,66,68 + ], + "concepts": [ + "noun" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-noun.webm" + }, + { + "levels": [ + 9,10,11,12,13,14,15,16 + ], + "concepts": [ + "adjective" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-adjective.webm" + }, + { + "levels": [ + 17,18,19,20,21,22,23,24 + ], + "concepts": [ + "verb" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-verb.webm" + }, + { + "levels": [ + 25,26,27,28,29,30,31,32,72 + ], + "concepts": [ + "pronoun" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-pronouns.webm" + }, + { + "levels": [ + 33,34,35,36,37,38,39,40,67 + ], + "concepts": [ + "adverb" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-adverb.webm" + }, + { + "levels": [ + 41,42,43,44,45,46,47,48,69 + ], + "concepts": [ + "preposition" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-prepositions.webm" + }, + { + "levels": [ + 49,50,51,52,53,54,55,56,70 + ], + "concepts": [ + "conjunction" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-conjuctions.webm" + }, + { + "levels": [ + 55,56,57,58,59,60,61,62,63,64,65,71 + ], + "concepts": [ + "interjection" + ], + "help": "Catch the words of the given type to make the pilot fly up. Avoid the rocks.", + "video": "fly-interjections.webm" + } + ], + "TreasureHunt": [ + { + "levels": [ + 1 + ], + "help": "Write the alphabet shown above to get the treasure.", + "video": "treasurehunt.webm" + } + ], + "Units": [ + { + "levels": [ + 1 + ], + "help": "Pull the handle to prepare pizza and click on the calculator to enter the total number of toppings.", + "video": "units.webm" + } + ], + "spot": [ + { + "levels": [ + 1 + ], + "help": "Count the number of objects as shown below by scrolling through the screen and click on calculator to enter the answer.", + "video": "spot.webm" + } + ], + "pillar": [ + { + "levels": [ + 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65 + ], + "concepts": [ + "noun" + ], + "help": "Click on the nouns shown above to make a tall cake.", + "video": "pillar_1.webm" + }, + { + "levels": [ + 6,7,8,9,10,21,22,23,24,25,36,37,38,39,40,51,52,53,54,55,66,67,68,69,70 + ], + "concepts": [ + "verb" + ], + "help": "Click on the verbs shown above to make a tall cake.", + "video": "Pillar_island.webm" + }, + { + "levels": [ + 11,12,13,14,15,26,27,28,29,30,41,42,43,44,45,56,57,58,59,60,71,72,73,74,75 + ], + "concepts": [ + "adjective" + ], + "help": "Click on the adjectives shown above to make a tall cake.", + "video": "Pillar.webm" + } + ], + "circle": [ + { + "levels": [ + 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65 + ], + "concepts": [ + "synonym" + ], + "help": "Click on the word with the same meaning of the word in the center.", + "video": "Circle_candy.webm" + }, + { + "levels": [ + 6,7,8,9,10,21,22,23,24,25,36,37,38,39,40,51,52,53,54,55,66,67,68,69,70 + ], + "concepts": [ + "antonym" + ], + "help": "Click on the word with the opposite meaning of the word in the center.", + "video": "circle_island.webm" + }, + { + "levels": [ + 11,12,13,14,15,26,27,28,29,30,41,42,43,44,45,56,57,58,59,60,71,72,73,74,75 + ], + "concepts": [ + "homonym" + ], + "help": "Click on the word with the same pronunciation of the word in the center.", + "video": "Circle_candy_homo.webm" + } + ], + + "jazz": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, + 39,40 + ], + "concepts": [ + "word" + ], + "help": "Choose the correct alphabets to form the word.", + "video": "Jazz.webm" + } + ], + "Smash The Rock": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 + ], + "concepts": [ + "alphabet-info" + ], + "help": "Click on the same alphabet as the rock in the middle for five times to break the rock.", + "video": "Smash The Rock_1.webm" + } + ], + "JumpOnWords": [ + { + "levels": [ + 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,45 + ], + "concepts": [ + "word" + ], + "help": "Make words from the alphabets shown below. Every correct word makes the character jump.", + "video": "JumpOnWords_1.webm" + } + ], + "card": [ + { + "levels": [ + 1, 2, 6, 7, 11, 12, 16 + ], + "concepts": [ + "number" + ], + "help": "Choose two cards such that the sum of the animals are equal to the number shown on the board.", + "video": "card.webm" + }, + + { + "levels": [ + 3, 4, 5, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20 + ], + "concepts": [ + "number" + ], + "help": "Choose three cards such that the sum of the animals are equal to the number shown on the board.", + "video": "card.webm" + } + ], + "step": [ + { + "levels": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 ], + "help": "Pull the missing steps up to complete the series.", + "video": "step.webm" + } + ], + "shape": [ + { + "levels": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ], + "help": "Close the hole in the tank by dragging the same shape from below.", + "video": "shape.webm" + } + ], + "mathlearning": [ + { + "levels": [ + 1, + 2, + 3, + 4, + 5 + ], + "concepts": [ + "addition" + ], + "help": "Addition", + "video": "mathlearning.webm" + }, + { + "levels": [ + 6, + 7, + 8, + 9, + 10 + ], + "concepts": [ + "subtraction" + ], + "help": "Subtraction", + "video": "mathlearning.webm" + } + ], + "BasicMultiplication": [ + { + "levels": [ + 1, + 2, + 3, + 4, + 5, + 6 + ], + "concepts": [ + "multiplication" + ], + "help": "Multiplication", + "video": "BasicMultiplication.webm" + } + ], + "basiclettercase": [ + { + "levels": [ 1 , 2, 3, 4, 5, 6 ,7 , 8, 9 , 10], + "concepts": [ + "alphabet-info" + ], + "help": "Match the words by dragging the correct one", + "video": "cone.webm" + } + ] +} diff --git a/goa/Resources/res/config/game_levels.json b/goa/Resources/res/config/game_levels_hi.json similarity index 100% rename from goa/Resources/res/config/game_levels.json rename to goa/Resources/res/config/game_levels_hi.json diff --git a/goa/Resources/res/config/game_map.json b/goa/Resources/res/config/game_map.json index df5935502..7488b9174 100644 --- a/goa/Resources/res/config/game_map.json +++ b/goa/Resources/res/config/game_map.json @@ -1,8 +1,7 @@ [ { "name": "story-catalogue", - "title": "कहानियों", - "_title_comment": "कहानियों", + "title": "Stories", "unlock": true, "cIcon": "gameicons/story_pressed.png", "icon": "gameicons/story.png", @@ -13,8 +12,7 @@ }, { "name": "map", - "title": "हीरो", - "_title_comment": "हीरो", + "title": "Hero", "cIcon": "gameicons/hero_pressed.png", "icon": "gameicons/hero.png", "multiPlayer": false, @@ -35,8 +33,7 @@ }, { "name": "decomone", - "title": "अक्षर सजाओ", - "_title_comment": "अक्षर सजाओ", + "title": "Decorate the Alphabet", "unlock": true, "cIcon": "gameicons/decomone_pressed.png", "icon": "gameicons/decomone.png", @@ -218,8 +215,7 @@ }, { "name": "EndlessRunner", - "title": "भागो और पकड़ो", - "_title_comment": "भागो और पकड़ो", + "title": "Run and Catch", "unlock": true, "cIcon": "gameicons/EndlessRunner_pressed.png", "icon": "gameicons/EndlessRunner.png", @@ -329,8 +325,7 @@ }, { "name": "Alphamon Feed", - "title": "राक्षसों को खिलाओ", - "_title_comment": "राक्षसों को खिलाओ", + "title": "Feed the Monsters", "unlock": false, "cIcon": "gameicons/Alphamon Feed_pressed.png", "icon": "gameicons/Alphamon Feed.png", @@ -440,8 +435,7 @@ }, { "name": "book", - "title": "अक्षरों की लड़ाई", - "_title_comment": "अक्षरों की लड़ाई", + "title": "Alphabet Fight", "unlock": false, "cIcon": "gameicons/book_pressed.png", "icon": "gameicons/book.png", @@ -503,8 +497,7 @@ }, { "name": "alphamole", - "title": "एक अजीब राक्षस", - "_title_comment": "एक अजीब राक्षस", + "title": "Whack a Monster", "unlock": false, "cIcon": "gameicons/alphamole_pressed.png", "icon": "gameicons/alphamole.png", @@ -614,8 +607,7 @@ }, { "name": "Cross The Bridge", - "title": "पूल को पार करो", - "_title_comment": "पूल को पार करो", + "title": "Cross the Bridge", "unlock": false, "cIcon": "gameicons/Cross The Bridge_pressed.png", "icon": "gameicons/Cross The Bridge.png", @@ -722,8 +714,7 @@ }, { "name": "Cannon Ball", - "title": "तोप का गोला", - "_title_comment": "तोप का गोला", + "title": "Cannon Ball", "unlock": false, "cIcon": "gameicons/Cannon Ball_pressed.png", "icon": "gameicons/Cannon Ball.png", @@ -767,8 +758,7 @@ }, { "name": "bubble", - "title": "बुलबुला फोड़ो", - "_title_comment": "बुलबुला फोड़ो", + "title": "Pop the Bubble", "unlock": false, "cIcon": "gameicons/bubble_pressed.png", "icon": "gameicons/bubble.png", @@ -854,8 +844,7 @@ }, { "name": "Smash The Rock", - "title": "चट्टान तोडना", - "_title_comment": "चट्टान तोडना", + "title": "Rock Smash", "unlock": false, "cIcon": "gameicons/Smash The Rock_pressed.png", "icon": "gameicons/Smash The Rock.png", @@ -965,8 +954,7 @@ }, { "name": "dino", - "title": "वर्णमाला", - "_title_comment": "वर्णमाला", + "title": "Alphabet", "unlock": false, "cIcon": "gameicons/dino_pressed.png", "icon": "gameicons/dino.png", @@ -998,8 +986,7 @@ }, { "name": "Patch The Wall", - "title": "दीवार को थपथपाएं", - "_title_comment": "दीवार को थपथपाएं", + "title": "Patch the Wall", "unlock": false, "cIcon": "gameicons/Patch The Wall_pressed.png", "icon": "gameicons/Patch The Wall.png", @@ -1045,8 +1032,7 @@ }, { "name": "basiclettercase", - "title": "आइसक्रीम", - "_title_comment": "आइसक्रीम", + "title": "icecream", "cIcon": "gameicons/basiclettercase_pressed.png", "icon": "gameicons/basiclettercase.png", "multiPlayer": false, @@ -1092,8 +1078,7 @@ }, { "name": "alphaarrange", - "title": "अल्फा व्यवस्था", - "_title_comment": "अल्फा व्यवस्था", + "title": "Alpha Arrange", "unlock": false, "cIcon": "gameicons/AlphaArrange_pressed.png", "icon": "gameicons/AlphaArrange.png", @@ -1131,8 +1116,7 @@ }, { "name": "baja", - "title": "चलाओ", - "_title_comment": "चलाओ", + "title": "Drive", "unlock": true, "cIcon": "gameicons/baja_pressed.png", "icon": "gameicons/baja.png", @@ -1178,8 +1162,7 @@ }, { "name": "jasmine", - "title": "पौधे उगाओ", - "_title_comment": "पौधे उगाओ", + "title": "Grow the Plants", "unlock": true, "cIcon": "gameicons/jasmine_pressed.png", "icon": "gameicons/jasmine.png", @@ -1225,8 +1208,7 @@ }, { "name": "chain", - "title": "पशु श्रृंखला", - "_title_comment": "पशु श्रृंखला", + "title": "Animal Chain", "unlock": false, "cIcon": "gameicons/chain_pressed.png", "icon": "gameicons/chain.png", @@ -1272,8 +1254,7 @@ }, { "name": "wembley", - "title": "वर्णमाला फुटबॉल", - "_title_comment": "वर्णमाला फुटबॉल", + "title": "Alphabet Football", "unlock": false, "cIcon": "gameicons/wembley_pressed.png", "icon": "gameicons/wembley.png", @@ -1319,8 +1300,7 @@ }, { "name": "jazz", - "title": "ड्रम", - "_title_comment": "ड्रम", + "title": "Drums", "unlock": false, "cIcon": "gameicons/jazz_pressed.png", "icon": "gameicons/jazz.png", @@ -1366,8 +1346,7 @@ }, { "name": "shoot", - "title": "गोली मार", - "_title_comment": "गोली मार", + "title": "Shoot", "unlock": false, "cIcon": "gameicons/shoot_pressed.png", "icon": "gameicons/shoot.png", @@ -1409,8 +1388,7 @@ }, { "name": "owl", - "title": "वर्तनी उल्लू", - "_title_comment": "वर्तनी उल्लू", + "title": "Spelling Owl", "unlock": false, "cIcon": "gameicons/owl_pressed.png", "icon": "gameicons/owl.png", @@ -1456,8 +1434,7 @@ }, { "name": "stack", - "title": "शब्दों का ढेर", - "_title_comment": "शब्दों का ढेर", + "title": "Stack the Words", "unlock": false, "cIcon": "gameicons/stack_pressed.png", "icon": "gameicons/stack.png", @@ -1502,8 +1479,7 @@ }, { "name": "order", - "title": "क्रमबद्ध करे", - "_title_comment": "क्रमबद्ध करे", + "title": "Arrange in Order", "unlock": false, "cIcon": "gameicons/order_pressed.png", "icon": "gameicons/order.png", @@ -1548,8 +1524,7 @@ }, { "name": "dash", - "title": "पानी का छींटा", - "_title_comment": "पानी का छींटा", + "title": "Dash", "unlock": false, "cIcon": "gameicons/dash_pressed.png", "icon": "gameicons/dash.png", @@ -1596,8 +1571,7 @@ }, { "name": "bingo", - "title": "बिंगो", - "_title_comment": "बिंगो", + "title": "Bingo", "unlock": false, "cIcon": "gameicons/bingo_pressed.png", "icon": "gameicons/bingo.png", @@ -1643,8 +1617,7 @@ }, { "name": "drop", - "title": "बूंद", - "_title_comment": "बूंद", + "title": "Drop", "unlock": false, "cIcon": "gameicons/drop_pressed.png", "icon": "gameicons/drop.png", @@ -1690,8 +1663,7 @@ }, { "name": "train", - "title" : "रेल गाडी", - "_title_comment": "रेल गाडी", + "title": "Train", "unlock": false, "cIcon": "gameicons/train_pressed.png", "icon": "gameicons/train.png", @@ -1738,8 +1710,7 @@ }, { "name": "pop", - "title": "बादलों के माध्यम से उड़ो", - "_title_comment": "बादलों के माध्यम से उड़ो", + "title": "Fly Through Clouds", "unlock": false, "cIcon": "gameicons/pop_pressed.png", "icon": "gameicons/pop.png", @@ -1786,8 +1757,7 @@ }, { "name": "talk", - "title": "शब्दों को खिलाओ", - "_title_comment": "शब्दों को खिलाओ", + "title": "Feed the Words", "unlock": false, "cIcon": "gameicons/talk_pressed.png", "icon": "gameicons/talk.png", @@ -1833,8 +1803,7 @@ }, { "name": "memory", - "title": "याद", - "_title_comment": "याद", + "title": "Memory", "unlock": false, "cIcon": "gameicons/memory_pressed.png", "icon": "gameicons/memory.png", @@ -1880,8 +1849,7 @@ }, { "name": "circle", - "title": "पकड़", - "_title_comment": "पकड़", + "title": "Catch", "unlock": false, "cIcon": "gameicons/circle_pressed.png", "icon": "gameicons/circle.png", @@ -1927,8 +1895,7 @@ }, { "name": "pillar", - "title": "केक परत", - "_title_comment": "केक परत", + "title": "Layer the Cake", "unlock": false, "cIcon": "gameicons/pillar_pressed.png", "icon": "gameicons/pillar.png", @@ -1974,8 +1941,7 @@ }, { "name": "balloon", - "title": "उड़ना", - "_title_comment": "उड़ना", + "title": "Fly", "unlock": false, "cIcon": "gameicons/balloon_pressed.png", "icon": "gameicons/balloon.png", @@ -2018,8 +1984,7 @@ }, { "name": "sortit", - "title": "क्रमबद्ध करें", - "_title_comment": "क्रमबद्ध करें", + "title": "Sort It", "unlock": true, "cIcon": "gameicons/sortit_pressed.png", "icon": "gameicons/sortit.png", @@ -2058,8 +2023,7 @@ }, { "name": "shape", - "title": "छेद की मरम्मत करे", - "_title_comment": "छेद की मरम्मत करे", + "title": "Patch the Holes", "unlock": false, "cIcon": "gameicons/shape_pressed.png", "icon": "gameicons/shape.png", @@ -2100,8 +2064,7 @@ }, { "name": "Dots", - "title": "संख्या बिंदु", - "_title_comment": "संख्या बिंदु", + "title": "Number Dots", "unlock": false, "cIcon": "gameicons/numberdot_pressed.png", "icon": "gameicons/numberdot.png", @@ -2141,8 +2104,7 @@ }, { "name": "popcount", - "title": "मछली को गिनें", - "_title_comment": "मछली को गिनें", + "title": "Count the fish", "unlock": false, "cIcon": "gameicons/popcount_pressed.png", "icon": "gameicons/popcount.png", @@ -2185,8 +2147,7 @@ }, { "name": "spot", - "title": "पशु खोजें ", - "_title_comment": "पशु खोजें ", + "title": "Spot the Animals", "unlock": false, "cIcon": "gameicons/spot_pressed.png", "icon": "gameicons/spot.png", @@ -2227,8 +2188,7 @@ }, { "name": "Item", - "title": "तालाब भरें", - "_title_comment": "तालाब भरें", + "title": "Fill the Pond", "unlock": false, "cIcon": "gameicons/item_pressed.png", "icon": "gameicons/item.png", @@ -2273,8 +2233,7 @@ }, { "name": "ConnectTheDots", - "title": "बिंदुओ को जोडो", - "_title_comment": "बिंदुओ को जोडो", + "title": "Connect the Dots", "unlock": false, "cIcon": "gameicons/coonectthedot_pressed.png", "icon": "gameicons/coonectthedot.png", @@ -2314,8 +2273,7 @@ }, { "name": "chocolateFactory", - "title": "दूध का कारखाना", - "_title_comment": "दूध का कारखाना", + "title": "Milk Factory", "unlock": false, "cIcon": "gameicons/chocolatefactory_pressed.png", "icon": "gameicons/chocolatefactory.png", @@ -2360,8 +2318,7 @@ }, { "name": "step", - "title": "चरणों को क्रमबद्ध करें", - "_title_comment": "चरणों को क्रमबद्ध करें", + "title": "Arrange the Steps", "unlock": false, "cIcon": "gameicons/step_pressed.png", "icon": "gameicons/step.png", @@ -2405,8 +2362,7 @@ }, { "name": "Line", - "title": "कैंडी लाइन", - "_title_comment": "कैंडी लाइन", + "title": "Candy Line", "unlock": false, "cIcon": "gameicons/line_pressed.png", "icon": "gameicons/line.png", @@ -2447,8 +2403,7 @@ }, { "name": "mathlearning", - "title": "जोड़ घटाव", - "_title_comment": "जोड़ घटाव", + "title": "Addition Subtraction", "unlock": false, "cIcon": "gameicons/mathlearning_pressed.png", "icon": "gameicons/mathlearning.png", @@ -2491,8 +2446,7 @@ }, { "name": "balloonMath", - "title": "बुलबुला फोड़ो", - "_title_comment": "बुलबुला फोड़ो", + "title": "Pop the Balloon", "unlock": false, "cIcon": "gameicons/balloonpop_pressed.png", "icon": "gameicons/balloonpop.png", @@ -2533,8 +2487,7 @@ }, { "name": "shop", - "title": "किराने की दुकान", - "_title_comment": "किराने की दुकान", + "title": "Grocery Shop", "unlock": false, "cIcon": "gameicons/shopping_pressed.png", "icon": "gameicons/shopping.png", @@ -2575,8 +2528,7 @@ }, { "name": "Units", - "title": "एक पिज्जा बनाओ", - "_title_comment": "एक पिज्जा बनाओ", + "title": "Make a Pizza", "unlock": false, "cIcon": "gameicons/pizza_pressed.png", "icon": "gameicons/pizza.png", @@ -2617,8 +2569,7 @@ }, { "name": "atm", - "title": "पैसों की मशीन", - "_title_comment": "पैसों की मशीन", + "title": "Money Machine", "unlock": false, "cIcon": "gameicons/ATM_pressed.png", "icon": "gameicons/ATM.png", @@ -2659,8 +2610,7 @@ }, { "name": "jumpingNumbers", - "title": "सफलता की सीढ़ियां", - "_title_comment": "सफलता की सीढ़ियां", + "title": "Stepping Stones", "unlock": false, "cIcon": "gameicons/jumping numbers_pressed.png", "icon": "gameicons/jumping numbers.png", @@ -2701,8 +2651,7 @@ }, { "name": "card", - "title": "कार्ड जोड़ें", - "_title_comment": "कार्ड जोड़ें", + "title": "Add the Cards", "unlock": false, "cIcon": "gameicons/card_pressed.png", "icon": "gameicons/card.png", @@ -2743,8 +2692,7 @@ }, { "name": "Bounce", - "title": "आइसक्रीम को गिराओ", - "_title_comment": "आइसक्रीम को गिराओ", + "title": "Drop the Icecream", "unlock": false, "cIcon": "gameicons/icecream_pressed.png", "icon": "gameicons/icecream.png", @@ -2771,8 +2719,7 @@ }, { "name": "BasicMultiplication", - "title": "मूल गुणन", - "_title_comment": "मूल गुणन", + "title": "Basic Multiplication", "unlock": false, "cIcon": "gameicons/BasicMultiplication_pressed.png", "icon": "gameicons/BasicMultiplication.png", @@ -2815,8 +2762,7 @@ }, { "name": "table", - "title": "गुणा", - "_title_comment": "गुणा", + "title": "Multiply", "unlock": false, "cIcon": "gameicons/table_pressed.png", "icon": "gameicons/table.png", @@ -2851,8 +2797,7 @@ }, { "name": "Kung Fu Alpha", - "title": "निशान", - "_title_comment": "निशान", + "title": "Trace", "unlock": true, "cIcon": "gameicons/Kung Fu Alpha_pressed.png", "icon": "gameicons/Kung Fu Alpha.png", @@ -2962,8 +2907,7 @@ }, { "name": "cardraw", - "title": "घर जाओ", - "_title_comment": "घर जाओ", + "title": "Go Home", "unlock": false, "cIcon": "gameicons/cardraw_pressed.png", "icon": "gameicons/cardraw.png", @@ -3144,8 +3088,7 @@ }, { "name": "TreasureHunt", - "title": "ख़ज़ाने की खोज", - "_title_comment": "ख़ज़ाने की खोज", + "title": "Treasure Hunt", "unlock": false, "cIcon": "gameicons/TreasureHunt_pressed.png", "icon": "gameicons/TreasureHunt.png", @@ -3257,8 +3200,7 @@ }, { "name": "blastletter", - "title": "बम निष्क्रिय करें", - "_title_comment": "बम निष्क्रिय करें", + "title": "Defuse the Bomb", "unlock": false, "cIcon": "gameicons/blastletter_pressed.png", "icon": "gameicons/blastletter.png", @@ -3487,8 +3429,7 @@ }, { "name": "Door", - "title": "खलिहान दरवाजा", - "_title_comment": "खलिहान दरवाजा", + "title": "Barn Door", "unlock": false, "cIcon": "gameicons/doors_pressed.png", "icon": "gameicons/doors.png", diff --git a/goa/Resources/res/config/grammar_game_map_en.json b/goa/Resources/res/config/grammar_game_map_en.json new file mode 100644 index 000000000..357ccd550 --- /dev/null +++ b/goa/Resources/res/config/grammar_game_map_en.json @@ -0,0 +1,870 @@ +[ + { + "name": "baja", + "title": "Drive", + "unlock": true, + "cIcon": "gameicons/baja_pressed.png", + "icon": "gameicons/baja.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "40", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "jasmine" + }, + "5": { + "badge": "s/emergency_fuel" + }, + "12": { + "badge": "m/steady_steering" + }, + "20": { + "badge": "p/long_road" + }, + "28": { + "badge": "g/precious_oil" + }, + "32": { + "badge": "b/riding_car" + }, + "36": { + "badge": "c/minty_wheels" + }, + "40": { + "unlockMin": "shoot", + "min": "3" + } + }, + "backgroundJson": "plevelscreen2/bjlevelbg.json", + "foregroundJson": "plevelscreen2/bjlevelfrg.json", + "frontgroundJson": "plevelscreen2/bjlevelfng.json", + "maingroundJson": "plevelscreen2/bjlevelmng.json", + "menuPlist": "plevelscreen2/plevelscreen2.plist", + "menuPng": "plevelscreen2/plevelscreen2.png" + }, + { + "name": "jasmine", + "title": "Grow the Plants", + "unlock": false, + "cIcon": "gameicons/jasmine_pressed.png", + "icon": "gameicons/jasmine.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "7", + "numLevels": "40", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "chain" + }, + "6": { + "badge": "s/blooming_flower" + }, + "12": { + "badge": "m/smoking_pot" + }, + "18": { + "badge": "p/fresh_sunflower" + }, + "24": { + "badge": "g/pink_flower" + }, + "30": { + "badge": "b/growing_leaves" + }, + "36": { + "badge": "c/cocoa_beans" + }, + "40": { + "unlockMin": "shoot", + "min": "3" + } + }, + "backgroundJson": "jasminelevel/Layer1.json", + "foregroundJson": "jasminelevel/Layer3.json", + "frontgroundJson": "jasminelevel/Layer4.json", + "maingroundJson": "jasminelevel/Layer2.json", + "menuPlist": "jasminelevel/jasminelevel.plist", + "menuPng": "jasminelevel/jasminelevel.png" + }, + { + "name": "chain", + "title": "Animal Chain", + "unlock": false, + "cIcon": "gameicons/chain_pressed.png", + "icon": "gameicons/chain.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "24", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "wembley" + }, + "4": { + "badge": "g/tall_tree" + }, + "8": { + "badge": "c/banana_dip" + }, + "12": { + "badge": "b/standing_flamingo" + }, + "16": { + "badge": "p/huge_elephant" + }, + "20": { + "badge": "m/floating_feather" + }, + "22": { + "badge": "s/naughty_monkey" + }, + "24": { + "unlockMin": "shoot", + "min": "3" + } + }, + "backgroundJson": "chainlevel/chainbackground.json", + "foregroundJson": "chainlevel/chainforeground.json", + "frontgroundJson": "chainlevel/chainfrontground.json", + "maingroundJson": "chainlevel/chainmainground.json", + "menuPlist": "chainlevel/chainlevel.plist", + "menuPng": "chainlevel/chainlevel.png" + }, + { + "name": "wembley", + "title": "Alphabet Football", + "unlock": false, + "cIcon": "gameicons/wembley_pressed.png", + "icon": "gameicons/wembley.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "40", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "jazz" + }, + "6": { + "badge": "s/golden_boot" + }, + "12": { + "badge": "m/floating_feather" + }, + "18": { + "badge": "p/huge_elephant" + }, + "24": { + "badge": "g/tall_tree" + }, + "30": { + "badge": "b/standing_flamingo" + }, + "36": { + "badge": "c/banana_dip" + }, + "40": { + "unlockMin": "shoot", + "min": "3" + } + }, + "backgroundJson": "wembleylevel/layer1.json", + "foregroundJson": "wembleylevel/level3.json", + "frontgroundJson": "wembleylevel/level4.json", + "maingroundJson": "wembleylevel/level2.json", + "menuPlist": "wembleylevel/wembleylevel.plist", + "menuPng": "wembleylevel/wembleylevel.png" + }, + { + "name": "jazz", + "title": "Drums", + "unlock": false, + "cIcon": "gameicons/jazz_pressed.png", + "icon": "gameicons/jazz.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "40", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "shoot" + }, + "7": { + "badge": "s/noise_maker" + }, + "14": { + "badge": "m/crazy_monkey" + }, + "21": { + "badge": "p/drum_stick" + }, + "26": { + "badge": "g/music_jhunjhun" + }, + "32": { + "badge": "b/musical_notes" + }, + "38": { + "badge": "c/noisy_cymbal" + }, + "40": { + "unlockMin": "shoot", + "min": "3" + } + }, + "backgroundJson": "jazzlevel/background.json", + "foregroundJson": "jazzlevel/foreground.json", + "frontgroundJson": "jazzlevel/frontground.json", + "maingroundJson": "jazzlevel/mainground.json", + "menuPlist": "jazzlevel/jazzlevel.plist", + "menuPng": "jazzlevel/jazzlevel.png" + }, + { + "name": "shoot", + "title": "Shoot", + "unlock": false, + "cIcon": "gameicons/shoot_pressed.png", + "icon": "gameicons/shoot.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "4", + "numLevels": "30", + "autoLevel": true, + "rewards": { + "11": { + "unlock": "owl" + }, + "5": { + "badge": "s/yummy_icecream" + }, + "10": { + "badge": "m/broken_branch" + }, + "15": { + "badge": "p/sweet_cupcake" + }, + "20": { + "badge": "g/yummy_lollipop" + }, + "24": { + "badge": "b/slinging_slingshot" + }, + "27": { + "badge": "c/swirly_shots" + } + }, + "backgroundJson": "pinatacandylevel/background.json", + "foregroundJson": "pinatacandylevel/foreground.json", + "frontgroundJson": "pinatacandylevel/frontground.json", + "maingroundJson": "pinatacandylevel/mainground.json", + "menuPlist": "pinatacandylevel/pinatacandylevel.plist", + "menuPng": "pinatacandylevel/pinatacandylevel.png" + }, + { + "name": "owl", + "title": "Spelling Owl", + "unlock": false, + "cIcon": "gameicons/owl_pressed.png", + "icon": "gameicons/owl.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "7", + "numLevels": "50", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "stack" + }, + "8": { + "badge": "s/wise_owl" + }, + "16": { + "badge": "m/lucky_leave" + }, + "24": { + "badge": "p/furry_bird" + }, + "32": { + "badge": "g/pink_jellyfish" + }, + "40": { + "badge": "b/underwater_coral" + }, + "45": { + "badge": "c/creamy_stand" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "owllevel/background.json", + "foregroundJson": "owllevel/foreground.json", + "frontgroundJson": "owllevel/frontground.json", + "maingroundJson": "owllevel/mainground.json", + "menuPlist": "owllevel/owllevel.plist", + "menuPng": "owllevel/owllevel.png" + }, + { + "name": "stack", + "title": "Stack the Words", + "unlock": false, + "cIcon": "gameicons/stack_pressed.png", + "icon": "gameicons/stack.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "9", + "numLevels": "72", + "rewards": { + "10": { + "unlock": "order" + }, + "12": { + "badge": "s/fancy_Box" + }, + "24": { + "badge": "m/heavy_crate" + }, + "36": { + "badge": "p/milk_container" + }, + "48": { + "badge": "g/priceless_peral" + }, + "60": { + "badge": "b/running_conveyor" + }, + "72": { + "badge": "c/priceless_shell" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "plevelscreen/sklevelbg.json", + "foregroundJson": "plevelscreen/sklevelfrg.json", + "frontgroundJson": "plevelscreen/sklevelfng.json", + "maingroundJson": "plevelscreen/sklevelmng.json", + "menuPlist": "plevelscreen/plevelscreen.plist", + "menuPng": "plevelscreen/plevelscreen.png" + }, + { + "name": "order", + "title": "Arrange in Order", + "unlock": false, + "cIcon": "gameicons/order_pressed.png", + "icon": "gameicons/order.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "20", + "rewards": { + "10": { + "unlock": "dash" + }, + "3": { + "badge": "s/candy_tree" + }, + "6": { + "badge": "m/tower_toy" + }, + "9": { + "badge": "p/crafty_cart" + }, + "12": { + "badge": "g/candy_cane" + }, + "15": { + "badge": "b/filled_paintbucket" + }, + "18": { + "badge": "c/creamy_cake" + }, + "20": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "orderlevel/Layer1.json", + "foregroundJson": "orderlevel/Layer3.json", + "frontgroundJson": "orderlevel/Layer4.json", + "maingroundJson": "orderlevel/Layer2.json", + "menuPlist": "orderlevel/orderlevel.plist", + "menuPng": "orderlevel/orderlevel.png" + }, + { + "name": "dash", + "title": "Dash", + "unlock": false, + "cIcon": "gameicons/dash_pressed.png", + "icon": "gameicons/dash.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "10", + "numLevels": "75", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "bingo" + }, + "13": { + "badge": "s/fluffy_cloud" + }, + "26": { + "badge": "m/jumping_otter" + }, + "39": { + "badge": "p/floating_land" + }, + "52": { + "badge": "g/progressive_flag" + }, + "65": { + "badge": "b/hot_gingerbreadman" + }, + "75": { + "badge": "c/furtune_wheel" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + + }, + "backgroundJson": "dashlevel/background.json", + "foregroundJson": "dashlevel/foreground.json", + "frontgroundJson": "dashlevel/frontground.json", + "maingroundJson": "dashlevel/mainground.json", + "menuPlist": "dashlevel/dashlevel.plist", + "menuPng": "dashlevel/dashlevel.png" + }, + { + "name": "bingo", + "title": "Bingo", + "unlock": false, + "cIcon": "gameicons/bingo_pressed.png", + "icon": "gameicons/bingo.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "36", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "drop" + }, + "6": { + "badge": "s/curious_giraffe" + }, + "12": { + "badge": "p/healthy_cauliflower" + }, + "18": { + "badge": "m/crakalaking_chimp" + }, + "24": { + "badge": "b/roaring_lion" + }, + "30": { + "badge": "c/funky_elephant" + }, + "36": { + "badge": "g/ripe_watermelon" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "bingolevel/layer1.json", + "foregroundJson": "bingolevel/leyel3.json", + "frontgroundJson": "bingolevel/level4.json", + "maingroundJson": "bingolevel/layer2.json", + "menuPlist": "bingolevel/bingolevel.plist", + "menuPng": "bingolevel/bingolevel.png" + }, + { + "name": "drop", + "title": "Drop", + "unlock": false, + "cIcon": "gameicons/drop_pressed.png", + "icon": "gameicons/drop.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "8", + "numLevels": "60", + "autoLevel": true, + "rewards": { + "9": { + "unlock": "train" + }, + "10": { + "badge": "s/popping_balloon" + }, + "20": { + "badge": "m/leaf_bomb" + }, + "30": { + "badge": "b/droping_ball" + }, + "40": { + "badge": "g/cute_bow" + }, + "50": { + "badge": "c/ball_of_leaves" + }, + "60": { + "badge": "p/happiness_box" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "droplevel/Layer1.json", + "foregroundJson": "droplevel/Layer3.json", + "frontgroundJson": "droplevel/Layer4.json", + "maingroundJson": "droplevel/Layer2.json", + "menuPlist": "droplevel/droplevel.plist", + "menuPng": "droplevel/droplevel.png" + }, + { + "name": "train", + "title": "Train", + "unlock": false, + "cIcon": "gameicons/train_pressed.png", + "icon": "gameicons/train.png", + "multiPlayer": false, + "isJSGame": false, + "pureJS": "TrainLayer", + "script": "src/start/train.js", + "span": "6", + "numLevels": "48", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "pop" + }, + "8": { + "badge": "s/express_train" + }, + "16": { + "badge": "m/melodious_whistle" + }, + "24": { + "badge": "p/go_signal" + }, + "32": { + "badge": "g/high_hill" + }, + "40": { + "badge": "b/endless_traintrack" + }, + "48": { + "badge": "c/marsmallow_cave" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "trainlevel/background.json", + "foregroundJson": "trainlevel/foreground.json", + "frontgroundJson": "trainlevel/frontground.json", + "maingroundJson": "trainlevel/mainground.json", + "menuPlist": "trainlevel/trainlevel.plist", + "menuPng": "trainlevel/trainlevel.png" + }, + { + "name": "pop", + "title": "Fly Through Clouds", + "unlock": false, + "cIcon": "gameicons/pop_pressed.png", + "icon": "gameicons/pop.png", + "multiPlayer": false, + "isJSGame": true, + "pureJS": "PopLayer", + "script": "src/start/pop.js", + "span": "6", + "numLevels": "48", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "talk" + }, + "8": { + "badge": "c/chocolava_mountain" + }, + "16": { + "badge": "s/joy_ride" + }, + "24": { + "badge": "g/white_cloud" + }, + "32": { + "badge": "p/fast_fan" + }, + "40": { + "badge": "m/eagles_helmet" + }, + "48": { + "badge": "b/flying_aeroplane" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "pop/pplevelbg.json", + "foregroundJson": "pop/pplevelfrg.json", + "frontgroundJson": "pop/pplevelfng.json", + "maingroundJson": "pop/pplevelmng.json", + "menuPlist": "plevelscreen/plevelscreen.plist", + "menuPng": "plevelscreen/plevelscreen.png" + }, + { + "name": "talk", + "title": "Feed the Words", + "unlock": false, + "cIcon": "gameicons/talk_pressed.png", + "icon": "gameicons/talk.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "9", + "autoLevel": true, + "numLevels": "72", + "rewards": { + "10": { + "unlock": "memory" + }, + "12": { + "badge": "s/glimmering_fish" + }, + "24": { + "badge": "m/jungly_lion" + }, + "36": { + "badge": "p/clean_plate" + }, + "48": { + "badge": "g/bushy_plant" + }, + "60": { + "badge": "b/empty_basket" + }, + "72": { + "badge": "c/sweet_meat" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "talkislandlevel/talkbackground.json", + "foregroundJson": "talkislandlevel/talkforeground.json", + "frontgroundJson": "talkislandlevel/talkfrontground.json", + "maingroundJson": "talkislandlevel/talkmainground.json", + "menuPlist": "talkislandlevel/talkislandlevel.plist", + "menuPng": "talkislandlevel/talkislandlevel.png" + }, + { + "name": "memory", + "title": "Memory", + "unlock": false, + "cIcon": "gameicons/memory_pressed.png", + "icon": "gameicons/memory.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "6", + "numLevels": "36", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "circle" + }, + "6": { + "badge": "s/mama_hen" + }, + "12": { + "badge": "m/stripey_zebra" + }, + "18": { + "badge": "p/shiny_egg" + }, + "24": { + "badge": "g/little_nest" + }, + "30": { + "badge": "b/open_window" + }, + "36": { + "badge": "c/toffee_tree" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "memorylevel/layer1.json", + "foregroundJson": "memorylevel/layer3.json", + "frontgroundJson": "memorylevel/layer4.json", + "maingroundJson": "memorylevel/layer2.json", + "menuPlist": "memorylevel/memorylevel.plist", + "menuPng": "memorylevel/memorylevel.png" + }, + { + "name": "circle", + "title": "Catch", + "unlock": false, + "cIcon": "gameicons/circle_pressed.png", + "icon": "gameicons/circle.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "10", + "numLevels": "75", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "pillar" + }, + "13": { + "badge": "s/falling_stone" + }, + "26": { + "badge": "m/squidy_squid" + }, + "39": { + "badge": "p/sweet_cake" + }, + "52": { + "badge": "g/gold_fish" + }, + "65": { + "badge": "b/grizzly_stonehand" + }, + "75": { + "badge": "c/sweet_fudge" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "circleislandlevel/circlebackground.json", + "foregroundJson": "circleislandlevel/circleforeground.json", + "frontgroundJson": "circleislandlevel/circlefrontground.json", + "maingroundJson": "circleislandlevel/circlemainground.json", + "menuPlist": "circleislandlevel/circleislandlevel.plist", + "menuPng": "circleislandlevel/circleislandlevel.png" + }, + { + "name": "pillar", + "title": "Layer the Cake", + "unlock": false, + "cIcon": "gameicons/pillar_pressed.png", + "icon": "gameicons/pillar.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "10", + "numLevels": "75", + "autoLevel": true, + "rewards": { + "10": { + "unlock": "balloon" + }, + "13": { + "badge": "s/climbing_ladder" + }, + "26": { + "badge": "m/windy_windmill" + }, + "39": { + "badge": "p/dry_hay" + }, + "52": { + "badge": "g/funny_starfish" + }, + "65": { + "badge": "b/yummy_candystick" + }, + "75": { + "badge": "c/cupy_cake" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "layercandylevel/background.json", + "foregroundJson": "layercandylevel/foreground.json", + "frontgroundJson": "layercandylevel/frontground.json", + "maingroundJson": "layercandylevel/mainground.json", + "menuPlist": "layercandylevel/layercandylevel.plist", + "menuPng": "layercandylevel/layercandylevel.png" + }, + { + "name": "balloon", + "title": "Fly", + "unlock": false, + "cIcon": "gameicons/balloon_pressed.png", + "icon": "gameicons/balloon.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "9", + "numLevels": "72", + "autoLevel": true, + "rewards": { + "12": { + "badge": "s/life_saver" + }, + "24": { + "badge": "m/launching_rocket" + }, + "36": { + "badge": "p/shocking_shock" + }, + "48": { + "badge": "g/pink_candy" + }, + "60": { + "badge": "b/strong_safe" + }, + "72": { + "badge": "c/cotton_candy" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "balloonhero/bllevelbg.json", + "foregroundJson": "balloonhero/bllevelfrg.json", + "frontgroundJson": "balloonhero/bllevelfng.json", + "maingroundJson": "balloonhero/bllevelmng.json", + "menuPlist": "plevelscreen/plevelscreen.plist", + "menuPng": "plevelscreen/plevelscreen.png" + } +] diff --git a/goa/Resources/res/config/grammar_game_map.json b/goa/Resources/res/config/grammar_game_map_hi.json similarity index 100% rename from goa/Resources/res/config/grammar_game_map.json rename to goa/Resources/res/config/grammar_game_map_hi.json diff --git a/goa/Resources/res/config/main_menu_title.json b/goa/Resources/res/config/main_menu_title.json new file mode 100644 index 000000000..0cf2e3890 --- /dev/null +++ b/goa/Resources/res/config/main_menu_title.json @@ -0,0 +1,4 @@ +{ + "en": ["Alphabet", "Numbers", "Writing", "Library", "Words", "Map"], + "hi": ["वर्णमाला", "अंक", "लेखन", "पुस्तकालय", "शब्द", "नक्शा"] +} \ No newline at end of file diff --git a/goa/Resources/res/config/map_places.json b/goa/Resources/res/config/map_places.json new file mode 100644 index 000000000..d722b1077 --- /dev/null +++ b/goa/Resources/res/config/map_places.json @@ -0,0 +1,4 @@ +{ + "en": ["Bengaluru", "Los Angeles", "Houston", "London", "Dar es Salaam", "Camp", "Farm House", "Mining Town"], + "hi": ["बेंगलुरु", "लॉस एंजेलिस", "ह्यूस्टन", "लंडन", "डार एस सलाम", "कैंप", "फार्म हाउस", "खनन शहर"] +} \ No newline at end of file diff --git a/goa/Resources/res/config/maths_game_map.json b/goa/Resources/res/config/maths_game_map_en.json similarity index 100% rename from goa/Resources/res/config/maths_game_map.json rename to goa/Resources/res/config/maths_game_map_en.json diff --git a/goa/Resources/res/config/maths_game_map_hi.json b/goa/Resources/res/config/maths_game_map_hi.json new file mode 100644 index 000000000..32960f8ce --- /dev/null +++ b/goa/Resources/res/config/maths_game_map_hi.json @@ -0,0 +1,2 @@ +[ +] \ No newline at end of file diff --git a/goa/Resources/res/config/shapes_game_map_en.json b/goa/Resources/res/config/shapes_game_map_en.json new file mode 100644 index 000000000..513766b14 --- /dev/null +++ b/goa/Resources/res/config/shapes_game_map_en.json @@ -0,0 +1,815 @@ +[ + { + "name": "sortit", + "title": "Sort It", + "unlock": true, + "cIcon": "gameicons/sortit_pressed.png", + "icon": "gameicons/sortit.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "6", + "rewards": { + "1": { + "badge": "s/strawberry_cake" + }, + "2": { + "badge": "m/musical_harp" + }, + "3": { + "unlock": "shape", + "badge": "p/arranging_blocks" + }, + "4": { + "badge": "g/large_bowl" + }, + "5": { + "badge": "b/elite_book" + }, + "6": { + "badge": "c/minty_notes" + } + }, + "backgroundJson": "sortitlevel/background.json", + "foregroundJson": "sortitlevel/foreground.json", + "frontgroundJson": "sortitlevel/frontground.json", + "maingroundJson": "sortitlevel/mainground.json", + "menuPlist": "sortitlevel/sortitlevel.plist", + "menuPng": "sortitlevel/sortitlevel.png" + }, + { + "name": "shape", + "title": "Patch the Holes", + "unlock": false, + "cIcon": "gameicons/shape_pressed.png", + "icon": "gameicons/shape.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "10", + "rewards": { + "1": { + "badge": "s/glass_star" + }, + "2": { + "badge": "m/gold_plus" + }, + "4": { + "badge": "p/blue_pyramid" + }, + "5": { + "unlock": "Dots" + }, + "6": { + "badge": "g/pink_hexagon" + }, + "8": { + "badge": "b/red_circle" + }, + "10": { + "badge": "c/square_delight" + } + }, + "backgroundJson": "shapelevel/shapelevelbackground.json", + "foregroundJson": "shapelevel/shapelevelforeground.json", + "frontgroundJson": "shapelevel/shapelevelfrontground.json", + "maingroundJson": "shapelevel/shapelevelmainground.json", + "menuPlist": "shapelevel/shapelevel.plist", + "menuPng": "shapelevel/shapelevel.png" + }, + { + "name": "Dots", + "title": "Number Dots", + "unlock": false, + "cIcon": "gameicons/numberdot_pressed.png", + "icon": "gameicons/numberdot.png", + "multiPlayer": false, + "isJSGame": true, + "pureJS": "DotsLayer", + "script": "src/start/dots.js", + "span": "2", + "numLevels": "12", + "rewards": { + "1": { + "badge": "s/number_one" + }, + "3": { + "badge": "c/tri_cookie" + }, + "5": { + "unlock": "popcount" + }, + "4": { + "badge": "b/fantastic_four" + }, + "6": { + "badge": "p/number_six" + }, + "12": { + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "dots_level/background.json", + "foregroundJson": "dots_level/foreground.json", + "frontgroundJson": "dots_level/frontground.json", + "maingroundJson": "dots_level/mainground.json", + "menuPlist": "dots_level/dots_level.plist", + "menuPng": "dots_level/dots_level.png" + }, + { + "name": "popcount", + "title": "Count the fish", + "unlock": false, + "cIcon": "gameicons/popcount_pressed.png", + "icon": "gameicons/popcount.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "10", + "rewards": { + "5": { + "unlock": "spot" + }, + "2": { + "badge": "s/star_fish" + }, + "4": { + "badge": "m/sandy_castle" + }, + "6": { + "badge": "p/lifesaver_tube" + }, + "8": { + "badge": "g/wide_umbrella" + }, + "9": { + "badge": "b/sunny_beachball" + }, + "10": { + "badge": "c/shiny_shell", + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "popcountlevel/background.json", + "foregroundJson": "popcountlevel/foreground.json", + "frontgroundJson": "popcountlevel/frontground.json", + "maingroundJson": "popcountlevel/mainground.json", + "menuPlist": "popcountlevel/popcountlevel.plist", + "menuPng": "popcountlevel/popcountlevel.png" + }, + { + "name": "spot", + "title": "Spot the Animals", + "unlock": false, + "cIcon": "gameicons/spot_pressed.png", + "icon": "gameicons/spot.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "6", + "rewards": { + "1": { + "badge": "s/mighty_tractor" + }, + "2": { + "badge": "m/goldy_goat" + }, + "3": { + "badge": "p/wind_mill", + "unlock": "Item" + }, + "4": { + "badge": "g/old_house" + }, + "5": { + "badge": "b/big_barn" + }, + "6": { + "badge": "c/cute_pig", + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "spotlevel/Layer1.json", + "foregroundJson": "spotlevel/Layer3.json", + "frontgroundJson": "spotlevel/Layer4.json", + "maingroundJson": "spotlevel/Layer2.json", + "menuPlist": "spotlevel/spotlevel.plist", + "menuPng": "spotlevel/spotlevel.png" + }, + { + "name": "Item", + "title": "Fill the Pond", + "unlock": false, + "cIcon": "gameicons/item_pressed.png", + "icon": "gameicons/item.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "25", + "rewards": { + "10": { + "unlock": "ConnectTheDots" + }, + "4": { + "badge": "s/green_tree" + }, + "8": { + "badge": "m/tiny_dragonfly" + }, + "12": { + "badge": "p/water_splash" + }, + "16": { + "badge": "g/fresh_fish" + }, + "20": { + "badge": "b/smiling_frog" + }, + "25": { + "badge": "c/sweet_rod" + }, + "15": { + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "itemlevel/background.json", + "foregroundJson": "itemlevel/foreground.json", + "frontgroundJson": "itemlevel/frontground.json", + "maingroundJson": "itemlevel/mainground.json", + "menuPlist": "itemlevel/itemlevel.plist", + "menuPng": "itemlevel/itemlevel.png" + }, + { + "name": "ConnectTheDots", + "title": "Connect the Dots", + "unlock": false, + "cIcon": "gameicons/coonectthedot_pressed.png", + "icon": "gameicons/coonectthedot.png", + "multiPlayer": false, + "isJSGame": true, + "pureJS": "ConnectTheDotsLayer", + "script": "src/start/connectTheDots.js", + "span": "2", + "numLevels": "10", + "rewards": { + "5": { + "unlock": "chocolateFactory" + }, + "2": { + "badge": "s/blasting_dot" + }, + "3": { + "badge": "p/playful_domino" + }, + "6": { + "badge": "b/rolling_dice" + }, + "8": { + "badge": "c/candy_treats" + }, + "9": { + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "connectlevel/background.json", + "foregroundJson": "connectlevel/foreground.json", + "frontgroundJson": "connectlevel/frontground.json", + "maingroundJson": "connectlevel/mainground.json", + "menuPlist": "connectlevel/connectlevel.plist", + "menuPng": "connectlevel/connectlevel.png" + }, + { + "name": "chocolateFactory", + "title": "Milk Factory", + "unlock": false, + "cIcon": "gameicons/chocolatefactory_pressed.png", + "icon": "gameicons/chocolatefactory.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "20", + "rewards": { + "3": { + "badge": "s/milk_bottle" + }, + "6": { + "badge": "c/cream_jug" + }, + "9": { + "unlock": "step" + }, + "10": { + "badge": "g/sharp_drop" + }, + "13": { + "badge": "m/milky_cow" + }, + "16": { + "badge": "p/metallic_gear" + }, + "20": { + "badge": "b/loaded_container" + }, + "15": { + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "plevelscreen2/cflevelbg.json", + "foregroundJson": "plevelscreen2/cflevelfrg.json", + "frontgroundJson": "plevelscreen2/cflevelfng.json", + "maingroundJson": "plevelscreen2/cflevelmng.json", + "menuPlist": "plevelscreen2/plevelscreen2.plist", + "menuPng": "plevelscreen2/plevelscreen2.png" + }, + { + "name": "step", + "title": "Arrange the Steps", + "unlock": false, + "cIcon": "gameicons/step_pressed.png", + "icon": "gameicons/step.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "6", + "numLevels": "45", + "rewards": { + "20": { + "unlock": "Line" + }, + "2": { + "badge": "g/gem_balloon" + }, + "8": { + "badge": "s/chocolate_bar" + }, + "16": { + "badge": "m/climbing_step" + }, + "24": { + "badge": "p/slippery_steps" + }, + "32": { + "badge": "g/green_gem" + }, + "40": { + "badge": "b/creamy_donut" + }, + "45": { + "badge": "c/flying_fluffy" + } + }, + "backgroundJson": "stepcandylevel/background.json", + "foregroundJson": "stepcandylevel/foreground.json", + "frontgroundJson": "stepcandylevel/frontground.json", + "maingroundJson": "stepcandylevel/mainground.json", + "menuPlist": "stepcandylevel/stepcandylevel.plist", + "menuPng": "stepcandylevel/stepcandylevel.png" + }, + { + "name": "Line", + "title": "Candy Line", + "unlock": false, + "cIcon": "gameicons/line_pressed.png", + "icon": "gameicons/line.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "3", + "numLevels": "20", + "rewards": { + "3": { + "badge": "s/peppermint_candy" + }, + "6": { + "badge": "m/juicy_lollipop" + }, + "9": { + "badge": "p/chocolate_toffee" + }, + "10": { + "unlock": "mathlearning" + }, + "12": { + "badge": "g/heart_gem" + }, + "15": { + "badge": "b/sticky_jellybean" + }, + "20": { + "badge": "c/sugar_tag" + } + }, + "backgroundJson": "linecandylevel/background.json", + "foregroundJson": "linecandylevel/foreground.json", + "frontgroundJson": "linecandylevel/frontground.json", + "maingroundJson": "linecandylevel/mainground.json", + "menuPlist": "linecandylevel/linecandylevel.plist", + "menuPng": "linecandylevel/linecandylevel.png" + }, + { + "name": "mathlearning", + "title": "Addition Subtraction", + "unlock": false, + "cIcon": "gameicons/mathlearning_pressed.png", + "icon": "gameicons/mathlearning.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "10", + "rewards": { + "5": { + "unlock": "balloonMath" + }, + "2": { + "badge": "s/star_fish" + }, + "4": { + "badge": "m/sandy_castle" + }, + "6": { + "badge": "p/lifesaver_tube" + }, + "8": { + "badge": "g/wide_umbrella" + }, + "9": { + "badge": "b/sunny_beachball" + }, + "10": { + "badge": "c/shiny_shell", + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "mathlearninglevel/background.json", + "foregroundJson": "mathlearninglevel/foreground.json", + "frontgroundJson": "mathlearninglevel/frontground.json", + "maingroundJson": "mathlearninglevel/mainground.json", + "menuPlist": "mathlearninglevel/mathlearninglevel.plist", + "menuPng": "mathlearninglevel/mathlearninglevel.png" + }, + { + "name": "balloonMath", + "title": "Pop the Balloon", + "unlock": false, + "cIcon": "gameicons/balloonpop_pressed.png", + "icon": "gameicons/balloonpop.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "4", + "numLevels": "30", + "rewards": { + "15": { + "unlock": "shop" + }, + "6": { + "badge": "c/candy_balloon" + }, + "12": { + "badge": "g/gaint_balloon" + }, + "18": { + "badge": "p/balloon_pump" + }, + "24": { + "badge": "b/shinny_balloontoy" + }, + "28": { + "badge": "s/floating_balloon" + }, + "30": { + "badge": "m/blasting_ballon" + } + }, + "backgroundJson": "balloonpoplevel/backgroung.json", + "foregroundJson": "balloonpoplevel/foreground.json", + "frontgroundJson": "balloonpoplevel/frontground.json", + "maingroundJson": "balloonpoplevel/mainground.json", + "menuPlist": "balloonpoplevel/balloonpoplevel.plist", + "menuPng": "balloonpoplevel/mainground.png" + }, + { + "name": "shop", + "title": "Grocery Shop", + "unlock": false, + "cIcon": "gameicons/shopping_pressed.png", + "icon": "gameicons/shopping.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "30", + "rewards": { + "7": { + "unlock": "Units" + }, + "5": { + "badge": "m/shopping_bag" + }, + "10": { + "badge": "p/fresh_brinjal" + }, + "15": { + "badge": "b/poping_corn" + }, + "20": { + "badge": "g/raw_carrot" + }, + "25": { + "badge": "c/chocolate_coins" + }, + "30": { + "badge": "s/weighing_machine" + } + }, + "backgroundJson": "shopinglevel/level1.json", + "foregroundJson": "shopinglevel/level3.json", + "frontgroundJson": "shopinglevel/level4.json", + "maingroundJson": "shopinglevel/level2.json", + "menuPlist": "shopinglevel/shopinglevel.plist", + "menuPng": "shopinglevel/shopinglevel.png" + }, + { + "name": "Units", + "title": "Make a Pizza", + "unlock": false, + "cIcon": "gameicons/pizza_pressed.png", + "icon": "gameicons/pizza.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "10", + "rewards": { + "5": { + "unlock": "atm" + }, + "1": { + "badge": "s/tasty_pizza" + }, + "2": { + "badge": "m/pizza_box" + }, + "4": { + "badge": "p/yummy_slice" + }, + "6": { + "badge": "g/pizza_topping" + }, + "8": { + "badge": "b/pouring_saltnpepper" + }, + "10": { + "badge": "c/creamy_slushy" + } + }, + "backgroundJson": "unitslevel/level1.json", + "foregroundJson": "unitslevel/level3.json", + "frontgroundJson": "unitslevel/level4.json", + "maingroundJson": "unitslevel/level2.json", + "menuPlist": "unitslevel/unitslevel.plist", + "menuPng": "unitslevel/unitslevel.png" + }, + { + "name": "atm", + "title": "Money Machine", + "unlock": false, + "cIcon": "gameicons/ATM_pressed.png", + "icon": "gameicons/ATM.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "25", + "rewards": { + "14": { + "unlock": "jumpingNumbers" + }, + "4": { + "badge": "s/money_machine" + }, + "8": { + "badge": "m/dazzled_purse" + }, + "12": { + "badge": "p/cash_receipt" + }, + "16": { + "badge": "g/thin_card" + }, + "20": { + "badge": "b/stacked_currency" + }, + "25": { + "badge": "c/dollar_cane" + } + }, + "backgroundJson": "ATM_level/background.json", + "foregroundJson": "ATM_level/foreground.json", + "frontgroundJson": "ATM_level/frontground.json", + "maingroundJson": "ATM_level/mainground.json", + "menuPlist": "ATM_level/ATM_level.plist", + "menuPng": "ATM_level/ATM_level.png" + }, + { + "name": "jumpingNumbers", + "title": "Stepping Stones", + "unlock": false, + "cIcon": "gameicons/jumping numbers_pressed.png", + "icon": "gameicons/jumping numbers.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "29", + "rewards": { + "5": { + "badge": "s/cute_rabbit" + }, + "10": { + "badge": "m/baked_cookie" + }, + "15": { + "badge": "p/grass_patch" + }, + "17": { + "unlock": "card" + }, + "20": { + "badge": "g/sharp_scissors" + }, + "25": { + "badge": "b/floating_lotus" + }, + "29": { + "badge": "c/minty_stones" + } + }, + "backgroundJson": "jumping_number_level/background.json", + "foregroundJson": "jumping_number_level/foreground.json", + "frontgroundJson": "jumping_number_level/frontground.json", + "maingroundJson": "jumping_number_level/mainground.json", + "menuPlist": "jumping_number_level/jumping_number_level.plist", + "menuPng": "jumping_number_level/jumping_number_level.png" + }, + { + "name": "card", + "title": "Add the Cards", + "unlock": false, + "cIcon": "gameicons/card_pressed.png", + "icon": "gameicons/card.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "3", + "numLevels": "20", + "rewards": { + "10": { + "unlock": "Bounce" + }, + "3": { + "badge": "s/happy_cow" + }, + "6": { + "badge": "m/hot_dog" + }, + "9": { + "badge": "p/chubby_pig" + }, + "12": { + "badge": "g/roast_chicken" + }, + "16": { + "badge": "b/gleeful_sheep" + }, + "20": { + "badge": "c/sweet_cards" + } + }, + "backgroundJson": "cardlevel/Layer1.json", + "foregroundJson": "cardlevel/Layer3.json", + "frontgroundJson": "cardlevel/Layer4.json", + "maingroundJson": "cardlevel/Layer2.json", + "menuPlist": "cardlevel/cardlevel.plist", + "menuPng": "cardlevel/cardlevel.png" + }, + { + "name": "Bounce", + "title": "Drop the Icecream", + "unlock": false, + "cIcon": "gameicons/icecream_pressed.png", + "icon": "gameicons/icecream.png", + "multiPlayer": false, + "isJSGame": false, + "pureJS": "BounceLayer", + "script": "src/start/bounce.js", + "span": "4", + "numLevels": "20", + "rewards": { + "10": { + "unlock": "BasicMultiplication" + }, + "5": { + "badge": "s/golden_boot" + } + }, + "backgroundJson": "icecreamlevel/background.json", + "foregroundJson": "icecreamlevel/foreground.json", + "frontgroundJson": "icecreamlevel/frontground.json", + "maingroundJson": "icecreamlevel/mainground.json", + "menuPlist": "icecreamlevel/icecreamlevel.plist", + "menuPng": "icecreamlevel/icecreamlevel.png" + }, + { + "name": "BasicMultiplication", + "title": "Basic Multiplication", + "unlock": false, + "cIcon": "gameicons/BasicMultiplication_pressed.png", + "icon": "gameicons/BasicMultiplication.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "6", + "rewards": { + "5": { + "unlock": "table" + }, + "2": { + "badge": "s/star_fish" + }, + "4": { + "badge": "m/sandy_castle" + }, + "6": { + "badge": "p/lifesaver_tube" + }, + "8": { + "badge": "g/wide_umbrella" + }, + "9": { + "badge": "b/sunny_beachball" + }, + "10": { + "badge": "c/shiny_shell", + "unlockMin": "step", + "min": "4" + } + }, + "backgroundJson": "basicmultiplicationlevel/background.json", + "foregroundJson": "basicmultiplicationlevel/foreground.json", + "frontgroundJson": "basicmultiplicationlevel/frontground.json", + "maingroundJson": "basicmultiplicationlevel/mainground.json", + "menuPlist": "basicmultiplicationlevel/basicmultiplicationlevel.plist", + "menuPng": "basicmultiplicationlevel/basicmultiplicationlevel.png" + }, + { + "name": "table", + "title": "Multiply", + "unlock": false, + "cIcon": "gameicons/table_pressed.png", + "icon": "gameicons/table.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "3", + "numLevels": "15", + "rewards": { + "3": { + "badge": "s/ocean_fish" + }, + "6": { + "badge": "m/shallow_anchor" + }, + "9": { + "badge": "p/water_plant" + }, + "12": { + "badge": "g/jelly_fish" + }, + "15": { + "badge": "b/drowning_scubaglass" + } + }, + "backgroundJson": "tablelevel/background.json", + "foregroundJson": "tablelevel/foreground.json", + "frontgroundJson": "tablelevel/frontground.json", + "maingroundJson": "tablelevel/mainground.json", + "menuPlist": "tablelevel/tablelevel.plist", + "menuPng": "tablelevel/tablelevel.png" + } +] diff --git a/goa/Resources/res/config/shapes_game_map.json b/goa/Resources/res/config/shapes_game_map_hi.json similarity index 100% rename from goa/Resources/res/config/shapes_game_map.json rename to goa/Resources/res/config/shapes_game_map_hi.json diff --git a/goa/Resources/res/config/words_game_map_en.json b/goa/Resources/res/config/words_game_map_en.json new file mode 100644 index 000000000..b528754cd --- /dev/null +++ b/goa/Resources/res/config/words_game_map_en.json @@ -0,0 +1,204 @@ +[ + { + "name": "cat", + "title": "Cat on the Roof", + "unlock": true, + "cIcon": "gameicons/cat_pressed.png", + "icon": "gameicons/cat.png", + "multiPlayer": false, + "isJSGame": false, + "autoLevel": true, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "40", + "rewards": { + "7": { + "badge": "s/limber_cat" + }, + "14": { + "badge": "m/lenghty_yarn" + }, + "21": { + "badge": "p/tiny_paw" + }, + "28": { + "badge": "g/glossy_light" + }, + "32": { + "badge": "b/zooming_rollerskates" + }, + "36": { + "badge": "c/chocolate_block" + }, + "40": { + "unlockMin": "shoot", + "min": "3" + } + }, + "backgroundJson": "hippolevel/background.json", + "foregroundJson": "hippolevel/foregorund.json", + "frontgroundJson": "hippolevel/frontground.json", + "maingroundJson": "hippolevel/mainground.json", + "menuPlist": "hippolevel/hippolevel.plist", + "menuPng": "hippolevel/hippolevel.png" + }, + { + "name": "phonicsfree", + "title": "Stack the Words", + "unlock": true, + "cIcon": "gameicons/Phonicsfree_pressed.png", + "icon": "gameicons/Phonicsfree.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "1", + "numLevels": "3", + "rewards": { + "1": { + "unlock": "table" + }, + "5": { + "badge": "s/golden_boot" + } + }, + "backgroundJson": "phonicsfreelevel/background.json", + "foregroundJson": "phonicsfreelevel/foreground.json", + "frontgroundJson": "phonicsfreelevel/frontground.json", + "maingroundJson": "phonicsfreelevel/mainground.json", + "menuPlist": "phonicsfreelevel/phonicsfreelevel.plist", + "menuPng": "phonicsfreelevel/phonicsfreelevel.png" + }, + { + "name": "alphaphonics", + "title": "Alpha Phonics", + "unlock": true, + "cIcon": "gameicons/AlphaPhonics_pressed.png", + "icon": "gameicons/AlphaPhonics.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "4", + "numLevels": "26", + "rewards": { + "1": { + "unlock": "table" + }, + "5": { + "badge": "s/golden_boot" + } + }, + "backgroundJson": "plevelscreen2/aplevelbg.json", + "foregroundJson": "plevelscreen2/aplevelfrg.json", + "frontgroundJson": "plevelscreen2/aplevelfng.json", + "maingroundJson": "plevelscreen2/aplevelmng.json", + "menuPlist": "plevelscreen2/plevelscreen2.plist", + "menuPng": "plevelscreen2/plevelscreen2.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z" + ], + "numLevels": "24" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z" + ], + "numLevels": "26" + } + } + }, + { + "name": "find", + "title": "Find", + "unlock": true, + "cIcon": "gameicons/find_pressed.png", + "icon": "gameicons/find.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "2", + "numLevels": "10", + "rewards": { + "22": { + "unlock": "train" + }, + "10": { + "badge": "s/popping_balloon" + }, + "20": { + "badge": "m/leaf_bomb" + }, + "30": { + "badge": "b/droping_ball" + }, + "40": { + "badge": "g/cute_bow" + }, + "50": { + "badge": "c/ball_of_leaves" + }, + "60": { + "badge": "p/happiness_box" + }, + "25": { + "unlockMin": "map", + "min": "4" + } + }, + "backgroundJson": "findlevel/background.json", + "foregroundJson": "findlevel/foreground.json", + "frontgroundJson": "findlevel/frontground.json", + "maingroundJson": "findlevel/mainground.json", + "menuPlist": "findlevel/findlevel.plist", + "menuPng": "findlevel/findlevel.png" + } +] diff --git a/goa/Resources/res/config/words_game_map.json b/goa/Resources/res/config/words_game_map_hi.json similarity index 100% rename from goa/Resources/res/config/words_game_map.json rename to goa/Resources/res/config/words_game_map_hi.json diff --git a/goa/Resources/res/config/writing_game_map_en.json b/goa/Resources/res/config/writing_game_map_en.json new file mode 100644 index 000000000..2a71f6cad --- /dev/null +++ b/goa/Resources/res/config/writing_game_map_en.json @@ -0,0 +1,812 @@ +[ + { + "name": "Kung Fu Alpha", + "title": "Trace", + "unlock": true, + "cIcon": "gameicons/Kung Fu Alpha_pressed.png", + "icon": "gameicons/Kung Fu Alpha.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "autoLevel": true, + "numLevels": "26", + "rewards": { + "13": { + "unlock": "cardraw" + }, + "4": { + "badge": "s/roaring_lion" + }, + "8": { + "badge": "m/super_kick" + }, + "12": { + "badge": "p/kungfu_punch" + }, + "16": { + "badge": "g/abundant_bamboo" + }, + "20": { + "badge": "b/amazing_nun_chucks" + }, + "24": { + "badge": "c/flowing_star" + }, + "26": { + "unlockMin": "baja", + "min": "2" + } + }, + "backgroundJson": "kungfualpha/background.json", + "foregroundJson": "kungfualpha/foreground.json", + "frontgroundJson": "kungfualpha/frontground.json", + "maingroundJson": "kungfualpha/mainground.json", + "menuPlist": "kungfualpha/kungfualpha.plist", + "menuPng": "kungfualpha/kungfualpha.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-M", + "N-Z" + ], + "numLevels": "26" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z" + ], + "numLevels": "26" + } + } + }, + { + "name": "cardraw", + "title": "Go Home", + "unlock": false, + "cIcon": "gameicons/cardraw_pressed.png", + "icon": "gameicons/cardraw.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "8", + "numLevels": "62", + "rewards": { + "10": { + "unlock": "TreasureHunt" + }, + "5": { + "badge": "s/race_car" + }, + "20": { + "badge": "m/hot_wheel" + }, + "30": { + "badge": "p/sweet_house" + }, + "40": { + "badge": "g/green_grass" + }, + "50": { + "badge": "b/rotating_spanner" + }, + "60": { + "badge": "c/fuel_syrup" + }, + "26": { + "unlockMin": "baja", + "min": "2" + } + }, + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "r", + "s", + "t", + "u", + "v", + "w", + "y", + "z", + "a-z", + "a-z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + "numLevels": "62" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + "numLevels": "62" + } + }, + "backgroundJson": "cardraw_level/background.json", + "foregroundJson": "cardraw_level/foreground.json", + "frontgroundJson": "cardraw_level/frontground.json", + "maingroundJson": "cardraw_level/mainground.json", + "menuPlist": "cardraw_level/cardraw_level.plist", + "menuPng": "cardraw_level/cardraw_level.png" + }, + { + "name": "TreasureHunt", + "title": "Treasure Hunt", + "unlock": false, + "cIcon": "gameicons/TreasureHunt_pressed.png", + "icon": "gameicons/TreasureHunt.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "5", + "numLevels": "26", + "rewards": { + "3": { + "badge": "s/golden_boot" + }, + "4": { + "badge": "s/gift_box" + }, + "8": { + "badge": "m/Treasure_box" + }, + "12": { + "badge": "p/golden_coin" + }, + "16": { + "badge": "g/sea_flower" + }, + "20": { + "badge": "b/exotic_ruby" + }, + "10": { + "unlock": "blastletter" + }, + "26": { + "badge": "c/sugar_pearl" + }, + "24": { + "unlockMin": "baja", + "min": "2" + } + }, + "backgroundJson": "boxlevel/background.json", + "foregroundJson": "boxlevel/foreground.json", + "frontgroundJson": "boxlevel/frontground.json", + "maingroundJson": "boxlevel/mainground.json", + "menuPlist": "boxlevel/boxlevel.plist", + "menuPng": "boxlevel/boxlevel.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z" + ], + "numLevels": "26" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z" + ], + "numLevels": "26" + } + } + }, + { + "name": "blastletter", + "title": "Defuse the Bomb", + "unlock": false, + "cIcon": "gameicons/blastletter_pressed.png", + "icon": "gameicons/blastletter.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "10", + "numLevels": "86", + "rewards": { + "10": { + "unlock": "Door" + }, + "15": { + "badge": "s/atom_bomb" + }, + "30": { + "badge": "m/booming_switch" + }, + "45": { + "badge": "p/killer_blast" + }, + "60": { + "badge": "g/booming_sound" + }, + "75": { + "badge": "b/cracking_cracker" + }, + "82": { + "badge": "c/candycane_dynamite" + }, + "26": { + "unlockMin": "baja", + "min": "2" + } + }, + "backgroundJson": "blastletterlevel/background.json", + "foregroundJson": "blastletterlevel/foreground.json", + "frontgroundJson": "blastletterlevel/frontground.json", + "maingroundJson": "blastletterlevel/mainground.json", + "menuPlist": "blastletterlevel/blastletterlevel.plist", + "menuPng": "blastletterlevel/blastletterlevel.png", + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "W0", + "W1", + "W2", + "W3", + "W4", + "W5", + "W6", + "W7", + "W8", + "W9", + "SP0", + "SP1", + "SP2", + "SP3", + "SP4", + "SP5", + "SP6", + "SP7", + "SP8", + "SP9", + "O0", + "O1", + "O2", + "O3", + "O4", + "O5", + "O6", + "O7", + "O8", + "O9", + "S0", + "S1", + "S2", + "S3", + "S4", + "S5", + "S6", + "S7", + "S8", + "S9", + "H0", + "H1", + "H2", + "H3", + "H4", + "H5", + "H6", + "H7", + "H8", + "H9" + ], + "numLevels": "86" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "W0", + "W1", + "W2", + "W3", + "W4", + "W5", + "W6", + "W7", + "W8", + "W9", + "SP0", + "SP1", + "SP2", + "SP3", + "SP4", + "SP5", + "SP6", + "SP7", + "SP8", + "SP9", + "O0", + "O1", + "O2", + "O3", + "O4", + "O5", + "O6", + "O7", + "O8", + "O9", + "S0", + "S1", + "S2", + "S3", + "S4", + "S5", + "S6", + "S7", + "S8", + "S9", + "H0", + "H1", + "H2", + "H3", + "H4", + "H5", + "H6", + "H7", + "H8", + "H9" + ], + "numLevels": "86" + } + } + }, + { + "name": "Door", + "title": "Barn Door", + "unlock": false, + "cIcon": "gameicons/doors_pressed.png", + "icon": "gameicons/doors.png", + "multiPlayer": false, + "isJSGame": false, + "script": "src/NonJSGameLauncher.js", + "span": "10", + "numLevels": "62", + "rewards": { + "13": { + "badge": "s/snorting_pig" + }, + "30": { + "badge": "m/mystery_box" + }, + "39": { + "badge": "p/sleepy_sheep" + }, + "52": { + "badge": "g/utility_rope" + }, + "65": { + "badge": "b/mooing_cow" + }, + "75": { + "badge": "c/candy_crate" + }, + "26": { + "unlockMin": "baja", + "min": "2" + } + }, + "lang": { + "swa": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "Y", + "Z", + "A-Z", + "A-Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "r", + "s", + "t", + "u", + "v", + "w", + "y", + "z", + "a-z", + "a-z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + "numLevels": "62" + }, + "eng": { + "labels": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + "numLevels": "62" + } + }, + "backgroundJson": "doorslevel/Layer1.json", + "foregroundJson": "doorslevel/Layer3.json", + "frontgroundJson": "doorslevel/Layer4.json", + "maingroundJson": "doorslevel/Layer2.json", + "menuPlist": "doorslevel/doorslevel.plist", + "menuPng": "doorslevel/doorslevel.png" + } +] diff --git a/goa/Resources/res/config/writing_game_map.json b/goa/Resources/res/config/writing_game_map_hi.json similarity index 99% rename from goa/Resources/res/config/writing_game_map.json rename to goa/Resources/res/config/writing_game_map_hi.json index 7ad85abb6..ad5688701 100644 --- a/goa/Resources/res/config/writing_game_map.json +++ b/goa/Resources/res/config/writing_game_map_hi.json @@ -1,7 +1,7 @@ [ { "name": "Kung Fu Alpha", - "title": "पता लगाना$#$Kung Fu Alpha", + "title": "ट्रेस$#$Trace", "_title_comment": "पता लगाना", "unlock": true, "cIcon": "gameicons/Kung Fu Alpha_pressed.png", diff --git a/goa/Resources/res/lang/eng/eng_en.mo b/goa/Resources/res/lang/eng/eng_en.mo new file mode 100644 index 000000000..4b23da3ff Binary files /dev/null and b/goa/Resources/res/lang/eng/eng_en.mo differ diff --git a/goa/Resources/res/lang/eng/eng_en.po b/goa/Resources/res/lang/eng/eng_en.po new file mode 100644 index 000000000..39a3742ab --- /dev/null +++ b/goa/Resources/res/lang/eng/eng_en.po @@ -0,0 +1,559 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: POEditor.com\n" +"Project-Id-Version: Swahili\n" +"Language: en\n" + +#: +msgid "bannan" +msgstr "banana" + +#: +msgid "busboard" +msgstr "bus board" + +#: +msgid "busg" +msgstr "bush" + +#: +msgid "chaor" +msgstr "chair" + +#: +msgid "cheeta" +msgstr "cheetah" + +#: +msgid "chimpanzeeanzee" +msgstr "chimpanzee" + +#: +msgid "cow_2" +msgstr "cow" + +#: +msgid "crocodileodile" +msgstr "crocodile" + +#: +msgid "dinning" +msgstr "dining" + +#: +msgid "dustbin" +msgstr "dust bin" + +#: +msgid "fahali_hill" +msgstr "hill" + +#: +msgid "fish blowl" +msgstr "fish bowl" + +#: +msgid "fisi_grass" +msgstr "grass" + +#: +msgid "fisi_tree" +msgstr "tree" + +#: +msgid "hosue" +msgstr "house" + +#: +msgid "lighting" +msgstr "lightning" + +#: +msgid "map" +msgstr "Map" + +#: +msgid "men_2" +msgstr "men" + +#: +msgid "palmtree fruit" +msgstr "palm tree fruit" + +#: +msgid "rainbowhang" +msgstr "rainbow" + +#: +msgid "rainbowinbucket" +msgstr "bucket" + +#: +msgid "rainbowman" +msgstr "man" + +#: +msgid "sadhu" +msgstr "monk" + +#: +msgid "stallhat" +msgstr "hat" + +#: +msgid "stallshirt" +msgstr "shirt" + +#: +msgid "treasurebox" +msgstr "treasure box" + +#: +msgid "tree_1qwe" +msgstr "tree" + +#: +msgid "vesselin" +msgstr "vessel" + +#: +msgid "vesselout" +msgstr "vessel" + +#: +msgid "wallb" +msgstr "wall" + +#: +msgid "wallc" +msgstr "wall" + +#: +msgid "waterin" +msgstr "water" + +#: +msgid "watersplash" +msgstr "water splash" + +#: +msgid "wind_char" +msgstr "wind" + +#: +msgid "windchar" +msgstr "wind" + +#: +msgid "choose Character" +msgstr "Choose Character" + +#: +msgid "icecream" +msgstr "ice cream" + +#: +msgid "addition" +msgstr "1 cake, 1 cake, 1 and 1 together becomes 2\n" +"5 candies, 3 candies, 5 + 3 is 8" + +#: +msgid "addition_carryover_1" +msgstr "62 + 31, first we add the units, 2 + 1 = 3\n" +"Then the tens, 6 + 3 = 9. Answer is 39" + +#: +msgid "addition_carryover_2" +msgstr "24 + 18, first we add the units, 4 + 8 = 12. Carry the ten to next position, left with 2.\n" +"2 + 1 + 1 from carry over equals 4. Answer is 44" + +#: +msgid "addition_carryover_3" +msgstr "37 + 25, first we add the units, 7 + 5 = 12, carry the ten to next position, left with 2\n" +"3 + 2 + 1 from carry over equals 6. Answer is 62" + +#: +msgid "adjective" +msgstr "Adjectives can specify the quality, the size, and the number of nouns or pronouns.\n" +"It is a BIG truck." + +#: +msgid "adverb" +msgstr "Adverbs describe adjectives, verbs, or another adverb. \n" +"He was QUICKLY brought down." + +#: +msgid "alphabet" +msgstr "Alphabet" + +msgid "alphabet-info" +msgstr "Alphabet" + +#: +msgid "antonym" +msgstr "Two words are opposites of each other if their meanings are totally different from each other.\n" +"Happy, Sad, Left, Right, Down, Up, Big, Small" + +#: +msgid "article" +msgstr "Articles are words that you use before the noun like A and THE.\n" +"She looked into THE water" + +#: +msgid "conjunction" +msgstr "A conjunction joins words and phrases together. \n" +"branches sway AND leaves tremble" + +#: +msgid "day" +msgstr "There are seven days in a week. \n" +"They are Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday" + +#: +msgid "even_odd" +msgstr "An odd number cannot be divided into equal groups, such as 1, 3, 5, 7, 9.\n" +"An even number can be divided into equal groups. 2, 4, 6, 8, 10." + +#: +msgid "homonym" +msgstr "Two or more words can have the same pronunciation but different meanings. \n" +"Ant Aunt, Pair Pear, Mail Male, Plane Plain" + +#: +msgid "interjection" +msgstr "An interjection is an abrupt remark. \n" +"Well! Now we know" + +#: +msgid "month" +msgstr "There are 12 months in a year. \n" +"January, February, March, April, May, June, \n" +"July, August, September, October, November, December" + +#: +msgid "multiplication" +msgstr "Multiplication is repeated addition. \n" +"See the lot of 5 balls. Take 2 of them. Add them up to get 10. 5 x 2 = 10\n" +"See the basket of 5 cakes. Take 3 of them. Add them up to get 15. 5 x 3 = 15" + +#: +msgid "noun" +msgstr "A noun is used to name a person, thing, animal or place.\n" +"The SUN shines" + +#: +msgid "number" +msgstr "Count with your fingers. \n" +"1, 2, 3, 4, 5, 6, 7, 8, 9, 10" + +#: +msgid "plural" +msgstr "Singular indicates one whereas Plural indicates many. \n" +"One Cat, Many Cats. One Bus, Many Buses. One Lady, Many Ladies. \n" +"One Knife, Many Knives. One Tooth, Many Teeth" + +#: +msgid "pos" +msgstr "Words are categorized into different parts of speech.\n" +"Noun. Pronoun. Adjective. Verb. Adverb. Preposition. Conjunction. Interjection. Article." + +#: +msgid "preposition" +msgstr "Preposition is used to specify location or a location in time\n" +"I love TO read" + +#: +msgid "pronoun" +msgstr "A pronoun replaces the noun in the sentence. \n" +"HE wants to eat." + +#: +msgid "subtraction" +msgstr "Here are 2 sheep. One sheep goes out. How many sheep are left. 2 - 1 = 1\n" +"Here are 4 sheep. One sheep goes out. How many sheep are left. 4 - 3 = 1" + +#: +msgid "subtraction_carryover_1" +msgstr "46 - 14. First subtract the candies on the right. 6 - 4 = 2. \n" +"Now subtract the candy boxes. 4 - 1 = 3. The answer is 32" + +#: +msgid "subtraction_carryover_2" +msgstr "34 - 16. First subtract the candies on the right. You cannot. \n" +"So borrow one candy box with 10 candies from the left. Now you can subtract. 14 - 6 = 8. \n" +"Now subtract the candy boxes. As one candy box has already gone to the right, you only have 2. 2 - 1 = 1. \n" +"The answer is 18" + +#: +msgid "subtraction_carryover_3" +msgstr "42 - 27. First subtract the candies on the right. You cannot. \n" +"So borrow one candy box with 10 candies from the left. Now you can subtract. 12 - 7 = 5. \n" +"Now subtract the candy boxes. As one candy box has already gone to the right, you only have 3. 3 - 2 = 1. \n" +"The answer is 15" + +#: +msgid "synonym" +msgstr "Synonyms are words that have the same meaning. \n" +"Sofa, Couch. Hat, Cap. Hole, Gap. Earth, Soil" + +#: +msgid "table10" +msgstr "These are the multiplication tables of 10." + +#: +msgid "table2" +msgstr "These are the multiplication tables of 2." + +#: +msgid "table3" +msgstr "These are the multiplication tables of 3." + +#: +msgid "table4" +msgstr "These are the multiplication tables of 4." + +#: +msgid "table5" +msgstr "These are the multiplication tables of 5." + +#: +msgid "table6" +msgstr "These are the multiplication tables of 6." + +#: +msgid "table7" +msgstr "These are the multiplication tables of 7." + +#: +msgid "table8" +msgstr "These are the multiplication tables of 8." + +#: +msgid "table9" +msgstr "These are the multiplication tables of 9." + +#: +msgid "verb" +msgstr "A verb shows an action. \n" +"She is STRETCHING" + +#: +msgid "word" +msgstr "We can put different alphabets together to make a word. \n" +"C A T is CAT. D O G is DOG. B A L L is BALL. S T A R is STAR." + +#: +msgid "almirah" +msgstr "cupboard" + +#: +msgid "avacado" +msgstr "avocado" + +#: +msgid "baby mother" +msgstr "mother" + +#: +msgid "bank mainground" +msgstr "floor" + +#: +msgid "base upper" +msgstr "upper floor" + +#: +msgid "bathroomwall" +msgstr "wall" + +#: +msgid "bookstand" +msgstr "book stand" + +#: +msgid "box back" +msgstr "box" + +#: +msgid "box back " +msgstr "box" + +#: +msgid "box front" +msgstr "box" + +#: +msgid "cafedoor" +msgstr "cafe door" + +#: +msgid "cafeowner" +msgstr "cafe owner" + +#: +msgid "calender" +msgstr "calendar" + +#: +msgid "cartback" +msgstr "cart" + +#: +msgid "cartonbox" +msgstr "carton" + +#: +msgid "cds" +msgstr "cd" + +#: +msgid "clothshop door" +msgstr "cloth shop door" + +#: +msgid "clubside" +msgstr "club" + +#: +msgid "cottons" +msgstr "cotton" + +#: +msgid "curton" +msgstr "carton" + +#: +msgid "dramadoor" +msgstr "drama door" + +#: +msgid "firestationdoor" +msgstr "firestation door" + +#: +msgid "floorgrass" +msgstr "grass" + +#: +msgid "floorstone" +msgstr "stone" + +#: +msgid "floortile" +msgstr "tile" + +#: +msgid "floortile1 " +msgstr "tile" + +#: +msgid "foreground" +msgstr "ground" + +#: +msgid "grocerycomp" +msgstr "computer" + +#: +msgid "gymdoor" +msgstr "gym door" + +#: +msgid "hospitalbed" +msgstr "hospital bed" + +#: +msgid "hospitaldoor" +msgstr "hospital door" + +#: +msgid "hospitallights" +msgstr "hospital lights" + +#: +msgid "hospitalside" +msgstr "hospital side" + +#: +msgid "houseside" +msgstr "house side" + +#: +msgid "livingroom floor" +msgstr "living room floor" + +#: +msgid "mainground" +msgstr "ground" + +#: +msgid "pc" +msgstr "computer" + +#: +msgid "piller" +msgstr "pillar" + +#: +msgid "pineaple" +msgstr "pineapple" + +#: +msgid "policeman" +msgstr "police man" + +#: +msgid "policestationside" +msgstr "police station side" + +#: +msgid "schooldoor" +msgstr "school door" + +#: +msgid "step big" +msgstr "big step" + +#: +msgid "tissueroll" +msgstr "tissue roll" + +#: +msgid "waterbottle" +msgstr "water bottle" + +#: +msgid "watercane" +msgstr "water can" + +#: +msgid "waterstand" +msgstr "water stand" + +#: +msgid "shapes" +msgstr "Numbers" + +#: +msgid "writing" +msgstr "Writing" + +#: +msgid "words" +msgstr "Words" + +#: +msgid "maths" +msgstr "Maths" + +#: +msgid "grammar" +msgstr "Sentences" + +#: +msgid "library" +msgstr "Stories" + diff --git a/goa/Resources/res/lang/eng/eng.mo b/goa/Resources/res/lang/eng/eng_hi.mo similarity index 100% rename from goa/Resources/res/lang/eng/eng.mo rename to goa/Resources/res/lang/eng/eng_hi.mo diff --git a/goa/Resources/res/lang/eng/eng.po b/goa/Resources/res/lang/eng/eng_hi.po similarity index 100% rename from goa/Resources/res/lang/eng/eng.po rename to goa/Resources/res/lang/eng/eng_hi.po diff --git a/goa/Resources/res/lang/eng/help/Alphamole_1.webm b/goa/Resources/res/lang/eng/help/Alphamole_1.webm index 154a28699..b02ababcf 100644 Binary files a/goa/Resources/res/lang/eng/help/Alphamole_1.webm and b/goa/Resources/res/lang/eng/help/Alphamole_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/Alphamole_2.webm b/goa/Resources/res/lang/eng/help/Alphamole_2.webm index c3d1da367..6fe03caaf 100644 Binary files a/goa/Resources/res/lang/eng/help/Alphamole_2.webm and b/goa/Resources/res/lang/eng/help/Alphamole_2.webm differ diff --git a/goa/Resources/res/lang/eng/help/Alphamole_3.webm b/goa/Resources/res/lang/eng/help/Alphamole_3.webm index ba9dfbf6b..8fb4cfc4b 100644 Binary files a/goa/Resources/res/lang/eng/help/Alphamole_3.webm and b/goa/Resources/res/lang/eng/help/Alphamole_3.webm differ diff --git a/goa/Resources/res/lang/eng/help/Alphamole_4.webm b/goa/Resources/res/lang/eng/help/Alphamole_4.webm index 1304b27a6..0606e5165 100644 Binary files a/goa/Resources/res/lang/eng/help/Alphamole_4.webm and b/goa/Resources/res/lang/eng/help/Alphamole_4.webm differ diff --git a/goa/Resources/res/lang/eng/help/Alphamole_5.webm b/goa/Resources/res/lang/eng/help/Alphamole_5.webm index ea73b3a11..e817f235d 100644 Binary files a/goa/Resources/res/lang/eng/help/Alphamole_5.webm and b/goa/Resources/res/lang/eng/help/Alphamole_5.webm differ diff --git a/goa/Resources/res/lang/eng/help/Alphamon Feed_1.webm b/goa/Resources/res/lang/eng/help/Alphamon Feed_1.webm index e0dc1129b..a6fb52a36 100644 Binary files a/goa/Resources/res/lang/eng/help/Alphamon Feed_1.webm and b/goa/Resources/res/lang/eng/help/Alphamon Feed_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/AlphamonCombat.webm b/goa/Resources/res/lang/eng/help/AlphamonCombat.webm index c656a1599..e33e5a029 100644 Binary files a/goa/Resources/res/lang/eng/help/AlphamonCombat.webm and b/goa/Resources/res/lang/eng/help/AlphamonCombat.webm differ diff --git a/goa/Resources/res/lang/eng/help/Balloon_math.webm b/goa/Resources/res/lang/eng/help/Balloon_math.webm index 56f8827f4..448dfbed4 100644 Binary files a/goa/Resources/res/lang/eng/help/Balloon_math.webm and b/goa/Resources/res/lang/eng/help/Balloon_math.webm differ diff --git a/goa/Resources/res/lang/eng/help/Barndoor.webm b/goa/Resources/res/lang/eng/help/Barndoor.webm index 5f0160e4f..7385b59fa 100644 Binary files a/goa/Resources/res/lang/eng/help/Barndoor.webm and b/goa/Resources/res/lang/eng/help/Barndoor.webm differ diff --git a/goa/Resources/res/lang/eng/help/BasicMultiplication.webm b/goa/Resources/res/lang/eng/help/BasicMultiplication.webm index 1b24b7322..eca12868f 100644 Binary files a/goa/Resources/res/lang/eng/help/BasicMultiplication.webm and b/goa/Resources/res/lang/eng/help/BasicMultiplication.webm differ diff --git a/goa/Resources/res/lang/eng/help/Bingo_city_3x3.webm b/goa/Resources/res/lang/eng/help/Bingo_city_3x3.webm index dd08c2eb4..5418803e4 100644 Binary files a/goa/Resources/res/lang/eng/help/Bingo_city_3x3.webm and b/goa/Resources/res/lang/eng/help/Bingo_city_3x3.webm differ diff --git a/goa/Resources/res/lang/eng/help/Bingo_farm_3x3.webm b/goa/Resources/res/lang/eng/help/Bingo_farm_3x3.webm index f45bde62e..a310bb318 100644 Binary files a/goa/Resources/res/lang/eng/help/Bingo_farm_3x3.webm and b/goa/Resources/res/lang/eng/help/Bingo_farm_3x3.webm differ diff --git a/goa/Resources/res/lang/eng/help/Bingo_jungle_3x3.webm b/goa/Resources/res/lang/eng/help/Bingo_jungle_3x3.webm index 028f62c54..b5ea3326a 100644 Binary files a/goa/Resources/res/lang/eng/help/Bingo_jungle_3x3.webm and b/goa/Resources/res/lang/eng/help/Bingo_jungle_3x3.webm differ diff --git a/goa/Resources/res/lang/eng/help/Chain.webm b/goa/Resources/res/lang/eng/help/Chain.webm index e22151557..a6760d0da 100644 Binary files a/goa/Resources/res/lang/eng/help/Chain.webm and b/goa/Resources/res/lang/eng/help/Chain.webm differ diff --git a/goa/Resources/res/lang/eng/help/Circle_candy.webm b/goa/Resources/res/lang/eng/help/Circle_candy.webm index 3ca6987bf..b13104921 100644 Binary files a/goa/Resources/res/lang/eng/help/Circle_candy.webm and b/goa/Resources/res/lang/eng/help/Circle_candy.webm differ diff --git a/goa/Resources/res/lang/eng/help/Circle_candy_homo.webm b/goa/Resources/res/lang/eng/help/Circle_candy_homo.webm index 6c785e7c1..ac62a22fb 100644 Binary files a/goa/Resources/res/lang/eng/help/Circle_candy_homo.webm and b/goa/Resources/res/lang/eng/help/Circle_candy_homo.webm differ diff --git a/goa/Resources/res/lang/eng/help/ConnectTheDots_1.webm b/goa/Resources/res/lang/eng/help/ConnectTheDots_1.webm index f0d5bd357..8acd53b00 100644 Binary files a/goa/Resources/res/lang/eng/help/ConnectTheDots_1.webm and b/goa/Resources/res/lang/eng/help/ConnectTheDots_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/Cross_the_bridge.webm b/goa/Resources/res/lang/eng/help/Cross_the_bridge.webm index a5641078a..ce427ea5f 100644 Binary files a/goa/Resources/res/lang/eng/help/Cross_the_bridge.webm and b/goa/Resources/res/lang/eng/help/Cross_the_bridge.webm differ diff --git a/goa/Resources/res/lang/eng/help/Dots_1.webm b/goa/Resources/res/lang/eng/help/Dots_1.webm index 08e7516f8..60fa7eceb 100644 Binary files a/goa/Resources/res/lang/eng/help/Dots_1.webm and b/goa/Resources/res/lang/eng/help/Dots_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/Drop_City.webm b/goa/Resources/res/lang/eng/help/Drop_City.webm index 981aeafcf..55ad88095 100644 Binary files a/goa/Resources/res/lang/eng/help/Drop_City.webm and b/goa/Resources/res/lang/eng/help/Drop_City.webm differ diff --git a/goa/Resources/res/lang/eng/help/Drop_Hero.webm b/goa/Resources/res/lang/eng/help/Drop_Hero.webm index 18a36b249..447739617 100644 Binary files a/goa/Resources/res/lang/eng/help/Drop_Hero.webm and b/goa/Resources/res/lang/eng/help/Drop_Hero.webm differ diff --git a/goa/Resources/res/lang/eng/help/Drop_Jungle.webm b/goa/Resources/res/lang/eng/help/Drop_Jungle.webm index 52e2bb080..43217920b 100644 Binary files a/goa/Resources/res/lang/eng/help/Drop_Jungle.webm and b/goa/Resources/res/lang/eng/help/Drop_Jungle.webm differ diff --git a/goa/Resources/res/lang/eng/help/Item_1.webm b/goa/Resources/res/lang/eng/help/Item_1.webm index e5e5bf3bf..00a9f1d35 100644 Binary files a/goa/Resources/res/lang/eng/help/Item_1.webm and b/goa/Resources/res/lang/eng/help/Item_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/Item_calculator.webm b/goa/Resources/res/lang/eng/help/Item_calculator.webm index dd1640a44..1be8aee86 100644 Binary files a/goa/Resources/res/lang/eng/help/Item_calculator.webm and b/goa/Resources/res/lang/eng/help/Item_calculator.webm differ diff --git a/goa/Resources/res/lang/eng/help/Jazz.webm b/goa/Resources/res/lang/eng/help/Jazz.webm index e6d8aefe6..69c9f9de6 100644 Binary files a/goa/Resources/res/lang/eng/help/Jazz.webm and b/goa/Resources/res/lang/eng/help/Jazz.webm differ diff --git a/goa/Resources/res/lang/eng/help/JumpOnWords_1.webm b/goa/Resources/res/lang/eng/help/JumpOnWords_1.webm index 0b4cf4d50..a001cfdaa 100644 Binary files a/goa/Resources/res/lang/eng/help/JumpOnWords_1.webm and b/goa/Resources/res/lang/eng/help/JumpOnWords_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/Line_1.webm b/goa/Resources/res/lang/eng/help/Line_1.webm index c52d216a5..2df703dc0 100644 Binary files a/goa/Resources/res/lang/eng/help/Line_1.webm and b/goa/Resources/res/lang/eng/help/Line_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/MainMenuHome_help.webm b/goa/Resources/res/lang/eng/help/MainMenuHome_help.webm index 196a3a4ed..2c314999a 100644 Binary files a/goa/Resources/res/lang/eng/help/MainMenuHome_help.webm and b/goa/Resources/res/lang/eng/help/MainMenuHome_help.webm differ diff --git a/goa/Resources/res/lang/eng/help/Maze_1.webm b/goa/Resources/res/lang/eng/help/Maze_1.webm index 1b7ebe71f..57fcae872 100644 Binary files a/goa/Resources/res/lang/eng/help/Maze_1.webm and b/goa/Resources/res/lang/eng/help/Maze_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/Patch The Wall.webm b/goa/Resources/res/lang/eng/help/Patch The Wall.webm deleted file mode 100644 index aa8713112..000000000 Binary files a/goa/Resources/res/lang/eng/help/Patch The Wall.webm and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/PatchTheWall (1).webm b/goa/Resources/res/lang/eng/help/PatchTheWall (1).webm deleted file mode 100644 index 7d52ebdc1..000000000 Binary files a/goa/Resources/res/lang/eng/help/PatchTheWall (1).webm and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/Pillar.webm b/goa/Resources/res/lang/eng/help/Pillar.webm index aa2dd701a..27770076c 100644 Binary files a/goa/Resources/res/lang/eng/help/Pillar.webm and b/goa/Resources/res/lang/eng/help/Pillar.webm differ diff --git a/goa/Resources/res/lang/eng/help/Pillar_island.webm b/goa/Resources/res/lang/eng/help/Pillar_island.webm index a9074fb64..52f41e743 100644 Binary files a/goa/Resources/res/lang/eng/help/Pillar_island.webm and b/goa/Resources/res/lang/eng/help/Pillar_island.webm differ diff --git a/goa/Resources/res/lang/eng/help/Pop.webm b/goa/Resources/res/lang/eng/help/Pop.webm index 13a31092a..8b2dc0155 100644 Binary files a/goa/Resources/res/lang/eng/help/Pop.webm and b/goa/Resources/res/lang/eng/help/Pop.webm differ diff --git a/goa/Resources/res/lang/eng/help/Shop.webm b/goa/Resources/res/lang/eng/help/Shop.webm index fbca36ef7..6caf0c716 100644 Binary files a/goa/Resources/res/lang/eng/help/Shop.webm and b/goa/Resources/res/lang/eng/help/Shop.webm differ diff --git a/goa/Resources/res/lang/eng/help/Smash The Rock_1.webm b/goa/Resources/res/lang/eng/help/Smash The Rock_1.webm index e4d21051f..a0030ea37 100644 Binary files a/goa/Resources/res/lang/eng/help/Smash The Rock_1.webm and b/goa/Resources/res/lang/eng/help/Smash The Rock_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/alphaarrange.webm b/goa/Resources/res/lang/eng/help/alphaarrange.webm index 4f33be8ef..289338d7a 100644 Binary files a/goa/Resources/res/lang/eng/help/alphaarrange.webm and b/goa/Resources/res/lang/eng/help/alphaarrange.webm differ diff --git a/goa/Resources/res/lang/eng/help/atm_1.webm b/goa/Resources/res/lang/eng/help/atm_1.webm index 1393c77f7..3f0248e41 100644 Binary files a/goa/Resources/res/lang/eng/help/atm_1.webm and b/goa/Resources/res/lang/eng/help/atm_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/baja_1.webm b/goa/Resources/res/lang/eng/help/baja_1.webm index 7f10cf9f5..d3ac66674 100644 Binary files a/goa/Resources/res/lang/eng/help/baja_1.webm and b/goa/Resources/res/lang/eng/help/baja_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/bubbleshooter_letter_1.webm b/goa/Resources/res/lang/eng/help/bubbleshooter_letter_1.webm index 0b078b8da..a6b26e144 100644 Binary files a/goa/Resources/res/lang/eng/help/bubbleshooter_letter_1.webm and b/goa/Resources/res/lang/eng/help/bubbleshooter_letter_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/bubbleshooter_number_1.webm b/goa/Resources/res/lang/eng/help/bubbleshooter_number_1.webm index 4eb0a81c8..e07e78344 100644 Binary files a/goa/Resources/res/lang/eng/help/bubbleshooter_number_1.webm and b/goa/Resources/res/lang/eng/help/bubbleshooter_number_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/camp_help.webm b/goa/Resources/res/lang/eng/help/camp_help.webm index ea6bb0cf3..8cf82f8a2 100644 Binary files a/goa/Resources/res/lang/eng/help/camp_help.webm and b/goa/Resources/res/lang/eng/help/camp_help.webm differ diff --git a/goa/Resources/res/lang/eng/help/cannonball.webm b/goa/Resources/res/lang/eng/help/cannonball.webm index 1faf090ba..01548d42d 100644 Binary files a/goa/Resources/res/lang/eng/help/cannonball.webm and b/goa/Resources/res/lang/eng/help/cannonball.webm differ diff --git a/goa/Resources/res/lang/eng/help/card.webm b/goa/Resources/res/lang/eng/help/card.webm index 835f3be60..989339bfc 100644 Binary files a/goa/Resources/res/lang/eng/help/card.webm and b/goa/Resources/res/lang/eng/help/card.webm differ diff --git a/goa/Resources/res/lang/eng/help/cardraw_1.webm b/goa/Resources/res/lang/eng/help/cardraw_1.webm index 91f0b5713..1034bb939 100644 Binary files a/goa/Resources/res/lang/eng/help/cardraw_1.webm and b/goa/Resources/res/lang/eng/help/cardraw_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/cat_1.webm b/goa/Resources/res/lang/eng/help/cat_1.webm index a9b074f36..44aa6b5c3 100644 Binary files a/goa/Resources/res/lang/eng/help/cat_1.webm and b/goa/Resources/res/lang/eng/help/cat_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/chimple_introduction.webm b/goa/Resources/res/lang/eng/help/chimple_introduction.webm index 08550124c..9d29ac81b 100644 Binary files a/goa/Resources/res/lang/eng/help/chimple_introduction.webm and b/goa/Resources/res/lang/eng/help/chimple_introduction.webm differ diff --git a/goa/Resources/res/lang/eng/help/chimple_introduction.webm~HEAD b/goa/Resources/res/lang/eng/help/chimple_introduction.webm~HEAD deleted file mode 100644 index 9d29ac81b..000000000 Binary files a/goa/Resources/res/lang/eng/help/chimple_introduction.webm~HEAD and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/chocolateFactory_1.webm b/goa/Resources/res/lang/eng/help/chocolateFactory_1.webm index 94c1b840a..cd64871ed 100644 Binary files a/goa/Resources/res/lang/eng/help/chocolateFactory_1.webm and b/goa/Resources/res/lang/eng/help/chocolateFactory_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/circle_island.webm b/goa/Resources/res/lang/eng/help/circle_island.webm index c3bb36b1d..5e15f3118 100644 Binary files a/goa/Resources/res/lang/eng/help/circle_island.webm and b/goa/Resources/res/lang/eng/help/circle_island.webm differ diff --git a/goa/Resources/res/lang/eng/help/cone.webm b/goa/Resources/res/lang/eng/help/cone.webm index d1964928c..285f1ab2c 100644 Binary files a/goa/Resources/res/lang/eng/help/cone.webm and b/goa/Resources/res/lang/eng/help/cone.webm differ diff --git a/goa/Resources/res/lang/eng/help/dash_1.webm b/goa/Resources/res/lang/eng/help/dash_1.webm index c87f7a2fb..658920040 100644 Binary files a/goa/Resources/res/lang/eng/help/dash_1.webm and b/goa/Resources/res/lang/eng/help/dash_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/dash_11.webm b/goa/Resources/res/lang/eng/help/dash_11.webm index 798d9dcf4..fa02ba463 100644 Binary files a/goa/Resources/res/lang/eng/help/dash_11.webm and b/goa/Resources/res/lang/eng/help/dash_11.webm differ diff --git a/goa/Resources/res/lang/eng/help/dash_22.webm b/goa/Resources/res/lang/eng/help/dash_22.webm index b214326a5..dc9a405cc 100644 Binary files a/goa/Resources/res/lang/eng/help/dash_22.webm and b/goa/Resources/res/lang/eng/help/dash_22.webm differ diff --git a/goa/Resources/res/lang/eng/help/decomone_1.webm b/goa/Resources/res/lang/eng/help/decomone_1.webm index 32850e233..b302bd18d 100644 Binary files a/goa/Resources/res/lang/eng/help/decomone_1.webm and b/goa/Resources/res/lang/eng/help/decomone_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/defuse_the_bomb_1.webm b/goa/Resources/res/lang/eng/help/defuse_the_bomb_1.webm index f728d750a..07a7be39a 100644 Binary files a/goa/Resources/res/lang/eng/help/defuse_the_bomb_1.webm and b/goa/Resources/res/lang/eng/help/defuse_the_bomb_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/defuse_the_bomb_2.webm b/goa/Resources/res/lang/eng/help/defuse_the_bomb_2.webm index 825025b6c..34218be15 100644 Binary files a/goa/Resources/res/lang/eng/help/defuse_the_bomb_2.webm and b/goa/Resources/res/lang/eng/help/defuse_the_bomb_2.webm differ diff --git a/goa/Resources/res/lang/eng/help/defuse_the_bomb_3.webm b/goa/Resources/res/lang/eng/help/defuse_the_bomb_3.webm index 2df2e7846..1faba96e3 100644 Binary files a/goa/Resources/res/lang/eng/help/defuse_the_bomb_3.webm and b/goa/Resources/res/lang/eng/help/defuse_the_bomb_3.webm differ diff --git a/goa/Resources/res/lang/eng/help/defuse_the_bomb_4.webm b/goa/Resources/res/lang/eng/help/defuse_the_bomb_4.webm index a5e24b45c..aa0a3dd50 100644 Binary files a/goa/Resources/res/lang/eng/help/defuse_the_bomb_4.webm and b/goa/Resources/res/lang/eng/help/defuse_the_bomb_4.webm differ diff --git a/goa/Resources/res/lang/eng/help/defuse_the_bomb_5.webm b/goa/Resources/res/lang/eng/help/defuse_the_bomb_5.webm index a4faf6030..438401bea 100644 Binary files a/goa/Resources/res/lang/eng/help/defuse_the_bomb_5.webm and b/goa/Resources/res/lang/eng/help/defuse_the_bomb_5.webm differ diff --git a/goa/Resources/res/lang/eng/help/defuse_the_bomb_6.webm b/goa/Resources/res/lang/eng/help/defuse_the_bomb_6.webm index 2149f72b0..a3b060b84 100644 Binary files a/goa/Resources/res/lang/eng/help/defuse_the_bomb_6.webm and b/goa/Resources/res/lang/eng/help/defuse_the_bomb_6.webm differ diff --git a/goa/Resources/res/lang/eng/help/defuse_the_bomb_7.webm b/goa/Resources/res/lang/eng/help/defuse_the_bomb_7.webm index 715e9eef6..04fa48f0f 100644 Binary files a/goa/Resources/res/lang/eng/help/defuse_the_bomb_7.webm and b/goa/Resources/res/lang/eng/help/defuse_the_bomb_7.webm differ diff --git a/goa/Resources/res/lang/eng/help/dino_1.webm b/goa/Resources/res/lang/eng/help/dino_1.webm index b686f2cf9..ec90780dc 100644 Binary files a/goa/Resources/res/lang/eng/help/dino_1.webm and b/goa/Resources/res/lang/eng/help/dino_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/door_lowercase.webm b/goa/Resources/res/lang/eng/help/door_lowercase.webm index 250f586b3..6cd85f696 100644 Binary files a/goa/Resources/res/lang/eng/help/door_lowercase.webm and b/goa/Resources/res/lang/eng/help/door_lowercase.webm differ diff --git a/goa/Resources/res/lang/eng/help/door_number.webm b/goa/Resources/res/lang/eng/help/door_number.webm index 0aebde12c..491f4e6c2 100644 Binary files a/goa/Resources/res/lang/eng/help/door_number.webm and b/goa/Resources/res/lang/eng/help/door_number.webm differ diff --git a/goa/Resources/res/lang/eng/help/door_words.webm b/goa/Resources/res/lang/eng/help/door_words.webm index 1634210eb..f36c5b02e 100644 Binary files a/goa/Resources/res/lang/eng/help/door_words.webm and b/goa/Resources/res/lang/eng/help/door_words.webm differ diff --git a/goa/Resources/res/lang/eng/help/endlessrunner_1.webm b/goa/Resources/res/lang/eng/help/endlessrunner_1.webm index a782d2c83..4d167f7bf 100644 Binary files a/goa/Resources/res/lang/eng/help/endlessrunner_1.webm and b/goa/Resources/res/lang/eng/help/endlessrunner_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-adjective.webm b/goa/Resources/res/lang/eng/help/fly-adjective.webm index 5f75670a7..551b6e726 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-adjective.webm and b/goa/Resources/res/lang/eng/help/fly-adjective.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-adverb.webm b/goa/Resources/res/lang/eng/help/fly-adverb.webm index f8ee915e8..fe75cd38c 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-adverb.webm and b/goa/Resources/res/lang/eng/help/fly-adverb.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-conjuctions.webm b/goa/Resources/res/lang/eng/help/fly-conjuctions.webm index 41e2ea598..3468dc3c8 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-conjuctions.webm and b/goa/Resources/res/lang/eng/help/fly-conjuctions.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-interjections.webm b/goa/Resources/res/lang/eng/help/fly-interjections.webm index f5cefedac..594b90609 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-interjections.webm and b/goa/Resources/res/lang/eng/help/fly-interjections.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-noun.webm b/goa/Resources/res/lang/eng/help/fly-noun.webm index 53185ef3e..afe1aaace 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-noun.webm and b/goa/Resources/res/lang/eng/help/fly-noun.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-prepositions.webm b/goa/Resources/res/lang/eng/help/fly-prepositions.webm index e7591f33a..6211fc53f 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-prepositions.webm and b/goa/Resources/res/lang/eng/help/fly-prepositions.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-pronouns.webm b/goa/Resources/res/lang/eng/help/fly-pronouns.webm index 1fbbfebff..ca9ffe6bf 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-pronouns.webm and b/goa/Resources/res/lang/eng/help/fly-pronouns.webm differ diff --git a/goa/Resources/res/lang/eng/help/fly-verb.webm b/goa/Resources/res/lang/eng/help/fly-verb.webm index fe28eed7e..8e2a4ee3a 100644 Binary files a/goa/Resources/res/lang/eng/help/fly-verb.webm and b/goa/Resources/res/lang/eng/help/fly-verb.webm differ diff --git a/goa/Resources/res/lang/eng/help/icecream.webm b/goa/Resources/res/lang/eng/help/icecream.webm index 365851649..3d2ca62f5 100644 Binary files a/goa/Resources/res/lang/eng/help/icecream.webm and b/goa/Resources/res/lang/eng/help/icecream.webm differ diff --git a/goa/Resources/res/lang/eng/help/introduction/introduction_3.wav~HEAD b/goa/Resources/res/lang/eng/help/introduction/introduction_3.wav~HEAD deleted file mode 100644 index c13431095..000000000 Binary files a/goa/Resources/res/lang/eng/help/introduction/introduction_3.wav~HEAD and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/introduction/introduction_4.wav~HEAD b/goa/Resources/res/lang/eng/help/introduction/introduction_4.wav~HEAD deleted file mode 100644 index fec33bca6..000000000 Binary files a/goa/Resources/res/lang/eng/help/introduction/introduction_4.wav~HEAD and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/jasmin.webm b/goa/Resources/res/lang/eng/help/jasmin.webm index bad7e105b..c436271fc 100644 Binary files a/goa/Resources/res/lang/eng/help/jasmin.webm and b/goa/Resources/res/lang/eng/help/jasmin.webm differ diff --git a/goa/Resources/res/lang/eng/help/jumpingNumbers_1.webm b/goa/Resources/res/lang/eng/help/jumpingNumbers_1.webm index 2c34e206a..b65635388 100644 Binary files a/goa/Resources/res/lang/eng/help/jumpingNumbers_1.webm and b/goa/Resources/res/lang/eng/help/jumpingNumbers_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/jumping_2.webm b/goa/Resources/res/lang/eng/help/jumping_2.webm index 9f98baf9b..e397e8a10 100644 Binary files a/goa/Resources/res/lang/eng/help/jumping_2.webm and b/goa/Resources/res/lang/eng/help/jumping_2.webm differ diff --git a/goa/Resources/res/lang/eng/help/jumping_3.webm b/goa/Resources/res/lang/eng/help/jumping_3.webm index d0cacd7c7..584ac9a96 100644 Binary files a/goa/Resources/res/lang/eng/help/jumping_3.webm and b/goa/Resources/res/lang/eng/help/jumping_3.webm differ diff --git a/goa/Resources/res/lang/eng/help/kungfualpha.webm b/goa/Resources/res/lang/eng/help/kungfualpha.webm index 2b36900b6..250497a6a 100644 Binary files a/goa/Resources/res/lang/eng/help/kungfualpha.webm and b/goa/Resources/res/lang/eng/help/kungfualpha.webm differ diff --git a/goa/Resources/res/lang/eng/help/level_help.webm b/goa/Resources/res/lang/eng/help/level_help.webm index 736a6ca21..29e3fa2d3 100644 Binary files a/goa/Resources/res/lang/eng/help/level_help.webm and b/goa/Resources/res/lang/eng/help/level_help.webm differ diff --git a/goa/Resources/res/lang/eng/help/level_help.webm~HEAD b/goa/Resources/res/lang/eng/help/level_help.webm~HEAD deleted file mode 100644 index 29e3fa2d3..000000000 Binary files a/goa/Resources/res/lang/eng/help/level_help.webm~HEAD and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/mathlearning.webm b/goa/Resources/res/lang/eng/help/mathlearning.webm index 6baa98988..77bf6e1e5 100644 Binary files a/goa/Resources/res/lang/eng/help/mathlearning.webm and b/goa/Resources/res/lang/eng/help/mathlearning.webm differ diff --git a/goa/Resources/res/lang/eng/help/memory-antonym.webm b/goa/Resources/res/lang/eng/help/memory-antonym.webm index 3d78aa0eb..53493db62 100644 Binary files a/goa/Resources/res/lang/eng/help/memory-antonym.webm and b/goa/Resources/res/lang/eng/help/memory-antonym.webm differ diff --git a/goa/Resources/res/lang/eng/help/memory-homonym.webm b/goa/Resources/res/lang/eng/help/memory-homonym.webm index 87ca7b964..349e31efc 100644 Binary files a/goa/Resources/res/lang/eng/help/memory-homonym.webm and b/goa/Resources/res/lang/eng/help/memory-homonym.webm differ diff --git a/goa/Resources/res/lang/eng/help/memory-synonym.webm b/goa/Resources/res/lang/eng/help/memory-synonym.webm index 2d85b41d3..28fcf2691 100644 Binary files a/goa/Resources/res/lang/eng/help/memory-synonym.webm and b/goa/Resources/res/lang/eng/help/memory-synonym.webm differ diff --git a/goa/Resources/res/lang/eng/help/menu_help.webm b/goa/Resources/res/lang/eng/help/menu_help.webm index 05f120923..2c314999a 100644 Binary files a/goa/Resources/res/lang/eng/help/menu_help.webm and b/goa/Resources/res/lang/eng/help/menu_help.webm differ diff --git a/goa/Resources/res/lang/eng/help/menu_help.webm~HEAD b/goa/Resources/res/lang/eng/help/menu_help.webm~HEAD deleted file mode 100644 index 2c314999a..000000000 Binary files a/goa/Resources/res/lang/eng/help/menu_help.webm~HEAD and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/miningbg_help.webm b/goa/Resources/res/lang/eng/help/miningbg_help.webm index 33c1bfd3f..9f8c46c32 100644 Binary files a/goa/Resources/res/lang/eng/help/miningbg_help.webm and b/goa/Resources/res/lang/eng/help/miningbg_help.webm differ diff --git a/goa/Resources/res/lang/eng/help/order_1.webm b/goa/Resources/res/lang/eng/help/order_1.webm index b187ab0d5..f5779e273 100644 Binary files a/goa/Resources/res/lang/eng/help/order_1.webm and b/goa/Resources/res/lang/eng/help/order_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/order_2.webm b/goa/Resources/res/lang/eng/help/order_2.webm index c1f368811..84ba25dbe 100644 Binary files a/goa/Resources/res/lang/eng/help/order_2.webm and b/goa/Resources/res/lang/eng/help/order_2.webm differ diff --git a/goa/Resources/res/lang/eng/help/order_3.webm b/goa/Resources/res/lang/eng/help/order_3.webm index 04f6ef764..5c7631c9b 100644 Binary files a/goa/Resources/res/lang/eng/help/order_3.webm and b/goa/Resources/res/lang/eng/help/order_3.webm differ diff --git a/goa/Resources/res/lang/eng/help/order_4.webm b/goa/Resources/res/lang/eng/help/order_4.webm index 23a829ade..09cdee8e2 100644 Binary files a/goa/Resources/res/lang/eng/help/order_4.webm and b/goa/Resources/res/lang/eng/help/order_4.webm differ diff --git a/goa/Resources/res/lang/eng/help/order_5.webm b/goa/Resources/res/lang/eng/help/order_5.webm index d7bfa17f5..37ed9ffb1 100644 Binary files a/goa/Resources/res/lang/eng/help/order_5.webm and b/goa/Resources/res/lang/eng/help/order_5.webm differ diff --git a/goa/Resources/res/lang/eng/help/order_months.webm b/goa/Resources/res/lang/eng/help/order_months.webm index 7535b7bba..4245e8852 100644 Binary files a/goa/Resources/res/lang/eng/help/order_months.webm and b/goa/Resources/res/lang/eng/help/order_months.webm differ diff --git a/goa/Resources/res/lang/eng/help/order_weekdays.webm b/goa/Resources/res/lang/eng/help/order_weekdays.webm index bb2e34cd9..468a74626 100644 Binary files a/goa/Resources/res/lang/eng/help/order_weekdays.webm and b/goa/Resources/res/lang/eng/help/order_weekdays.webm differ diff --git a/goa/Resources/res/lang/eng/help/owl_1.webm b/goa/Resources/res/lang/eng/help/owl_1.webm index e8788ad31..adaeaa9a3 100644 Binary files a/goa/Resources/res/lang/eng/help/owl_1.webm and b/goa/Resources/res/lang/eng/help/owl_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/owl_2.webm b/goa/Resources/res/lang/eng/help/owl_2.webm index 1f62eb8a7..dc520922e 100644 Binary files a/goa/Resources/res/lang/eng/help/owl_2.webm and b/goa/Resources/res/lang/eng/help/owl_2.webm differ diff --git a/goa/Resources/res/lang/eng/help/owl_3.webm b/goa/Resources/res/lang/eng/help/owl_3.webm index b5079488b..ab8c156c2 100644 Binary files a/goa/Resources/res/lang/eng/help/owl_3.webm and b/goa/Resources/res/lang/eng/help/owl_3.webm differ diff --git a/goa/Resources/res/lang/eng/help/owl_4.webm b/goa/Resources/res/lang/eng/help/owl_4.webm index ca12c24c3..65d3ef3fd 100644 Binary files a/goa/Resources/res/lang/eng/help/owl_4.webm and b/goa/Resources/res/lang/eng/help/owl_4.webm differ diff --git a/goa/Resources/res/lang/eng/help/owl_5.webm b/goa/Resources/res/lang/eng/help/owl_5.webm index cb742633b..b0ea01baf 100644 Binary files a/goa/Resources/res/lang/eng/help/owl_5.webm and b/goa/Resources/res/lang/eng/help/owl_5.webm differ diff --git a/goa/Resources/res/lang/eng/help/patchthewall.webm b/goa/Resources/res/lang/eng/help/patchthewall.webm index 295a827ca..2fba01e29 100644 Binary files a/goa/Resources/res/lang/eng/help/patchthewall.webm and b/goa/Resources/res/lang/eng/help/patchthewall.webm differ diff --git a/goa/Resources/res/lang/eng/help/pillar_1.webm b/goa/Resources/res/lang/eng/help/pillar_1.webm index 33dcd64ee..668a6dacc 100644 Binary files a/goa/Resources/res/lang/eng/help/pillar_1.webm and b/goa/Resources/res/lang/eng/help/pillar_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/popcount_1.webm b/goa/Resources/res/lang/eng/help/popcount_1.webm index f90b5d07c..b058dda85 100644 Binary files a/goa/Resources/res/lang/eng/help/popcount_1.webm and b/goa/Resources/res/lang/eng/help/popcount_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/shape.webm b/goa/Resources/res/lang/eng/help/shape.webm index 61411dee9..84db773e8 100644 Binary files a/goa/Resources/res/lang/eng/help/shape.webm and b/goa/Resources/res/lang/eng/help/shape.webm differ diff --git a/goa/Resources/res/lang/eng/help/shoot_1.webm b/goa/Resources/res/lang/eng/help/shoot_1.webm index 4cd1467d6..3582bb42b 100644 Binary files a/goa/Resources/res/lang/eng/help/shoot_1.webm and b/goa/Resources/res/lang/eng/help/shoot_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/shoot_2.webm b/goa/Resources/res/lang/eng/help/shoot_2.webm index 692655a8d..e3b370242 100644 Binary files a/goa/Resources/res/lang/eng/help/shoot_2.webm and b/goa/Resources/res/lang/eng/help/shoot_2.webm differ diff --git a/goa/Resources/res/lang/eng/help/shoot_3.webm b/goa/Resources/res/lang/eng/help/shoot_3.webm index e50543df1..6753422fc 100644 Binary files a/goa/Resources/res/lang/eng/help/shoot_3.webm and b/goa/Resources/res/lang/eng/help/shoot_3.webm differ diff --git a/goa/Resources/res/lang/eng/help/sortit.webm b/goa/Resources/res/lang/eng/help/sortit.webm index ace62ce35..cef226cb0 100644 Binary files a/goa/Resources/res/lang/eng/help/sortit.webm and b/goa/Resources/res/lang/eng/help/sortit.webm differ diff --git a/goa/Resources/res/lang/eng/help/spot.webm b/goa/Resources/res/lang/eng/help/spot.webm index 6f180a084..b45b3a197 100644 Binary files a/goa/Resources/res/lang/eng/help/spot.webm and b/goa/Resources/res/lang/eng/help/spot.webm differ diff --git a/goa/Resources/res/lang/eng/help/stack_1.webm.webm b/goa/Resources/res/lang/eng/help/stack_1.webm.webm index 2b1f3b4a9..72ead4aad 100644 Binary files a/goa/Resources/res/lang/eng/help/stack_1.webm.webm and b/goa/Resources/res/lang/eng/help/stack_1.webm.webm differ diff --git a/goa/Resources/res/lang/eng/help/stack_farm.webm b/goa/Resources/res/lang/eng/help/stack_farm.webm index 12970154f..b4f771476 100644 Binary files a/goa/Resources/res/lang/eng/help/stack_farm.webm and b/goa/Resources/res/lang/eng/help/stack_farm.webm differ diff --git a/goa/Resources/res/lang/eng/help/stack_hero.webm b/goa/Resources/res/lang/eng/help/stack_hero.webm index 0b12e0977..7ef9001e7 100644 Binary files a/goa/Resources/res/lang/eng/help/stack_hero.webm and b/goa/Resources/res/lang/eng/help/stack_hero.webm differ diff --git a/goa/Resources/res/lang/eng/help/stack_island.webm b/goa/Resources/res/lang/eng/help/stack_island.webm index dee67fde5..02687e140 100644 Binary files a/goa/Resources/res/lang/eng/help/stack_island.webm and b/goa/Resources/res/lang/eng/help/stack_island.webm differ diff --git a/goa/Resources/res/lang/eng/help/stack_island_1.webm b/goa/Resources/res/lang/eng/help/stack_island_1.webm index d822fa60f..00f7714d2 100644 Binary files a/goa/Resources/res/lang/eng/help/stack_island_1.webm and b/goa/Resources/res/lang/eng/help/stack_island_1.webm differ diff --git a/goa/Resources/res/lang/eng/help/step.webm b/goa/Resources/res/lang/eng/help/step.webm index efd41bde9..48c325222 100644 Binary files a/goa/Resources/res/lang/eng/help/step.webm and b/goa/Resources/res/lang/eng/help/step.webm differ diff --git a/goa/Resources/res/lang/eng/help/step_odd.webm b/goa/Resources/res/lang/eng/help/step_odd.webm index c23f96fb7..90f8386bf 100644 Binary files a/goa/Resources/res/lang/eng/help/step_odd.webm and b/goa/Resources/res/lang/eng/help/step_odd.webm differ diff --git a/goa/Resources/res/lang/eng/help/step_odd_candy.webm b/goa/Resources/res/lang/eng/help/step_odd_candy.webm index 6cad2a9a4..ad90f973a 100644 Binary files a/goa/Resources/res/lang/eng/help/step_odd_candy.webm and b/goa/Resources/res/lang/eng/help/step_odd_candy.webm differ diff --git a/goa/Resources/res/lang/eng/help/story_help.webm b/goa/Resources/res/lang/eng/help/story_help.webm index d3569ea2d..d049b4928 100644 Binary files a/goa/Resources/res/lang/eng/help/story_help.webm and b/goa/Resources/res/lang/eng/help/story_help.webm differ diff --git a/goa/Resources/res/lang/eng/help/story_maker_help.webm b/goa/Resources/res/lang/eng/help/story_maker_help.webm index 0c0c1c348..e06231cb8 100644 Binary files a/goa/Resources/res/lang/eng/help/story_maker_help.webm and b/goa/Resources/res/lang/eng/help/story_maker_help.webm differ diff --git a/goa/Resources/res/lang/eng/help/story_maker_help.webm~HEAD b/goa/Resources/res/lang/eng/help/story_maker_help.webm~HEAD deleted file mode 100644 index e06231cb8..000000000 Binary files a/goa/Resources/res/lang/eng/help/story_maker_help.webm~HEAD and /dev/null differ diff --git a/goa/Resources/res/lang/eng/help/table.webm b/goa/Resources/res/lang/eng/help/table.webm index bd8d731f7..0c7e10f35 100644 Binary files a/goa/Resources/res/lang/eng/help/table.webm and b/goa/Resources/res/lang/eng/help/table.webm differ diff --git a/goa/Resources/res/lang/eng/help/talk_city.webm b/goa/Resources/res/lang/eng/help/talk_city.webm index d7c071a54..95a35bf56 100644 Binary files a/goa/Resources/res/lang/eng/help/talk_city.webm and b/goa/Resources/res/lang/eng/help/talk_city.webm differ diff --git a/goa/Resources/res/lang/eng/help/talk_island.webm b/goa/Resources/res/lang/eng/help/talk_island.webm index 9fdca59f8..1e42b73fc 100644 Binary files a/goa/Resources/res/lang/eng/help/talk_island.webm and b/goa/Resources/res/lang/eng/help/talk_island.webm differ diff --git a/goa/Resources/res/lang/eng/help/talk_jungle.webm b/goa/Resources/res/lang/eng/help/talk_jungle.webm index 3b83d1810..aec6e0360 100644 Binary files a/goa/Resources/res/lang/eng/help/talk_jungle.webm and b/goa/Resources/res/lang/eng/help/talk_jungle.webm differ diff --git a/goa/Resources/res/lang/eng/help/train.webm b/goa/Resources/res/lang/eng/help/train.webm index fe8151eee..ca9d91095 100644 Binary files a/goa/Resources/res/lang/eng/help/train.webm and b/goa/Resources/res/lang/eng/help/train.webm differ diff --git a/goa/Resources/res/lang/eng/help/treasurehunt.webm b/goa/Resources/res/lang/eng/help/treasurehunt.webm index 665fea8d3..b263d66b6 100644 Binary files a/goa/Resources/res/lang/eng/help/treasurehunt.webm and b/goa/Resources/res/lang/eng/help/treasurehunt.webm differ diff --git a/goa/Resources/res/lang/eng/help/units.webm b/goa/Resources/res/lang/eng/help/units.webm index e3cd01e92..0b131b364 100644 Binary files a/goa/Resources/res/lang/eng/help/units.webm and b/goa/Resources/res/lang/eng/help/units.webm differ diff --git a/goa/Resources/res/lang/eng/help/wembley.webm b/goa/Resources/res/lang/eng/help/wembley.webm index 365e0c5e8..b84d8c4f0 100644 Binary files a/goa/Resources/res/lang/eng/help/wembley.webm and b/goa/Resources/res/lang/eng/help/wembley.webm differ diff --git a/goa/proj.android-studio/goa/build.gradle b/goa/proj.android-studio/goa/build.gradle index b4a470427..8444bc464 100644 --- a/goa/proj.android-studio/goa/build.gradle +++ b/goa/proj.android-studio/goa/build.gradle @@ -5,7 +5,7 @@ android { buildToolsVersion "28.0.3" defaultConfig { - applicationId "com.maq.xprize.chimple.hindi" + applicationId "com.maq.simpleclass" minSdkVersion 23 targetSdkVersion 28 @@ -21,6 +21,26 @@ android { } } + flavorDimensions 'default' + + productFlavors { + english { + applicationIdSuffix ".english" + } + + hindi { + applicationIdSuffix ".hindi" + } + + /*urdu { + + } + + bengali { + + }*/ + } + lintOptions { abortOnError false } diff --git a/goa/proj.android-studio/goa/src/main/jniLibs/arm64-v8a/libMyGame.so b/goa/proj.android-studio/goa/src/english/jniLibs/arm64-v8a/libMyGame.so similarity index 73% rename from goa/proj.android-studio/goa/src/main/jniLibs/arm64-v8a/libMyGame.so rename to goa/proj.android-studio/goa/src/english/jniLibs/arm64-v8a/libMyGame.so index e613377a9..da0ccbc66 100644 Binary files a/goa/proj.android-studio/goa/src/main/jniLibs/arm64-v8a/libMyGame.so and b/goa/proj.android-studio/goa/src/english/jniLibs/arm64-v8a/libMyGame.so differ diff --git a/goa/proj.android-studio/goa/src/main/jniLibs/armeabi-v7a/libMyGame.so b/goa/proj.android-studio/goa/src/english/jniLibs/armeabi-v7a/libMyGame.so similarity index 70% rename from goa/proj.android-studio/goa/src/main/jniLibs/armeabi-v7a/libMyGame.so rename to goa/proj.android-studio/goa/src/english/jniLibs/armeabi-v7a/libMyGame.so index 9013538a9..edb75abf9 100644 Binary files a/goa/proj.android-studio/goa/src/main/jniLibs/armeabi-v7a/libMyGame.so and b/goa/proj.android-studio/goa/src/english/jniLibs/armeabi-v7a/libMyGame.so differ diff --git a/goa/proj.android-studio/goa/src/english/res/drawable-hdpi/icon.png b/goa/proj.android-studio/goa/src/english/res/drawable-hdpi/icon.png new file mode 100644 index 000000000..3f9c5aa1a Binary files /dev/null and b/goa/proj.android-studio/goa/src/english/res/drawable-hdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/english/res/drawable-mdpi/icon.png b/goa/proj.android-studio/goa/src/english/res/drawable-mdpi/icon.png new file mode 100644 index 000000000..f1b81ca26 Binary files /dev/null and b/goa/proj.android-studio/goa/src/english/res/drawable-mdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/english/res/drawable-xhdpi/icon.png b/goa/proj.android-studio/goa/src/english/res/drawable-xhdpi/icon.png new file mode 100644 index 000000000..d49472dad Binary files /dev/null and b/goa/proj.android-studio/goa/src/english/res/drawable-xhdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/english/res/drawable-xxhdpi/icon.png b/goa/proj.android-studio/goa/src/english/res/drawable-xxhdpi/icon.png new file mode 100644 index 000000000..508b00e9f Binary files /dev/null and b/goa/proj.android-studio/goa/src/english/res/drawable-xxhdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/english/res/drawable-xxxhdpi/icon.png b/goa/proj.android-studio/goa/src/english/res/drawable-xxxhdpi/icon.png new file mode 100644 index 000000000..a526eb507 Binary files /dev/null and b/goa/proj.android-studio/goa/src/english/res/drawable-xxxhdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/english/res/drawable/splash_screen_background.xml b/goa/proj.android-studio/goa/src/english/res/drawable/splash_screen_background.xml new file mode 100644 index 000000000..aa5e50ef0 --- /dev/null +++ b/goa/proj.android-studio/goa/src/english/res/drawable/splash_screen_background.xml @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/goa/proj.android-studio/goa/src/english/res/values/strings.xml b/goa/proj.android-studio/goa/src/english/res/values/strings.xml new file mode 100644 index 000000000..8849dfc63 --- /dev/null +++ b/goa/proj.android-studio/goa/src/english/res/values/strings.xml @@ -0,0 +1,8 @@ + + + Simple Class + This is a one time process. It may take up to 10 minutes to complete. + \nDo you want to save app data in your SD card? + No + Yes + \ No newline at end of file diff --git a/goa/proj.android-studio/goa/src/hindi/jniLibs/arm64-v8a/libMyGame.so b/goa/proj.android-studio/goa/src/hindi/jniLibs/arm64-v8a/libMyGame.so new file mode 100644 index 000000000..678dd7a71 Binary files /dev/null and b/goa/proj.android-studio/goa/src/hindi/jniLibs/arm64-v8a/libMyGame.so differ diff --git a/goa/Resources/res/lang/eng/help/story_help.webm~HEAD b/goa/proj.android-studio/goa/src/hindi/jniLibs/armeabi-v7a/libMyGame.so similarity index 54% rename from goa/Resources/res/lang/eng/help/story_help.webm~HEAD rename to goa/proj.android-studio/goa/src/hindi/jniLibs/armeabi-v7a/libMyGame.so index d049b4928..2361238a7 100644 Binary files a/goa/Resources/res/lang/eng/help/story_help.webm~HEAD and b/goa/proj.android-studio/goa/src/hindi/jniLibs/armeabi-v7a/libMyGame.so differ diff --git a/goa/proj.android-studio/goa/src/hindi/res/drawable-hdpi/icon.png b/goa/proj.android-studio/goa/src/hindi/res/drawable-hdpi/icon.png new file mode 100644 index 000000000..9794ce2d4 Binary files /dev/null and b/goa/proj.android-studio/goa/src/hindi/res/drawable-hdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/hindi/res/drawable-mdpi/icon.png b/goa/proj.android-studio/goa/src/hindi/res/drawable-mdpi/icon.png new file mode 100644 index 000000000..fb24ba632 Binary files /dev/null and b/goa/proj.android-studio/goa/src/hindi/res/drawable-mdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/hindi/res/drawable-xhdpi/icon.png b/goa/proj.android-studio/goa/src/hindi/res/drawable-xhdpi/icon.png new file mode 100644 index 000000000..fb937ecfe Binary files /dev/null and b/goa/proj.android-studio/goa/src/hindi/res/drawable-xhdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/hindi/res/drawable-xxhdpi/icon.png b/goa/proj.android-studio/goa/src/hindi/res/drawable-xxhdpi/icon.png new file mode 100644 index 000000000..010752f8e Binary files /dev/null and b/goa/proj.android-studio/goa/src/hindi/res/drawable-xxhdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/hindi/res/drawable-xxxhdpi/icon.png b/goa/proj.android-studio/goa/src/hindi/res/drawable-xxxhdpi/icon.png new file mode 100644 index 000000000..e82681dee Binary files /dev/null and b/goa/proj.android-studio/goa/src/hindi/res/drawable-xxxhdpi/icon.png differ diff --git a/goa/proj.android-studio/goa/src/hindi/res/drawable/splash_screen_background.xml b/goa/proj.android-studio/goa/src/hindi/res/drawable/splash_screen_background.xml new file mode 100644 index 000000000..d44f088f5 --- /dev/null +++ b/goa/proj.android-studio/goa/src/hindi/res/drawable/splash_screen_background.xml @@ -0,0 +1,501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/goa/proj.android-studio/goa/src/hindi/res/values/strings.xml b/goa/proj.android-studio/goa/src/hindi/res/values/strings.xml new file mode 100644 index 000000000..a73a54e00 --- /dev/null +++ b/goa/proj.android-studio/goa/src/hindi/res/values/strings.xml @@ -0,0 +1,8 @@ + + + सिम्पल क्लास - Simple Class + This is a one time process. It may take up to 10 minutes to complete.\nयह प्रक्रिया केवल एक बार की जाएगी। इसमें १० मिनट तक का समय लग सकता है। + \nDo you want to save app data in your SD card?\n\nक्या आप मेमरी कार्ड में ऐप को डालना चाहते है? + No\nनहीं + Yes\nहाँ + \ No newline at end of file diff --git a/goa/proj.android-studio/goa/src/main/AndroidManifest.xml b/goa/proj.android-studio/goa/src/main/AndroidManifest.xml index 7a623307c..cd4ec68ad 100644 --- a/goa/proj.android-studio/goa/src/main/AndroidManifest.xml +++ b/goa/proj.android-studio/goa/src/main/AndroidManifest.xml @@ -1,9 +1,9 @@ + android:versionCode="15" + android:versionName="5.2.0"> @@ -53,9 +53,9 @@ + android:permission="${applicationId}.provider.READ_WRITE" /> diff --git a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/db/AppDatabase.java b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/db/AppDatabase.java index 5644c1a33..0ea27c181 100644 --- a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/db/AppDatabase.java +++ b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/db/AppDatabase.java @@ -47,7 +47,7 @@ import com.maq.xprize.bali.db.entity.UserLog; import com.maq.xprize.bali.db.entity.UserUnit; import com.maq.xprize.bali.repo.UserRepo; -import com.maq.xprize.chimple.hindi.R; +import com.maq.simpleclass.R; import java.io.BufferedReader; import java.io.IOException; diff --git a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/provider/LessonContentProvider.java b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/provider/LessonContentProvider.java index a3b46b484..3e4cd55a1 100644 --- a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/provider/LessonContentProvider.java +++ b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/provider/LessonContentProvider.java @@ -27,6 +27,7 @@ import android.support.annotation.Nullable; import android.util.Log; +import com.maq.simpleclass.BuildConfig; import com.maq.xprize.bali.db.entity.UserLog; import com.maq.xprize.bali.model.BagOfChoiceQuiz; import com.maq.xprize.bali.model.MultipleChoiceQuiz; @@ -40,7 +41,7 @@ public class LessonContentProvider extends ContentProvider { /** * The authority of this content provider. */ - public static final String AUTHORITY = "com.maq.xprize.bali.provider"; + public static final String AUTHORITY = "com.maq.simpleclass."+ BuildConfig.FLAVOR + ".provider"; public static final String MULTIPLE_CHOICE_QUIZ = "MULTIPLE_CHOICE_QUIZ"; public static final String COL_HELP = "help"; diff --git a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/LessonRepo.java b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/LessonRepo.java index 011b35819..e4f51e507 100644 --- a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/LessonRepo.java +++ b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/LessonRepo.java @@ -32,7 +32,7 @@ import com.maq.xprize.bali.db.pojo.FlashCard; import com.maq.xprize.bali.model.BagOfChoiceQuiz; import com.maq.xprize.bali.model.MultipleChoiceQuiz; -import com.maq.xprize.chimple.hindi.R; +import com.maq.simpleclass.R; import java.util.ArrayList; import java.util.Collections; diff --git a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/UserRepo.java b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/UserRepo.java index be8ea9e87..d3cb2a905 100644 --- a/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/UserRepo.java +++ b/goa/proj.android-studio/goa/src/main/java/com/maq/xprize/bali/repo/UserRepo.java @@ -21,7 +21,7 @@ import com.maq.xprize.bali.db.AppDatabase; import com.maq.xprize.bali.db.entity.User; -import com.maq.xprize.chimple.hindi.R; +import com.maq.simpleclass.R; public class UserRepo { public static int updateCoins(Context context, int coins) { diff --git a/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/AppActivity.java b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/AppActivity.java index 67de0d92c..b9b88b4f1 100644 --- a/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/AppActivity.java +++ b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/AppActivity.java @@ -36,6 +36,7 @@ of this software and associated documentation files (the "Software"), to deal import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; @@ -43,22 +44,21 @@ of this software and associated documentation files (the "Software"), to deal import android.util.Log; import android.widget.Toast; +import com.maq.simpleclass.BuildConfig; import com.maq.xprize.bali.db.entity.User; import com.maq.xprize.bali.repo.UserRepo; -import com.maq.xprize.chimple.hindi.R; +import com.maq.simpleclass.R; import org.cocos2dx.lib.Cocos2dxActivity; import java.io.File; import java.util.Locale; -import chimple.DownloadExpansionFile; - -import static chimple.DownloadExpansionFile.xAPKs; +import static org.cocos2dx.cpp.DownloadExpansionFile.xAPKs; public class AppActivity extends Cocos2dxActivity { public static final String TAG = "GOA"; - public static final String AUTHORITY = "com.maq.xprize.bali.provider"; + public static final String AUTHORITY = "com.maq.simpleclass."+ BuildConfig.FLAVOR + ".provider"; public static final String MULTIPLE_CHOICE_QUIZ = "MULTIPLE_CHOICE_QUIZ"; public static final String COINS = "COINS"; public static final String GAME_NAME = "GAME_NAME"; @@ -458,7 +458,7 @@ protected void onResume() { super.onResume(); Intent intent = new Intent(); intent.setClassName("com.maq.xprize.bali", "com.maq.xprize.bali.service.TollBroadcastReceiver"); - intent.putExtra("onResume", "com.maq.xprize.chimple.hindi"); + intent.putExtra("onResume", getPackageName()); sendBroadcast(intent); } @@ -467,7 +467,7 @@ protected void onPause() { super.onPause(); Intent intent = new Intent(); intent.setClassName("com.maq.xprize.bali", "com.maq.xprize.bali.service.TollBroadcastReceiver"); - intent.putExtra("onPause", "com.maq.xprize.chimple.hindi"); + intent.putExtra("onPause", getPackageName()); sendBroadcast(intent); } diff --git a/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/CameraActivity.java b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/CameraActivity.java index bc72d7476..22e1030da 100644 --- a/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/CameraActivity.java +++ b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/CameraActivity.java @@ -10,7 +10,7 @@ import android.os.Handler; import android.provider.MediaStore; -import com.maq.xprize.chimple.hindi.R; +import com.maq.simpleclass.R; import java.io.File; import java.io.FileOutputStream; diff --git a/goa/proj.android-studio/goa/src/main/java/chimple/DownloadExpansionFile.java b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/DownloadExpansionFile.java similarity index 99% rename from goa/proj.android-studio/goa/src/main/java/chimple/DownloadExpansionFile.java rename to goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/DownloadExpansionFile.java index 966f39d46..117eb9cce 100644 --- a/goa/proj.android-studio/goa/src/main/java/chimple/DownloadExpansionFile.java +++ b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/DownloadExpansionFile.java @@ -1,4 +1,4 @@ -package chimple; +package org.cocos2dx.cpp; import android.annotation.SuppressLint; import android.app.Activity; @@ -31,9 +31,7 @@ import com.google.android.vending.expansion.downloader.IDownloaderClient; import com.google.android.vending.expansion.downloader.IDownloaderService; import com.google.android.vending.expansion.downloader.IStub; -import com.maq.xprize.chimple.hindi.R; - -import org.cocos2dx.cpp.AppActivity; +import com.maq.simpleclass.R; import java.io.DataInputStream; import java.io.File; @@ -58,8 +56,8 @@ public class DownloadExpansionFile extends Activity implements IDownloaderClient public static final XAPKFile[] xAPKs = { new XAPKFile( true, // true signifies a main file - 14, // the version of the main obb that is uploaded - 624426836L // the length of the file in bytes + 15, // the version of the main obb that is uploaded + 761813357L // the length of the file in bytes ), new XAPKFile( false, // false signifies a patch file diff --git a/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/SplashScreenActivity.java b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/SplashScreenActivity.java index 51748468b..88dc33d73 100644 --- a/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/SplashScreenActivity.java +++ b/goa/proj.android-studio/goa/src/main/java/org/cocos2dx/cpp/SplashScreenActivity.java @@ -20,16 +20,15 @@ import android.widget.Toast; import com.google.android.vending.expansion.downloader.Helpers; -import com.maq.xprize.chimple.hindi.R; +import com.maq.simpleclass.R; import java.io.File; import java.io.IOException; import java.util.zip.ZipFile; -import chimple.DownloadExpansionFile; import utils.Zip; -import static chimple.DownloadExpansionFile.xAPKs; +import static org.cocos2dx.cpp.DownloadExpansionFile.xAPKs; import static org.cocos2dx.cpp.AppActivity.pathToAppDelegate; import static org.cocos2dx.cpp.AppActivity.sharedPref; diff --git a/goa/proj.android-studio/goa/src/main/java/utils/Zip.java b/goa/proj.android-studio/goa/src/main/java/utils/Zip.java index 3c77c0177..d7fb7063c 100644 --- a/goa/proj.android-studio/goa/src/main/java/utils/Zip.java +++ b/goa/proj.android-studio/goa/src/main/java/utils/Zip.java @@ -5,7 +5,7 @@ import android.widget.ProgressBar; import android.widget.TextView; -import com.maq.xprize.chimple.hindi.R; +import com.maq.simpleclass.R; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; diff --git a/goa/proj.android-studio/goa/src/main/res/values/strings.xml b/goa/proj.android-studio/goa/src/main/res/values/strings.xml index e946e950d..f5cd2ac23 100644 --- a/goa/proj.android-studio/goa/src/main/res/values/strings.xml +++ b/goa/proj.android-studio/goa/src/main/res/values/strings.xml @@ -1,13 +1,8 @@ - चिम्पल - Chimple - This is a one time process. It may take up to 10 minutes to complete.\nयह प्रक्रिया केवल एक बार की जाएगी। इसमें १० मिनट तक का समय लग सकता है। mainFileVersion patchFileVersion dataPath - \nDo you want to save app data in your SD card?\n\nक्या आप मेमरी कार्ड में ऐप को डालना चाहते है? - No\nनहीं - Yes\nहाँ com.maq.xprize.bali.PREFERENCE_FILE_KEY user_id