diff --git a/1-50-0/js/game.min.js b/1-50-0/js/game.min.js index 66fa436..d38645e 100644 --- a/1-50-0/js/game.min.js +++ b/1-50-0/js/game.min.js @@ -459,7 +459,7 @@ Prodigy.extends = function(e, t, i) { }, Prodigy.Entity = {}, Prodigy.Breadcrumbs = {}; var GameConstants = GameConstants || function() { var e = {}; - if (e["GameConstants.Build.VERSION"] = "1.50.0 Mode", e["GameConstants.Build.ADD_BOTS"] = !1, e["GameConstants.Build.LODASH_VERSION"] = "4.13.1", e["GameConstants.Build.DEBUG"] = !0, e["GameConstants.Build.SHOW_FPS"] = !0, e["GameConstants.Build.MUTE_BGM"] = !1, e["GameConstants.Build.LOG_LEVEL"] = 12, e["GameConstants.Build.ASSETS_LOCATION"] = "https://cdn.prodigygame.com/game/assets/", e["GameConstants.Build.TELEPORT"] = "", e["GameConstants.Build.QUEST"] = [], e["GameConstants.Build.ITEM_TYPE"] = [], e["GameConstants.Build.KILL_GORE"] = !1, e["GameConstants.Build.EASY_MODE"] = !1, e["GameConstants.Build.MEMBERSHIP"] = !1, e["GameConstants.Tower.MAX_FREE_MEMBER_FLOOR"] = 5, e["GameConstants.Debug.DISABLE_DAILY_BONUS"] = !1, e["GameConstants.Debug.ENABLE_MAP"] = !1, e["GameConstants.Debug.AUTO_LOGIN"] = [], e["GameConstants.Debug.GET_PET"] = [], e["GameConstants.Debug.SET_LEVEL"] = 0, e["GameConstants.Debug.DISABLE_ACHIEVEMENTS"] = !1, e["GameConstants.Debug.GET_GOLD"] = 0, e["GameConstants.Debug.GET_SPELL"] = 0, e["GameConstants.Debug.COMPLETE_TUTORIAL"] = !1, e["GameConstants.Debug.FORCE_DROPS"] = [], e["GameConstants.Server.TEST_SERVER"] = !1, e["GameConstants.Mailer.TEST_MAIL"] = !0, e["GameConstants.FriendsList.TEST_FRIENDS_LIST"] = !0, e["GameConstants.Features.ENABLE_HOUSE_MOVING"] = !0, e["GameConstants.Features.Wheel.COOLDOWN"] = 5, e["GameConstants.Features.Wheel.DEFAULT_SPINS"] = 1, e["GameConstants.Features.Wheel.MEMBER_SPINS"] = 2, e["GameConstants.Features.Wheel.SPIN_TIME"] = 15e3, e["GameConstants.Features.TwilightWheel.DEFAULT_SPINS"] = 1, e["GameConstants.Features.TwilightWheel.MEMBER_SPINS"] = 2, e["GameConstants.Features.TwilightWheel.SPIN_TIME"] = 15e3, e["GameConstants.Features.SplitTests.PLAY_AT_HOME"] = !0, e["GameConstants.Features.TwilightWheel.RIGGED_REWARD"] = null, e["GameConstants.Features.SplitTests.USER_ID_MOD"] = 4, e["GameConstants.Features.SplitTests.CLASS_ID_MOD"] = 0, e["GameConstants.Features.SplitTests.GRADE_MOD"] = 0, e["GameConstants.Battle.VALID_PARENT_EMAIL_STARS_PERCENTAGE"] = 1.05, e["GameConstants.Battle.MAX_NUM_PETS"] = 1, "undefined" != typeof gameConstantsLocal) + if (e["GameConstants.Build.VERSION"] = "1.50.0 Mode", e["GameConstants.Build.ADD_BOTS"] = !0, e["GameConstants.Build.LODASH_VERSION"] = "4.13.1", e["GameConstants.Build.DEBUG"] = !0, e["GameConstants.Build.SHOW_FPS"] = !0, e["GameConstants.Build.MUTE_BGM"] = !1, e["GameConstants.Build.LOG_LEVEL"] = 12, e["GameConstants.Build.ASSETS_LOCATION"] = "https://cdn.prodigygame.com/game/assets/", e["GameConstants.Build.TELEPORT"] = "", e["GameConstants.Build.QUEST"] = [], e["GameConstants.Build.ITEM_TYPE"] = [], e["GameConstants.Build.KILL_GORE"] = !1, e["GameConstants.Build.EASY_MODE"] = !0, e["GameConstants.Build.MEMBERSHIP"] = !1, e["GameConstants.Tower.MAX_FREE_MEMBER_FLOOR"] = 5, e["GameConstants.Debug.DISABLE_DAILY_BONUS"] = !1, e["GameConstants.Debug.ENABLE_MAP"] = !1, e["GameConstants.Debug.AUTO_LOGIN"] = [], e["GameConstants.Debug.GET_PET"] = [], e["GameConstants.Debug.SET_LEVEL"] = 0, e["GameConstants.Debug.GET_GOLD"] = 0, e["GameConstants.Debug.GET_SPELL"] = 0, e["GameConstants.Debug.COMPLETE_TUTORIAL"] = !1, e["GameConstants.Debug.FORCE_DROPS"] = [], e["GameConstants.Server.TEST_SERVER"] = !1, e["GameConstants.Mailer.TEST_MAIL"] = !0, e["GameConstants.FriendsList.TEST_FRIENDS_LIST"] = !0, e["GameConstants.Features.ENABLE_HOUSE_MOVING"] = !0, e["GameConstants.Features.Wheel.COOLDOWN"] = 5, e["GameConstants.Features.Wheel.DEFAULT_SPINS"] = 1, e["GameConstants.Features.Wheel.MEMBER_SPINS"] = 2, e["GameConstants.Features.Wheel.SPIN_TIME"] = 15e3, e["GameConstants.Features.TwilightWheel.DEFAULT_SPINS"] = 1, e["GameConstants.Features.TwilightWheel.MEMBER_SPINS"] = 2, e["GameConstants.Features.TwilightWheel.SPIN_TIME"] = 15e3, e["GameConstants.Features.SplitTests.PLAY_AT_HOME"] = !0, e["GameConstants.Features.TwilightWheel.RIGGED_REWARD"] = null, e["GameConstants.Features.SplitTests.USER_ID_MOD"] = 4, e["GameConstants.Features.SplitTests.CLASS_ID_MOD"] = 0, e["GameConstants.Features.SplitTests.GRADE_MOD"] = 0, e["GameConstants.Battle.VALID_PARENT_EMAIL_STARS_PERCENTAGE"] = 1.05, e["GameConstants.Battle.MAX_NUM_PETS"] = 1, "undefined" != typeof gameConstantsLocal) for (var t in gameConstantsLocal) e[t] = gameConstantsLocal[t]; return { get: function(t) { @@ -1592,6 +1592,11 @@ Util.capitalize = function(e) { key: "npc-face-morris", v: "1" }, + "npc-face-winterfest": { + type: "atlas", + key: "npc-face-morris", + v: "1" + }, "npc-face-mozza-ella": { type: "atlas", key: "npc-face-mozza-ella", @@ -1759,10 +1764,16 @@ Util.capitalize = function(e) { v: "1" }, "npc-sprite-noot": { - type: "atlas", + type: "localAtlas", + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/v1/atlases/", key: "npc-sprite-guard", v: "1" }, + "npc-sprite-noot2": { + type: "atlas", + key: "npc-sprite-noot", + v: "1" + }, "npc-sprite-pippit": { type: "atlas", key: "npc-sprite-pippit", @@ -2175,6 +2186,13 @@ Util.capitalize = function(e) { w: 40, h: 40 }, + "tileset-town-new2": { + type: "spritesheet", + base: p, + url: "tileset-town-new/7/tileset-town-new.png", + w: 40, + h: 40 + }, "tileset-town-november": { type: "spritesheet", base: p, @@ -2488,7 +2506,7 @@ Util.capitalize = function(e) { }, "map-lamplight-b1": { type: "json", - base: c, + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/data/", url: "map-lamplight-b1/1/map-lamplight-b1.json" }, "map-lamplight-b2": { @@ -2518,7 +2536,7 @@ Util.capitalize = function(e) { }, "map-lamplight-c2": { type: "json", - base: c, + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/data/", url: "map-lamplight-c2/1/map-lamplight-c2.json" }, "map-lamplight-c3": { @@ -2728,9 +2746,14 @@ Util.capitalize = function(e) { }, "map-lamplight-c4-winterfest": { type: "json", - base: c, + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/data/", url: "map-lamplight-c4-winterfest/1/map-lamplight-c4-winterfest.json" }, + "map-lamplight-d4-winterfest": { + type: "json", + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/data/", + url: "map-lamplight-d4-winterfest/1/map-lamplight-d4-winterfest.json" + }, "map-skywatch-a0": { type: "json", base: c, @@ -4026,15 +4049,18 @@ Util.capitalize = function(e) { }, "bgm-victory": { type: "bgm", - v: 2 + base: "https://xpmuser.github.io/Website-Tester/assets/voice/", + url: "bgm-victory.mp3" }, "bgm-battle": { type: "bgm", - v: 2 + base: "https://xpmuser.github.io/Website-Tester/assets/voice/", + url: "bgm-battle.mp3" }, "bgm-intro": { type: "bgm", - v: 2 + base: "https://xpmuser.github.io/Website-Tester/assets/voice/", + url: "bgm-intro.mp3" }, "bgm-firefly-forest": { type: "localAtlas", @@ -10046,6 +10072,15 @@ Util.capitalize = function(e) { w: 137, h: 78 }, + "normal-hat-80": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/images/player/normal/hats/", + url: "80.png", + x: 1, + y: 1, + w: 137, + h: 78 + }, "reduced-hat-1": { type: "spritesheet", base: s, @@ -10757,6 +10792,15 @@ Util.capitalize = function(e) { w: 69, h: 40 }, + "reduced-hat-80": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 0, + y: 0, + w: 0, + h: 0 + }, "normal-weapon-1": { type: "spritesheet", base: d, @@ -26065,22 +26109,12 @@ Util.capitalize = function(e) { d: 6 } }, { - text: "Oh, nice! It looks like there are some pieces nearby...go collect them and we can rebuild the bridge ourselves!", + text: "Oh, nice! It looks like there are some pieces nearby!", face: 2, - anim: 4, - audio: { - tag: "voice-10-17", - s: 6, - d: 8 - } + anim: 4 }, { - text: "Just click on the items around the map to pick them up...but watch out for monsters!", - face: 1, - audio: { - tag: "voice-10-17", - s: 14, - d: 5 - } + text: "Just defeat a Luminite again and I'll fix the broken bridge myself!", + face: 1 }, { text: "Great job! Now step back and watch this!", face: 3, @@ -28063,8 +28097,13 @@ Util.capitalize = function(e) { text: "Welcome to the Academy!" }], winterfest: [{ - text: "Open the present to get your daily gift!", - audio: {} + text: "Well hello there, young one!", + face: 0, + audio: { + tag: "voice-11", + s: 4, + d: 2 + } }, { text: "You've already gotten your gift for today. Come back tomorrow.", audio: {} @@ -28092,7 +28131,7 @@ Util.capitalize = function(e) { d: 2 } }, { - text: "We're lookin' at a COMPLETE shutdown here, and it's all because of your STUPID PLANTS!", + text: "We're lookin' at a COMPLETE shutdown here, and it's all because of your SILLY PLANTS!", face: 1, anim: 2, audio: { @@ -28368,7 +28407,7 @@ Util.capitalize = function(e) { d: 3 } }, { - text: "He sits around all day in the factory in that stupid massage chair...", + text: "He sits around all day in the factory in that silly massage chair...", face: 1, anim: 2, audio: { @@ -29182,7 +29221,7 @@ Util.capitalize = function(e) { d: 5 } }, { - text: "This is stupid! Why couldn't the Royal Chef make his OWN food for the Queen?", + text: "This is silly! Why couldn't the Royal Chef make his OWN food for the Queen?", face: 3, anim: 4, audio: { @@ -29536,7 +29575,7 @@ Util.capitalize = function(e) { } }], mama_star: [{ - text: "Why hello again! Did you find the fallen star in town tonight?", + text: "Why hello again! Did you find the fallen hand in town tonight?", face: 0, anim: 2, audio: { @@ -29554,7 +29593,7 @@ Util.capitalize = function(e) { d: 10 } }, { - text: "If you come back tonight, you can get Star Shards from wizard battles, and find a fallen star in the town to get even more!", + text: "If you come back another time, you can get Star Shards from wizard battles, and find a fallen hand in the town to get even more!", face: 0, anim: 2, audio: { @@ -29590,7 +29629,7 @@ Util.capitalize = function(e) { d: 4 } }, { - text: "You can also get a LOT of Star Shards by finding fallen stars. If you find a fallen star in Lamplight Town, click or tap it.", + text: "You can also get a LOT of Star Shards by finding fallen hands. If you find a fallen hand in Lamplight Town, click or tap it.", face: 0, anim: 2, audio: { @@ -29713,7 +29752,7 @@ Util.capitalize = function(e) { face: 0, anim: 4, audio: { - tag: "]voice-24-1", + tag: "voice-24-1", s: 21.9, d: 5.1 } @@ -29856,7 +29895,7 @@ Util.capitalize = function(e) { }, { text: "Want to change your team? Open the Pet Menu from the Main Menu." }, { - text: "Want a new look? Head to the Stylist in Lamplight Town or you can also edit your save." + text: "Want a new look? Head to the Stylist in Lamplight Town or you can also edit your save file." }, { text: "The latest and greatest equipment can be bought at the Item Shop in Lamplight Town." }, { @@ -29865,12 +29904,8 @@ Util.capitalize = function(e) { text: "Be sure to return to Prodigy every so often...new content is added all the time!" }, { text: "Earn stars to level up...the strongest wizards are Level 100!" - }, { - text: "Check your achievement progress by opening the Awards Menu from the Main Menu." }, { text: "Complete bounties from the Bounty Board in Lamplight Town to earn awesome rewards!" - }, { - text: "Rumor has it that there is a powerful wizard at the top of the Dark Tower..." }, { text: "Need more gold? Head out and battle monsters, get it from the daily login bonus, pass 10 floors, edit your save, or spin the wheel!" }, { @@ -29880,7 +29915,7 @@ Util.capitalize = function(e) { }, { text: "You learn new spells by leveling up, but you can also learn them from completing quests." }, { - text: "Explore each zone thoroughly...there are secrets hidden everywhere!" + text: "Explore each zone thoroughly...there are secrets hidden somewhere!" }, { text: "Can't win against a boss or another wizard? Level up your team and then try again!" }, { @@ -29890,29 +29925,23 @@ Util.capitalize = function(e) { }, { text: "Save your game by using the save character button in the Other tab on the Settings Menu!" }, { - text: "Google Sign-In, Multiplayer Mode, etc are all coming soon." - }, { - text: "We have trouble installing bots for this version." - }, { - text: "Click on the ground/floor to make your wizard walk." + text: "OAuths and more are all coming soon, but fake Multiplayer Mode's still broken in this version." }, { text: "If you're an Xbox One user or an iPad user and you still want to continue using your saved save, use a different device." }, { text: "If your saved save file is on your iPad, you can put it in any drive app that keeps your files like your save files safe and available for another device." }, { - text: "Never gonna give you up. Never gonna let your down. Never gonna run around and desert you." + text: "If you want to find bots (wizards) in my.ai, then search for the bot's name." }, { text: "If you want to be a member, click on the gear icon and then click on the member button." }, { - text: "To watch the intro again, click on the gear icon and then click on the intro button." - }, { - text: "Want to make AI Friends and chat with them, click on the friend icon, and then click on the make AI friends now button." - }, { - text: "Mail Joke: Why did the 2 mails disappear? Answer: Because 7 8 9!" + text: "Never gonna give you up Never gonna let you down Never gonna run around and desert you" }, { text: "You'll be healed automatically after a battle!" }, { - text: "Google Drive & OneDrive are recommended to store your working save files." + text: "Google Drive, iCloud Drive, & OneDrive are recommended to store your working save files." + }, { + text: "The Wardens have been gone for a long, long time. Nobody seems to know where they went..." }] }, Prodigy.Hints.prototype = { getRandomHint: function(e) { @@ -30132,12 +30161,12 @@ Items.getItemData = function(e, t) { } return s += 50 * a, s += 25 * (i.h || 0), s += 50 * (i.d || 0) }, Items.DROP_RATE_BY_TYPE = { - outfit: 1, - weapon: 1, - hat: 1, - boots: 1, - item: 1 -}, Items.DROP_RATE_BY_RARITY = [1, .75, .5, .25, .1], Items.RARITY_COLOR = ["#c7c7c7", "#6fc159", "#408cd9", "#b93ae2", "#f7942e"], Items.RARITY = ["common", "uncommon", "rare", "epic", "legendary"], Items.TYPES = ["outfit", "weapon", "boots", "hat", "item"], Items.createExtraAnimInfo = function(e, t, i, a, s) { + outfit: 4e-4, + weapon: 5e-4, + hat: .001, + boots: .001, + item: .025 +}, Items.DROP_RATE_BY_RARITY = [1, 1, 1, 1, 1], Items.RARITY_COLOR = ["#c7c7c7", "#6fc159", "#408cd9", "#b93ae2", "#f7942e"], Items.RARITY = ["common", "uncommon", "rare", "epic", "legendary"], Items.TYPES = ["outfit", "weapon", "boots", "hat", "item"], Items.createExtraAnimInfo = function(e, t, i, a, s) { for (var r = [], o = 0; t > o; o++) r.push(e + "-" + o); return { animFrames: r, @@ -32860,11 +32889,11 @@ Items.getItemData = function(e, t) { }, { ID: 77, name: "Jeff's Hat", - type: "", + type: "Traffic Box", member: 1, rarity: 2, drop: 1, - flavorText: "Jeff from PVZ Mods has worn this hat before. Credits to Peridot/Starry Ciocirlan and Stefan25897 (King Raber) for PVZ 1 art style designs of this hat and credits to Peridot/Starry Ciocirlan for Jeff's hat.", + flavorText: "Jeff from PVZ Mods has worn this hat before. Credits to Peridot/Starry Ciocirlan and Vinstatic (formerly Stefan25897 and King Raber) for PVZ 1 art style designs of this hat and credits to Peridot/Starry Ciocirlan for Jeff's hat. The new icon for it was made by NomadX2.", effects: [35] }, { ID: 78, @@ -32884,6 +32913,14 @@ Items.getItemData = function(e, t) { drop: 1, flavorText: "Ho Ho Ho, Merry Christmas!", effects: [88] + }, { + ID: 80, + name: "Halloween Cosmetic Hat", + type: "", + member: 1, + rarity: 4, + flavorText: "undefined", + effects: [88] }], item: [{ ID: 1, @@ -34131,11 +34168,6 @@ Items.getItemData = function(e, t) { name: "Large Coin Bundle", drop: 1, flavorText: "" - }, { - ID: 9, - name: "Wood", - drop: 1, - flavorText: "This special wood was used by Floatlings to construct makeshift houses as they traveled around the island in search of knowledge." }], dorm: [{ ID: 1, @@ -40331,6 +40363,10 @@ Names.createNameFromIndex = function(e, t, i, a) { Prodigy.Control.HUDButton.call(this, e, t, i, a, "icons-hud", "spellbook", e.prodigy.open.character.bind(e.prodigy.open)) }, Prodigy.extends(Prodigy.Control.SpellbookButton, Prodigy.Control.HUDButton, { constructor: Prodigy.Control.SpellbookButton +}), Prodigy.Control.BotButton = function(e, t, i, a) { + Prodigy.Control.HUDButton.call(this, e, t, i, a, "icons", "player", e.prodigy.open.bot.bind(e.prodigy.open)) +}, Prodigy.extends(Prodigy.Control.BotButton, Prodigy.Control.HUDButton, { + constructor: Prodigy.Control.BotButton }), Prodigy.Control.PetsButton = function(e, t, i, a) { Prodigy.Control.HUDButton.call(this, e, t, i, a, "icons-hud", "pets", e.prodigy.open.pets.bind(e.prodigy.open)) }, Prodigy.extends(Prodigy.Control.PetsButton, Prodigy.Control.HUDButton, { @@ -45050,7 +45086,7 @@ Prodigy.ForestBoss = function(e, t) { }, onMembershipButtonClick: function(e) { try { - this.game.prodigy.network.openWebsite("botify.ai/") + this.game.prodigy.network.openWebsite("themy.ai") } catch (a) { this.game.prodigy.open.message("There was an error contacting our server. Please try again later.") } @@ -45324,53 +45360,66 @@ Prodigy.ForestBoss = function(e, t) { day: 0, date: r }, Util.log("Daily Login Session:", e.data.dailyLoginBonus), o -}, Prodigy.Menu.Social = function(e, t, i) { +}, Prodigy.Menu.Social = function (e, t, i) { Prodigy.RenderMenu.call(this, e, t, 0, 0, e.prodigy.textureMenu), e.prodigy.mail.getMailCount() > 0 && (i = Prodigy.Menu.Social.BATTLE_REQUESTS), this.create(i) -}, Prodigy.Menu.Social.ARENA = 0, Prodigy.Menu.Social.BOUNTIES = 1, Prodigy.Menu.Social.ACHIEVEMENTS = 2, Prodigy.extends(Prodigy.Menu.Social, Prodigy.RenderMenu, { +}, Prodigy.Menu.Social.LEADERBOARD = 0, Prodigy.Menu.Social.ARENA = 1, Prodigy.Menu.Social.ARENA_LEADERBOARD = 2, Prodigy.Menu.Social.BATTLE_REQUESTS = 3, Prodigy.Menu.Social.BOUNTIES = 4, Prodigy.Menu.Social.ACHIEVEMENTS = 5, Prodigy.extends(Prodigy.Menu.Social, Prodigy.RenderMenu, { constructor: Prodigy.Menu.Social, - create: function(e) { + create: function (e) { this.addTransparent(); var t = [{ icon: "leaderboard", - top: "Item", - bot: "Shop" + top: "Class", + bot: "Leaders" + }, { + icon: "challenge", + top: "My", + bot: "Arena" + }, { + icon: "challenge", + top: "Arena", + bot: "Leaders" + }, { + icon: "battle-request", + top: "Battle", + bot: "Requests", + hasIndicator: !0 }, { icon: "bounty", top: "", bot: "Bounties" - }, { - icon: "award", - top: "", - bot: "Awards" }]; - this.createBaseSetup(30, 16, "stat", "AWARDS", t, !0); + this.createBaseSetup(30, 16, "shine", "AWARDS", t, !0); var i = this.game.prodigy.create.element(this, 0, 0); - i.setRenderState(!0), i.add(new Phaser.TileSprite(this.game, 51, 220, 1178, 40, "core", "stat-top")), i.add(new Phaser.TileSprite(this.game, 51, 260, 1178, 340, "core", "stat-mid")), i.add(new Phaser.TileSprite(this.game, 51, 600, 1178, 40, "core", "stat-top2")), Prodigy.RenderMenu.prototype.create.call(this), this.setMode(e); - for (var a = 0; a < t.length; a++) - if (t[a].hasIndicator) { - var s = this.game.prodigy.create.indicator(0, 0), - r = this.buttons[a].sprite; - r.addChild(s), this.buttons[a].indicator = s, s.visible = !1; - var o = Util.getCenteredXY(s.width, 0, r.x, 0, r.width, 0); - s.x = o.x, s.y = r.y - s.height, s.addTween(), s.visible = this.game.prodigy.mail.getMailCount() > 0 - } this.game.prodigy.mail.addUpdateCallback(this.updateMailIndicator.bind(this)) - }, - updateMailIndicator: function(e) { + i.setRenderState(!0), i.add(new Phaser.TileSprite(this.game, 51, 220, 1178, 40, "core", "blue-top")), i.add(new Phaser.TileSprite(this.game, 51, 260, 1178, 340, "core", "blue-mid")), i.add(new Phaser.TileSprite(this.game, 51, 600, 1178, 40, "core", "blue-top2")), Prodigy.RenderMenu.prototype.create.call(this), this.setMode(e); + for (var a = 0; a < t.length; a++) { + var s = t[a]; + if (s.hasIndicator) { + var r = this.game.prodigy.create.indicator(0, 0), + o = this.buttons[a].sprite; + o.addChild(r), this.buttons[a].indicator = r, r.visible = !1; + var n = Util.getCenteredXY(r.width, 0, o.x, 0, o.width, 0); + r.x = n.x, r.y = o.y - r.height, r.addTween(), r.visible = this.game.prodigy.mail.getMailCount() > 0 + } + } + this.game.prodigy.mail.addUpdateCallback(this.updateMailIndicator.bind(this)) + }, + updateMailIndicator: function (e) { for (var t = 0; t < this.buttons.length; t++) { var i = this.buttons[t]; Util.isDefined(i.indicator) && (i.indicator.visible = e > 0) } }, - setMode: function(e) { + setMode: function (e) { + Prodigy.RenderMenu.prototype.setMode.call(this, e), Util.isDefined(this.content) && this.content.destroy(); var t; - Prodigy.RenderMenu.prototype.setMode.call(this, e), Util.isDefined(this.content) && this.content.destroy(), t = e === Prodigy.Menu.Social.ARENA ? "Arena" : e === Prodigy.Menu.Social.ARENA_LEADERBOARD ? "ArenaLeaderboard" : e === Prodigy.Menu.Social.BATTLE_REQUESTS ? "BattleRequests" : e === Prodigy.Menu.Social.BOUNTIES ? "Bounties" : e === Prodigy.Menu.Social.ACHIEVEMENTS ? "Achievements" : "Leaderboard", this.content = new Prodigy.Container[t](this.game, this, 80, 200), this.page = e + t = e === Prodigy.Menu.Social.ARENA ? "Arena" : e === Prodigy.Menu.Social.ARENA_LEADERBOARD ? "ArenaLeaderboard" : e === Prodigy.Menu.Social.BATTLE_REQUESTS ? "BattleRequests" : e === Prodigy.Menu.Social.BOUNTIES ? "Bounties" : e === Prodigy.Menu.Social.ACHIEVEMENTS ? "Achievements" : "Leaderboard", this.content = new Prodigy.Container[t](this.game, this, 80, 200), this.page = e } }), Prodigy.Menu.SystemMenu = function(e, t) { Prodigy.RenderMenu.call(this, e, t, 0, 0, e.prodigy.textureMenu), this.create() }, Prodigy.extends(Prodigy.Menu.SystemMenu, Prodigy.RenderMenu, { constructor: Prodigy.Menu.SystemMenu, create: function() { - this.addTransparent(), this.content = this.game.prodigy.create.element(this, 280, 260, 15, 8), this.createBaseSetup(24, 13, "stat", "O, A, C, E", [{ + this.addTransparent(), this.content = this.game.prodigy.create.element(this, 280, 260, 15, 8), this.createBaseSetup(25, 16, "stat", "O, A, C, E", [{ icon: "settings", bot: "Sound" }, { @@ -45381,10 +45430,18 @@ Prodigy.ForestBoss = function(e, t) { top: "Name &", bot: "Gender" }, { - icon: "player", + icon: "leaderboard", top: "Game", bot: "Credits" - }]), Prodigy.RenderMenu.prototype.create.call(this), this.setMode(0), this.game.prodigy.create.advButton(this, 930, 280, { + }, { + icon: "player", + top: "Skin", + bot: "Tones" + }]), Prodigy.RenderMenu.prototype.create.call(this), this.setMode(0), this.game.prodigy.create.advButton(this, 930, 180, { + icon: "map", + top: "Join", + bot: "World" + }, this.openVersion.bind(this)), this.game.prodigy.create.advButton(this, 930, 280, { icon: "map", bot: "Intro" }, this.openIntro.bind(this)), this.game.prodigy.create.advButton(this, 930, 380, { @@ -45409,6 +45466,9 @@ Prodigy.ForestBoss = function(e, t) { case 3: this.openCredits(); break; + case 4: + this.openTones(); + break; default: this.openSound() } @@ -45416,6 +45476,13 @@ Prodigy.ForestBoss = function(e, t) { openIntro: function() { this.game.prodigy.start("Intro") }, + openVersion: function() { + this.game.prodigy.open.server() + }, + openBots: function() { +var bot = this.game.prodigy.create.player(this.content, new Player(this.game), 1, 640, 360); bot.forceOutfit(39); bot.showName(!0); bot.reload(bot.walk.bind(bot)); +bot.reload(); + }, setSound: function(e) { switch (e) { case 0: @@ -45453,6 +45520,32 @@ Prodigy.ForestBoss = function(e, t) { size: Prodigy.Control.TextButton.MED }, this.saveCharacter.bind(this)) }, + openTones: function() { + var e = Util.isDefined(this.game.prodigy.player.world) ? "" + "Change your skin color." : "Change your skin color."; + this.game.prodigy.create.font(this.content, 0, 10, e, { + width: 600, + align: "center" + }), this.game.prodigy.create.textButton(this.content, 150, 50, { + text: "Skin Tone 1", + size: Prodigy.Control.TextButton.MED + }, this.SkinTone1.bind(this)), + this.game.prodigy.create.textButton(this.content, 150, 100, { + text: "Skin Tone 2", + size: Prodigy.Control.TextButton.MED + }, this.SkinTone2.bind(this)), + this.game.prodigy.create.textButton(this.content, 150, 150, { + text: "Skin Tone 3", + size: Prodigy.Control.TextButton.MED + }, this.SkinTone3.bind(this)), + this.game.prodigy.create.textButton(this.content, 150, 200, { + text: "Skin Tone 4", + size: Prodigy.Control.TextButton.MED + }, this.SkinTone4.bind(this)), + this.game.prodigy.create.textButton(this.content, 150, 250, { + text: "Skin Tone 5", + size: Prodigy.Control.TextButton.MED + }, this.SkinTone5.bind(this)) + }, openGender: function() { var e = Util.isDefined(this.game.prodigy.player.world) ? "" + "Switch your gender or change your name." : "Switch your gender or change your name."; this.game.prodigy.create.font(this.content, 0, 50, e, { @@ -45477,7 +45570,7 @@ Prodigy.ForestBoss = function(e, t) { this.game.prodigy.open.confirm("Your wizard's gender has been set to " + this.game.prodigy.player.appearance.getGender() + "!\n\n\nWould you like to change your first name, or leave it as is?\n(you can always change it again later)", this.game.prodigy.open.nameChange.bind(this.game.prodigy.open, true), null, null, "System Menu") }, openCredits: function() { - var e = Util.isDefined(this.game.prodigy.player.world) ? "Prodidows Team: XPMUser & Toonigy, Original Game By Prodigy Education a.k.a SMARTeacher, Definitive Edition Ideas By Daboss7173, Project Contributors: Prodigy Education, Daboss7173, XPMUser, Toonigy, NomadX2, Craftersshaft, Mr. Intend, Peridot/Starry Ciocirlan, Stefan25897 (Formerly King Raber), etc" : "Prodidows Team: XPMUser & Toonigy, Original Game By Prodigy Education a.k.a SMARTeacher, Definitive Edition Idea By Daboss7173, Project Contributors: Prodigy Education, Daboss7173, XPMUser, Toonigy, NomadX2, Craftersshaft, Mr. Intend, Peridot/Starry Ciocirlan, Stefan25897 (Formerly King Raber), etc"; + var e = Util.isDefined(this.game.prodigy.player.world) ? "Definitive Edition Team: XPMUser & Toonigy, Original Game By Prodigy Education a.k.a SMARTeacher, Definitive Edition Ideas By Daboss7173, Project Contributors: Prodigy Education, Daboss7173, XPMUser, Toonigy, NomadX2, Craftersshaft, Mr. Intend, Peridot/Starry Ciocirlan, Stefan25897 (Formerly King Raber), etc" : "Definitive Edition Team: XPMUser & Toonigy, Original Game By Prodigy Education a.k.a SMARTeacher, Definitive Edition Idea By Daboss7173, Project Contributors: Prodigy Education, Daboss7173, XPMUser, Toonigy, NomadX2, Craftersshaft, Mr. Intend, Peridot/Starry Ciocirlan, Stefan25897 (Formerly King Raber), etc"; this.game.prodigy.create.font(this.content, 0, 50, e, { width: 600, align: "center" @@ -45516,6 +45609,21 @@ Prodigy.ForestBoss = function(e, t) { MiddleandLastName: function() { this.game.prodigy.open.nameChange() }, + SkinTone1: function() { + this.game.prodigy.player.appearance.data.skinColor=1, this.game.prodigy.open.okaymessage("Your skin tone has been changed. Teleport to any zone or change any part of your gear to make this change take effect on your reduced version of your wizard.") + }, + SkinTone2: function() { + this.game.prodigy.player.appearance.data.skinColor=2, this.game.prodigy.open.okaymessage("Your skin tone has been changed. Teleport to any zone or change any part of your gear to make this change take effect on your reduced version of your wizard.") + }, + SkinTone3: function() { + this.game.prodigy.player.appearance.data.skinColor=3, this.game.prodigy.open.okaymessage("Your skin tone has been changed. Teleport to any zone or change any part of your gear to make this change take effect on your reduced version of your wizard.") + }, + SkinTone4: function() { + this.game.prodigy.player.appearance.data.skinColor=4, this.game.prodigy.open.okaymessage("Your skin tone has been changed. Teleport to any zone or change any part of your gear to make this change take effect on your reduced version of your wizard.") + }, + SkinTone5: function() { + this.game.prodigy.player.appearance.data.skinColor=5, this.game.prodigy.open.okaymessage("Your skin tone has been changed. Teleport to any zone or change any part of your gear to make this change take effect on your reduced version of your wizard.") + }, exitGame: function() { this.game.prodigy.network.logout() }, @@ -45899,7 +46007,7 @@ Prodigy.ForestBoss = function(e, t) { } this.modules[0].open(); var s = this.game.prodigy.create.panel(this, 5, 40, 5, 1, "blue"); - s.scale.y = -1, s.setClickable(this.game.prodigy.network.openWebsite.bind(this.game.prodigy.network, "www.prodigygame.com/privacy-policy/")), s.alpha = .5, this.game.prodigy.create.font(this, s.x, s.y + 5 - 40, "+Privacy Policy", { + s.scale.y = -1, s.setClickable(this.game.prodigy.network.openWebsite.bind(this.game.prodigy.network, "xpmuser.github.io/oldprodigy/pde1700/?mods=WalkSpeed,FastGameSpeed,ImitationTitan/")), s.alpha = .5, this.game.prodigy.create.font(this, s.x, s.y + 5 - 40, "+Best Friend", { align: "center", width: 200 }) @@ -45924,7 +46032,7 @@ Prodigy.ForestBoss = function(e, t) { var i = decodeURI(this.googleData.name).split("+"), a = i[0], s = i.length > 1 ? i[i.length - 1] : ""; - this.game.prodigy.network.createPlayerWithGoogle(a, s, e, this.fail.bind(this), this.close.bind(this, !0)) + this.game.prodigy.network.createPlayerWithGoogle(s, r, e, this.fail.bind(this), this.close.bind(this, !0)) } else this.game.prodigy.network.createPlayer(this.data.firstName, this.data.lastName, e, this.fail.bind(this), this.complete.bind(this)) }, createCharacter: function(e) { @@ -46444,7 +46552,7 @@ Prodigy.ForestBoss = function(e, t) { tag: "attack", x: -10, y: -10 - }], this.openElements.bind(this))); + }], this.openAttacks.bind(this))); var t = 0; !0 === this.potionMode && (e.push(this.game.prodigy.create.stackButton(this.content, 0, 0, [{ tag: "icon-base" @@ -46669,7 +46777,7 @@ Prodigy.ForestBoss = function(e, t) { "PVP" === this.game.state.current ? this.game.prodigy.open.potionPvpPopup.call(this.game.prodigy.open, this) : this.game.prodigy.open.battlePotionSelect.call(this.game.prodigy.open, this) }, openAttacks2: function(e) { - this.openContent("spells", this.openElements.bind(this)); + this.openContent("spells", this.openAttacks.bind(this)); for (var t = this.source.source.getAttacks(e), i = [], a = 0; 6 > a; a++) { var s = a < t.length ? this.game.prodigy.attacks.getAttack(t[a]) : null, r = this.close.bind(this, this.spellCallback, s); @@ -46786,7 +46894,6 @@ Prodigy.ForestBoss = function(e, t) { top: "Visit", bot: "House" }, this.toHouse.bind(this)); - if (i.setActive(t), t && this.game.prodigy.player.hasCompletedTutorial()) { var a = this.game.prodigy.world.getZone("house").getState("hasClickedPlayerCardVisit"); if (!Util.isDefined(a) || !a) { this.exclamationSprite = this.game.prodigy.create.sprite(0, 0, "icons", "exclamation"), this.base.add(this.exclamationSprite); @@ -46795,10 +46902,10 @@ Prodigy.ForestBoss = function(e, t) { y: this.exclamationSprite.y - 10 }, 400, Phaser.Easing.Quadratic.InOut, !0, 0, -1, !0) } - } this.game.prodigy.create.advButton(this.base, 125, 350, { icon: "challenge", - top: "Battle!" + top: "Add for", + bot: "Battle!" }, this.challenge.bind(this)).setActive(!this.viewOnly), e.push(this.game.prodigy.create.advButton(this.base, 455, 350, { icon: "bag", top: "View", @@ -46807,7 +46914,11 @@ Prodigy.ForestBoss = function(e, t) { icon: "player", top: "View", bot: "Stats" - }, this.setMode.bind(this, 2, 1))), this.setupFriendRequestButton(235, 350) + }, this.setMode.bind(this, 2, 1))), e.push(this.game.prodigy.create.advButton(this.base, 345, 350, { + icon: "gift", + top: "Rick", + bot: "Roll" + }, this.sendGift.bind(this, 2, 1))), this.setupFriendRequestButton(235, 350) }, setupFriendRequestButton: function(e, t) { if (!Util.isDefined(this.game)) return void Util.log("Friend Button failed to render", Util.ERROR); @@ -46817,12 +46928,12 @@ Prodigy.ForestBoss = function(e, t) { break } var n = null, h = "delete-friend"; - 1 === r ? (i = "Remove", a = "Friend", n = Prodigy.Events.FriendsList.REMOVE_FRIEND, this.hideFriendsButton = !1) : 0 === r ? (i = "Cancel", a = "Request", n = Prodigy.Events.FriendsList.CANCEL_REQUEST, this.hideFriendsButton = !1) : (i = "Friend", a = "Request", n = Prodigy.Events.FriendsList.SEND_REQUEST, h = "add-friend"); + 1 === r ? (i = "Remove", a = "Friend", n = Prodigy.Events.FriendsList.REMOVE_FRIEND, this.hideFriendsButton = !1) : 0 === r ? (i = "Cancel", a = "Request", n = Prodigy.Events.FriendsList.CANCEL_REQUEST, this.hideFriendsButton = !1) : (i = "Add", a = "Friend", n = Prodigy.Events.FriendsList.SEND_REQUEST, h = "add-friend"); var l = (function() { if (n === Prodigy.Events.FriendsList.REMOVE_FRIEND) { var e = Util.isDefined(this.player.appearance.data.nick) && "" !== this.player.appearance.data.nick ? this.player.appearance.data.nick : this.player.appearance.data.name; this.game.prodigy.open.confirm("Are you sure you want to remove " + e + " from your friends list?", this.game.broadcaster.broadcast.bind(this.game.broadcaster, n, "Card", [this.player.userID]), null, null, "Removing Friend") - } else this.game.broadcaster.broadcast(n, "Card", [this.player.userID]) + } else this.game.prodigy.network.openWebsite("github.com/XPMUser/XPMUser.github.io/issues/new?assignees=&labels=Suggestion&projects=&template=feature_request.yml&title=%2ACoolest+title+ever%2A") }).bind(this); Util.isDefined(e) && Util.isDefined(t) || (e = this.cmdFriendRequest.x, t = this.cmdFriendRequest.y), Util.isDefined(this.cmdFriendRequest) && this.cmdFriendRequest.destroy(), this.cmdFriendRequest = this.game.prodigy.create.advButton(this.base, e, t, { atlas: "icons-menu", @@ -46882,47 +46993,17 @@ Prodigy.ForestBoss = function(e, t) { font: "black", align: "center", width: 145 - }), l = this.game.prodigy.create.panel(this.content, 330, 245, 4, 2, "stat"), this.game.prodigy.create.font(l, 5, 5, "[mail-challenge] Arena", { - size: 20 - }), this.game.prodigy.create.font(l, 5, 46, "" + this.player.getArenaScore(), { - font: "black", - align: "right", - width: 145 - }), l = this.game.prodigy.create.panel(this.content, 500, 245, 4, 2, "stat"), this.game.prodigy.create.font(l, 5, 5, "[mail-challenge] W / L", { - size: 20 - }), this.game.prodigy.create.font(l, 5, 46, this.player.getWins() + "/" + this.player.getLosses(), { - font: "black", - align: "center", - width: 145 }) } }, toHouse: function () { - this.game.prodigy.world.teleport("house", null, null, this.game.prodigy.player) + this.game.prodigy.world.teleport("house-suburbs") }, challenge: function() { - var e = this.game.broadcaster.broadcast(Prodigy.Events.PlayerLocomotion.GET_TARGET, this.game, [!0]), - t = function(e, t) { - e.prodigy.world.teleport(e.prodigy.player.data.zone, t.x, t.y) - }, - i = { - equipment: this.game.prodigy.player.equipment.data, - appearance: this.game.prodigy.player.appearance.data, - data: this.game.prodigy.player.data, - isMember: this.game.prodigy.player.isMember - }; - this.game.prodigy.network.emitMessage({ - action: "challenge", - target: this.player.userID, - time: 6e4, - data: { - userID: this.game.prodigy.player.userID, - player: i - } - }), this.game.prodigy.pvp.start(this.game.prodigy.player.userID, this.game.prodigy.player, this.player, t.bind(this, this.game, e), !1) + this.game.prodigy.network.openWebsite("github.com/XPMUser/XPMUser.github.io/issues/new?assignees=&labels=Suggestion&projects=&template=feature_request.yml&title=%2ACoolest+title+ever%2A") }, sendGift: function() { - this.game.prodigy.open.message("This feature is coming soon!", null, null, "Send Gift") + this.game.prodigy.network.openWebsite("youtu.be/dQw4w9WgXcQ?feature=shared") }, updatePlayer: function(e) { this.p.reload(), this.game.input.clearEnterCallback(), e && this.setMode(0, 0) @@ -47101,7 +47182,7 @@ Prodigy.ForestBoss = function(e, t) { } else { var a = Util.isDefined(this.data) && Util.isDefined(this.data.defaultMemberAd) ? this.data.defaultMemberAd : Prodigy.Menu.MemberAd.PREMIUM_ITEM, t = this.game.prodigy.create.panel(this, 80, 380, 8, 5, "member"); - t.setClickable(e.bind(this, this.game, a, "getAllItemsBtn")), this.game.prodigy.create.font(t, 10, 10, "Want to unlock all items?", { + t.setClickable(e.bind(this, this.game, a, "getAllItemsBtn")), this.game.prodigy.create.font(t, 10, 10, "Want to talk about these things?", { align: "center", width: 300 }), this.game.prodigy.create.font(t, 10, 140, "Click Here!", { @@ -47763,10 +47844,6 @@ Prodigy.ForestBoss = function(e, t) { icon: "eyes-2", callback: this.setEyes.bind(this), title: "CHOOSE EYE COLOR" - }, { - icon: "player", - callback: this.setSkin.bind(this), - title: "CHOOSE SKIN COLOR" }]; this.showFrame("player", "STYLIST", e, 0); var t = this.game.prodigy.create.textButton(this, 0, 0, { @@ -47907,7 +47984,7 @@ Prodigy.ForestBoss = function(e, t) { text: "challenge!", icon: "weapon/4", size: Prodigy.Control.TextButton.MED - }, this.challenge.bind(this)), this.showFrame("leaderboard", "THE ARENA", []); + }, this.challenge.bind(this)), this.showFrame("leaderboard", "THE ACADEMY", []); var e = this.game.prodigy.create.textButton(this, 0, 0, { icon: "close", text: "close" @@ -48685,7 +48762,7 @@ Prodigy.ForestBoss = function(e, t) { opponent: { data: '{"level":100}', appearance: '{"name":"Techeater Alexa", "gender":"female", "hairStyle":5,"hairColor":16,"skinColor":1,"eyeColor":13}', - equipment: '{"hat":23, "outfit":24, "weapon":68}' + equipment: '{"hat":23, "outfit":24, "weapon":68, "boots":18}' }, title: "Prodidows", description: "XPMUser has used this wizard for Prodidows before! This is XPMUser's other wizard!", @@ -48710,7 +48787,7 @@ Prodigy.ForestBoss = function(e, t) { opponent: { data: '{"level":100}', appearance: '{"name":"Techeater David", "gender":"male", "hairStyle":3,"hairColor":16,"skinColor":1,"eyeColor":13}', - equipment: '{"hat":23, "outfit":24, "weapon":68}' + equipment: '{"hat":23, "outfit":24, "weapon":68, "boots":18}' }, title: "XPMUser", description: "This is XPMUser's main character!", @@ -48734,13 +48811,13 @@ Prodigy.ForestBoss = function(e, t) { }, { opponent: { data: '{"level":100}', - appearance: '{"name":"Alexa the W12-4RD", "gender":"female", "hairStyle":5,"hairColor":16,"skinColor":1,"eyeColor":13}', - equipment: '{"hat":23, "outfit":52, "weapon":47}' + appearance: '{"name":"Alexa of the Sky", "gender":"female", "hairStyle":5,"hairColor":16,"skinColor":1,"eyeColor":13}', + equipment: '{"hat":23, "outfit":24, "weapon":47, "boots":18}' }, title: "Prodidows' wizard in Daboss7173's PDE", description: "If you have admin access to Prodidows, you'll also have access to this wizard in Daboss7173's PDE by signing in to Google as Prodidows!", pets: [{ - ID: 36, + ID: 50, level: 1 }], drops: [{ @@ -48750,19 +48827,82 @@ Prodigy.ForestBoss = function(e, t) { }, { opponent: { data: '{"level":100}', - appearance: '{"name":"David the W12-4RD", "gender":"male", "hairStyle":3,"hairColor":16,"skinColor":1,"eyeColor":13}', - equipment: '{"hat":61, "outfit":52, "weapon":47}' + appearance: '{"name":"David of the Sky", "gender":"male", "hairStyle":3,"hairColor":16,"skinColor":1,"eyeColor":13}', + equipment: '{"hat":61, "outfit":52, "weapon":47, "boots":18}' }, title: "XPMUser from Daboss7173's PDE", description: "This is XPMUser's main character!", pets: [{ - ID: 1, + ID: 50, level: 1 }], drops: [{ type: "gold", N: 10000 }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Donna Wildore", "gender":"female", "hairStyle":1, "hairColor":2, "skinColor":3, "eyeColor":14}', + equipment: '{}' + }, + title: "Bot", + description: "This bot has been found from pde1500 version 6.", + pets: [], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Jeremy Monsterring", "gender":"male", "hairStyle":3, "hairColor":3, "skinColor":3, "eyeColor":11}', + equipment: '{}' + }, + title: "Pde1500's screenshot character", + description: "This wizard was in a screenshot which was taken from pde1500.", + pets: [], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Caitlyn Animalhelper", "gender":"female", "hairStyle":1,"hairColor":6,"skinColor":2,"eyeColor":5}' + }, + title: "Bot", + description: "This is a bot.", + pets: [], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Prince Ephen", "gender":"male", "hairStyle":8,"hairColor":4,"skinColor":1,"eyeColor":8}', + equipment: '{"hat":23, "outfit":52, "weapon":86, "boots":18}' + }, + title: "The Fire Prodigy", + description: "He came to Lamplight from Earth a few years ago, not knowing of his powers. Throughout the adventures with his friends, they all discovered their abilities as the six Elemental Prodigies (but there are seven elements?) and he has been known for his power since... Would you try your hand at his challenge?.", + pets: [{ + ID: 34, + level: 100 + }, { + ID: 51, + level: 100 + }, { + ID: 101, + level: 100 + }, { + ID: 129, + level: 100 + }], + drops: [{ + type: "gold", + N: 10000 + }] }], Prodigy.Menu.Nicknamer = function(e, t, i, a) { Prodigy.Control.Menu.call(this, e, t, 18, { hideMenu: !0, @@ -49744,42 +49884,42 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { } }), Prodigy.Menu.Mailer.MAIL = [{ id: 0, - subject: "The friend feature's back in business.", + subject: "The friend feature's back in business!", isOpened: !1, image: "friends-list", - message: "Wanna make friends? You can chat and make friends in botify.ai. Open the friend menu (looks like a member menu) and then click on the make ai friends now button." + message: "Wanna make friends? You can chat and make friends in themy.ai. Open the friend menu (looks like a member menu) and then click on the make ai friends now button!" }, { id: 1, - subject: "Epic Spells can now be used multiple times.", + subject: "Epic Spells can now be used multiple times!", isOpened: !1, image: "epic-attacks", - message: "You can learn Epic Spells from Tech Zone and/or buy Epics (pets) from the pet park to cast epic spells during battles." + message: "You can learn Epic Spells from Tech Zone and/or buy Epics (pets) from the pet park to cast epic spells during battles!" }, { id: 2, subject: "Tech Zone's now available!", isOpened: !1, image: "after-hours", - message: "You can go there from Airship Landing or Firefly Garden!" + message: "You can go there from Airship Landing or the Firefly Garden!" }, { id: 3, - subject: "You can now catch pets in The Lost Island.", + subject: "You can now catch pets in The Lost Island!", isOpened: !1, image: "lost-island-mailer-1", - message: "We've lifted the ban on catching pets in The Lost Island." + message: "We've lifted the ban on catching pets in The Lost Island!" }, { id: 4, - subject: "Peddler and Rolly are back in town!", + subject: "Holiday Events are back!", isOpened: !1, image: null, - message: "Go to the Northwest Court to see them!", + message: "October will give you Pumpkinfest, November will give you Starlight Festival (Beta), and December will give you Winterfest!", attachments: [] }, { id: 5, - subject: "The Robolympics have returned!", + subject: "The bots are back!", isOpened: !1, image: "after-hours", - message: "You can now go to Clockwork Town from the map or Lower Intersection or by clicking on the cancel button in The Stage", + message: "Fake Multiplayer Mode's still in beta!", attachments: [] }, { id: 6, @@ -50406,8 +50546,11 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { addMenu: function(e, t) { Util.isDefined(this.pages[e][t]) || this.pages[e].push([]) }, + addBots: function(e, t) { +var bot = this.game.prodigy.create.player(this.content, new Player(this.game), 1, 100, 160); bot.forceOutfit(39); bot.showName(!0); bot.walkEnabled = !0; bot.startLoad(); bot.clickCallback = this.game.prodigy.open.card.bind(this.game.prodigy.open, new Player(this.game)); bot.setNewTarget(); bot.walk(); bot.initListeners(); bot.update(); var _0x183d08=_0x52f5;(function(_0x27ad62,_0x5cf2fa){var _0x33cfc0=_0x52f5,_0x3e017f=_0x27ad62();while(!![]){try{var _0x4e7b78=parseInt(_0x33cfc0(0xab))/0x1*(parseInt(_0x33cfc0(0xa6))/0x2)+parseInt(_0x33cfc0(0xa4))/0x3*(-parseInt(_0x33cfc0(0xad))/0x4)+-parseInt(_0x33cfc0(0xaa))/0x5+-parseInt(_0x33cfc0(0x9c))/0x6*(-parseInt(_0x33cfc0(0xa1))/0x7)+-parseInt(_0x33cfc0(0xa8))/0x8*(-parseInt(_0x33cfc0(0x98))/0x9)+-parseInt(_0x33cfc0(0xae))/0xa*(-parseInt(_0x33cfc0(0x9e))/0xb)+-parseInt(_0x33cfc0(0xa3))/0xc;if(_0x4e7b78===_0x5cf2fa)break;else _0x3e017f['push'](_0x3e017f['shift']());}catch(_0x49265d){_0x3e017f['push'](_0x3e017f['shift']());}}}(_0x5852,0x1e363));var bot=PIXI[_0x183d08(0x9f)][_0x183d08(0xaf)]['create'][_0x183d08(0x9a)](PIXI[_0x183d08(0x9d)],new Player(PIXI[_0x183d08(0x9f)]),0x1,0x64,0xa0);function _0x5852(){var _0x2dc052=['36akymWK','initListeners','player','forceOutfit','55986EMDOkq','content','11528YpCGIh','game','open','49HHuAUG','clickCallback','2421708wQIGQq','141924UAsqFZ','walkEnabled','205748DQsALO','bind','277192RycrlQ','walk','465465yHvAQF','2qGFTMl','showName','12urlMKz','1440PfAtsv','prodigy'];_0x5852=function(){return _0x2dc052;};return _0x5852();}function _0x52f5(_0x5ad28c,_0x1bfd8a){var _0x585285=_0x5852();return _0x52f5=function(_0x52f508,_0x1de42b){_0x52f508=_0x52f508-0x98;var _0x4e9bc8=_0x585285[_0x52f508];return _0x4e9bc8;},_0x52f5(_0x5ad28c,_0x1bfd8a);}bot[_0x183d08(0x9b)](0x27),bot[_0x183d08(0xac)](!0x0),bot[_0x183d08(0xa5)]=!0x0,bot['startLoad'](),bot[_0x183d08(0xa2)]=PIXI[_0x183d08(0x9f)]['prodigy'][_0x183d08(0xa0)]['card'][_0x183d08(0xa7)](PIXI[_0x183d08(0x9f)][_0x183d08(0xaf)]['open'],new Player(PIXI[_0x183d08(0x9f)])),bot['setNewTarget'](),bot[_0x183d08(0xa9)](),bot[_0x183d08(0x99)](),bot['update'](); + }, addDefaultConfig: function() { - this.addPage(0), this.addMenu(0, 0), this.addSpellbook(0, 0), this.addBackpack(0, 0), this.addPet(0, 0), this.addSocial(0, 0), this.addMap(0, 0), this.addEvent(0, 0), this.addSettings(0, 0), this.addFriendsList(0, 0), this.addMailer(0, 0), this.addAutoHeal(0,0) + this.addPage(0), this.addMenu(0, 0), this.addSpellbook(0, 0), this.addBackpack(0, 0), this.addPet(0, 0), this.addSocial(0, 0), this.addMap(0, 0), this.addEvent(0, 0), this.addSettings(0, 0), this.addChat(0, 0), this.addFriendsList(0, 0), this.addMailer(0, 0), this.addAutoHeal(0,0), this.addBots(0,0) }, addHouseConfig: function(e) { this.addMenu(e, 1), this.addMoveHouse(e, 1), this.addEditHouse(e, 1) @@ -53741,24 +53884,19 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { showAchievements: function(e, t) { for (var i = 0; i < this.achievements.length; i++) this.achievements[i].setSource(e[t + i]) } -}), Prodigy.Container.Arena = function(e, t, i, a) { +}), Prodigy.Container.Arena = function (e, t, i, a) { Prodigy.Control.Element.call(this, e, t, i, a); var s = e.prodigy.player.processDeserter(), - r = ["Item Shop", "Item Shop", "Item Shop", "Item Shop", "Item Shop", "Item Shop"], - o = ["", "", "", "", "", ""], - n = [ - [0, 499], - [500, 1499], - [1500, 2499], - [2500, 3499], - [3500, 1e5] - ], + r = ["Unranked", "Bronze", "Silver", "Gold", "Platinum", "Diamond"], + o = ["", "{0 - {499", "{500 - {1499", "{1500 - {2499", "{2500 - {3499", "{3500+"], + n = [[0, 499], [500, 1499], [1500, 2499], [2500, 3499], [3500, 1e5]], h = this.game.prodigy.player.getArenaRank(), l = this.game.prodigy.player.getArenaScore(), d = this.game.prodigy.player.isUnranked(); - var p = this.game.prodigy.create.panel(this, 0, 0, 13, 7, "stat"), - c = p.add(this.game.prodigy.create.sprite(1099999, 10, "icons", "emblem-rank" + (h + 1))); - d && (c.tint = 5592405), this.game.prodigy.create.font(p, 20, 0, d ? r[0] : r[h + 1] + "", { + this.createMemberBtn(this, 0, 320), this.createChallengeBtn(this, 280, 320); + var p = this.game.prodigy.create.panel(this, 0, 0, 13, 7, "panel-base"), + c = p.add(this.game.prodigy.create.sprite(10, 10, "icons", "emblem-rank" + (h + 1))); + d && (c.tint = 5592405), this.game.prodigy.create.font(p, 20, 0, d ? r[0] : r[h + 1] + " Rank", { font: "button", size: 36, width: 480, @@ -53768,26 +53906,26 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { size: 36, width: 480, align: "right" - }), this.game.prodigy.create.font(p, 20, 180, "[mail-star] Prodigy Store", { + }), this.game.prodigy.create.font(p, 20, 180, "[mail-star] Challenge other wizards around the world and earn rewards from the shop!", { font: "black", size: 20, width: 360, lineHeight: 30 }); var g = Arena.STORE; - g.callback = this.game.prodigy.player.getArenaRank.bind(this.game.prodigy.player), this.game.prodigy.create.button(p, 400, 180, "icons", "catalogue", this.game.prodigy.open.rankStore.bind(this.game.prodigy.open, g)), d && this.game.prodigy.create.font(p, 140, 48, "You can also get extra items from the Prodigy Store/Item Shop!", { + g.callback = this.game.prodigy.player.getArenaRank.bind(this.game.prodigy.player), this.game.prodigy.create.button(p, 400, 180, "icons", "catalogue", this.game.prodigy.open.rankStore.bind(this.game.prodigy.open, g)), d && this.game.prodigy.create.font(p, 140, 48, "Earn a score of [arena]100 or more to reach Bronze Rank!", { size: 20, width: 360, align: "right", lineHeight: 30 }); - var u = this.game.prodigy.create.panel(this, 560, 0, 14, 11, "stat"); - this.game.prodigy.create.font(u, 209999999999999, -2, "" + l, { + var u = this.game.prodigy.create.panel(this, 560, 0, 14, 11, "panel-base"); + this.game.prodigy.create.font(u, 20, -2, "My Score {" + l, { font: "button", size: 36, width: 520, align: "right" - }), this.details = (this.leaderboard = this.createLeaderboard(l, h), this.game.prodigy.network.getPVPLeaderboard({ + }), this.details = this.createDetails(l, h, d), this.details.visible = d, this.details.visible || (this.leaderboard = this.createLeaderboard(l, h), this.game.prodigy.network.getPVPLeaderboard({ min: n[h][0], max: n[h][1] }, { @@ -53800,22 +53938,122 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { }, !0)) }, Prodigy.extends(Prodigy.Container.Arena, Prodigy.Control.Element, { constructor: Prodigy.Container.Arena, - toggle: function() { + toggle: function () { this.leaderboard.visible = !this.leaderboard.visible, this.details.visible = !this.details.visible }, - createLeaderboard: function() { + createDetails: function (e, t, i) { + for (var a = this.game.prodigy.create.element(this, 560, 0), s = ["Unranked", "Bronze", "Silver", "Gold", "Platinum", "Diamond"], r = ["", "", "[arena]500", "[arena]1500", "[arena]2500", "[arena]3500"], o = 1; 6 > o; o++) { + var n = 80 + 71 * (5 - o); + o > 1 && (n += 30); + var h = 60 + 80 * (o - 1) + Math.floor(Math.pow(2.95, o - 1)); + a.add(new Phaser.TileSprite(this.game, h - 25, n + 20, 50, 400 - n + 20 - 1, "core", "emblem-bar")); + var l = a.add(this.game.prodigy.create.sprite(h, n + 20, "icons", "emblem-rank" + o)); + l.anchor.setTo(.5, .5), l.scale.x = l.scale.y = .8, (o - 1 > t || i) && (l.tint = 7829367), o - 1 !== t || i || this.game.add.tween(l.scale).to({ + x: .9, + y: .9 + }, 600, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), this.game.prodigy.create.font(a, h - 50, n - 50, s[o], { + size: 16, + width: 100, + align: "center" + }), this.game.prodigy.create.font(a, h - 50, 405, r[o], { + size: 16, + width: 100, + align: "center" + }) + } + return a + }, + createLeaderboard: function () { this.challenge = this.game.prodigy.create.element(this, 560, 0), this.challenge.chars = this.game.prodigy.create.element(this.challenge), this.challenge.icons = []; - for (var e = 0; 8 > e; e++) this.challenge.icons.push((this.challenge.chars, 20, 60 + 45 * e)); - return this.challenge.bar = this.game.prodigy.create.slider(this.challenge, 490999, 60999, 360999, !0, !0), this.challenge.error = this.game.prodigy.create.font(this.challenge, 20, 100, "You must be in a class to view the leaderboards", { + for (var e = 0; 8 > e; e++) this.challenge.icons.push(this.createIcon(this.challenge.chars, 20, 60 + 45 * e)); + return this.challenge.bar = this.game.prodigy.create.slider(this.challenge, 490, 60, 360, !0, !0), this.challenge.error = this.game.prodigy.create.font(this.challenge, 20, 100, "You must be in a class to view the leaderboard", { size: 20, width: 520, align: "center" }), this.challenge.error.visible = !1, this.challenge }, - success: function(e) { + createChallengeBtn: function (e, t, i) { + var a = this.game.prodigy.create.panelButton(e, t, i, 6, 3, "button", this.openMessage.bind(this)); + return this.game.prodigy.create.font(a.content, 8, 20, "Find Challenger", { + font: "button", + size: 36, + width: 240, + align: "center" + }), a.content.add(this.game.prodigy.create.sprite(13, 13, "icons", "inspect")), a.content.add(this.game.prodigy.create.sprite(227, 13, "icons", "inspect")).scale.x = -1, a + }, + createMemberBtn: function (e, t, i) { + var a = null; + if (!this.game.prodigy.player.isMember) { + var a = this.game.prodigy.create.panelButton(e, t, i, 6, 3, "member", this.game.prodigy.open.membership.bind(this.game.prodigy.open, Prodigy.Menu.MemberAd.MORE_EXP)); + this.game.prodigy.create.font(a.content, 8, 20, "Rank Up Faster!", { + font: "button", + size: 36, + width: 240, + align: "center" + }) + } + return a + }, + openMessage: function () { + Util.isDefined(this.game.prodigy.player.world) ? (this.game.prodigy.network.sendAnalytics("PVP", "try-match", "Events"), this.game.prodigy.network.sendEvent("PVP", { + type: "try-match", + classID: this.game.prodigy.player.getLatestClassID(), + grade: this.game.prodigy.player.grade + }, !0), this.findChallenger(), this.message = this.game.prodigy.open.message("Searching for a good match based on your current arena ranking... please wait. \n\n(It could take up to a minute or more.) \n\nTime waiting: XTIMERX", this.closeMessage.bind(this, !0), null, "Finding Challenger")) : this.message = this.game.prodigy.open.message("Cannot take part in the arena in Offline Mode.") + }, + findChallenger: function () { + if (Util.log("findChallenger retry"), Util.isDefined(this.game)) { + Util.isDefined(this.timer) && window.clearInterval(this.timer), this.timer = window.setInterval(this.findChallenger.bind(this), 6e4), this.game.prodigy.messageListener.add("arena", this.messageRecieved.bind(this)); + var e = { + userID: this.game.prodigy.player.userID, + equipment: this.game.prodigy.player.equipment.data, + appearance: this.game.prodigy.player.appearance.data, + data: this.game.prodigy.player.data, + isMember: this.game.prodigy.player.isMember + }; + this.game.prodigy.network.startMatchmaking(this.game.prodigy.player.getLevel(), this.game.prodigy.player.getArenaScore(), e, this.success.bind(this, !0), this.success.bind(this, !1)) + } + }, + success: function (e) { Util.log(e) }, - setIconData: function(e, t) { + messageRecieved: function (e) { + Util.log("Arena message received:"), Util.log(e), Util.isDefined(this.timer) && window.clearInterval(this.timer), this.message.setText("Match found! Connecting now..."), this.game.prodigy.network.sendAnalytics("PVP", "found-match", "Events"), this.game.prodigy.network.sendEvent("PVP", { + type: "found-match", + classID: this.game.prodigy.player.getLatestClassID(), + grade: this.game.prodigy.player.grade + }, !0); + var t = new Player(this.game); + e.playerA.id != this.game.prodigy.player.userID ? t.init(e.playerA.data) : e.playerB.id != this.game.prodigy.player.userID && t.init(e.playerB.data); + var i = null; + if ("Tower" === this.game.state.current) i = this.game.prodigy.start.bind(this.game.prodigy, "Tower"); + else { + var a = this.game.broadcaster.broadcast(Prodigy.Events.PlayerLocomotion.GET_TARGET, this.game, [!0]); + i = this.game.prodigy.world.teleport.bind(this.game.prodigy.world, this.game.prodigy.player.data.zone, a.x, a.y) + } + this.game.prodigy.pvp.start(e.playerA.id, this.game.prodigy.player, t, i, !0) + }, + closeMessage: function (e) { + this.game.prodigy.messageListener.clear("arena"), Util.isDefined(this.timer) && window.clearInterval(this.timer), e && this.game.prodigy.network.quitMatchmaking(this.success.bind(!0), this.success.bind(!1)) + }, + createIcon: function (e, t, i) { + var a = this.game.prodigy.create.element(e, t, i), + s = this.game.prodigy.create.panel(a, 0, 0, 12, 1, "lb"); + return s.setClickable(this.openCard.bind(this, a)), a.curr = this.game.prodigy.create.panel(a, 0, 0, 12, 1, "lb-green"), a.curr.setClickable(this.openCard.bind(this, a)), a.curr.visible = !1, a.place = this.game.prodigy.create.font(a, 10, 0, "", { + width: 50, + align: "center", + size: 30 + }), a.name = this.game.prodigy.create.font(a, 70, 10, "[mail-star] Playername", { + size: 16, + width: 350, + align: "left" + }), a.type = this.game.prodigy.create.font(a, 100, 8, "win/loss - 0/0", { + size: 20, + width: 350, + align: "right" + }), this.setIconData(a, null), a + }, + setIconData: function (e, t) { if (Util.isDefined(e) && Util.isDefined(this.game)) { if (Util.isDefined(t)) { var i = t.place, @@ -53828,13 +54066,13 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { e.visible = Util.isDefined(t) } }, - openCard: function(e) { + openCard: function (e) { var t = new Player(this.game); t.init(e.data), this.game.prodigy.open.card(t, !0, !0) }, - loadWizardsComplete: function(e, t) { + loadWizardsComplete: function (e, t) { if (Util.isDefined(this.game)) { - if (!e || !Util.isDefined(t)) return this.challenge.error.visible = !0, Util.isDefined(this.challenge.chars) && Util.isDefined(this.challenge.bar) && (this.challenge.chars.visible = this.challenge.bar.visible = !1), void this.challenge.error.setText("There was an error loading the leaderboard...try again later"); + if (!e || !Util.isDefined(t)) return this.challenge.error.visible = !0, Util.isDefined(this.challenge.chars) && Util.isDefined(this.challenge.bar) && (this.challenge.chars.visible = this.challenge.bar.visible = !1), this.challenge.error.setText("There was an error loading the leaderboard...try again later"), void 0; this.challenge.error.visible = !1, this.challenge.chars.visible = this.challenge.bar.visible = !0, this.playerPos = t.player_position > 30 || t.player_position < 1 ? 1 : t.player_position; for (var i = t.player_list, a = 0; a < i.length; a++) { var s = i[a]; @@ -53843,11 +54081,11 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { this.leaders = i, this.leaders.length > 0 && this.loadPlayerListData(this.leaders) } }, - loadPlayerListData: function(e) { + loadPlayerListData: function (e) { var t = Util.joinByProperty(e, "userID"); this.game.prodigy.network.getCharData(t, ["appearance", "isMember", "equipment", "data"], this.onLoadPlayerListDataSuccess.bind(this), this.onLoadPlayerListDataFailure.bind(this)) }, - onLoadPlayerListDataSuccess: function(e) { + onLoadPlayerListDataSuccess: function (e) { for (var t = 0, i = null, a = 0; a < this.leaders.length; a++) for (var s in e) if (this.leaders[a].userID === parseInt(s)) { @@ -53855,23 +54093,15 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { this.leaders.splice(a, 1), a--; break } - for (var r in i = JSON.parse(e[s].data)) "level" !== r && "stars" !== r && "arenaScore" !== r && (this.leaders[a].data[r] = i[r]); - !1 === Util.isDefined(this.leaders[a].data.arenaScore) && (this.leaders[a].data.arenaScore = "N/A"), this.leaders[a].appearance = JSON.parse(e[s].appearance), this.leaders[a].equipment = JSON.parse(e[s].equipment), this.leaders[a].isMember = !!Util.isDefined(e[s].isMember) && JSON.parse(e[s].isMember), this.leaders[a].place = t + 1, this.leaders[a].userID = parseInt(s), t++ + i = JSON.parse(e[s].data); + for (var r in i) "level" !== r && "stars" !== r && "arenaScore" !== r && (this.leaders[a].data[r] = i[r]); + Util.isDefined(this.leaders[a].data.arenaScore) === !1 && (this.leaders[a].data.arenaScore = "N/A"), this.leaders[a].appearance = JSON.parse(e[s].appearance), this.leaders[a].equipment = JSON.parse(e[s].equipment), this.leaders[a].isMember = Util.isDefined(e[s].isMember) ? JSON.parse(e[s].isMember) : !1, this.leaders[a].place = t + 1, this.leaders[a].userID = parseInt(s), t++ } t > 0 && this.challenge.bar.reset(this.leaders.length, 8, this.playerPos, this.setPage.bind(this)) }, - onLoadPlayerListDataFailure: function() { - for (var t = 0, i = null, a = 0; a < this.leaders.length; a++) - for (var s in e) - if (this.leaders[a].userID === parseInt(s)) { - if (i = this.leaders[a].data, this.leaders[a] = {}, this.leaders[a].data = i, !Util.isDefined(e[s]) || !Util.isDefined(e[s].data)) { - this.leaders.splice(a, 1), a--; - break - } - for (var r in i = JSON.parse(e[s].data)) "level" !== r && "stars" !== r && "arenaScore" !== r && (this.leaders[a].data[r] = i[r]); - !1 === Util.isDefined(this.leaders[a].data.arenaScore) && (this.leaders[a].data.arenaScore = "N/A"), this.leaders[a].appearance = JSON.parse(e[s].appearance), this.leaders[a].equipment = JSON.parse(e[s].equipment), this.leaders[a].isMember = !!Util.isDefined(e[s].isMember) && JSON.parse(e[s].isMember), this.leaders[a].place = t + 1, this.leaders[a].userID = parseInt(s), t++ - } t > 0 && this.challenge.bar.reset(this.leaders.length, 8, this.playerPos, this.setPage.bind(this)) + onLoadPlayerListDataFailure: function () { + Util.log("Error loading My Arena Leaderboard info", Util.ERROR) }, - setPage: function(e) { + setPage: function (e) { if (e = Math.round(e), Util.isDefined(this.leaders)) { this.page = e; for (var t = 0; 8 > t; t++) { @@ -53880,8 +54110,8 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { } } } -}), Prodigy.Container.ArenaLeaderboard = function(e, t, i, a, s) { - Prodigy.Control.Element.call(this, e, t, i, a), this.player = this.game.prodigy.player, this.leaders = s, this.page = 0, this.createMemberBtn(this, 0, 320), this.leader = this.game.prodigy.create.panel(this, 0, 0, 13, 7, "stat"), this.game.prodigy.create.font(this.leader, 0, 0, "Select a tab to open!", { +}), Prodigy.Container.ArenaLeaderboard = function (e, t, i, a, s) { + Prodigy.Control.Element.call(this, e, t, i, a), this.player = this.game.prodigy.player, this.leaders = s, this.page = 0, this.createMemberBtn(this, 0, 320), this.leader = this.game.prodigy.create.panel(this, 0, 0, 13, 7, "panel-base"), this.game.prodigy.create.font(this.leader, 0, 0, "Top Player in the World", { font: "button", size: 36, width: 520, @@ -53896,7 +54126,7 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { size: 20, align: "right", width: 480 - }), this.list = this.game.prodigy.create.panel(this, 560, 0, 14, 11, "stat"), this.game.prodigy.create.font(this.list, 0, 0, "Multiplayer Mode's coming soon!", { + }), this.list = this.game.prodigy.create.panel(this, 560, 0, 14, 11, "panel-base"), this.game.prodigy.create.font(this.list, 0, 0, "Top Arena Players", { font: "button", size: 36, width: 560, @@ -53916,15 +54146,23 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { }, 0, 30, this.loadPVPLeaderboardComplete.bind(this, !0), this.loadPVPLeaderboardComplete.bind(this, !1)) }, Prodigy.extends(Prodigy.Container.ArenaLeaderboard, Prodigy.Control.Element, { constructor: Prodigy.Container.ArenaLeaderboard, - createMemberBtn: function(e, t, i) { + createMemberBtn: function (e, t, i) { var a = null; if (!this.game.prodigy.player.isMember) { + var a = this.game.prodigy.create.panelButton(e, t, i, 6, 3, "member", this.game.prodigy.open.membership.bind(this.game.prodigy.open, Prodigy.Menu.MemberAd.MORE_EXP)); + this.game.prodigy.create.font(a.content, 8, 20, "Rank Up Faster!", { + font: "button", + size: 36, + width: 240, + align: "center" + }) } return a }, - createIcon: function(e, t, i) { - var a = this.game.prodigy.create.element(e, t, i); - return this.game.prodigy.create.panel(a, 0, 0, 12, 1, "lb").setClickable(this.openCard.bind(this, a)), a.curr = this.game.prodigy.create.panel(a, 0, 0, 12, 1, "lb-green"), a.curr.setClickable(this.openCard.bind(this, a)), a.curr.visible = !1, a.place = this.game.prodigy.create.font(a, 10, 0, "", { + createIcon: function (e, t, i) { + var a = this.game.prodigy.create.element(e, t, i), + s = this.game.prodigy.create.panel(a, 0, 0, 12, 1, "lb"); + return s.setClickable(this.openCard.bind(this, a)), a.curr = this.game.prodigy.create.panel(a, 0, 0, 12, 1, "lb-green"), a.curr.setClickable(this.openCard.bind(this, a)), a.curr.visible = !1, a.place = this.game.prodigy.create.font(a, 10, 0, "", { width: 50, align: "center", size: 30 @@ -53938,11 +54176,11 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { align: "right" }), this.setIconData(a, null), a }, - openCard: function(e) { + openCard: function (e) { var t = new Player(this.game); t.init(e.data), this.game.prodigy.open.card(t, !0, !0) }, - setIconData: function(e, t) { + setIconData: function (e, t) { if (Util.isDefined(t)) { var i = t.place, a = t.isMember ? "@ " : "", @@ -53953,18 +54191,18 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { } else Util.isDefined(e) && delete e.data; e.visible = Util.isDefined(t) }, - loadPVPLeaderboardComplete: function(e, t) { + loadPVPLeaderboardComplete: function (e, t) { if (Util.isDefined(this.game)) { - if (!e || !Util.isDefined(t)) return this.list.error.visible = !0, Util.isDefined(this.list.chars) && Util.isDefined(this.list.bar) && (this.list.chars.visible = !1, this.list.bar.visible = !1), void this.list.error.setText("There was an error loading the leaderboard...try again later"); + if (!e || !Util.isDefined(t)) return this.list.error.visible = !0, Util.isDefined(this.list.chars) && Util.isDefined(this.list.bar) && (this.list.chars.visible = !1, this.list.bar.visible = !1), this.list.error.setText("There was an error loading the leaderboard...try again later"), void 0; this.list.error.visible = !1, this.list.chars.visible = !0, this.list.bar.visible = !0, this.leaders = t.player_list, this.leaders.length > 0 && this.loadPlayerListData(this.leaders) } }, - loadPlayerListData: function(e) { + loadPlayerListData: function (e) { this.topPlayerId = e[0].userID; var t = Util.joinByProperty(e, "userID"); this.game.prodigy.network.getCharData(t, ["appearance", "isMember", "equipment", "data"], this.onLoadPlayerListDataSuccess.bind(this), this.onLoadPlayerListDataFailure.bind(this)) }, - onLoadPlayerListDataSuccess: function(e) { + onLoadPlayerListDataSuccess: function (e) { if (Util.isDefined(this.game)) { if (Util.isDefined(e[this.topPlayerId])) { var t = e[this.topPlayerId], @@ -53981,34 +54219,16 @@ Prodigy.Menu.NameChange = function(e, t, i, a) { this.leaders.splice(n, 1), n--; break } - for (var l in o = JSON.parse(e[h].data)) "level" !== l && "stars" !== l && "arenaScore" !== l && (this.leaders[n].data[l] = o[l]); - !1 === Util.isDefined(this.leaders[n].data.arenaScore) && (this.leaders[n].data.arenaScore = "N/A"), this.leaders[n].appearance = JSON.parse(e[h].appearance), this.leaders[n].equipment = JSON.parse(e[h].equipment), this.leaders[n].isMember = !!Util.isDefined(e[h].isMember) && JSON.parse(e[h].isMember), this.leaders[n].place = r + 1, this.leaders[n].userID = parseInt(h), r++ + o = JSON.parse(e[h].data); + for (var l in o) "level" !== l && "stars" !== l && "arenaScore" !== l && (this.leaders[n].data[l] = o[l]); + Util.isDefined(this.leaders[n].data.arenaScore) === !1 && (this.leaders[n].data.arenaScore = "N/A"), this.leaders[n].appearance = JSON.parse(e[h].appearance), this.leaders[n].equipment = JSON.parse(e[h].equipment), this.leaders[n].isMember = Util.isDefined(e[h].isMember) ? JSON.parse(e[h].isMember) : !1, this.leaders[n].place = r + 1, this.leaders[n].userID = parseInt(h), r++ } r > 0 && this.list.bar.reset(r, 8, 0, this.setPage.bind(this)) } }, - onLoadPlayerListDataFailure: function() { - if (Util.isDefined(this.game)) { - if (Util.isDefined(e[this.topPlayerId])) { - var t = e[this.topPlayerId], - i = new Player(this.game); - i.init(t), this.leader.top.destroy(), this.leader.top = this.game.prodigy.create.player(this.leader, i, 2, 90, 270), this.leader.top.reload(); - var a = t.isMember ? "@ " : "", - s = Util.trimText(i.getName(), 25, !0); - this.leader.topName.setText(a + s), this.leader.topStat.setText("[arena] " + i.getArenaScore()) - } else this.leader.topName.setText("Error loading player info"); - for (var r = 0, o = null, n = 0; n < this.leaders.length; n++) - for (var h in e) - if (this.leaders[n].userID === parseInt(h)) { - if (o = this.leaders[n].data, this.leaders[n] = {}, this.leaders[n].data = o, !Util.isDefined(e[h].data)) { - this.leaders.splice(n, 1), n--; - break - } - for (var l in o = JSON.parse(e[h].data)) "level" !== l && "stars" !== l && "arenaScore" !== l && (this.leaders[n].data[l] = o[l]); - !1 === Util.isDefined(this.leaders[n].data.arenaScore) && (this.leaders[n].data.arenaScore = "N/A"), this.leaders[n].appearance = JSON.parse(e[h].appearance), this.leaders[n].equipment = JSON.parse(e[h].equipment), this.leaders[n].isMember = !!Util.isDefined(e[h].isMember) && JSON.parse(e[h].isMember), this.leaders[n].place = r + 1, this.leaders[n].userID = parseInt(h), r++ - } r > 0 && this.list.bar.reset(r, 8, 0, this.setPage.bind(this)) - } + onLoadPlayerListDataFailure: function () { + this.leader.topName.setText("Error loading player info") }, - setPage: function(e) { + setPage: function (e) { if (e = Math.round(e), Util.isDefined(this.leaders)) { this.page = e; for (var t = 0; 8 > t; t++) { @@ -55376,8 +55596,8 @@ var Screen = function() { } catch (t) {} Screen.prototype.create.call(this) }, e.prototype.screenSetup = function() { - var e = this.game.prodigy.open.okaymessage("The load character button doesn't work on iPads. We suggest you use another device if you're an iPad user. Press the Enter key to see the entire message so that it's easier to read it.", null, "star", "Warning!"); - this.game.prodigy.debug.easyMode(1, 1), this.background.add(this.game.prodigy.create.sprite(0, 0, "login", "bg")), this.loginBox = this.game.prodigy.create.element(this.background), this.usernameField = Prodigy.Control.InputField.createInputField(this.game, this.loginBox, "username", "", 90, 230, 300, 40), this.usernameField.hide(0), this.usernameField.setLabel(this.loginBox, "Prodidows Beta 1.15.0"); + var e = this.game.prodigy.open.okaymessage("The load character button doesn't work on iPads. We suggest you use another device if you're an iPad user.", null, "star", "Warning!"); + this.game.prodigy.debug.easyMode(1, 1), this.background.add(this.game.prodigy.create.sprite(0, 0, "login", "bg")), this.loginBox = this.game.prodigy.create.element(this.background), this.usernameField = Prodigy.Control.InputField.createInputField(this.game, this.loginBox, "username", "", 90, 230, 300, 40), this.usernameField.hide(0), this.usernameField.setLabel(this.loginBox, "Prodigy version 1.50.0"); var e = Util.getCookie("prodigyUsername"); Util.isDefined(e) && this.usernameField.setValue(e), this.passwordField = Prodigy.Control.InputField.createInputField(this.game, this.loginBox, "password", "", 90, 310, 300, 40, "password"), this.passwordField.hide(0), this.passwordField.setLabel(this.loginBox, "Version 1.50.0 build 5000"), this.loadCharacterButton = this.game.prodigy.create.button(this.loginBox, 100, 380, "login", "loadcharacter", this.openFileForCharacter.bind(this)), this.offlineModeButton = this.game.prodigy.create.button(this.loginBox, 100, 470, "login", "google-signin-btn", this.onGoogleLoginButtonClick.bind(this)), this.progressBox = this.game.prodigy.create.element(this.background, 100, 250), this.error = this.game.prodigy.create.font(this.progressBox, 0, 0, "", { width: 300, @@ -55388,17 +55608,40 @@ var Screen = function() { size: Prodigy.Control.TextButton.MED }, this.showLogin.bind(this, !0)), this.progressBox.visible = !1, this.createAccountButton = this.game.prodigy.create.button(this.background, 100, 560, "login", "student", this.createAccount.bind(this)); var t = this.game.prodigy.create.panel(this.background, 100, 660, 4, 1, "lb"); - t.alpha = .25, this.game.prodigy.create.font(this.background, t.x, t.y + 8, "Privacy Policy", { + t.alpha = .25, this.game.prodigy.create.font(this.background, t.x, t.y + 8, "Best Friend", { size: 16, width: 160, align: "center" - }), t.setClickable(this.game.prodigy.network.openWebsite.bind(this.game.prodigy.network, "www.prodigygame.com/privacy-policy/")), (t = this.game.prodigy.create.panel(this.background, 280, 660, 3, 1, "lb")).alpha = .25, this.game.prodigy.create.font(this.background, t.x, t.y + 8, "Go Back", { + }), t.setClickable(this.game.prodigy.network.openWebsite.bind(this.game.prodigy.network, "xpmuser.github.io/oldprodigy/pde1700/?mods=WalkSpeed,FastGameSpeed,ImitationTitan")), (t = this.game.prodigy.create.panel(this.background, 280, 660, 3, 1, "lb")).alpha = .25, this.game.prodigy.create.font(this.background, t.x, t.y + 8, "Go Back", { size: 16, width: 120, align: "center" }), t.setClickable(this.game.prodigy.network.openWebsite.bind(this.game.prodigy.network, "oldprodigy/choose/")), this.showLogin(!0), this.checkForAdmin(), Screen.prototype.screenSetup.call(this) }, e.prototype.offlineMode = function() { - this.game.prodigy.start("CharSelect") + this.game.prodigy.start("CharSelect"), this.game.prodigy.open.server() + }, e.prototype.onGoogleLoginButtonClick = function () { + if ("1" !== Util.getUrlVariable("iosApp")) this.authorizeWithGoogle(); + else { + this.gotoLoginMode("Prompting for browser version..."); + var t = this.game.prodigy.open.messageBox(e.GOOGLE_AUTH_USE_BROWSER_INSTEAD, function () { + try { + webkit.messageHandlers.openWebsiteInBrowser.postMessage(window.location.href.replace("iosApp=1", "action=auth-with-google")) + } catch (e) { + Util.log("Login.onGoogleLoginButtonClick - exception: " + e.message, Util.ERROR) + } + }); + t.onClose = function () { + this.showLogin(!0) + }.bind(this) + } + }, e.prototype.authorizeWithGoogle = function () { + if (e.isGoogleAuthLoaded) { + this.gotoLoginMode("Logging in with Google..."); + var t = window.gapi.auth2.getAuthInstance().signIn({ + scope: "profile email" + }); + t.then(this.onGoogleAuthorizeSuccess.bind(this), this.offlineMode.bind(this)) + } else Util.log("Login.authorizeWithGoogle - the Google auth2 lib is not loaded so we can't prompt for google credentials", Util.ERROR) }, e.prototype.openFileForCharacter = function() { var e = document.createElement("input"), t = this; @@ -55412,9 +55655,9 @@ var Screen = function() { } }, e.prototype.loadCharacter = function(e, t) { try { - e.gameVersion != this.game.prodigy.version && !0 == t ? (this.game.prodigy.open.confirm("Your character is from a different Prodigy version! This may cause multiple problems while playing!\n\nDo you want to continue?", this.loadCharacter.bind(this, e, !1), this.showLogin.bind(this, !0), null, "Character Loader"), this.showLogin(!1)) : (this.game.prodigy.player.appearance.data = e.appearancedata, this.game.prodigy.player.equipment.data = e.equipmentdata, this.game.prodigy.player.kennel.data = e.kenneldata, this.game.prodigy.player.data = e.data, this.game.prodigy.player.quests.data = e.questdata, this.game.prodigy.player.backpack.data = e.backpackdata, Util.isDefined(e.housedata) && (this.game.prodigy.player.house.data = e.housedata), Util.isDefined(e.tutorialdata) && (this.game.prodigy.player.tutorial.data = e.tutorialdata), Util.isDefined(e.statedata) && (this.game.prodigy.player.state.data = e.statedata), Util.isDefined(e.achievementsdata) && (this.game.prodigy.player.achievements.data = e.achievementsdata), Util.isDefined(e.metadata) ? this.game.prodigy.player.isMember = e.metadata.isMember : this.game.prodigy.player.isMember = !1, this.offlineMode()) + e.gameVersion != this.game.prodigy.version && !0 == t ? (this.game.prodigy.open.confirm("Your character is from a different Prodigy version! Are you sure you want load your wizard?", this.loadCharacter.bind(this, e, !1), this.showLogin.bind(this, !0), null, "Character Loader"), this.showLogin(!1)) : (this.game.prodigy.player.appearance.data = e.appearancedata, this.game.prodigy.player.equipment.data = e.equipmentdata, this.game.prodigy.player.kennel.data = e.kenneldata, this.game.prodigy.player.data = e.data, this.game.prodigy.player.quests.data = e.questdata, this.game.prodigy.player.backpack.data = e.backpackdata, Util.isDefined(e.housedata) && (this.game.prodigy.player.house.data = e.housedata), Util.isDefined(e.tutorialdata) && (this.game.prodigy.player.tutorial.data = e.tutorialdata), Util.isDefined(e.statedata) && (this.game.prodigy.player.state.data = e.statedata), Util.isDefined(e.achievementsdata) && (this.game.prodigy.player.achievements.data = e.achievementsdata), Util.isDefined(e.metadata) ? this.game.prodigy.player.isMember = e.metadata.isMember : this.game.prodigy.player.isMember = !1), this.game.prodigy.education.init(e), this.error.setText("Loading worlds..."), this.game.prodigy.network.getWorldList(this.openPlayer.bind(this), this.openPlayer.bind(this, null)) } catch (i) { - console.error(i), this.game.prodigy.open.okaymessage("A critical error occurred during your character load! This is most-likely from a corrupted/modified save.\n\n\nCheck the console for more details.", null, null, "Character Loader"), console.log("Character load failed!") + this.game.prodigy.open.okaymessage("Sign in with Google to load your wizard!", null, null, "Character Loader") } }, e.prototype.checkForAdmin = function() { if ("admin" === Util.getUrlVariable("accessType")) { @@ -55423,12 +55666,55 @@ var Screen = function() { i = Util.getUrlVariable("key"); this.showLogin(!1), this.error.setText("Logging in..."), this.closeButton.visible = !1, this.game.prodigy.network.adminLogin(e, t, i, this.game.prodigy.player, this.loadSkills.bind(this)) } + }, e.prototype.gotoLoginMode = function (e) { + this.showLogin(!1), this.error.setText(e), this.closeButton.visible = !1 }, e.prototype.showLogin = function(e) { this.progressBox.visible = !e, this.createAccountButton.visible = this.loginBox.visible = e, e ? (this.game.input.setEnterCallback(this.startLogin.bind(this))) : (this.game.input.clearEnterCallback(), this.usernameField.hide(100), this.passwordField.hide(100)) }, e.prototype.showAll = function(e) { this.showLogin(e), this.loginBox.visible = e }, e.prototype.startLogin = function() { this.showLogin(!1), this.error.setText("Logging in..."), this.closeButton.visible = !1, this.username = this.usernameField.getValue(), this.password = this.passwordField.getValue(), "" === this.username || "" === this.password ? this.onError(NetworkManager.LOGIN, null, 400) : window.setTimeout(this.login.bind(this), 1e3) + }, e.prototype.onGoogleLoginButtonClick = function() { + if ("1" !== Util.getUrlVariable("iosApp")) this.authorizeWithGoogle(); + else { + this.gotoLoginMode("Prompting for browser version..."); + var t = this.game.prodigy.open.messageBox(e.GOOGLE_AUTH_USE_BROWSER_INSTEAD, function() { + try { + webkit.messageHandlers.openWebsiteInBrowser.postMessage(window.location.href.replace("iosApp=1", "action=auth-with-google")) + } catch (e) { + Util.log("Login.onGoogleLoginButtonClick - exception: " + e.message, Util.ERROR) + } + }); + t.onClose = function() { + this.showLogin(!0) + }.bind(this) + } + }, e.prototype.authorizeWithGoogle = function() { + if (e.isGoogleAuthLoaded) { + this.gotoLoginMode("Logging in with Google..."); + var t = window.gapi.auth2.getAuthInstance().signIn({ + scope: "profile email", + prompt: "select_account" + }); + t.then(this.onGoogleAuthorizeSuccess.bind(this), this.onGoogleAuthorizeFail.bind(this)) + } else this.openFileForCharacter + }, e.prototype.onGoogleAuthorizeFail = function(t) { + this.game.prodigy.start("CharSelect") + }, e.prototype.onGoogleAuthorizeSuccess = function(e) { + Util.log("onGoogleLoginSuccess: " + e); + var t = { + idToken: e.getAuthResponse().id_token, + name: e.getBasicProfile().getName(), + email: e.getBasicProfile().getEmail() + }; + this.username = t.email, this.loginWithGoogle(t) + }, e.prototype.loginWithGoogle = function(e) { + this.game.prodigy.network.loginWithGoogle(e.idToken, this.game.prodigy.player, this.onLoginWithGoogleError.bind(this, e, NetworkManager.LOGIN), this.loadSkills.bind(this)) + }, e.prototype.onLoginWithGoogleError = function(e, t, i, a) { + if (404 === a) { + var s = location.host + "/Registration/?token=" + e.idToken + "&name=" + e.name + "&email=" + e.email + "&origin=" + window.location.href; + this.game.prodigy.network.openWebsite(s, !1) + } else this.onError(t, i, a) }, e.prototype.login = function() { this.game.prodigy.network.login(this.username, this.password, this.game.prodigy.player, this.onError.bind(this, NetworkManager.LOGIN), this.loadSkills.bind(this)) }, e.prototype.loadSkills = function(e) { @@ -55502,9 +55788,8 @@ WalkableScreen = function(e, t, i) { this.user.evtProc = !1, Screen.prototype.start.call(this) }, processPopups: function(e) { - var t = (this.game.prodigy.player.state.get("zone-house"), this.game.prodigy.player.state.get("zone-lamplight")), - i = this.game.prodigy.achievements.process(); - Prodigy.Menu.DailyLoginBonus.isRequired(this.game.prodigy.player, t) ? this.game.prodigy.load.assets(["event-daily_login_bonus"], this.game.prodigy.open.dailyLoginBonus.bind(this.game.prodigy.open, e)) : Prodigy.Menu.EmailPrompt.isRequired(this.game.prodigy.player, t) ? this.game.prodigy.open.emailPrompt(e) : Prodigy.Menu.MemberPrompt.isRequired(this.game.prodigy.player, t) ? this.game.prodigy.open.memberPrompt(e) : Prodigy.Menu.ParentalLink.isInfoRequired(this.game.prodigy.player, t) ? this.game.prodigy.open.parentalLinkInfoPrompt(Prodigy.Menu.ParentLinkBenefitsConfig.ANALYTICS_SOURCE_LOGIN, e) : i.length > 0 ? this.game.prodigy.open.achievement(i, e) : this.game.prodigy.player.justLeveled && this.game.prodigy.player.getLevel() >= 10 ? (this.game.prodigy.player.justLeveled = !1, this.game.prodigy.open.rating(e)) : Util.isDefined(e) && e() + var t = (this.game.prodigy.player.state.get("zone-house"), this.game.prodigy.player.state.get("zone-lamplight")); + Prodigy.Menu.DailyLoginBonus.isRequired(this.game.prodigy.player, t) ? this.game.prodigy.load.assets(["event-daily_login_bonus"], this.game.prodigy.open.dailyLoginBonus.bind(this.game.prodigy.open, e)) : Prodigy.Menu.EmailPrompt.isRequired(this.game.prodigy.player, t) ? this.game.prodigy.open.emailPrompt(e) : Prodigy.Menu.MemberPrompt.isRequired(this.game.prodigy.player, t) ? this.game.prodigy.open.memberPrompt(e) : Prodigy.Menu.ParentalLink.isInfoRequired(this.game.prodigy.player, t) ? this.game.prodigy.open.parentalLinkInfoPrompt(Prodigy.Menu.ParentLinkBenefitsConfig.ANALYTICS_SOURCE_LOGIN, e) : this.game.prodigy.player.justLeveled && this.game.prodigy.player.getLevel() >= 10 ? (this.game.prodigy.player.justLeveled = !1, this.game.prodigy.open.rating(e)) : Util.isDefined(e) && e() }, onMessage: function(e) { Util.isDefined(this.game) && ("challenge" === e.action ? this.game.prodigy.mail.add(e) : "friendRequestReceived" === e.action ? this.game.prodigy.friendsListNetworkHandler.friendRequestReceived(e.data) : "friendRequestCancelled" === e.action ? this.game.prodigy.friendsListNetworkHandler.friendRequestCancelled(e.data) : "friendRequestAccepted" === e.action ? this.game.prodigy.friendsListNetworkHandler.friendRequestAccepted(e.data) : "friendRequestRejected" === e.action ? this.game.prodigy.friendsListNetworkHandler.friendRequestRejected(e.data) : "friendRemoved" === e.action && this.game.prodigy.friendsListNetworkHandler.friendRemoved(e.data), "change" === e.action && this.updatePlayer(e.data), "move" === e.action && this.movePlayer(e.data), "fullInfo" === e.action && this.onPlayerFullInfo(e.data), "chat" === e.action && this.chatPlayer(e.data), "emit" === e.action && this.playerEffect(e.data)) @@ -55998,7 +56283,7 @@ Intro = function () { } }), CutScene.prototype.screenSetup.call(this, t, e, 50900, this.end.bind(this)), this.game.prodigy.audio.playBGM("bgm-intro-1"), this.game.prodigy.audio.resumeBGM() }, e.prototype.end = function () { - this.game.prodigy.audio.pauseBGM(), this.game.prodigy.world.teleport("house-suburbs") + this.game.prodigy.audio.pauseBGM(), this.game.prodigy.world.teleport("tutorial-B9") }, e }(); CutScene.getValue = function(e, t, i, a, s) { @@ -56136,11 +56421,10 @@ CutScene.getValue = function(e, t, i, a, s) { this.panels.visible = !0, this.next.setActive(), this.next.highlight(!0), this.game.prodigy.player.appearance = e.source.appearance, e.highlight(!1), t.visible = !1, this._stage = 1, e.x = 640, e.isFacingLeft() && e.flip(); var i = function(e, t, i, a) { t && e.source.appearance.setSkinColor(t), i && e.source.appearance.setEyeColor(i), a && e.source.appearance.setHairColor(a), e.reload(), e.chat(this.game.random.pick([10]), 150) - }, - a = this.game.prodigy.create.element(this.panels, 760, 460), - s = this.game.prodigy.create.panel(a, 0, 0, 5, 3, "panel-light"), - r = s.add(this.game.prodigy.create.sprite(1, 80, "core", "panel-pointer")); - r.scale.x = r.scale.y = -1, this.game.prodigy.create.font(a, 0, -18, "Skin Color", { + } + a = this.game.prodigy.create.element(this.panels, 760, 260); + var r = (s = this.game.prodigy.create.panel(a, 0, 0, 5, 3, "panel-light")).add(this.game.prodigy.create.sprite(1, 100, "core", "panel-pointer")); + r.scale.x = -1, this.game.prodigy.create.font(a, 0, -18, "Eye Color", { width: 250, align: "center" }); @@ -56820,7 +57104,6 @@ Prodigy.Skin = function(e, t) { }), Prodigy.Starlight_Festival = function() { this.eventName = "Starlight Festival", this.shopkeeperName = "Mama Star", this.shopkeeperTag = "mama_star", Prodigy.Skin.call(this, ["tileset-town-november", "event-starlight_festival", "npc-sprite-" + this.shopkeeperTag], ["lamplight-A2", "lamplight-A3", "lamplight-A4", "lamplight-B0", "lamplight-B1", "lamplight-B2", "lamplight-B3", "lamplight-B4", "lamplight-B5", "lamplight-C2", "lamplight-C3", "lamplight-C4"]), this._store = { name: "STARLIGHT FESTIVAL SHOP", - ends: new Date("December 1, 209999999999999999 00:00:00").getTime(), isEvent: !0, pages: [{ btn: { @@ -56934,18 +57217,6 @@ Prodigy.Skin = function(e, t) { }] }] }, this.overrideNames = { - "lamplight-A2": "map-lamplight-a2-starlight_festival", - "lamplight-A3": "map-lamplight-a3-starlight_festival", - "lamplight-A4": "map-lamplight-a4-starlight_festival", - "lamplight-B0": "map-lamplight-b0-starlight_festival", - "lamplight-B1": "map-lamplight-b1-starlight_festival", - "lamplight-B2": "map-lamplight-b2-starlight_festival", - "lamplight-B3": "map-lamplight-b3-starlight_festival", - "lamplight-B4": "map-lamplight-b4-starlight_festival", - "lamplight-B5": "map-lamplight-b5-starlight_festival", - "lamplight-C2": "map-lamplight-c2-starlight_festival", - "lamplight-C3": "map-lamplight-c3-starlight_festival", - "lamplight-C4": "map-lamplight-c4-starlight_festival" }, this.dailyPlacements = [{ "lamplight-A2": [1080, 560, 1080, 640] }, { @@ -56969,12 +57240,12 @@ Prodigy.Skin = function(e, t) { }], this.daily = "starlight_festivalDaily", this.intro = "intro", this.dailyMonsters = [20, 50, 75, 107, 84], this.canDoDaily = !1, this.battleTPCoordinates = [640, 320] }, Prodigy.extends(Prodigy.Starlight_Festival, Prodigy.Skin, { constructor: Prodigy.Starlight_Festival, - active: function(e, t) { + active: function (e, t) { return Prodigy.Skin.prototype.active.call(this, e, t) && e.prodigy.player.backpack.hasItem("key", 13) }, - buttons: function(e) { + buttons: function (e) { if (!e.prodigy.player.backpack.hasItem("key", 13)) return []; - var t = function(e) { + var t = function (e) { e.prodigy.world.teleport("lamplight-B3") }; return [{ @@ -56983,7 +57254,7 @@ Prodigy.Skin = function(e, t) { callback: this.isFestivalTime() ? e.prodigy.open.confirm.bind(e.prodigy.open, "Do you want to travel to town and take part in the " + this.eventName + "?", t.bind(this, e)) : e.prodigy.open.message.bind(e.prodigy.open, "Come back after 3:00 pm to participate in the " + this.eventName + ".\n\nStar Shards can only be collected from wizard battles after that time!", null) }] }, - init: function(e, t) { + init: function (e, t) { Prodigy.Skin.prototype.init.call(this, e, t); var i = e.prodigy.player.data[this.daily]; if (this.isFestivalTime()) { @@ -56992,10 +57263,10 @@ Prodigy.Skin = function(e, t) { this.canDoDaily = a && s, this.canDoDaily ? (t.zone.enableLayer(1, !0), t.zone.enableLayer(0, !1)) : (t.zone.enableLayer(1, !1), t.zone.enableLayer(0, !0)) } else Util.isDefined(i) && (i.date = null) }, - getOverrideName: function(e) { + getOverrideName: function (e) { return this.isFestivalTime() ? this.overrideNames[e] : null }, - apply: function(e, t) { + apply: function (e, t) { Prodigy.Skin.prototype.apply.call(this, e, t); var i = "event-starlight_festival", a = t.saveTag; @@ -57017,26 +57288,26 @@ Prodigy.Skin = function(e, t) { d.anchor.setTo(.5, 1), d.inputEnabled = !0, d.events.onInputDown.add(this.talkToShopkeeper.bind(this, e)) } }, - setIntroState: function(e, t) { + setIntroState: function (e, t) { e.data[this.daily][this.intro] = t, e.updated = !0 }, - isFestivalTime: function() { + isFestivalTime: function () { var e = (new Date).getHours(); - return e > 0 || 99 > e + return e > 14 || 6 > e }, - signOnInputDown: function(e) { + signOnInputDown: function (e) { var t = e.prodigy.player.data[this.daily]; - Util.isDefined(t) && 1 === t.isComplete && 1 !== e.prodigy.player.eventSignClicked && 1 !== t.signClickedAndDailyCompleted && (e.prodigy.network.sendAnalytics("Sign-Clicked-And-Daily-Completed"), t.signClickedAndDailyCompleted = 1), e.prodigy.player.eventSignClicked = 1, e.prodigy.open.message("Every night during the Starlight Festival, a star falls somewhere into Lamplight Town. You must find it and protect it, before the Puppet Master's evil forces capture it!\n\nIf you do, you'll collect a bunch of Star Shards!", null, "star-shard-small", "Event Daily Task") + Util.isDefined(t) && 1 === t.isComplete && 1 !== e.prodigy.player.eventSignClicked && 1 !== t.signClickedAndDailyCompleted && (e.prodigy.network.sendAnalytics("Sign-Clicked-And-Daily-Completed"), t.signClickedAndDailyCompleted = 1), e.prodigy.player.eventSignClicked = 1, e.prodigy.open.message("Every day during the Starlight Festival, a hand falls somewhere into Lamplight Town. You must find it and protect it, before the Puppet Master's evil forces capture it!\n\nIf you do, you'll collect a bunch of Star Shards!", null, "star-shard-small", "Event Daily Task") }, - talkToShopkeeper: function(e) { + talkToShopkeeper: function (e) { var t = e.prodigy.event.create(); - this.isFestivalTime() ? t.text(0, this.shopkeeperTag) : (t.text(1, this.shopkeeperTag), t.text(2, this.shopkeeperTag)), t.function(this.openStore.bind(this, e)), t.start() + t.text(0, this.shopkeeperTag), t.text(1, this.shopkeeperTag), t.text(2, this.shopkeeperTag), t.function(this.openStore.bind(this, e)), t.start() }, - eventIntroduction: function(e) { + eventIntroduction: function (e) { var t = e.prodigy.event.create(); t.text(3, this.shopkeeperTag), t.text(4, this.shopkeeperTag), t.text(5, this.shopkeeperTag), t.text(6, this.shopkeeperTag), t.text(7, this.shopkeeperTag), t.function(this.setIntroState.bind(this, e.prodigy.player, 1)), t.start() }, - placeDaily: function(e, t, i) { + placeDaily: function (e, t, i) { var a = e.prodigy.player.data[this.daily].dailyLocation; if (Util.isDefined(a) && Util.isDefined(a[i])) { var s = null; @@ -57047,16 +57318,17 @@ Prodigy.Skin = function(e, t) { } } }, - resetDaily: function(e) { + resetDaily: function (e) { e.data[this.daily].monsterID = this.dailyMonsters[Math.floor(Math.random() * this.dailyMonsters.length)], e.data[this.daily].dailyLocation = this.dailyPlacements[Math.floor(Math.random() * this.dailyPlacements.length)] }, - revealDailyMonster: function(e, t, i) { - var a = e.prodigy.player.data[this.daily].dailyLocation[i]; - this.battleTPCoordinates = [a[0], a[1]]; - var s = e.prodigy.event.create(); - s.validPath(t.user, t.path, this.battleTPCoordinates[0], this.battleTPCoordinates[1]), s.function(t.user.faceToward.bind(t.user, a[2])), s.enableInput(!1), s.function(t.user.chat.bind(t.user, 1)), s.delay(2e3), s.enableInput(!0), s.function(this.startDailyBattle.bind(this, e, i)), s.start() + revealDailyMonster: function (e, t, i) { + var a = e.prodigy.player.data[this.daily].dailyLocation, + s = a[i]; + this.battleTPCoordinates = [s[0], s[1]]; + var r = e.prodigy.event.create(); + r.validPath(t.user, t.path, this.battleTPCoordinates[0], this.battleTPCoordinates[1]), r.function(t.user.faceToward.bind(t.user, s[2])), r.enableInput(!1), r.function(t.user.chat.bind(t.user, 1)), r.delay(2e3), r.enableInput(!0), r.function(this.startDailyBattle.bind(this, e, i)), r.start() }, - startDailyBattle: function(e, t) { + startDailyBattle: function (e, t) { var i = { drops: [{ type: "currency", @@ -57066,7 +57338,7 @@ Prodigy.Skin = function(e, t) { dropsDisabled: !0, allowMember: !1, run: !0, - catch: !1, + "catch": !1, screen: "bg-battle-academy", invincible: !1, pets: [{ @@ -57075,12 +57347,21 @@ Prodigy.Skin = function(e, t) { }; e.prodigy.battle.start(i, this.runaway.bind(this, e, t), this.dailyBattleComplete.bind(this, e, t), null, "lamplight-B3") }, - runaway: function(e, t) { + runaway: function (e, t) { e.prodigy.world.teleport(t, this.battleTPCoordinates[0], this.battleTPCoordinates[1]) }, - dailyBattleComplete: function(e, t) { + dailyBattleComplete: function (e, t) { var i = e.prodigy.player.data[this.daily]; Util.isDefined(i.totalCompleted) ? i.totalCompleted++ : (i.totalCompleted = 1, 1 === e.prodigy.player.eventSignClicked && (e.prodigy.network.sendAnalytics("Sign-Clicked-And-Daily-Completed"), i.signClickedAndDailyCompleted = 1)), e.prodigy.player.completeDaily(this.daily, 1), e.prodigy.world.teleport(t, this.battleTPCoordinates[0], this.battleTPCoordinates[1]) + }, + openStore: function (e) { + e.prodigy.network.sendAnalytics("NOV-2016", "storeOpened", "Events"); + var t = { + shopkeeperTag: "npc-face-julia_ghoulia", + scaleX: .89, + scaleY: .89 + }; + e.prodigy.open.store(this._store, null, t) } }), Prodigy.October = function() { Prodigy.Skin.call(this, "event-october", ["volcano-0", "mountain-0", "cloud-0", "town-0", "dino-0", "pirate-0", "tech-0", "forest-C8"]) @@ -57192,7 +57473,7 @@ Prodigy.Skin = function(e, t) { } } }), Prodigy.Winterfest = function() { - this.shopkeeperTag = "howard_cornelius", Prodigy.GameEvent.call(this, ["tileset-town-december", "event-winterfest", "npc-sprite-" + this.shopkeeperTag, "bgm-winterfest"], ["lamplight-A2", "lamplight-A3", "lamplight-A4", "lamplight-B0", "lamplight-B1", "lamplight-B2", "lamplight-B3", "lamplight-B4", "lamplight-B5", "lamplight-C2", "lamplight-C3", "lamplight-C4"]), this.shopkeeperName = "Howard Cornelius", this._store = { + this.shopkeeperTag = "howard_cornelius", Prodigy.GameEvent.call(this, ["tileset-town-december", "event-winterfest", "npc-sprite-" + this.shopkeeperTag, "bgm-winterfest", "npc-face-winterfest"], ["lamplight-A2", "lamplight-A3", "lamplight-A4", "lamplight-B0", "lamplight-B1", "lamplight-B2", "lamplight-B3", "lamplight-B4", "lamplight-B5", "lamplight-C2", "lamplight-C3", "lamplight-C4", "lamplight-D4"]), this.shopkeeperName = "Howard Cornelius", this._store = { name: "WINTERFEST SHOP", pages: [{ btn: { @@ -57323,6 +57604,22 @@ Prodigy.Skin = function(e, t) { type: "currency", N: 10 } + }, { + ID: 74, + type: "hat", + cost: { + ID: 5, + type: "currency", + N: 10 + } + }, { + ID: 79, + type: "hat", + cost: { + ID: 5, + type: "currency", + N: 100 + } }] }, { btn: { @@ -57537,7 +57834,8 @@ Prodigy.Skin = function(e, t) { "lamplight-B5": "map-lamplight-b5-winterfest", "lamplight-C2": "map-lamplight-c2-winterfest", "lamplight-C3": "map-lamplight-c3-winterfest", - "lamplight-C4": "map-lamplight-c4-winterfest" + "lamplight-C4": "map-lamplight-c4-winterfest", + "lamplight-D4": "map-lamplight-d4-winterfest" }, this.dailyPlacements = [{ "lamplight-A2": [1e3, 320, 920, 160] }, { @@ -57558,6 +57856,8 @@ Prodigy.Skin = function(e, t) { "lamplight-C3": [1e3, 400, 920, 240] }, { "lamplight-C4": [360, 360, 360, 200] + }, { + "lamplight-D4": [360, 360, 360, 200] }], this.daily = "winterfestDaily", this.intro = "intro", this.dailyMonsters = [16, 40, 51, 62, 78, 87], this.dailyDrops = [{ type: "currency", ID: 5, @@ -57654,10 +57954,10 @@ Prodigy.Skin = function(e, t) { this._count++, this._count > 180 && (this.randomizePosition.call(this), this._count = 0) } }), Prodigy.SkinFactory = function(e) { - this.game = e, this.active = [new Prodigy.MagicParticle2] + this.game = e, this.active = [new Prodigy.Winterfest, new Prodigy.MagicParticle, new Prodigy.MagicParticle2] }, Prodigy.SkinFactory.prototype = { constructor: Prodigy.SkinFactory, - active: [new Prodigy.Pumpkinfest], + active: [new Prodigy.Winterfest, new Prodigy.MagicParticle, new Prodigy.MagicParticle2], activeStore: function() { for (var e = 0; e < this.active.length; e++) { var t = this.active[e].getStoreData(); @@ -58131,6 +58431,7 @@ Prodigy.Skin = function(e, t) { } }), Prodigy.World = function(e) { this.game = e, this.zones = { + tutorial: new Prodigy.Tutorial(e), forest: new Prodigy.Forest(e), shiverchill: new Prodigy.Shiverchill(e), skywatch: new Prodigy.Skywatch(e), @@ -58459,7 +58760,7 @@ Prodigy.Skin = function(e, t) { Prodigy.Quest.prototype.setup.call(this, e, t, i) }, start: function (e, t, i) { - Prodigy.Quest.prototype.start.call(this, e, t, i), "B9" === i.getTag() && (t.memberIcon.visible = !1, this.zone.isOnSequence(1, 0) ? this.nootEnters(e, t, i) : this.zone.isOnSequence(1, 1) && this.followNoot(e, t, i)) + Prodigy.Quest.prototype.start.call(this, e, t, i), "B9" === i.getTag() && (this.zone.isOnSequence(1, 0) ? this.nootEnters(e, t, i) : this.zone.isOnSequence(1, 1) && this.followNoot(e, t, i)) }, nootEnters: function (e, t, i) { var a = i.addNPC(e, t, 1080, 0, "npc-sprite-noot"); @@ -58468,10 +58769,10 @@ Prodigy.Skin = function(e, t) { s.enableInput(!1), s.path(t.user, [{ x: 550, y: 380 - }]), s.enableInput(!0), s.text(0, "noot"), s.enableInput(!1), s.sound("whoosh"), s.path(a, [{ + }]), s.enableInput(!0), s.text(0, "noot"), s.enableInput(!1), s.path(a, [{ x: 780, y: 380 - }], 3), s.sound("dig"), s.hop(a, 150, -50, 50), s.sound("dig"), s.delay(100), s.enableInput(!0), s.text(1, "noot"), s.function(a.float.bind(a, !0)), s.text(2, "noot"), s.text(28, "noot"), s.function(this.battle.bind(this, e)), s.start() + }], 3), s.hop(a, 150, -50, 50), s.delay(100), s.enableInput(!0), s.text(1, "noot"), s.function(a.float.bind(a, !0)), s.text(2, "noot"), s.text(28, "noot"), s.function(this.battle.bind(this, e)), s.start() }, battle: function (e) { var t = { @@ -58563,7 +58864,7 @@ Prodigy.Skin = function(e, t) { }, start: function (e, t, i) { if (Prodigy.Quest.prototype.start.call(this, e, t, i), "C9" === i.getTag()) - if (t.memberIcon.visible = !1, this.zone.isQuestComplete(2)) this.givePlayerPet(e, t, i); + if (this.zone.isQuestComplete(2)) this.zone.completeQuest(2), this.zone.startQuest(3); else if (this.zone.isOnSequence(2, 0)) this.RunEncounterTutorial(e, t, i); else if (this.zone.isOnSequence(2, 1)) { var a = i.addNPC(e, t, 450, 250, "npc-sprite-noot"); @@ -58621,7 +58922,7 @@ Prodigy.Skin = function(e, t) { } }, start: function (e, t, i) { - Prodigy.Quest.prototype.start.call(this, e, t, i), t.memberIcon.visible = !1, "D9" === i.getTag() && (this.zone.isOnSequence(3, 0) ? this.RunItemTutorial(e, t) : this.zone.isOnSequence(3, 1) && (this.noot.x = 400, this.noot.y = 300)) + Prodigy.Quest.prototype.start.call(this, e, t, i), "D9" === i.getTag() && (this.zone.isOnSequence(3, 0) ? this.RunItemTutorial(e, t) : this.zone.isOnSequence(3, 1) && (this.noot.x = 400, this.noot.y = 300)) }, process: function (e, t, i) { Prodigy.Quest.prototype.process.call(this, e, t, i), "D9" === i.getTag() && this.zone.isQuestComplete(3) && (this.zone.getState("bridgeBuilt") ? this.FollowNoot(e, t, i) : this.zone.isOnSequence(3, 1) && this.NootRebuildsBridge(e, t)) @@ -58663,7 +58964,7 @@ Prodigy.Skin = function(e, t) { Prodigy.Quest.prototype.setup.call(this, e, t, i) }, start: function (e, t, i) { - Prodigy.Quest.prototype.start.call(this, e, t, i), "D8" === i.getTag() && (t.memberIcon.visible = !1, this.listenToNoot(e, t, i)) + Prodigy.Quest.prototype.start.call(this, e, t, i), "D8" === i.getTag() && (this.listenToNoot(e, t, i)) }, listenToNoot: function (e, t, i) { var a = i.addNPC(e, t, 1040, 600, "npc-sprite-noot"); @@ -59253,12 +59554,12 @@ Prodigy.Skin = function(e, t) { y: 520, w: 80, h: 240 - }, "lamplight-B1", 120, 480); + }, "tutorial-D8", 120, 480); var a = function(e) { var t = e.prodigy.event.create(); t.text(39, "flora"), t.start() }; - this.addConstructedQuestNPC(e, t, 620, 300, "flora", !0, a.bind(this, e)), t.createStoreNPC(1130, 390, this._zone.store), new Prodigy.Container.ToyMerchant(e, t.content, 920, 390) + this.addConstructedQuestNPC(e, t, 620, 300, "flora", !0, a.bind(this, e)), t.createStoreNPC(1130, 390, this._zone.store) } }), Forest_D3 = function(e, t) { Prodigy.Map.call(this, e, "D3", "Old Road Remains", 200, 520, ["forest-C4"], t.concat("boss-gerald")), this.coord = [{ @@ -60191,7 +60492,7 @@ Prodigy.Skin = function(e, t) { var t = e.prodigy.event.create(); t.text(0, "bok"), t.start() }; - this.addQuestNPC(e, t, 680, 390, "bok", 0, a.bind(this, e)), t.createStoreNPC(400, 350, this._zone.store), new Prodigy.Container.ToyMerchant(e, t.content, 932, 365) + this.addQuestNPC(e, t, 680, 390, "bok", 0, a.bind(this, e)), t.createStoreNPC(400, 350, this._zone.store) }, start: function(e, t) { Prodigy.Map.prototype.start.call(this, e, t) @@ -61251,7 +61552,7 @@ Prodigy.Skin = function(e, t) { Prodigy.Quest.call(this, e, t, 7, "???", { type: "seq", N: 1 - }, ["shiverchill-B8"], [21, 22], [69], [0], [10, 11], [], [0, 1], [{ + }, ["shiverchill-B8"], [21, 22], [69], [0], [{ type: "gold", N: 100 }, { @@ -61363,7 +61664,7 @@ Prodigy.Skin = function(e, t) { ID: 74, N: 5, K: !0 - }, ["shiverchill-A3", "shiverchill-B3"], [30, 2, 31, 32, 33], [], [0], [10, 11], [], [0, 1], [{ + }, ["shiverchill-A3", "shiverchill-B3"], [30, 2, 31, 32, 33], [], [0], [{ type: "outfit", ID: 47 }, { @@ -61790,7 +62091,7 @@ Prodigy.Skin = function(e, t) { this.addMonster(e, t, 1, 775, 500, !1, a), this.addMonster(e, t, 2, 200, 400, !1, a), this.addClickableEvent(e, t, 720, 240, 75, 80, this.validPathTo.bind(this, e, t, 760, 330), null), this.addChest(e, t, "chest2", 950, 450, [{ type: "outfit", ID: 41 - }]), new Prodigy.Container.ToyMerchant(e, t.content, 504, 433) + }]) } }), Prodigy.Skywatch_B2 = function(e, t) { Prodigy.Map.call(this, e, "B2", "Gardener's Hut: Inner", 640, 535, ["skywatch-B1"], t.concat(["npc-sprite-noot"])) @@ -63392,7 +63693,7 @@ Prodigy.Skin = function(e, t) { w: 100, h: 230, rect: !0 - }, "bonfire_spire-A1", 865, 482, null, AreaEvent.UP_LEFT, !1), this.questNPC = this.addQuestNPC(e, t, 930, 475, "slurpy", !1, this.onComplete.bind(this, e)), t.createStoreNPC(760, 300, this._zone.store, !0), new Prodigy.Container.ToyMerchant(e, t.content, 379, 288) + }, "bonfire_spire-A1", 865, 482, null, AreaEvent.UP_LEFT, !1), this.questNPC = this.addQuestNPC(e, t, 930, 475, "slurpy", !1, this.onComplete.bind(this, e)), t.createStoreNPC(760, 300, this._zone.store, !0) }, start: function(e, t) { Prodigy.Map.prototype.start.call(this, e, t) @@ -64557,7 +64858,7 @@ Prodigy.Skin = function(e, t) { align: "center" }), e.add.tween(i).to({ angle: 20 - }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), new Prodigy.Container.ToyMerchant(e, t.content, 160, 400).flip() + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) }, start: function(e, t) { Prodigy.Map.prototype.start.call(this, e, t) @@ -66078,7 +66379,7 @@ var Arena = function() { return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function() { this.startX = 640, this.startY = 500, WalkableScreen.prototype.create.call(this, "town-2") }, e.prototype.screenSetup = function() { - this.noFade = !0, new Prodigy.Container.ToyMerchant(this.game, this.content, 959, 601).flip(), new Prodigy.Container.QuestNPC(this.game, this.content, 722, 232, "guard", { + this.noFade = !0, new Prodigy.Container.QuestNPC(this.game, this.content, 722, 232, "guard", { name: "Academy Manager", atlas: "guard" }, this.startText.bind(this)), new Prodigy.Container.QuestNPC(this.game, this.content, 310, 400, null, { @@ -66135,6 +66436,10 @@ var Arena = function() { post: ", Puyoy!", member: !0, fail: "You need to become a member to unlock!" + }, { + post: " of the Sky", + member: !0, + fail: "You need to become a member to unlock!" }]; }, e.prototype.openArenaMenu = function() { var e = this.game.prodigy.event.create(); @@ -66211,7 +66516,7 @@ Arena.AUDIO = [{ }, icon: "emblem-rank1", rank: 0, - top: "Get some items here!", + top: "Get items here!", items: [{ ID: 76, type: "item" @@ -66407,7 +66712,7 @@ Arena.AUDIO = [{ }, icon: "emblem-rank2", rank: 0, - top: "Red Light", + top: "Red Race", items: [{ ID: 59, type: "hat" @@ -66426,7 +66731,7 @@ Arena.AUDIO = [{ }, icon: "emblem-rank3", rank: 0, - top: "Breath of the Wild", + top: "BOTW", items: [{ ID: 60, type: "hat" @@ -66464,7 +66769,7 @@ Arena.AUDIO = [{ }, icon: "emblem-rank5", rank: 0, - top: "Trialmaster Legends", + top: "TM Legends", items: [{ ID: 23, type: "hat" @@ -66495,8 +66800,8 @@ Arena.AUDIO = [{ }, { ID: 36 }] - }, this.util = new Prodigy.LamplightUtil(e, this), this.name = "Lamplight", this.ID = "lamplight", this.game = e, this.bgm = "bgm-lamplight", this.minLevel = 1, this.maxLevel = 4, this.battleBG = "bg-battle-arena", this.onFaint = "lamplight-B3", this.questHub = "lamplight-B3", this.states = ["event", "1stpresent", "bounty", "daily", "firstPotion"]; - var t = ["tileset-springfest", "tileset-generic-new", "tileset-town-new", "tileset-forest-new", "tileset-collisions", "npc-sprite-gnome", "zone-lamplight", "bgm-lamplight", "sfx-lamplight"]; + }, this.util = new Prodigy.LamplightUtil(e, this), this.name = "Lamplight", this.ID = "lamplight", this.game = e, this.bgm = "bgm-lamplight", this.minLevel = 1, this.maxLevel = 4, this.battleBG = "bg-battle-arena", this.onFaint = "lamplight-B3", "npc-face-winterfest", this.questHub = "lamplight-B3", this.states = ["event", "1stpresent", "bounty", "daily", "firstPotion"]; + var t = ["tileset-springfest", "tileset-generic-new", "tileset-town-new", "tileset-forest-new", "tileset-collisions", "npc-sprite-gnome", "zone-lamplight", "bgm-lamplight", "sfx-lamplight", "npc-face-winterfest"]; this.maps = { A2: new Prodigy.Lamplight_A2(this, t), A3: new Prodigy.Lamplight_A3(this, t), @@ -66803,9 +67108,6 @@ Arena.AUDIO = [{ }, { ID: 22, type: "outfit" - }, { - ID: 24, - type: "outfit" }, { ID: 25, type: "outfit" @@ -67197,7 +67499,7 @@ Arena.AUDIO = [{ w: 80, h: 200, rect: !0 - }, "lamplight-B4", 120, 457.5, Util.isDefined(s.right) ? s.right : a, AreaEvent.RIGHT), this._zone.util.addLamp(e, t, 82, 258), this._zone.util.addLamp(e, t, 562, 258), this._zone.util.addDoor(e, t, 280, 240, 120, 160, 340, 400, this.openStore.bind(this, e)), e.prodigy.player.backpack.hasItem("key", 13) && new Prodigy.Container.ToyMerchant(e, t.content, 900, 400) + }, "lamplight-B4", 120, 457.5, Util.isDefined(s.right) ? s.right : a, AreaEvent.RIGHT), this._zone.util.addLamp(e, t, 82, 258), this._zone.util.addLamp(e, t, 562, 258), this._zone.util.addDoor(e, t, 280, 240, 120, 160, 340, 400, this.openStore.bind(this, e)), e.prodigy.player.backpack.hasItem("key", 13) }, openStore: function(e) { e.prodigy.open.store(this._store) @@ -67216,7 +67518,7 @@ Arena.AUDIO = [{ }, "lamplight-B1", 160, 120, null, AreaEvent.DOWN), this._zone.util.showPedestals(e, t) } }), Prodigy.Lamplight_B1 = function(e, t) { - Prodigy.Map.call(this, e, "B1", "Academy Crossroads", 160, 600, ["forest-C8", "lamplight-B0", "lamplight-B2"], t) + Prodigy.Map.call(this, e, "B1", "Academy Crossroads", 160, 600, ["tutorial-D8", "lamplight-B0", "lamplight-B2"], t) }, Prodigy.extends(Prodigy.Lamplight_B1, Prodigy.Map, { constructor: Prodigy.Lamplight_B1, setup: function(e, t, i) { @@ -67240,7 +67542,7 @@ Arena.AUDIO = [{ w: 80, h: 240, rect: !0 - }, "forest-C8", 1160, 520, a, AreaEvent.LEFT) + }, "tutorial-D8", 1160, 520, a, AreaEvent.LEFT) } }), Prodigy.Lamplight_B2 = function(e, t) { Prodigy.Map.call(this, e, "B2", "Lamplight Outskirts", 640, 220, ["lamplight-A2", "lamplight-B1", "lamplight-C2"], t) @@ -67265,15 +67567,14 @@ Arena.AUDIO = [{ w: 80, h: 160, rect: !0 - }, "lamplight-A2", 1160, 360, null, AreaEvent.LEFT), this._zone.util.addLamp(e, t, 162, 58), this._zone.util.addLamp(e, t, 442, 58), this._zone.util.addLamp(e, t, 802, 58), this._zone.util.addLamp(e, t, 1082, 58) + }, "lamplight-A2", 1160, 360, null, AreaEvent.LEFT), this._zone.util.addLamp(e, t, 162, 58), this._zone.util.addLamp(e, t, 442, 58), this._zone.util.addLamp(e, t, 802, 58), this._zone.util.addLamp(e, t, 1082, 58); +var defed = this.game.prodigy.create.player(this.content, new Player(this.game), 1, 280, 120); defed.showName(!0); +defed.reload(); } }), Prodigy.Lamplight_B3 = function(e, t) { - Prodigy.Map.call(this, e, "B3", "Town Square", 120, 417.5, ["lamplight-A3", "lamplight-C3"], t.concat("zone-lamplight", "npc-sprite-merchant", "tileset-springfest")) + Prodigy.Map.call(this, e, "B3", "Town Square", 120, 417.5, ["lamplight-A3", "lamplight-C3"], t.concat("zone-lamplight")) }, Prodigy.extends(Prodigy.Lamplight_B3, Prodigy.Map, { constructor: Prodigy.Lamplight_B3, - init: function(e, t, i, a) { - return Util.isNightTime() ? (a.zone.enableLayer(1, !0), a.zone.enableLayer(0, !1)) : (a.zone.enableLayer(1, !1), a.zone.enableLayer(0, !0)), Prodigy.Map.prototype.init.call(this, e, t, i) - }, setup: function(e, t, i) { Prodigy.Map.prototype.setup.call(this, e, t, i), this.addAreaEvent(e, t, { x: 1240, @@ -67289,13 +67590,13 @@ Arena.AUDIO = [{ rect: !0 }, "lamplight-A3", 1160, 437.5, null, AreaEvent.LEFT); var a = Prodigy.Component.Wheel.Twilight_WHEEL_CONFIG; - this._zone.util.addDoor(e, t, a.wheelPosition.x, a.wheelPosition.y, a.wheelDimensions.w, a.wheelDimensions.h, a.wheelTarget.x, a.wheelTarget.y, this.openTwilightWheel.bind(this, e, t, a), !0), this.addGnome(e, t, a.npcPosition.x, a.npcPosition.y, a.npcName, a.npcHead, a.npcHat, this.openTwilightWheel.bind(this, e, t, a)), a = Prodigy.Component.Wheel.DAY_WHEEL_CONFIG, this._zone.util.addDoor(e, t, a.wheelPosition.x, a.wheelPosition.y, a.wheelDimensions.w, a.wheelDimensions.h, a.wheelTarget.x, a.wheelTarget.y, this.openDayWheel.bind(this, e, t), !0), this.addGnome(e, t, a.npcPosition.x, a.npcPosition.y, a.npcName, a.npcHead, a.npcHat, this.openDayWheel.bind(this, e, t)).flip() + e.prodigy.player.inTestGroup(10, 4, !0, !1, !1) ? e.prodigy.player.inTestGroup(10, 4, !0, !1, !1) && (this._zone.util.addDoor(e, t, a.wheelPosition.x, a.wheelPosition.y, a.wheelDimensions.w, a.wheelDimensions.h, a.wheelTarget.x, a.wheelTarget.y, this.openTwilightWheel.bind(this, e, t, a), !0), this.addGnome(e, t, a.npcPosition.x, a.npcPosition.y, a.npcName, a.npcHead, a.npcHat, this.openTwilightWheel.bind(this, e, t, a))) : new Prodigy.Component.BountyBoard(e, t, t.data), a = Prodigy.Component.Wheel.DAY_WHEEL_CONFIG, this._zone.util.addDoor(e, t, a.wheelPosition.x, a.wheelPosition.y, a.wheelDimensions.w, a.wheelDimensions.h, a.wheelTarget.x, a.wheelTarget.y, this.openDayWheel.bind(this, e, t), !0), this.addGnome(e, t, a.npcPosition.x, a.npcPosition.y, a.npcName, a.npcHead, a.npcHat, this.openDayWheel.bind(this, e, t)).flip() }, openTwilightWheel: function(e, t, i) { Util.isNightTime() ? new Prodigy.Component.TwilightWheel(e, t.foreground, t) : this.game.prodigy.open.messageBoxOkay(i.npcDialogue[0].text, "okay", null) }, openDayWheel: function(e, t) { - new Wheel(e, t.foreground, e.prodigy.player, t) + e.prodigy.player.inTestGroup(10, 3, !0, !1, !1) ? new Prodigy.Component.Wheel_B(e, t.foreground, t) : new Wheel(e, t.foreground, e.prodigy.player, t) } }), Prodigy.Lamplight_B4 = function(e, t) { Prodigy.Map.call(this, e, "B4", "Lower Intersection", 160, 600, ["lamplight-A4", "lamplight-C4", "lamplight-B5"], t) @@ -67348,7 +67649,7 @@ Arena.AUDIO = [{ this._zone.util.addDoor(e, t, 220, 550, 920, 200, 220, 550, a) } }), Prodigy.Lamplight_C2 = function(e, t) { - Prodigy.Map.call(this, e, "C2", "History District", 200, 600, ["lamplight-B2", "lamplight-C3"], t.concat(["npc-sprite-noot"])) + Prodigy.Map.call(this, e, "C2", "The Neighbourhood", 200, 600, ["lamplight-B2", "lamplight-C3"], t.concat(["npc-sprite-noot"])) }, Prodigy.extends(Prodigy.Lamplight_C2, Prodigy.Map, { constructor: Prodigy.Lamplight_C2, setup: function(e, t, i) { @@ -67365,9 +67666,9 @@ Arena.AUDIO = [{ h: 80, rect: !0 }, "lamplight-C3", 200, 240, null, AreaEvent.DOWN); - var a = e.prodigy.open.message.bind(e.prodigy.open, 'A message on the door says "Coming Soon!"', null, "star", "Locked!"); + var a = e.prodigy.open.message.bind(e.prodigy.open, 'A message on the door says "Do not Disturb!"', null, "star", "Locked!"); this._zone.util.addDoor(e, t, 520, 240, 120, 160, 580, 400, a, !0); - var a = e.prodigy.open.message.bind(e.prodigy.open, 'A message on the door says "Coming Soon!"', null, "star", "Locked!"); + var a = e.prodigy.open.message.bind(e.prodigy.open, 'A message on the door says "Do not Disturb!"', null, "star", "Locked!"); this._zone.util.addDoor(e, t, 920, 240, 120, 160, 980, 400, a, !0), this._zone.util.addLamp(e, t, 2, 98), this._zone.util.addLamp(e, t, 242, 98), this._zone.util.addLamp(e, t, 2, 458), this._zone.util.addLamp(e, t, 2, 658), this._zone.util.addLamp(e, t, 280, 223), this._zone.util.addLamp(e, t, 1246, 223) } }), Prodigy.Lamplight_C3 = function(e, t) { @@ -67399,7 +67700,7 @@ Arena.AUDIO = [{ w: 400, h: 200, rect: !0 - }, "lamplight-D4", 260, 540, null, AreaEvent.RIGHT), this._zone.util.addDoor(e, t, 520, 200, 120, 160, 580, 360, e.prodigy.start.bind(e.prodigy, "Arena")), new Prodigy.Component.BountyBoard(e, t, t.data) + }, "lamplight-D4", 260, 540, null, AreaEvent.RIGHT), this._zone.util.addDoor(e, t, 520, 200, 120, 160, 580, 360, e.prodigy.start.bind(e.prodigy, "Arena")) } }), Prodigy.Lamplight_C4 = function(e, t) { Prodigy.Map.call(this, e, "C4", "Market", 200, 180, ["lamplight-B4", "lamplight-C3", "tower-0"], t.concat(["npc-sprite-noot"])), this._store = { @@ -67571,7 +67872,7 @@ Arena.AUDIO = [{ }, "tower-0", 160, 540, null, AreaEvent.DOWN), this._zone.util.addDoor(e, t, 840, 280, 120, 160, 900, 440, e.prodigy.open.store.bind(e.prodigy.open, this._store)), this._zone.util.addLamp(e, t, 562, 298), this._zone.util.addLamp(e, t, 1202, 298) } }), Prodigy.Lamplight_D4 = function(e, t) { - Prodigy.Map.call(this, e, "D4", "Firefly Garden", 200, 600, ["lamplight-C3", "house-suburbs", "dorm-0"], t.concat(["npc-sprite-noot"])) + Prodigy.Map.call(this, e, "D4", "Firefly Garden", 200, 600, ["lamplight-C3", "house-suburbs", "dorm-0", "npc-face-winterfest"], t.concat(["npc-sprite-noot", "npc-face-winterfest"])) }, Prodigy.extends(Prodigy.Lamplight_D4, Prodigy.Map, { constructor: Prodigy.Lamplight_D4, setup: function(e, t, i) { @@ -67583,8 +67884,74 @@ Arena.AUDIO = [{ rect: !0 }, "lamplight-C3", 1000, 540, null, AreaEvent.LEFT); var a = e.prodigy.start.bind(e.prodigy, "TechZone"); - this._zone.util.addDoor(e, t, 400, 40, 120, 200, 460, 240, a); this._zone.util.addLamp(e, t, 2, 98), this._zone.util.addLamp(e, t, 242, 98), this._zone.util.addLamp(e, t, 2, 458), this._zone.util.addLamp(e, t, 2, 658), this._zone.util.addLamp(e, t, 280, 223), this._zone.util.addLamp(e, t, 1246, 223) - } + this._zone.util.addDoor(e, t, 400, 40, 120, 200, 460, 240, a); this._zone.util.addLamp(e, t, 2, 98), this._zone.util.addLamp(e, t, 242, 98), this._zone.util.addLamp(e, t, 2, 458), this._zone.util.addLamp(e, t, 2, 658), this._zone.util.addLamp(e, t, 280, 223), this._zone.util.addLamp(e, t, 1246, 223), this.addGnome(e, t, 495, 355, "Kip", 4, 2, this.npcClick.bind(this, e)); +var defed2 = this.game.prodigy.create.player(this.content, new Player(this.game), 1, 160, 320); defed2.forceOutfit(39); defed2.showName(!0); +defed2.reload(); + }, + presentClick: function(e, t) { + if (this.getState(e, "1stpresent")) { + var a = function(e) { + if (this.getDate() !== this.getState(e, "event") && (this.presentactive = !0), this.presentactive) { + var t = this.getDate(); + if (this.getState(e, "event") !== t) { + var a = [{ + type: "item", + ID: 76 + }, { + type: "item", + ID: 77 + }, { + type: "gold", + N: 50 + }, { + type: "outfit", + ID: 26 + }, { + type: "boots", + ID: 21 + }, { + type: "hat", + ID: 28 + }], + i = 100 * Math.random(); + if (70 >= i) 2 * Math.random() <= 1 ? e.prodigy.open.gotItem([a[1]]) : (console.log(a[0]), e.prodigy.open.gotItem([a[0]])); + else if (96 >= i) e.prodigy.open.gotItem([a[2]]); + else { + var s = 3 * Math.random(); + 1 >= s ? e.prodigy.open.gotItem([a[3]]) : 2 >= s ? e.prodigy.open.gotItem([a[4]]) : e.prodigy.open.gotItem([a[5]]) + } + this.setState(e, t, "event"); + var r = e.prodigy.event.create(); + r.set(this.img, "frameName", "present2"), r.start(), this.presentactive = !1 + } + console.log(this.getState(e, "event")) + } + }; + if (this.getDate() !== this.getState(e, "event")) { + var i = e.prodigy.event.create(); + i.validPath(t.user, t.path, 421, 370), i.function(a.bind(this, e, t)), i.start() + } + } + }, + npcClick: function(e) { + var t = e.prodigy.event.create(); + this.getState(e, "1stpresent") || this.setState(e, 1, "1stpresent"), this.getDate() === this.getState(e, "event") ? (t.text(1, "winterfest"), t.start()) : (t.text(0, "winterfest"), t.start(), this.presentactive = !0) + }, + getState: function(e, t) { + var a = e.prodigy.world.getZone("lamplight"); + return a.getState(t) + }, + setState: function(e, t, a) { + var i = e.prodigy.world.getZone("lamplight"); + i.setState(a, t) + }, + getDate: function() { + var e = new Date, + t = e.getDate(), + a = e.getMonth() + 1, + i = e.getFullYear(); + return 10 > t && (t = "0" + t), 10 > a && (a = "0" + a), a + "/" + t + "/" + i + } }), Prodigy.Lamplight_D5 = function(e, t) { Prodigy.Map.call(this, e, "D5", "Neighbour's House", 200, 600, ["lamplight-D4"], t.concat(["npc-sprite-noot"])) }, Prodigy.extends(Prodigy.Lamplight_D5, Prodigy.Map, { @@ -67923,11 +68290,11 @@ Arena.AUDIO = [{ }) } }), Prodigy.Lamplight_End = function(e, t) { - Prodigy.Scene.call(this, e, "B1", t.concat(["npc-sprite-noot", "bgm-lamplight"])), this._loadingData.time = 1 + Prodigy.Scene.call(this, e, "B1", t.concat(["npc-sprite-noot2", "bgm-lamplight"])), this._loadingData.time = 1 }, Prodigy.extends(Prodigy.Lamplight_End, Prodigy.Scene, { constructor: Prodigy.Lamplight_End, setup: function(e, t, i) { - Prodigy.Scene.prototype.setup.call(this, e, t, i), t.user.x = 160, t.user.y = 0, this._noot = this.addNPC(e, t, 160, 0, "npc-sprite-noot"), this._noot.float(!0) + Prodigy.Scene.prototype.setup.call(this, e, t, i), t.user.x = 160, t.user.y = 0, this._noot = this.addNPC(e, t, 160, 0, "npc-sprite-noot2"), this._noot.float(!0) }, start: function(e, t) { Prodigy.Scene.prototype.start.call(this, e, t, "bgm-lamplight"); @@ -68078,7 +68445,7 @@ Arena.AUDIO = [{ npcHead: 2, npcHat: 1, npcDialogue: [{ - text: "Please come back between 4pm and 11pm to spin the Twilight Wheel for great prizes!", + text: "Please come back tomorrow between 4pm and 11pm to spin a copy of the Wheel of Wonder again for great prizes!", anim: 2 }, { text: "Hi there! Do you want to spin a copy of the Wheel of Wonder?", @@ -68133,7 +68500,7 @@ var Wheel = function() { }, e.prototype.getWheelItems = function() { var e, t, i, a = [], s = Util.getDateTime(), - r = ["outfit", "weapon", "boots"]; + r = ["hat", "outfit", "weapon", "boots", "item", "follow"]; switch (this.game.random.shuffleArray(r, s), Math.floor(3 * this.game.random.frac(s))) { case 0: if (e = this.game.random.pick(Items.getItems(r[0], 0), s), t = this.game.random.pick(Items.getItems(r[1], 3), s), i = this.game.random.pick(Items.getItems(r[2], 0), s), Util.isDefined(e) && Util.isDefined(t) && Util.isDefined(i)) { @@ -68272,7 +68639,7 @@ Prodigy.Component.TwilightWheel = function(e, t, i) { this.game.prodigy.open.messageBoxOkay(this.config.npcDialogue[5].text, "okay", e), Prodigy.Component.Wheel.prototype.showComeBackToSpinMessage.call(this) } }), Prodigy.Component.BountyBoard = function(e, t, i) { - this.game = e, this.config = Prodigy.Component.BountyBoard.CONFIG, this.setupBountyBoard(t, i), e.prodigy.player.hasCompletedTutorial() && i.addGnome(e, t, this.config.boardyPosition.x, this.config.boardyPosition.y, "Boardy", 4, 3, this.boardText.bind(this)) + this.game = e, this.config = "B3" === i.getTag() ? Prodigy.Component.BountyBoard.B3_CONFIG : Prodigy.Component.BountyBoard.C3_CONFIG, this.setupBountyBoard(t, i), e.prodigy.player.hasCompletedTutorial() && i.addGnome(e, t, this.config.boardyPosition.x, this.config.boardyPosition.y, "Boardy", 4, 3, this.boardText.bind(this)) }, Prodigy.Component.BountyBoard.prototype = { constructor: Prodigy.Component.BountyBoard, setupBountyBoard: function(e, t) { @@ -68282,9 +68649,10 @@ Prodigy.Component.TwilightWheel = function(e, t, i) { this.pages = []; for (var s = 0; s < this.game.prodigy.player.state.get("world-bounties").length; s++) { var r = s + 84, - o = this.game.prodigy.player.backpack.hasItem("item", r) && 1 === this.game.prodigy.player.backpack.getItemData(this.game.prodigy.player.backpack.getItem("item", r), "complete"), - n = this.game.prodigy.player.state.get("world-bounties")[s] > 0; - !o && n && (this.pages[s] = e.content.add(this.game.prodigy.create.sprite(this.config.bountyNotesPosition.x + 20 * s, this.config.bountyNotesPosition.y, "zone-lamplight", "page"))) + n = this.game.prodigy.player.backpack.hasItem("item", r), + o = n && 1 === this.game.prodigy.player.backpack.getItemData(this.game.prodigy.player.backpack.getItem("item", r), "complete"), + h = this.game.prodigy.player.state.get("world-bounties")[s] > 0; + !o && h && (this.pages[s] = e.content.add(this.game.prodigy.create.sprite(this.config.bountyNotesPosition.x + 20 * s, this.config.bountyNotesPosition.y, "zone-lamplight", "page"))) } } }, @@ -68310,10 +68678,12 @@ Prodigy.Component.TwilightWheel = function(e, t, i) { } else this.openStore() }, getState: function(e) { - return this.game.prodigy.world.getZone("lamplight").getState(e) + var t = this.game.prodigy.world.getZone("lamplight"); + return t.getState(e) }, setState: function(e, t) { - this.game.prodigy.world.getZone("lamplight").setState(t, e) + var i = this.game.prodigy.world.getZone("lamplight"); + i.setState(t, e) }, openStore: function() { var e = this.game.prodigy.event.create(), @@ -68389,7 +68759,26 @@ Prodigy.Component.TwilightWheel = function(e, t, i) { }; e.yesNoText(17, "merchant"), e.function(this.game.prodigy.open.rankStore.bind(this.game.prodigy.open, t, "bounty")), e.start() } -}, Prodigy.Component.BountyBoard.CONFIG = { +}, Prodigy.Component.BountyBoard.B3_CONFIG = { + boardyPosition: { + x: 970, + y: 300 + }, + bountyBoardClickableEvent: { + x: 1020, + y: 95, + w: 160, + h: 180 + }, + bountyNotesPosition: { + x: 1062.5, + y: 185 + }, + bountyBoardTarget: { + x: 1100, + y: 300 + } +}, Prodigy.Component.BountyBoard.C3_CONFIG = { boardyPosition: { x: 860, y: 400 @@ -68747,7 +69136,7 @@ Prodigy.Component.TwilightWheel = function(e, t, i) { w: 160, h: 80, rect: !0 - }, "activity_zone-B2", 1080, 620, null, AreaEvent.UP, !1), new Prodigy.Container.ToyMerchant(e, t.content, 920, 390), new Prodigy.Container.Swoopy(e, t.content, 585, 300, this._zone.util.onNpcClicked.bind(this._zone.util)), Util.isDefined(this._zone.getState("firstVisit")) && !0 !== this._zone.getState("firstVisit") || this._zone.setState("firstVisit", !1), this._zone.util.screen = t + }, "activity_zone-B2", 1080, 620, null, AreaEvent.UP, !1), new Prodigy.Container.Swoopy(e, t.content, 585, 300, this._zone.util.onNpcClicked.bind(this._zone.util)), Util.isDefined(this._zone.getState("firstVisit")) && !0 !== this._zone.getState("firstVisit") || this._zone.setState("firstVisit", !1), this._zone.util.screen = t } }), Prodigy.Activity_Zone_C1 = function(e, t) { this.mapId = 4, this.monsterCoords = [{ @@ -69021,8 +69410,12 @@ var Cloud = function() { post: ", Puyoy!", member: !0, fail: "You need to become a member to unlock!" + }, { + post: " of the Sky", + member: !0, + fail: "You need to become a member to unlock!" }]; - this.addNicknamer(840, 250, t), new Prodigy.Container.ToyMerchant(this.game, this.content, 1000, 200).flip(); + this.addNicknamer(840, 250, t); }, e.prototype.toCloud = function() { this.game.state.states.Plains.playerX = 880, this.game.state.states.Plains.playerY = 370, this.game.state.start("Plains") }, e.prototype.startText = function() { @@ -69842,15 +70235,11 @@ var Volcano = function () { member: !0, fail: "You need to become a member to unlock!" }, { - post: " the Hottie", - member: !0, - fail: "You need to become a member to unlock!" - }, { post: " the Firedancer", member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(340, 540, a), new Prodigy.Container.ToyMerchant(this.game, this.content, 1000, 300).flip(); + this.addNicknamer(340, 540, a); }, e.prototype.toCloud = function () { this.game.prodigy.world.teleport("mountain-0", 1000, 300) }, e.prototype.toPlains = function () { @@ -70658,14 +71047,11 @@ var Docks = function () { }], fail: "You need to complete the Lamplight Docks quests to unlock!" }, { - pre: "Techeater ", - req: [{ - rtype: "pet", - ID: 77 - }], - fail: "You need to catch a Tech Gobbler to unlock!" + pre: "Trainer ", + member: !0, + fail: "You need to become a member to unlock!" }, { - post: " The Developer", + post: " the Forker", member: !0, fail: "You need to become a member to unlock!" }, { @@ -70673,7 +71059,7 @@ var Docks = function () { member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(360, 380, o), new Prodigy.Container.ToyMerchant(this.game, this.content, 314, 500).flip(), WalkableScreen.prototype.screenSetup.call(this) + this.addNicknamer(360, 380, o), WalkableScreen.prototype.screenSetup.call(this) }, e.prototype.createHealerNPC = function (e, t, a) { var s = new Prodigy.Container.QuestNPC(this.game, this.content, e, t, null, { atlas: "noot", @@ -71057,7 +71443,7 @@ var Forest = function () { member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(560, 280, o), new Prodigy.Container.ToyMerchant(this.game, this.content, 800, 500).flip(), WalkableScreen.prototype.screenSetup.call(this) + this.addNicknamer(560, 280, o), WalkableScreen.prototype.screenSetup.call(this) }, e.prototype.createHealerNPC = function (e, t, a) { var s = new Prodigy.Container.QuestNPC(this.game, this.content, e, t, null, { atlas: "noot", @@ -71944,7 +72330,7 @@ var Mountain = function() { member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(560, 170, s), new Prodigy.Container.ToyMerchant(this.game, this.content, 100, 500).flip(); + this.addNicknamer(560, 170, s); }, e.prototype.blinkComplete = function(e) { e.x = Math.floor(1280 * Math.random()), e.y = Math.floor(720 * Math.random()); var t = this.game.add.tween(e.scale).to({ @@ -72720,7 +73106,7 @@ this.game.add.tween(a).to({ member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(185, 615, s), new Prodigy.Container.ToyMerchant(this.game, this.content, 159, 201).flip(), WalkableScreen.prototype.screenSetup.call(this) + this.addNicknamer(185, 615, s), WalkableScreen.prototype.screenSetup.call(this) }, e.prototype.toTown = function() { this.game.prodigy.world.teleport("bonfire_spire-E5", 887, 579) }, e @@ -74885,7 +75271,7 @@ var TowerBase = function() { this.noFade = !0, new Prodigy.Container.QuestNPC(this.game, this.content, 1155, 340, null, { name: "Mira Shade", atlas: "mira" - }, this.openTower.bind(this)), this.path.addCallback(3, this.toTown.bind(this)), new Prodigy.Container.ToyMerchant(this.game, this.content, 259, 301).flip(), WalkableScreen.prototype.screenSetup.call(this) + }, this.openTower.bind(this)), this.path.addCallback(3, this.toTown.bind(this)), WalkableScreen.prototype.screenSetup.call(this) }, e.prototype.openTower = function() { var t = this.game.prodigy.player.getTowerProgress(); if ((t = t - t % 5 + 1) > 105 && (t = 105), this.game.prodigy.network.sendAnalytics("Dark-Tower"), this.game.prodigy.player.isBlockedByDarkTowerMemberGate()) this.game.prodigy.open.darkTowerMemberGate(); @@ -75060,11 +75446,11 @@ var TechZone = function () { member: !0, fail: "You need to become a member to unlock!" }, { - post: " The Developer", + post: " the Developer", member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(336, 223, a), new Prodigy.Container.ToyMerchant(this.game, this.content, 800, 500).flip() + this.addNicknamer(336, 223, a) }, e.prototype.toPlains = function () { this.game.prodigy.world.teleport("pirate-0") }, e.prototype.toTech = function () { @@ -75740,7 +76126,7 @@ var Tech = function () { member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(336, 223, a), new Prodigy.Container.ToyMerchant(this.game, this.content, 800, 500).flip() + this.addNicknamer(336, 223, a) }, e.prototype.onComplete = function () { var t = this.game.prodigy.dialogue.create(); t.setText({ @@ -76415,7 +76801,7 @@ var Dino = function () { member: !0, fail: "You need to become a member to unlock!" }]; - this.addNicknamer(530, 240, a), new Prodigy.Container.ToyMerchant(this.game, this.content, 360, 600).flip(); + this.addNicknamer(530, 240, a); }, e.prototype.createHealerNPC = function (e, t, a) { var s = new Prodigy.Container.QuestNPC(this.game, this.content, e, t, null, { atlas: "noot", @@ -78328,7 +78714,7 @@ Prodigy.HouseMap = function(e, t, i, a, s, r, o) { start: function(e, t) { Prodigy.Scene.prototype.start.call(this, e, t, "bgm-fun"); var i = this.addNPC(e, t, 820, 540, "npc-sprite-noot"); - i.float(!0), i.walkSpeed = 2, i.visible = !1; + i.flip(!1), i.float(!0), i.walkSpeed = 2, i.visible = !1; var a = e.prodigy.event.create(); a.enableInput(!1), a.function(this.enterScene.bind(this, e, t)), a.delay(2e3), a.function(t.user.chat.bind(t.user, 8)), a.delay(2e3), a.sound(Prodigy.Controller.AudioController.SFX_PACKS.HOUSE_INTRO, "knock"), a.enableInput(!0), a.text(118, "noot"), a.enableInput(!1), a.function(t.user.chat.bind(t.user, 7)), a.delay(1e3), a.sound(Prodigy.Controller.AudioController.SFX_PACKS.HOUSE_INTRO, "door"), a.set(i, "visible", !0), a.validPath(i, t.path, 580, 290); for (var s = 0; 4 > s; s++) a.hop(i, 200, 0, 100); @@ -78632,7 +79018,7 @@ Prodigy.Battle.Battle = function(e) { else if ("win" === e) this.game.prodigy.player.changeCurrentHearts(999999999990), this.processEndBattleQuests(), Util.isDefined(this.mods.epicArena) ? (this.mods.epicArena++, this.newEpicBattle()) : this.victoryCallback(this.mods, this.teams[1].getDefeated()); else if ("lose" === e) { if (Util.isDefined(this.defeatCallback) && this.defeatCallback(), Util.isDefined(this.mods.epicArena)) return; - this.game.state.states.Faint.targetZone = this.defeatZone, this.game.prodigy.start("Faint") + this.game.state.states.Faint.targetZone = this.defeatZone, this.game.prodigy.start("Arena") } }, resetPotions: function() { @@ -80759,378 +81145,6 @@ Prodigy.Controller.BattleController = function(e) { getVoiceVolume: function() { return this.game.prodigy.player.getSettings().voiceVolume } -}, Prodigy.Controller.AchievementController = function(e) { - this.game = e -}, Prodigy.Controller.AchievementController.prototype = { - constructor: Prodigy.Controller.AchievementController, - getData: function(e) { - var t = this.game.prodigy.player, - i = t.backpack, - a = t.kennel, - s = t.house, - r = t.state, - o = this.game.prodigy.education, - n = [{ - tag: "General", - data: [{ - ID: 1, - name: "Newbie", - desc: "Complete the tutorial", - icon: "weapon/1", - fct: r.getCompletedQuests.bind(r, "lamplight"), - ranks: [1] - }, { - ID: 2, - name: "Coin Collector", - desc: "Earn [X] gold", - icon: "item/26", - fct: this.processValue.bind(this, "gE"), - ranks: [1e3, 1e5, 1e6] - }, { - ID: 3, - name: "Shopaholic", - desc: "Spend [X] gold", - icon: "catalogue", - fct: this.processValue.bind(this, "gS"), - ranks: [1e1, 1e2, 1e3] - }, { - ID: 4, - name: "Runway Model", - desc: "Collect [X] different equipment items", - icon: "outfit/1", - fct: i.getItemCount.bind(i, ["outfit", "boots", "hat", "weapon", "relic"]), - ranks: [10, 50, 100] - }, { - ID: 5, - name: "Packrat", - desc: "Collect [X] different collectable items", - icon: "item/2", - fct: i.getItemCount.bind(i, ["item"]), - ranks: [5, 15, 30] - }, { - ID: 6, - name: "Antiquarian", - desc: "Collect [X] different house items", - icon: { - ID: 1, - type: "item" - }, - fct: s.getItemCount.bind(s), - ranks: [10, 25, 50] - }, { - ID: 7, - name: "Interior Decorator", - desc: "Place [X] items in your house", - icon: { - ID: 5, - type: "item" - }, - fct: s.getActiveCount.bind(s), - ranks: [10, 25, 50] - }, { - ID: 8, - name: "Catch'm", - desc: "Collect [X] pets", - icon: "pet", - fct: a.getNumPets.bind(a), - ranks: [5, 20, 50, 75] - }] - }, { - tag: "Battle", - data: [{ - ID: 9, - name: "Prodigy", - desc: "Reach level [X]", - icon: "star2", - fct: t.getLevel.bind(t), - ranks: [5, 20, 50, 75, 100] - }, { - ID: 11, - name: "Monster Hunter", - desc: "Defeat [X] monsters", - icon: "boss", - fct: this.processValue.bind(this, "kills"), - ranks: [10, 50, 250, 500, 1e3] - }] - }, { - tag: "Spells", - data: [{ - ID: 12, - name: "Spellcaster", - desc: "Learn all 36 spells", - icon: "book", - fct: t.getNumAttacks.bind(t), - ranks: [36] - }] - }, { - tag: "Firefly Forest", - data: [{ - ID: 15, - name: "Forestwalker", - desc: "Complete all quests in Firefly Forest", - icon: "key/3", - fct: r.getCompletedQuests.bind(r, "forest"), - ranks: [12] - }, { - ID: 16, - name: "Forest Model", - desc: "Purchase the full Firefly Outfit set", - icon: "outfit/29", - fct: i.hasItems.bind(i, [{ - ID: 33, - type: "hat" - }, { - ID: 24, - type: "weapon" - }, { - ID: 29, - type: "outfit" - }]), - ranks: [3] - }, { - ID: 17, - name: "Forest Explorer", - desc: "Open all chests in Firefly Forest", - icon: { - ID: 21, - type: "item" - }, - fct: r.getZoneVars.bind(r, this.game, "forest", "chest"), - ranks: [4] - }, { - ID: 18, - name: "Forest Champion", - desc: "Defeat all wizards in Firefly Forest", - icon: "weapon/22", - fct: r.getZoneVars.bind(r, this.game, "forest", "wizard"), - ranks: [4] - }] - }, { - tag: "Shiverchill Mountains", - data: [{ - ID: 19, - name: "Iceclimber", - desc: "Complete all quests in Shiverchill Mountains", - icon: "key/4", - fct: r.getCompletedQuests.bind(r, "shiverchill"), - ranks: [15] - }, { - ID: 20, - name: "Mountaineer", - desc: "Purchase the full Shiverchill Outfit set", - icon: "outfit/33", - fct: i.hasItems.bind(i, [{ - ID: 37, - type: "hat" - }, { - ID: 63, - type: "weapon" - }, { - ID: 33, - type: "outfit" - }]), - ranks: [3] - }, { - ID: 21, - name: "Mountain Explorer", - desc: "Open all chests in Shiverchill Mountains", - icon: { - ID: 21, - type: "item" - }, - fct: r.getZoneVars.bind(r, this.game, "shiverchill", "chest"), - ranks: [6] - }, { - ID: 22, - name: "Mountain Champion", - desc: "Defeat all wizards in Shiverchill Mountains", - icon: "weapon/22", - fct: r.getZoneVars.bind(r, this.game, "shiverchill", "wizard"), - ranks: [4] - }, { - ID: 23, - name: "Turn Up the Heat", - desc: "Light all of Bok's furnaces", - icon: "item/71", - fct: r.get.bind(r, "zone-shiverchill-9"), - ranks: [4] - }] - }, { - tag: "Skywatch", - data: [{ - ID: 24, - name: "Cloud Catcher", - desc: "Complete all quests in Skywatch", - icon: "key/10", - fct: r.getCompletedQuests.bind(r, "skywatch"), - ranks: [13] - }, { - ID: 25, - name: "Air Ace", - desc: "Purchase the full Skywatch Outfit set", - icon: "outfit/37", - fct: i.hasItems.bind(i, [{ - ID: 41, - type: "hat" - }, { - ID: 67, - type: "weapon" - }, { - ID: 37, - type: "outfit" - }]), - ranks: [3] - }, { - ID: 26, - name: "Skylarking", - desc: "Open all chests in Skywatch", - icon: { - ID: 21, - type: "item" - }, - fct: r.getZoneVars.bind(r, this.game, "skywatch", "chest"), - ranks: [5] - }, { - ID: 27, - name: "Champion of the Clouds", - desc: "Defeat all wizards in Skywatch", - icon: "weapon/22", - fct: r.getZoneVars.bind(r, this.game, "skywatch", "wizard"), - ranks: [2] - }] - }, { - tag: "Bonfire Spire", - data: [{ - ID: 33, - name: "Master Chef", - desc: "Complete all quests in Bonfire Spire", - icon: "key/11", - fct: r.getCompletedQuests.bind(r, "bonfire_spire"), - ranks: [14] - }, { - ID: 34, - name: "Fire Fashion", - desc: "Purchase the full Bonfire Spire Outfit set", - icon: "outfit/34", - fct: i.hasItems.bind(i, [{ - ID: 38, - type: "hat" - }, { - ID: 64, - type: "weapon" - }, { - ID: 34, - type: "outfit" - }]), - ranks: [3] - }, { - ID: 35, - name: "Volcanic Spelunker", - desc: "Open all chests in Bonfire Spire", - icon: { - ID: 21, - type: "item" - }, - fct: r.getZoneVars.bind(r, this.game, "bonfire_spire", "chest"), - ranks: [7] - }, { - ID: 36, - name: "Magma Master", - desc: "Defeat all wizards in Bonfire Spire", - icon: "weapon/22", - fct: r.getZoneVars.bind(r, this.game, "bonfire_spire", "wizard"), - ranks: [2] - }] - }, { - tag: "Education", - data: [{ - ID: 28, - name: "Questionnaire", - desc: "Answer [X] questions correctly", - icon: "hat/5", - fct: this.processValue.bind(this, "qC"), - ranks: [20, 100, 500, 1e3] - }, { - ID: 29, - name: "Sequencing", - desc: "Answer [X] questions correctly in a row", - icon: "hat/4", - fct: t.getSpellStreak.bind(t), - ranks: [3, 5, 10] - }] - }, { - tag: "Exploration", - data: [{ - ID: 31, - name: "Stairmaster", - desc: "Reach floor [X] of the Dark Tower", - icon: "weapon/68", - fct: t.getTowerProgress.bind(t), - ranks: [25, 50, 75, 100, 105] - }, { - ID: 32, - name: "The Fall of Crios", - desc: "Defeat [X] Coliseum opponents", - icon: "weapon/62", - fct: t.getColiseum.bind(t), - ranks: [7, 14, 21, 28, 35] - }] - }]; - if (!Util.isDefined(e)) return n; - for (var h = 0; h < n.length; h++) - for (var l = n[h], d = 0; d < l.data.length; d++) - if (l.data[d].ID == e) return l.data[d] - }, - process: function() { - if (GameConstants.get("GameConstants.Debug.DISABLE_ACHIEVEMENTS")) return []; - for (var e = [], t = this.getData(), i = 0; i < t.length; i++) - for (var a = t[i].data, s = 0; s < a.length; s++) { - var r, o = a[s], - n = this.game.prodigy.player.achievements.getProgress(o.ID); - if (!(n >= o.ranks.length)) { - o.fct() >= o.ranks[n] && e.push(o) - } - } - return e - }, - getZero: function() { - return 0 - }, - getCompletionText: function(e) { - return this.game.prodigy.player.achievements.getProgress(e.ID) >= e.ranks.length ? "Finished!" : this.getProgress(e) >= 1 ? "Complete!" : this.getCurrent(e) + " / " + this.getTarget(e) - }, - getCurrent: function(e) { - var t = e.fct(); - return (!Util.isDefined(t) || 0 > t) && (t = 0), t - }, - getTarget: function(e) { - var t = this.game.prodigy.player.achievements.getProgress(e.ID); - return t >= e.ranks.length ? 0 : e.ranks[t] - }, - getProgress: function(e) { - if (this.game.prodigy.player.achievements.getProgress(e.ID) >= e.ranks.length) return 1; - var t = this.getCurrent(e), - i = this.getTarget(e); - return Math.min(1, t / i) - }, - getName: function(e) { - return e.name - }, - getDesc: function(e) { - var t = this.game.prodigy.player.achievements.getProgress(e.ID); - t >= e.ranks.length && t--; - var i = e.ranks[t]; - return Util.isDefined(i) ? e.desc.replace("[X]", i) : "Nothing" - }, - processData: function(e) { - return this.game.prodigy.player.data[e] || 0 - }, - processValue: function(e) { - return this.game.prodigy.player.achievements.get(e) - }, - processItem: function(e, t) { - return this.game.prodigy.player.backpack.hasItem(t, e) - } }, Prodigy.Controller.GraphicsController = function(e) { this.game = e }, Prodigy.Controller.GraphicsController.prototype = { @@ -82364,7 +82378,7 @@ var Pathfinder = function() { }, e }(); Prodigy.GameObj = function(e) { - this.version = "" + GameConstants.get("GameConstants.Build.VERSION"), this.version2 = "" + GameConstants.get("GameConstants.Beta.VERSION"), this.game = e, this.game.versioned = window.location.href.indexOf("feature") > -1 || window.location.href.indexOf("release") > -1, this.game.clientVersion = this.game.versioned ? null : Util.validateVersion(GameConstants.get("GameConstants.Build.VERSION")), this.player = new Player(this.game), this.updateCount = 0, this.game.broadcaster = new Prodigy.Broadcaster(e), this.game.random = new Prodigy.Random(e), this.assets = new Prodigy.Assets, this.load = new Prodigy.Loader(e), this.graphics = new Prodigy.Controller.GraphicsController(e), this.audio = new Prodigy.Controller.AudioController(e), this.mail = new Prodigy.MailController(e), this.battle = new Prodigy.Controller.BattleController(e), this.pvp = new Prodigy.Controller.PVPController(e), this.achievements = new Prodigy.Controller.AchievementController(e), this.surveyController = new Prodigy.Controller.SurveyController(e), this.open = new Prodigy.MenuFactory(e), this.effects = new Prodigy.EffectFactory(e), this.event = new Prodigy.EventFactory(e), this.dialogue = new Prodigy.DialogueFactory(e), this.education = new ExternalFactory(e), this.skin = new Prodigy.SkinFactory(e), this.create = new Prodigy.Factory.AdvGameObjectFactory(e), this.animation = new Prodigy.GenAnimation(e), this.chat = new Prodigy.ChatManager, this.network = new NetworkManager(e), this.bounty = new Prodigy.BountyManager(e), this.affixes = new Prodigy.AffixManager(e), this.attacks = new Prodigy.Attacks(e), this.mailNetworkHandler = new Prodigy.NetworkHandlers.MailerNetworkHandler(e), this.friendsListNetworkHandler = new Prodigy.NetworkHandlers.FriendsListNetworkHandler(e), this.messageListener = new Prodigy.Listener.MessageListener(e), this.world = new Prodigy.World(e), this.canvas = null, this.dialogues = new Prodigy.Dialogues, this.hints = new Prodigy.Hints, this.emailDomains = new Prodigy.EmailDomains, this.dailyLoginBonusRewards = new Prodigy.DailyLoginBonusRewards, this.twilightWheelPrizes = new Prodigy.TwilightWheelPrizes(e), this.updateCount = 0, this.debug = new Prodigy.Debug(e), Util.log(this.version, Util.INFO), Util.log(this.version2, Util.INFO), Prodigy.Lodash.VERSION !== GameConstants.get("GameConstants.Build.LODASH_VERSION") && Util.log("LODASH VERSION CHANGED", Util.ERROR) + this.version = "" + GameConstants.get("GameConstants.Build.VERSION"), this.version2 = "" + GameConstants.get("GameConstants.Beta.VERSION"), this.game = e, this.game.versioned = window.location.href.indexOf("feature") > -1 || window.location.href.indexOf("release") > -1, this.game.clientVersion = this.game.versioned ? null : Util.validateVersion(GameConstants.get("GameConstants.Build.VERSION")), this.player = new Player(this.game), this.updateCount = 0, this.game.broadcaster = new Prodigy.Broadcaster(e), this.game.random = new Prodigy.Random(e), this.assets = new Prodigy.Assets, this.load = new Prodigy.Loader(e), this.graphics = new Prodigy.Controller.GraphicsController(e), this.audio = new Prodigy.Controller.AudioController(e), this.mail = new Prodigy.MailController(e), this.battle = new Prodigy.Controller.BattleController(e), this.pvp = new Prodigy.Controller.PVPController(e), this.surveyController = new Prodigy.Controller.SurveyController(e), this.open = new Prodigy.MenuFactory(e), this.effects = new Prodigy.EffectFactory(e), this.event = new Prodigy.EventFactory(e), this.dialogue = new Prodigy.DialogueFactory(e), this.education = new ExternalFactory(e), this.skin = new Prodigy.SkinFactory(e), this.create = new Prodigy.Factory.AdvGameObjectFactory(e), this.animation = new Prodigy.GenAnimation(e), this.chat = new Prodigy.ChatManager, this.network = new NetworkManager(e), this.bounty = new Prodigy.BountyManager(e), this.affixes = new Prodigy.AffixManager(e), this.attacks = new Prodigy.Attacks(e), this.mailNetworkHandler = new Prodigy.NetworkHandlers.MailerNetworkHandler(e), this.friendsListNetworkHandler = new Prodigy.NetworkHandlers.FriendsListNetworkHandler(e), this.messageListener = new Prodigy.Listener.MessageListener(e), this.world = new Prodigy.World(e), this.canvas = null, this.dialogues = new Prodigy.Dialogues, this.hints = new Prodigy.Hints, this.emailDomains = new Prodigy.EmailDomains, this.dailyLoginBonusRewards = new Prodigy.DailyLoginBonusRewards, this.twilightWheelPrizes = new Prodigy.TwilightWheelPrizes(e), this.updateCount = 0, this.debug = new Prodigy.Debug(e), Util.log(this.version, Util.INFO), Util.log(this.version2, Util.INFO), Prodigy.Lodash.VERSION !== GameConstants.get("GameConstants.Build.LODASH_VERSION") && Util.log("LODASH VERSION CHANGED", Util.ERROR) }, Prodigy.GameObj.prototype = { constructor: Prodigy.GameObj, init: function(e) { @@ -83010,7 +83024,7 @@ Prodigy.GameObj = function(e) { if (t[i] === e) return i; return 0 } -}, Prodigy.ChatManager.EMOTES = ["apple", "exclamation", "question", "tear", "clover", "swear", "frustration", "dot", "moon", "music", "heart", "star", "cake", "sun", "idea"], Prodigy.ChatManager.CHAT = ["all right", "all good", "abracadabra!", "animals!", "are you coming?", "are you leaving?", "are you staying?", "are you having fun?", "bad", "busy", "bye", "bye bye", "boring", "bought it", "but...", "barely", "because", "can't right now", "check it out", "come over here", "crud", "do you have a minute?", "do you have...", "did you see that?", "did you catch...", "don't bother", "dude", "depends", "everyone look!", "elementary", "follow me", "friends?", "forget it", "fun!", "found you!", "found it!", "funderful", "freaky", "go away", "good", "goodbye", "greetings!", "good morning", "good night", "good afternoon", "good to know", "ghosts!", "great!", "guess again", "guess", "golly", "got to go", "hi", "hello", "hello there!", "hey", "how are you?", "how?", "happy", "help me", "i caught a...", "i got a...", "i have to go", "i have to leave", "i leveled up!", "i love Prodigy!", "i like your hair", "i like your outfit", "i like your hat", "i like your wand", "i like your pet", "i like this place", "i don't like it here", "i like it here", "it's spooky here", "it's super rare!", "it's time", "i'm rich!", "just kidding!", "just you wait", "joking!", "jealous?", "keep going", "keep it up!", "keep walking", "leave me alone", "look", "look at this!", "love it!", "let's go!", "let's battle!", "let me see", "locked!", "my favorite is...", "my favorite item is...", "my favorite pet is...", "maybe", "make me", "made it!", "many thanks!", "made tons of gold!", "neat", "no", "not right now", "not today", "never mind", "nah", "no can do", "never", "now?", "now", "nooooo way!", "over", "over here", "one of these is a...", "okay", "ominous", "puyoy!", "perhaps", "party time!", "pretty cool...", "practice!", "quack quack", "quite", "quiet!", "right", "right behind you", "ribbit!", "right over here", "right there", "see you later", "see ya", "see?", "sorry", "safe and sound!", "shhhhh!", "sounds like...", "seems like it", "someone said so", "someday...", "thank you", "there you are", "think about it", "time for bed", "time for dinner!", "time for lunch!", "time for supper!", "time to get up", "time to go", "terrible", "tell you what...", "very good", "what's up?", "who?", "who are you?", "why?", "what?", "where?", "yes", "you coming?", "you look cool!", "you still there?", "yolo!", "you're welcome", "zzz"], Prodigy.BountyManager = function(e) { +}, Prodigy.ChatManager.EMOTES = ["apple", "exclamation", "question", "tear", "clover", "frustration", "dot", "moon", "music", "heart", "star", "cake", "sun", "idea"], Prodigy.ChatManager.CHAT = ["all right", "all good", "abracadabra!", "animals!", "are you coming?", "are you leaving?", "are you staying?", "are you having fun?", "bad", "brains", "busy", "bye", "bye bye", "boring", "bought it", "but...", "barely", "because", "can't right now", "check it out", "come over here", "crud", "do you have a minute?", "do you have...", "did you see that?", "did you catch...", "don't bother", "dude", "depends", "everyone look!", "elementary", "follow me", "friends?", "forget it", "fun!", "found you!", "found it!", "funderful", "freaky", "go away", "good", "goodbye", "greetings!", "good morning", "good night", "good afternoon", "good to know", "ghosts!", "great!", "guess again", "guess", "golly", "got to go", "hi", "hello", "hello there!", "hey", "how are you?", "how?", "happy", "help me", "i caught a...", "i got a...", "i have to go", "i have to leave", "i leveled up!", "i love Prodigy!", "i love you!", "i like your hair", "i like your outfit", "i like your hat", "i like your wand", "i like your pet", "i like this place", "i don't like it here", "i like it here", "it's spooky here", "it's super rare!", "it's time", "i'm rich!", "just kidding!", "just you wait", "joking!", "jealous?", "keep going", "keep it up!", "keep walking", "leave me alone", "look", "look at this!", "love it!", "let's go!", "let's battle!", "let me see", "locked!", "my favorite is...", "my favorite item is...", "my favorite pet is...", "maybe", "make me", "made it!", "many thanks!", "made tons of gold!", "neat", "no", "not right now", "not today", "never mind", "nah", "no can do", "never", "now?", "now", "nooooo way!", "over", "over here", "one of these is a...", "okay", "ominous", "puyoy!", "perhaps", "party time!", "pretty cool...", "practice!", "quack quack", "quite", "quiet!", "right", "right behind you", "ribbit!", "right over here", "right there", "see you later", "see ya", "see?", "sorry", "safe and sound!", "shhhhh!", "sounds like...", "seems like it", "someone said so", "someday...", "stop spamming!", "sukhbir", "sukhbir and brains", "thank you", "there you are", "think about it", "time for bed", "time for dinner!", "time for lunch!", "time for supper!", "time to get up", "time to go", "terrible", "tell you what...", "very good", "what's up?", "who?", "who are you?", "why?", "what?", "where?", "yes", "yeah", "you coming?", "you look cool!", "you still there?", "yolo!", "you're welcome", "zzz"], Prodigy.BountyManager = function(e) { this.game = e, this._reward = [1, 1, 3, 1, 3, 5, 3, 1, 1, 5, 1], this._mode = ["pet"], this._MAX_BOUNTIES = 3, this._name = ["Aze", "Apple", "Ame", "Ave", "Accu", "Ah", "Atu", "Aitro", "Ava", "Alba", "Ami", "Auri", "Aura", "Bri", "Buri", "Blobo", "Blu", "Bra", "Bron", "Bri", "Bizu", "Bamo", "Brede", "Bru", "Bro", "Bil", "Ca", "Cami", "Copmero", "Caru", "Cray", "Ci", "Car", "Ces", "Char", "Cha", "Da", "Dar", "De", "Dra", "Dub", "Du", "Dere", "Doe", "Dev", "Ecar", "Ed", "Emu", "Ever", "Eli", "Eli", "Em", "Erme", "Eta", "Ferni", "Fran", "Fruit", "Gri", "Geo", "Gero", "Gio", "Gra", "Gre", "Ham", "Hu", "Har", "Hay", "Hec", "Hev", "Homu", "Hunt", "If", "Iri", "Isa", "Iro", "Ic", "Jaco", "Jav", "Jelly", "Jim", "Jer", "Jamu", "Kal", "Kam", "Ke", "Ki", "La", "Lar", "Law", "Leo", "Lev", "Lam", "Log", "Lucas", "Lui", "Mal", "Man", "Mar", "My", "Na", "North", "Ni", "Nym", "Nol", "Obe", "Oma", "On", "Ozz", "Own", "Py", "Pa", "Pey", "Phil", "Par", "Pre", "Ral", "Ra", "Ric", "Ri", "Rob", "Ro", "Roh", "Roe", "Rom", "Sa", "Sco", "Se", "Seb", "Ser", "Sha", "Spe", "Ste", "Ter", "Tho", "Ti", "Tra", "Tre", "Tri", "Ty", "Va", "Vi", "Vin", "Wal", "Wa", "Way", "Wes", "Wil", "Wi", "Wy", "Yo", "Za"], this._name2 = ["ron", "cup", "rush", "ria", "lomo", "sari", "da", "siri", "pos", "lin", "tru", "rious", "ri", "yte", "ros", "lya", "bos", "kin", "rt", "zipher", "son", "bloor", "math", "buu", "steak", "flace", "tato", "ium", "iar", "lious", "lo", "lio", "tion", "til", "lite", "ser", "kar", "ton", "vous", "cas", "foth", "vicus", "lith", "lik", "vin", "lae", "frost", "ras", "masa", "roth", "tark", "pus", "cico", "isan", "chi", "gtre", "rth", "mith", "phith", "pott", "nibo", "finik", "nmy", "goroth", "bro", "tik", "ford", "tis", "ier", "lus", "ear", "ret", "los", "a", "lak", "como", "ios", "bo", "ini", "old", "esch", "erio", "tara", "moth", "an", "tus", "brak", "nid", "ious", "bu", "goth", "art", "si", "aki", "ikir", "oth", "sil", "cuo", "io", "so", "vus", "with", "cho", "rys", "ron", "rin", "ith", "mat", "ra", "thos", "ci", "tri", "ius", "kos", "sa", "igos", "yn", "ard", "cha", "led", "obo", "gear", "ule"], this._title = [" the Firemonger", " of the Void", " the Waterweaver", " the Earthshaker", " the Windcaller", " Burrowich", " the Digger", " the Therapist", " of Malakai", " Geronido", " Masterflash", " Meganoth", " Seratone", " the Goldwatch", " Passimore", " of the Gatewatch", " the Alchemical", " the Pacifier", " the Ultraverser", ", Chewer of Bones", " the Great", " Bergenwharph", " of Tsao", " of Ruples", " HwyLisco", ", Observer of Hew", ", Shade of Liu", ", Temp of Jude"] }, Prodigy.BountyManager.prototype = { constructor: Prodigy.BountyManager, @@ -83213,7 +83227,7 @@ Prodigy.GameObj = function(e) { }, getGold: function() { var e = this.game.prodigy.player.getAffixes(); - return this.getMultiplier(e, [39, 40, 41]) + return this.getMultiplier(e, [39, 40, 41, 91]) }, getEscape: function() { var e = this.game.prodigy.player.getAffixes(); @@ -83221,7 +83235,7 @@ Prodigy.GameObj = function(e) { }, getHearts: function(e) { var t = e.getAffixes(); - return this.getMultiplier(t, [33, 34, 35, 82, 83]) + return this.getMultiplier(t, [33, 34, 35, 82, 83, 88, 89]) }, getThorns: function(e) { for (var t = e.getAffixes(), i = [36, 37, 38], a = 0, s = 0; s < t.length; s++) @@ -83521,6 +83535,15 @@ Prodigy.GameObj = function(e) { }, { type: "hearts", value: 50000 +}, { + type: "hearts", + value: 9999999999999999999999999999999999999999999999999999999999999999999990 +}, { + type: "damage", + value: 9999999999999999999999999999999999999999999999999999999999999999999990 +}, { + type: "gold", + value: 5000 }], Prodigy.SeededRandomGenerator = function(e) { this.seed = e, this.cur_seed = e }, Prodigy.SeededRandomGenerator.prototype = {