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

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

seeds.swf

This is the info page for
Flash #15839

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


ActionScript [AS1/AS2]
Frame 1
APIBootstrap.main(this); _lockroot = true;
Symbol 20480 MovieClip [__Packages.com.kongregate.client.RequestHandler] Frame 0
class com.kongregate.client.RequestHandler { var mResponseHandlers; function RequestHandler () { reset(); } function reset() { mNextRequestID = 0; mResponseHandlers = new Object(); } function addRequest(callback, thisObject) { if (callback != undefined) { mResponseHandlers[getRequestID()] = (thisObject ? (com.kongregate.common.util.Utils.bind(callback, thisObject)) : (callback)); } } function getRequestID() { return(mNextRequestID); } function nextRequest() { mNextRequestID++; } function getResponseHandler(requestID) { return(mResponseHandlers[requestID]); } function removeResponseHandler(requestID) { mResponseHandlers[requestID] = undefined; } function fireResponse(requestID, args) { var _local4 = getResponseHandler(requestID); if (_local4) { _local4(args); removeResponseHandler(requestID); } } static var mNextRequestID = 0; }
Symbol 20481 MovieClip [__Packages.com.kongregate.common.comm.MessageHandler] Frame 0
class com.kongregate.common.comm.MessageHandler { function MessageHandler () { } }
Symbol 20482 MovieClip [__Packages.com.kongregate.client.SaveGameServices] Frame 0
class com.kongregate.client.SaveGameServices extends com.kongregate.client.RequestHandler implements com.kongregate.common.comm.MessageHandler { var addRequest, getRequestID, fireResponse; function SaveGameServices () { super(); } static function getInstance() { if (!mInstance) { mInstance = new com.kongregate.client.SaveGameServices(); } return(mInstance); } function save(game, callback, thisObject) { addRequest(callback, thisObject); var _local5 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_GAME_SAVE); _local5.addParam(com.kongregate.common.comm.Opcode.PARAM_DATA, game); if (!com.kongregate.client.KongregateServices.getInstance().sendMessage(_local5)) { var _local6 = getRequestID(); fireResponse(_local6, {success:false, error:com.kongregate.common.error.Error.SAVE_TOO_LARGE}); } } function load(callback, thisObject) { addRequest(callback, thisObject); var _local4 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_GAME_LOAD); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local4); } function clear(callback, thisObject) { addRequest(callback, thisObject); var _local4 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_GAME_DELETE); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local4); } function handleMessage(msg) { if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_GAME_SAVE) { fireResponse(msg.getRequestID(), {success:msg.isSuccessful(), error:msg.getError()}); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_GAME_LOAD) { var _local3 = new Object(); _local3.data = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_DATA); _local3.success = msg.isSuccessful(); _local3.error = msg.getError(); fireResponse(msg.getRequestID(), _local3); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_GAME_DELETE) { fireResponse(msg.getRequestID(), {success:msg.isSuccessful(), error:msg.getError()}); } } static var mInstance = undefined; }
Symbol 20483 MovieClip [__Packages.Base64] Frame 0
#initclip if (!Base64) { //(_global.Base64 = function () { super(); }) extends Object var _local1 = (_global.Base64 /* register */).prototype; (_global.Base64 /* register */).Encode = function (str) { var _local3 = new Base64(); return(_local3.encodeBase64(str)); }; (_global.Base64 /* register */).Decode = function (str) { var _local3 = new Base64(); return(_local3.decodeBase64(str)); }; (_global.Base64 /* register */).StringReplaceAll = function (source, find, replacement) { return(source.split(find).join(replacement)); }; (_global.Base64 /* register */).InitReverseChars = function () { Base64._CharsReverseLookup = new Array(); var _local2 = 0; for ( ; _local2 < Base64._Chars.length ; _local2++) { Base64._CharsReverseLookup[Base64._Chars[_local2]] = _local2; } return(true); }; (_global.Base64 /* register */).UrlDecode = function (str) { str = Base64.StringReplaceAll(str, "+", " "); str = _global.unescape(str); return(str); }; (_global.Base64 /* register */).UrlEncode = function (str) { str = _global.escape(str); str = Base64.StringReplaceAll(str, "+", "%2B"); str = Base64.StringReplaceAll(str, "%20", "+"); return(str); }; _local1.setBase64Str = function (str) { this._base64Str = str; this._base64Count = 0; }; _local1.readBase64 = function () { if (!this._base64Str) { return(Base64._EndOfInput); } if (this._base64Count >= this._base64Str.length) { return(Base64._EndOfInput); } var _local2 = this._base64Str.charCodeAt(this._base64Count) & 255; this._base64Count++; return(_local2); }; _local1.encodeBase64 = function (str) { this.setBase64Str(str); var _local3 = ""; var _local4 = new Array(3); var _local5 = 0; var _local6 = false; while ((!_local6) && (((_local4[0] = this.readBase64())) != Base64._EndOfInput)) { _local4[1] = this.readBase64(); _local4[2] = this.readBase64(); _local3 = _local3 + Base64._Chars[_local4[0] >> 2]; if (_local4[1] != Base64._EndOfInput) { _local3 = _local3 + Base64._Chars[((_local4[0] << 4) & 48) | (_local4[1] >> 4)]; if (_local4[2] != Base64._EndOfInput) { _local3 = _local3 + Base64._Chars[((_local4[1] << 2) & 60) | (_local4[2] >> 6)]; _local3 = _local3 + Base64._Chars[_local4[2] & 63]; } else { _local3 = _local3 + Base64._Chars[(_local4[1] << 2) & 60]; _local3 = _local3 + "="; _local6 = true; } } else { _local3 = _local3 + Base64._Chars[(_local4[0] << 4) & 48]; _local3 = _local3 + "="; _local3 = _local3 + "="; _local6 = true; } _local5 = _local5 + 4; if (_local5 >= 76) { _local3 = _local3 + newline; _local5 = 0; } } return(_local3); }; _local1.readReverseBase64 = function () { if (!this._base64Str) { return(Base64._EndOfInput); } while (true) { if (this._base64Count >= this._base64Str.length) { return(Base64._EndOfInput); } var _local2 = this._base64Str.charAt(this._base64Count); this._base64Count++; if (Base64._CharsReverseLookup[_local2]) { return(Base64._CharsReverseLookup[_local2]); } if (_local2 == "A") { return(0); } } return(Base64._EndOfInput); }; _local1.ntos = function (n) { var _local3 = n.toString(16); if (_local3.length == 1) { _local3 = "0" + _local3; } _local3 = "%" + _local3; return(_global.unescape(_local3)); }; _local1.decodeBase64 = function (str) { this.setBase64Str(str); var _local3 = ""; var _local4 = new Array(4); var _local5 = false; while ((!_local5) && ((((_local4[0] = this.readReverseBase64())) != Base64._EndOfInput) && (((_local4[1] = this.readReverseBase64())) != Base64._EndOfInput))) { _local4[2] = this.readReverseBase64(); _local4[3] = this.readReverseBase64(); _local3 = _local3 + this.ntos(((_local4[0] << 2) & 255) | (_local4[1] >> 4)); if (_local4[2] != Base64._EndOfInput) { _local3 = _local3 + this.ntos(((_local4[1] << 4) & 255) | (_local4[2] >> 2)); if (_local4[3] != Base64._EndOfInput) { _local3 = _local3 + this.ntos(((_local4[2] << 6) & 255) | _local4[3]); } else { _local5 = true; } } else { _local5 = true; } } return(_local3); }; _local1.toHex = function (n) { var _local3 = ""; var _local4 = true; var _local5 = 32; while (_local5 > 0) { _local5 = _local5 - 4; var _local6 = (n >> _local5) & 15; if ((!_local4) || (_local6 != 0)) { _local4 = false; _local3 = _local3 + Base64._Digits[_local6]; } } return(((_local3 == "") ? "0" : (_local3))); }; _local1.pad = function (str, len, pad) { var _local5 = str; var _local6 = str.length; for ( ; _local6 < len ; _local6++) { _local5 = pad + _local5; } return(_local5); }; _local1.encodeHex = function (str) { var _local3 = ""; var _local4 = 0; for ( ; _local4 < str.length ; _local4++) { _local3 = _local3 + this.pad(this.toHex(str.charCodeAt(_local4) & 255), 2, "0"); } return(_local3); }; _local1.decodeHex = function (str) { var _local3 = ""; var _local4 = ""; var _local5 = 0; for ( ; _local5 < str.length ; _local5++) { _local4 = _local4 + str.charAt(_local5); if (_local4.length == 2) { _local3 = _local3 + this.ntos(_global.parseInt("0x" + _local4)); _local4 = ""; } } return(_local3); }; ASSetPropFlags(_local1, null, 1); (_global.Base64 /* register */)._EndOfInput = -1; (_global.Base64 /* register */)._Chars = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/"); (_global.Base64 /* register */)._CharsReverseLookupInited = Base64.InitReverseChars(); (_global.Base64 /* register */)._Digits = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); } #endinitclip
Symbol 20484 MovieClip [__Packages.com.kongregate.common.comm.local.MessageConnectionListener] Frame 0
class com.kongregate.common.comm.local.MessageConnectionListener { function MessageConnectionListener () { } }
Symbol 20485 MovieClip [__Packages.com.kongregate.common.comm.local.DefaultMessageListener] Frame 0
class com.kongregate.common.comm.local.DefaultMessageListener implements com.kongregate.common.comm.local.MessageConnectionListener { function DefaultMessageListener () { } function onMessage(msg) { if (message != undefined) { message(msg); } } function onConnect() { if (connect != undefined) { connect(); } } function onError() { if (error != undefined) { error(); } } function onClose() { if (close != undefined) { close(); } } var message = undefined; var connect = undefined; var error = undefined; var close = undefined; }
Symbol 20486 MovieClip [__Packages.com.kongregate.common.error.Error] Frame 0
class com.kongregate.common.error.Error { function Error () { } static var NONE = 0; static var NOT_AUTHORIZED = 1; static var SERVER_ERROR = 2; static var SAVE_TOO_LARGE = 3; static var NOT_INITIALIZED = 4; }
Symbol 20487 MovieClip [__Packages.com.kongregate.common.stats.Statistic] Frame 0
class com.kongregate.common.stats.Statistic { var mName, mType, mShow, mDesc; function Statistic (name, type, show, desc) { mName = name; mType = type; mShow = show; mDesc = desc; } function getName() { return(mName); } function getType() { return(mType); } function isDisplayedInTable() { return(mShow); } function isGreaterThanOrEqualTo(left, right) { if (mType == TYPE_MIN) { return(left <= right); } return(left >= right); } function toHash() { return({name:mName, stat_type:mType, description:mDesc}); } static var TYPE_MAX = "Max"; static var TYPE_MIN = "Min"; static var TYPE_ADD = "Add"; static var TYPE_REPLACE = "Rep"; static var HIGH_SCORE = "HighScore"; static var SORT_ASCENDING = "asc"; static var SORT_DESCENDING = "desc"; }
Symbol 20488 MovieClip [__Packages.com.kongregate.events.EventListener] Frame 0
class com.kongregate.events.EventListener { var callback, eventName, listenForObject; function EventListener (eventName, callback, listenForObject) { this.callback = callback; this.eventName = eventName; this.listenForObject = listenForObject; } static function create(eventName, callback, listenForObject) { var _local5 = new com.kongregate.events.EventListener(eventName, callback, listenForObject); com.kongregate.events.EventManager.registerListener(_local5); } static function createBulkFromArray(names, object, listenForObject) { var _local5 = 0; for ( ; _local5 < names.length ; _local5++) { create(names[_local5], object[names[_local5]].bind(object), listenForObject); } } function listenTo(event) { return((event.name == eventName) && ((listenForObject && (listenForObject == event.src)) || (!listenForObject))); } function issueCallback(event) { callback.call(null, event); } }
Symbol 20489 MovieClip [__Packages.APIBootstrap] Frame 0
class APIBootstrap { function APIBootstrap () { } static function main() { _global.kongregate_vars = new Object(); for (var i in _level0) { _global.kongregate_vars[i] = _level0[i]; } var _local2 = new MovieClipLoader(); var _local3 = new Object(); _local3.onLoadStart = onLoadStart; _local3.onLoadInit = onLoadInit; _local2.addListener(_local3); _local2.loadClip(_global.kongregate_vars.game_swf, "_level0"); } static function onLoadStart(target) { target._lockroot = true; for (var i in _global.kongregate_vars) { target[i] = _global.kongregate_vars[i]; _global.ASSetPropFlags(target, i, 7); } com.kongregate.common.util.Log.init(); com.kongregate.common.util.Log.info("Creating services..."); target.kongregateServices = com.kongregate.client.KongregateServices.getInstance(); target.kongregateScores = com.kongregate.client.HighScoreServices.getInstance(); target.kongregateStats = com.kongregate.client.StatServices.getInstance(); target.metagameServices = com.kongregate.client.MetagameServices.getInstance(); _global.ASSetPropFlags(target, ["kongregateServices", "kongregateScores", "kongregateStats", "metagameServices"], 7); } static function onLoadInit(target) { } //ASSetPropFlags(_local1, null, 1); }
Symbol 20490 MovieClip [__Packages.com.kongregate.common.util.JSON] Frame 0
class com.kongregate.common.util.JSON { function JSON () { } static function stringify(arg) { var _local6 = ""; switch (typeof(arg)) { case "object" : if (arg) { if (arg instanceof Array) { var _local4 = 0; for ( ; _local4 < arg.length ; _local4++) { var _local7 = stringify(arg[_local4]); if (_local6) { _local6 = _local6 + ","; } _local6 = _local6 + _local7; } return(("[" + _local6) + "]"); } if (typeof(arg.toString) != "undefined") { for (var _local4 in arg) { var _local7 = arg[_local4]; if ((typeof(_local7) != "undefined") && (typeof(_local7) != "function")) { _local7 = stringify(_local7); if (_local6) { _local6 = _local6 + ","; } _local6 = _local6 + ((stringify(_local4) + ":") + _local7); } } return(("{" + _local6) + "}"); } } return("null"); case "number" : return((_global.isFinite(arg) ? (String(arg)) : "null")); case "string" : var _local5 = arg.length; _local6 = "\""; var _local4 = 0; for ( ; _local4 < _local5 ; _local4 = _local4 + 1) { var _local3 = arg.charAt(_local4); if (_local3 >= " ") { if ((_local3 == "\\") || (_local3 == "\"")) { _local6 = _local6 + "\\"; } _local6 = _local6 + _local3; } else { switch (_local3) { case "\b" : _local6 = _local6 + "\\b"; break; case "\f" : _local6 = _local6 + "\\f"; break; case newline : _local6 = _local6 + "\\n"; break; case "\r" : _local6 = _local6 + "\\r"; break; case "\t" : _local6 = _local6 + "\\t"; break; default : _local3 = _local3.charCodeAt(); _local6 = _local6 + (("\\u00" + Math.floor(_local3 / 16).toString(16)) + (_local3 % 16).toString(16)); } } } return(_local6 + "\""); case "boolean" : return(String(arg)); } return("null"); } static function parse(text) { if ((text == null) || ((text == undefined) || ((text.length == 0) || (typeof(text) != "string")))) { return(new Object()); } var at = 0; var ch = " "; var _value; var _error = function (m) { }; var _next = function () { ch = text.charAt(at); at = at + 1; return(ch); }; var _white = function () { while (ch) { if (ch <= " ") { _next(); } else if (ch == "/") { switch (_next()) { case "/" : while (_next() && ((ch != newline) && (ch != "\r"))) { } break; case "*" : _next(); for(;;){ if (ch) { if (ch == "*") { if (_next() == "/") { _next(); // unexpected jump } } else { _next(); } } else { _error("Unterminated comment"); } }; break; default : _error("Syntax error"); } } else { break; } } }; var _string = function () { var _local3 = ""; var _local6 = false; if (ch == "\"") { while (_next()) { if (ch == "\"") { _next(); return(_local3); } if (ch == "\\") { switch (_next()) { case "b" : _local3 = _local3 + "\b"; break; case "f" : _local3 = _local3 + "\f"; break; case "n" : _local3 = _local3 + newline; break; case "r" : _local3 = _local3 + "\r"; break; case "t" : _local3 = _local3 + "\t"; break; case "u" : var _local5 = 0; var _local2 = 0; for ( ; _local2 < 4 ; _local2 = _local2 + 1) { var _local4 = _global.parseInt(_next(), 16); if (!_global.isFinite(_local4)) { _local6 = true; break; } _local5 = (_local5 * 16) + _local4; } if (_local6) { _local6 = false; break; } _local3 = _local3 + String.fromCharCode(_local5); break; default : _local3 = _local3 + ch; } } else { _local3 = _local3 + ch; } } } _error("Bad string"); }; var _array = function () { var _local2 = []; if (ch == "[") { _next(); _white(); if (ch == "]") { _next(); return(_local2); } while (ch) { _local2.push(_value()); _white(); if (ch == "]") { _next(); return(_local2); } if (ch != ",") { break; } _next(); _white(); } } _error("Bad array"); }; var _object = function () { var _local3 = {}; if (ch == "{") { _next(); _white(); if (ch == "}") { _next(); return(_local3); } while (ch) { var _local2 = _string(); _white(); if (ch != ":") { break; } _next(); _local3[_local2] = _value(); _white(); if (ch == "}") { _next(); return(_local3); } if (ch != ",") { break; } _next(); _white(); } } _error("Bad object"); }; var _number = function () { var _local2 = ""; if (ch == "-") { _local2 = "-"; _next(); } while ((ch >= "0") && (ch <= "9")) { _local2 = _local2 + ch; _next(); } if (ch == ".") { _local2 = _local2 + "."; while (_next() && ((ch >= "0") && (ch <= "9"))) { _local2 = _local2 + ch; } } var _local3 = 1 * _local2; if (!_global.isFinite(_local3)) { _error("Bad number"); } else { return(_local3); } }; var _word = function () { switch (ch) { case "t" : if ((_next() == "r") && ((_next() == "u") && (_next() == "e"))) { _next(); return(true); } break; case "f" : if ((_next() == "a") && ((_next() == "l") && ((_next() == "s") && (_next() == "e")))) { _next(); return(false); } break; case "n" : if (!((_next() == "u") && ((_next() == "l") && (_next() == "l")))) { break; } _next(); return(null); } _error("Syntax error"); }; _value = function () { _white(); switch (ch) { case "{" : return(_object()); case "[" : return(_array()); case "\"" : return(_string()); case "-" : return(_number()); } return((((ch >= "0") && (ch <= "9")) ? (_number()) : (_word()))); }; return(_value()); } }
Symbol 20491 MovieClip [__Packages.com.kongregate.common.comm.Message] Frame 0
class com.kongregate.common.comm.Message { var mOpcode, mParams; function Message () { mOpcode = ""; mParams = new Object(); } function setOpcode(opcode) { mOpcode = opcode; } function addParam(key, value) { mParams[key] = value; } function getOpcode() { return(mOpcode); } function getParam(key) { return(mParams[key]); } function getParams() { return(mParams); } function setParams(params) { mParams = params; } function getRequestID() { return(getParam(com.kongregate.common.comm.Opcode.PARAM_REQUEST_ID)); } function getMessageID() { return(getParam(com.kongregate.common.comm.Opcode.PARAM_MESSAGE_ID)); } function isSuccessful() { return(getParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS)); } function getError() { var _local2 = getParam(com.kongregate.common.comm.Opcode.PARAM_ERROR); return((_local2 ? (com.kongregate.common.error.Error.NONE) : (_local2))); } static function fromOpcode(opcode) { var _local3 = new com.kongregate.common.comm.Message(); _local3.setOpcode(opcode); return(_local3); } static function fromString(text) { var _local3 = com.kongregate.common.util.JSON.parse(text); var _local4 = fromOpcode(_local3.mOpcode); for (var key in _local3.mParams) { _local4.addParam(key, _local3.mParams[key]); } return(_local4); } function toString() { return(com.kongregate.common.util.JSON.stringify(this)); } function toBase64() { return(Base64.Encode(toString())); } static function fromBase64(base64) { return(fromString(Base64.Decode(base64))); } static function fromObject(obj) { var _local3 = fromOpcode(obj.mOpcode); _local3.setParams(obj.mParams); return(_local3); } static var mInitialized = false; }
Symbol 20492 MovieClip [__Packages.com.kongregate.client.StatServices] Frame 0
class com.kongregate.client.StatServices implements com.kongregate.common.comm.MessageHandler { function StatServices () { } static function getInstance() { if (mInstance == undefined) { mInstance = new com.kongregate.client.StatServices(); } return(mInstance); } function handleMessage(msg) { if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_HELLO) { if (mQueue.length > 0) { var _local3 = createSubmitMessage(); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local3); } } } function isQueueRequired() { return(!com.kongregate.client.KongregateServices.getInstance().isConnected()); } function queueSubmit(name, value) { if ((name != undefined) && (value != undefined)) { mQueue.push({name:name, value:value}); } } function createSubmitMessage(name, value) { var _local4 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_STATS_SUBMIT); var _local5 = new Array(); var _local6 = 0; for ( ; _local6 < mQueue.length ; _local6++) { _local5.push(mQueue[_local6]); } mQueue.splice(0); if ((name != undefined) && (value != undefined)) { _local5.push({name:name, value:value}); } _local4.addParam(com.kongregate.common.comm.Opcode.PARAM_STATS, _local5); return(_local4); } function submit(name, value) { if (isQueueRequired()) { queueSubmit(name, value); } else { var _local4 = createSubmitMessage(name, value); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local4); } } function submitArray(stats) { var _local3 = 0; for ( ; _local3 < stats.length ; _local3++) { queueSubmit(stats[_local3].name, stats[_local3].value); } if (!isQueueRequired()) { var _local4 = createSubmitMessage(); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local4); } } static var mInstance = undefined; var mStats = undefined; var mStatsRegistered = false; var mQueue = new Array(); }
Symbol 20493 MovieClip [__Packages.com.kongregate.client.MetagameServices] Frame 0
class com.kongregate.client.MetagameServices extends com.kongregate.client.RequestHandler implements com.kongregate.common.comm.MessageHandler { function MetagameServices () { super(); } static function getInstance() { if (mInstance == undefined) { mInstance = new com.kongregate.client.MetagameServices(); } return(mInstance); } function init() { com.kongregate.common.util.Log.info("Initializing Metagame Services..."); if (com.kongregate.client.KongregateServices.getInstance().isGuest()) { com.kongregate.events.Event.create("onInit", {success:false, error:com.kongregate.common.error.Error.NOT_AUTHORIZED}); return(undefined); } if (mTotalCards == 0) { mInitBarrier = new com.kongregate.events.Barrier(["cardInfo", "myCardInfo", "metagameInfo", "deckInfo"], com.kongregate.common.util.Utils.bind(onInitComplete, this)); } else { mInitBarrier = new com.kongregate.events.Barrier(["metagameInfo"], com.kongregate.common.util.Utils.bind(onInitComplete, this)); } com.kongregate.common.util.Log.info("Initialization barrier created."); mInfoObject = new Object(); requestCardInfo(0); requestMyCardInfo(); requestDeckList(); com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames/info", new Object(), "GET", onInfoMessage, this); } function onInfoMessage(event) { var _local3 = event.msg; var _local4 = _local3.getParams(); setInfo(_local4); mInfoObject = {success:_local3.getParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS), error:_local3.getParam(com.kongregate.common.comm.Opcode.PARAM_ERROR)}; mInitBarrier.setFlag("metagameInfo"); } function setInfo(info) { mOpponent = info[com.kongregate.common.comm.Opcode.PARAM_OPPONENT]; mPlayerNum = info[com.kongregate.common.comm.Opcode.PARAM_PLAYER_NO]; mMetagameID = info[com.kongregate.common.comm.Opcode.PARAM_ID]; mSecretKey = info[com.kongregate.common.comm.Opcode.PARAM_KEY]; mDecksSelected = info[com.kongregate.common.comm.Opcode.PARAM_DECKS_SELECTED]; mGameType = info[com.kongregate.common.comm.Opcode.PARAM_GAME_TYPE]; mOpponentAvatar = info.opponent_avatar; } function onInitComplete() { if (mMyCards == undefined) { buildMyCards(); } com.kongregate.events.Event.create(this, "onInit", {id:mMetagameID, opponent:mOpponent, success:mInfoObject.success, error:mInfoObject.error}); } function requestGameState() { var _local2 = mState == undefined; if (com.kongregate.client.KongregateServices.getInstance().isGuest()) { com.kongregate.events.Event.create(this, "onGameState", {success:false, error:com.kongregate.common.error.Error.NOT_AUTHORIZED}); return(undefined); } if (mMetagameID == undefined) { com.kongregate.events.Event.create(this, "onGameState", {success:false, error:com.kongregate.common.error.Error.NOT_INITIALIZED}); return(undefined); } var _local3 = function (data) { var _local3 = data != undefined; if (_local3) { this.mStateString = data; } com.kongregate.events.Event.create(this, "onGameState", {success:_local3, error:(_local3 ? (com.kongregate.common.error.Error.NONE) : (com.kongregate.common.error.Error.SERVER_ERROR))}); }; var _local4 = ("/metagames/" + mMetagameID.toString()) + ".json"; var _local5 = new LoadVars(); var _local6 = new LoadVars(); _local6.onData = com.kongregate.common.util.Utils.bind(_local3, this); _local5.ts = getTimer(); _local5.key = mSecretKey; _local5.player_no = getPlayerNum(); if (_local2) { _local5.all = true; } _local5.sendAndLoad(_local4, _local6, "GET"); } function requestCardInfo(startCard) { if (com.kongregate.client.KongregateServices.getInstance().isGuest()) { com.kongregate.events.Event.create(this, "onCardList", {success:false, error:com.kongregate.common.error.Error.NOT_AUTHORIZED}); return(undefined); } com.kongregate.common.util.Log.info((("Requesting " + CARD_REQUEST_SIZE) + " cards starting at #") + startCard); var _local3 = new LoadVars(); var _local4 = new LoadVars(); _local4.onData = com.kongregate.common.util.Utils.bind(onCardList, this); _local3.ts = getTimer(); _local3.num = CARD_REQUEST_SIZE; _local3.first = startCard; _local3.sendAndLoad("/cards.json", _local4, "GET"); } function onCardList(data) { var _local3 = data != undefined; if (_local3) { var _local4 = com.kongregate.common.util.JSON.parse(data); var _local5 = _local4.cards.length; var _local6 = mNumCards == 0; mNumCards = mNumCards + _local5; com.kongregate.common.util.Log.info("Cards downloaded: " + mNumCards); var _local7 = 0; for ( ; _local7 < _local5 ; _local7++) { var _local8 = _local4.cards[_local7]; mCards[_local8.id] = _local8; } if (_local6) { mPaths = _local4.paths; mTotalCards = _local4.total_cards; var _local9 = (mTotalCards / CARD_REQUEST_SIZE) - 1; if ((mTotalCards % CARD_REQUEST_SIZE) > 0) { _local9++; } var _local10 = 1; for ( ; _local10 < _local9 ; _local10++) { requestCardInfo(_local10 * CARD_REQUEST_SIZE); } } else if (mNumCards >= mTotalCards) { com.kongregate.common.util.Log.info("Card list complete!"); mInitBarrier.setFlag("cardInfo"); } } else { com.kongregate.common.util.Log.error("Error getting card data!"); } } function getTotalNumCards() { return(mTotalCards); } function requestMyCardInfo() { if (com.kongregate.client.KongregateServices.getInstance().isGuest()) { com.kongregate.events.Event.create(this, "onMyCardList", {success:false, error:com.kongregate.common.error.Error.NOT_AUTHORIZED}); return(undefined); } var _local2 = com.kongregate.client.KongregateServices.getInstance().getUsername(); com.kongregate.common.util.Log.info("Requesting my card list for: " + _local2); var _local3 = new LoadVars(); var _local4 = new LoadVars(); _local4.onData = com.kongregate.common.util.Utils.bind(onMyCardList, this); _local3.ts = getTimer(); _local3.sendAndLoad(("/accounts/" + _local2) + "/cards.json", _local4, "GET"); } function onMyCardList(data) { var _local3 = com.kongregate.common.util.JSON.parse(data); var _local4 = (data != undefined) && (_local3.success == true); if (_local4) { mMyCardIDs = _local3.cards; mInitBarrier.setFlag("myCardInfo"); } else { com.kongregate.common.util.Log.error("Couldn't retrieve list of my cards: " + data); } } function requestDeckList() { if (com.kongregate.client.KongregateServices.getInstance().isGuest()) { com.kongregate.events.Event.create(this, "onDeckList", {success:false, error:com.kongregate.common.error.Error.NOT_AUTHORIZED}); return(undefined); } com.kongregate.common.util.Log.info("Requesting deck list..."); com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/decks.json", new Object(), "GET", onDeckList, this); } function onDeckList(event) { var _local3 = event.msg; var _local4 = event.success; var _local5 = event.error; if (_local4) { var _local6 = _local3.getParam(com.kongregate.common.comm.Opcode.PARAM_DECKS); var _local7 = new Object(); var _local8 = 0; for ( ; _local8 < _local6.length ; _local8++) { var _local9 = _local6[_local8].name; _local7[_local9] = _local6[_local8]; } if (!mDecks) { mInitBarrier.setFlag("deckInfo"); } mDecks = _local7; com.kongregate.events.Event.create(this, "onDeckList", {success:true, decks:mDecks}); } else { com.kongregate.events.Event.create(this, "onDeckList", {success:false, error:_local5}); } } function reset() { mOpponent = undefined; mMetagameID = undefined; mStateString = undefined; mPlayerNum = undefined; mSecretKey = undefined; mInfoObject = undefined; mGameType = undefined; mOpponentAvatar = undefined; resetDeckSelectionState(); resetState(); } function resetState() { delete mState; mState = undefined; } function resetDeckSelectionState() { mMyDeckSelected = false; mOpponentDeckSelected = false; } function createGame(gameType) { var _local3 = new Object(); resetDeckSelectionState(); if (gameType) { _local3.game_type = com.kongregate.common.util.JSON.stringify(gameType); } com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames/host", _local3, "POST", onCreateGame, this); } function onCreateGame(event) { var _local3 = event.msg.getParam(com.kongregate.common.comm.Opcode.PARAM_INFO); setInfo(_local3); com.kongregate.events.Event.create(this, "onHostGame", {success:event.success, error:event.error}); } function chooseDeck(deckName) { var _local3 = {deck:deckName}; com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames/choose_deck", _local3, "POST", onChooseDeck, this); } function chooseRandomDeck(allCards) { var _local3 = (allCards ? ({random_all:true}) : ({random:true})); com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames/choose_deck", _local3, "POST", onChooseDeck, this); } function onChooseDeck(event) { var _local3 = event.success; mMyDeckSelected = _local3; fireChooseDeckEvent(_local3); if (_local3) { notifyDeckSelected(); } else { com.kongregate.common.util.Log.error("Deck selection failed"); } } function fireChooseDeckEvent(success) { com.kongregate.events.Event.create(this, "onChooseDeck", {self:mMyDeckSelected, opponent:mOpponentDeckSelected, success:success}); } function requestGameList() { com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames.json", new Object(), "GET", onGameList, this); } function onGameList(event) { var _local3 = event.msg; com.kongregate.events.Event.create(this, "onGameList", {success:event.success, list:_local3.getParam(com.kongregate.common.comm.Opcode.PARAM_LIST)}); } function joinGame(id) { resetDeckSelectionState(); com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames/join", {id:id}, "POST", onJoinGame, this); } function onJoinGame(event) { var _local3 = event.success; if (_local3) { var _local4 = event.msg.getParam(com.kongregate.common.comm.Opcode.PARAM_INFO); setInfo(_local4); notifyJoined(); } com.kongregate.events.Event.create(this, "onJoinGame", {success:_local3, error:event.error}); } function playNow(gameType) { var _local3 = new Object(); if (gameType) { _local3.game_type = com.kongregate.common.util.JSON.stringify(gameType); } com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames/playnow", _local3, "POST", onPlayNow, this); } function onPlayNow(event) { var _local3 = event.msg; if (event.success) { var _local4 = _local3.getParam(com.kongregate.common.comm.Opcode.PARAM_RESULT); if (_local4 == "host") { onCreateGame({msg:_local3, success:true, error:com.kongregate.common.error.Error.NONE}); } else if (_local4 == "join") { onJoinGame({msg:_local3, success:true, error:com.kongregate.common.error.Error.NONE}); } } } function quitGame() { com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/metagames/quit", new Object(), "POST", onQuitGame, this); var _local2 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_META_QUIT); com.kongregate.client.KongregateServices.getInstance().sendToPlayer(_local2, getOpponent()); } function onQuitGame(event) { com.kongregate.events.Event.create(this, "onQuitGame", {success:event.success, error:event.error, reason:event.reason}); } function notifyJoined() { var _local2 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_META_JOINED); _local2.addParam(com.kongregate.common.comm.Opcode.PARAM_USER, getOpponent()); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local2); } function notifyDeckSelected() { var _local2 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_META_DECK_SELECTED); _local2.addParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS, true); _local2.addParam(com.kongregate.common.comm.Opcode.PARAM_GAME_ID, getID()); com.kongregate.client.KongregateServices.getInstance().sendToPlayer(_local2, getOpponent()); } function getState() { if (mStateString) { if (!mState) { mState = new Object(); } var _local2 = com.kongregate.common.util.JSON.parse(mStateString); updateState(_local2); mStateString = undefined; } return(mState); } function sendEvent(type, choice) { var _local4 = {player_no:getPlayerNum(), format:"json", state:getPhase(), id:getID()}; var _local5 = "choose_combat"; if (type == "pass") { _local5 = "pass"; } else if (typeof(choice) == "number") { _local4.combat_choice = type; _local4.combat_choice_no = choice; } else if (typeof(choice) == "string") { _local4.maneuver_choice = choice; _local5 = "choose_maneuver"; } else { _local4.combat_choice = type; } _local4.key = getSecretKey(); var _local6 = "/metagames/" + _local5; com.kongregate.client.KongregateServices.getInstance().doHttpRequest(_local6, _local4, "POST", onEvent, this); } function onEvent(event) { var _local3 = event.msg; var _local4 = event.success; var _local5 = event.error; var _local6 = _local3.getParam(com.kongregate.common.comm.Opcode.PARAM_INVALIDATED); com.kongregate.common.util.Log.debug((("Metagame Event Result: success=" + _local4) + ", invalidated: ") + _local6); if (_local4) { if (_local6 == true) { var _local7 = _local3.getParam(com.kongregate.common.comm.Opcode.PARAM_STATE); updateState(_local7); var _local8 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_META_INVALIDATE); _local8.addParam(com.kongregate.common.comm.Opcode.PARAM_STATE, _local3.getParam(com.kongregate.common.comm.Opcode.PARAM_STATE)); _local8.addParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS, _local4); com.kongregate.client.KongregateServices.getInstance().sendToPlayer(_local8, getOpponent()); com.kongregate.events.Event.create(this, "onGameState", {success:true}); } if (_local3.getParam(com.kongregate.common.comm.Opcode.PARAM_WAIT) == true) { com.kongregate.events.Event.create(this, "onWait", {success:true}); } } else { com.kongregate.events.Event.create(this, "onGameState", {success:_local4, error:"event"}); } } function createDeck(name, cardIDs, itemIDs) { var _local5 = {card_ids:com.kongregate.common.util.JSON.stringify(cardIDs), item_ids:com.kongregate.common.util.JSON.stringify(itemIDs), name:name}; com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/decks/create", _local5, "POST", onCreateDeck, this); } function onCreateDeck(event) { com.kongregate.events.Event.create(this, "onCreateDeck", {success:event.success, error:event.error}); } function deleteDeck(name) { var _local3 = {name:name}; com.kongregate.client.KongregateServices.getInstance().doHttpRequest("/decks/delete", _local3, "POST", onDeleteDeck, this); } function onDeleteDeck(event) { var _local3 = event.msg; var _local4 = event.success; if (_local4) { mDecks[_local3.getParam(com.kongregate.common.comm.Opcode.PARAM_NAME)] = undefined; } com.kongregate.events.Event.create(this, "onDeleteDeck", {success:_local4}); } function getOpponent() { return(mOpponent); } function getOpponentAvatar() { return(mOpponentAvatar); } function getBattleSpritePath(cardID) { return(getPath("battle_sprites", cardID)); } function getCharacterPortraitPath(cardID) { return(getPath("portraits", cardID)); } function getFullCardPath(cardID) { return(getPath("full_cards", cardID)); } function getItemOrbPath(cardID) { return(getPath("item_orbs", cardID)); } function getAttackTabPath(cardID) { return(getPath("attack_tab", cardID)); } function getPath(type, cardID) { if ((!mPaths) || (!mPaths[type])) { return(("/card" + getCard(cardID).card_no.toString()) + ".png"); } return(((mPaths[type] + "/card") + getCard(cardID).card_no.toString()) + ".png"); } function getGalleryCardPath(cardID) { return(getPathGif("tiny", cardID)); } function getPathGif(type, cardID) { if ((!mPaths) || (!mPaths[type])) { return(("/card" + getCard(cardID).card_no.toString()) + ".gif"); } return(((mPaths[type] + "/card") + getCard(cardID).card_no.toString()) + ".gif"); } function getPlayerNum() { return(mPlayerNum); } function isHost() { return(getPlayerNum() == 1); } function isClient() { return(getPlayerNum() == 2); } function getID() { return(mMetagameID); } function getEnemyPlayerNum() { return(((mPlayerNum == 1) ? 2 : 1)); } function getPlayerName(playerNum) { if (playerNum == getPlayerNum()) { return(com.kongregate.client.KongregateServices.getInstance().getUsername()); } if (playerNum == getEnemyPlayerNum()) { return(getOpponent()); } return(undefined); } function getSecretKey() { return(mSecretKey); } function handleMessage(msg) { var _local3 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS); var _local4 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_REQUEST_ID); var _local5; if (msg.getParam(com.kongregate.common.comm.Opcode.PARAM_ERROR) != undefined) { _local5 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_ERROR); } if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_META_INVALIDATE) { var _local6 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_STATE); com.kongregate.common.util.Log.debug((("Opponent has invalidated the state, phase_no=" + _local6.metagame.phase_no) + ", last=") + getPhaseNum()); updateState(_local6); com.kongregate.events.Event.create(this, "onGameState", {success:_local3}); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_META_QUIT) { onQuitGame({success:_local3, error:_local5, reason:"opponent"}); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_META_JOINED) { mOpponent = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_USER); mOpponentAvatar = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_AVATAR); com.kongregate.common.util.Log.info(mOpponent + " joined our game!"); com.kongregate.events.Event.create(this, "onPlayerJoinGame", {success:_local3, error:_local5, avatar:msg.getParam(com.kongregate.common.comm.Opcode.PARAM_AVATAR)}); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_META_DECK_SELECTED) { com.kongregate.common.util.Log.info("Opponent has selected their deck!"); mOpponentDeckSelected = true; fireChooseDeckEvent(_local3); } } function buildMyCards() { mMyCards = new Object(); var _local2 = 0; for ( ; _local2 < mMyCardIDs.length ; _local2++) { var _local3 = mMyCardIDs[_local2]; var _local4 = getCard(_local3); if (_local4) { _local4.owned = true; mMyCards[_local3] = _local4; } } } function countMyCharacterCards() { var _local2 = 0; var _local3 = getMyCards(); for (var id in _local3) { if (_local3[id].type == "CharacterCard") { _local2++; } } return(_local2); } function validateDeck(cardIDs, itemIDs, numCards_, deckName, edit) { var _local7 = new Array(); var _local8 = 0; var _local9 = 0; var _local10 = new Array(cardIDs.length); var _local11 = new Array(itemIDs.length); if (cardIDs.length != itemIDs.length) { _local7.push("Number of cards and item slots must match."); return(_local7); } if ((cardIDs.length != 3) && (numCards_ == 3)) { _local7.push("Number of cards in a deck must be 3."); return(_local7); } if ((cardIDs.length != 5) && (numCards_ == 5)) { _local7.push("Number of cards in a deck must be 5."); return(_local7); } if (deckName == "Enter Deck Name...") { _local7.push("Must enter a deck name."); return(_local7); } if ((deckName == RANDOM_DECK_MESSAGE) || (deckName == ALL_RANDOM_DECK_MESSAGE)) { _local7.push("That deck name is invalid."); return(_local7); } var _local12 = getDecks(); for (var i in _local12) { if ((deckName == _local12[i].name) && (!edit)) { _local7.push("Deck name taken. Must enter a unique deck name."); return(_local7); } } var _local13 = 0; for ( ; _local13 < cardIDs.length ; _local13++) { if ((cardIDs[_local13] != undefined) && (cardIDs[_local13] != null)) { _local8++; } if ((itemIDs[_local13] != undefined) && (itemIDs[_local13] != null)) { _local9++; } _local10[_local13] = getCard(cardIDs[_local13]); _local11[_local13] = getCard(itemIDs[_local13]); } if (_local9 > _local8) { _local7.push("You can not have more items than cards in a deck."); } var _local14 = 0; for ( ; _local14 < _local8 ; _local14++) { if (_local11[_local14] && (_local10[_local14] && ((_local11[_local14].set_id != 0) && (_local10[_local14].set_id != _local11[_local14].set_id)))) { _local7.push(((("Card and item sets must match for items to be equipped. (" + _local10[_local14].set_id) + "!=") + _local11[_local14].set_id) + ")"); } } var _local15 = false; var _local16 = 0; // unexpected jump do { _local16++; if (_local16 >= cardIDs.length) { break; } var _local17 = cardIDs.length - 1; while (_local16 < _local17) { if (cardIDs[_local16] && (cardIDs[_local16] == cardIDs[_local17])) { _local15 = true; break; } _local17--; } } while (!_local15); if (_local15) { _local7.push("Duplicate cards are not allowed."); } var _local18 = false; var _local19 = 0; // unexpected jump do { _local19++; if (_local19 >= cardIDs.length) { break; } var _local20 = itemIDs.length - 1; while (_local19 < _local20) { if (itemIDs[_local19] && (itemIDs[_local19] == itemIDs[_local20])) { _local18 = true; break; } _local20--; } } while (!_local18); if (_local18) { _local7.push("Duplicate items are not allowed."); } return(_local7); } function getCharacters() { return(getState().characters); } function getCharacter(player, index) { var _local4 = getCharacters(); var _local5 = 0; for ( ; _local5 < _local4.length ; _local5++) { if ((_local4[_local5].player_no == player) && (_local4[_local5].character_no == index)) { return(_local4[_local5]); } } return(undefined); } function getCards() { return(mCards); } function getMyCards() { return(mMyCards); } function getCard(id) { return(getCards()[id]); } function getDecks(numCards) { if (numCards == undefined) { return(mDecks); } var _local3 = new Object(); for (var deckName in mDecks) { var _local4 = mDecks[deckName]; if (_local4.num_cards == numCards) { _local3[deckName] = _local4; } } return(_local3); } function getCurrentDecks() { return(getDecks(mGameType.cards)); } function canUseRandomDeck(numCards) { if (numCards == undefined) { numCards = mGameType.cards; } return(countMyCharacterCards() >= numCards); } function getDeck(name) { return(mDecks[name]); } function getAttacks(cardId) { return(getCard(cardId).attacks); } function getActiveCharacterNum(player) { return(getState().metagame[("p" + player) + "_active_character_no"]); } function getMyActiveCharacterNum() { return(getActiveCharacterNum(getPlayerNum())); } function getMyActiveCard() { return(getCard(getMyActiveCharacter().card_id)); } function getMyActiveCharacter() { return(getCharacter(getPlayerNum(), getMyActiveCharacterNum())); } function getEnemyActiveCharacter() { return(getCharacter(getEnemyPlayerNum(), getEnemyActiveCharacterNum())); } function getEnemyActiveCard() { return(getCard(getEnemyActiveCharacter().card_id)); } function getEnemyActiveCharacterNum() { return(getActiveCharacterNum(getEnemyPlayerNum())); } function getActiveCard(playerNum) { return(getCard(getCharacter(playerNum, getActiveCharacterNum(playerNum)).card_id)); } function getRange() { return(getState().metagame.range); } function getRecentEvents() { return(getState().metagame.recent_events); } function getPhase() { return(getState().metagame.state); } function getPhaseNum() { return(getState().metagame.phase_no); } function isSwitchRequired(player) { var _local3 = getPhase(); if (_local3 == "switch_character_choice") { return(getChoices(player).switch.length > 0); } return(false); } function getChoices(player) { return(getState().metagame[("p" + player) + "_choices"]); } function getMyChoices() { return(getChoices(getPlayerNum())); } function getNumChoices() { var _local2 = getPhase(); if (_local2 == "switch_character_choice") { return(getMyChoices().switch.length); } if (_local2 == "maneuver_choice") { return(getMyChoices().maneuver.length); } if (_local2 == "combat_choice") { var _local4 = getMyChoices().attack.length; if (isInterceptAvailable()) { _local4++; } if (isWaitAvailable()) { _local4++; } return(_local4); } return(0); } function getAvailableAttacks() { return(getMyChoices().attack); } function getAvailableManeuvers() { return(getMyChoices().maneuver); } function getAvailableSwitches() { return(getMyChoices().switch); } function isInterceptAvailable() { return(getMyChoices().intercept == true); } function isWaitAvailable() { return(getMyChoices().wait == true); } function getGameType() { return(getState().metagame.game_type); } function getGameOption(name) { return(getGameType()[name]); } function getNumCards() { return(getGameOption("cards")); } function hasItems() { return(getGameOption("items")); } function isGameOver() { return(getPhase() == "game_over"); } function isTieGame() { return(getState().metagame.winner == "both"); } function getWinnerNum() { if (!isGameOver()) { return(-1); } if (isTieGame()) { return(0); } if (getState().metagame.winner == "player1") { return(1); } if (getState().metagame.winner == "player2") { return(2); } } function getWinnerName() { return(getPlayerName(getWinnerNum())); } function updateState(state) { for (var i in state) { mState[i] = state[i]; } } function buildStatusIconsMap() { mStatusIconsMap = new Object(); var _local2 = 0; for ( ; _local2 < mStatusIcons.length ; _local2++) { mStatusIconsMap[mStatusIcons[_local2]] = _local2; } } function getStatusIconIndex(name) { if (!mStatusIconsMap) { buildStatusIconsMap(); } return(mStatusIconsMap[name] + 1); } function getAttackInfo(cardId, attackIndex) { return(getAttack(cardId, attackIndex).procs[0].info); } function getAttack(cardId, attackIndex) { return(getAttacks(cardId)[attackIndex]); } function createEffectIcon(parent, spell) { var _local4 = parent.attachMovie("BuffIcon", "buffIcon" + parent.getNextHighestDepth(), parent.getNextHighestDepth()); var _local5 = getInstance().getStatusIconIndex(spell.info.icon); var _local6 = ((spell.length != undefined) ? (spell.length) : (spell.countdown_timer)); var _local7 = ((spell.effects["damage effect"].hp != undefined) ? (spell.effects["damage effect"].hp) : (spell.effects.enchant.damage)); var _local8 = spell.permanent; _local4.effectIcon.gotoAndStop(_local5); _local4.turns.turnsText.text = _local6 + 1; _local4.damage.damageText.text = _local7; _local4.turns._visible = (!_local8) && (_local6 != undefined); _local4.damage._visible = (!_local8) && ((_local7 != undefined) && (_local7 > 0)); return(_local4); } function haveDecksBeenSelected() { return(mDecksSelected); } static var CARD_REQUEST_SIZE = 10; static var ALL_RANDOM_DECK_MESSAGE = "Random (All Cards)"; static var RANDOM_DECK_MESSAGE = "Random (My Cards)"; static var mInstance = undefined; var mOpponent = undefined; var mMetagameID = undefined; var mStateString = undefined; var mState = undefined; var mPlayerNum = undefined; var mSecretKey = undefined; var mInitBarrier = undefined; var mInfoObject = undefined; var mMyDeckSelected = false; var mOpponentDeckSelected = false; var mDecksSelected = false; var mGameType = undefined; var mOpponentAvatar = undefined; var mCards = new Object(); var mMyCards = undefined; var mTotalCards = 0; var mNumCards = 0; var mMyCardIDs = undefined; var mDecks = undefined; var mPaths = undefined; var mStatusIcons = ["bleed", "burn", "change_range", "dec_crit", "delay_attack", "drain_life", "enchant", "force_switch", "heal", "herbal_remedy", "inc_crit_rate", "inc_critrate_over_time", "inc_damage", "inc_own_defenses", "interrupt", "leafy_trap", "poison", "prevent_range_change", "reduce_enemy_defenses", "reflect_attack_type", "reflect_attack", "remove_buff", "restore_energy", "slow_enemy", "stun", "undodgeable", "unlocked_attack"]; var mStatusIconsMap = undefined; }
Symbol 20494 MovieClip [__Packages.com.kongregate.client.KongregateServices] Frame 0
class com.kongregate.client.KongregateServices extends com.kongregate.client.RequestHandler { var mUsername, mMessageHandlers, mConnectionListener, mMessageQueue, getRequestID, nextRequest, addRequest, fireResponse; function KongregateServices () { super(); mConnectedToServer = false; mUsername = _root.kongregate_username; mMessageHandlers = new Array(); mMessageHandlers.push(com.kongregate.client.StatServices.getInstance()); mMessageHandlers.push(com.kongregate.client.HighScoreServices.getInstance()); mMessageHandlers.push(com.kongregate.client.SaveGameServices.getInstance()); mMessageHandlers.push(com.kongregate.client.MetagameServices.getInstance()); mConnectionListener = new com.kongregate.common.comm.local.DefaultMessageListener(); mConnectionListener.connect = com.kongregate.common.util.Utils.bind(handleConnect, this); mConnectionListener.message = com.kongregate.common.util.Utils.bind(handleMessage, this); mMessageQueue = new Array(); } static function init(connectHandler, disconnectHandler, thisObject) { var _local5 = getInstance(); return(_local5); } function isKongregate() { return(_root.kongregate == "true"); } function isGuest() { return(getUsername().toLowerCase().indexOf("guest") == 0); } function getUsername() { return(mUsername); } function getChannelID() { return(_root.kongregate_channel_id); } function getGameID() { return(_global.parseInt(_root.kongregate_game_id)); } function connect() { if (isKongregate() && ((!isConnected()) && (!mAttemptingConnect))) { mAttemptingConnect = true; if (!mLocalConnection) { mLocalConnection = new com.kongregate.common.comm.local.MessageConnection(true, getChannelID(), mConnectionListener); mLocalConnection.connect(); } return(true); } return(false); } static function getInstance() { if (!mInstance) { mInstance = new com.kongregate.client.KongregateServices(); } return(mInstance); } function isConnected() { return((mLocalConnection != undefined) && (mConnectedToServer)); } function sendMessage(msg) { msg.addParam(com.kongregate.common.comm.Opcode.PARAM_REQUEST_ID, getRequestID()); nextRequest(); if (!isConnected()) { mMessageQueue.push(msg); return(true); } return(deliverLocalMessage(msg)); } function doHttpRequest(url, data, type, callback, thisObject) { addRequest(callback, thisObject); var _local7 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_HTTP_REQUEST); _local7.addParam(com.kongregate.common.comm.Opcode.PARAM_URL, url); _local7.addParam(com.kongregate.common.comm.Opcode.PARAM_DATA, data); _local7.addParam(com.kongregate.common.comm.Opcode.PARAM_TYPE, type); sendMessage(_local7); } function sendToPlayer(msg, username) { var _local4 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_FORWARD); _local4.addParam(com.kongregate.common.comm.Opcode.PARAM_USER, username); _local4.addParam(com.kongregate.common.comm.Opcode.PARAM_DATA, msg); sendMessage(_local4); } function flushQueue() { var _local2 = 0; for ( ; _local2 < mMessageQueue.length ; _local2++) { deliverLocalMessage(mMessageQueue[_local2]); } mMessageQueue.splice(0); } function deliverLocalMessage(msg) { return(mLocalConnection.sendMessage(msg)); } function getGameVersion() { if (!isKongregate()) { return(-1); } return(_global.parseInt(_root.kongregate_game_version)); } function handleConnect() { var _local2 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_HELLO); _local2.addParam(com.kongregate.common.comm.Opcode.PARAM_CLIENT_VERSION, CLIENT_VERSION); _local2.addParam(com.kongregate.common.comm.Opcode.PARAM_REQUEST_ID, getRequestID()); nextRequest(); deliverLocalMessage(_local2); } function handleMessage(msg) { if ((msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_HELLO) && (!mConnectedToServer)) { mConnectedToServer = true; mAttemptingConnect = false; flushQueue(); com.kongregate.client.StatServices.getInstance().handleMessage(msg); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_GOODBYE) { com.kongregate.common.util.Log.info("Goodbye received, assuming no longer connected to server."); mConnectedToServer = false; mAttemptingConnect = false; } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_USER_INFO) { mUsername = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_USER); com.kongregate.client.HighScoreServices.getInstance().handleMessage(msg); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_ALERT) { com.kongregate.common.util.Utils.submitGameAlert(); } else if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_HTTP_REQUEST) { var _local3 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_REQUEST_ID); var _local4 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS); var _local5; if (msg.getParam(com.kongregate.common.comm.Opcode.PARAM_ERROR) != undefined) { _local5 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_ERROR); } fireResponse(_local3, {msg:msg, success:_local4, error:_local5}); } else { var _local6 = 0; for ( ; _local6 < mMessageHandlers.length ; _local6++) { mMessageHandlers[_local6].handleMessage(msg); } } } static var CLIENT_VERSION = 1; static var mInstance = undefined; var mLocalConnection = undefined; var mAttemptingConnect = false; var mConnectedToServer = false; static var EVENT_CONNECT = "onConnect"; static var EVENT_DISCONNECT = "onDisconnect"; }
Symbol 20495 MovieClip [__Packages.com.kongregate.client.HighScoreServices] Frame 0
class com.kongregate.client.HighScoreServices extends com.kongregate.client.RequestHandler implements com.kongregate.common.comm.MessageHandler { var addRequest, fireResponse; function HighScoreServices () { super(); } static function getInstance() { if (mInstance == undefined) { mInstance = new com.kongregate.client.HighScoreServices(); } return(mInstance); } function isAuthorized() { return(!com.kongregate.client.KongregateServices.getInstance().isGuest()); } function submit(score) { var _local3 = com.kongregate.common.stats.Statistic.HIGH_SCORE; if (getMode().length > 0) { _local3 = _local3 + ("-" + getMode()); } com.kongregate.client.StatServices.getInstance().submit(_local3, score); } function requestList(callback, thisObject) { addRequest(callback, thisObject); var _local4 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_SCORE_LIST); _local4.addParam(com.kongregate.common.comm.Opcode.PARAM_SCORE_MODE, getMode()); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local4); } function setMode(mode) { mMode = mode; var _local3 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_SCORE_MODE); _local3.addParam(com.kongregate.common.comm.Opcode.PARAM_SCORE_MODE, mode); com.kongregate.client.KongregateServices.getInstance().sendMessage(_local3); } function getMode() { return(mMode); } function handleMessage(msg) { var _local3 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS); var _local4 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_REQUEST_ID); var _local5 = (_local3 ? (com.kongregate.common.error.Error.NONE) : (com.kongregate.common.error.Error.SERVER_ERROR)); if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_SCORE_LIST) { var _local6 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_SCORE_LIST); fireResponse(_local4, {success:_local3, error:_local5, list:_local6}); } } static var mInstance = undefined; var mMode = ""; }
Symbol 20496 MovieClip [__Packages.com.kongregate.events.Barrier] Frame 0
class com.kongregate.events.Barrier { var mFlags, mCallback; function Barrier (flags, callbackFunction) { mFlags = new Object(); mCallback = callbackFunction; mFired = false; var _local4 = 0; for ( ; _local4 < flags.length ; _local4++) { mFlags[flags[_local4]] = false; } } function setFlag(flagName) { if (mFired) { return(undefined); } mFlags[flagName] = true; for (var f in mFlags) { if (!mFlags[f]) { return(undefined); } } mCallback(); mFired = true; } var mFired = false; }
Symbol 20497 MovieClip [__Packages.com.kongregate.common.util.Utils] Frame 0
class com.kongregate.common.util.Utils { function Utils () { } static function bind(functionToApply, object) { var _local2 = function () { return(function () { functionToApply.apply(object, arguments); }); }; return(_local2.apply(undefined)); } static function getFlashMajorVersion() { var _local2 = getVersion(); if ((!_local2) || (_local2.length == 0)) { return(5); } var _local3 = _local2.split(","); var _local4 = _local3[0].indexOf(" "); return(Number(_local3[0].substr(_local4))); } static function submitAlert(body, type, username, reportName, game, automatic, onComplete) { var _local9 = "/alerts"; var _local10 = new LoadVars(); var _local11 = new LoadVars(); _local11.onData = onComplete; var _local12 = com.kongregate.common.util.Log.getErrorReport(); if (body) { _local10.body = body; } if (game) { _local10.game_id = game; } _local10.automatic = (((automatic == 1) || (automatic == true)) ? 1 : 0); _local10.report_name = reportName; _local10.username = username; _local10.version = _local12.version; _local10[type] = com.kongregate.common.util.JSON.stringify(_local12.log); if (_root.session_id) { _local10.addRequestHeader("HTTP_COOKIE", "_session_id=" + _root.session_id); } _local10.sendAndLoad(_local9, _local11, "POST"); } static function submitGameAlert() { var _local2 = com.kongregate.client.KongregateServices.getInstance().getChannelID(); submitAlert("Automatically generated game alert", "game_log", com.kongregate.client.KongregateServices.getInstance().getUsername(), _local2, com.kongregate.client.KongregateServices.getInstance().getGameID(), 1); } }
Symbol 20498 MovieClip [__Packages.com.kongregate.events.EventManager] Frame 0
class com.kongregate.events.EventManager { function EventManager () { } static function registerListener(listener) { listeners.push(listener); } static function fire(event) { var _local3 = 0; for ( ; _local3 < listeners.length ; _local3++) { if (listeners[_local3].listenTo(event)) { listeners[_local3].issueCallback(event); } } } static var listeners = []; }
Symbol 20499 MovieClip [__Packages.com.kongregate.events.Event] Frame 0
class com.kongregate.events.Event { var src, name, data; function Event (src, name, data) { this.src = src; this.name = name; this.data = data; } static function create(src, name, data) { var _local5 = new com.kongregate.events.Event(src, name, data); com.kongregate.events.EventManager.fire(_local5); } }
Symbol 20500 MovieClip [__Packages.com.kongregate.common.comm.Opcode] Frame 0
class com.kongregate.common.comm.Opcode { function Opcode () { } static var OP_CONNECT = "connect"; static var OP_CONNECTED = "connected"; static var OP_DISCONNECT = "disconnect"; static var OP_DISCONNECTED = "disconnected"; static var OP_HELLO = "hello"; static var OP_GOODBYE = "goodbye"; static var PARAM_SKIP_STAT_LIST = "skip_stats"; static var OP_USER_INFO = "user.info"; static var OP_PING = "ping"; static var OP_KICK = "kick"; static var OP_ALERT = "alert"; static var PARAM_ALERT_NAME = "alert.name"; static var OP_FORWARD = "fwd"; static var OP_CHAT = "chat"; static var PARAM_MESSAGE = "message"; static var OP_HTTP_REQUEST = "http"; static var PARAM_URL = "url"; static var OP_GAME_SAVE = "gm.save"; static var OP_GAME_LOAD = "gm.load"; static var OP_GAME_LOAD_ALL = "gm.load.all"; static var OP_GAME_LIST_SAVES = "gm.list"; static var OP_GAME_DELETE = "gm.del"; static var PARAM_SLOT = "slot"; static var PARAM_DESCRIPTION = "desc"; static var PARAM_SAVE_LIST = "list"; static var PARAM_SAVE_GAME = "game"; static var PARAM_SAVE_GAMES = "games"; static var PARAM_CONFLICTS = "conflicts"; static var OP_STATS_REGISTER = "stat.reg"; static var OP_STATS_LIST = "stat.list"; static var OP_STATS_SUBMIT = "stat.submit"; static var OP_STATS_PLAYER = "stat.player"; static var PARAM_STATS = "stats"; static var PARAM_STAT_NAME = "stat"; static var PARAM_STAT_MAX = "max"; static var PARAM_STAT_START = "start"; static var PARAM_STAT_SORT = "sort"; static var OP_SCORE_SUBMIT = "score.submit"; static var OP_SCORE_LIST = "score.list"; static var OP_SCORE_MODE = "score.mode"; static var PARAM_SCORE = "score"; static var PARAM_SCORE_LIST = "list"; static var PARAM_SCORE_POSITION = "pos"; static var PARAM_SCORE_POSTED = "posted"; static var PARAM_SCORE_LOW = "lowscore"; static var PARAM_SCORE_MODE = "mode"; static var OP_META_INFO = "meta.info"; static var OP_META_INVALIDATE = "meta.inval"; static var OP_META_STATE = "meta.state"; static var OP_META_EVENT = "meta.event"; static var OP_META_CREATE = "meta.create"; static var OP_META_JOIN = "meta.join"; static var OP_META_JOINED = "meta.joined"; static var OP_META_PLAYNOW = "meta.playnow"; static var OP_META_QUIT = "meta.quit"; static var OP_META_LIST = "meta.list"; static var OP_META_WAITING = "meta.waiting"; static var OP_META_DECK_SELECTED = "meta.deck"; static var PARAM_OPPONENT = "opponent"; static var PARAM_PATHS = "paths"; static var PARAM_PLAYER_NO = "player_no"; static var PARAM_TYPE = "type"; static var PARAM_CHOICE = "choice"; static var PARAM_INVALIDATED = "invalidated"; static var PARAM_WAIT = "wait"; static var PARAM_STATE = "state"; static var PARAM_GAME_TYPE = "game_type"; static var PARAM_PHASE_NO = "phase_no"; static var PARAM_DECKS = "decks"; static var PARAM_DECKS_SELECTED = "decks_selected"; static var PARAM_INFO = "info"; static var OP_REQUEST_GAME_ROOM = "room.rq"; static var PARAM_ROOM_NAME = "room.name"; static var PARAM_ROOM_NATURAL_NAME = "room.natural"; static var PARAM_USER = "user"; static var PARAM_CHANNEL = "chnl"; static var PARAM_SUCCESS = "success"; static var PARAM_SESSION_ID = "sessionid"; static var PARAM_DURATION = "duration"; static var PARAM_GAME_ID = "game_id"; static var PARAM_GAME_NAME = "game_name"; static var PARAM_DATA = "data"; static var PARAM_CLIENT_VERSION = "client.ver"; static var PARAM_GAME_VERSION = "gm.ver"; static var PARAM_ERROR = "error"; static var PARAM_REQUEST_ID = "req.id"; static var PARAM_MESSAGE_ID = "msg.id"; static var PARAM_MESSAGES = "msgs"; static var PARAM_JAVASCRIPT = "javascript"; static var PARAM_RESULTS = "results"; static var PARAM_RESULT = "result"; static var PARAM_RESEND = "resend"; static var PARAM_TIME = "time"; static var PARAM_ID = "id"; static var PARAM_KEY = "key"; static var PARAM_CONFIRMATION = "conf"; static var PARAM_FROM = "from"; static var PARAM_FROM_PLAYER = "from.pl"; static var PARAM_LIST = "list"; static var PARAM_PERMALINK = "permalink"; static var PARAM_SESSION_STAMP = "stamp"; static var PARAM_NAME = "name"; static var PARAM_AVATAR = "avatar"; }
Symbol 20501 MovieClip [__Packages.com.kongregate.common.util.Log] Frame 0
class com.kongregate.common.util.Log { function Log () { } static function init() { mLogEntries = new Array(); debug("Log initialized."); debug(_root._url.split("?")[0]); debug(getOSInfo()); } static function setHandler(type, handler) { if ((type == TYPE_DEBUG) || (type == TYPE_ALL)) { onDebug = handler; } if ((type == TYPE_INFO) || (type == TYPE_ALL)) { onInfo = handler; } if ((type == TYPE_WARN) || (type == TYPE_ALL)) { onWarn = handler; } if ((type == TYPE_ERROR) || (type == TYPE_ALL)) { onError = handler; } } static function debug(text) { if (mLogLevel >= 4) { if (onDebug != undefined) { onDebug(text); } } addLogEntry("Debug", text); } static function info(text) { if (mLogLevel >= 3) { if (onInfo != undefined) { onInfo(text); } } addLogEntry("Info", text); } static function warn(text) { if (mLogLevel >= 2) { if (onWarn != undefined) { onWarn(text); } } addLogEntry("Warn", text); } static function error(text) { if (mLogLevel >= 1) { if (onError != undefined) { onError(text); } } addLogEntry("Error", text); } static function setLogLevel(level) { mLogLevel = level; } static function isDebug() { return(mLogLevel >= 4); } static function getTimestamp() { var _local2 = new Date(); return(_local2.toString().split("GMT")[0]); } static function getErrorReport() { var _local2 = new Object(); _local2.url = _root._url; _local2.version = getVersion(); _local2.log = mLogEntries; return(_local2); } static function getOSInfo() { return((((((("OS: " + System.capabilities.os) + ", ") + System.capabilities.screenResolutionX) + "x") + System.capabilities.screenResolutionY) + ", current version: ") + getVersion()); } static function addLogEntry(type, text) { trace((type + ": ") + text); if (mLogEntries.length > MAX_LOG_ENTRIES) { mLogEntries.splice(0, 1); } mLogEntries.push({type:type, time:getTimestamp(), text:sanitize(text)}); } static function sanitize(text) { return(text.split("<").join("&lt;")); } static function alert(text) { text = text.toString(); var _local3 = text.split("'").join("\\'"); getURL (("javascript:alert('" + _local3) + "');", "_self"); } static var onDebug = undefined; static var onInfo = undefined; static var onError = undefined; static var onWarn = undefined; static var mLogLevel = 0; static var TYPE_DEBUG = "debug"; static var TYPE_INFO = "info"; static var TYPE_WARN = "warn"; static var TYPE_ERROR = "error"; static var TYPE_ALL = "all"; static var MAX_LOG_ENTRIES = 250; static var mLogEntries = undefined; }
Symbol 20502 MovieClip [__Packages.com.kongregate.common.comm.local.MessageConnection] Frame 0
class com.kongregate.common.comm.local.MessageConnection extends LocalConnection { var allowDomain, allowInsecureDomain, onStatus, mListener; function MessageConnection (_isClient, channelName, listener) { super(); allowDomain = function (sendingDomain) { if (!this.isConnected()) { com.kongregate.common.util.Log.debug((("sendingDomain: " + sendingDomain) + ", thisDomain: ") + this.domain()); } if (sendingDomain == this.domain()) { return(true); } var _local3 = this.domainAllowed(sendingDomain); var _local4 = this.domainAllowed(this.domain()); if (!this.isConnected()) { com.kongregate.common.util.Log.debug((("sendingFound: " + _local3) + ", thisFound: ") + _local4); } return(_local3 && (_local4)); }; allowInsecureDomain = function (sendingDomain) { return(sendingDomain == this.domain()); }; onStatus = handleStatus; mIsClient = _isClient; setListener(listener); mSendChannel = ((CHANNEL_PREFIX + (isClient() ? (SERVICE_NAME) : (CLIENT_NAME))) + "_") + channelName; listen(((isClient() ? (CLIENT_NAME) : (SERVICE_NAME)) + "_") + channelName); } function domainAllowed(rawDomain) { var _local3 = rawDomain.toLowerCase(); var _local4 = 0; for ( ; _local4 < ALLOWED_PREFIXES.length ; _local4++) { var _local5 = 0; for ( ; _local5 < ALLOWED_DOMAINS.length ; _local5++) { var _local6 = (ALLOWED_PREFIXES[_local4] + ".") + ALLOWED_DOMAINS[_local5]; if (_local6 == _local3) { return(true); } } } return(false); } function handleStatus(status) { if (status.level == "error") { com.kongregate.common.util.Log.error("MessageConnection Error"); if (mListener && (!mAttemptingConnection)) { mListener.onError(); } } } function listen(channelName) { com.kongregate.common.util.Log.info("Listening for connection..."); mReceiveChannel = CHANNEL_PREFIX + channelName; var _local4 = super.connect(mReceiveChannel); com.kongregate.common.util.Log.debug((("Channel: " + channelName) + ", success=") + _local4); if ((!_local4) && (!mReportSent)) { mReportSent = true; if (isClient()) { com.kongregate.common.util.Utils.submitGameAlert(); } else { com.kongregate.common.util.Utils.submitAlert("Automatically generated chat alert", "log", _root.initial_username, _root.kongregate_channel_id, _global.parseInt(_root.game_id), 1); } } } function connect() { mAttemptingConnection = true; mConnectionAttempts = 0; sendConnectionRequest(); mConnectionInterval = _global.setInterval(this, "retryConnection", CONNECT_RETRY_INTERVAL); } function sendConnectionRequest() { com.kongregate.common.util.Log.debug(("Attempting connection (Retry #" + mConnectionAttempts) + ")"); var _local2 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_CONNECT); _local2.addParam(com.kongregate.common.comm.Opcode.PARAM_CHANNEL, mReceiveChannel); var _local3 = sendMessage(_local2); com.kongregate.common.util.Log.debug("connection request sent, success=" + _local3); } function retryConnection() { if (mAttemptingConnection && (!mConnected)) { mConnectionAttempts++; sendConnectionRequest(); } } function setListener(listener) { mListener = listener; } function handleMessage(msgObject) { var _local3 = new com.kongregate.common.comm.Message(); _local3.setOpcode(msgObject.opcode); _local3.setParams(msgObject.params); var _local4 = dumpMessage(_local3); if (_local4 && (_local4.length > 0)) { com.kongregate.common.util.Log.debug((((("[" + getSendNickname()) + "->") + getReceiveNickname()) + "]: ") + _local4); } if (_local3.getOpcode() == com.kongregate.common.comm.Opcode.OP_CONNECT) { handleConnect(); } else if (_local3.getOpcode() == com.kongregate.common.comm.Opcode.OP_CONNECTED) { mAttemptingConnection = false; _global.clearInterval(mConnectionInterval); if (!mConnected) { mConnected = true; if (mListener) { mListener.onConnect(); } } } else if (mListener != null) { mListener.onMessage(_local3); } } function handleConnect() { com.kongregate.common.util.Log.info((("Handling connection..., isConnected=" + mConnected) + ", attemptingConnection=") + mAttemptingConnection); if (!mConnected) { mConnected = true; var _local2 = com.kongregate.common.comm.Message.fromOpcode(com.kongregate.common.comm.Opcode.OP_CONNECTED); sendMessage(_local2); if (mListener != null) { mListener.onConnect(); } } } function sendMessage(msg) { var _local4 = dumpMessage(msg); if (_local4 && (_local4.length > 0)) { com.kongregate.common.util.Log.debug((((("[" + getReceiveNickname()) + "->") + getSendNickname()) + "]: ") + _local4); } var _local5 = super.send(mSendChannel, RECEIVE_FUNCTION, {opcode:msg.getOpcode(), params:msg.getParams()}); if (!_local5) { com.kongregate.common.util.Log.warn(("Send operation [" + msg.getOpcode()) + "] failed!"); } return(_local5); } function isConnected() { return(mConnected); } function isClient() { return(mIsClient); } function isServer() { return(!isClient()); } function getSendNickname() { if (mSendChannel.indexOf("Service") >= 0) { return("Chat"); } return("Game"); } function getReceiveNickname() { if (mReceiveChannel.indexOf("Service") >= 0) { return("Chat"); } return("Game"); } function dumpMessage(msg) { var _local3 = msg.getOpcode(); if (msg.getOpcode() == com.kongregate.common.comm.Opcode.OP_FORWARD) { var _local4 = com.kongregate.common.comm.Message.fromObject(msg.getParam(com.kongregate.common.comm.Opcode.PARAM_DATA)); return((("<FWD:" + msg.getParam(com.kongregate.common.comm.Opcode.PARAM_USER)) + "> ") + dumpMessage(_local4)); } if (_local3 == com.kongregate.common.comm.Opcode.OP_PING) { return(undefined); } if (_local3 == com.kongregate.common.comm.Opcode.OP_HTTP_REQUEST) { var _local5 = msg.getParam(com.kongregate.common.comm.Opcode.PARAM_URL); if (!_local5) { return(("<HTTP_RESPONSE, success=" + msg.getParam(com.kongregate.common.comm.Opcode.PARAM_SUCCESS)) + ">"); } return(("<HTTP: " + _local5) + ">"); } if (_local3 == com.kongregate.common.comm.Opcode.OP_META_INVALIDATE) { return(((("<META.INVAL, phase_no=" + msg.getParam(com.kongregate.common.comm.Opcode.PARAM_STATE).metagame.phase_no) + ", state=") + msg.getParam(com.kongregate.common.comm.Opcode.PARAM_STATE).metagame.state) + ">"); } if (com.kongregate.common.util.Log.isDebug()) { return(msg.toString()); } return(_local3); } static var RECEIVE_FUNCTION = "handleMessage"; static var CHANNEL_PREFIX = "_"; static var CONNECT_RETRY_INTERVAL = 3500; static var ALLOWED_PREFIXES = ["a", "www", "chat"]; static var ALLOWED_DOMAINS = ["kongregatestage.com", "kongregatetrunk.com", "kongregate.com"]; static var SERVICE_NAME = "KongregateService"; static var CLIENT_NAME = "KongregateClient"; var mReceiveChannel = ""; var mSendChannel = ""; var mIsClient = false; var mAttemptingConnection = false; var mConnectionAttempts = 0; var mConnectionInterval = undefined; var mConnected = false; var mReportSent = false; }

Library Items

Symbol 20480 MovieClip [__Packages.com.kongregate.client.RequestHandler]
Symbol 20481 MovieClip [__Packages.com.kongregate.common.comm.MessageHandler]
Symbol 20482 MovieClip [__Packages.com.kongregate.client.SaveGameServices]
Symbol 20483 MovieClip [__Packages.Base64]
Symbol 20484 MovieClip [__Packages.com.kongregate.common.comm.local.MessageConnectionListener]
Symbol 20485 MovieClip [__Packages.com.kongregate.common.comm.local.DefaultMessageListener]
Symbol 20486 MovieClip [__Packages.com.kongregate.common.error.Error]
Symbol 20487 MovieClip [__Packages.com.kongregate.common.stats.Statistic]
Symbol 20488 MovieClip [__Packages.com.kongregate.events.EventListener]
Symbol 20489 MovieClip [__Packages.APIBootstrap]
Symbol 20490 MovieClip [__Packages.com.kongregate.common.util.JSON]
Symbol 20491 MovieClip [__Packages.com.kongregate.common.comm.Message]
Symbol 20492 MovieClip [__Packages.com.kongregate.client.StatServices]
Symbol 20493 MovieClip [__Packages.com.kongregate.client.MetagameServices]
Symbol 20494 MovieClip [__Packages.com.kongregate.client.KongregateServices]
Symbol 20495 MovieClip [__Packages.com.kongregate.client.HighScoreServices]
Symbol 20496 MovieClip [__Packages.com.kongregate.events.Barrier]
Symbol 20497 MovieClip [__Packages.com.kongregate.common.util.Utils]
Symbol 20498 MovieClip [__Packages.com.kongregate.events.EventManager]
Symbol 20499 MovieClip [__Packages.com.kongregate.events.Event]
Symbol 20500 MovieClip [__Packages.com.kongregate.common.comm.Opcode]
Symbol 20501 MovieClip [__Packages.com.kongregate.common.util.Log]
Symbol 20502 MovieClip [__Packages.com.kongregate.common.comm.local.MessageConnection]

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS1/AS2.
ExportAssets (56)Timeline Frame 1Symbol 20480 as "__Packages.com.kongregate.client.RequestHandler"
ExportAssets (56)Timeline Frame 1Symbol 20481 as "__Packages.com.kongregate.common.comm.MessageHandler"
ExportAssets (56)Timeline Frame 1Symbol 20482 as "__Packages.com.kongregate.client.SaveGameServices"
ExportAssets (56)Timeline Frame 1Symbol 20483 as "__Packages.Base64"
ExportAssets (56)Timeline Frame 1Symbol 20484 as "__Packages.com.kongregate.common.comm.local.MessageConnectionListener"
ExportAssets (56)Timeline Frame 1Symbol 20485 as "__Packages.com.kongregate.common.comm.local.DefaultMessageListener"
ExportAssets (56)Timeline Frame 1Symbol 20486 as "__Packages.com.kongregate.common.error.Error"
ExportAssets (56)Timeline Frame 1Symbol 20487 as "__Packages.com.kongregate.common.stats.Statistic"
ExportAssets (56)Timeline Frame 1Symbol 20488 as "__Packages.com.kongregate.events.EventListener"
ExportAssets (56)Timeline Frame 1Symbol 20489 as "__Packages.APIBootstrap"
ExportAssets (56)Timeline Frame 1Symbol 20490 as "__Packages.com.kongregate.common.util.JSON"
ExportAssets (56)Timeline Frame 1Symbol 20491 as "__Packages.com.kongregate.common.comm.Message"
ExportAssets (56)Timeline Frame 1Symbol 20492 as "__Packages.com.kongregate.client.StatServices"
ExportAssets (56)Timeline Frame 1Symbol 20493 as "__Packages.com.kongregate.client.MetagameServices"
ExportAssets (56)Timeline Frame 1Symbol 20494 as "__Packages.com.kongregate.client.KongregateServices"
ExportAssets (56)Timeline Frame 1Symbol 20495 as "__Packages.com.kongregate.client.HighScoreServices"
ExportAssets (56)Timeline Frame 1Symbol 20496 as "__Packages.com.kongregate.events.Barrier"
ExportAssets (56)Timeline Frame 1Symbol 20497 as "__Packages.com.kongregate.common.util.Utils"
ExportAssets (56)Timeline Frame 1Symbol 20498 as "__Packages.com.kongregate.events.EventManager"
ExportAssets (56)Timeline Frame 1Symbol 20499 as "__Packages.com.kongregate.events.Event"
ExportAssets (56)Timeline Frame 1Symbol 20500 as "__Packages.com.kongregate.common.comm.Opcode"
ExportAssets (56)Timeline Frame 1Symbol 20501 as "__Packages.com.kongregate.common.util.Log"
ExportAssets (56)Timeline Frame 1Symbol 20502 as "__Packages.com.kongregate.common.comm.local.MessageConnection"




http://swfchan.com/4/15839/info.shtml
Created: 2/6 -2019 09:23:01 Last modified: 2/6 -2019 09:23:01 Server time: 13/05 -2024 04:17:55