STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228071
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/65620002?noj=FRM65620002-29DC" width="1" height="1"></div>

Touch Chess.swf

This is the info page for
Flash #132173

(Click the ID number above for more basic data on this flash file.)


ActionScript [AS1/AS2]
Combined Code
movieClip 4 energyBar { frame 1 { function show(value, maxValue) { _visible = true; var v1 = Math.round(value * 20 / maxValue); if (v1 == 0) { v1 = 1; } gotoAndStop(v1); } function hide() { _visible = false; } stop(); } } frame 1 { com.novelgames.flashgames.commonAS2.MainDevelopment.initialize(this); mochi.as2.MochiAd.showPreGameAd({'id': '2ba35bb4862aefa1', 'res': '360x640'}); mochi.as2.MochiServices.connect('2ba35bb4862aefa1'); } movieClip 6 { } movieClip 120 __Packages.mochi.as2.MochiAd { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiAd) { var v1 = function () {}; mochi.as2.MochiAd = v1; var v2 = v1.prototype; v1.getVersion = function () { return mochi.as2.MochiServices.getVersion(); }; v1.showPreGameAd = function (options) { var v27 = {'clip': _root, 'ad_timeout': 3000, 'fadeout_time': 250, 'regpt': 'o', 'method': 'showPreloaderAd', 'color': 16747008, 'background': 16777161, 'outline': 13994812, 'no_progress_bar': false, 'ad_started': function () { this.clip.stop(); }, 'ad_finished': function () { this.clip.play(); }, 'ad_failed': function () { trace('[MochiAd] Couldn\'t load an ad, make sure that your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software'); }, 'ad_loaded': function (width, height) {}, 'ad_skipped': function () {}, 'ad_progress': function (percent) {}}; options = mochi.as2.MochiAd._parseOptions(options, v27); if ('c862232051e0a94e1c3609b3916ddb17'.substr(0) == 'dfeada81ac97cde83665f81c12da7def') { options.ad_started(); options.ad_finished(); return undefined; } var clip = options.clip; var v24 = 11000; var v19 = options.ad_timeout; if (options.skip) { v19 = 0; } delete options.ad_timeout; var fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!mochi.as2.MochiAd.load(options)) { options.ad_failed(); options.ad_finished(); return undefined; } options.ad_started(); var mc = clip._mochiad; mc.onUnload = function () { options.ad_finished(); }; var v15 = mochi.as2.MochiAd._getRes(options); var v5 = v15[0]; var v14 = v15[1]; mc._x = v5 * 0.5; mc._y = v14 * 0.5; var chk = mc.createEmptyMovieClip('_mochiad_wait', 3); chk._x = v5 * -0.5; chk._y = v14 * -0.5; var v7 = chk.createEmptyMovieClip('_mochiad_bar', 4); if (options.no_progress_bar) { v7._visible = false; delete options.no_progress_bar; } else { v7._x = 10; v7._y = v14 - 20; } var v23 = options.color; delete options.color; var v21 = options.background; delete options.background; var v25 = options.outline; delete options.outline; var v6 = v7.createEmptyMovieClip('_outline', 1); v6.beginFill(v21); v6.moveTo(0, 0); v6.lineTo(v5 - 20, 0); v6.lineTo(v5 - 20, 10); v6.lineTo(0, 10); v6.lineTo(0, 0); v6.endFill(); var v4 = v7.createEmptyMovieClip('_inside', 2); v4.beginFill(v23); v4.moveTo(0, 0); v4.lineTo(v5 - 20, 0); v4.lineTo(v5 - 20, 10); v4.lineTo(0, 10); v4.lineTo(0, 0); v4.endFill(); v4._xscale = 0; var v8 = v7.createEmptyMovieClip('_outline', 3); v8.lineStyle(0, v25, 100); v8.moveTo(0, 0); v8.lineTo(v5 - 20, 0); v8.lineTo(v5 - 20, 10); v8.lineTo(0, 10); v8.lineTo(0, 0); chk.ad_msec = v24; chk.ad_timeout = v19; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function () { var v2 = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time); if (v2 > 0) { this._parent._alpha = v2; } else { var v3 = this._parent._parent; mochi.as2.MochiAd.unload(v3); delete this.onEnterFrame; } }; var sendHostProgress = false; mc.lc.sendHostLoadProgress = function (lc_name) { sendHostProgress = true; }; mc.lc.adLoaded = options.ad_loaded; mc.lc.adSkipped = options.ad_skipped; mc.lc.adjustProgress = function (msec) { var v2 = this.mc._mochiad_wait; v2.server_control = true; v2.started = getTimer(); v2.ad_msec = msec; }; mc.lc.rpc = function (callbackID, arg) { mochi.as2.MochiAd.rpc(clip, callbackID, arg); }; mc.rpcTestFn = function (s) { trace('[MOCHIAD rpcTestFn] ' + s); return s; }; chk.onEnterFrame = function () { var v10 = this._parent._parent; var v3 = v10; for (;;) { if (!(!v3.getBytesTotal() && v3)) break; v3 = v3._parent; } if (!v3) { v3 = _root; } var v13 = this._parent._mochiad_ctr; var v7 = getTimer() - this.started; var v5 = false; var v6 = v3.getBytesTotal(); var v9 = v3.getBytesLoaded(); var v4 = 100 * v9 / v6; var v12 = 100 * v7 / chk.ad_msec; var v11 = this._mochiad_bar._inside; var v15 = Math.min(100, Math.min(v4 || 0, v12)); v15 = Math.max(this.last_pcnt, v15); this.last_pcnt = v15; v11._xscale = v15; options.ad_progress(v15); if (sendHostProgress) { mochi.as2.MochiAd.containerNotify(clip, {'id': 'hostLoadPcnt', 'pcnt': v4}, clip._mochiad._containerLCName); if (v4 == 100) { sendHostProgress = false; } } if (!chk.showing) { var v8 = v13.getBytesTotal(); if (v8 > 0 || typeof v8 == 'undefined') { chk.showing = true; chk.started = getTimer(); } else { if (v7 > chk.ad_timeout && v4 == 100) { options.ad_failed(); v5 = true; } } } if (v7 > chk.ad_msec) { v5 = true; } if (v6 > 0 && v9 >= v6 && v5) { if (this.server_control) { delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; } } }; }; v1.showClickAwayAd = function (options) { var v10 = {'clip': _root, 'ad_timeout': 2000, 'fadeout_time': 250, 'regpt': 'o', 'method': 'showClickAwayAd', 'res': '300x250', 'no_bg': true, 'ad_started': function () {}, 'ad_finished': function () {}, 'ad_loaded': function (width, height) {}, 'ad_failed': function () { trace('[MochiAd] Couldn\'t load an ad, make sure that your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software'); }, 'ad_skipped': function () {}}; options = mochi.as2.MochiAd._parseOptions(options, v10); var clip = options.clip; var v9 = options.ad_timeout; delete options.ad_timeout; if (!mochi.as2.MochiAd.load(options)) { options.ad_failed(); options.ad_finished(); return undefined; } options.ad_started(); var v3 = clip._mochiad; v3.onUnload = function () { options.ad_finished(); }; var v5 = mochi.as2.MochiAd._getRes(options); var v11 = v5[0]; var v8 = v5[1]; v3._x = v11 * 0.5; v3._y = v8 * 0.5; var chk = v3.createEmptyMovieClip('_mochiad_wait', 3); chk.ad_timeout = v9; chk.started = getTimer(); chk.showing = false; v3.lc.adLoaded = options.ad_loaded; v3.lc.adSkipped = options.ad_skipped; v3.lc.rpc = function (callbackID, arg) { mochi.as2.MochiAd.rpc(clip, callbackID, arg); }; v3.rpcTestFn = function (s) { trace('[MOCHIAD rpcTestFn] ' + s); return s; }; var v21 = false; chk.onEnterFrame = function () { var v5 = this._parent._mochiad_ctr; var v4 = getTimer() - this.started; var v2 = false; if (!chk.showing) { var v3 = v5.getBytesTotal(); if (v3 > 0 || typeof v3 == 'undefined') { v2 = true; chk.showing = true; chk.started = getTimer(); } else { if (v4 > chk.ad_timeout) { options.ad_failed(); v2 = true; } } } if (v2) { delete this.onEnterFrame; } }; }; v1.showInterLevelAd = function (options) { var v13 = {'clip': _root, 'ad_timeout': 2000, 'fadeout_time': 250, 'regpt': 'o', 'method': 'showTimedAd', 'ad_started': function () { this.clip.stop(); }, 'ad_finished': function () { this.clip.play(); }, 'ad_failed': function () { trace('[MochiAd] Couldn\'t load an ad, make sure that your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software'); }, 'ad_loaded': function (width, height) {}, 'ad_skipped': function () {}}; options = mochi.as2.MochiAd._parseOptions(options, v13); var clip = options.clip; var v10 = 11000; var v12 = options.ad_timeout; delete options.ad_timeout; var fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!mochi.as2.MochiAd.load(options)) { options.ad_failed(); options.ad_finished(); return undefined; } options.ad_started(); var mc = clip._mochiad; mc.onUnload = function () { options.ad_finished(); }; var v5 = mochi.as2.MochiAd._getRes(options); var v14 = v5[0]; var v11 = v5[1]; mc._x = v14 * 0.5; mc._y = v11 * 0.5; var chk = mc.createEmptyMovieClip('_mochiad_wait', 3); chk.ad_msec = v10; chk.ad_timeout = v12; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function () { var v2 = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time); if (v2 > 0) { this._parent._alpha = v2; } else { var v3 = this._parent._parent; mochi.as2.MochiAd.unload(v3); delete this.onEnterFrame; } }; mc.lc.adLoaded = options.ad_loaded; mc.lc.adSkipped = options.ad_skipped; mc.lc.adjustProgress = function (msec) { var v2 = this.mc._mochiad_wait; v2.server_control = true; v2.started = getTimer(); v2.ad_msec = msec - 250; }; mc.lc.rpc = function (callbackID, arg) { mochi.as2.MochiAd.rpc(clip, callbackID, arg); }; mc.rpcTestFn = function (s) { trace('[MOCHIAD rpcTestFn] ' + s); return s; }; chk.onEnterFrame = function () { var v5 = this._parent._mochiad_ctr; var v4 = getTimer() - this.started; var v2 = false; if (!chk.showing) { var v3 = v5.getBytesTotal(); if (v3 > 0 || typeof v3 == 'undefined') { chk.showing = true; chk.started = getTimer(); } else { if (v4 > chk.ad_timeout) { options.ad_failed(); v2 = true; } } } if (v4 > chk.ad_msec) { v2 = true; } if (v2) { if (this.server_control) { delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; } } }; }; v1.showPreloaderAd = function (options) { trace('[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0'); mochi.as2.MochiAd.showPreGameAd(options); }; v1.showTimedAd = function (options) { trace('[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0'); mochi.as2.MochiAd.showInterLevelAd(options); }; v1._allowDomains = function (server) { var v1 = ((server.split('/'))[2].split(':'))[0]; if (System.security) { if (System.security.allowDomain) { System.security.allowDomain('*'); System.security.allowDomain(v1); } if (System.security.allowInsecureDomain) { System.security.allowInsecureDomain('*'); System.security.allowInsecureDomain(v1); } } return v1; }; v1.load = function (options) { var v12 = {'clip': _root, 'server': 'http://x.mochiads.com/srv/1/', 'method': 'load', 'depth': 10333, 'id': '_UNKNOWN_'}; options = mochi.as2.MochiAd._parseOptions(options, v12); options.swfv = options.clip.getSWFVersion() || 6; options.mav = mochi.as2.MochiAd.getVersion(); var v6 = options.clip; if (!mochi.as2.MochiAd._isNetworkAvailable()) { return null; } if (v6._mochiad_loaded) { return null; } var v11 = options.depth; delete options.depth; var mc = v6.createEmptyMovieClip('_mochiad', v11); var v10 = mochi.as2.MochiAd._getRes(options); options.res = v10[0] + 'x' + v10[1]; options.server += options.id; delete options.id; v6._mochiad_loaded = true; if (v6._url.indexOf('http') != 0) { trace('[MochiAd] NOTE: Security Sandbox Violation errors below are normal'); } var v4 = mc.createEmptyMovieClip('_mochiad_ctr', 1); for (var v7 in options) { v4[v7] = options[v7]; } var v9 = v4.server; delete v4.server; var v13 = mochi.as2.MochiAd._allowDomains(v9); mc.onEnterFrame = function () { if (this._mochiad_ctr._url != this._url) { this.onEnterFrame = function () { if (!this._mochiad_ctr) { delete this.onEnterFrame; mochi.as2.MochiAd.unload(this._parent); } }; } }; var v5 = new Object(); var v8 = ['', Math.floor((new Date()).getTime()), random(999999)].join('_'); v5.mc = mc; v5.name = v8; v5.hostname = v13; v5.allowDomain = function (d) { return true; }; v5.allowInsecureDomain = v5.allowDomain; v5.connect(v8); mc.lc = v5; mc.lc.regContLC = function (lc_name) { mc._containerLCName = lc_name; }; v4.lc = v8; v4.st = getTimer(); if (!options.skip) { v4.loadMovie(v9 + '.swf', 'POST'); } return mc; }; v1.unload = function (clip) { if (typeof clip == 'undefined') { clip = _root; } if (clip.clip && clip.clip._mochiad) { clip = clip.clip; } if (!clip._mochiad) { return false; } mochi.as2.MochiAd.containerNotify(clip, {'id': 'unload'}, clip._mochiad._containerLCName); clip._mochiad.removeMovieClip(); delete clip._mochiad_loaded; delete clip._mochiad; return true; }; v1._isNetworkAvailable = function () { if (System.security) { var v1 = System.security; if (v1.sandboxType == 'localWithFile') { return false; } } return true; }; v1._getRes = function (options) { var v3 = options.clip.getBounds(); var v2 = 0; var v1 = 0; if (typeof options.res != 'undefined') { var v4 = options.res.split('x'); v2 = parseFloat(v4[0]); v1 = parseFloat(v4[1]); } else { v2 = v3.xMax - v3.xMin; v1 = v3.yMax - v3.yMin; } if (v2 == 0 || v1 == 0) { v2 = Stage.width; v1 = Stage.height; } return [v2, v1]; }; v1._parseOptions = function (options, defaults) { var v4 = {}; for (var v8 in defaults) { v4[v8] = defaults[v8]; } if (options) { for (v8 in options) { v4[v8] = options[v8]; } } if (_root.mochiad_options) { var v5 = _root.mochiad_options.split('&'); var v2 = 0; while (v2 < v5.length) { var v3 = v5[v2].split('='); v4[unescape(v3[0])] = unescape(v3[1]); ++v2; } } if (v4.id == 'test') { trace('[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!'); } return v4; }; v1.rpc = function (clip, callbackID, arg) { switch (arg.id) { case 'setValue': mochi.as2.MochiAd.setValue(clip, arg.objectName, arg.value); break; case 'getValue': var v4 = mochi.as2.MochiAd.getValue(clip, arg.objectName); mochi.as2.MochiAd.containerRpcResult(clip, callbackID, v4, clip._mochiad._containerLCName); break; case 'runMethod': var v3 = mochi.as2.MochiAd.runMethod(clip, arg.method, arg.args); mochi.as2.MochiAd.containerRpcResult(clip, callbackID, v3, clip._mochiad._containerLCName); break; default: trace('[mochiads rpc] unknown rpc id: ' + arg.id); } }; v1.setValue = function (base, objectName, value) { var v2 = objectName.split('.'); var v1; v1 = 0; while (v1 < v2.length - 1) { if (base[v2[v1]] == undefined || base[v2[v1]] == null) { return undefined; } base = base[v2[v1]]; ++v1; } base[v2[v1]] = value; }; v1.getValue = function (base, objectName) { var v2 = objectName.split('.'); var v1; v1 = 0; while (v1 < v2.length - 1) { if (base[v2[v1]] == undefined || base[v2[v1]] == null) { return undefined; } base = base[v2[v1]]; ++v1; } return base[v2[v1]]; }; v1.runMethod = function (base, methodName, argsArray) { var v2 = methodName.split('.'); var v1; v1 = 0; while (v1 < v2.length - 1) { if (base[v2[v1]] == undefined || base[v2[v1]] == null) { return undefined; } base = base[v2[v1]]; ++v1; } if (typeof base[v2[v1]] == 'function') { return base[v2[v1]].apply(base, argsArray); } else { return undefined; } }; v1.containerNotify = function (clip, args, lcName) { var v1 = clip._mochiad._mochiad_ctr.ad.app; if (v1.notify) { v1.notify(args); } else { (new LocalConnection()).send(lcName, 'notify', args); } }; v1.containerRpcResult = function (clip, callbackID, val, lcName) { var v1 = clip._mochiad._mochiad_ctr.ad.app; if (v1.rpcResult) { v1.rpcResult(callbackID, val); } else { (new LocalConnection()).send(lcName, 'rpcResult', callbackID, val); } }; ASSetPropFlags(mochi.as2.MochiAd.prototype, null, 1); } #endinitclip } movieClip 121 __Packages.mochi.as2.MochiEventDispatcher { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiEventDispatcher) { var v1 = function () { this.eventTable = {}; }; mochi.as2.MochiEventDispatcher = v1; var v2 = v1.prototype; v2.buildDelegate = function (thisObject, thatObject) { var v2 = {'thisObject': thisObject, 'thatObject': thatObject}; if (thatObject != undefined) { var funct = (typeof thatObject == 'string') ? thisObject[thatObject] : thatObject; v2.delegate = function (args) { funct.call(thisObject, args); }; return v2; } v2.delegate = thisObject; return v2; }; v2.compareDelegate = function (d_A, d_B) { if (d_A.thisObject != d_B.thisObject || d_A.thatObject != d_B.thatObject) { return false; } return true; }; v2.addEventListener = function (event, thisObject, thatObject) { this.removeEventListener(event, thisObject, thatObject); this.eventTable[event].push(this.buildDelegate(thisObject, thatObject)); }; v2.removeEventListener = function (event, thisObject, thatObject) { var v3 = this.buildDelegate(thisObject, thatObject); if (this.eventTable[event] == undefined) { this.eventTable[event] = []; return undefined; } for (var v4 in this.eventTable[event]) { if (!this.compareDelegate(this.eventTable[event][v4], v3)) { continue; } this.eventTable[event].splice(Number(v4), 1); } }; v2.triggerEvent = function (event, args) { if (this.eventTable[event] == undefined) { return undefined; } for (var v4 in this.eventTable[event]) { this.eventTable[event][v4].delegate(args); } }; ASSetPropFlags(mochi.as2.MochiEventDispatcher.prototype, null, 1); } #endinitclip } movieClip 122 __Packages.mochi.as2.MochiServices { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiServices) { var v1 = function () {}; mochi.as2.MochiServices = v1; var v2 = v1.prototype; v1.__get__id = function () { return mochi.as2.MochiServices._id; }; v1.__get__clip = function () { return mochi.as2.MochiServices._container; }; v1.__get__childClip = function () { return mochi.as2.MochiServices._clip; }; v1.getVersion = function () { return '3.9.1 as2'; }; v1.allowDomains = function (server) { var v1 = ((server.split('/'))[2].split(':'))[0]; if (System.security) { if (System.security.allowDomain) { System.security.allowDomain('*'); System.security.allowDomain(v1); } if (System.security.allowInsecureDomain) { System.security.allowInsecureDomain('*'); System.security.allowInsecureDomain(v1); } } return v1; }; v1.__get__isNetworkAvailable = function () { if (System.security) { var v1 = System.security; if (v1.sandboxType == 'localWithFile') { return false; } } return true; }; v1.__set__comChannelName = function (val) { if (val != undefined) { if (val.length > 3) { mochi.as2.MochiServices._sendChannelName = val + '_fromgame'; mochi.as2.MochiServices.initComChannels(); } } return mochi.as2.MochiServices.__get__comChannelName(); }; v1.__get__connected = function () { return mochi.as2.MochiServices._connected; }; v1.connect = function (id, clip, onError) { mochi.as2.MochiServices.warnID(id, false); if (!mochi.as2.MochiServices._connected && mochi.as2.MochiServices._clip == undefined) { trace('MochiServices Connecting...'); mochi.as2.MochiServices._connecting = true; mochi.as2.MochiServices.init(id, clip); } if (onError != undefined) { mochi.as2.MochiServices.onError = onError; } else { if (mochi.as2.MochiServices.onError == undefined) { mochi.as2.MochiServices.onError = function (errorCode) { trace(errorCode); }; } } }; v1.disconnect = function () { if (mochi.as2.MochiServices._connected || mochi.as2.MochiServices._connecting) { mochi.as2.MochiServices._connected = false; mochi.as2.MochiServices._connecting = mochi.as2.MochiServices._connected; mochi.as2.MochiServices.flush(true); if (mochi.as2.MochiServices._clip != undefined) { mochi.as2.MochiServices._clip.removeMovieClip(); delete mochi.as2.MochiServices._clip; } mochi.as2.MochiServices._listenChannel.close(); } }; v1.init = function (id, clip) { mochi.as2.MochiServices._id = id; if (clip != undefined) { mochi.as2.MochiServices._container = clip; } else { mochi.as2.MochiServices._container = _root; } mochi.as2.MochiServices.loadCommunicator(id, mochi.as2.MochiServices._container); }; v1.loadCommunicator = function (id, clip) { var v6 = '_mochiservices_com_' + id; var v5 = new MovieClipLoader(); var v3 = {}; if (mochi.as2.MochiServices._clip != null) { return mochi.as2.MochiServices._clip; } if (!mochi.as2.MochiServices.__get__isNetworkAvailable()) { return null; } if ((mochi.as2.MochiServices.urlOptions()).servURL) { mochi.as2.MochiServices._servURL = (mochi.as2.MochiServices.urlOptions()).servURL; } var v4 = mochi.as2.MochiServices._servURL + mochi.as2.MochiServices._services; if ((mochi.as2.MochiServices.urlOptions()).servicesURL) { v4 = (mochi.as2.MochiServices.urlOptions()).servicesURL; } mochi.as2.MochiServices.allowDomains(v4); mochi.as2.MochiServices._clip = clip.createEmptyMovieClip(v6, 10336, false); mochi.as2.MochiServices._listenChannelName += Math.floor((new Date()).getTime()) + '_' + Math.floor(Math.random() * 99999); mochi.as2.MochiServices.listen(); if (v3.waitInterval != null) { clearInterval(v3.waitInterval); } v3.onLoadError = mochi.as2.MochiServices.loadError; v3.onLoadStart = function (target_mc) { this.isLoading = true; }; v3.onLoadComplete = function (target_mc) { target_mc.MochiServices = mochi.as2.MochiServices; }; v3.startTime = getTimer(); v3.wait = function () { if (getTimer() - this.startTime > 10000) { if (!this.isLoading) { mochi.as2.MochiServices.disconnect(); mochi.as2.MochiServices.onError.apply(null, ['IOError']); } clearInterval(this.waitInterval); } }; v3.waitInterval = setInterval(v3, 'wait', 1000); v5.addListener(v3); v5.loadClip(v4 + '?listenLC=' + mochi.as2.MochiServices._listenChannelName + '&mochiad_options=' + escape(_root.mochiad_options) + '&api_version=' + mochi.as2.MochiServices.getVersion(), mochi.as2.MochiServices._clip); mochi.as2.MochiServices._sendChannel = new LocalConnection(); mochi.as2.MochiServices._sendChannel._queue = []; return mochi.as2.MochiServices._clip; }; v1.loadError = function (target_mc, errorCode, httpStatus) { trace('MochiServices could not load.'); mochi.as2.MochiServices.disconnect(); mochi.as2.MochiServices.onError.apply(null, [errorCode]); }; v1.onStatus = function (infoObject) { if (infoObject.level !== 'error') { } else { mochi.as2.MochiServices._connected = false; mochi.as2.MochiServices._listenChannel.connect(mochi.as2.MochiServices._listenChannelName); } }; v1.listen = function () { mochi.as2.MochiServices._listenChannel = new LocalConnection(); mochi.as2.MochiServices._listenChannel.handshake = function (args) { mochi.as2.MochiServices.__set__comChannelName(args.newChannel); }; mochi.as2.MochiServices._listenChannel.allowDomain = function (d) { return true; }; mochi.as2.MochiServices._listenChannel.allowInsecureDomain = mochi.as2.MochiServices._listenChannel.allowDomain; mochi.as2.MochiServices._listenChannel._nextcallbackID = 0; mochi.as2.MochiServices._listenChannel._callbacks = {}; mochi.as2.MochiServices._listenChannel.connect(mochi.as2.MochiServices._listenChannelName); trace('Waiting for MochiAds services to connect...'); }; v1.initComChannels = function () { if (!mochi.as2.MochiServices._connected) { mochi.as2.MochiServices._sendChannel.onStatus = function (infoObject) { mochi.as2.MochiServices.onStatus(infoObject); }; mochi.as2.MochiServices._sendChannel.send(mochi.as2.MochiServices._sendChannelName, 'onReceive', {'methodName': 'handshakeDone'}); mochi.as2.MochiServices._sendChannel.send(mochi.as2.MochiServices._sendChannelName, 'onReceive', {'methodName': 'registerGame', 'id': mochi.as2.MochiServices._id, 'version': mochi.as2.MochiServices.getVersion()}); mochi.as2.MochiServices._listenChannel.onStatus = function (infoObject) { mochi.as2.MochiServices.onStatus(infoObject); }; mochi.as2.MochiServices._listenChannel.onReceive = function (pkg) { var v5 = pkg.callbackID; var v4 = this._callbacks[v5]; if (!v4) { return undefined; } var v2 = v4.callbackMethod; var v3 = v4.callbackObject; if (v3 && typeof v2 == 'string') { v2 = v3[v2]; } if (v2 != undefined) { v2.apply(v3, pkg.args); } delete this._callbacks[v5]; }; mochi.as2.MochiServices._listenChannel.onEvent = function (pkg) { switch (pkg.target) { case 'services': mochi.as2.MochiServices.triggerEvent(pkg.event, pkg.args); break; case 'events': mochi.as2.MochiEvents.triggerEvent(pkg.event, pkg.args); break; case 'coins': mochi.as2.MochiCoins.triggerEvent(pkg.event, pkg.args); break; case 'social': mochi.as2.MochiSocial.triggerEvent(pkg.event, pkg.args); } }; mochi.as2.MochiServices._listenChannel.onError = function () { mochi.as2.MochiServices.onError.apply(null, ['IOError']); }; trace('[SERVICES_API] connected!'); mochi.as2.MochiServices._connecting = false; mochi.as2.MochiServices._connected = true; while (mochi.as2.MochiServices._sendChannel._queue.length > 0) { mochi.as2.MochiServices._sendChannel.send(mochi.as2.MochiServices._sendChannelName, 'onReceive', mochi.as2.MochiServices._sendChannel._queue.shift()); } } }; v1.flush = function (error) { var v1; var v2; while (mochi.as2.MochiServices._sendChannel._queue.length > 0) { v1 = mochi.as2.MochiServices._sendChannel._queue.shift(); false; if (v1.callbackID != null) { v2 = mochi.as2.MochiServices._listenChannel._callbacks[v1.callbackID]; } delete mochi.as2.MochiServices._listenChannel._callbacks[v1.callbackID]; if (error) { mochi.as2.MochiServices.handleError(v1.args, v2.callbackObject, v2.callbackMethod); } } }; v1.handleError = function (args, callbackObject, callbackMethod) { if (args != null) { if (args.onError != null) { args.onError.apply(null, ['NotConnected']); } if (args.options != null && args.options.onError != null) { args.options.onError.apply(null, ['NotConnected']); } } if (callbackMethod != null) { args = {}; args.error = true; args.errorCode = 'NotConnected'; if (callbackObject != null && typeof callbackMethod == 'string') { callbackObject[callbackMethod](args); } else { if (callbackMethod != null) { callbackMethod.apply(args); } } } }; v1.send = function (methodName, args, callbackObject, callbackMethod) { if (mochi.as2.MochiServices._connected) { mochi.as2.MochiServices._sendChannel.send(mochi.as2.MochiServices._sendChannelName, 'onReceive', {'methodName': methodName, 'args': args, 'callbackID': mochi.as2.MochiServices._listenChannel._nextcallbackID}); } else { if (mochi.as2.MochiServices._clip == undefined || !mochi.as2.MochiServices._connecting) { trace('Error: MochiServices not connected. Please call MochiServices.connect(). Function: ' + methodName); mochi.as2.MochiServices.handleError(args, callbackObject, callbackMethod); mochi.as2.MochiServices.flush(true); return undefined; } else { mochi.as2.MochiServices._sendChannel._queue.push({'methodName': methodName, 'args': args, 'callbackID': mochi.as2.MochiServices._listenChannel._nextcallbackID}); } } mochi.as2.MochiServices._listenChannel._callbacks[mochi.as2.MochiServices._listenChannel._nextcallbackID] = {'callbackObject': callbackObject, 'callbackMethod': callbackMethod}; ++mochi.as2.MochiServices._listenChannel._nextcallbackID; }; v1.urlOptions = function () { var v5 = {}; var v6; if (_root._url.indexOf('mochiad_options') != -1) { var v2 = _root._url.indexOf('mochiad_options') + 'mochiad_options'.length + 1; v6 = _root._url.substr(v2, _root._url.length); } else { if (_root.mochiad_options) { v6 = _root.mochiad_options; } } if (v6) { var v4 = _root.mochiad_options.split('&'); var v2 = 0; while (v2 < v4.length) { var v3 = v4[v2].split('='); v5[unescape(v3[0])] = unescape(v3[1]); ++v2; } } return v5; }; v1.warnID = function (bid, leaderboard) { bid = bid.toLowerCase(); if (bid.length != 16) { trace('WARNING: ' + (leaderboard ? 'board' : 'game') + ' ID is not the appropriate length'); return undefined; } else { if (bid == '1e113c7239048b3f') { if (leaderboard) { trace('WARNING: Using testing board ID'); } else { trace('WARNING: Using testing board ID as game ID'); } return undefined; } else { if (bid == '84993a1de4031cd8') { if (leaderboard) { trace('WARNING: Using testing game ID as board ID'); } else { trace('WARNING: Using testing game ID'); } return undefined; } } } var v1 = 0; while (v1 < bid.length) { switch (bid.charAt(v1)) { if (bid.charAt(v1) !== 'f') { } else { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'a': break; case 'b': case 'c': case 'd': case 'e': } default: trace('WARNING: Board ID contains illegal characters: ' + bid); return undefined; } ++v1; } }; v1.addLinkEvent = function (url, burl, btn, onClick) { var timeout = 1500; var t0 = getTimer(); var v2 = new Object(); v2.mav = mochi.as2.MochiServices.getVersion(); v2.swfv = btn.getSWFVersion() || 6; v2.swfurl = btn._url; v2.fv = System.capabilities.version; v2.os = System.capabilities.os; v2.lang = System.capabilities.language; v2.scres = System.capabilities.screenResolutionX + 'x' + System.capabilities.screenResolutionY; var s = '?'; var v3 = 0; for (var v6 in v2) { if (v3 != 0) { s += '&'; } ++v3; s = s + v6 + '=' + escape(v2[v6]); } if (!(mochi.as2.MochiServices.netupAttempted || mochi.as2.MochiServices._connected)) { var ping = btn.createEmptyMovieClip('ping', 777); var v7 = btn.createEmptyMovieClip('nettest', 778); mochi.as2.MochiServices.netupAttempted = true; ping.loadMovie('http://link.mochiads.com/linkping.swf?t=' + getTimer()); v7.onEnterFrame = function () { if (ping._totalframes > 0 && ping._totalframes == ping._framesloaded) { delete this.onEnterFrame; } else { if (getTimer() - t0 > timeout) { delete this.onEnterFrame; mochi.as2.MochiServices.netup = false; } } }; } var v4 = btn.createEmptyMovieClip('clk', 1001); v4._alpha = 0; v4.beginFill(1044735); v4.moveTo(0, 0); v4.lineTo(0, btn._height); v4.lineTo(btn._width, btn._height); v4.lineTo(btn._width, 0); v4.lineTo(0, 0); v4.endFill(); v4.onRelease = function () { if (mochi.as2.MochiServices.netup) { getURL(url + s, '_blank'); } else { getURL(burl, '_blank'); } if (onClick != undefined) { onClick(); } }; }; v1.setContainer = function (clip) {}; v1.stayOnTop = function (clip) {}; v1.addEventListener = function (eventType, thisObject, thatObject) { mochi.as2.MochiServices._dispatcher.addEventListener(eventType, thisObject, thatObject); }; v1.triggerEvent = function (eventType, args) { mochi.as2.MochiServices._dispatcher.triggerEvent(eventType, args); }; v1.removeEventListener = function (eventType, thisObject, thatObject) { mochi.as2.MochiServices._dispatcher.removeEventListener(eventType, thisObject, thatObject); }; v1.CONNECTED = 'onConnected'; v1._servURL = 'http://www.mochiads.com/static/lib/services/'; v1._services = 'services.swf'; v1._mochiLC = 'MochiLC.swf'; v1._listenChannelName = '__ms_'; v1._connecting = false; v1._connected = false; v1.netup = true; v1.netupAttempted = false; v1._dispatcher = new mochi.as2.MochiEventDispatcher(); v1.addProperty('childClip', v1.__get__childClip, function () {}); v1.addProperty('clip', v1.__get__clip, function () {}); v1.addProperty('comChannelName', function () {}, v1.__set__comChannelName); v1.addProperty('connected', v1.__get__connected, function () {}); v1.addProperty('id', v1.__get__id, function () {}); v1.addProperty('isNetworkAvailable', v1.__get__isNetworkAvailable, function () {}); ASSetPropFlags(mochi.as2.MochiServices.prototype, null, 1); } #endinitclip } movieClip 123 __Packages.mochi.as2.MochiEvents { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiEvents) { var v1 = function () {}; mochi.as2.MochiEvents = v1; var v2 = v1.prototype; v1.getVersion = function () { return mochi.as2.MochiServices.getVersion(); }; v1.startSession = function (achievementID) { mochi.as2.MochiServices.send('events_beginSession', {'achievementID': achievementID}, null, null); }; v1.setNotifications = function (clip, style) { var v2 = {}; for (var v3 in style) { v2[v3] = style[v3]; } v2.clip = clip; mochi.as2.MochiServices.send('events_setNotifications', v2, null, null); }; v1.addEventListener = function (eventType, thisObject, thatObject) { mochi.as2.MochiEvents._dispatcher.addEventListener(eventType, thisObject, thatObject); }; v1.triggerEvent = function (eventType, args) { mochi.as2.MochiEvents._dispatcher.triggerEvent(eventType, args); }; v1.removeEventListener = function (eventType, thisObject, thatObject) { mochi.as2.MochiEvents._dispatcher.removeEventListener(eventType, thisObject, thatObject); }; v1.startPlay = function (tag) { if (tag == undefined) { tag = 'gameplay'; } mochi.as2.MochiServices.send('events_setRoundID', {'tag': String(tag)}, null, null); }; v1.endPlay = function () { mochi.as2.MochiServices.send('events_clearRoundID', null, null, null); }; v1.trackEvent = function (tag, value) { mochi.as2.MochiServices.send('events_trackEvent', {'tag': tag, 'value': value}, null, null); }; v1.ACHIEVEMENT_RECEIVED = 'AchievementReceived'; v1.ALIGN_TOP_LEFT = 'ALIGN_TL'; v1.ALIGN_TOP = 'ALIGN_T'; v1.ALIGN_TOP_RIGHT = 'ALIGN_TR'; v1.ALIGN_LEFT = 'ALIGN_L'; v1.ALIGN_CENTER = 'ALIGN_C'; v1.ALIGN_RIGHT = 'ALIGN_R'; v1.ALIGN_BOTTOM_LEFT = 'ALIGN_BL'; v1.ALIGN_BOTTOM = 'ALIGN_B'; v1.ALIGN_BOTTOM_RIGHT = 'ALIGN_BR'; v1.FORMAT_SHORT = 'ShortForm'; v1.FORMAT_LONG = 'LongForm'; v1._dispatcher = new mochi.as2.MochiEventDispatcher(); ASSetPropFlags(mochi.as2.MochiEvents.prototype, null, 1); } #endinitclip } movieClip 124 __Packages.mochi.as2.MochiCoins { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiCoins) { var v1 = function () {}; mochi.as2.MochiCoins = v1; var v2 = v1.prototype; v1.getVersion = function () { return mochi.as2.MochiServices.getVersion(); }; v1.showStore = function (options) { mochi.as2.MochiServices.send('coins_showStore', {'options': options}, null, null); }; v1.showItem = function (options) { if (options == undefined || typeof options.item != 'string') { trace('ERROR: showItem call must pass an Object with an item key'); return undefined; } mochi.as2.MochiServices.send('coins_showItem', {'options': options}, null, null); }; v1.showVideo = function (options) { if (options == undefined || typeof options.item != 'string') { trace('ERROR: showVideo call must pass an Object with an item key'); return undefined; } mochi.as2.MochiServices.send('coins_showVideo', {'options': options}, null, null); }; v1.getStoreItems = function () { mochi.as2.MochiServices.send('coins_getStoreItems'); }; v1.requestFunding = function (properties) { mochi.as2.MochiServices.send('social_requestFunding', properties); }; v1.addEventListener = function (eventType, delegate) { mochi.as2.MochiCoins._dispatcher.addEventListener(eventType, delegate); }; v1.triggerEvent = function (eventType, args) { mochi.as2.MochiCoins._dispatcher.triggerEvent(eventType, args); }; v1.removeEventListener = function (eventType, delegate) { mochi.as2.MochiCoins._dispatcher.removeEventListener(eventType, delegate); }; v1.STORE_SHOW = 'StoreShow'; v1.STORE_HIDE = 'StoreHide'; v1.ITEM_OWNED = 'ItemOwned'; v1.ITEM_NEW = 'ItemNew'; v1.STORE_ITEMS = 'StoreItems'; v1.ERROR = 'Error'; v1.IO_ERROR = 'IOError'; v1.NO_USER = 'NoUser'; v1._dispatcher = new mochi.as2.MochiEventDispatcher(); ASSetPropFlags(mochi.as2.MochiCoins.prototype, null, 1); } #endinitclip } movieClip 125 __Packages.mochi.as2.MochiSocial { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiSocial) { var v1 = function () {}; mochi.as2.MochiSocial = v1; var v2 = v1.prototype; v1.getVersion = function () { return mochi.as2.MochiServices.getVersion(); }; v1.showLoginWidget = function (options) { mochi.as2.MochiServices.setContainer(); mochi.as2.MochiServices.stayOnTop(); mochi.as2.MochiServices.send('social_showLoginWidget', {'options': options}); }; v1.hideLoginWidget = function () { mochi.as2.MochiServices.send('social_hideLoginWidget'); }; v1.requestLogin = function (properties) { mochi.as2.MochiServices.send('social_requestLogin', properties); }; v1.getFriendsList = function (properties) { mochi.as2.MochiServices.send('social_getFriendsList', properties); }; v1.postToStream = function (properties) { mochi.as2.MochiServices.send('social_postToStream', properties); }; v1.inviteFriends = function (properties) { mochi.as2.MochiServices.send('social_inviteFriends', properties); }; v1.requestFan = function (properties) { mochi.as2.MochiServices.send('social_requestFan', properties); }; v1.saveUserProperties = function (properties) { mochi.as2.MochiServices.send('social_saveUserProperties', properties); }; v1.addEventListener = function (eventType, delegate) { mochi.as2.MochiSocial._dispatcher.addEventListener(eventType, delegate); }; v1.triggerEvent = function (eventType, args) { mochi.as2.MochiSocial._dispatcher.triggerEvent(eventType, args); }; v1.removeEventListener = function (eventType, delegate) { mochi.as2.MochiSocial._dispatcher.removeEventListener(eventType, delegate); }; v1.LOGGED_IN = 'LoggedIn'; v1.LOGGED_OUT = 'LoggedOut'; v1.LOGIN_SHOW = 'LoginShow'; v1.LOGIN_HIDE = 'LoginHide'; v1.LOGIN_SHOWN = 'LoginShown'; v1.PROFILE_SHOW = 'ProfileShow'; v1.PROFILE_HIDE = 'ProfileHide'; v1.PROPERTIES_SAVED = 'PropertySaved'; v1.WIDGET_LOADED = 'WidgetLoaded'; v1.FRIEND_LIST = 'FriendsList'; v1.PROFILE_DATA = 'ProfileData'; v1.GAMEPLAY_DATA = 'GameplayData'; v1.ACTION_CANCELED = 'onCancel'; v1.ACTION_COMPLETE = 'onComplete'; v1.USER_INFO = 'UserInfo'; v1.ERROR = 'Error'; v1.IO_ERROR = 'IOError'; v1.NO_USER = 'NoUser'; v1.PROPERTIES_SIZE = 'PropertiesSize'; v1._dispatcher = new mochi.as2.MochiEventDispatcher(); ASSetPropFlags(mochi.as2.MochiSocial.prototype, null, 1); } #endinitclip } movieClip 126 __Packages.mochi.as2.MochiScores { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiScores) { var v1 = function () {}; mochi.as2.MochiScores = v1; var v2 = v1.prototype; v1.setBoardID = function (boardID) { mochi.as2.MochiServices.warnID(boardID, true); mochi.as2.MochiScores.boardID = boardID; mochi.as2.MochiServices.send('scores_setBoardID', {'boardID': boardID}); }; v1.showLeaderboard = function (options) { options.clip = mochi.as2.MochiServices.clip; if (options.clip != mochi.as2.MochiServices.__get__clip() || (mochi.as2.MochiServices.__get__childClip())._target == undefined) { mochi.as2.MochiServices.disconnect(); trace('WARNING! This application is attempting to connect to MochiServices inside a showLeaderboard call!'); trace('make sure MochiServices.connect is called as early in the application runtime as possible.'); mochi.as2.MochiServices.connect(mochi.as2.MochiServices.__get__id(), options.clip); } delete options.clip; if (options.name != null) { if (typeof options.name == 'object') { if (options.name.text != undefined) { options.name = options.name.text; } } } if (options.score != null) { if (options.score instanceof TextField) { if (options.score.text != undefined) { options.score = options.score.text; } } else { if (options.score instanceof mochi.as2.MochiDigits) { options.score = options.score.value; } } var v1 = Number(options.score); if (isNaN(v1)) { trace('ERROR: Submitted score \'' + options.score + '\' will be rejected, score is \'Not a Number\''); } else { if (v1 == Number.NEGATIVE_INFINITY || v1 == Number.POSITIVE_INFINITY) { trace('ERROR: Submitted score \'' + options.score + '\' will be rejected, score is an infinite'); } else { if (Math.floor(v1) != v1) { trace('WARNING: Submitted score \'' + options.score + '\' will be truncated'); } options.score = v1; } } } if (options.onDisplay != null) { options.onDisplay(); } else { (mochi.as2.MochiServices.__get__clip()).stop(); } if (options.onClose != null) { mochi.as2.MochiScores.onClose = options.onClose; } else { mochi.as2.MochiScores.onClose = function () { (mochi.as2.MochiServices.__get__clip()).play(); }; } if (options.onError != null) { mochi.as2.MochiScores.onError = options.onError; } else { mochi.as2.MochiScores.onError = mochi.as2.MochiScores.onClose; } if (options.boardID == null) { if (mochi.as2.MochiScores.boardID != null) { options.boardID = mochi.as2.MochiScores.boardID; } } mochi.as2.MochiServices.warnID(options.boardID, true); trace('[MochiScores] NOTE: Security Sandbox Violation errors below are normal'); mochi.as2.MochiServices.send('scores_showLeaderboard', {'options': options}, null, mochi.as2.MochiScores.doClose); }; v1.closeLeaderboard = function () { mochi.as2.MochiServices.send('scores_closeLeaderboard'); }; v1.getPlayerInfo = function (callbackObj, callbackMethod) { mochi.as2.MochiServices.send('scores_getPlayerInfo', null, callbackObj, callbackMethod); }; v1.submit = function (score, name, callbackObj, callbackMethod) { score = Number(score); if (isNaN(score)) { trace('ERROR: Submitted score \'' + String(score) + '\' will be rejected, score is \'Not a Number\''); } else { if (score == Number.NEGATIVE_INFINITY || score == Number.POSITIVE_INFINITY) { trace('ERROR: Submitted score \'' + String(score) + '\' will be rejected, score is an infinite'); } else { if (Math.floor(score) != score) { trace('WARNING: Submitted score \'' + String(score) + '\' will be truncated'); } score = Number(score); } } mochi.as2.MochiServices.send('scores_submit', {'score': score, 'name': name}, callbackObj, callbackMethod); }; v1.requestList = function (callbackObj, callbackMethod) { mochi.as2.MochiServices.send('scores_requestList', null, callbackObj, callbackMethod); }; v1.scoresArrayToObjects = function (scores) { var v5 = {}; var v1; var v4; var v2; var v6; for (var v8 in scores) { if (typeof scores[v8] == 'object') { if (scores[v8].cols != null && scores[v8].rows != null) { v5[v8] = []; v2 = scores[v8]; v4 = 0; while (v4 < v2.rows.length) { v6 = {}; v1 = 0; while (v1 < v2.cols.length) { v6[v2.cols[v1]] = v2.rows[v4][v1]; ++v1; } v5[v8].push(v6); ++v4; } } else { v5[v8] = {}; for (var v7 in scores[v8]) { v5[v8][v7] = scores[v8][v7]; } } } else { v5[v8] = scores[v8]; } } return v5; }; v1.doClose = function (args) { if (args.error == true) { if (args.errorCode == undefined) { args.errorCode = 'IOError'; } mochi.as2.MochiScores.onError.apply(null, [args.errorCode]); } else { mochi.as2.MochiScores.onClose.apply(); } }; ASSetPropFlags(mochi.as2.MochiScores.prototype, null, 1); } #endinitclip } movieClip 127 __Packages.mochi.as2.MochiDigits { #initclip if (!_global.mochi) { _global.mochi = new Object(); } if (!_global.mochi.as2) { _global.mochi.as2 = new Object(); } if (!_global.mochi.as2.MochiDigits) { var v1 = function (digit, index) { this.Encoder = 0; this.setValue(digit, index); }; mochi.as2.MochiDigits = v1; var v2 = v1.prototype; v2.__get__value = function () { return Number(this.toString()); }; v2.__set__value = function (v) { this.setValue(v); return this.__get__value(); }; v2.addValue = function (v) { this.value += v; }; v2.setValue = function (digit, index) { var v3 = digit.toString(); if (index == undefined || isNaN(index)) { index = 0; } this.Fragment = v3.charCodeAt(index++) ^ this.Encoder; if (index < v3.length) { this.Sibling = new mochi.as2.MochiDigits(digit, index); } else { this.Sibling = null; } this.reencode(); }; v2.reencode = function () { var v2 = int(2147483647 * Math.random()); this.Fragment ^= v2 ^ this.Encoder; this.Encoder = v2; }; v2.toString = function () { var v2 = String.fromCharCode(this.Fragment ^ this.Encoder); return (this.Sibling != null) ? v2.concat(this.Sibling.toString()) : v2; }; v2.addProperty('value', v2.__get__value, v2.__set__value); ASSetPropFlags(mochi.as2.MochiDigits.prototype, null, 1); } #endinitclip } frame 9 { } frame 10 { function securescore(oldscore, ssval, ssmode) { ssmodified = false; if (securestartscore + securetotal / ssfactor != oldscore) { ssmodified = true; } if (ssmode == 1) { securetotal += ssval * ssfactor; } if (ssmode == 2) { securetotal -= ssval * ssfactor; } if (ssmode == 3) { securetotal += ssval * ssfactor - oldscore; } if (ssmode == 4) { securetotal = ssval * ssfactor; } securecount += 1; if (oldscore != securescorecheck / ssfactor) { ssmodified = true; } if (ssmode == 1) { securescorecheck += ssval * ssfactor; } if (ssmode == 2) { securescorecheck -= ssval * ssfactor; } if (ssmode == 3) { securescorecheck = ssval * ssfactor; } if (ssmode == 4) { securescorecheck = ssval * ssfactor; } if (ssmodified == true) { securescorecheck = 0; } securelog.push(securescorecheck / ssfactor); return securescorecheck / ssfactor; } _global.ROOT = this; globalcontrol = new Sound(); xmlMenu._visible = false; loadMovie('http://' + (_url.split('/'))[2] + '/menu.swf?dummy=' + (new Date()).getTime(), menu1); myDecrypt = _root._level99.decrypt(_root.data_in, _root.highscore_guid); var data_array = myDecrypt.split(','); xmlMenu.onRelease = function () { _root.menu1.nextFrame(); _root.xmlMenu.nextFrame(); }; score = 0; securestartscore = 0; securescorecheck = 0; securetotal = 0; securecount = 0; ssfactor = (random(10) + 2) * -1; securelog = new Array(); } movieClip 9 { frame 1 { stop(); } } movieClip 10 { frame 1 { _root.stop(); movieSize = _root.getBytesTotal(); } frame 2 { movieLoaded = _root.getBytesLoaded(); percent = Math.round((movieLoaded / movieSize) * 100); loadbar.gotoAndStop(percent); } frame 3 { if (movieLoaded < movieSize) { gotoAndPlay(_currentframe - 1); } } frame 4 { _root.play(); } } // unknown tag 88 length 63 frame 11 { startTime = true; gameOver = false; stop(); } // unknown tag 88 length 54 button 31 { on (release) { MAXDEPTH = 1; play(); } } // unknown tag 88 length 68 button 39 { on (release) { getURL('http://gazuma.com', 'blank'); } } // unknown tag 88 length 76 button 47 { on (release) { gotoAndPlay('restart'); } } movieClip 50 { frame 1 { _root.progressBar._visible = false; stop(); } frame 2 { _root.progressBar._visible = true; _root.progressBar.gotoAndStop(1); stop(); } } button 55 { on (release, keyPress '<Down>') { ++text.scroll; if (myscroll._y < 96.59999999999999 - myscroll._height + myscroll.top) { myscroll._y += (96.40000000000001 - myscroll._height) / myscroll.totalLines; } } } button 56 { on (release, keyPress '<Up>') { --text.scroll; if (myscroll._y > myscroll.top) { myscroll._y -= (96.40000000000001 - myscroll._height) / myscroll.totalLines; } } } button 61 { on (press) { startDrag('', false, left, top, right, bottom); dragging = true; } on (release, releaseOutside) { stopDrag(); dragging = false; } } movieClip 62 { frame 1 { function update() { _height = 576 / (totalLines + 5); bottom = top + (96.59999999999999 - _height); } function appendText(tx) { ++moveNumber; text = '' + moveNumber + '.' + tx + '\n' + text; _root.text = title + text; ++totalLines; update(); gotoBottom(); } function clearText() { _root.text = title; text = ''; totalLines = 1; update(); moveNumber = 0; } totalLines = 0; title = '\n'; text = ''; top = _y; left = _x; right = _x; clearText(); } frame 3 { gotoAndPlay(_currentframe - 1); } } instance myscroll of movieClip 62 { onClipEvent (enterFrame) { if (dragging == true) { _root.text.scroll = 1 + int((_y - top) * totalLines / (96.59999999999999 - _height)); } } onClipEvent (load) { update(); updateAfterEvent(); } } button 67 { on (release) { _root.select(this._parent.row, this._parent.col); gotoAndStop('selected'); } } movieClip 69 { frame 19 { gotoAndPlay(2); } } button 70 { on (release) { _root.moveRealPlayer(_root.pieceSelected.row << 9 | _root.pieceSelected.col << 6 | this._parent.row << 3 | this._parent.col, _root.SIDE_PLAYER); } } button 72 { on (release) { _root.deselect(this._parent); _root.gotoAndStop('normal'); } } movieClip 73 { frame 1 { stop(); } frame 2 { stop(); } frame 3 { stop(); } frame 4 { stop(); } } movieClip 87 { frame 1 { function showPiece(piece) { if (piece == _root.VOID) { gotoAndStop('void'); } else { if (piece == _root.PAWN_W) { gotoAndStop('pawn_w'); } else { if (piece == _root.KNIGHT_W) { gotoAndStop('knight_w'); } else { if (piece == _root.ROOK_W) { gotoAndStop('rook_w'); } else { if (piece == _root.BISSHOP_W) { gotoAndStop('bisshop_w'); } else { if (piece == _root.QUEEN_W) { gotoAndStop('queen_w'); } else { if (piece == _root.KING_W) { gotoAndStop('king_w'); } else { if (piece == _root.PAWN_B) { gotoAndStop('pawn_b'); } else { if (piece == _root.KNIGHT_B) { gotoAndStop('knight_b'); } else { if (piece == _root.ROOK_B) { gotoAndStop('rook_b'); } else { if (piece == _root.BISSHOP_B) { gotoAndStop('bisshop_b'); } else { if (piece == _root.QUEEN_B) { gotoAndStop('queen_b'); } else { if (piece == _root.KING_B) { gotoAndStop('king_b'); } } } } } } } } } } } } } } piece = 'void'; stop(); } frame 2 { piece = 'pawn_w'; stop(); } frame 3 { piece = 'knight_w'; stop(); } frame 4 { piece = 'rook_w'; stop(); } frame 5 { piece = 'bisshop_w'; stop(); } frame 6 { piece = 'queen_w'; stop(); } frame 7 { piece = 'king_w'; stop(); } frame 9 { piece = 'pawn_b'; stop(); } frame 10 { piece = 'knight_b'; stop(); } frame 11 { piece = 'rook_b'; stop(); } frame 12 { piece = 'bisshop_b'; stop(); } frame 13 { piece = 'queen_b'; stop(); } frame 14 { piece = 'king_b'; stop(); } } // unknown tag 88 length 47 button 94 { on (release) { gotoAndStop('on'); } } button 96 { on (release) { gotoAndStop('off'); } } // unknown tag 88 length 70 // unknown tag 88 length 69 movieClip 104 { frame 1 { stop(); } frame 2 { stop(); } } // unknown tag 88 length 54 movieClip 109 { frame 1 { if (_root.startTime == true) { var myNumber = 0; _root.startTime = false; } myNumber += 1; theTime = myNumber; var baseScore = 50000; _global.ROOT.score = _global.ROOT.securescore(_global.ROOT.score, baseScore - myNumber * 10, 4); if (_root.gameOver == true) { stop(); } } } movieClip 113 { } movieClip 114 { frame 1 { var o = {'n': [14, 7, 5, 1, 15, 0, 1, 4, 7, 2, 5, 1, 15, 14, 4, 14], 'f': function (i, s) { if (s.length == 16) { return s; } return this.f(i + 1, s + this.n[i].toString(16)); }}; var boardID = o.f(0, ''); mochi.as2.MochiScores.showLeaderboard({'boardID': boardID, 'score': _root.score}); } } movieClip 119 { frame 1 { stop(); } frame 2 { stop(); _root.gameOver = true; } frame 3 { stop(); _root.gameOver = true; } frame 4 { stop(); _root.gameOver = true; } frame 5 { stop(); } frame 6 { stop(); } } frame 13 { function MovementRules() { this.up = 0; this.down = 0; this.left = 0; this.right = 0; this.up_left = 0; this.up_right = 0; this.down_left = 0; this.down_right = 0; this.isKnight = false; this.isPawn = false; } function Move(firstPosX, firstPosY, lastPosX, lastPosY) { this.fPX = firstPosX; this.fPY = firstPosY; this.lPX = lastPosX; this.lPY = lastPosY; } function rulesFor(piece) { if (piece == PAWN_W || piece == PAWN_B) { return pawnRules; } else { if (piece == KNIGHT_W || piece == KNIGHT_B) { return knightRules; } else { if (piece == ROOK_W || piece == ROOK_B) { return rookRules; } else { if (piece == BISSHOP_W || piece == BISSHOP_B) { return bisshopRules; } else { if (piece == QUEEN_W || piece == QUEEN_B) { return queenRules; } else { if (piece == KING_W || piece == KING_B) { return kingRules; } } } } } } } function initChessBoard() { chessBoard = new Array(8); chessBoard[0] = new Array(ROOK_B, KNIGHT_B, BISSHOP_B, QUEEN_B, KING_B, BISSHOP_B, KNIGHT_B, ROOK_B); chessBoard[1] = new Array(PAWN_B, PAWN_B, PAWN_B, PAWN_B, PAWN_B, PAWN_B, PAWN_B, PAWN_B); chessBoard[2] = new Array(VOID, VOID, VOID, VOID, VOID, VOID, VOID, VOID); chessBoard[3] = new Array(VOID, VOID, VOID, VOID, VOID, VOID, VOID, VOID); chessBoard[4] = new Array(VOID, VOID, VOID, VOID, VOID, VOID, VOID, VOID); chessBoard[5] = new Array(VOID, VOID, VOID, VOID, VOID, VOID, VOID, VOID); chessBoard[6] = new Array(PAWN_W, PAWN_W, PAWN_W, PAWN_W, PAWN_W, PAWN_W, PAWN_W, PAWN_W); chessBoard[7] = new Array(ROOK_W, KNIGHT_W, BISSHOP_W, QUEEN_W, KING_W, BISSHOP_W, KNIGHT_W, ROOK_W); var v3 = 0; while (v3 < 8) { var v2 = 0; while (v2 < 8) { _root['piece_' + v3 + '_' + v2].showPiece(chessBoard[v3][v2]); _root['piece_' + v3 + '_' + v2].row = v3; _root['piece_' + v3 + '_' + v2].col = v2; ++v2; } ++v3; } } function calculateMoves(row, col, side) { if (chessBoard[row][col] == VOID) { trace('Error: no piece to calculate moves for !!'); return null; } var v3 = new Array(); rules = rulesFor(chessBoard[row][col]); var v11; if (rules.isKnight) { var v8 = row - 1; var v7 = col + 2; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } v8 = row - 1; v7 = col - 2; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } v8 = row + 1; v7 = col + 2; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } v8 = row + 1; v7 = col - 2; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } v8 = row - 2; v7 = col + 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } v8 = row - 2; v7 = col - 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } v8 = row + 2; v7 = col - 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } v8 = row + 2; v7 = col + 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8) { if (chessBoard[v8][v7] == VOID || side != (chessBoard[v8][v7] & 1)) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } return v3; } if (rules.isPawn) { if (side == SIDE_PLAYER) { var v10 = false; var v6 = row - 1; if (chessBoard[v6][col] == VOID) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | col; v10 = true; } if (row == 6 && v10) { --v6; if (chessBoard[v6][col] == VOID) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | col; } } v8 = row - 1; v7 = col - 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8 && (chessBoard[v8][v7] != VOID && side != (chessBoard[v8][v7] & 1))) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } v8 = row - 1; v7 = col + 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8 && (chessBoard[v8][v7] != VOID && side != (chessBoard[v8][v7] & 1))) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } else { var v10 = false; var v6 = row + 1; if (chessBoard[v6][col] == VOID) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | col; v10 = true; } if (row == 1 && v10) { ++v6; if (chessBoard[v6][col] == VOID) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | col; } } v8 = row + 1; v7 = col - 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8 && (chessBoard[v8][v7] != VOID && side != (chessBoard[v8][v7] & 1))) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } v8 = row + 1; v7 = col + 1; if (0 <= v8 && v8 < 8 && 0 <= v7 && v7 < 8 && (chessBoard[v8][v7] != VOID && side != (chessBoard[v8][v7] & 1))) { v3[v3.length] = row << 9 | col << 6 | v8 << 3 | v7; } } return v3; } var v9 = rules.up; v6 = row - 1; for (;;) { if (!(v9 > 0 && v6 >= 0)) break; if (chessBoard[v6][col] == VOID || side != (chessBoard[v6][col] & 1)) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | col; } else { break; } if (chessBoard[v6][col] != VOID) { break; } --v6; --v9; } v9 = rules.down; v6 = row + 1; for (;;) { if (!(v9 > 0 && v6 < 8)) break; if (chessBoard[v6][col] == VOID || side != (chessBoard[v6][col] & 1)) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | col; } else { break; } if (chessBoard[v6][col] != VOID) { break; } ++v6; --v9; } v9 = rules.left; var v5 = col - 1; for (;;) { if (!(v9 > 0 && v5 >= 0)) break; if (chessBoard[row][v5] == VOID || side != (chessBoard[row][v5] & 1)) { v3[v3.length] = row << 9 | col << 6 | row << 3 | v5; } else { break; } if (chessBoard[row][v5] != VOID) { break; } --v5; --v9; } v9 = rules.right; v5 = col + 1; for (;;) { if (!(v9 > 0 && v5 < 8)) break; if (chessBoard[row][v5] == VOID || side != (chessBoard[row][v5] & 1)) { v3[v3.length] = row << 9 | col << 6 | row << 3 | v5; } else { break; } if (chessBoard[row][v5] != VOID) { break; } ++v5; --v9; } v9 = rules.up_left; v6 = row - 1; v5 = col - 1; for (;;) { if (!(v9 > 0 && v5 >= 0 && v6 >= 0)) break; if (chessBoard[v6][v5] == VOID || side != (chessBoard[v6][v5] & 1)) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | v5; } else { break; } if (chessBoard[v6][v5] != VOID) { break; } --v6; --v5; --v9; } v9 = rules.up_right; v6 = row - 1; v5 = col + 1; for (;;) { if (!(v9 > 0 && v5 < 8 && v6 >= 0)) break; if (chessBoard[v6][v5] == VOID || side != (chessBoard[v6][v5] & 1)) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | v5; } else { break; } if (chessBoard[v6][v5] != VOID) { break; } --v6; ++v5; --v9; } v9 = rules.down_left; v6 = row + 1; v5 = col - 1; for (;;) { if (!(v9 > 0 && v5 >= 0 && v6 < 8)) break; if (chessBoard[v6][v5] == VOID || side != (chessBoard[v6][v5] & 1)) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | v5; } else { break; } if (chessBoard[v6][v5] != VOID) { break; } ++v6; --v5; --v9; } v9 = rules.down_right; v6 = row + 1; v5 = col + 1; for (;;) { if (!(v9 > 0 && v5 < 8 && v6 < 8)) break; if (chessBoard[v6][v5] == VOID || side != (chessBoard[v6][v5] & 1)) { v3[v3.length] = row << 9 | col << 6 | v6 << 3 | v5; } else { return v3; } if (chessBoard[v6][v5] != VOID) { return v3; } ++v6; ++v5; --v9; } return v3; } function checkChessState(side) { var v4; var v5; var v6 = 0; while (v6 < 8) { var v3 = 0; while (v3 < 8) { if ((chessBoard[v6][v3] & 1) == getOpponent(side) && chessBoard[v6][v3] != VOID) { compMoves = calculateMoves(v6, v3, getOpponent(side)); var v1 = 0; while (v1 < compMoves.length) { v4 = compMoves[v1] >> 3 & 7; v5 = compMoves[v1] & 7; if (chessBoard[v4][v5] == KING_W && side == SIDE_PLAYER || chessBoard[v4][v5] == KING_B && side == SIDE_COMPUTER) { if (side == SIDE_PLAYER) { kingInChess(v4, v5, side); } return false; } ++v1; } } ++v3; } ++v6; } if (side == SIDE_PLAYER) { var v7 = 0; v6 = 0; while (v6 < 8) { v3 = 0; while (v3 < 8) { if ((chessBoard[v6][v3] & 1) == SIDE_PLAYER && chessBoard[v6][v3] != VOID) { v7 += select(v6, v3, true); } ++v3; } ++v6; } if (v7 == 0) { invalidateAll(); messages.gotoAndStop('Pat'); } } return true; } function computerLoose() { trace('ComputerLost'); invalidateAll(); messages.gotoAndStop(2); stop(); } function deselect(piece) { resetAllSelection(); pieceSelected = null; possiblePositions = null; } function displayMove(move, side) { var v7 = move >> 9 & 7; var v6 = move >> 6 & 7; var v5 = move >> 3 & 7; var v4 = move & 7; var v2 = ' '; if (side == SIDE_COMPUTER) { v2 += 'Comp: '; } else { v2 += 'You: '; } v2 += letters[v6]; v2 += 9 - (v7 + 1); v2 += ' - '; v2 += letters[v4]; v2 += 9 - (v5 + 1); _root.myscroll.appendText(v2); } function do_move(move, side) { var v3 = VOID; var v5 = move >> 9 & 7; var v4 = move >> 6 & 7; var v2 = move >> 3 & 7; var v1 = move & 7; if (side == SIDE_COMPUTER) { if (chessBoard[v2][v1] != VOID) { v3 = chessBoard[v2][v1]; playerScore -= chessBoard[v2][v1] >> 1; computerScore += chessBoard[v2][v1] >> 1; } chessBoard[v2][v1] = chessBoard[v5][v4]; chessBoard[v5][v4] = VOID; return v3; } else { if (chessBoard[v2][v1] != VOID) { v3 = chessBoard[v2][v1]; playerScore += chessBoard[v2][v1] >> 1; computerScore -= chessBoard[v2][v1] >> 1; } chessBoard[v2][v1] = chessBoard[v5][v4]; chessBoard[v5][v4] = VOID; return v3; } } function invalidateAll() { var v3 = 0; while (v3 < 8) { var v2 = 0; while (v2 < 8) { _root['piece_' + v3 + '_' + v2].marker.gotoAndStop('disabled'); ++v2; } ++v3; } } function movePlayer() { messages.gotoAndStop(0); resetAllSelection(); checkChessState(SIDE_PLAYER); signal.gotoAndStop('player'); } function moveRealPlayer(move, side) { var v3 = move >> 9 & 7; var v2 = move >> 6 & 7; var v5 = move >> 3 & 7; var v4 = move & 7; if (pieceSelected == null) { trace('ERROR: no piece selected'); return undefined; } if (chessBoard[v3][v2] == KING_W && chessBoard[v5][v4] == ROOK_W) { trace('rocade'); possibleRocade = false; chessBoard[v3][v2] = VOID; chessBoard[v5][v4] = VOID; if (v4 > v2) { chessBoard[v3][v2 + 2] = KING_W; chessBoard[v3][v2 + 1] = ROOK_W; _root['piece_' + v3 + '_' + (v2 + 1)].showPiece(chessBoard[v3][v2 + 1]); _root['piece_' + v3 + '_' + (v2 + 2)].showPiece(chessBoard[v3][v2 + 2]); } else { chessBoard[v3][v2 - 2] = KING_W; chessBoard[v3][v2 - 1] = ROOK_W; _root['piece_' + v3 + '_' + (v2 - 1)].showPiece(chessBoard[v3][v2 - 1]); _root['piece_' + v3 + '_' + (v2 - 2)].showPiece(chessBoard[v3][v2 - 2]); } _root['piece_' + v5 + '_' + v4].showPiece(chessBoard[v5][v4]); _root['piece_' + v3 + '_' + v2].showPiece(chessBoard[v3][v2]); } else { if (chessBoard[v3][v2] == KING_W || chessBoard[v3][v2] == ROOK_W) { possibleRocade = false; } var v7 = chessBoard[v5][v4]; if ((v7 & 1) == SIDE_COMPUTER && v7 != VOID) { trace('capture the computer piece'); } chessBoard[v5][v4] = chessBoard[v3][v2]; chessBoard[v3][v2] = VOID; _root['piece_' + v5 + '_' + v4].showPiece(chessBoard[v5][v4]); _root['piece_' + v3 + '_' + v2].showPiece(VOID); } invalidateAll(); if (v5 == 0 && chessBoard[v5][v4] == PAWN_W) { trace('promotion'); chessBoard[v5][v4] = QUEEN_W; _root['piece_' + v5 + '_' + v4].showPiece(QUEEN_W); } displayMove(move, SIDE_PLAYER); gotoAndPlay('moveComputer'); } function moveRealComputer(move) { var v6 = move >> 9 & 7; var v5 = move >> 6 & 7; var v2 = move >> 3 & 7; var v3 = move & 7; var v7 = chessBoard[v2][v3]; if ((v7 & 1) == SIDE_PLAYER && v7 != VOID) { trace('captures the player piece'); } chessBoard[v2][v3] = chessBoard[v6][v5]; chessBoard[v6][v5] = VOID; _root['piece_' + v2 + '_' + v3].showPiece(chessBoard[v2][v3]); _root['piece_' + v6 + '_' + v5].showPiece(VOID); if (v2 == 7 && chessBoard[v2][v3] == PAWN_B) { trace('promotion'); chessBoard[v2][v3] = QUEEN_B; _root['piece_' + v2 + '_' + v3].showPiece(QUEEN_B); } displayMove(move, SIDE_COMPUTER); movePlayer(); } function resetAllSelection() { var v3 = 0; while (v3 < 8) { var v2 = 0; while (v2 < 8) { if (chessBoard[v3][v2] == VOID || (chessBoard[v3][v2] & 1) == SIDE_COMPUTER) { _root['piece_' + v3 + '_' + v2].marker.gotoAndStop('disabled'); } else { _root['piece_' + v3 + '_' + v2].marker.gotoAndStop('normal'); } ++v2; } ++v3; } } function select(row, col, real) { resetAllSelection(); var v4 = calculateMoves(row, col, SIDE_PLAYER); if (possibleRocade && real != true) { if (chessBoard[row][col] == KING_W) { var v3 = col; var v8 = true; while (v8) { ++v3; if (chessBoard[row][v3] != VOID) { if (chessBoard[row][v3] == ROOK_W) { if (verifyKingState(row << 9 | col << 6 | row << 3 | col + 2, SIDE_PLAYER)) { v4[v4.length] = row << 9 | col << 6 | row << 3 | v3; } } v8 = false; } } v3 = col; v8 = true; while (v8) { --v3; if (chessBoard[row][v3] != VOID) { if (chessBoard[row][v3] == ROOK_W) { if (verifyKingState(row << 9 | col << 6 | row << 3 | col - 2, SIDE_PLAYER)) { v4[v4.length] = row << 9 | col << 6 | row << 3 | v3; } } v8 = false; } } } } var v7 = new Array(); var v6 = 0; while (v6 < v4.length) { if (verifyKingState(v4[v6], SIDE_PLAYER)) { v7[v7.length] = v4[v6]; } ++v6; } if (real != true) { v6 = 0; while (v6 < v7.length) { _root['piece_' + (v7[v6] >> 3 & 7) + '_' + (v7[v6] & 7)].marker.gotoAndStop('selectedTo'); ++v6; } pieceSelected = _root['piece_' + row + '_' + col]; } else { return v7.length; } } function kingInChess(rowKing, colKing, side) { trace(' >>>> CHESS ' + side); possibleRocade = false; if (side == SIDE_PLAYER) { messages.gotoAndStop('playerChess'); } else { messages.gotoAndStop('computerChess'); } var v4; var v6 = true; var v3 = 0; while (v3 < 8) { var v2 = 0; while (v2 < 8) { if ((chessBoard[v3][v2] & 1) == side && chessBoard[v3][v2] != VOID) { v4 = calculateMoves(v3, v2, side); disabled = true; var v1 = 0; while (v1 < v4.length) { if (verifyKingState(v4[v1], side)) { v6 = false; } ++v1; } } ++v2; } ++v3; } if (v6) { loose(side); } } function loose(side) { if (side == SIDE_COMPUTER) { computerLoose(); } else { playerLoose(); } } function playerLoose() { trace('Player Lost'); invalidateAll(); messages.gotoAndStop(3); stop(); } function search(side, depth, alpha, beta) { var v6 = -INFINITY; var v3 = new Array(); var v8 = null; var v7; var v11; var v4 = 0; while (v4 < 8) { var v1 = 0; while (v1 < 8) { if ((chessBoard[v4][v1] & 1) == side && chessBoard[v4][v1] != VOID) { v3 = v3.concat(calculateMoves(v4, v1, side)); } ++v1; } ++v4; } v4 = 0; while (v4 < v3.length) { v8 = do_move(v3[v4], side); if (depth == 0) { v7 = (side == SIDE_COMPUTER) ? computerScore : playerScore; } else { v7 = -search(getOpponent(side), depth - 1, -1 * beta, -1 * alpha); } undo_move(v3[v4], side, v8); if (v7 > v6) { v6 = v7; } if (v6 > alpha) { alpha = v6; } if (alpha >= beta) { return alpha; } ++v4; } return v6; } function shuffle(collection) { var v4 = new Array(); var v3; var v2; while (collection.length != 0) { v2 = Math.round(Math.random() * (collection.length - 1)); v3 = collection[v2]; collection.splice(v2, 1); v4.push(v3); } false; return v4; } function getOpponent(side) { if (side == SIDE_PLAYER) { return SIDE_COMPUTER; } else { return SIDE_PLAYER; } } function undo_move(move, side, pieceCaptured) { var v6 = move >> 9 & 7; var v5 = move >> 6 & 7; var v2 = move >> 3 & 7; var v1 = move & 7; if (side == SIDE_COMPUTER) { chessBoard[v6][v5] = chessBoard[v2][v1]; if (pieceCaptured != VOID) { chessBoard[v2][v1] = pieceCaptured; playerScore += chessBoard[v2][v1] >> 1; computerScore -= chessBoard[v2][v1] >> 1; } else { chessBoard[v2][v1] = VOID; } } else { chessBoard[v6][v5] = chessBoard[v2][v1]; if (pieceCaptured != VOID) { chessBoard[v2][v1] = pieceCaptured; playerScore -= chessBoard[v2][v1] >> 1; computerScore += chessBoard[v2][v1] >> 1; } else { chessBoard[v2][v1] = VOID; } } } function verifyKingState(move, side) { var v8; var v4; var v6; var v7; v8 = do_move(move, side); var v5 = 0; while (v5 < 8) { var v2 = 0; while (v2 < 8) { if ((chessBoard[v5][v2] & 1) == getOpponent(side) && chessBoard[v5][v2] != VOID) { v4 = calculateMoves(v5, v2, getOpponent(side)); var v1 = 0; while (v1 < v4.length) { v6 = v4[v1] >> 3 & 7; v7 = v4[v1] & 7; if (chessBoard[v6][v7] == KING_W && side == SIDE_PLAYER || chessBoard[v6][v7] == KING_B && side == SIDE_COMPUTER) { undo_move(move, side, v8); return false; } ++v1; } } ++v2; } ++v5; } undo_move(move, side, v8); return true; } VOID = -1; PAWN_W = 5; KNIGHT_W = 13; ROOK_W = 21; BISSHOP_W = 17; QUEEN_W = 29; KING_W = 2001; PAWN_B = 4; KNIGHT_B = 12; ROOK_B = 20; BISSHOP_B = 16; QUEEN_B = 28; KING_B = 4000; SIDE_COMPUTER = 0; SIDE_PLAYER = 1; letters = new Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'); possibleRocade = true; pawnRules = new MovementRules(); pawnRules.isPawn = true; pawnRules.up = 1; knightRules = new MovementRules(); knightRules.isKnight = true; rookRules = new MovementRules(); rookRules.up = 8; rookRules.down = 8; rookRules.left = 8; rookRules.right = 8; bisshopRules = new MovementRules(); bisshopRules.up_left = 8; bisshopRules.up_right = 8; bisshopRules.down_left = 8; bisshopRules.down_right = 8; queenRules = new MovementRules(); queenRules.up = 8; queenRules.down = 8; queenRules.left = 8; queenRules.right = 8; queenRules.up_left = 8; queenRules.up_right = 8; queenRules.down_left = 8; queenRules.down_right = 8; kingRules = new MovementRules(); kingRules.up = 1; kingRules.down = 1; kingRules.left = 1; kingRules.right = 1; kingRules.up_left = 1; kingRules.up_right = 1; kingRules.down_left = 1; kingRules.down_right = 1; poMo = new Array(); initChessBoard(); movePlayer(); myscroll.clearText(); stop(); } frame 16 { signal.gotoAndStop('comp'); messages.gotoAndStop(1); computerScore = 0; playerScore = 0; var i = 0; while (i < 8) { j = 0; while (j < 8) { if (chessBoard[i][j] != VOID) { if ((chessBoard[i][j] & 1) == SIDE_COMPUTER) { computerScore += chessBoard[i][j] >> 1; playerScore -= chessBoard[i][j] >> 1; } else { if ((chessBoard[i][j] & 1) == SIDE_PLAYER) { computerScore -= chessBoard[i][j] >> 1; playerScore += chessBoard[i][j] >> 1; } } } ++j; } ++i; } } frame 17 { computerScore = 0; INFINITY = 10000000; s = getTimer(); trace('my turn'); alpha = -INFINITY; beta = INFINITY; bestMove = null; bestScore = -INFINITY; allPossibleMoves = new Array(); capturedPiece = null; moveScore; compMoves; side = SIDE_COMPUTER; depth = MAXDEPTH; var i = 0; while (i < 8) { var j = 0; while (j < 8) { if ((chessBoard[i][j] & 1) == side && chessBoard[i][j] != VOID) { compMoves = calculateMoves(i, j, side); allPossibleMoves = allPossibleMoves.concat(compMoves); } ++j; } ++i; } allPossibleMoves = shuffle(allPossibleMoves); index = 0; } frame 18 { if (index < allPossibleMoves.length) { progressBar.show(index, allPossibleMoves.length - 1); capturedPiece = do_move(allPossibleMoves[index], side); moveScore = -search(getOpponent(side), depth, -1 * beta, -1 * alpha); } else { gotoAndPlay('searchDone'); } } frame 19 { undo_move(allPossibleMoves[index], side, capturedPiece); if (moveScore > bestScore) { bestScore = moveScore; bestMove = allPossibleMoves[index]; } if (bestScore > alpha) { alpha = bestScore; } if (alpha >= beta) { gotoAndPlay('searchDone'); } ++index; gotoAndPlay(_currentframe - 1); } frame 20 { trace('best: ' + bestMove); delete allPossibleMoves; trace('time ' + (getTimer() - s)); if (bestMove == null) { messages.gotoAndStop('Pat'); } isPat = checkChessState(SIDE_COMPUTER); tempP = do_move(bestMove, SIDE_COMPUTER); isNotMat = checkChessState(SIDE_COMPUTER); undo_move(bestMove, SIDE_COMPUTER, tempP); if (isNotMat) { moveRealComputer(bestMove); } else { if (isPat) { messages.gotoAndStop('Pat'); } else { computerLoose(); } } stop(); }




http://swfchan.com/27/132173/info.shtml
Created: 19/2 -2019 22:16:36 Last modified: 19/2 -2019 22:16:36 Server time: 29/04 -2024 04:52:19