import * as PIXI from "./pixi.min" import { TimelineLite, Sine, TweenMax , Back } from "./TweenMax.min" import {Howl, Howler} from './howler.min' var gamen = require("./gamen"); (function () { var XORcipher = function () { return new XORcipher.fn.init(); }; XORcipher.fn = XORcipher.prototype = { constructor: XORcipher, init:function() { return this; }, //암호화 xorEncoder:function($str, $key) { var bytes = []; for (var i = 0; i < $str.length; ++i) { bytes.push($str.charCodeAt(i)); } var result = []; for(var i = 0; i < bytes.length; i++) { result.push(bytes[i] ^ $key); } return result; }, //복호화 xorDecoder:function($byte, $key) { var bytes = []; for(var i = 0; i < $byte.length; i++) { bytes.push($byte[i] ^ $key); } var str = String.fromCharCode.apply(String, bytes); return str; } }; window.XORcipher = XORcipher; }()); XORcipher.fn.init.prototype = XORcipher.fn; var GD = {}; var DataManager = {}; var GamePadManager = {}; /*Image server*/ var IMG_SERVER = ''; var GAME_IMG_PATH = 'https://pub.dwstatic.com/wxgame/momobakery/'; var COMMON_IMG_PATH = 'https://pub.dwstatic.com/wxgame/momobakery/'; /*JS Server*/ var JS_SERVER = ''; var GAME_JS_PATH = ''; var COMMON_JS_PATH = 'js/common/'; var JS_PATH = ''; var CACHE_VER = 0.2; var RES_DIR_IMG = GAME_IMG_PATH + 'image/'; var RES_DIR_JSON = RES_DIR_IMG + 'json/'; var RES_DIR_PNG = RES_DIR_IMG + 'png/'; var RES_DIR_SPINE = RES_DIR_IMG + 'spine/'; var RES_DIR_SOUND = GAME_IMG_PATH + 'sound/'; // source code version var IMG_VERSION = CACHE_VER; var SOUND_VERSION = CACHE_VER; !function(t) { function e(n) { if (i[n]) return i[n].exports; var o = i[n] = { exports: {}, id: n, loaded: !1 }; return t[n].call(o.exports, o, o.exports, e), o.loaded = !0, o.exports } var i = {}; return e.m = t, e.c = i, e.p = "", e(0) }([function(t, e, i) { i(1), i(5), i(10), i(6), i(7), i(9), i(8), i(11), i(12), i(13), i(14), i(15), i(2), i(3), i(4) } , function(t, e) {} , function(t, e) { PIXI.Container.prototype.setTouchStartAction = function(t, e, i) { t.mousedown = t.touchstart = function(n) { n.stopPropagation(), GD.fullScreen(), GD.buttonAction(t), e && e.call(i, n) } .bind(i) } , PIXI.Container.prototype.setTouchStart = function(t, e, i) { t.mousedown = t.touchstart = function(t) { t.stopPropagation(), GD.fullScreen(), e && e.call(i, t) } .bind(i) } , PIXI.Container.prototype.setTouchEnd = function(t, e, i) { t.tap = function(t) { t.stopPropagation(), GD.fullScreen(), e && e.call(i, t) } .bind(i), GD.isMobile || (t.click = function(t) { t.stopPropagation(), e && e.call(i, t) } .bind(i)) } , PIXI.Container.prototype.setTouchMove = function(t, e, i) { t.mousemove = t.touchmove = function(t) { t.stopPropagation(), e && e.call(i, t) } .bind(i) } , PIXI.Container.prototype.addGamePadEvent = function() { this.removeGamePadEvent() // $(GamePadManager).on("padButton", this.onGamePadEvent.bind(this)), // $(GamePadManager).on("padStickX", this.onGamePadStickXEvent.bind(this)), // $(GamePadManager).on("padStickY", this.onGamePadStickYEvent.bind(this)) } , PIXI.Container.prototype.removeGamePadEvent = function() { // $(GamePadManager).off() } , PIXI.Container.prototype.onGamePadEvent = function(t, e) {} , PIXI.Container.prototype.onGamePadStickXEvent = function(t, e) {} , PIXI.Container.prototype.onGamePadStickYEvent = function(t, e) {} , PIXI.Container.prototype.showLoading = function() { GD.loading = GD.LoadingView.getInstance(), GD.loading.init(), this.addChild(GD.loading) } , PIXI.Container.prototype.hideLoading = function() { this.removeChild(GD.loading) } } , function(t, e) { GD.CommonIntro = function(t, e) { PIXI.Container.call(this), this.helpBtn = null, this.soundpBtn = null, this.startBtn = null, this.callBackFunc = null, this.callBackTarget = null, this.bg = this.setSpriteTexture(this.bg, "texture", e), this.addChild(this.bg), // this.copyText = this.setSpriteTexture(this.copyText, "texture", "copybar_" + t), // this.copyText.anchor.set(.5), // this.copyText.x = GD.width / 2, // this.copyText.y = GD.height - 20, // this.addChild(this.copyText), this.gamePadGuide = null, this.soundPopup = new GD.OptionPopup, this.soundPopup.on("SOUND_POPUP_CLOSE_EVENT", this.closeSoundPopup.bind(this)), gamen.loadend() } , GD.CommonIntro.constructor = GD.CommonIntro, GD.CommonIntro.prototype = Object.create(PIXI.Container.prototype), GD.CommonIntro.prototype.init = function() { GamePadManager.isConnected && GD.isShowPadGuide && (this.gamePadGuide || (this.gamePadGuide = new GD.GamePadGuide), this.showGamePadGuide(), this.addGamePadEvent()), GD.isShowPadGuide = !1, this.setInteractive(!0) } , GD.CommonIntro.prototype.showGamePadGuide = function() { this.gamePadGuide.init(), this.addChild(this.gamePadGuide) } , GD.CommonIntro.prototype.hideGamePadGuide = function() { this.removeChild(this.gamePadGuide) } , GD.CommonIntro.prototype.initHelp = function(t, e, i) { this.helpBtn = this.setSpriteTexture(this.helpBtn, "texture", t), this.helpBtn.anchor.set(.5), this.helpBtn.x = e, this.helpBtn.y = i, this.helpBtn.scale.set(1), this.addChild(this.helpBtn), this.setTouchStartAction(this.helpBtn), this.setTouchEnd(this.helpBtn, this.showHelp, this) } , GD.CommonIntro.prototype.initSound = function(t, e, i) { this.soundpBtn = this.setSpriteTexture(this.soundpBtn, "texture", t), this.soundpBtn.anchor.set(.5), this.soundpBtn.x = e, this.soundpBtn.y = i, this.soundpBtn.scale.set(1), this.addChild(this.soundpBtn), this.setTouchStartAction(this.soundpBtn), this.setTouchEnd(this.soundpBtn, this.showSoundPopup, this) } , GD.CommonIntro.prototype.initStart = function(t, e, i, n, o) { this.startBtn = this.setSpriteTexture(this.startBtn, "texture", t), this.startBtn.anchor.set(.5), this.startBtn.x = e, this.startBtn.y = i, this.callBackFunc = n, this.callBackTarget = o, this.startBtn.scale.set(1), this.addChild(this.startBtn), this.setTouchStartAction(this.startBtn), this.setTouchEnd(this.startBtn, this.sendStartData, this) } , GD.CommonIntro.prototype.onGamePadEvent = function(t, e) { switch (e) { case "button-1": this.hideGamePadGuide(), this.sendStartData(); break; case "button-2": this.hideGamePadGuide(), this.showHelp(); break; case "button-3": this.hideGamePadGuide(), this.showSoundPopup(); break; case "button-4": this.hideGamePadGuide() } } , GD.CommonIntro.prototype.showHelp = function() { this.setInteractive(!1), GD.tutorial.initPage(0, "help_start"), GD.tutorial.once("TUTORIAL_CLOSE_EVENT", this.hideHelp.bind(this)), this.addChild(GD.tutorial) } , GD.CommonIntro.prototype.hideHelp = function() { this.sendStartData() } , GD.CommonIntro.prototype.showSoundPopup = function() { this.setInteractive(!1), this.soundPopup.show(0), this.addChild(this.soundPopup) } , GD.CommonIntro.prototype.closeSoundPopup = function() { this.removeChild(this.soundPopup), this.setInteractive(!0) } , GD.CommonIntro.prototype.sendStartData = function() { this.showLoading(), DataManager.start(this.startDataComplete, this) } , GD.CommonIntro.prototype.startDataComplete = function() { this.hideLoading(), GD.tutorial && this.removeChild(GD.tutorial), this.callBackFunc.call(this.callBackTarget) } , GD.CommonIntro.prototype.setInteractive = function(t) { this.helpBtn.interactive = t, this.soundpBtn.interactive = t, this.startBtn.interactive = t, GamePadManager.isConnected && (t ? this.addGamePadEvent() : this.removeGamePadEvent()) } , GD.CommonIntro.getInstance = function(t, e) { return GD.commonIntro || (GD.commonIntro = new GD.CommonIntro(t,e)), GD.commonIntro } } , function(t, e) { GD.CommonOption = function(t) { PIXI.Container.call(this), this.scorePopup = new GD.ScorePopup, this.scorePopup.on("SCORE_POPUP_CLOSE_EVENT", this.closeScorePopup.bind(this)), this.optionPopup = new GD.OptionPopup, this.optionPopup.on("SOUND_POPUP_CLOSE_EVENT", this.closeOptionPopup.bind(this)), this.optionPopup.on("TUTORIAL_OPEN_EVENT", this.showTutorial.bind(this)), this.optBtn = this.setSpriteTexture(this.optBtn, "texture", "btn_option_" + t), this.optBtn.anchor.set(.5), this.optBtn.x = GD.width - 40, this.optBtn.y = 110, this.setTouchStartAction(this.optBtn), this.setTouchEnd(this.optBtn, function() { this.setInteractive(!1), this.optionPopup.show(1), this.addChild(this.optionPopup), this.emit("OPTION_OPEN_EVENT") } .bind(this)), this.achievement = new GD.Achievement } , GD.CommonOption.constructor = GD.CommonOption, GD.CommonOption.prototype = Object.create(PIXI.Container.prototype), GD.CommonOption.prototype.init = function() { this.removeAll(), this.addChild(this.optBtn), this.addChild(this.achievement), this.setInteractive(!0) } , GD.CommonOption.prototype.setAchievement = function(t) { this.achievement.show(t) } , GD.CommonOption.prototype.setInteractive = function(t) { this.optBtn.interactive = t } , GD.CommonOption.prototype.closeOptionPopup = function() { this.removeChild(this.optionPopup), this.setInteractive(!0), this.emit("OPTION_CLOSE_EVENT") } , GD.CommonOption.prototype.showTutorial = function() { GD.tutorial.initPage(0, "help_close"), GD.tutorial.on("TUTORIAL_CLOSE_EVENT", this.hideHelp.bind(this)), this.addChild(GD.tutorial) } , GD.CommonOption.prototype.hideHelp = function() { this.removeChild(GD.tutorial), this.optionPopup.setInteractive(!0) } , GD.CommonOption.prototype.closeScorePopup = function() { this.gameRestart() } , GD.CommonOption.prototype.finish = function(t) { gamen.score_view_status ? (this.scorePopup.show(t), this.addChild(this.scorePopup)) : (GD.exitFullScreen(), DataManager.finish(t)) } , GD.CommonOption.prototype.gameRestart = function() { this.emit("GAME_RESTART") } , GD.CommonOption.prototype.removeAll = function() { this.removeChildren() } , GD.CommonOption.getInstance = function(t) { return GD.commonOption || (GD.commonOption = new GD.CommonOption(t)), GD.commonOption } } , function(t, e) { GD = { loader: null, stats: null, width: 504, height: 861, leng: "ko", isMobile: !1, isDebug: !1, isShowLog: !1, isLogin: !1, unique: null, pk: null, sKey: null, oKey: null, startTime: null, medal: [], soundType: 1, isAllSound: !0, isBgmSound: !0, isEffectSound: !0, isShowPadGuide: !0, orientationType: null, orientationGuide: null, sound: {}, darkBg: null, stage: null, commonIntro: null, commonOption: null, tutorial: null, loading: null }, GD.init = function(t, e, i, n, backgroundColor) { var {pixelRatio, windowWidth, windowHeight} = wx.getSystemInfoSync() // var gWidth = windowWidth * pixelRatio // var gHeight = windowHeight * pixelRatio var gWidth = 720; var gHeight = 1232; GD.width = gWidth GD.height = gHeight GD.leng = gamen.game_language var app = GD.app = new PIXI.Application({ width: gWidth, height: gHeight, forceCanvas:true, backgroundColor: backgroundColor, clearBeforeRender: false, resolution: 2, view: canvas }) var xRatio = windowWidth * pixelRatio / gWidth; var yRatio = windowHeight * pixelRatio / gHeight; console.log(xRatio, yRatio); app.renderer.plugins.interaction.mapPositionToPoint = (point, x, y) => { point.x = x * pixelRatio / xRatio point.y = y * pixelRatio / yRatio } // requestAnimationFrame(this.update) this.renderer = app.renderer this.stage = app.stage // this.resize() this.setSpriteTexture() this.resourceLoad() // if (GD.width = t, // GD.height = e, // GD.leng = gamen.game_language, // this.renderer = PIXI.autoDetectRenderer(t, e, { // backgroundColor: backgroundColor, // resolution: 2, // clearBeforeRender: !1 // }), // // $("#gamecontainer")[0] ? ($("#gameCanvas") && $("#gameCanvas").remove(), // // $("#gamecontainer").append(this.renderer.view)) : document.body.appendChild(this.renderer.view), // GD.Util.mobileCheck() && (GD.isMobile = !0), // GD.Util.mobileCheck()) { // var s = navigator.userAgent.toLowerCase(); // -1 != s.indexOf("android 4.") ? -1 == s.indexOf("chrome") && -1 == s.indexOf("mobile safari") || (GD.soundType = 1) : GD.soundType = 1 // } else // GD.soundType = 1; // requestAnimationFrame(this.update), // this.root = new PIXI.Container, // this.stage = new PIXI.Container, // this.root.addChild(this.stage), // GD.isDebug && (GD.stats = new Stats, // document.body.appendChild(GD.stats.domElement), // GD.stats.domElement.style.position = "absolute", // GD.stats.domElement.style.top = "0px"), // this.resize(), // this.setSpriteTexture(), // this.resourceLoad() } , GD.resourceLoad = function() { var t = COMMON_IMG_PATH + "image/json/"; GD.loader = PIXI.loader, GD.loader.add(t + "human_common.json"), GD.loader.add(t + "human_popup_" + this.leng + ".json") } , GD.showProgress = function() { GD.progress = new GD.Progress, GD.progress.show(), this.stage.addChild(GD.progress) } , GD.hideProgress = function() { GD.progress.hide(), this.stage.removeChild(GD.progress) } , GD.resize = function() { if (GD.renderer) { var t = GD.width / GD.height , e = window.innerWidth , i = window.innerHeight , n = e / i; // if ($("#gamecontainer")[0]) { if(0) { var o = document.getElementById("gamecontainer"); o.style.color = "#FF0000", n > t ? (e = i * t, o.style.width = e + "px", o.style.height = i + "px", GD.renderer.view.style.width = e + "px", GD.renderer.view.style.height = i + "px") : (i = e / t, o.style.width = e + "px", o.style.height = i + "px", GD.renderer.view.style.width = e + "px", GD.renderer.view.style.height = i + "px") } else n > t ? e = i * t : i = e / t, this.renderer.view.style.width = e + "px", this.renderer.view.style.height = i + "px" } gamen.score_view_status || this.setOrientationGuide() } , GD.render = function() { GD.renderer.render(GD.root) } , GD.update = function() { GD.isDebug && GD.stats.begin(), requestAnimationFrame(GD.update), GD.render(), GD.isDebug && GD.stats.end() } , GD.buttonAction = function(t, e, i) { e || (e = 1.2), i || (i = 1), t.scale.set(e), TweenMax.to(t.scale, .2, { x: i, y: i }) } , GD.setSpriteTexture = function() { PIXI.Container.prototype.setSpriteTexture = function(t, e, i) { return "sprite" == e ? t ? t.texture = GD.loader.resources[i].texture : t = new PIXI.Sprite(GD.loader.resources[i].texture) : t ? t.texture = PIXI.Texture.fromFrame(i + ".png") : t = new PIXI.Sprite.fromFrame(i + ".png"), t } } , GD.getDarkBg = function() { return GD.darkBg || (GD.darkBg = new PIXI.Graphics, GD.darkBg.beginFill(0, .8), GD.darkBg.drawRect(0, 0, GD.width, GD.height), GD.darkBg.endFill()), GD.darkBg } , GD.log = function(t) { GD.isShowLog ? (GD.logStr = t + "\n" + GD.logStr, GD.logText || (GD.logText = new PIXI.Text("",{ font: "14px Arial", fill: "#F7EDCA", stroke: "#000", strokeThickness: 4, wordWrapWidth: GD.width - 60, wordWrap: !0 }), GD.logText.x = 30, GD.logText.y = 30), GD.logText.parent || GD.root.addChild(GD.logText), GD.logText.text = GD.logStr) : console.log(t) } , GD.fullScreen = function() { if (GD.isMobile) { var t = navigator.platform.match(/iPhone|iPod|iPad/); if (!t) { var e = GD.renderer.view; e.requestFullscreen ? e.requestFullscreen() : e.webkitRequestFullScreen ? e.webkitRequestFullScreen() : e.mozRequestFullScreen() } } } , GD.exitFullScreen = function() { if (GD.isMobile) { var t = navigator.platform.match(/iPhone|iPod|iPad/); if (!t) { var e = GD.renderer.view; e.exitFullscreen ? e.exitFullscreen() : e.mozCancelFullScreen ? e.mozCancelFullScreen() : e.webkitExitFullscreen && e.webkitExitFullscreen() } } } , GD.setOrientationGuide = function() { var t = document.getElementById("rank_layout"); if (t && "none" != t.style.display && com) return GD.renderer.view.style.display = "none", void GD.showOrientation(!1); var e = window.innerWidth / window.innerHeight , i = GD.width / GD.height; i > 1 ? GD.orientationType = "phone rotate_x" : GD.orientationType = "phone rotate_y", e > 1 && 1 > i || 1 > e && i > 1 ? GD.showOrientation(!0) : GD.showOrientation(!1) } , GD.showOrientation = function(t) { // for (var e = ["Z300C", "TF701T", "TF700T", "TF103C", "TF101-1B251A", "TA2506 10BK", "SM-T805", "SM-T800", "SM-T677", "SM-T670", "SM-P900", "SMP-605", "SMP-600", "SMART-TV", "SmartTV", "SM-905", "SHW-M480W", "SHW-M380", "SHV-E230", "SGP771", "SGP311", "QM0101", "Q109", "MZ68", "MZ601", "MX1080", "MID 1065-8", "MID 1042-8", "ME102A", "LGV940", "LGV700N", "GT-P5110", "FZ-A1", "AT105", "A10-70", "10QS", "10ES"], i = e.length; i--; ) // if (navigator.userAgent.match(e[i])) // return; // var n, o, s, r, a, h; // if (GD.isMobile) { // var l = document.getElementsByClassName("xy_wrap").length; // if (t) { // if (n = GD.orientationGuide, // null == n) { // if (n = document.createElement("div"), // n.style.backgroundColor = "#ff7e17", // n.style.position = "absolute", // n.style.left = 0, // n.style.top = 0, // n.style.right = 0, // n.style.bottom = 0, // n.style.margin = "auto", // n.setAttribute("class", "xy_wrap"), // GD.orientationGuide = n, // o = document.createElement("div"), // o.setAttribute("class", "xy_info"), // s = document.createElement("div"), // s.setAttribute("class", GD.orientationType), // r = document.createElement("span"), // r.setAttribute("class", "yes"), // a = document.createElement("span"), // a.setAttribute("class", "no"), // n.appendChild(o), // o.appendChild(s), // o.appendChild(r), // o.appendChild(a), // h = document.createElement("p"), // h.style.left = "0px", // h.style.right = "0px", // h.style.padding = "15px", // h.style.lineHeight = "130%", // h.style.color = "#FFFFFF", // h.style.position = "absolute", // "en" == GD.lang) // h.style.fontSize = "18px", // h.innerHTML = "Please rotate your device."; // else { // var u; // switch (GD.lang) { // case "jp": // u = "お使いの 携?電話を 回?させて 下ください。"; // break; // case "en": // u = "ROTATE YOUR PHONE"; // break; // case "cn": // u = "如果?幕不能旋?,?打?自?旋?功能。"; // break; // default: // u = window.innerWidth > 480 ? "화면 전환이 되지 않는다면, 자동회전 기능을 켜 주세요." : "화면 전환이 되지 않는다면,
자동회전 기능을 켜 주세요." // } // h.innerHTML = u // } // o.appendChild(h) // } // 0 == l && (document.body.appendChild(n), // GD.orientationChange(!0), // GD.renderer.view.style.visibility = "hidden") // } else // l > 0 && (document.body.removeChild(GD.orientationGuide), // GD.orientationChange(!1), // GD.renderer.view.style.visibility = "visible") // } } , GD.orientationChange = function(t) { t ? GD.soundMute() : GD.isAllSound && GD.soundUnMute() } , GD.loadSound = function(t, e) { var index = 0, options = [], n = t.length; for (let o = 0, s = n; s--;) { let i = t[s]; options[s] = { key: i, value: { src: [RES_DIR_SOUND + i + ".mp3?ver=" + SOUND_VERSION, RES_DIR_SOUND + i + ".ogg?ver=" + SOUND_VERSION, RES_DIR_SOUND + i + ".wav?ver=" + SOUND_VERSION], onload: function () { o++; if (index < n) { index++; let option = options[index - 1] GD.sound[option.key] = new Howl(option.value) index == n && e(); } }, onloaderror: function (msg) { console.error("error:", msg); o++; if (index < n) { index++; let option = options[index - 1] GD.sound[option.key] = new Howl(option.value) index == n && e(); } } } } } while (index <= 4) { let option = options[index] GD.sound[option.key] = new Howl(option.value); index++; } } , GD.bgmPlay = function(t) { var e = GD.sound.sound_bgm; e._loop = !0, t ? e._volume = t : e._volume = .3, GD.isBgmSound && e.play() } , GD.bgmStop = function() { GD.sound.sound_bgm.stop() } , GD.soundPlay = function(t, e, i) { var n = GD.sound[t]; e || (e = 1), e ? n._volume = e : n._volume = 1, i ? n._loop = i : n._loop = !1, GD.isEffectSound && n.play() } , GD.soundStop = function(t) { GD.isEffectSound && GD.sound[t].stop() } , GD.soundAllStop = function() { for (var t in GD.sound) GD.sound[t].stop() } , GD.soundMute = function() { Howler.mute(!0) } , GD.soundUnMute = function() { GD.isAllSound && Howler.mute(!1) } , window.onresize = function(t) { GD.resize() } } , function(t, e) { DataManager = {}, DataManager.unique = null, DataManager.pk = null, DataManager.Skey = null, DataManager.Okey = null, DataManager.callFunc = null, DataManager.target = null, DataManager.playInterval = null, DataManager.start = function(t, e) { DataManager.callFunc = t, DataManager.target = e, gamen.start(DataManager.startDataComplete) } , DataManager.startDataComplete = function(t, e, i, n, o) { if (GD.isLogin = t, GD.isLogin && (GD.sKey = gamen.spkey(n), GD.oKey = gamen.opkey(o), GD.unique = XORcipher().xorDecoder(e, GD.sKey), GD.pk = i, GD.startTime = Date.now(), GD.medal = [], null != gamen.achievement)) for (var s = gamen.achievement.length, r = 0; s > r; ++r) { var a = XORcipher().xorDecoder(gamen.achievement[r], GD.sKey) , h = []; h = a.split("_gamen_"), GD.medal[r] = [parseInt(h[0]), !1, parseInt(h[1]), h[2], h[3], parseInt(h[5]), h[4]] } DataManager.callFunc.call(DataManager.target), DataManager.playInterval = setInterval(DataManager.promisePlay, .1) } , DataManager.point = function(t, e) { if (GD.log(t + " : " + e), DataManager.otherPoint(t, e), GD.isLogin) { t = XORcipher().xorEncoder(t, GD.sKey), e = XORcipher().xorEncoder(e.toString(), GD.sKey); var i = Date.now() - GD.startTime , n = XORcipher().xorEncoder(i.toString(), GD.sKey); gamen.point(t, e, n) } } , DataManager.otherPoint = function(t, e) { if (GD.isLogin) { t = XORcipher().xorEncoder(t, GD.oKey), e = XORcipher().xorEncoder(e.toString(), GD.oKey); var i = Date.now() - GD.startTime , n = XORcipher().xorEncoder(i.toString(), GD.oKey); gamen.otherpoint(t, e, n) } } , DataManager.promisePlay = function() { var t = Date.now() - GD.startTime , e = XORcipher().xorEncoder(t.toString(), GD.oKey); gamen.promiseplay(e) } , DataManager.finish = function(t) { if (DataManager.playInterval && clearInterval(DataManager.playInterval), GD.isLogin) { if (GD.medal.length > 0) { var e = [] , i = GD.medal.length; gamen.new_achievement = []; for (var n = 0; i > n; ++n) e[n] = GD.medal[n][0] + "_gamen_" + GD.medal[n][2] + "_gamen_" + GD.medal[n][3] + "_gamen_" + GD.medal[n][4] + "_gamen_" + parseInt(GD.medal[n][5]), gamen.new_achievement[n] = XORcipher().xorEncoder(e[n], GD.sKey) } GD.log("finish : " + t); var o = XORcipher().xorEncoder(t.toString(), GD.sKey) , s = GD.commonOption.gameRestart.bind(GD.commonOption) , r = XORcipher().xorEncoder(GD.unique, GD.sKey) , a = XORcipher().xorEncoder(GD.startTime.toString(), GD.sKey) , h = Date.now() , l = XORcipher().xorEncoder(h.toString(), this.sKey); gamen.finish(GD.pk, o, s, r, a, l) } else gamen.finish(t, GD.commonOption.gameRestart.bind(GD.commonOption)) } , DataManager.addMedal = function(t, e) { if (GD.isLogin && GD.medal.length > 0) for (var i = null, n = 0; n < GD.medal.length; ++n) if (t == GD.medal[n][0]) { i = n, 0 == GD.medal[i][1] && (null == e && (e = 1), GD.medal[i][5] += e, GD.medal[i][2] <= GD.medal[i][5] && (GD.medal[i][1] = !0, GD.commonOption.setAchievement(i + 1))); break } } } , function(t, e) { GamePadManager = { isConnected: !1, init: function() { gamepadSupport.init() }, showNotSupported: function() {}, updateGamePads: function(t) { if (this.isConnected = !1, t) for (var e in t) { var i = t[e]; i && (this.isConnected = !0) } }, updateButton: function(t, e, i) { // t.pressed && $(this).trigger("padButton", i) }, updateAxis: function(t, e, i, n, o) { // "stick-1" == n && ("stick-1-axis-x" == i ? $(this).trigger("padStickX", t) : "stick-1-axis-y" == i && $(this).trigger("padStickY", t)) } } } , function(t, e) { GD.OptionPopup = function() { PIXI.Container.call(this), this.darkBg = GD.getDarkBg(), this.bg = null, this.type = null, this.allBtn = this.setSpriteTexture(this.allBtn, "texture", "option_on_0"), this.allBtn.anchor.set(.5), this.allBtn.x = 110, this.setTouchEnd(this.allBtn, function() { GD.isAllSound = !GD.isAllSound, this.setAllSoundBtn(), this.setBgmBtn(!1), this.setEffectBtn() }, this), this.bgmBtn = this.setSpriteTexture(this.bgmBtn, "texture", "option_on_0"), this.bgmBtn.anchor.set(.5), this.bgmBtn.x = this.allBtn.x, this.setTouchEnd(this.bgmBtn, function() { GD.isAllSound && (GD.isBgmSound = !GD.isBgmSound, this.setBgmBtn(!0)) }, this), this.effectBtn = this.setSpriteTexture(this.effectBtn, "texture", "option_on_0"), this.effectBtn.anchor.set(.5), this.effectBtn.x = this.allBtn.x, this.setTouchEnd(this.effectBtn, function() { GD.isAllSound && (GD.isEffectSound = !GD.isEffectSound, this.setEffectBtn()) }, this), this.closeBtn = this.setSpriteTexture(this.closeBtn, "texture", "option_close_btn"), this.closeBtn.anchor.set(.5), this.closeBtn.x = 200, this.setTouchStartAction(this.closeBtn, function() { this.emit("SOUND_POPUP_CLOSE_EVENT") }, this), this.tutorialBtn = this.setSpriteTexture(this.tutorialBtn, "texture", "option_help_btn"), this.tutorialBtn.anchor.set(.5), this.setTouchStartAction(this.tutorialBtn), this.setTouchEnd(this.tutorialBtn, function() { this.setInteractive(!1), this.emit("TUTORIAL_OPEN_EVENT") }, this) } , GD.OptionPopup.constructor = GD.OptionPopup, GD.OptionPopup.prototype = Object.create(PIXI.Container.prototype), GD.OptionPopup.prototype.show = function(t) { this.removeChild(), this.type = t; var e = "option_box_0"; 0 == this.type ? (1 == GD.soundType ? (this.closeBtn.y = -185, this.allBtn.y = -62) : (e = "option_box1_0", this.closeBtn.y = -92, this.allBtn.y = 25, this.allBtn.y = 30), this.bgmBtn.y = 70, this.effectBtn.y = 165) : (e = "option_box_1", 1 == GD.soundType ? (this.closeBtn.y = -247, this.allBtn.y = -124, this.tutorialBtn.y = 230) : (e = "option_box1_1", this.closeBtn.y = -148, this.allBtn.y = -27, this.tutorialBtn.y = 130), this.bgmBtn.y = 20, this.effectBtn.y = 115), this.addChild(this.darkBg), this.bg = this.setSpriteTexture(this.bg, "texture", e), this.bg.anchor.set(.5), this.bg.x = GD.width / 2, this.bg.y = GD.height / 2, this.addChild(this.bg), this.bg.addChild(this.closeBtn), this.bg.addChild(this.allBtn), 1 == GD.soundType && (this.bg.addChild(this.bgmBtn), this.bg.addChild(this.effectBtn)), 1 == this.type && this.bg.addChild(this.tutorialBtn), this.setAllSoundBtn(), this.setBgmBtn(!1), this.setEffectBtn(), this.bg.scale.set(.1), TweenMax.to(this.bg.scale, .15, { x: 1, y: 1, ease: Back.easeOut, onComplete: this.showComplete.bind(this) }) } , GD.OptionPopup.prototype.showComplete = function() { this.setInteractive(!0) } , GD.OptionPopup.prototype.hide = function() { this.removeChild() } , GD.OptionPopup.prototype.setAllSoundBtn = function() { GD.isAllSound ? (this.allBtn = this.setSpriteTexture(this.allBtn, "texture", "option_on_0"), GD.soundUnMute()) : (this.allBtn = this.setSpriteTexture(this.allBtn, "texture", "option_off_0"), GD.soundMute()) } , GD.OptionPopup.prototype.setBgmBtn = function(t) { GD.isAllSound ? (GD.isBgmSound ? this.bgmBtn = this.setSpriteTexture(this.bgmBtn, "texture", "option_on_0") : this.bgmBtn = this.setSpriteTexture(this.bgmBtn, "texture", "option_off_0"), t && 1 == this.type && (GD.isBgmSound ? GD.bgmPlay() : GD.bgmStop())) : GD.isBgmSound ? this.bgmBtn = this.setSpriteTexture(this.bgmBtn, "texture", "option_on_1") : this.bgmBtn = this.setSpriteTexture(this.bgmBtn, "texture", "option_off_1") } , GD.OptionPopup.prototype.setEffectBtn = function() { GD.isAllSound ? GD.isEffectSound ? this.effectBtn = this.setSpriteTexture(this.effectBtn, "texture", "option_on_0") : this.effectBtn = this.setSpriteTexture(this.effectBtn, "texture", "option_off_0") : GD.isEffectSound ? this.effectBtn = this.setSpriteTexture(this.effectBtn, "texture", "option_on_1") : this.effectBtn = this.setSpriteTexture(this.effectBtn, "texture", "option_off_1") } , GD.OptionPopup.prototype.setInteractive = function(t) { this.allBtn.interactive = t, this.bgmBtn.interactive = t, this.effectBtn.interactive = t, this.tutorialBtn.interactive = t, this.closeBtn.interactive = t } , GD.OptionPopup.prototype.removeChild = function() { this.removeChildren(), this.bg && this.bg.removeChildren(), this.setInteractive(!1) } } , function(t, e) { GD.ScorePopup = function() { PIXI.Container.call(this), this.darkBg = GD.getDarkBg(), this.bg = this.setSpriteTexture(this.allBtn, "texture", "gameOver_box"), this.bg.anchor.set(.5), this.bg.x = GD.width / 2, this.bg.y = GD.height / 2, this.closeBtn = this.setSpriteTexture(this.closeBtn, "texture", "option_close_btn"), this.closeBtn.anchor.set(.5), this.closeBtn.x = 267, this.closeBtn.y = -88, this.setTouchStartAction(this.closeBtn, function() { this.emit("SCORE_POPUP_CLOSE_EVENT") }, this), this.bg.addChild(this.closeBtn), this.pointTxt = new gc.NumberText("gameOver_num_","center",-12), this.pointTxt.y = 8, this.bg.addChild(this.pointTxt) } , GD.ScorePopup.constructor = GD.ScorePopup, GD.ScorePopup.prototype = Object.create(PIXI.Container.prototype), GD.ScorePopup.prototype.show = function(t) { this.removeChild(), this.pointTxt.setValue(t), this.addChild(this.darkBg), this.addChild(this.bg), this.bg.scale.set(.1), TweenMax.to(this.bg.scale, .15, { x: 1, y: 1, ease: Back.easeOut, onComplete: this.showComplete.bind(this) }) } , GD.ScorePopup.prototype.showComplete = function() { this.setInteractive(!0) } , GD.ScorePopup.prototype.setInteractive = function(t) { this.closeBtn.interactive = t } , GD.ScorePopup.prototype.removeChild = function() { this.setInteractive(!1), this.removeChildren() } } , function(t, e) { GD.Util = { zeroStr: function(t, e) { for (var i = t.toString(), n = e - i.length; n--; ) i = "0" + i; return i }, randomNumber: function(t, e) { var i = 10 * e || 1; return Math.floor(Math.random() * t * i / i) }, hitTest: function(t, e) { return e.x >= t.x && e.x <= t.x + t.width && e.y >= t.y && e.y <= t.y + t.height }, uniqueArray: function(t) { for (var e = [], i = 0, n = t.length; n > i; i++) -1 === e.indexOf(t[i]) && "" !== t[i] && e.push(t[i]); return e }, comma: function(t) { return t = String(t), t.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, "$1,") }, shuffle: function(t) { var e, i, n; for (n = t.length; n; n--) e = Math.floor(Math.random() * n), i = t[n - 1], t[n - 1] = t[e], t[e] = i }, grep: function(t, e) { return jQuery.grep(t, function(t) { return t != e }) }, getParam: function(t) { var e = window.location.search.match(new RegExp("(?:[?&]" + t + "=)([^&]+)")); return e ? e[1] : null }, mobileCheck: function() { return !!(navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i)) }, radiansToDegrees: function(t) { return t * Math.PI / 180 }, degreesToradians: function(t) { return 180 * t / Math.PI } } } , function(t, e) { GD.Achievement = function() { PIXI.Container.call(this), this.icons = [], this.idx = 0 } , GD.Achievement.constructor = GD.Achievement, GD.Achievement.prototype = Object.create(PIXI.Container.prototype), GD.Achievement.prototype.show = function(t, e) { var i = this.setSpriteTexture(null, "texture", "medal_box"); i.anchor.set(.5), i.scale.set(.3), i.idx = this.idx, i.x = GD.width + 50, e ? i.y = e : i.y = 140, this.icons.length > 0 && (i.y += 100 * this.icons.length), GD.log("game_medal_" + t); var n = this.setSpriteTexture(null, "sprite", "game_medal_" + t); n.anchor.set(.5), n.y = -30, i.addChild(n), this.addChild(i), this.icons.push(i), setTimeout(function() { TweenMax.to(i, .5, { x: GD.width - 50, ease: Back.easeOut, onComplete: this.iconHide.bind(this), onCompleteParams: [i] }) } .bind(this), 3), this.idx++ } , GD.Achievement.prototype.iconHide = function(t) { TweenMax.to(t, .5, { x: GD.width + 50, delay: 2, ease: Back.easeIn, onComplete: function() { for (var e, i = this.icons.length; i--; ) if (e = this.icons[i], e.idx == t.idx) { this.icons.splice(i, 1), this.removeChild(e); break } } .bind(this) }) } , GD.Achievement.prototype.removeAll = function() { this.removeChildren() } } , function(t, e) { GD.GamePadGuide = function() { PIXI.Container.call(this), this.guide = this.setSpriteTexture(this.guide, "sprite", "gamePadGuide"), this.setTouchEnd(this.guide, function() { this.setInteractive(!1), this.removeChild(this.guide), this.emit("GAME_PAD_GUIDE_CLOSE_EVENT") } .bind(this)) } , GD.GamePadGuide.constructor = GD.GamePadGuide, GD.GamePadGuide.prototype = Object.create(PIXI.Container.prototype), GD.GamePadGuide.prototype.init = function() { this.removeChild(), this.addChild(this.guide), this.setInteractive(!0) } , GD.GamePadGuide.prototype.setInteractive = function(t) { this.guide.interactive = t } , GD.GamePadGuide.prototype.removeChild = function() { this.removeChildren() } } , function(t, e) { GD.LoadingView = function() { PIXI.Container.call(this), this.darkBg = GD.getDarkBg(), this.img = this.setSpriteTexture(null, "texture", "loadingCircle"), this.img.scale.set(.8), this.img.anchor.set(.5), this.img.x = GD.width / 2, this.img.y = GD.height / 2, this.addChild(this.img) } , GD.LoadingView.constructor = GD.LoadingView, GD.LoadingView.prototype = Object.create(PIXI.Container.prototype), GD.LoadingView.prototype.init = function() { this.removeAll(), this.addChild(this.darkBg), this.addChild(this.img) } , GD.LoadingView.prototype.removeAll = function() { this.removeChildren() } , GD.LoadingView.prototype.updateTransform = function() { PIXI.Container.prototype.updateTransform.call(this), this.img.rotation += .1 } , GD.LoadingView.getInstance = function() { return GD.loading || (GD.loading = new GD.LoadingView), GD.loading } } , function(t, e) { GD.Progress = function() { this.bg = null, this.logo = null, this.logoTxt = null, // this.tween = null, PIXI.Container.call(this) } , GD.Progress.constructor = GD.Progress, GD.Progress.prototype = Object.create(PIXI.Container.prototype), GD.Progress.prototype.show = function() { if (this.bg || (this.bg = new PIXI.Graphics, this.bg.beginFill(16777215, 1), this.bg.drawRect(0, 0, GD.width, GD.height), this.bg.endFill()), this.addChild(this.bg), !this.logo) { var logo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABoCAYAAAAU9xXbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEI5ODVERjI3RjM2MTFFODlFMTM5NTUyODcxNUY3OUMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEI5ODVERjE3RjM2MTFFODlFMTM5NTUyODcxNUY3OUMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjZBMDcxRjk3RjM1MTFFODhERjFCNTExNzU3RjZCQTgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjZBMDcxRkE3RjM1MTFFODhERjFCNTExNzU3RjZCQTgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zjCZwAAAUNElEQVR42uxd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" this.logo = new PIXI.Sprite.fromImage(logo) } this.logo.x = GD.width / 2, this.logo.y = GD.height / 2, this.logo.anchor.set(.5), this.logo.scale.set(.1), this.logo.rotation = 20, this.addChild(this.logo), this.tween ? this.tween.kill() : this.tween = new TimelineLite, this.tween.to(this.logo, 1, { rotation: 0, ease: Sine.easeOut }), this.tween.call(this.showLocoText.bind(this)), TweenMax.to(this.logo.scale, 1, { x: 1, y: 1 }) } , GD.Progress.prototype.showLocoText = function() { if (!this.logoTxt) { var logoTxt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO8AAABgCAYAAAD1liW0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjkxRENCNTdEN0YzMjExRTg4NTI4QkZBMjUyNjVCNTFBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjkxRENCNTdFN0YzMjExRTg4NTI4QkZBMjUyNjVCNTFBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTFEQ0I1N0I3RjMyMTFFODg1MjhCRkEyNTI2NUI1MUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTFEQ0I1N0M3RjMyMTFFODg1MjhCRkEyNTI2NUI1MUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6edgZnAAAYG0lEQVR42uxd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" this.logoTxt = new PIXI.Sprite.fromImage(logoTxt), this.logoTxt.anchor.set(.5), this.logoTxt.scale.set(1), this.logoTxt.y = GD.height / 2 } this.logoTxt.x = GD.width / 2 + 65, this.logoTxt.alpha = 0, this.addChild(this.logoTxt), TweenMax.to(this.logo, .4, { x: GD.width / 2 - 110, ease: Sine.easeOut }), TweenMax.to(this.logoTxt, .4, { x: GD.width / 2 + 90, alpha: 1, ease: Sine.easeOut }), TweenMax.delayedCall(2, this.replay.bind(this)) } , GD.Progress.prototype.replay = function() { this.hide(), this.show() } , GD.Progress.prototype.hide = function() { TweenMax.killAll(), // this.tween.clear(), this.removeChildren() } , GD.Progress.prototype.updateTransform = function() { PIXI.Container.prototype.updateTransform.call(this) } } , function(t, e) { GD.Tutorial = function() { PIXI.Container.call(this), this.type = 1, this.tutorialImg = null, this.nowPage = 0, this.totalPage = 0, this.contents = [], this.container = new PIXI.Container, this.img = this.setSpriteTexture(this.img, "texture", "temp"), this.prevBtn = this.setSpriteTexture(this.prevBtn, "texture", "temp"), this.prevBtn.anchor.set(.5), this.prevBtn.x = 30, this.prevBtn.y = GD.height / 2, this.setTouchStartAction(this.prevBtn, function() { this.nowPage > 0 && this.initPage(this.nowPage - 1) }, this), this.addChild(this.prevBtn), this.nextBtn = this.setSpriteTexture(this.nextBtn, "texture", "temp"), this.nextBtn.anchor.set(.5), this.nextBtn.x = GD.width - 30, this.nextBtn.y = GD.height / 2, this.setTouchStartAction(this.nextBtn, function() { this.nowPage + 1 < this.totalPage && this.initPage(this.nowPage + 1) }, this), this.addChild(this.nextBtn), this.closeBtn = this.setSpriteTexture(this.closeBtn, "texture", "temp"), this.closeBtn.anchor.set(.5), this.closeBtn.x = GD.width / 2, this.closeBtn.y = GD.height - 105, this.setTouchStartAction(this.closeBtn), this.setTouchEnd(this.closeBtn, function() { this.emit("TUTORIAL_CLOSE_EVENT") }, this), this.addChild(this.closeBtn) } , GD.Tutorial.constructor = GD.Tutorial, GD.Tutorial.prototype = Object.create(PIXI.Container.prototype), GD.Tutorial.prototype.init = function(t, e) { this.removeChild(), this.type = 1, this.tutorialImg = e, this.nowPage = 0, this.totalPage = t, this.addChild(this.img), this.addChild(this.closeBtn), this.initPageButton(), this.setTutorialImg(), this.setInteractive(!0), this.setButtons() } , GD.Tutorial.prototype.initContent = function(t, e) { this.removeChild(), this.type = 2, this.nowPage = 0, this.totalPage = t, this.contents = e, this.addChild(this.container), this.addChild(this.closeBtn), this.container.addChild(this.contents[0]), this.setContent(), this.initPageButton(), this.setInteractive(!0), this.setButtons() } , GD.Tutorial.prototype.initPage = function(t, e) { this.nowPage = t, e && (this.closeBtn = this.setSpriteTexture(this.closeBtn, "texture", e)), 1 == this.type ? this.setTutorialImg() : this.setContent(), this.setButtons() } , GD.Tutorial.prototype.initPageButton = function() { this.totalPage > 0 && (this.prevBtn = this.setSpriteTexture(this.prevBtn, "texture", "help_prev"), this.nextBtn = this.setSpriteTexture(this.nextBtn, "texture", "help_next"), this.prevBtn.scale.set(1), this.nextBtn.scale.set(1), this.addChild(this.prevBtn), this.addChild(this.nextBtn)) } , GD.Tutorial.prototype.setPrevButtonPos = function(t, e) { this.prevBtn.x = t, this.prevBtn.y = e } , GD.Tutorial.prototype.setNextButtonPos = function(t, e) { this.nextBtn.x = t, this.nextBtn.y = e } , GD.Tutorial.prototype.setCloseButtonPos = function(t, e) { this.closeBtn.x = t, this.closeBtn.y = e } , GD.Tutorial.prototype.setTutorialImg = function() { this.img = this.setSpriteTexture(this.img, "texture", this.tutorialImg + (this.nowPage + 1)) } , GD.Tutorial.prototype.setContent = function() { this.container.removeChildren(); var t = this.contents[this.nowPage]; t.init && t.init(), this.container.addChild(t) } , GD.Tutorial.prototype.setButtons = function() { this.totalPage > 0 && (0 == this.nowPage ? (this.prevBtn.alpha = .3, this.nextBtn.alpha = 1, this.prevBtn.interactive = !1, this.nextBtn.interactive = !0) : this.nowPage + 1 == this.totalPage ? (this.prevBtn.alpha = 1, this.nextBtn.alpha = .3, this.prevBtn.interactive = !0, this.nextBtn.interactive = !1) : (this.prevBtn.alpha = 1, this.nextBtn.alpha = 1, this.prevBtn.interactive = !0, this.nextBtn.interactive = !0)) } , GD.Tutorial.prototype.setInteractive = function(t) { this.prevBtn.interactive = t, this.nextBtn.interactive = t, this.closeBtn.interactive = t } , GD.Tutorial.prototype.removeChild = function() { this.setInteractive(!1), this.container.removeChildren(), this.removeChildren() } , GD.Tutorial.getInstance = function() { return GD.tutorial || (GD.tutorial = new GD.Tutorial), GD.tutorial } } ]); module.exports.GD = GD; var {pixelRatio, windowWidth, windowHeight} = wx.getSystemInfoSync() var gWidth = windowWidth * pixelRatio var gHeight = windowHeight * pixelRatio var gc = { loader:null, stats:null, width:gWidth, height:gHeight, stage:null, intro:null, tutorial:null, game:null }; gc.MovieClip = function(fileName, start, end, speed, repeat) { PIXI.extras.AnimatedSprite.call(this, this.getRepeatTexture(fileName, start, end, repeat)); this.animationSpeed = speed; this.play(); }; gc.MovieClip.constructor = gc.MovieClip; gc.MovieClip.prototype = Object.create(PIXI.extras.AnimatedSprite.prototype); gc.MovieClip.prototype.setAnimation = function(fileName, start, end, speed, repeat){ this.textures = this.getRepeatTexture(fileName, start, end, repeat); this.animationSpeed = speed; }; gc.MovieClip.prototype.getRepeatTexture = function(fileName, start, end, repeat){ var textures = []; var i = repeat || 1; while(i--){ textures = textures.concat(this.getTexture(fileName, start, end)); } return textures; }; gc.MovieClip.prototype.getTexture = function(fileName, start, end){ start = start || 1; var textures = [], i = end - start + 1, j = start; while(i--) { if(j < 10){textures.push(PIXI.Texture.fromFrame(fileName + '0' + j + '.png'));} else {textures.push(PIXI.Texture.fromFrame(fileName + j + '.png'));} j++; } return textures; }; gc.MovieClip.prototype.updateTransform = function() { PIXI.extras.AnimatedSprite.prototype.updateTransform.call(this); }; gc.NumberText = function(fileName, align, space, iconName, iconAlign, strLen) { this.CENTER = 'center'; this.RIGHT = 'right'; this.value = 0; this.isChange = false; this.list = []; this.tmpList = []; this.fileName = fileName; this.align = align; this.space = space; this.iconName = iconName; this.iconAlign = iconAlign; this.strLen = strLen; this.icon = null; PIXI.Container.call(this); this.container = new PIXI.Container(); this.addChild(this.container); this.setValue(0); }; gc.NumberText.constructor = gc.NumberText; gc.NumberText.prototype = Object.create(PIXI.Container.prototype); gc.NumberText.prototype.setValue = function(value){ this.value = value; this.isChange = true; }; gc.NumberText.prototype.getNumberSprite = function(num){ var sprite, name = this.fileName + num + '.png'; if(this.tmpList.length > 0){ sprite = this.tmpList.shift(); sprite.texture = PIXI.Texture.fromFrame(name); }else{ sprite = PIXI.Sprite.fromFrame(name); } return sprite; }; gc.NumberText.prototype.removeAll = function(){ var txt, i = this.list.length; while(i--){ txt = this.list.shift(); this.tmpList.push(txt); } if(this.container) this.container.removeChildren(); }; gc.NumberText.prototype.updateTransform = function() { if(this.isChange){ this.removeAll(); var numStr = this.value.toString(); if(this.strLen) numStr = Util.zeroStr(this.value, this.strLen); var index = 0, txt, space = 0, i = numStr.length; if(this.iconName){ if(!this.icon) this.icon = PIXI.Sprite.fromFrame(this.iconName + '.png'); this.container.addChild(this.icon); if(this.iconAlign == 'left'){ space += this.icon.width + this.space; } } while(i--){ txt = this.getNumberSprite(parseInt(numStr.substr(index, 1))+1); txt.x = space; space += txt.width + this.space; index++; this.container.addChild(txt); this.list[i] = txt; } if(this.iconAlign == 'right'){ this.icon.x = space; space += this.icon.width + this.space; } if(this.align == this.CENTER){ this.container.x = -space/2; }else if(this.align == this.RIGHT){ this.container.x = -space; } this.isChange = false; } PIXI.Container.prototype.updateTransform.call(this); }; gc.GameScene = function(){ PIXI.Container.call(this); this.lastEventTime = undefined; //Time the click occurred //120 this.cookieMatrixPos = [[75,550], [170,550], [265,550], [360,550], [455,550], [550,550], [645,550], [75,645], [170,645], [265,645], [360,645], [455,645], [550,645], [645,645], [75,740], [170,740], [265,740], [360,740], [455,740], [550,740], [645,740], [75,835], [170,835], [265,835], [360,835], [455,835], [550,835], [645,835], [75,935], [170,935], [265,935], [360,935], [455,935], [550,935], [645,935], [75,1030], [170,1030], [265,1030], [360,1030], [455,1030], [550,1030], [645,1030], [75,1125], [170,1125], [265,1125], [360,1125], [455,1125], [550,1125], [645,1125]]; this.cookieNumMatrix = []; this.cookieMatrix = []; this.itemEffectMc = []; this.bombAnerge = 0; this.bombfull = 50; this.fixArr1 = []; this.fixArr2 = []; this.readytxt = true; this.starttxt = false; this.playGame = false; this.addPoint = 0; this.itemIndex = undefined; this.itemIndex1 = undefined; this.itemIndex2 = undefined; this.itemIndexes = []; this.canClick = false; this.hint = []; this.giveHint = false; this.bundle = []; this.prestageMode = 'normal'; this.stageMode = 'normal'; this.chance = 60; this.useItem = false; this.remembers = [];//Store cookies like items this.combo = 0; this.restComboTime = 0; this.lastTime = undefined; this.totalCombo = 0; //Combo 3 times or more .. Medal 1, Combo 100 times or more .. Medal 4 this.champagneCombo = 0; //Champagne 10 times .. Medals 2 this.bombCombo = 0; //Bomb item 10 times .. Medals 3 this.getMedal1 = false; this.getMedal2 = false; this.getMedal3 = false; this.getMedal4 = false; this.callfevercnt = 0; this.lastEnd = false; //To prevent timeup if last fang this.bumpscale = 0.01; this.pauseMode = false; this.pauseTime = 0; this.exceptSound = false; //During mode change = To inform the fiver sound only once when using the item }; gc.GameScene.constructor = gc.GameScene; gc.GameScene.prototype = Object.create(PIXI.Container.prototype); gc.GameScene.prototype.init = function() { this.readytxt = true; this.starttxt = false; this.declareObjects(); this.setBG(); this.readyGame(); this.fever = setInterval(this.setFever.bind(this), 33.333); this.test = true; this.explode(); this.stageMode = 'fever'; this.actFever(); //Make a one-time call to resolve the bug in the first peer //Return to default mode this.stageMode = 'normal'; this.normalMode(); }; //Create Object gc.GameScene.prototype.declareObjects = function () { this.bomb = new PIXI.Sprite.fromFrame('bomb_0001.png'); this.bombgauge = new PIXI.Sprite.fromFrame('bomb_gauge_bar_0001.png'); this.chanceImg= new gc.NumberText('score_num_', 'center', -4); this.readyBG = new PIXI.Sprite(GD.loader.resources['ready_bg'].texture); this.readyImg = new PIXI.Sprite.fromFrame('ready_0001.png'); this.startImg = new PIXI.Sprite.fromFrame('start_0001.png'); this.gameoverImg = new PIXI.Sprite.fromFrame('gameover.png'); for(var i=0; i 6){ this.scanIndex = i; this.useItem = true; if (this.cookieNumMatrix[i] == 10) {this.actBomb(i);} else if (this.cookieNumMatrix[i] == 9) {this.actEqual(i);} else if (this.cookieNumMatrix[i] == 8) { this.crossIndex = i; this.actCross(i); } break; } else {count++;} } if(count == this.cookieNumMatrix.length) { this.itemOver = true; this.checkMatching3(); } }; //게임오버=========================================================================================================== gc.GameScene.prototype.setGameOver = function(){ this.canClick = false; this.playGame = false; this.checkLeftItem(); if(this.lastEnd) { this.timeup.anchor.set(0.5); this.timeup.position.x = this.gameBG.width / 2; this.timeup.position.y = GD.height/2+50; this.timeup.scale.x = 0; this.timeup.scale.y = 0; this.addChild(this.timeup); GD.soundPlay('sound_momotime'); this.canClick = false; this.removeChild(this.hintMc1); this.removeChild(this.hintMc2); if (this.real1 != undefined) {this.real1.alpha = 1;} if (this.real2 != undefined) {this.real2.alpha = 1;} this.reachmax = false; this.incdgree = 0.15; this.stageMode = 'momotime'; this.playGame = false; this.otherMode(); this.actfeverEffect(); this.momotime = setInterval(this.showMomoTime.bind(this), 33.333); } else {//아이템이 없으면 모모타임 이미지, 소리 없이 끝내기 this.lastPang(); } }; gc.GameScene.prototype.checkLeftItem = function () { this.lastEnd = false; for(var i=0; i7) { this.lastEnd = true; } } }; gc.GameScene.prototype.showMomoTime = function () { if(this.reachmax && this.timeup.scale.x <= 1) { this.incdgree = 0; setTimeout(this.delay.bind(this), 1000); clearInterval(this.momotime); } if(this.timeup.scale.x >= 1.3){ this.incdgree *= -1; this.reachmax = true; } this.timeup.scale.x += this.incdgree; this.timeup.scale.y += this.incdgree; }; gc.GameScene.prototype.delay = function () { this.dropmomotime = setInterval(this.dropMomoTime.bind(this),33.333); }; gc.GameScene.prototype.dropMomoTime = function () { this.timeup.scale.y = 1.2; this.timeup.position.y += 70; if(this.timeup.position.y >= gc.height+this.timeup.height){ this.removeChild(this.timeup); //모모타임이 되고 나서 제일 첫 lastpang this.lastPang(); clearInterval(this.dropmomotime); } }; gc.GameScene.prototype.setScore = function(){ this.scoreTxt.x = 355; this.scoreTxt.y = 45; this.scoreTxt.scale.x = 0.8; this.scoreTxt.scale.y = 0.8; this.score = 0; this.scoreTxt.setValue(this.score); this.shadowContainer.addChild(this.chanceImg); this.shadowContainer.addChild(this.scoreTxt); }; gc.GameScene.prototype.setBomb = function() { this.bomb.anchor.set(0.5); this.bomb.x = 69; this.bomb.y = 211; //this.bomb.alpha = 0; this.bombgauge.anchor.x = 0.5; this.bombgauge.anchor.y = 1; this.bombgauge.position.x = 69; this.bombgauge.position.y = 448; this.addChild(this.bombgauge); this.addChild(this.bomb); }; gc.GameScene.prototype.setCookies = function() { for(var i=0; i= 5) { if (!this.giveHint && this.playGame) this.showHint(); } }else{ if(this.pauseTime == 0) this.pauseTime = now; } }; gc.GameScene.prototype.findHint = function () { var temp = undefined; var index = undefined; var check1 = undefined; var check2 = undefined; this.hint = []; //오른쪽 맨 끝 열은 체크안해도 됨 for(var i=0; i<6; i++){ for(var j=0; j<7; j++){ index = i + j*7; temp = this.cookieNumMatrix[index]; this.cookieNumMatrix[index] = this.cookieNumMatrix[index+1]; this.cookieNumMatrix[index+1] = temp; check1 = this.checkMatching1(); this.cookieNumMatrix[index+1] = this.cookieNumMatrix[index]; this.cookieNumMatrix[index] = temp; if(check1) this.hint.push([index, index+1]); } } //맨 아래 행은 체크 안해도 됨 for(var i=0; i<7; i++){ for(var j=0; j<6; j++){ index = i+ j*7; temp = this.cookieNumMatrix[index]; this.cookieNumMatrix[index] = this.cookieNumMatrix[index+7]; this.cookieNumMatrix[index+7] = temp; check2 = this.checkMatching1(); this.cookieNumMatrix[index+7] = this.cookieNumMatrix[index]; this.cookieNumMatrix[index] = temp; if(check2) this.hint.push([index, index+7]); } } //맞춰지는 블럭 없을 때 다시 그리기 if(this.hint.length == 0){ for(var i=0; i6) { this.scanIndex = index; if(this.chance>0) { this.chance--; this.rangeChance(); } this.useItem = true; this.lastEventTime = Date.now(); this.giveHint = false; this.removeChild(this.hintMc1); this.removeChild(this.hintMc2); if(this.real1 != undefined) this.real1.alpha = 1; if(this.real2 != undefined) this.real2.alpha = 1; if (this.cookieNumMatrix[index] == 10) { if (this.canClick) this.actBomb(index); } else if (this.cookieNumMatrix[index] == 9) { if (this.canClick) this.actEqual(index); } else if (this.cookieNumMatrix[index] == 8) { this.crossIndex = index; if (this.canClick) this.actCross(index); } this.combo++; this.totalCombo++; if(this.combo>=15) {this.stageMode = 'superfever';} else if(this.combo>=5){ this.stageMode = 'fever'; this.callfevercnt = 0; } else{this.stageMode = 'normal';} this.lastTime = Date.now(); this.restComboTime = 3; this.canClick = false; }else this.useItem = false; }; //스와핑================================================================================== gc.GameScene.prototype.swap = function(clickIndex){ var gapX = this.currentX - this.previousX; var gapY = this.currentY - this.previousY; //힌트 movieclip삭제 this.removeChild(this.hintMc1); this.removeChild(this.hintMc2); //힌트애니메이션동안 안보였던 원래 텍스쳐 보이게 하기 if(this.real1 != undefined) this.real1.alpha = 1; if(this.real2 != undefined) this.real2.alpha = 1; //왼쪽 쿠키랑 바꾸기 if((gapX<0) && (Math.abs(gapX)>Math.abs(gapY))){ if(clickIndex%7 != 0){ this.lastEventTime = Date.now(); this.canClick = false; this.swapLeft(clickIndex); return; } } //오른쪽 if((gapX>0) && (Math.abs(gapX)>Math.abs(gapY))){ if((clickIndex%7) != 6 || (clickIndex==0)){ this.lastEventTime = Date.now(); this.canClick = false; this.swapRight(clickIndex); return; } } //위쪽 if((gapY<0) && (Math.abs(gapX) 6){ this.lastEventTime = Date.now(); this.canClick = false; this.swapUp(clickIndex); return; } } //아래쪽 if((gapY>0) && (Math.abs(gapX)=15) {this.stageMode = 'superfever';} else if(this.combo>=5){ this.stageMode = 'fever'; this.callfevercnt = 0; } else{this.stageMode = 'normal';} this.lastTime = Date.now(); this.restComboTime = 3; this.rangeChance(); //스와핑 효과 보이기 this.cookieMatrix[selectIndex].texture = tempTexture2; this.cookieMatrix[selectIndex - 1].texture = tempTexture1; TweenMax.from(this.cookieMatrix[selectIndex], 0.1, {x: this.cookieMatrixPos[selectIndex - 1][0], onComplete:(function () { for(var i=0; i=15) {this.stageMode = 'superfever';} else if(this.combo>=5){ this.stageMode = 'fever'; this.callfevercnt = 0; } else{this.stageMode = 'normal';} this.lastTime = Date.now(); this.restComboTime = 3; this.rangeChance(); this.cookieMatrix[selectIndex].texture = tempTexture2; this.cookieMatrix[selectIndex + 1].texture = tempTexture1; TweenMax.from(this.cookieMatrix[selectIndex], 0.1, {x: this.cookieMatrixPos[selectIndex + 1][0], onComplete:(function () { for(var i=0; i=15) {this.stageMode = 'superfever';} else if(this.combo>=5){ this.stageMode = 'fever'; this.callfevercnt = 0; } else{this.stageMode = 'normal';} this.lastTime = Date.now(); this.restComboTime = 3; this.rangeChance(); this.cookieMatrix[selectIndex].texture = tempTexture2; this.cookieMatrix[selectIndex-7].texture = tempTexture1; TweenMax.from(this.cookieMatrix[selectIndex], 0.1, {y:this.cookieMatrixPos[selectIndex-7][1], onComplete:(function () { for(var i=0; i=15) {this.stageMode = 'superfever';} else if(this.combo>=5){ this.stageMode = 'fever'; this.callfevercnt = 0; } else{this.stageMode = 'normal';} this.lastTime = Date.now(); this.restComboTime = 3; this.rangeChance(); this.cookieMatrix[selectIndex].texture = tempTexture2; this.cookieMatrix[selectIndex + 7].texture = tempTexture1; TweenMax.from(this.cookieMatrix[selectIndex], 0.1, {y: this.cookieMatrixPos[selectIndex + 7][1], onComplete:(function () { for(var i=0; i= this.bombfull) { makeBomb = true; this.setBombItem(); this.bombAnerge -= this.bombfull; } var explodeMc = new gc.MovieClip('clear_effect_00', 1, 9, 0.4); explodeMc.anchor.set(0.5); explodeMc.position.x = this.cookieMatrixPos[i][0]; explodeMc.position.y = this.cookieMatrixPos[i][1]; explodeMc.alpha = 1; explodeMc.loop = false; if(!explodeEqual) {this.explodeContainer.addChild(explodeMc); }else{this.explodeContainer2.addChild(explodeMc);} } } this.scanIndex = undefined; //mask 폭탄 게이지 보이는 화면 var gap = this.bombgauge.height/this.bombfull; if(this.thing == undefined) { this.thing = new PIXI.Graphics(); this.thing.position.x = 0; this.thing.position.y = 0; this.bombgauge.addChild(this.thing); this.bombgauge.mask = this.thing; this.thing.lineStyle(0); this.thing.clear(); this.thing.beginFill(0xffffff, 1); this.maskRect = this.thing.drawRect(-14, -this.bombgauge.height+gap*(this.bombfull-this.bombAnerge), this.bombgauge.width, this.bombgauge.height, 10); this.thing.endFill(); } //점수 부여 for(var i=0; i=5){ this.setEqualItem('origin'); } else if(this.fixArr1.length >=4){ this.setCrossItem('origin'); } this.cookieMatrix[this.itemIndex1].alpha = 1; this.cookieMatrix[this.itemIndex1].flag = 1; this.itemIndex1 = undefined; } if(this.itemIndex2 != undefined){ if(this.fixArr2.length >=5){ this.setEqualItem('other'); } else if(this.fixArr2.length >=4){ this.setCrossItem('other'); } this.cookieMatrix[this.itemIndex2].alpha = 1; this.cookieMatrix[this.itemIndex2].flag = 1; this.itemIndex2 = undefined; } }; gc.GameScene.prototype.setBombItem = function(){ this.randBombIndex = parseInt(Math.random()*14); if(this.cookieMatrix[this.randBombIndex].flag != 0 && this.cookieNumMatrix[this.randBombIndex] <7) { this.cookieMatrix[this.randBombIndex].texture = PIXI.Texture.fromFrame('bomb_item_0001.png'); this.cookieNumMatrix[this.randBombIndex] = 10; this.matchItemSize(this.randBombIndex); }else this.setBombItem(); }; gc.GameScene.prototype.setEqualItem = function(thing){ var itemName = 'cookie2_000'; var fullItemName; switch (thing) { case 'origin': this.cookieMatrix[this.itemIndex1].remember = this.cookieNumMatrix[this.itemIndex1]; fullItemName = itemName+this.cookieMatrix[this.itemIndex1].remember+'.png'; this.cookieMatrix[this.itemIndex1].texture = PIXI.Texture.fromFrame(fullItemName); this.cookieNumMatrix[this.itemIndex1] = 9; this.matchItemSize(this.itemIndex1); break; case 'other': this.cookieMatrix[this.itemIndex2].remember = this.cookieNumMatrix[this.itemIndex2]; fullItemName = itemName+this.cookieMatrix[this.itemIndex2].remember+'.png'; this.cookieMatrix[this.itemIndex2].texture = PIXI.Texture.fromFrame(fullItemName); this.cookieNumMatrix[this.itemIndex2] = 9; this.matchItemSize(this.itemIndex2); break; } }; gc.GameScene.prototype.setCrossItem = function(thing){ switch (thing) { case 'origin': this.cookieMatrix[this.itemIndex1].texture = PIXI.Texture.fromFrame('eraser_0001.png'); this.cookieNumMatrix[this.itemIndex1] = 8; this.matchItemSize(this.itemIndex1); break; case 'other': this.cookieMatrix[this.itemIndex2].texture = PIXI.Texture.fromFrame('eraser_0001.png'); this.cookieNumMatrix[this.itemIndex2] = 8; this.matchItemSize(this.itemIndex2); break; } }; gc.GameScene.prototype.matchItemSize = function (index) { var min = 2; var max = 0; for(var i=0; i max){max = this.cookieMatrix[i].scale.x} } } if(min != 0.85) { this.cookieMatrix[index].scale.x = min; this.cookieMatrix[index].scale.y = min; }else { this.cookieMatrix[index].scale.x = max; this.cookieMatrix[index].scale.y = max; } this.getItemIndex(); }; gc.GameScene.prototype.bump = function () { if(this.itemIndexes.length > 0) { if(this.cookieMatrix[this.itemIndexes[0]].scale.x >= 1 || this.cookieMatrix[this.itemIndexes[0]].scale.x <= 0.85){ if(this.cookieMatrix[this.itemIndexes[0]].scale.x > 1) this.cookieMatrix[this.itemIndexes[0]].scale.x = 1; if(this.cookieMatrix[this.itemIndexes[0]].scale.x < 0.85) this.cookieMatrix[this.itemIndexes[0]].scale.x = 0.85; this.bumpscale *= -1; } this.cookieMatrix[this.itemIndexes[0]].scale.x += this.bumpscale; this.cookieMatrix[this.itemIndexes[0]].scale.y += this.bumpscale; } for(var i=0; i6){ this.itemIndexes.push(i); } } }; gc.GameScene.prototype.actBomb = function(actIndex){ this.bombCombo++; //본인 this.cookieMatrix[actIndex].flag = 0; this.cookieMatrix[actIndex].remember = 0; this.cookieMatrix[actIndex].alpha = 0; //첫번째 열이 아님 if(actIndex%7 != 0) { //왼쪽 위 if(actIndex-7-1 >= 0) { //대상이 아이템 블럭이 아님 if(this.cookieNumMatrix[actIndex - 7 - 1] < 7) { this.cookieMatrix[actIndex - 7 - 1].flag = 0; this.cookieMatrix[actIndex - 7 - 1].alpha = 0; this.cookieMatrix[actIndex - 7 - 1].remember = 0; } } //왼쪽 아래 if(actIndex+7-1 <= 48) { //대상이 아이템 블럭이 아님 if(this.cookieNumMatrix[actIndex + 7 - 1] < 7) { this.cookieMatrix[actIndex + 7 - 1].flag = 0; this.cookieMatrix[actIndex + 7 - 1].alpha = 0; this.cookieMatrix[actIndex + 7 - 1].remember = 0; } } //왼쪽 if(actIndex-1 >= 0) { //대상이 아이템 블럭이 아님 if(this.cookieNumMatrix[actIndex - 1] < 7) { this.cookieMatrix[actIndex - 1].flag = 0; this.cookieMatrix[actIndex - 1].alpha = 0; this.cookieMatrix[actIndex - 1].remember = 0; } } } //위 if(actIndex-7 >= 0){ if(this.cookieNumMatrix[actIndex - 7] < 7) { this.cookieMatrix[actIndex - 7].flag = 0; this.cookieMatrix[actIndex - 7].alpha = 0; this.cookieMatrix[actIndex - 7].remember = 0; } } //아래 if(actIndex+7 <= 48){ if(this.cookieNumMatrix[actIndex + 7] < 7) { this.cookieMatrix[actIndex + 7].flag = 0; this.cookieMatrix[actIndex + 7].alpha = 0; this.cookieMatrix[actIndex + 7].remember = 0; } } //오른쪽 끝 열이 아님 if(actIndex%7 != 6) { //오른쪽 위 if (actIndex - 7 + 1 >= 0) { //대상이 아이템 블럭이 아님 if (this.cookieNumMatrix[actIndex - 7 + 1] < 7) { this.cookieMatrix[actIndex - 7 + 1].flag = 0; this.cookieMatrix[actIndex - 7 + 1].alpha = 0; this.cookieMatrix[actIndex - 7 + 1].remember = 0; } } //오른쪽 아래 if (actIndex + 7 + 1 <= 48) { //대상이 아이템 블럭이 아님 if (this.cookieNumMatrix[actIndex + 7 + 1] < 7) { this.cookieMatrix[actIndex + 7 + 1].flag = 0; this.cookieMatrix[actIndex + 7 + 1].alpha = 0; this.cookieMatrix[actIndex + 7 + 1].remember = 0; } } //오른쪽 if (actIndex + 1 <= 48) { //대상이 아이템 블럭이 아님 if (this.cookieNumMatrix[actIndex + 1] < 7) { this.cookieMatrix[actIndex + 1].flag = 0; this.cookieMatrix[actIndex + 1].alpha = 0; this.cookieMatrix[actIndex + 1].remember = 0; } } } //아이템 사용시 강조 이펙트 제거를 위함 this.stopItemAccentEffect(); this.playItemAccentEffect(); this.explode(); }; gc.GameScene.prototype.explodeEqual = function () { var explodeMc = new gc.MovieClip('clear_effect_00', 1, 9, 0.4); explodeMc.onComplete = function() {gc.game.explodeContainer2.removeChild(explodeMc);}; explodeMc.anchor.set(0.5); explodeMc.position.x = this.cookieMatrixPos[this.remembers[0]][0]; explodeMc.position.y = this.cookieMatrixPos[this.remembers[0]][1]; explodeMc.alpha = 1; explodeMc.scale.x = 1.3; explodeMc.scale.y = 1.3; explodeMc.loop = false; this.explodeContainer2.addChild(explodeMc); }; gc.GameScene.prototype.rise = function () { var fakeCookie = new PIXI.Sprite.fromFrame('cookie_1_0001.png'); fakeCookie.texture = this.cookieMatrix[this.remembers[0]].texture; fakeCookie.anchor.set(0.5); fakeCookie.position.x = this.cookieMatrixPos[this.remembers[0]][0]; fakeCookie.position.y = this.cookieMatrixPos[this.remembers[0]][1]; this.explodeContainer2.addChild(fakeCookie); this.manageSound(); this.cookieMatrix[this.remembers[0]].alpha = 0; this.cookieMatrix[this.remembers[0]].flag = 0; this.cookieMatrix[this.remembers[0]].remember = 0; TweenMax.to(fakeCookie.scale, 0.1,{x:1.15, y:1.15, onComplete:(function () { this.explodeEqual(); this.remembers.splice(0, 1); if(this.remembers.length>0) setTimeout(this.rise.bind(this),100); else{ this.explodeContainer2.removeChildren(); this.explode(); this.shadow.alpha = 0; } }).bind(this)}); }; gc.GameScene.prototype.actEqual = function(actIndex){ this.remembers = []; this.tempRemembers = []; // 쿠키가 커진 후 크기 돌려놓기 위함 //본인 this.cookieMatrix[actIndex].flag = 0; this.remembers.push(actIndex); for (var i = 0; i < this.cookieNumMatrix.length; i++) { if (this.cookieNumMatrix[i] == this.cookieMatrix[actIndex].remember) { this.cookieMatrix[i].flag = 0; this.remembers.push(i); this.tempRemembers.push(i); } } this.shadow.alpha = 1; //아이템 사용시 강조 이펙트 제거를 위함 this.stopItemAccentEffect(); this.playItemAccentEffect(); //순서대로 커지게 만들기 this.rise(); }; gc.GameScene.prototype.actCross = function(actIndex){ this.champagneCombo++; //본인 this.cookieMatrix[actIndex].flag = 0; this.cookieMatrix[actIndex].remember = 0; this.cookieMatrix[actIndex].alpha = 0; var colIndex = actIndex%7; //몇번째 열인지 체크 for(var i=0; i<7; i++){ if(this.cookieMatrix[i * 7 + colIndex].flag != 0) { if (this.cookieNumMatrix[i * 7 + colIndex] < 7) { this.cookieMatrix[i * 7 + colIndex].flag = 0; this.cookieMatrix[i * 7 + colIndex].alpha = 0; this.cookieMatrix[i * 7 + colIndex].remember = 0; } } } var rowIndex = Math.floor(actIndex/7); //몇번째 열인지 체크 for(var i=0; i<7; i++){ if(this.cookieMatrix[rowIndex * 7 + i].flag != 0) { if (this.cookieNumMatrix[rowIndex * 7 + i] < 7) { this.cookieMatrix[rowIndex * 7 + i].flag = 0; this.cookieMatrix[rowIndex * 7 + i].alpha = 0; this.cookieMatrix[rowIndex * 7 + i].remember = 0; } } } //아이템 사용시 강조 이펙트 제거를 위함 this.stopItemAccentEffect(); this.playItemAccentEffect(); this.explode(); }; //쿠키 메우기================================================================== gc.GameScene.prototype.dropCookie = function(){ var index; var lineCount = 0; //한 열의 빈 블럭 수 카운트 var dropCount = 0; //한 열의 내려온 블럭 수 카운트(완전히 내려온 후 카운트) var fullCount = 0; //떨어질 블럭 전체 수 카운트(빈 공간 + 새로 떨어질 블럭 수) var dropIndexes = []; //떨어질 블럭 인덱스 for(var i=0; i<7; i++){ lineCount = 0; //기존 블럭 내리기 for(var j=6; j>=0; j--){ index = j*7+i; if(this.cookieMatrix[index].flag == 0){ lineCount++; this.cookieMatrix[index].alpha = 1; this.cookieMatrix[index].flag = 1; }else{ if(lineCount > 0) { fullCount++; dropIndexes.push(index + lineCount * 7); //내려올 블럭: (index + lineCount * 7), 복사해올 블럭: (index) this.cookieMatrix[index + lineCount * 7].texture = this.cookieMatrix[index].texture; this.cookieMatrix[index + lineCount * 7].remember = this.cookieMatrix[index].remember; this.cookieMatrix[index].remember = 0; this.cookieNumMatrix[index + lineCount * 7] = this.cookieNumMatrix[index]; this.cookieNumMatrix[index] = 0; //아이템이 내려올 때 크기 복사 if(this.cookieNumMatrix[index + lineCount * 7] > 7) this.matchItemSize(index + lineCount * 7); else{ this.cookieMatrix[index + lineCount * 7].scale.x = 0.85; this.cookieMatrix[index + lineCount * 7].scale.y = 0.85; } TweenMax.from(this.cookieMatrix[index + lineCount * 7], 0.3, { y: this.cookieMatrixPos[index][1], onComplete: (function () { dropCount++; if(dropCount == fullCount && !this.canClick) { //이전 스테이지모드 저장 if(this.stageMode != 'momotime') this.prestageMode = this.stageMode; this.checkAgain(); } else { this.lastEventTime = Date.now(); } }.bind(this)) }); } } } //새로운 쿠키 내리기 for(var j= lineCount-1; j>=0; j--){ index = j*7+i; fullCount++; this.cookieNumMatrix[index] = parseInt(Math.random()*6+1); this.cookieMatrix[index].texture = PIXI.Texture.fromFrame('cookie_000'+ this.cookieNumMatrix[index] + '.png'); this.cookieMatrix[index].scale.x = 0.85; this.cookieMatrix[index].scale.y = 0.85; this.cookieMatrix[index].remember = 0; this.cookieMatrix[index].alpha = 1; this.cookieMatrix[index].flag = 1; TweenMax.from(this.cookieMatrix[index], 0.3, {y:this.gameTable.position.y+this.cookieMatrix[index].height/2, onComplete: (function (){ dropCount++; if(dropCount == fullCount && !this.canClick) { //이전 스테이지모드 저장 if(this.stageMode != 'momotime') this.prestageMode = this.stageMode; this.checkAgain(); } else { this.lastEventTime = Date.now(); } }.bind(this))}); } } //내려올 블럭이 아이템일 경우 아이템 강조 이펙트도 같이 움직이기 위함 this.stopItemAccentEffect(); this.playItemAccentEffect(); this.getItemIndex(); //객체 의미 없음 TweenMax.from(this.cookieMatrix[0], 0.3, {onComplete: (function (){ this.restComboTime = 3; //=아이템 블럭이 많으면 다음 콤보까지 시간 부족.. 블럭 다 떨어지고 초기화 //힌트 저장을 위함 this.giveHint = false; if(!this.checkMatching1() && this.playGame) { this.checkAgain(); this.findHint(); } ////게임 종료 //if(this.chance<=0 && !this.haveEmpty) this.setGameOver(); }.bind(this))}); }; gc.GameScene.prototype.checkAgain = function(){ for(var i=0; i 7 && this.cookieMatrix[i].flag == 1){ this.itemEffectMc[i].alpha = 1; this.itemEffectMc[i].play(); } } }; gc.GameScene.prototype.stopItemAccentEffect = function () { for(var i=0; i= 3) { return true; } } } //세로(열) 매칭 체크 for(var i=0; i<7; i++){ countCol = 0; num2 = this.cookieNumMatrix[i]; for(var j=0; j<7; j++){ index2 = j*7+i; if (num2<7 && this.cookieNumMatrix[index2] == num2) { countCol++; } else { num2 = this.cookieNumMatrix[index2]; countCol = 1; } if (countCol >= 3) { return true; } } } return false; }; //스와핑 후 매칭 확인 gc.GameScene.prototype.checkMatching2 = function (checkingIndex){ this.l_c = 0; this.r_c = 0; this.u_c = 0; this.d_c = 0; this.itemIndex = undefined; this.memories = []; if(this.cookieNumMatrix[checkingIndex] < 7) { //왼쪽 파트 for (var i = checkingIndex; i >= Math.floor(checkingIndex / 7) * 7; i--) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[checkingIndex]) { this.l_c++; } else { break; } } //오른쪽 파트 for (var i = checkingIndex; i <= Math.floor(checkingIndex / 7 + 1) * 7 - 1; i++) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[checkingIndex]) { this.r_c++; } else { break; } } //위쪽 파트 for (var i = checkingIndex; i >= 0; i -= 7) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[checkingIndex]) { this.u_c++; } else { break; } } //아래쪽 파트 for (var i = checkingIndex; i < this.cookieMatrix.length; i += 7) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[checkingIndex]) { this.d_c++; } else { break; } } } //매칭 쿠키 확인 if(this.l_c+this.r_c -1 >= 3){ //맞춰진 가로 수가 3개 이상이면 //가로 4개 이상 if(this.l_c+this.r_c -1 >= 4) this.itemIndex = checkingIndex; for(var i=checkingIndex-this.l_c+1; i <= checkingIndex + this.r_c-1; i++){ this.cookieMatrix[i].flag = 0; this.memories.push(i); } if(this.u_c+this.d_c-1 >= 3){ //맞춰진 세로 수가 3개 이상이면 for(var i=checkingIndex-(this.u_c-1)*7; i <= checkingIndex+(this.d_c-1)*7; i+=7){ if(i != checkingIndex) { this.cookieMatrix[i].flag = 0; this.memories.push(i); } } //십자 모양 this.itemIndex = checkingIndex; } return true; }else if(this.l_c+this.r_c -1 < 3 && this.u_c+this.d_c-1 >= 3) { //가로 개수가 3개 미만이고, 세로 개수가 3개 이상 for(var i=checkingIndex-(this.u_c-1)*7; i <= checkingIndex+(this.d_c-1)*7; i+=7){ this.cookieMatrix[i].flag = 0; this.memories.push(i); } //세로 4개 이상 if(this.memories.length>=4) this.itemIndex = checkingIndex; return true; }else{ //맞는게 없을 때 return false; } }; //모든 쿠키 내리고 나서 다시 매칭 확인 gc.GameScene.prototype.checkMatching3 = function(){ this.bundle = []; //매칭되는 모든 배열을 저장하기 위한 배열 for (var j = 0; j < this.cookieMatrix.length; j++) { this.l_c = 0; this.r_c = 0; this.u_c = 0; this.d_c = 0; this.itemIndex = undefined; this.memories = []; if (this.cookieMatrix[j].flag != 0 && this.cookieNumMatrix[j]<7) { //왼쪽 파트 for (var i = j; i >= Math.floor(j / 7) * 7; i--) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[j]) { this.l_c++; } else { break; } } //오른쪽 파트 for (var i = j; i <= Math.floor(j / 7 + 1) * 7 - 1; i++) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[j]) { this.r_c++; } else { break; } } //위쪽 파트 for (var i = j; i >= 0; i -= 7) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[j]) { this.u_c++; } else { break; } } //아래쪽 파트 for (var i = j; i < this.cookieMatrix.length; i += 7) { if (this.cookieNumMatrix[i] == this.cookieNumMatrix[j]) { this.d_c++; } else { break; } } //매칭 쿠키 확인 if (this.l_c + this.r_c - 1 >= 3) { //맞춰진 가로 수가 3개 이상이면 for (var i = j - this.l_c + 1; i <= j + this.r_c - 1; i++) { this.memories.push(i); } if (this.u_c + this.d_c - 1 >= 3) { //맞춰진 세로 수가 3개 이상이면 for (var i = j - (this.u_c - 1) * 7; i <= j + (this.d_c - 1) * 7; i += 7) { if (i != j) { this.memories.push(i); } } } } else if (this.l_c + this.r_c - 1 < 3 && this.u_c + this.d_c - 1 >= 3) { //가로 개수가 3개 미만이고, 세로 개수가 3개 이상 for (var i = j - (this.u_c - 1) * 7; i <= j + (this.d_c - 1) * 7; i += 7) { this.memories.push(i); } } } this.bundle[j] = this.memories; } var bundleCount = 0; for (var i = 0; i < this.bundle.length; i++) { if (this.bundle[i].length == 0) { bundleCount++; } } //맞춰진 블럭이 있을때 if (bundleCount != this.bundle.length) this.searchingMaxLength(); else { this.haveEmpty = false; for (var i = 0; i < this.cookieMatrix.length; i++) { if (this.cookieMatrix[i].flag == 0) this.haveEmpty = true; } if (this.haveEmpty) this.explode(); else { if (this.playGame) { this.canClick = true; } else { if (this.itemOver) { this.PlayOver();//게임이 완전히 끝났을 때 } else { this.lastPang();//횟수는 끝났으나 아이템이 남아있으면 터뜨리기} } } //게임 종료 if (this.playGame && this.chance <= 0 && !this.haveEmpty) this.setGameOver(); } } }; gc.GameScene.prototype.PlayOver = function () { this.gameoverImg.anchor.set(0.5); this.gameoverImg.x = GD.width/2; this.gameoverImg.y = GD.height/2; this.addChild(this.gameoverImg); TweenMax.to(this.gameoverImg.scale, 0.5, {x:1, y:1, onComplete:(function () { TweenMax.to(this.gameoverImg.scale, 0.3, {x:1.2, y:1.2}); }).bind(this)}); TweenMax.from(this.gameoverImg, 0.5, {y:GD.height+this.gameoverImg.height}); this.giveHint = true; this.canClick = false; this.normalmomo.stop(); this.fevermomo.stop(); this.normalshushu.stop(); this.fevershushu.stop(); this.fevereffect1.stop(); this.fevereffect2.stop(); GD.soundPlay('sound_gameover'); setTimeout(this.onResult.bind(this),1000); }; //타임업 사운드가 끝나고 결과창으로 이동 gc.GameScene.prototype.onResult = function () { GD.bgmStop(); gc.game = null; GD.commonOption.finish(this.score); }; //맞춰진 배열에서 가장 긴 배열에 아이템을 넣기 위한 함수 gc.GameScene.prototype.searchingMaxLength = function(){ var maxLength = 0; var maxLengthIndex = undefined; for(var i=0; i maxLength) { maxLength = this.bundle[i].length; maxLengthIndex = i; } } for (var i = 0; i < this.bundle[maxLengthIndex].length; i++) { this.cookieMatrix[this.bundle[maxLengthIndex][i]].flag = 0; this.cookieMatrix[this.bundle[maxLengthIndex][i]].alpha = 0; this.cookieMatrix[this.bundle[maxLengthIndex][i]].remember = 0; } if(this.bundle[maxLengthIndex].length >= 4) { if (this.bundle[maxLengthIndex].length >= 5) { this.cookieMatrix[maxLengthIndex].remember = this.cookieNumMatrix[maxLengthIndex]; var itemName = 'cookie2_000'; var fullItemName = itemName+this.cookieMatrix[maxLengthIndex].remember+'.png'; this.cookieMatrix[maxLengthIndex].texture = PIXI.Texture.fromFrame(fullItemName); this.cookieNumMatrix[maxLengthIndex] = 9; }else if (this.bundle[maxLengthIndex].length >= 4) { this.cookieMatrix[maxLengthIndex].texture = PIXI.Texture.fromFrame('eraser_0001.png'); this.cookieNumMatrix[maxLengthIndex] = 8; } this.cookieMatrix[maxLengthIndex].flag = 1; this.cookieMatrix[maxLengthIndex].alpha = 1; } this.combo++; this.totalCombo++; if(this.stageMode != 'momotime') { if(this.combo>=15) {this.stageMode = 'superfever';} else if(this.combo>=5){ this.stageMode = 'fever'; this.callfevercnt = 0; } else{this.stageMode = 'normal';} } this.lastTime = Date.now(); this.restComboTime = 3; this.checkMatching3(); }; //피버모드======================================================================================================= gc.GameScene.prototype.setFeverText = function () { this.superfeverText.anchor.set(0.5); this.superfeverText.position.x = gc.width / 2; this.superfeverText.position.y = this.gameTable.position.y; this.superfeverText.scale.x = 0; this.superfeverText.scale.y = 0; this.addChild(this.superfeverText); this.feverText.anchor.set(0.5); this.feverText.position.x = gc.width / 2; this.feverText.position.y = this.gameTable.position.y; this.feverText.scale.x = 0; this.feverText.scale.y = 0; this.addChild(this.feverText); }; gc.GameScene.prototype.setFever = function () { if(!this.pauseMode) { var now = Date.now(); if (this.lastTime == undefined) this.lastTime = now; if (this.playGame) { if (this.restComboTime > 0) {this.restComboTime -= (now - this.lastTime) / 1000;} else { this.combo = 0; this.restComboTime = 0; this.lastTime = undefined; if(this.stageMode != 'normal') this.prestageMode = this.stageMode; this.stageMode = 'normal'; this.callfevercnt = 0; } if (this.prestageMode != this.stageMode && this.callfevercnt == 0) {this.actFever();} this.lastTime = now; } }else this.lastTime = Date.now(); }; gc.GameScene.prototype.actFever = function () { this.callfevercnt++; if(this.stageMode == 'normal'){ this.normalMode(); this.gameBG.texture = GD.loader.resources['game_bg'].texture; this.fevereffect1.alpha = 0; this.fevereffect2.alpha = 0; } else{ this.otherMode(); this.actfeverEffect(); } }; gc.GameScene.prototype.actfeverEffect = function(){ if(this.test){ this.fevereffect1.y = -200; this.fevereffect2.y = -200; }else { this.gameBG.texture = GD.loader.resources['game_bg_fever'].texture; this.fevereffect1.y = 465; this.fevereffect2.y = 345; } this.fevereffect1.alpha = 1; this.fevereffect2.alpha = 1; this.fevereffect2.scale.y = 1.5; if(!this.test)if (this.stageMode != 'momotime') GD.soundPlay('sound_fever'); if (this.stageMode == 'superfever') { this.superfeverText.alpha = 1; TweenMax.to(this.superfeverText.scale, 0.5, { x: 1, y: 1, alpha: 1, onComplete: (function () { TweenMax.to(this.superfeverText, 0.7, { onComplete: (function () { this.superfeverText.scale.x = 0; this.superfeverText.scale.y = 0; this.superfeverText.alpha = 0; }).bind(this) }); }).bind(this) }); } else if (this.stageMode == 'fever') { this.feverText.alpha = 1; TweenMax.to(this.feverText.scale, 0.5, { x: 1, y: 1, alpha: 1, onComplete: (function () { TweenMax.to(this.feverText, 0.7, { onComplete: (function () { this.feverText.scale.x = 0; this.feverText.scale.y = 0; this.feverText.alpha = 0; if(this.test) { this.test = false; this.stageMode = 'normal'; } }).bind(this) }); }).bind(this) }); } }; // 일시정지 gc.GameScene.prototype.pause = function(){ this.pauseMode = true; this.setInteractive(false); }; // 게임진행 gc.GameScene.prototype.resume = function(){ this.pauseMode = false; this.setInteractive(true); }; // 버튼 이벤트 설정 gc.GameScene.prototype.setInteractive = function(bool){ for(var i=0; i= 100 && !this.getMedal4) { DataManager.addMedal(4); this.getMedal4 = true; } else if(this.totalCombo >= 3 && !this.getMedal1) { DataManager.addMedal(1); this.getMedal1 = true; }else if(this.champagneCombo >= 10 && !this.getMedal2) { DataManager.addMedal(2); this.getMedal2 = true; }else if(this.bombCombo >= 10 && !this.getMedal3) { DataManager.addMedal(3); this.getMedal3 = true; } }; gc.GameScene.getInstance = function(){ if(!gc.game) gc.game = new gc.GameScene(); return gc.game; }; module.exports.gc = gc;