mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-11 00:02:19 -05:00
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
// Usage: mongo <server>/coco -u <read-only-username> -p <read-only-password> what-unlocks-level.js
|
|
// Prints the slugs for levels that unlock the level given in findUnlocksForSlug
|
|
|
|
// CHANGE THIS to whatever level you want to find the unlocks for.
|
|
var findUnlocksForSlug = 'kithgard-apprentice';
|
|
|
|
|
|
var campaignSlugs = ['dungeon', 'forest', 'desert', 'mountain', 'glacier'];
|
|
|
|
print("Levels that unlock " + findUnlocksForSlug + ":");
|
|
|
|
var unlockLevel = db.levels.findOne({ slug: findUnlocksForSlug });
|
|
if(!unlockLevel) {
|
|
print("Level " + findUnlocksForSlug + " not found.");
|
|
quit();
|
|
}
|
|
|
|
var levelID = unlockLevel.original;
|
|
// print(levelID);
|
|
|
|
campaignSlugs.forEach(function(slug) {
|
|
print("*** Searching " + slug + " ***");
|
|
var campaign = db.campaigns.findOne({slug: slug });
|
|
var levelOriginals = Object.keys(campaign.levels);
|
|
|
|
//*** Each level in the campaign
|
|
|
|
levelOriginals.some(function(original) {
|
|
var level = campaign.levels[original];
|
|
eachLevel(level);
|
|
// this stops the .some() after one, for testing
|
|
// return true;
|
|
});
|
|
|
|
});
|
|
|
|
// ***** //
|
|
|
|
function eachLevel(level) {
|
|
if(level.rewards) {
|
|
for(var i=0; i < level.rewards.length; i++) {
|
|
var reward = level.rewards[i];
|
|
if(reward.level && reward.level == levelID) {
|
|
var found = db.levels.findOne({original: ObjectId(level.original)});
|
|
if(found.slug) {
|
|
print(found.slug);
|
|
} else {
|
|
print("Found unlocking level, but it has no slug: " + JSON.stringify(reward.level));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|