Combined Code
movieClip 4 zombieDot {
}
movieClip 6 {
}
movieClip 7 {
}
movieClip 9 {
}
movieClip 11 {
}
movieClip 12 spark {
frame 23 {
this.removeMovieClip();
}
}
movieClip 15 {
}
movieClip 16 {
}
movieClip 18 {
}
movieClip 20 {
frame 1 {
stop();
}
}
movieClip 23 {
}
movieClip 24 {
}
movieClip 27 {
}
movieClip 30 {
frame 1 {
stop();
}
}
movieClip 31 Preloader {
frame 1 {
function enterFrameHandler() {
var v2 = 0;
v2 = _root.getBytesLoaded() / _root.getBytesTotal();
if (loadingBar) {
loadingBar.gotoAndStop(int(v2 * (loadingBar._totalframes - 1)) + 1);
}
if (v2 >= 1) {
onEnterFrame = null;
gotoAndStop('loaded');
}
}
stop();
var autoPlay;
var className;
onEnterFrame = enterFrameHandler;
}
frame 10 {
function _onPlayClick() {
_root.nextFrame();
_root.play();
_parent._onLoaded();
}
if (playButton) {
playButton.onRelease = _onPlayClick;
playButton.stop();
}
if (autoPlay) {
_onPlayClick(null);
}
}
}
movieClip 33 Newgrounds API Classes {
#initclip
Object.registerClass('Newgrounds API Classes', com.newgrounds.shims.APIShim);
#endinitclip
}
movieClip 73 {
}
movieClip 76 {
}
movieClip 81 {
}
movieClip 85 {
}
movieClip 86 {
}
movieClip 87 {
}
movieClip 88 FlashAd {
#initclip
Object.registerClass('FlashAd', com.newgrounds.components.FlashAdBase);
#endinitclip
frame 1 {
function initPlayButton() {
if (this.playButton) {
this.playButton.onRelease = onPlayClick;
if (!this.showPlayButton) {
this.playButton._visible = false;
}
}
}
function onPlayClick() {
removeAd();
_visible = false;
}
stop();
}
frame 2 {
initPlayButton();
}
}
movieClip 89 APIConnector {
frame 1 {
function _onLoaded() {
gotoAndStop('invisible');
if (_redirect) {
com.newgrounds.API.loadOfficialVersion();
return undefined;
}
}
function _apiConnect() {
var v2 = com.newgrounds.API;
if (v2 && !v2.connected) {
if (!apiId) {
com.newgrounds.Logger.logError('No API ID entered in the API Connector component.', 'You can create an API ID for this submission at http://newgrounds.com/account/flashapi', 'Enter your API ID into the API Connector using the Component Inspector (Window -> Component Inspector).');
return undefined;
}
switch (debugMode) {
case 'Off':
default:
v2.debugMode = v2.RELEASE_MODE;
goto 1299;
case 'Simulate Logged-in User':
//Invalid switch }
v2.debugMode = v2.DEBUG_MODE_LOGGED_IN;
goto 1299;
case 'Off':
v2.debugMode = v2.DEBUG_MODE_LOGGED_OUT;
goto 1299;
case 'Simulate Logged-in User':
v2.debugMode = v2.DEBUG_MODE_NEW_VERSION;
goto 1299;
case 'Simulate Logged-out User':
v2.debugMode = v2.DEBUG_MODE_HOST_BLOCKED;
label 1299:
v2.addEventListener(com.newgrounds.APIEvent.API_CONNECTED, _onConnected);
v2.connect(_root, apiId, encryptionKey, movieVersion);
}
}
function _onConnected(event) {
if (redirectOnNewVersion && event.__get__success() && (event.__get__data()).newVersion) {
_redirect = true;
}
if (redirectOnHostBlocked && !event.__get__success() && event.__get__error() == com.newgrounds.APIEvent.ERROR_HOST_BLOCKED) {
_redirect = true;
}
if (_redirect) {
gotoAndStop('adPreloader');
forceAlwaysOnTop();
}
}
function forceAlwaysOnTop() {
var v2 = getNextHighestDepth();
swapDepths(v2);
if (Stage) {
_x = (Stage.width - _width) / 2;
_y = (Stage.height - _height) / 2;
_visible = true;
}
if (_root && _root instanceof MovieClip) {
(MovieClip(_root)).stop();
}
}
stop();
if (_root && _root instanceof MovieClip) {
(MovieClip(_root)).stop();
}
var apiId;
var encryptionKey;
var movieVersion;
var debugMode;
var connectorType;
var redirectOnHostBlocked;
var redirectOnNewVersion;
var adType;
var className;
var _redirect;
_x = int(_x);
_y = int(_y);
if (!debugMode) {
debugMode = 'Simulate Logged-in User';
}
if (!connectorType) {
connectorType = 'Flash Ad + Preloader';
}
if (!adType) {
adType = 'Video';
}
if (ad) {
ad.adType = adType;
}
switch (connectorType) {
case 'Flash Ad + Preloader':
gotoAndStop('adPreloader');
break;
case 'Flash Ad Only':
gotoAndStop('ad');
break;
case 'Invisible':
gotoAndStop('invisible');
}
_apiConnect();
}
instance ad of movieClip 88 FlashAd {
onClipEvent (construct) {
apiId = '';
showBorder = true;
adType = 'Video';
}
}
instance loader of movieClip 31 Preloader {
onClipEvent (construct) {
autoPlay = false;
mainClass = '';
}
}
}
movieClip 96 miniA {
}
movieClip 98 headbar {
}
movieClip 105 gunfire {
}
movieClip 130 droplet {
frame 1 {
stop();
}
}
movieClip 135 {
}
movieClip 136 bullet {
}
movieClip 145 blood3 {
}
movieClip 147 aa {
}
movieClip 149 {
}
movieClip 150 waveComplete {
frame 1 {
stop();
}
}
movieClip 157 walls {
}
movieClip 166 {
}
movieClip 171 {
}
movieClip 172 arena2 {
}
movieClip 175 aim {
frame 1 {
stop();
}
}
movieClip 178 dead15 {
}
movieClip 185 {
}
movieClip 201 {
}
movieClip 202 boss6 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 209 {
}
movieClip 230 {
}
movieClip 231 boss5 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 234 {
}
movieClip 235 dead14 {
}
movieClip 242 {
}
movieClip 259 {
}
movieClip 260 boss4 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 263 {
}
movieClip 264 dead13 {
}
movieClip 265 dead12 {
}
movieClip 266 dead11 {
}
movieClip 267 dead10 {
}
movieClip 268 boss3 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 271 dead6 {
}
movieClip 274 dead4 {
}
movieClip 277 dead3 {
}
movieClip 280 dead2 {
}
movieClip 283 dead1 {
}
movieClip 286 dead9 {
}
movieClip 289 dead8 {
}
movieClip 292 dead7 {
}
movieClip 295 dead5 {
}
frame 1 {
function sitelock(urls_allowed) {
lock = true;
domain_parts = _url.split('://');
real_domain = domain_parts[1].split('/');
domain.text = real_domain[0];
for (x in urls_allowed) {
if (urls_allowed[x] == real_domain[0]) {
lock = false;
}
}
if (lock) {
_root._alpha = 0;
_root.gotoAndStop(5);
}
}
stop();
var game = new AS2TestGame(this);
urls_allowed = ['www.agitatedferret.net', 'games.armorgames.com', 'preview.armorgames.com', 'cache.armorgames.com', 'cdn.armorgames.com', '*.armorgames.com', 'armorgames.com'];
sitelock(urls_allowed);
}
movieClip 299 {
}
movieClip 302 {
}
button 309 {
on (release) {
_root.play();
}
}
movieClip 310 {
frame 1 {
function timerHandler() {
if (!loadingComplete) {
var v2 = _root.getBytesLoaded() / _root.getBytesTotal();
bar._xscale = 100 * v2;
if (v2 == 1) {
loadingComplete = true;
if (AUTO_PLAY) {
startMovie();
return undefined;
}
gotoAndStop('loaded');
return undefined;
}
}
}
function startMovie() {
_root.play();
}
_root.stop();
stop();
var AUTO_PLAY = false;
var loadingComplete = false;
timerHandler();
}
instance of movieClip 302 {
onClipEvent (enterFrame) {
_parent.timerHandler();
}
}
frame 2 {
stop();
_root.gotoAndStop('splash');
}
}
// unknown tag 88 length 67
movieClip 319 {
}
button 320 {
on (release) {
getURL('http://www.agitatedferret.net/', '_blank');
}
}
movieClip 41 __Packages.com.newgrounds.APIConnection {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIConnection) {
var v1 = function () {
this.reset();
};
com.newgrounds.APIConnection = v1;
var v2 = v1.prototype;
v2.__get__hostURL = function () {
return this._hostURL;
};
v2.__set__hostURL = function (value) {
this._hostURL = value;
this.hostDomain = null;
if (this._hostURL) {
var v2 = this._hostURL.split('/');
if (v2[0] != 'file:' && this._hostURL != 'localhost') {
this.hostDomain = v2[2];
}
}
if (!this.hostDomain) {
this.hostDomain = 'localhost';
}
return this.__get__hostURL();
};
v2.__get__sandboxType = function () {
return System.security.sandboxType;
};
v2.__get__isNetworkHost = function () {
switch (this.__get__sandboxType()) {
return true;
case 'localWithFile':
case 'localWithNetwork':
case 'localTrusted':
case 'application':
return false;
case 'remote':
}
return true;
};
v2.__get__hasUserSession = function () {
return this.sessionId != null && this.sessionId != '' && this.publisherId != 0;
};
v2.__get__connected = function () {
return this.connectionState == com.newgrounds.APIConnection.CONNECTED;
};
v2.reset = function () {
this.connectionState = com.newgrounds.APIConnection.NOT_CONNECTED;
this.encryptionKey = null;
this.sessionId = null;
this.userEmail = null;
this.username = null;
this.userId = 0;
this.userpageFormat = 0;
};
v2.assertInitialized = function () {
if (!this.initialized) {
com.newgrounds.Logger.logError('You must initialized the API using API.connect() before using this command.');
return false;
}
return true;
};
v2.assertConnected = function () {
if (!this.connectionState == com.newgrounds.APIConnection.CONNECTED) {
com.newgrounds.Logger.logError('You must establish a connection using API.connect() before using this command.');
return false;
}
return true;
};
v2.sendSimpleCommand = function (command, completeHandler, parameters, secureParameters) {
if (parameters == undefined) {
parameters = null;
}
if (secureParameters == undefined) {
secureParameters = null;
}
var v2 = new com.newgrounds.APICommand(command);
v2.__set__parameters(parameters);
v2.__set__secureParameters(secureParameters);
if (completeHandler != null) {
v2.addEventListener(com.newgrounds.APIEvent.COMMAND_COMPLETE, completeHandler);
}
v2.send(this);
};
v2.sendCommand = function (command) {
command.send(this);
};
v2.loadInBrowser = function (command, newWindow, parameters) {
if (newWindow == undefined) {
newWindow = true;
}
if (parameters == undefined) {
parameters = null;
}
var v2 = new com.newgrounds.APICommand(command);
v2.__set__parameters(parameters);
v2.loadInBrowser(this, newWindow);
};
v1.NOT_CONNECTED = 'notConnected';
v1.CONNECTING = 'connecting';
v1.CONNECTED = 'connected';
v2.connectionState = com.newgrounds.APIConnection.NOT_CONNECTED;
v2.apiURL = 'http://www.ngads.com/gateway_v2.php';
v2.addProperty('connected', v2.__get__connected, function () {});
v2.addProperty('hasUserSession', v2.__get__hasUserSession, function () {});
v2.addProperty('hostURL', v2.__get__hostURL, v2.__set__hostURL);
v2.addProperty('isNetworkHost', v2.__get__isNetworkHost, function () {});
v2.addProperty('sandboxType', v2.__get__sandboxType, function () {});
ASSetPropFlags(com.newgrounds.APIConnection.prototype, null, 1);
}
#endinitclip
}
movieClip 35 __Packages.com.newgrounds.EventDispatcher {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.EventDispatcher) {
var v1 = function () {
this._listeners = {};
};
com.newgrounds.EventDispatcher = v1;
var v2 = v1.prototype;
v2.addEventListener = function (type, listener) {
if (!this._listeners[type]) {
this._listeners[type] = [];
}
if (typeof listener == 'function') {
this._listeners[type].push({'target': null, 'func': listener});
} else {
this._listeners[type].push(listener);
}
};
v2.removeEventListener = function (type, listener) {
var v3 = this._listeners[type];
if (v3) {
var v5 = v3.length;
var v2 = 0;
while (v2 < v5) {
if (v3[v2].func == listener || v3[v2] == listener) {
v3.splice(v2, 1);
return undefined;
}
++v2;
}
}
};
v2.dispatchEvent = function (event) {
var v4 = this._listeners[event.__get__type()];
if (v4) {
var v5 = v4.length;
var v2 = 0;
while (v2 < v5) {
var v3 = v4[v2];
v3.func.call(v3.target, event);
++v2;
}
}
return true;
};
ASSetPropFlags(com.newgrounds.EventDispatcher.prototype, null, 1);
}
#endinitclip
}
movieClip 34 __Packages.com.newgrounds.Event {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Event) {
var v1 = function (type) {
this._type = type;
};
com.newgrounds.Event = v1;
var v2 = v1.prototype;
v2.__get__type = function () {
return this._type;
};
v2.addProperty('type', v2.__get__type, function () {});
ASSetPropFlags(com.newgrounds.Event.prototype, null, 1);
}
#endinitclip
}
movieClip 36 __Packages.com.newgrounds.APIEventDispatcher {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIEventDispatcher) {
var v1 = function () {
super();
};
com.newgrounds.APIEventDispatcher = v1;
com.newgrounds.APIEventDispatcher extends com.newgrounds.EventDispatcher;
var v2 = v1.prototype;
v1.__get__globalDispatcher = function () {
return com.newgrounds.APIEventDispatcher._globalDispatcher;
};
v1.__set__globalDispatcher = function (value) {
com.newgrounds.APIEventDispatcher._globalDispatcher = value;
return com.newgrounds.APIEventDispatcher.__get__globalDispatcher();
};
v1.initEventQueue = function () {
setInterval(com.newgrounds.APIEventDispatcher.runEventQueue, 50);
return [];
};
v2.dispatchEvent = function (event) {
com.newgrounds.APIEventDispatcher._eventQueue.push({'dispatcher': this, 'event': event});
return true;
};
v2.actualDispatchEvent = function (event) {
var v3 = super.dispatchEvent(event);
if (com.newgrounds.APIEventDispatcher._globalDispatcher && this != com.newgrounds.APIEventDispatcher._globalDispatcher) {
com.newgrounds.APIEventDispatcher._globalDispatcher.dispatchEvent(event);
}
};
v1.runEventQueue = function (event) {
var v3 = com.newgrounds.APIEventDispatcher._eventQueue.length;
if (v3) {
var v4 = com.newgrounds.APIEventDispatcher._eventQueue;
com.newgrounds.APIEventDispatcher._eventQueue = [];
var v1 = 0;
while (v1 < v3) {
var v2 = v4[v1];
v2.dispatcher.actualDispatchEvent(v2.event);
++v1;
}
}
};
v1._eventQueue = com.newgrounds.APIEventDispatcher.initEventQueue();
v1.addProperty('globalDispatcher', v1.__get__globalDispatcher, v1.__set__globalDispatcher);
ASSetPropFlags(com.newgrounds.APIEventDispatcher.prototype, null, 1);
}
#endinitclip
}
movieClip 39 __Packages.com.newgrounds.encoders.BaseN {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.BaseN) {
var v1 = function (hash) {
if (hash) {
this._hash = hash;
} else {
this._hash = com.newgrounds.encoders.BaseN.DEFAULT_HASH;
}
this._base = this._hash.length;
this._reverseHash = new Object();
var v2 = 0;
while (v2 < this._hash.length) {
this._reverseHash[this._hash.charAt(v2)] = v2;
++v2;
}
};
com.newgrounds.encoders.BaseN = v1;
var v2 = v1.prototype;
v2.encodeUint = function (number, minimumChars) {
if (minimumChars == undefined) {
minimumChars = 1;
}
var v2 = '';
var v3 = number;
while (v3 != 0) {
v2 = this._hash.charAt(v3 % this._base) + v2;
v3 /= this._base;
v3 = int(v3);
}
while (v2.length < minimumChars) {
v2 = this._hash.charAt(0) + v2;
}
return v2;
};
v2.decodeUint = function (encodedNumber) {
var v3 = 0;
var v2 = 0;
while (v2 < encodedNumber.length) {
v3 *= this._base;
v3 += this._reverseHash[encodedNumber.charAt(v2)];
++v2;
}
return v3;
};
v1.DEFAULT_HASH = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/';
ASSetPropFlags(com.newgrounds.encoders.BaseN.prototype, null, 1);
}
#endinitclip
}
movieClip 45 __Packages.com.newgrounds.APICommand {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APICommand) {
var v1 = function (command) {
super();
this._command = command;
this._parameters = new Object();
this._secureParameters = new Object();
this._hasTimeout = true;
};
com.newgrounds.APICommand = v1;
com.newgrounds.APICommand extends com.newgrounds.APIEventDispatcher;
var v2 = v1.prototype;
v1.stopPendingCommands = function () {
for (var v2 in com.newgrounds.APICommand._pendingCommands) {
var v1 = com.newgrounds.APICommand._pendingCommands[v2];
v1.close();
}
com.newgrounds.APICommand._pendingCommands = [];
};
v1.onThrottleTimer = function (event) {
if (getTimer() - com.newgrounds.APICommand._throttleTimestamp >= com.newgrounds.APICommand.THROTTLE_INTERVAL) {
com.newgrounds.APICommand._throttleCount = 0;
com.newgrounds.APICommand._throttleCount = 0;
for (;;) {
if (!(com.newgrounds.APICommand._commandQueue.length && com.newgrounds.APICommand._throttleCount < com.newgrounds.APICommand.THROTTLE_THRESHOLD)) break;
var v1 = com.newgrounds.APICommand._commandQueue.shift();
v1.command.send(v1.connection);
++com.newgrounds.APICommand._throttleCount;
}
}
};
v1.encryptHex = function (hexValue) {
var v4 = hexValue.length % 6;
var v3 = '';
var v1 = 0;
while (v1 < hexValue.length) {
v3 += com.newgrounds.APICommand._encryptor.encodeUint(int('0x' + hexValue.substr(v1, 6)), 4);
v1 += 6;
}
return v4.toString() + v3;
};
v2.__get__command = function () {
return this._command;
};
v2.__set__command = function (value) {
this._command = value;
return this.__get__command();
};
v2.__get__hasTimeout = function () {
return this._hasTimeout;
};
v2.__set__hasTimeout = function (val) {
this._hasTimeout = val;
return this.__get__hasTimeout();
};
v2.__get__parameters = function () {
return this._parameters;
};
v2.__set__parameters = function (object) {
this._parameters = new Object();
if (object) {
for (var v3 in object) {
this._parameters[v3] = object[v3];
}
}
return this.__get__parameters();
};
v2.__get__preventCache = function () {
return this._preventCache;
};
v2.__set__preventCache = function (value) {
this._preventCache = value;
return this.__get__preventCache();
};
v2.__get__secureParameters = function () {
return this._secureParameters;
};
v2.__set__secureParameters = function (object) {
this._secureParameters = new Object();
if (object) {
for (var v3 in object) {
this._secureParameters[v3] = object[v3];
}
}
return this.__get__secureParameters();
};
v2.__get__hasSecureParameters = function () {
for (var v2 in this._secureParameters) {
return true;
}
return false;
};
v2.addFile = function (filename, data, dataField, contentType) {
if (contentType == undefined) {
contentType = 'application/octet-stream';
}
if (!this._files) {
this._files = new Object();
}
var v3 = {'filename': filename, 'data': data, 'dataField': dataField, 'contentType': contentType};
this._files[filename] = v3;
};
v2.removeFile = function (filename) {
if (this._files) {
delete this._files[filename];
}
};
v2.clearFiles = function () {
this._files = null;
};
v2.close = function () {
if (this._loader) {
clearInterval(this._timeoutTimer);
var v2 = 0;
while (v2 < com.newgrounds.APICommand._pendingCommands.length) {
if (com.newgrounds.APICommand._pendingCommands[v2] == this) {
com.newgrounds.APICommand._pendingCommands.splice(v2, 1);
break;
}
++v2;
}
this._loader = null;
}
};
v2.loadInBrowser = function (connection, newWindow) {
this._parameters.command_id = this._command;
this._parameters.tracker_id = connection.apiId ? connection.apiId : 1;
if (connection.debug) {
this._parameters.debug = 1;
}
var v3 = connection.apiURL + '?host=' + escape(connection.hostDomain);
for (var v4 in this._parameters) {
v3 += '&' + escape(v4) + '=' + escape(this._parameters[v4]);
}
var v6;
if (newWindow) {
v6 = '_blank';
} else {
v6 = '_top';
}
_root.getURL(v3, v6);
};
v2.send = function (connection) {
if (com.newgrounds.APICommand._throttleCount >= com.newgrounds.APICommand.THROTTLE_THRESHOLD) {
com.newgrounds.APICommand._commandQueue.push({'connection': connection, 'command': this});
} else {
this.sendInternal(connection);
}
};
v2.sendInternal = function (connection) {
var v4;
v4 = new LoadVars();
v4.command_id = this._command;
v4.tracker_id = connection.apiId;
if (connection.debug) {
v4.debug = 1;
}
if (this._preventCache) {
v4.seed = Math.random();
}
var v2;
var v3;
var v7;
for (v2 in this._parameters) {
v3 = this._parameters[v2];
if (v3 != null) {
if (typeof v3 == 'boolean') {
v4[v2] = int(v3);
} else {
v4[v2] = v3;
}
}
}
if (this.__get__hasSecureParameters()) {
var v6 = new Object();
for (v2 in this._secureParameters) {
v3 = this._secureParameters[v2];
if (v3 != null) {
if (typeof v3 == 'boolean') {
v6[v2] = int(v3);
} else {
v6[v2] = v3;
}
}
}
var v8 = '';
v7 = 0;
while (v7 < 16) {
v8 += com.newgrounds.APICommand.ENCRYPTOR_RADIX.charAt(int(Math.random() * com.newgrounds.APICommand.ENCRYPTOR_RADIX.length));
++v7;
}
v4.command_id = 'securePacket';
v6.command_id = this._command;
v6.as_version = 3;
v6.session_id = connection.sessionId;
v6.user_email = connection.userEmail;
v6.publisher_id = connection.publisherId;
v6.seed = v8;
var v13 = com.newgrounds.crypto.MD5.hash(v8);
var v11 = com.newgrounds.crypto.RC4.encrypt(com.newgrounds.encoders.json.JSON.encode(v6), connection.encryptionKey);
v4.secure = com.newgrounds.APICommand.encryptHex(v13 + v11);
}
com.newgrounds.Logger.logInternal('Sending packet:', v4);
var v12;
v12 = 'application/x-www-form-urlencoded';
for (v2 in v4) {
if (typeof v4[v2] == 'object') {
v4[v2] = com.newgrounds.encoders.json.JSON.encode(v4[v2]);
}
}
if (this._files) {
for (var v10 in this._files) {
var v5 = this._files[v10];
if (typeof v5.data == 'string') {
v4[v10] = v5.data;
} else {
v4[v10] = com.newgrounds.encoders.json.JSON.encode(v5.data);
}
}
}
com.newgrounds.APICommand._pendingCommands.push(this);
++com.newgrounds.APICommand._throttleCount;
com.newgrounds.APICommand._throttleTimestamp = getTimer();
this.startLoader(connection.apiURL, v4, v12);
};
v2.startLoader = function (url, data, contentType) {
this._loader = LoadVars(data);
this._loader.onData = this.as2CompleteHandler;
this._loader.contentType = contentType;
this._loader.sendAndLoad(url, this._loader, 'POST');
if (this._hasTimeout) {
setInterval(this, this.onTimeout, com.newgrounds.APICommand.TIMEOUT_INTERVAL);
}
};
v2.as2CompleteHandler = function (data) {
var v3;
var v2 = 0;
while (v2 < com.newgrounds.APICommand._pendingCommands.length) {
if (com.newgrounds.APICommand._pendingCommands[v2]._loader == this) {
v3 = com.newgrounds.APICommand._pendingCommands[v2];
break;
}
++v2;
}
v3.onComplete(data);
};
v2.onTimeout = function (event) {
this.close();
com.newgrounds.Logger.logError('Command timed out.');
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, null, com.newgrounds.APIEvent.ERROR_TIMED_OUT));
};
v2.onError = function (error) {
com.newgrounds.Logger.logError('Error when sending command:', error);
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, null, com.newgrounds.APIEvent.ERROR_UNKNOWN));
this.close();
};
v2.onComplete = function (data) {
try {
if (!data || data == '') {
throw new Error();
}
com.newgrounds.Logger.logInternal('Received packet:', data);
var v2 = com.newgrounds.encoders.json.JSON.decode(data);
if (!v2) {
throw new Error();
}
if (com.newgrounds.APICommand.bridge) {
com.newgrounds.APICommand.bridge.sendEvent(v2.command_id, v2);
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, v2, (v2 && v2.success) ? com.newgrounds.APIEvent.ERROR_NONE : com.newgrounds.APIEvent.ERROR_COMMAND_FAILED));
}
catch (e) {
com.newgrounds.Logger.logError('Invalid response returned from server: ' + data);
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, null, com.newgrounds.APIEvent.ERROR_BAD_RESPONSE));
}
this.close();
};
v1.TIMEOUT_INTERVAL = 10000;
v1.THROTTLE_INTERVAL = 10050;
v1.THROTTLE_TICK_INTERVAL = 1000;
v1.THROTTLE_THRESHOLD = 24;
v1._throttleCount = 0;
v1._commandQueue = [];
v1._throttleTimer = setInterval(com.newgrounds.APICommand.onThrottleTimer, com.newgrounds.APICommand.THROTTLE_TICK_INTERVAL);
v1.ENCRYPTOR_RADIX = '/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X';
v1._encryptor = new com.newgrounds.encoders.BaseN(com.newgrounds.APICommand.ENCRYPTOR_RADIX);
v1._pendingCommands = [];
v1.CRLF = '\r\n';
v2.addProperty('command', v2.__get__command, v2.__set__command);
v2.addProperty('hasSecureParameters', v2.__get__hasSecureParameters, function () {});
v2.addProperty('hasTimeout', v2.__get__hasTimeout, v2.__set__hasTimeout);
v2.addProperty('parameters', v2.__get__parameters, v2.__set__parameters);
v2.addProperty('preventCache', v2.__get__preventCache, v2.__set__preventCache);
v2.addProperty('secureParameters', v2.__get__secureParameters, v2.__set__secureParameters);
ASSetPropFlags(com.newgrounds.APICommand.prototype, null, 1);
}
#endinitclip
}
movieClip 40 __Packages.com.newgrounds.Bridge {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Bridge) {
var v1 = function (id) {
this._widgetId = id;
this._inConnection = new LocalConnection();
this._outConnection = new LocalConnection();
this._inConnection.receiveEvent = this.receiveEvent;
try {
this._inConnection.connect('rec_' + this._widgetId);
}
com.newgrounds.Logger.addEventListener(com.newgrounds.APIEvent.LOG, {'target': this, 'func': this.onLogMessage});
};
com.newgrounds.Bridge = v1;
var v2 = v1.prototype;
v2.onLogMessage = function (event) {
try {
this._outConnection.send(this._widgetId, 'sendEvent', 'trace', String(event.__get__data()));
}
};
v2.sendEvent = function (command, parameters) {
if (this._outConnection) {
parameters = {'data': parameters};
this._outConnection.send(this._widgetId, 'sendEvent', command, parameters);
}
};
v2.receiveEvent = function (event, parameters) {};
v2.onStatus = function (event) {};
ASSetPropFlags(com.newgrounds.Bridge.prototype, null, 1);
}
#endinitclip
}
movieClip 37 __Packages.com.newgrounds.APIEvent {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIEvent) {
var v1 = function (type, data, error) {
super(type);
if (data == undefined) {
data = null;
}
if (error == undefined) {
error = null;
}
if (!error || error == '' || error == com.newgrounds.APIEvent.ERROR_NONE) {
this._error = com.newgrounds.APIEvent.ERROR_NONE;
this._success = true;
} else {
this._error = error;
this._success = false;
}
if (data) {
this._data = data;
} else {
this._data = {};
}
};
com.newgrounds.APIEvent = v1;
com.newgrounds.APIEvent extends com.newgrounds.Event;
var v2 = v1.prototype;
v2.clone = function () {
return new com.newgrounds.APIEvent(this.__get__type(), this._data, this._error);
};
v2.__get__success = function () {
return this._success;
};
v2.__get__data = function () {
return this._data;
};
v2.__get__error = function () {
return this._error;
};
v1.COMMAND_COMPLETE = 'commandComplete';
v1.MEDAL_UNLOCK_CONFIRMED = 'medalUnlockConfirmed';
v1.ICON_LOADED = 'iconLoaded';
v1.API_CONNECTED = 'movieConnected';
v1.LOG = 'log';
v1.MEDAL_UNLOCKED = 'medalUnlocked';
v1.SCORES_LOADED = 'scoresLoaded';
v1.SCORE_POSTED = 'scorePosted';
v1.QUERY_COMPLETE = 'queryComplete';
v1.FILE_LOADED = 'fileLoaded';
v1.FILE_SAVED = 'fileSaved';
v1.FILE_REQUESTED = 'fileRequested';
v1.VOTE_COMPLETE = 'voteComplete';
v1.ERROR_NONE = 'noError';
v1.ERROR_UNKNOWN = 'unknownError';
v1.ERROR_COMMAND_FAILED = 'commandFailed';
v1.ERROR_NOT_CONNECTED = 'notConnected';
v1.ERROR_INVALID_ARGUMENT = 'invalidArgument';
v1.ERROR_TIMED_OUT = 'timedOut';
v1.ERROR_BAD_FILE = 'badFile';
v1.ERROR_BAD_RESPONSE = 'badResponse';
v1.ERROR_SENDING_COMMAND = 'errorSendingCommand';
v1.ERROR_HOST_BLOCKED = 'hostBlocked';
v1.ERROR_ALREADY_VOTED = 'alreadyVoted';
v1.ERROR_NOT_LOGGED_IN = 'notLoggedIn';
v1.ERROR_WRONG_ENCRYPTION_KEY = 'wrongEncryptionKey';
v2.addProperty('data', v2.__get__data, function () {});
v2.addProperty('error', v2.__get__error, function () {});
v2.addProperty('success', v2.__get__success, function () {});
ASSetPropFlags(com.newgrounds.APIEvent.prototype, null, 1);
}
#endinitclip
}
movieClip 56 __Packages.com.newgrounds.API {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.API) {
var v1 = function () {};
com.newgrounds.API = v1;
var v2 = v1.prototype;
v1.__get__connected = function () {
return com.newgrounds.API._connection.__get__connected();
};
v1.__get__isNetworkHost = function () {
return com.newgrounds.API._connection.__get__isNetworkHost();
};
v1.__get__apiId = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.apiId;
};
v1.__get__debugMode = function () {
return com.newgrounds.API._debugMode;
};
v1.__set__debugMode = function (val) {
com.newgrounds.API._debugMode = val;
return com.newgrounds.API.__get__debugMode();
};
v1.__get__publisherId = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.publisherId;
};
v1.__get__sessionId = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.sessionId;
};
v1.__get__hostDomain = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.hostDomain;
};
v1.__get__hostURL = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.__get__hostURL();
};
v1.__get__isNewgrounds = function () {
return com.newgrounds.API._connection.publisherId == 1;
};
v1.__get__hasUserSession = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.__get__hasUserSession();
};
v1.__get__username = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.username;
};
v1.__get__userId = function () {
com.newgrounds.API._connection.assertInitialized();
return com.newgrounds.API._connection.userId;
};
v1.assertConnected = function (eventType) {
if (eventType == undefined) {
eventType = null;
}
if (com.newgrounds.API._connection.assertConnected()) {
return true;
} else {
if (eventType) {
com.newgrounds.API.dispatchEvent(eventType, null, com.newgrounds.APIEvent.ERROR_NOT_CONNECTED);
}
return false;
}
};
v1.__get__adsApproved = function () {
return com.newgrounds.API._adsApproved;
};
v1.__get__adFeedURL = function () {
return com.newgrounds.API._adFeedURL;
};
v1.__get__medals = function () {
return com.newgrounds.API._medalsArray;
};
v1.__get__scoreBoards = function () {
return com.newgrounds.API._scoreBoardsArray;
};
v1.__get__saveGroups = function () {
return com.newgrounds.API._saveGroupsArray;
};
v1.connect = function (_root, apiId, encryptionKey, movieVersion) {
if (encryptionKey == undefined) {
encryptionKey = null;
}
if (movieVersion == undefined) {
movieVersion = '';
}
com.newgrounds.APIEventDispatcher.__set__globalDispatcher(com.newgrounds.API._dispatcher);
System.security.loadPolicyFile('http://apifiles.ngfiles.com/crossdomain.xml');
if (com.newgrounds.API._connection.initialized) {
com.newgrounds.Logger.logError('Connection already in progress. Please call API.disconnect() before attempting another connection.');
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, false, com.newgrounds.APIEvent.ERROR_NOT_CONNECTED);
return undefined;
}
apiId = com.newgrounds.API.trimWhitespace(apiId);
if (encryptionKey) {
encryptionKey = com.newgrounds.API.trimWhitespace(encryptionKey);
}
if (!apiId || apiId == '') {
com.newgrounds.Logger.logError('No apiId given. Please use the API ID from your API settings page.');
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, false, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return undefined;
}
com.newgrounds.Logger.logMessage('====== Newgrounds API v' + com.newgrounds.API.VERSION + ' ======');
com.newgrounds.API._connection.connectionState = com.newgrounds.APIConnection.CONNECTING;
_root = _root;
com.newgrounds.API._movieVersion = movieVersion;
com.newgrounds.API._connection.apiId = apiId;
var v4;
v4 = apiId.indexOf(':');
if (v4 != -1) {
com.newgrounds.API._connection.trackerId = int(apiId.substring(0, v4));
} else {
com.newgrounds.API._connection.trackerId = int(apiId);
}
if (!com.newgrounds.API._connection.trackerId) {
com.newgrounds.Logger.logError('Invalid API ID: ' + apiId);
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, false, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return undefined;
}
com.newgrounds.API._connection.encryptionKey = encryptionKey;
com.newgrounds.API._connection.initialized = true;
com.newgrounds.API._connection.__set__hostURL(_root._url);
com.newgrounds.API.doConnect(_root);
};
v1.doConnect = function (flashVars) {
if (com.newgrounds.API.__get__isNetworkHost() && com.newgrounds.API._debugMode != com.newgrounds.API.RELEASE_MODE) {
com.newgrounds.Logger.logMessage('Live file detected, turning off debug mode.');
com.newgrounds.API._debugMode = com.newgrounds.API.RELEASE_MODE;
}
if (flashVars && flashVars.NewgroundsAPI_SandboxID) {
com.newgrounds.API._bridge = new com.newgrounds.Bridge(flashVars.NewgroundsAPI_SandboxID);
com.newgrounds.APICommand.bridge = com.newgrounds.API._bridge;
}
if (com.newgrounds.API._debugMode == com.newgrounds.API.RELEASE_MODE) {
if (flashVars) {
if (flashVars.NewgroundsAPI_UserName) {
com.newgrounds.API._connection.username = flashVars.NewgroundsAPI_UserName;
}
if (flashVars.NewgroundsAPI_UserID) {
com.newgrounds.API._connection.userId = flashVars.NewgroundsAPI_UserID;
}
if (flashVars.NewgroundsAPI_PublisherID) {
com.newgrounds.API._connection.publisherId = flashVars.NewgroundsAPI_PublisherID;
}
if (flashVars.NewgroundsAPI_UserpageFormat) {
com.newgrounds.API._connection.userpageFormat = flashVars.NewgroundsAPI_UserpageFormat;
}
if (flashVars.NewgroundsAPI_SessionID) {
com.newgrounds.API._connection.sessionId = flashVars.NewgroundsAPI_SessionID;
}
if (flashVars.NewgroundsAPI_SaveGroupID) {
com.newgrounds.API._requestedSaveGroupId = flashVars.NewgroundsAPI_SaveGroupID;
}
if (flashVars.NewgroundsAPI_SaveFileID) {
com.newgrounds.API._requestedSaveFileId = flashVars.NewgroundsAPI_SaveFileID;
}
}
} else {
com.newgrounds.API._connection.debug = true;
if (com.newgrounds.API._debugMode == com.newgrounds.API.DEBUG_MODE_LOGGED_IN || com.newgrounds.API._debugMode == com.newgrounds.API.DEBUG_MODE_LOGGED_OUT) {
com.newgrounds.API._connection.publisherId = 1;
}
if (com.newgrounds.API._debugMode == com.newgrounds.API.DEBUG_MODE_LOGGED_IN) {
com.newgrounds.API._connection.sessionId = 'D3bu64p1U53R';
com.newgrounds.API._connection.userId = 10;
com.newgrounds.API._connection.username = 'API-Debugger';
}
}
com.newgrounds.API._connection.sendSimpleCommand('connectMovie', com.newgrounds.API.onConnect, {'host': com.newgrounds.API._connection.hostDomain, 'movie_version': com.newgrounds.API._movieVersion, 'publisher_id': com.newgrounds.API._connection.publisherId});
};
v1.onConnect = function (event) {
var v1 = event.__get__data();
if (!event.__get__success()) {
com.newgrounds.Logger.logError('Unable to connect to the API.');
com.newgrounds.API._connection.reset();
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, event.__get__data(), event.__get__error());
return undefined;
}
if (com.newgrounds.API.__get__debugMode() != com.newgrounds.API.RELEASE_MODE) {
com.newgrounds.API._adFeedURL = com.newgrounds.API.TEST_AD_FEED_URL;
} else {
if (v1.ad_url) {
com.newgrounds.API._adFeedURL = unescape(v1.ad_url);
}
}
switch (v1.ad_status) {
case -1:
com.newgrounds.Logger.logWarning('Your movie is not approved to run Flash Ads.');
break;
case 0:
com.newgrounds.Logger.logWarning('Your movie is still awaiting approval to run Flash Ads.');
break;
case 1:
com.newgrounds.Logger.logMessage('Your movie is approved to run Flash Ads!');
}
com.newgrounds.API._adsApproved = v1.ad_status == 1;
if (com.newgrounds.API._debugMode == com.newgrounds.API.DEBUG_MODE_HOST_BLOCKED || v1.deny_host) {
com.newgrounds.Logger.logWarning(com.newgrounds.API._connection.hostDomain + ' does not have permission to host this movie!', 'Update your API configuration to allow this host.');
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, {'officialURL': unescape(v1.movie_url)}, com.newgrounds.APIEvent.ERROR_HOST_BLOCKED);
com.newgrounds.API._connection.reset();
return undefined;
}
com.newgrounds.API._movieName = v1.movieName ? v1.movieName : '';
com.newgrounds.Logger.logMessage('Connecting to the Newgrounds API Gateway...', '----- ' + v1.movie_name + ' -----');
if (com.newgrounds.API._debugMode == com.newgrounds.API.DEBUG_MODE_NEW_VERSION) {
v1.movie_version = 'Debug Mode';
}
if (v1.movie_version) {
com.newgrounds.Logger.logMessage('A new version of this movie is available.', 'Current version:\t' + com.newgrounds.API._movieVersion, 'Newest version:\t' + v1.movie_version, 'Use API.loadOfficialVersion() to link to the latest version.');
com.newgrounds.API._newVersion = true;
} else {
com.newgrounds.API._newVersion = false;
}
if (v1.request_portal_url) {
com.newgrounds.API._connection.sendSimpleCommand('setPortalID', null, {'portal_url': com.newgrounds.API._connection.__get__hostURL()});
}
com.newgrounds.API._connection.sendSimpleCommand('preloadSettings', com.newgrounds.API.onMetadataLoaded, {'publisher_id': com.newgrounds.API._connection.publisherId, 'user_id': com.newgrounds.API._connection.userId});
};
v1.onMetadataLoaded = function (event) {
var v11 = event.__get__data();
var v1;
var v7;
if (!event.__get__success()) {
com.newgrounds.Logger.logWarning('Unable to load movie metadata.');
com.newgrounds.API.disconnect();
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, null, event.__get__error());
return undefined;
}
var v10 = 0;
if (v11.medals) {
v10 = v11.medals.length;
var v18;
if (com.newgrounds.API.__get__hasUserSession()) {
v18 = com.newgrounds.API.loadLocal('medals_unlocked_' + com.newgrounds.API.__get__username());
} else {
v18 = com.newgrounds.API.loadLocal('medals_unlocked');
}
v1 = 0;
while (v1 < v10) {
var v4 = v11.medals[v1];
var v15 = v4.medal_unlocked;
var v17 = v18 && v18[v4.medal_id];
var v14 = com.newgrounds.API.__get__hasUserSession() ? v15 : v17;
if (com.newgrounds.API.__get__debugMode() != com.newgrounds.API.RELEASE_MODE) {
v14 = false;
}
var v5 = new com.newgrounds.Medal(com.newgrounds.API._connection, v4.medal_id, v4.medal_name, v4.medal_description, Boolean(int(v4.secret)), v14, v4.medal_value, v4.medal_difficulty, v4.medal_icon);
v5.addEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, com.newgrounds.API.onMedalUnlocked, false, 0, true);
v5.addEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCK_CONFIRMED, com.newgrounds.API.onMedalUnlockConfirmed, false, 0, true);
com.newgrounds.API._medals[v5.__get__name()] = v5;
com.newgrounds.API._medalsArray.push(v5);
com.newgrounds.Logger.logMessage(v5);
if (com.newgrounds.API.__get__hasUserSession() && v17 && !v15) {
com.newgrounds.Logger.logMessage('Server missed the "' + v5.__get__name() + '" unlock. Resending...');
v5.unlock();
}
++v1;
}
}
com.newgrounds.Logger.logMessage(v10 + ' medal' + ((v10 != 1) ? 's' : '') + ' initialized.');
v10 = 0;
if (v11.score_boards) {
v10 = v11.score_boards.length;
v1 = 0;
while (v1 < v10) {
var v16 = v11.score_boards[v1];
var v9 = new com.newgrounds.ScoreBoard(com.newgrounds.API._connection, v16.name, v16.id);
com.newgrounds.API._scoreBoards[v9.__get__name()] = v9;
com.newgrounds.API._scoreBoardsArray.push(v9);
com.newgrounds.Logger.logMessage(v9);
++v1;
}
}
com.newgrounds.Logger.logMessage(v10 + ' scoreboard' + ((v10 != 1) ? 's' : '') + ' initialized.');
v10 = 0;
if (v11.save_groups) {
v10 = v11.save_groups.length;
v1 = 0;
while (v1 < v10) {
var v2 = v11.save_groups[v1];
var v13 = [];
if (v2.keys) {
v7 = 0;
while (v7 < v2.keys.length) {
var v6 = v2.keys[v7];
v13.push(new com.newgrounds.SaveKey(v6.name, v6.id, v6.type));
++v7;
}
}
var v12 = [];
if (v2.ratings) {
v1 = 0;
while (v1 < v2.ratings.length) {
var v3 = v2.ratings[v1];
v12.push(new com.newgrounds.SaveRating(v3.name, v3.id, v3.float, v3.min, v3.max));
++v1;
}
}
var v8 = new com.newgrounds.SaveGroup(com.newgrounds.API._connection, v2.group_name, v2.group_id, v2.group_type, v13, v12);
com.newgrounds.API._saveGroups[v8.__get__name()] = v8;
com.newgrounds.API._saveGroupsArray.push(v8);
com.newgrounds.Logger.logMessage(v8);
++v1;
}
}
com.newgrounds.Logger.logMessage(v10 + ' save group' + ((v10 != 1) ? 's' : '') + ' initialized.');
if (v11.save_file_path) {
com.newgrounds.API._saveFilePath = v11.save_file_path + '/';
com.newgrounds.SaveFile._saveFilePath = com.newgrounds.API._saveFilePath;
com.newgrounds.Logger.logInternal('Save file path: ' + com.newgrounds.API._saveFilePath);
}
if (v11.image_file_path) {
com.newgrounds.API._imageFilePath = v11.image_file_path + '/';
com.newgrounds.SaveFile._imageFilePath = com.newgrounds.API._imageFilePath;
com.newgrounds.Logger.logInternal('Image file path: ' + com.newgrounds.API._imageFilePath);
}
com.newgrounds.Logger.logMessage('Connection complete!');
com.newgrounds.API._connection.connectionState = com.newgrounds.APIConnection.CONNECTED;
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, {'movieName': com.newgrounds.API._movieName, 'newVersion': com.newgrounds.API._newVersion});
if (com.newgrounds.API._requestedSaveFileId && com.newgrounds.API._requestedSaveGroupId) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_LOADED, com.newgrounds.API.onRequestedFileLoaded);
com.newgrounds.API.loadSaveFile(com.newgrounds.API._requestedSaveFileId, false);
}
};
v1.disconnect = function () {
if (!com.newgrounds.API._connection.__get__connected()) {
com.newgrounds.Logger.logWarning('The Newgrounds API is already disconnected.');
return undefined;
}
com.newgrounds.API._connection.reset();
for (var v2 in com.newgrounds.API._medals) {
var v1 = com.newgrounds.API._medals[v2];
v1.removeEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, com.newgrounds.API.onMedalUnlocked);
v1.removeEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCK_CONFIRMED, com.newgrounds.API.onMedalUnlockConfirmed);
}
com.newgrounds.API._newVersion = false;
com.newgrounds.API._medals = new Object();
com.newgrounds.API._medalsArray = [];
com.newgrounds.API._scoreBoards = new Object();
com.newgrounds.API._scoreBoardsArray = [];
com.newgrounds.API._saveGroups = new Object();
com.newgrounds.API._saveGroupsArray = [];
com.newgrounds.API._sharedObjects = new Object();
com.newgrounds.API._imageFilePath = null;
com.newgrounds.API._saveFilePath = null;
com.newgrounds.Logger.logMessage('Disconnected from the Newgrounds API.');
};
v1.loadNewgrounds = function () {
com.newgrounds.API._connection.loadInBrowser('loadNewgrounds');
};
v1.loadOfficialVersion = function () {
if (com.newgrounds.API._connection.assertInitialized()) {
com.newgrounds.API._connection.loadInBrowser('loadOfficialVersion', false);
}
};
v1.loadMySite = function () {
if (com.newgrounds.API._connection.assertInitialized()) {
com.newgrounds.API._connection.loadInBrowser('loadMySite');
}
};
v1.loadCustomLink = function (linkName) {
if (com.newgrounds.API._connection.assertInitialized()) {
com.newgrounds.API._connection.loadInBrowser('loadCustomLink', true, {'link': linkName});
}
};
v1.getMedal = function (medalName) {
return com.newgrounds.API._medals[medalName];
};
v1.unlockMedal = function (medalName) {
if (!com.newgrounds.API.assertConnected()) {
return undefined;
}
var v1 = com.newgrounds.API._medals[medalName];
if (!v1) {
com.newgrounds.Logger.logError('No medal named "' + medalName + '" w.');
return undefined;
}
v1.unlock();
};
v1.onMedalUnlocked = function (event) {
if (event.__get__success()) {
var v2 = com.newgrounds.Medal(event.__get__data());
var v1;
if (com.newgrounds.API.__get__hasUserSession()) {
v1 = com.newgrounds.API.loadLocal('medals_unlocked_' + com.newgrounds.API.__get__username());
if (!v1) {
v1 = new Object();
}
v1[v2.__get__id()] = true;
com.newgrounds.API.saveLocal('medals_unlocked_' + com.newgrounds.API.__get__username(), v1);
} else {
v1 = com.newgrounds.API.loadLocal('medals_unlocked');
if (!v1) {
v1 = new Object();
}
v1[(com.newgrounds.Medal(event.__get__data())).__get__id()] = true;
com.newgrounds.API.saveLocal('medals_unlocked', v1);
com.newgrounds.Logger.logMessage('User instanceof not logged in. Medal "' + v2.__get__name() + '" unlocked locally.');
}
}
};
v1.onMedalUnlockConfirmed = function (event) {
if (com.newgrounds.API.__get__hasUserSession()) {
var v1 = com.newgrounds.API.loadLocal('medals_unlocked_' + com.newgrounds.API.__get__username());
if (!v1) {
v1 = new Object();
} else {
delete v1[(com.newgrounds.Medal(event.__get__data())).__get__id()];
}
com.newgrounds.API.saveLocal('medals_unlocked_' + com.newgrounds.API.__get__username(), v1);
}
};
v1.clearLocalMedals = function () {
for (var v2 in com.newgrounds.API._medals) {
var v1 = com.newgrounds.API._medals[v2];
v1.setUnlocked(false);
}
if (!com.newgrounds.API.__get__hasUserSession()) {
com.newgrounds.API.saveLocal('medals_unlocked', new Object());
}
};
v1.getScoreBoard = function (scoreBoardName) {
if (!com.newgrounds.API.assertConnected()) {
return null;
}
return com.newgrounds.API._scoreBoards[scoreBoardName];
};
v1.loadScores = function (scoreBoardName, period, firstResult, numResults, tag) {
if (period == undefined) {
period = 'All-Time';
}
if (firstResult == undefined) {
firstResult = 1;
}
if (numResults == undefined) {
numResults = 10;
}
if (tag == undefined) {
tag = null;
}
if (!com.newgrounds.API.assertConnected()) {
return null;
}
var v1 = com.newgrounds.API._scoreBoards[scoreBoardName];
if (!v1) {
com.newgrounds.Logger.logError('No scoreboard named "' + scoreBoardName + '" w.');
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.SCORES_LOADED, null, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return null;
}
v1.__set__period(period);
v1.__set__firstResult(firstResult);
v1.__set__numResults(numResults);
v1.__set__tag(tag);
v1.loadScores();
return v1;
};
v1.postScore = function (scoreBoardName, numericScore, tag) {
if (tag == undefined) {
tag = null;
}
if (!com.newgrounds.API.assertConnected()) {
return undefined;
}
if (!com.newgrounds.API.__get__hasUserSession()) {
com.newgrounds.Logger.logError('The user must be logged-in to post a score.');
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.SCORE_POSTED, null, com.newgrounds.APIEvent.ERROR_NOT_LOGGED_IN);
return undefined;
}
var v1 = com.newgrounds.API._scoreBoards[scoreBoardName];
if (!v1) {
com.newgrounds.Logger.logError('No scoreboard named "' + scoreBoardName + '" w.');
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.SCORE_POSTED, null, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return undefined;
}
v1.postScore(numericScore, tag);
};
v1.getSaveGroup = function (groupName) {
if (!com.newgrounds.API.assertConnected()) {
return null;
}
return com.newgrounds.API._saveGroups[groupName];
};
v1.getSaveGroupById = function (id) {
for (var v3 in com.newgrounds.API._saveGroups) {
var v1 = com.newgrounds.API._saveGroups[v3];
if (v1.__get__id() == id) {
return v1;
}
}
return null;
};
v1.createSaveFile = function (groupName) {
if (!com.newgrounds.API.assertConnected()) {
return null;
}
var v1 = com.newgrounds.API.getSaveGroup(groupName);
if (!v1) {
com.newgrounds.Logger.logError('The save group "' + groupName + '" w found.');
return null;
}
return new com.newgrounds.SaveFile(v1);
};
v1.loadSaveFile = function (saveId, loadContents) {
if (loadContents == undefined) {
loadContents = true;
}
com.newgrounds.API._connection.sendSimpleCommand('loadSaveFile', com.newgrounds.API.onFileLoaded, {'save_id': saveId, 'get_contents': loadContents});
};
v1.onFileLoaded = function (event) {
var v2;
if (event.__get__success()) {
v2 = com.newgrounds.SaveFile.fromObject(com.newgrounds.API.getSaveGroupById((event.__get__data()).group_id), (event.__get__data()).file);
if ((event.__get__data()).get_contents) {
v2.load();
} else {
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.FILE_LOADED, v2);
}
} else {
com.newgrounds.Logger.logError('Unable to load file:', event.__get__error());
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.FILE_LOADED, null, event.__get__error());
}
};
v1.createSaveQuery = function (groupName) {
if (!com.newgrounds.API.assertConnected()) {
return null;
}
var v1 = com.newgrounds.API.getSaveGroup(groupName);
if (!v1) {
com.newgrounds.Logger.logError('The save group "' + groupName + '" w found.');
return null;
}
var v2 = new com.newgrounds.SaveQuery(v1);
return v2;
};
v1.createSaveQueryByDate = function (groupName, sortDescending) {
if (sortDescending == undefined) {
sortDescending = true;
}
var v1 = com.newgrounds.API.createSaveQuery(groupName);
if (!v1) {
return null;
}
v1.sortOn(com.newgrounds.SaveQuery.CREATED_ON, sortDescending);
return v1;
};
v1.createSaveQueryByName = function (groupName, filename, exactMatch, sortDescending) {
if (exactMatch == undefined) {
exactMatch = false;
}
if (sortDescending == undefined) {
sortDescending = false;
}
var v1 = com.newgrounds.API.createSaveQuery(groupName);
if (!exactMatch) {
v1.addCondition(com.newgrounds.SaveQuery.FILE_NAME, com.newgrounds.SaveQuery.OPERATOR_CONTAINS, filename);
return v1;
}
v1.addCondition(com.newgrounds.SaveQuery.FILE_NAME, com.newgrounds.SaveQuery.OPERATOR_EQUAL, filename);
return v1;
};
v1.createSaveQueryByRating = function (groupName, ratingName, sortDescending) {
if (sortDescending == undefined) {
sortDescending = true;
}
var v1 = com.newgrounds.API.createSaveQuery(groupName);
v1.sortOn(ratingName, sortDescending);
return v1;
};
v1.onRequestedFileLoaded = function (event) {
com.newgrounds.API.removeEventListener(com.newgrounds.APIEvent.FILE_LOADED, com.newgrounds.API.onRequestedFileLoaded);
if (event.__get__success()) {
var v1 = event.__get__data();
if (v1) {
com.newgrounds.API.dispatchEvent(com.newgrounds.APIEvent.FILE_REQUESTED, v1);
}
}
};
v1.addEventListener = function (eventType, listener, priority, useWeakReference) {
if (priority == undefined) {
priority = 0;
}
if (useWeakReference == undefined) {
useWeakReference = true;
}
com.newgrounds.API._dispatcher.addEventListener(eventType, listener, false, priority, useWeakReference);
};
v1.removeEventListener = function (eventType, listener) {
com.newgrounds.API._dispatcher.removeEventListener(eventType, listener);
};
v1.dispatchEvent = function (event, data, error) {
if (data == undefined) {
data = null;
}
if (error == undefined) {
error = null;
}
com.newgrounds.API._dispatcher.dispatchEvent(new com.newgrounds.APIEvent(event, data, error));
};
v1.saveLocal = function (saveId, saveData) {
try {
var v3;
var v2 = 'ng_ap_secure_' + com.newgrounds.API._connection.trackerId + '_' + com.newgrounds.crypto.RC4.encrypt(saveId, com.newgrounds.API._connection.encryptionKey);
if (!com.newgrounds.API._sharedObjects[saveId]) {
com.newgrounds.API._sharedObjects[saveId] = SharedObject.getLocal(v2);
}
v3 = com.newgrounds.API._sharedObjects[saveId];
v3.data.data = com.newgrounds.API.encodeData(saveData);
}
catch (v0) {
if (Error(v0) != null) {
var error = Error(v0);
com.newgrounds.Logger.logError('Unable to save local data.', error);
return false;
return true;
}
throw v0;
}
return true;
};
v1.loadLocal = function (saveId) {
try {
var v1;
var v3 = 'ng_ap_secure_' + com.newgrounds.API._connection.trackerId + '_' + com.newgrounds.crypto.RC4.encrypt(saveId, com.newgrounds.API._connection.encryptionKey);
if (!com.newgrounds.API._sharedObjects[saveId]) {
com.newgrounds.API._sharedObjects[saveId] = SharedObject.getLocal(v3);
}
v1 = com.newgrounds.API._sharedObjects[saveId];
if (v1 && v1.data && v1.data.data) {
return com.newgrounds.API.decodeData(v1.data.data);
}
return null;
}
catch (v0) {
if (Error(v0) != null) {
var error = Error(v0);
com.newgrounds.Logger.logError('Unable to load local data.', error);
return null;
}
throw v0;
}
return null;
};
v1.logCustomEvent = function (eventName) {
if (com.newgrounds.API.assertConnected()) {
com.newgrounds.Logger.logMessage('Logged event: ' + eventName);
com.newgrounds.API._connection.sendSimpleCommand('logCustomEvent', null, {'event': eventName});
}
};
v1.encodeData = function (data) {
if (!com.newgrounds.API._connection.assertInitialized()) {
return null;
}
return com.newgrounds.crypto.RC4.encrypt(com.newgrounds.encoders.json.JSON.encode(data), com.newgrounds.API._connection.encryptionKey);
};
v1.decodeData = function (data) {
if (!com.newgrounds.API._connection.assertInitialized()) {
return null;
}
try {
return com.newgrounds.encoders.json.JSON.decode(com.newgrounds.crypto.RC4.decrypt(data, com.newgrounds.API._connection.encryptionKey));
}
catch (v0) {
if (Error(v0) != null) {
var error = Error(v0);
return null;
}
throw v0;
}
return null;
};
v1.stopPendingCommands = function () {
com.newgrounds.APICommand.stopPendingCommands();
com.newgrounds.Logger.logMessage('Pending commands stopped.');
};
v1.trimWhitespace = function (string) {
if (!string) {
return null;
}
var v3 = 0;
while (string.charAt(v3) == ' ') {
++v3;
}
var v1 = string.length - 1;
for (;;) {
if (!(string.charAt(v1) == ' ' && v1 >= 0)) break;
--v1;
}
return string.slice(v3, v1 + 1);
};
v1.VERSION = '3.1.1 AS2';
v1.RELEASE_MODE = 'releaseMode';
v1.DEBUG_MODE_LOGGED_IN = 'debugModeLoggedIn';
v1.DEBUG_MODE_LOGGED_OUT = 'debugModeLoggedOut';
v1.DEBUG_MODE_NEW_VERSION = 'debugModeNewVersion';
v1.DEBUG_MODE_HOST_BLOCKED = 'debugModeHostBlocked';
v1.TEST_AD_FEED_URL = 'http://www.ngads.com/adtest.php';
v1._dispatcher = new com.newgrounds.APIEventDispatcher();
v1._connection = new com.newgrounds.APIConnection();
v1._debugMode = com.newgrounds.API.DEBUG_MODE_LOGGED_IN;
v1._adsApproved = false;
v1._medals = new Object();
v1._medalsArray = [];
v1._scoreBoards = new Object();
v1._scoreBoardsArray = [];
v1._saveGroups = new Object();
v1._saveGroupsArray = [];
v1._sharedObjects = new Object();
v1.addProperty('adFeedURL', v1.__get__adFeedURL, function () {});
v1.addProperty('adsApproved', v1.__get__adsApproved, function () {});
v1.addProperty('apiId', v1.__get__apiId, function () {});
v1.addProperty('connected', v1.__get__connected, function () {});
v1.addProperty('debugMode', v1.__get__debugMode, v1.__set__debugMode);
v1.addProperty('hasUserSession', v1.__get__hasUserSession, function () {});
v1.addProperty('hostDomain', v1.__get__hostDomain, function () {});
v1.addProperty('hostURL', v1.__get__hostURL, function () {});
v1.addProperty('isNetworkHost', v1.__get__isNetworkHost, function () {});
v1.addProperty('isNewgrounds', v1.__get__isNewgrounds, function () {});
v1.addProperty('medals', v1.__get__medals, function () {});
v1.addProperty('publisherId', v1.__get__publisherId, function () {});
v1.addProperty('saveGroups', v1.__get__saveGroups, function () {});
v1.addProperty('scoreBoards', v1.__get__scoreBoards, function () {});
v1.addProperty('sessionId', v1.__get__sessionId, function () {});
v1.addProperty('userId', v1.__get__userId, function () {});
v1.addProperty('username', v1.__get__username, function () {});
ASSetPropFlags(com.newgrounds.API.prototype, null, 1);
}
#endinitclip
}
movieClip 53 __Packages.com.newgrounds.encoders.ImageScanner {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.ImageScanner) {
var v1 = function (hashLength, charsPerPixel) {
if (hashLength) {
this._hash = com.newgrounds.encoders.ImageScanner.DEFAULT_HASH.substr(0, hashLength);
}
this._baseN = new com.newgrounds.encoders.BaseN(this._hash);
if (charsPerPixel) {
this._charsPerPixel = charsPerPixel;
}
this.__set__encodeAlpha(false);
};
com.newgrounds.encoders.ImageScanner = v1;
var v2 = v1.prototype;
v2.__get__encodeAlpha = function () {
return this._encodeAlpha;
};
v2.__set__encodeAlpha = function (v) {
this._encodeAlpha = v;
this._maxPerChannel = int(Math.pow(this._hash.length, this._charsPerPixel / (this._encodeAlpha ? 4 : 3)));
if (this._maxPerChannel > 256) {
this._maxPerChannel = 256;
}
return this.__get__encodeAlpha();
};
v2.encode = function (source, callbackFunction, callbackObject) {
var v4 = {'callbackFunction': callbackFunction, 'callbackObject': callbackObject, 'source': source, 'x': 0, 'y': 0, 'output': null};
var v2 = source.width.toString();
var v3 = source.height.toString();
while (v2.length < 3) {
v2 = '0' + v2;
}
while (v3.length < 3) {
v3 = '0' + v3;
}
v4.output = v2 + v3;
var v6 = setInterval(this, 'doEncode', com.newgrounds.encoders.ImageScanner.WORK_INTERVAL, v4);
v4.interval = v6;
};
v2.decode = function (source, callbackFunction, callbackObject) {
var v2 = {'callbackFunction': callbackFunction, 'callbackObject': callbackObject, 'source': source, 'i': 6, 'x': 0, 'y': 0, 'output': null};
var v5 = int(source.substr(0, 3));
var v6 = int(source.substr(3, 3));
v2.output = new flash.display.BitmapData(v5, v6, this._encodeAlpha);
var v4 = setInterval(this, 'doDecode', com.newgrounds.encoders.ImageScanner.WORK_INTERVAL, v2);
v2.interval = v4;
};
v2.doEncode = function (state) {
var v3 = getTimer();
for (;;) {
if (!(state.y < state.source.height && getTimer() - v3 < com.newgrounds.encoders.ImageScanner.WORK_INTERVAL)) break;
state.output += this.encodePixel(state.source.getPixel32(state.x, state.y));
++state.x;
if (state.x == state.source.width) {
state.x = 0;
++state.y;
}
}
if (state.y == state.source.height) {
clearInterval(state.interval);
state.callbackFunction.call(state.callbackObject, state.output);
}
};
v2.doDecode = function (state) {
var v4 = getTimer();
for (;;) {
if (!(state.y < state.output.height && getTimer() - v4 < com.newgrounds.encoders.ImageScanner.WORK_INTERVAL)) break;
var v3 = this.decodePixel(state.source.substr(state.i, this._charsPerPixel));
state.output.setPixel32(state.x, state.y, v3);
state.i += this._charsPerPixel;
++state.x;
if (state.x == state.output.width) {
state.x = 0;
++state.y;
}
}
if (state.y == state.output.height) {
clearInterval(state.interval);
state.callbackFunction.call(state.callbackObject, state.output);
}
};
v2.encodePixel = function (pixel) {
var v3 = pixel >> 24 & 255;
var v4 = pixel >> 16 & 255;
var v5 = pixel >> 8 & 255;
var v2 = pixel & 255;
v3 = int((v3 / 256) * this._maxPerChannel);
v4 = int((v4 / 256) * this._maxPerChannel);
v5 = int((v5 / 256) * this._maxPerChannel);
v2 = int((v2 / 256) * this._maxPerChannel);
var v7 = v4 * this._maxPerChannel * this._maxPerChannel + v5 * this._maxPerChannel + v2;
if (this._encodeAlpha) {
v7 += v3 * this._maxPerChannel * this._maxPerChannel * this._maxPerChannel;
}
return this._baseN.encodeUint(v7, this._charsPerPixel);
};
v2.decodePixel = function (encodedPixel) {
var v3 = 255;
var v5;
var v6;
var v4;
var v7 = 0;
var v2 = this._baseN.decodeUint(encodedPixel);
v4 = v2 % this._maxPerChannel;
v2 /= int(this._maxPerChannel);
v6 = v2 % this._maxPerChannel;
v2 /= int(this._maxPerChannel);
v5 = v2 % this._maxPerChannel;
v2 /= int(this._maxPerChannel);
if (this._encodeAlpha) {
v3 = v2 % this._maxPerChannel;
v2 /= int(this._maxPerChannel);
}
return v3 << 24 | v5 << 16 | v6 << 8 | v4;
};
v1.DEFAULT_HASH = '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&';
v2._hash = com.newgrounds.encoders.ImageScanner.DEFAULT_HASH;
v2._charsPerPixel = 2;
v1.WORK_INTERVAL = 33.33333333333334;
v2.addProperty('encodeAlpha', v2.__get__encodeAlpha, v2.__set__encodeAlpha);
ASSetPropFlags(com.newgrounds.encoders.ImageScanner.prototype, null, 1);
}
#endinitclip
}
movieClip 54 __Packages.com.newgrounds.SaveFile {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveFile) {
var v1 = function (group) {
super();
this._iconLoader = new com.newgrounds.BitmapLoader(com.newgrounds.SaveFile.DEFAULT_ICON, null);
this._group = group;
this._keys = {};
this._ratings = {};
};
com.newgrounds.SaveFile = v1;
com.newgrounds.SaveFile extends com.newgrounds.APIEventDispatcher;
var v2 = v1.prototype;
v1.__get__currentFile = function () {
return com.newgrounds.SaveFile._currentFile;
};
v1.fromObject = function (group, fileData) {
var v4 = new com.newgrounds.SaveFile(group);
v4._name = fileData.filename;
v4._description = fileData.description;
v4._id = fileData.save_id;
v4._authorId = fileData.user_id;
v4._authorName = fileData.user_name;
v4._createdDate = fileData.created;
v4._modifiedDate = fileData.last_update;
v4._views = fileData.views;
if (fileData.thumb && fileData.thumb != '') {
v4._iconLoader.__set__url(com.newgrounds.SaveFile._imageFilePath + fileData.thumb);
}
v4._dataURL = com.newgrounds.SaveFile._saveFilePath + fileData.file;
v4._fileSize = fileData.file_size;
v4._approved = fileData.status != com.newgrounds.SaveFile.STATUS_UNAPPROVED;
v4._readOnly = false;
v4._public = fileData.status != com.newgrounds.SaveFile.STATUS_PRIVATE && fileData.status != com.newgrounds.SaveFile.STATUS_UNAPPROVED;
for (var v8 in fileData.keys) {
var v6 = fileData.keys[v8];
var v2 = group.getKeyById(v6.id);
if (v2) {
v4._keys[v2.__get__name()] = v2.validateValue(v6.value);
}
}
for (var v9 in fileData.ratings) {
var v5 = fileData.ratings[v9];
var v3 = group.getRatingById(v5.id);
if (v3) {
v4._ratings[v3.__get__name()] = v3.validateValue(v5.score);
}
}
return v4;
};
v2.__get__group = function () {
return this._group;
};
v2.__get__name = function () {
return this._name;
};
v2.__set__name = function (val) {
this._name = val;
return this.__get__name();
};
v2.__get__description = function () {
return this._description;
};
v2.__set__description = function (val) {
this._description = val;
return this.__get__description();
};
v2.__get__id = function () {
return this._id;
};
v2.__get__data = function () {
return this._data;
};
v2.__set__data = function (val) {
this._data = val;
return this.__get__data();
};
v2.__get__bytesLoaded = function () {
if (this._data) {
return this.__get__bytesTotal();
} else {
if (!this._dataLoader) {
return 0;
} else {
return this._dataLoader.getBytesLoaded();
}
}
};
v2.__get__bytesTotal = function () {
return this._fileSize;
};
v2.__get__readOnly = function () {
return this._readOnly;
};
v2.__get__draft = function () {
return this._draft;
};
v2.__set__draft = function (v) {
this._draft = v;
return this.__get__draft();
};
v2.__get__authorId = function () {
return this._authorId;
};
v2.__get__authorName = function () {
return this._authorName;
};
v2.__get__keys = function () {
return this._keys;
};
v2.__get__ratings = function () {
return this._ratings;
};
v2.__get__views = function () {
return this._views;
};
v2.__get__createdDate = function () {
return this._createdDate;
};
v2.__get__updatedDate = function () {
return this._modifiedDate;
};
v2.toString = function () {
return 'Save File: ' + this._name;
};
v2.__get__icon = function () {
return this._iconLoader.__get__bitmapData();
};
v2.__set__icon = function (v) {
this.createIcon(v);
return this.__get__icon();
};
v2.__get__iconLoaded = function () {
return this._iconLoader.__get__loaded();
};
v2.createIcon = function (source) {
var v9 = new flash.display.BitmapData(com.newgrounds.SaveFile.ICON_WIDTH, com.newgrounds.SaveFile.ICON_HEIGHT, false, 0);
var v6;
var v5;
var v10 = 0;
var v8 = 0;
if (source instanceof flash.display.BitmapData) {
v6 = source.width;
v5 = source.height;
} else {
if (source instanceof MovieClip) {
v6 = source._width;
v5 = source._height;
var v7 = (MovieClip(source)).getBounds(source);
v10 = v7.xMin;
v8 = v7.yMin;
}
}
var v3 = new flash.geom.Matrix();
var v4;
v4 = Math.min(com.newgrounds.SaveFile.ICON_WIDTH / v6, com.newgrounds.SaveFile.ICON_HEIGHT / v5);
v3.translate(-v10, -v8);
v3.scale(v4, v4);
v3.translate((com.newgrounds.SaveFile.ICON_WIDTH - v6 * v4) / 2, (com.newgrounds.SaveFile.ICON_HEIGHT - v5 * v4) / 2);
v9.draw(source, v3);
this._iconLoader.__set__bitmapData(v9);
};
v2.attachIcon = function (parent) {
if (this._iconLoader) {
return this._iconLoader.attachBitmap(parent);
}
com.newgrounds.Logger.logError('No icon available for this sumbission.');
return null;
};
v2.save = function () {
if (!(this._group.__get__connection()).__get__hasUserSession()) {
com.newgrounds.Logger.logError('The user must be logged-in to save a file.');
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_SAVED, null, com.newgrounds.APIEvent.ERROR_NOT_LOGGED_IN));
return undefined;
}
++com.newgrounds.BitmapLoader._cacheSeed;
com.newgrounds.SaveFile._currentFile = this;
if (this.__get__iconLoaded()) {
com.newgrounds.SaveFile.ICON_IMAGE_SCANNER.encode(this.__get__icon(), this.onIconEncoded, this);
} else {
this.encodeData(true);
}
};
v2.onIconEncoded = function (encodedIcon) {
this._encodedIcon = encodedIcon;
this.encodeData(true);
};
v2.doSave = function () {
var v4 = new com.newgrounds.APICommand('saveFile');
(v4.__get__secureParameters()).group = this._group.id;
(v4.__get__secureParameters()).user_name = (this._group.__get__connection()).username;
(v4.__get__secureParameters()).filename = this._name;
(v4.__get__secureParameters()).description = this._description;
if (this._draft) {
(v4.__get__secureParameters()).draft = true;
}
if (this._id && !this._readOnly) {
(v4.__get__secureParameters()).overwrite = 1;
(v4.__get__secureParameters()).save_id = this._id;
}
var v8 = [];
for (var v9 in this._keys) {
var v2 = this._group.getKey(v9);
if (v2) {
v8.push({'id': v2.__get__id(), 'value': v2.validateValue(this._keys[v9])});
} else {
com.newgrounds.Logger.logError('No key named "' + v9 + '" in save group "' + this._group.__get__name() + '".');
}
}
(v4.__get__secureParameters()).keys = v8;
var v7 = [];
for (var v10 in this._ratings) {
var v3 = this._group.getRating(v10);
if (v3) {
v7.push({'id': v3.__get__id(), 'value': v3.validateValue(this._ratings[v10])});
} else {
com.newgrounds.Logger.logError('No rating named "' + v10 + '" in save group "' + this._group.__get__name() + '".');
}
}
(v4.__get__secureParameters()).ratings = v7;
if (typeof this._encodedData == 'string') {
v4.addFile('file', this._encodedData, 'file');
} else {
v4.addFile('file', com.newgrounds.encoders.json.JSON.encode(this._encodedData), 'file');
}
if (this.__get__iconLoaded()) {
v4.addFile('thumbnail', this._encodedIcon, 'thumbnail');
}
v4.addEventListener(com.newgrounds.APIEvent.COMMAND_COMPLETE, {'target': this, 'func': this.onSaveComplete});
(this._group.__get__connection()).sendCommand(v4);
};
v2.encodeData = function (encode) {
this._encoderQueue = [];
this._encoding = encode;
if (encode) {
this._encodedData = this._data;
this.preEncodeObject(this, '_encodedData');
} else {
this.preEncodeObject(this, '_data');
}
this.encodeObject();
};
v2.preEncodeObject = function (parent, property) {
var v3 = parent[property];
var v5;
try {
if (this._encoding) {
v5 = v3 instanceof flash.display.BitmapData;
} else {
v5 = v3.type == '__bitmap';
}
}
var v2 = v3;
var v8;
if (v5) {
this._encoderQueue.push({'parent': parent, 'property': property});
} else {
if (typeof v3 == 'object' && !v8) {
if (this._encoding) {
if (v3 instanceof Array) {
v2 = [];
} else {
v2 = {};
}
for (var v4 in v3) {
v2[v4] = v3[v4];
}
parent[property] = v2;
}
for (v4 in v2) {
this.preEncodeObject(v2, v4);
}
}
}
};
v2.encodeObject = function () {
if (!this._encoderQueue.length) {
if (this._encoding) {
this.doSave();
} else {
this._dataLoaded = true;
this.checkLoadComplete();
}
return undefined;
}
var v6 = this._encoderQueue.pop();
var v4 = v6.parent;
var v3 = v6.property;
var v2 = v4[v3];
var v5;
if (this._encoding) {
v5 = {'type': '__bitmap', 'width': v2.width, 'height': v2.height, 'transparent': v2.transparent};
v4[v3] = v5;
this._encodingParent = v5;
this._encodingProperty = 'data';
com.newgrounds.SaveFile.DATA_IMAGE_SCANNER.__set__encodeAlpha(v2.transparent);
com.newgrounds.SaveFile.DATA_IMAGE_SCANNER.encode(flash.display.BitmapData(v2), this.encodeBitmapComplete, this);
} else {
this._encodingParent = v4;
this._encodingProperty = v3;
com.newgrounds.SaveFile.DATA_IMAGE_SCANNER.__set__encodeAlpha(v2.transparent);
com.newgrounds.SaveFile.DATA_IMAGE_SCANNER.decode(String(v2.data), this.encodeBitmapComplete, this);
}
};
v2.encodeBitmapComplete = function (data) {
this._encodingParent[this._encodingProperty] = data;
this.encodeObject();
};
v2.load = function () {
com.newgrounds.SaveFile._currentFile = this;
this._dataLoaded = false;
this._data = null;
if (!this.__get__iconLoaded()) {
this._iconLoader.addEventListener(com.newgrounds.APIEvent.ICON_LOADED, {'target': this, 'func': this.onIconLoaded});
this._iconLoader.load();
}
this._dataLoader = new LoadVars();
var file = this;
this._dataLoader.onData = function (data) {
file.onDataLoaded(data);
};
this._dataLoader.load(this._dataURL);
};
v2.onIconLoaded = function (event) {
if (!event.__get__success() && this._iconLoader.__get__url()) {
com.newgrounds.Logger.logWarning('Unable to load the icon for this save file.');
}
this._iconLoader.removeEventListener(com.newgrounds.APIEvent.ICON_LOADED, this.onIconLoaded);
this.checkLoadComplete();
};
v2.checkLoadComplete = function () {
if (this._dataLoaded && this.__get__iconLoaded()) {
com.newgrounds.Logger.logMessage('Data loaded.');
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_LOADED, this));
}
};
v2.onDataLoaded = function (data) {
try {
if (data) {
if (data.charAt(0) == '{') {
this._data = com.newgrounds.encoders.json.JSON.decode(String(data));
} else {
this._data = String(data);
}
this.encodeData(false);
}
}
catch (v0) {
if (Error(v0) != null) {
var error = Error(v0);
com.newgrounds.Logger.logError('Error while loading data:', error);
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_LOADED, this, com.newgrounds.APIEvent.ERROR_BAD_FILE));
} else {
throw v0;
}
}
};
v2.onDataError = function (error) {
com.newgrounds.Logger.logError('Unable to load data:', error);
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_LOADED, this, com.newgrounds.APIEvent.ERROR_BAD_FILE));
};
v2.onSaveComplete = function (event) {
if (event.__get__success()) {
com.newgrounds.Logger.logMessage('File "' + this._name + '" saved!');
if (event.__get__data()) {
this._id = (event.__get__data()).save_id;
this._dataURL = unescape((event.__get__data()).file_url);
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_SAVED, this));
} else {
com.newgrounds.Logger.logError('Error saving file "' + this._name + '":', event.__get__error());
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_SAVED, this, event.__get__error()));
}
};
v2.sendVote = function (ratingName, vote) {
var v2 = this._group.getRating(ratingName);
if (!v2) {
com.newgrounds.Logger.logError('No save rating named "' + ratingName + '" exists for this save group.');
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.VOTE_COMPLETE, {}, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT));
return undefined;
}
vote = v2.validateValue(vote);
if (isNaN(vote)) {
com.newgrounds.Logger.logError('Invalid vote (' + vote + '). ' + ratingName + ' allows a range of ' + v2.__get__minimum() + '-' + v2.__get__maximum() + '.');
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.VOTE_COMPLETE, {}, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT));
return undefined;
}
com.newgrounds.Logger.logMessage('Voting ' + vote + ' for ' + ratingName + ' on ' + this._name + '...');
(this._group.__get__connection()).sendSimpleCommand('rateSaveFile', {'target': this, 'func': this.onVoteComplete}, null, {'group': this._group.__get__id(), 'save_id': this._id, 'rating_id': v2.__get__id(), 'vote': vote});
};
v2.onVoteComplete = function (event) {
var v2 = event.__get__error();
if ((event.__get__data()).already_voted) {
com.newgrounds.Logger.logError('Vote failed. You\'ve already voted on this rating today.');
v2 = com.newgrounds.APIEvent.ERROR_ALREADY_VOTED;
}
if (v2 == com.newgrounds.APIEvent.ERROR_NONE) {
var v3 = this._group.getRatingById((event.__get__data()).rating_id);
if (v3) {
this._ratings[v3.__get__name()] = v3.validateValue((event.__get__data()).score);
}
com.newgrounds.Logger.logMessage('Vote complete!');
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.VOTE_COMPLETE, this, v2));
};
v2.clone = function () {
var v3 = new com.newgrounds.SaveFile(this._group);
v3._data = this._data;
v3._description = this._description;
v3._draft = this._draft;
v3._fileSize = this._fileSize;
v3._iconLoader.__set__bitmapData(this._iconLoader.bitmapData);
var v2;
for (v2 in this._keys) {
v3._keys[v2] = this._keys[v2];
}
for (v2 in this._ratings) {
v3._ratings[v2] = this._ratings[v2];
}
v3._name = this._name;
return v3;
};
v1.ICON_WIDTH = 90;
v1.ICON_HEIGHT = 90;
v1.DEFAULT_ICON = flash.display.BitmapData.loadBitmap('DefaultSaveIcon');
v1.STATUS_PRIVATE = 0;
v1.STATUS_SHARED = 1;
v1.STATUS_UNAPPROVED = 2;
v1.STATUS_APPROVED = 3;
v1._imageFilePath = '';
v1._saveFilePath = '';
v1.ICON_IMAGE_SCANNER = new com.newgrounds.encoders.ImageScanner();
v1.DATA_IMAGE_SCANNER = new com.newgrounds.encoders.ImageScanner(64, 6);
v2.addProperty('authorId', v2.__get__authorId, function () {});
v2.addProperty('authorName', v2.__get__authorName, function () {});
v2.addProperty('bytesLoaded', v2.__get__bytesLoaded, function () {});
v2.addProperty('bytesTotal', v2.__get__bytesTotal, function () {});
v2.addProperty('createdDate', v2.__get__createdDate, function () {});
v1.addProperty('currentFile', v1.__get__currentFile, function () {});
v2.addProperty('data', v2.__get__data, v2.__set__data);
v2.addProperty('description', v2.__get__description, v2.__set__description);
v2.addProperty('draft', v2.__get__draft, v2.__set__draft);
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('icon', v2.__get__icon, v2.__set__icon);
v2.addProperty('iconLoaded', v2.__get__iconLoaded, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('keys', v2.__get__keys, function () {});
v2.addProperty('name', v2.__get__name, v2.__set__name);
v2.addProperty('ratings', v2.__get__ratings, function () {});
v2.addProperty('readOnly', v2.__get__readOnly, function () {});
v2.addProperty('updatedDate', v2.__get__updatedDate, function () {});
v2.addProperty('views', v2.__get__views, function () {});
ASSetPropFlags(com.newgrounds.SaveFile.prototype, null, 1);
}
#endinitclip
}
movieClip 52 __Packages.com.newgrounds.SaveGroup {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveGroup) {
var v1 = function (connection, name, id, type, keys, ratings) {
this._connection = connection;
this._id = id;
this._name = name;
this._type = type;
this._keysArray = keys;
this._ratingsArray = ratings;
this._keys = new Object();
this._ratings = new Object();
var v11;
for (var v7 in keys) {
var v2 = keys[v7];
this._keys[v2.__get__name()] = v2;
}
for (var v6 in ratings) {
var v3 = ratings[v6];
this._ratings[v3.__get__name()] = v3;
}
};
com.newgrounds.SaveGroup = v1;
var v2 = v1.prototype;
v2.__get__connection = function () {
return this._connection;
};
v2.__get__name = function () {
return this._name;
};
v2.__get__type = function () {
return this._type;
};
v2.__get__id = function () {
return this._id;
};
v2.__get__keys = function () {
return this._keysArray;
};
v2.__get__ratings = function () {
return this._ratingsArray;
};
v2.getKey = function (name) {
return this._keys[name];
};
v2.getRating = function (name) {
return this._ratings[name];
};
v2.getKeyById = function (id) {
for (var v4 in this._keys) {
var v2 = this._keys[v4];
if (v2.__get__id() == id) {
return v2;
}
}
return null;
};
v2.getRatingById = function (id) {
for (var v4 in this._ratings) {
var v2 = this._ratings[v4];
if (v2.__get__id() == id) {
return v2;
}
}
return null;
};
v2.toString = function () {
return 'SaveGroup: ' + this.__get__name() + ' Keys: ' + this._keysArray + ' Ratings: ' + this._ratingsArray;
};
v1.TYPE_SYSTEM = 0;
v1.TYPE_PRIVATE = 1;
v1.TYPE_PUBLIC = 2;
v1.TYPE_MODERATED = 3;
v2.addProperty('connection', v2.__get__connection, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('keys', v2.__get__keys, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('ratings', v2.__get__ratings, function () {});
v2.addProperty('type', v2.__get__type, function () {});
ASSetPropFlags(com.newgrounds.SaveGroup.prototype, null, 1);
}
#endinitclip
}
movieClip 50 __Packages.com.newgrounds.SaveKey {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveKey) {
var v1 = function (name, id, type) {
this._name = name;
this._id = id;
this._type = type;
};
com.newgrounds.SaveKey = v1;
var v2 = v1.prototype;
v2.__get__name = function () {
return this._name;
};
v2.__get__id = function () {
return this._id;
};
v2.__get__type = function () {
return this._type;
};
v2.validateValue = function (value) {
switch (this._type) {
return null;
case com.newgrounds.SaveKey.TYPE_INTEGER:
value = Number(value);
if (!isNaN(value)) {
var v3 = int(value);
if (v3 != value) {
com.newgrounds.Logger.logWarning('Float value ' + value + ' given for integer key "' + this._name + '". Clamping to ' + v3 + '.');
}
return v3;
}
return null;
case com.newgrounds.SaveKey.TYPE_FLOAT:
value = Number(value);
if (!isNaN(value)) {
return isNaN(Number(value));
}
return null;
case com.newgrounds.SaveKey.TYPE_BOOLEAN:
return Boolean(value);
return null;
case com.newgrounds.SaveKey.TYPE_STRING:
return value ? value.toString() : '';
return null;
}
return null;
};
v2.toString = function () {
return this._name;
};
v1.TYPE_FLOAT = 1;
v1.TYPE_INTEGER = 2;
v1.TYPE_STRING = 3;
v1.TYPE_BOOLEAN = 4;
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('type', v2.__get__type, function () {});
ASSetPropFlags(com.newgrounds.SaveKey.prototype, null, 1);
}
#endinitclip
}
movieClip 51 __Packages.com.newgrounds.SaveRating {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveRating) {
var v1 = function (name, id, isFloat, minimum, maximum) {
this._name = name;
this._id = id;
this._isFloat = isFloat;
this._minimum = minimum;
this._maximum = maximum;
};
com.newgrounds.SaveRating = v1;
var v2 = v1.prototype;
v2.__get__name = function () {
return this._name;
};
v2.__get__id = function () {
return this._id;
};
v2.__get__isFloat = function () {
return this._isFloat;
};
v2.__get__minimum = function () {
return this._minimum;
};
v2.__get__maximum = function () {
return this._maximum;
};
v2.validateValue = function (value) {
var v2 = Number(value);
if (isNaN(v2)) {
com.newgrounds.Logger.logError('Invalid value for rating "' + this._name + '".');
return NaN;
}
if (v2 < this._minimum) {
com.newgrounds.Logger.logWarning(v2 + ' is out of acceptable range for rating "' + this._name + '". Clamping to ' + this._minimum + '.');
return this._minimum;
}
if (v2 > this._maximum) {
com.newgrounds.Logger.logWarning(v2 + ' is out of acceptable range for rating "' + this._name + '". Clamping to ' + this._maximum + '.');
return this._maximum;
}
if (!this.__get__isFloat()) {
var v3 = int(v2);
if (v3 != v2) {
com.newgrounds.Logger.logWarning('Float value ' + v2 + ' given for integer rating "' + this._name + '". Clamping to ' + v3 + '.');
}
return v3;
}
return v2;
};
v2.toString = function () {
return this._name;
};
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('isFloat', v2.__get__isFloat, function () {});
v2.addProperty('maximum', v2.__get__maximum, function () {});
v2.addProperty('minimum', v2.__get__minimum, function () {});
v2.addProperty('name', v2.__get__name, function () {});
ASSetPropFlags(com.newgrounds.SaveRating.prototype, null, 1);
}
#endinitclip
}
movieClip 46 __Packages.com.newgrounds.BitmapLoader {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.BitmapLoader) {
var v1 = function (defaultBitmap, url) {
super();
this._bitmapData = defaultBitmap;
this._url = url;
};
com.newgrounds.BitmapLoader = v1;
com.newgrounds.BitmapLoader extends com.newgrounds.APIEventDispatcher;
var v2 = v1.prototype;
v2.__get__url = function () {
return this._url;
};
v2.__set__url = function (v) {
this._loaded = false;
this._url = v;
return this.__get__url();
};
v2.__get__bitmapData = function () {
return this._bitmapData;
};
v2.__set__bitmapData = function (v) {
this._bitmapData = v;
this._loaded = true;
return this.__get__bitmapData();
};
v2.__get__loaded = function () {
return this._loaded;
};
v2.disposeLoader = function () {
if (this._loader) {
if (this._loaderClip._parent == _root) {
this._loader.unloadClip(this._loaderClip.bitmap);
this._loaderClip.removeMovieClip();
}
this._loader = null;
this._loaderClip = null;
}
};
v2.load = function () {
if (!this._url || this._url == '') {
this.onLoadComplete();
return undefined;
}
this._loaded = false;
if (this._bitmapData) {
this._bitmapData.dispose();
this._bitmapData = null;
}
this.disposeLoader();
this.attachBitmap(null);
};
v2.attachBitmap = function (parent) {
if (!parent) {
parent = _root;
}
var v5 = parent.getNextHighestDepth();
var v3 = parent.createEmptyMovieClip('__bitmap' + v5, v5);
if (!this._loaded && this._url && this._url != '') {
v3.createEmptyMovieClip('bitmap', 0);
this._loader = new MovieClipLoader();
this._loaderClip = v3;
if (parent == _root) {
this._loaderClip._visible = false;
}
var thisObj = this;
this._loaderClip.onEnterFrame = function () {
thisObj.pollLoad();
};
this._loader.addListener({'onLoadError': function () {
thisObj.onLoadComplete();
}});
this._loader.loadClip(this._url, v3.bitmap);
return v3;
}
v3.attachBitmap(this._bitmapData, 0);
return v3;
};
v2.pollLoad = function () {
if (this._loaderClip._width) {
this.onLoadComplete();
}
};
v2.onLoadComplete = function () {
var v2;
if (this._loader && this._loaderClip && this._loaderClip._width) {
try {
this._loaderClip.onEnterFrame = null;
v2 = new flash.display.BitmapData(this._loaderClip._width, this._loaderClip._height, true, 0);
v2.draw(this._loaderClip);
this._bitmapData = v2;
this._loaded = true;
}
catch (error) {
if (v2) {
v2.dispose();
}
}
}
this.disposeLoader();
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.ICON_LOADED, this, this._loaded ? null : com.newgrounds.APIEvent.ERROR_BAD_FILE));
};
v1._cacheSeed = 0;
v2._loaded = true;
v2.addProperty('bitmapData', v2.__get__bitmapData, v2.__set__bitmapData);
v2.addProperty('loaded', v2.__get__loaded, function () {});
v2.addProperty('url', v2.__get__url, v2.__set__url);
ASSetPropFlags(com.newgrounds.BitmapLoader.prototype, null, 1);
}
#endinitclip
}
movieClip 55 __Packages.com.newgrounds.SaveQuery {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveQuery) {
var v1 = function (group) {
super();
this._group = group;
this._connection = group.connection;
this.reset();
};
com.newgrounds.SaveQuery = v1;
com.newgrounds.SaveQuery extends com.newgrounds.APIEventDispatcher;
var v2 = v1.prototype;
v2.__get__group = function () {
return this._group;
};
v2.__get__resultsPerPage = function () {
return this._resultsPerPage;
};
v2.__set__resultsPerPage = function (val) {
this._resultsPerPage = Math.min(Math.max(val, 1), 100);
return this.__get__resultsPerPage();
};
v2.__get__page = function () {
return this._page;
};
v2.__set__page = function (val) {
this._page = Math.max(val, 1);
return this.__get__page();
};
v2.prevPage = function () {
this.__set__page(this.__get__page() - 1);
};
v2.nextPage = function () {
this.__set__page(this.__get__page() + 1);
};
v2.__get__isRandomized = function () {
return this._isRandomized;
};
v2.__set__isRandomized = function (val) {
this._isRandomized = val;
return this.__get__isRandomized();
};
v2.__get__files = function () {
return this._files;
};
v2.reset = function () {
this._page = 1;
this._resultsPerPage = 10;
this._isRandomized = false;
this._lookupKeys = [];
this._lookupRatings = [];
this._fileConditions = [];
this._keyConditions = [];
this._ratingConditions = [];
this._sortFields = [];
this._files = [];
this.includeAllFields();
};
v2.clone = function () {
var v2 = new com.newgrounds.SaveQuery(this._group);
v2._page = this._page;
v2._resultsPerPage = this._resultsPerPage;
v2._isRandomized = this._isRandomized;
v2._lookupKeys = this._lookupKeys.concat();
v2._lookupRatings = this._lookupRatings.concat();
v2._fileConditions = this._fileConditions.concat();
v2._keyConditions = this._keyConditions.concat();
v2._ratingConditions = this._ratingConditions.concat();
return v2;
};
v2.includeAllFields = function () {
for (var v5 in this._group.__get__keys()) {
var v2 = (this._group.__get__keys())[v5];
this._lookupKeys.push(v2.__get__id());
}
for (var v4 in this._group.__get__ratings()) {
var v3 = (this._group.__get__ratings())[v4];
this._lookupRatings.push(v3.__get__id());
}
};
v2.addCondition = function (field, operator, value) {
var v2;
v2 = 0;
while (v2 < com.newgrounds.SaveQuery.FILE_FIELDS.length) {
if (com.newgrounds.SaveQuery.FILE_FIELDS[v2] == field) {
break;
}
++v2;
}
if (v2 == com.newgrounds.SaveQuery.FILE_FIELDS.length) {
v2 = -1;
}
if (v2 >= 0) {
this._fileConditions.push({'field': v2, 'operator': operator, 'value': value});
} else {
var v3 = this._group.getKey(field);
if (v3) {
value = v3.validateValue(value);
this._keyConditions.push({'key_id': v3.__get__id(), 'operator': operator, 'value': value});
return undefined;
}
var v4 = field.split('.');
var v6 = this._group.getRating(v4[0]);
if (v6) {
value = v6.validateValue(value);
this._ratingConditions.push({'rating_id': v6.__get__id(), 'operator': operator, 'value': value, 'column': v4[1] ? v4[1] : 'score'});
return undefined;
}
com.newgrounds.Logger.logError('The save group "' + this._group.__get__name() + '" does not have a field named "' + field + '".');
}
};
v2.sortOn = function (field, sortDescending) {
if (sortDescending == undefined) {
sortDescending = false;
}
var v2;
v2 = 0;
while (v2 < com.newgrounds.SaveQuery.FILE_FIELDS.length) {
if (com.newgrounds.SaveQuery.FILE_FIELDS[v2] == field) {
break;
}
++v2;
}
if (v2 == com.newgrounds.SaveQuery.FILE_FIELDS.length) {
v2 = -1;
}
if (v2 >= 0) {
this._sortFields.push({'table': com.newgrounds.SaveQuery.TABLE_FILES, 'field': v2, 'desc': sortDescending});
} else {
var v5 = this._group.getKey(field);
if (v5) {
this._sortFields.push({'table': com.newgrounds.SaveQuery.TABLE_KEYS, 'field': v5.__get__id(), 'desc': sortDescending});
return undefined;
}
var v3 = field.split('.');
var v6 = this._group.getRating(v3[0]);
if (v6) {
this._sortFields.push({'table': com.newgrounds.SaveQuery.TABLE_RATINGS, 'field': v6.__get__id(), 'desc': sortDescending, 'extra': v3[1] ? v3[1] : 'score'});
return undefined;
}
com.newgrounds.Logger.logError('The save group "' + this._group.__get__name() + '" does not have a field named "' + field + '".');
}
};
v2.execute = function () {
var v5 = {};
v5.page = this._page;
v5.num_results = this._resultsPerPage;
if (this._isRandomized) {
v5.randomize = 1;
}
if (this._lookupKeys && this._lookupKeys.length) {
v5.lookup_keys = this._lookupKeys;
}
if (this._lookupRatings && this._lookupRatings.length) {
v5.lookup_ratings = this._lookupRatings;
}
if (this._fileConditions && this._fileConditions.length) {
v5.file_conditions = this._fileConditions;
}
if (this._keyConditions && this._keyConditions.length) {
v5.key_conditions = this._keyConditions;
}
if (this._ratingConditions && this._ratingConditions.length) {
v5.rating_conditions = this._ratingConditions;
}
if (this._sortFields && this._sortFields.length) {
v5.sort_conditions = this._sortFields;
}
this._connection.sendSimpleCommand('lookupSaveFiles', {'target': this, 'func': this.onQueryComplete}, {'publisher_id': this._connection.publisherId, 'group_id': this._group.__get__id(), 'query': v5});
};
v2.onQueryComplete = function (event) {
if (event.__get__success()) {
var v4 = event.__get__data();
this._files = [];
if (v4.files) {
var v2 = 0;
while (v2 < v4.files.length) {
var v3 = com.newgrounds.SaveFile.fromObject(this._group, v4.files[v2]);
if (v3) {
this._files.push(v3);
}
++v2;
}
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.QUERY_COMPLETE, this));
} else {
com.newgrounds.Logger.logError('Query failed: ' + event.__get__error());
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.QUERY_COMPLETE, this, event.__get__error()));
}
};
v1.FILE_ID = 'fileId';
v1.AUTHOR_ID = 'authorId';
v1.AUTHOR_NAME = 'authorName';
v1.FILE_NAME = 'fileName';
v1.CREATED_ON = 'createdOn';
v1.UPDATED_ON = 'updatedOn';
v1.FILE_VIEWS = 'fileViews';
v1.FILE_STATUS = 'fileStatus';
v1.FILE_FIELDS = [com.newgrounds.SaveQuery.FILE_ID, com.newgrounds.SaveQuery.AUTHOR_ID, com.newgrounds.SaveQuery.AUTHOR_NAME, com.newgrounds.SaveQuery.FILE_NAME, com.newgrounds.SaveQuery.CREATED_ON, com.newgrounds.SaveQuery.UPDATED_ON, com.newgrounds.SaveQuery.FILE_VIEWS, com.newgrounds.SaveQuery.FILE_STATUS];
v1.OPERATOR_EQUAL = '=';
v1.OPERATOR_LESS_THAN = '<';
v1.OPERATOR_GREATER_THAN = '>';
v1.OPERATOR_NOT_EQUAL = '!=';
v1.OPERATOR_LESS_OR_EQUAL = '<=';
v1.OPERATOR_GREATER_OR_EQUAL = '>=';
v1.OPERATOR_CONTAINS = '*';
v1.OPERATOR_NOT_CONTAINS = '!*';
v1.OPERATOR_NOT_BEGINS_WITH = '!*=';
v1.OPERATOR_NOT_ENDS_WITH = '!=*';
v1.OPERATOR_BEGINS_WITH = '*=';
v1.OPERATOR_ENDS_WITH = '=*';
v1.TABLE_FILES = 1;
v1.TABLE_KEYS = 2;
v1.TABLE_RATINGS = 3;
v2._page = 1;
v2._resultsPerPage = 10;
v2._isRandomized = false;
v2.addProperty('files', v2.__get__files, function () {});
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('isRandomized', v2.__get__isRandomized, v2.__set__isRandomized);
v2.addProperty('page', v2.__get__page, v2.__set__page);
v2.addProperty('resultsPerPage', v2.__get__resultsPerPage, v2.__set__resultsPerPage);
ASSetPropFlags(com.newgrounds.SaveQuery.prototype, null, 1);
}
#endinitclip
}
movieClip 47 __Packages.com.newgrounds.Medal {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Medal) {
var v1 = function (connection, id, name, description, secret, unlocked, value, difficultyId, iconURL) {
super();
this._connection = connection;
this._id = id;
this._name = name;
this._description = description;
this._secret = secret;
this._unlocked = unlocked;
this._value = value;
this._difficulty = com.newgrounds.Medal.DIFFICULTIES[difficultyId];
this._iconLoader = new com.newgrounds.BitmapLoader(com.newgrounds.Medal.DEFAULT_ICON, iconURL);
this._iconLoader.load();
};
com.newgrounds.Medal = v1;
com.newgrounds.Medal extends com.newgrounds.APIEventDispatcher;
var v2 = v1.prototype;
v2.__get__difficulty = function () {
return this._difficulty;
};
v2.__get__icon = function () {
return this._iconLoader.__get__bitmapData();
};
v2.__get__id = function () {
return this._id;
};
v2.__get__name = function () {
return this._name;
};
v2.__get__description = function () {
return this._description;
};
v2.__get__secret = function () {
return this._secret;
};
v2.__get__unlocked = function () {
return this._unlocked;
};
v2.__get__value = function () {
return this._value;
};
v2.toString = function () {
if (!this._unlocked) {
return 'Medal: ' + this._name + '\t\t(' + 'locked, ' + this._value + 'pts, ' + this._difficulty + ')';
}
return 'Medal: ' + this._name + '\t\t(' + 'unlocked, ' + this._value + 'pts, ' + this._difficulty + ')';
};
v2.attachIcon = function (parent) {
return this._iconLoader.attachBitmap(parent);
};
v2.unlock = function () {
if (this._unlocked) {
com.newgrounds.Logger.logWarning('Medal "' + this._name + '" is already unlocked.');
return undefined;
}
com.newgrounds.Logger.logMessage('Unlocking medal "' + this.__get__name() + '"...');
this._unlocked = true;
if (this._connection.__get__hasUserSession()) {
this._connection.sendSimpleCommand('unlockMedal', {'target': this, 'func': this.onUnlockConfirmed}, null, {'medal_id': this.__get__id()});
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.MEDAL_UNLOCKED, this));
};
v2.setUnlocked = function (unlocked) {
this._unlocked = unlocked;
};
v2.onUnlockConfirmed = function (event) {
if (event.__get__success()) {
com.newgrounds.Logger.logMessage('Medal "' + this.__get__name() + '" unlocked.');
} else {
com.newgrounds.Logger.logError('Failed to unlock "' + this.__get__name() + '"!');
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.MEDAL_UNLOCK_CONFIRMED, this, event.__get__error()));
};
v1.ICON_WIDTH = 50;
v1.ICON_HEIGHT = 50;
v1.DEFAULT_ICON = flash.display.BitmapData.loadBitmap('DefaultMedalIcon');
v1.DIFFICULTY_EASY = 'Easy';
v1.DIFFICULTY_MODERATE = 'Moderate';
v1.DIFFICULTY_CHALLENGING = 'Challenging';
v1.DIFFICULTY_DIFFICULT = 'Difficult';
v1.DIFFICULTY_BRUTAL = 'Brutal';
v1.DIFFICULTIES = ['Unknown', com.newgrounds.Medal.DIFFICULTY_EASY, com.newgrounds.Medal.DIFFICULTY_MODERATE, com.newgrounds.Medal.DIFFICULTY_CHALLENGING, com.newgrounds.Medal.DIFFICULTY_DIFFICULT, com.newgrounds.Medal.DIFFICULTY_BRUTAL];
v2.addProperty('description', v2.__get__description, function () {});
v2.addProperty('difficulty', v2.__get__difficulty, function () {});
v2.addProperty('icon', v2.__get__icon, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('secret', v2.__get__secret, function () {});
v2.addProperty('unlocked', v2.__get__unlocked, function () {});
v2.addProperty('value', v2.__get__value, function () {});
ASSetPropFlags(com.newgrounds.Medal.prototype, null, 1);
}
#endinitclip
}
movieClip 49 __Packages.com.newgrounds.ScoreBoard {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.ScoreBoard) {
var v1 = function (connection, name, id) {
super();
this._connection = connection;
this._name = name;
this._id = id;
};
com.newgrounds.ScoreBoard = v1;
com.newgrounds.ScoreBoard extends com.newgrounds.APIEventDispatcher;
var v2 = v1.prototype;
v2.__get__name = function () {
return this._name;
};
v2.__get__scores = function () {
return this._scores;
};
v2.__get__period = function () {
return this._period;
};
v2.__set__period = function (val) {
this._period = val;
return this.__get__period();
};
v2.__get__firstResult = function () {
return this._firstResult;
};
v2.__set__firstResult = function (val) {
this._firstResult = Math.max(1, val);
return this.__get__firstResult();
};
v2.__get__numResults = function () {
return this._numResults;
};
v2.__set__numResults = function (val) {
this._numResults = val;
return this.__get__numResults();
};
v2.__get__tag = function () {
return this._tag;
};
v2.__set__tag = function (val) {
this._tag = val;
return this.__get__tag();
};
v2.__get__page = function () {
return Math.ceil((this._firstResult - 1) / this._numResults) + 1;
};
v2.prevPage = function () {
if (this.__get__firstResult() > this._numResults) {
this.firstResult -= this._numResults;
}
};
v2.nextPage = function () {
this.firstResult += this._numResults;
};
v2.loadScores = function () {
this._connection.sendSimpleCommand('loadScores', {'target': this, 'func': this.onScoresLoaded}, {'publisher_id': this._connection.publisherId, 'board': this._id, 'page': (this._firstResult - 1) / this._numResults + 1, 'num_results': this._numResults, 'period': this._period, 'tag': this._tag});
};
v2.postScore = function (numericScore, tag) {
if (tag == undefined) {
tag = null;
}
if (isNaN(numericScore)) {
com.newgrounds.Logger.logError('Cannot post invalid score: ' + numericScore);
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.SCORE_POSTED, null, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT));
return undefined;
}
com.newgrounds.Logger.logMessage('Posting a score of ' + numericScore + ' by ' + this._connection.username + ' to scoreboard "' + this._name + '"...');
this._connection.sendSimpleCommand('postScore', {'target': this, 'func': this.onScorePosted}, null, {'user_name': this._connection.username, 'board': this._id, 'value': numericScore, 'tag': tag});
};
v2.onScoresLoaded = function (event) {
var v4 = event.__get__data();
this._scores = [];
var v5;
if (v4.first_result) {
v5 = v4.first_result;
} else {
v5 = this._firstResult;
}
if (v4.scores) {
var v3 = 0;
while (v3 < v4.scores.length) {
var v2 = v4.scores[v3];
if (v2) {
this._scores[v3] = new com.newgrounds.Score(v5, v2.username, v2.value, v2.numeric_value, v2.tag);
}
v3++;
v5++;
}
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.SCORES_LOADED, this));
};
v2.onScorePosted = function (event) {
if (event.__get__success()) {
com.newgrounds.Logger.logMessage('Score posted!');
var v4 = event.__get__data();
var v2 = {};
v2.score = v4.value;
v2.scoreBoard = this;
} else {
com.newgrounds.Logger.logError('Error posting score: ' + event.__get__error());
}
this.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.SCORE_POSTED, storedv2, event.__get__error()));
};
v2.toString = function () {
return 'Scoreboard: ' + this._name;
};
v1.TODAY = 'Today';
v1.THIS_WEEK = 'This Week';
v1.THIS_MONTH = 'This Month';
v1.THIS_YEAR = 'This Year';
v1.ALL_TIME = 'All-Time';
v2._period = com.newgrounds.ScoreBoard.ALL_TIME;
v2._firstResult = 1;
v2._numResults = 10;
v2.addProperty('firstResult', v2.__get__firstResult, v2.__set__firstResult);
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('numResults', v2.__get__numResults, v2.__set__numResults);
v2.addProperty('page', v2.__get__page, function () {});
v2.addProperty('period', v2.__get__period, v2.__set__period);
v2.addProperty('scores', v2.__get__scores, function () {});
v2.addProperty('tag', v2.__get__tag, v2.__set__tag);
ASSetPropFlags(com.newgrounds.ScoreBoard.prototype, null, 1);
}
#endinitclip
}
movieClip 38 __Packages.com.newgrounds.Logger {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Logger) {
var v1 = function () {};
com.newgrounds.Logger = v1;
var v2 = v1.prototype;
v1.logInternal = function () {
var v2 = arguments;
com.newgrounds.Logger.log(com.newgrounds.Logger.PRIORITY_INTERNAL, v2);
};
v1.logMessage = function () {
var v2 = arguments;
com.newgrounds.Logger.log(com.newgrounds.Logger.PRIORITY_MESSAGE, v2);
};
v1.logWarning = function () {
var v2 = arguments;
com.newgrounds.Logger.log(com.newgrounds.Logger.PRIORITY_WARNING, v2);
};
v1.logError = function () {
var v2 = arguments;
com.newgrounds.Logger.log(com.newgrounds.Logger.PRIORITY_ERROR, v2);
};
v1.log = function (priority, messages) {
if (priority == undefined) {
priority = com.newgrounds.Logger.PRIORITY_MESSAGE;
}
if (messages == undefined) {
messages = null;
}
if (priority >= com.newgrounds.Logger._messageLevel) {
var v1 = 0;
while (v1 < messages.length) {
trace(com.newgrounds.Logger.HEADER + messages[v1]);
com.newgrounds.Logger._eventDispatcher.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.LOG, messages[v1]));
++v1;
}
}
if (priority >= com.newgrounds.Logger._throwLevel) {
throw new Error(messages.join('\n'));
}
};
v1.addEventListener = function (event, listener) {
com.newgrounds.Logger._eventDispatcher.addEventListener(event, listener, false, 0, false);
};
v1.PRIORITY_INTERNAL = 0;
v1.PRIORITY_MESSAGE = 1;
v1.PRIORITY_WARNING = 2;
v1.PRIORITY_ERROR = 3;
v1.PRIORITY_MAX = 4;
v1.HEADER = '[Newgrounds API] :: ';
v1._eventDispatcher = new com.newgrounds.EventDispatcher();
v1._messageLevel = com.newgrounds.Logger.PRIORITY_MESSAGE;
v1._throwLevel = com.newgrounds.Logger.PRIORITY_MAX;
ASSetPropFlags(com.newgrounds.Logger.prototype, null, 1);
}
#endinitclip
}
movieClip 1054 __Packages.AS2TestGame {
#initclip
if (!_global.AS2TestGame) {
var v1 = function (rootClip) {
this.mRootClip = rootClip;
this.init();
};
_global.AS2TestGame = v1;
var v2 = v1.prototype;
v2.init = function () {
this.initAssets();
this.initStatusText();
mx.events.EventDispatcher.initialize(this);
this.loadAPI();
};
v2.initAssets = function () {
var scope = this;
this.mRootClip.assets.b1.onRelease = function () {
scope.doCommandClick(scope.GAME_START);
};
this.mRootClip.assets.b2.onRelease = function () {
scope.doCommandClick(scope.GAME_END);
};
this.mRootClip.assets.b3.onRelease = function () {
scope.doCommandClick(scope.LEVEL_START);
};
this.mRootClip.assets.b4.onRelease = function () {
scope.doCommandClick(scope.LEVEL_END);
};
this.mRootClip.assets.b5.onRelease = function () {
scope.doCommandClick(scope.SUBMIT_SCORE);
};
this.mRootClip.assets.b6.onRelease = function () {
scope.doCommandClick(scope.GAME_ACHIEVEMENT);
};
this.mRootClip.assets.b7.onRelease = function () {
scope.doCommandClick(scope.ZOMBIE_KILL);
};
};
v2.doCommandClick = function (commandName) {
var v2 = {'one': 1, 'two': 2, 'three': 3};
trace('click ' + commandName);
this.doAPICall(commandName, v2);
};
v2.doAPICall = function (commandName, params) {
var v2 = (new com.fpsnetworks.utils.Json()).stringify(params);
this.msg('GAME calling apiCall(" ' + commandName + ' ","' + v2 + '")');
this.mAPI.apiCall(commandName, params);
};
v2.initStatusText = function () {
this.mStatusText = this.mRootClip.assets.statusText;
this.msg('AS2 API TEST GAME...');
};
v2.msg = function (str) {
this.mStatusText.text += str + '\r';
};
v2.loadAPI = function () {
this.mAPILoader = new GameAPILoader(this.mRootClip);
this.mAPILoader.addEventListener(GameAPILoader.EVENT_API_LOAD_FAIL, mx.utils.Delegate.create(this, this.eventLoadAPIFail));
this.mAPILoader.addEventListener(GameAPILoader.EVENT_API_LOAD_OK, mx.utils.Delegate.create(this, this.eventLoadAPIOK));
this.mAPILoader.start();
this.msg('loading api with standard api loader for AS2 games: GameAPILoader.as');
};
v2.eventLoadAPIOK = function () {
this.msg('api loaded!');
this.mAPI = this.mAPILoader.getService();
this.mAPI.setResponseHandler(this, this.responseFromAPI);
};
v2.eventLoadAPIFail = function () {
trace('api loading failed!');
};
v2.responseFromAPI = function (commandName, data) {
var v2 = (new com.fpsnetworks.utils.Json()).stringify(data);
this.msg('got response for command ' + commandName + ' with data ' + v2);
};
v2.GAME_START = 'GAME_START';
v2.GAME_END = 'GAME_END';
v2.LEVEL_START = 'LEVEL_START';
v2.LEVEL_END = 'LEVEL_END';
v2.SUBMIT_SCORE = 'SUBMIT_SCORE';
v2.GAME_ACHIEVEMENT = 'GAME_ACHIEVEMENT';
v2.ZOMBIE_KILL = 'ZOMBIE_KILL';
ASSetPropFlags(_global.AS2TestGame.prototype, null, 1);
}
#endinitclip
}
movieClip 1055 __Packages.GameAPILoader {
#initclip
if (!_global.GameAPILoader) {
var v1 = function (stageRoot) {
this.mStageDisplayObject = stageRoot;
mx.events.EventDispatcher.initialize(this);
};
_global.GameAPILoader = v1;
var v2 = v1.prototype;
v2.start = function () {
if (!this.mStageDisplayObject.url_api) {
trace('Can\'t find flashvar \'url_api\'');
} else {
var v2 = this.mStageDisplayObject.url_api;
this.apiHolder = this.mStageDisplayObject.createEmptyMovieClip('apiMC', this.mStageDisplayObject.getNextHighestDepth());
trace('found flashvar \'url_api\' = ' + v2);
mx.events.EventDispatcher.initialize(this.mStageDisplayObject);
this.mStageDisplayObject.addEventListener('EVENT_API_READY', mx.utils.Delegate.create(this, this.eventAPIReady));
this.apiHolder.loadMovie(v2, 'apiMC');
}
};
v2.getService = function () {
return this.apiHolder.getAPI();
};
v2.eventAPILoadError = function () {
trace('load api error');
this.dispatchEvent({'type': GameAPILoader.EVENT_API_LOAD_FAIL});
};
v2.eventAPIReady = function () {
trace('load api complete');
this.dispatchEvent({'type': GameAPILoader.EVENT_API_LOAD_OK});
};
v1.EVENT_API_LOAD_OK = 'EVENT_API_LOAD_OK';
v1.EVENT_API_LOAD_FAIL = 'EVENT_API_LOAD_FAIL';
ASSetPropFlags(_global.GameAPILoader.prototype, null, 1);
}
#endinitclip
}
movieClip 1056 __Packages.mx.events.EventDispatcher {
#initclip
if (!_global.mx) {
_global.mx = new Object();
}
if (!_global.mx.events) {
_global.mx.events = new Object();
}
if (!_global.mx.events.EventDispatcher) {
var v1 = function () {};
mx.events.EventDispatcher = v1;
var v2 = v1.prototype;
v1._removeEventListener = function (queue, event, handler) {
if (queue != undefined) {
var v4 = queue.length;
var v1;
v1 = 0;
while (v1 < v4) {
var v2 = queue[v1];
if (v2 == handler) {
queue.splice(v1, 1);
return undefined;
}
++v1;
}
}
};
v1.initialize = function (object) {
if (mx.events.EventDispatcher._fEventDispatcher == undefined) {
mx.events.EventDispatcher._fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = mx.events.EventDispatcher._fEventDispatcher.addEventListener;
object.removeEventListener = mx.events.EventDispatcher._fEventDispatcher.removeEventListener;
object.dispatchEvent = mx.events.EventDispatcher._fEventDispatcher.dispatchEvent;
object.dispatchQueue = mx.events.EventDispatcher._fEventDispatcher.dispatchQueue;
};
v2.dispatchQueue = function (queueObj, eventObj) {
var v7 = '__q_' + eventObj.type;
var v4 = queueObj[v7];
if (v4 != undefined) {
var v5;
for (v5 in v4) {
var v1 = v4[v5];
var v3 = typeof v1;
if (v3 == 'object' || v3 == 'movieclip') {
if (v1.handleEvent != undefined) {
v1.handleEvent(eventObj);
}
if (v1[eventObj.type] != undefined) {
if (mx.events.EventDispatcher.exceptions[eventObj.type] == undefined) {
v1[eventObj.type](eventObj);
}
}
} else {
v1.apply(queueObj, [eventObj]);
}
}
}
};
v2.dispatchEvent = function (eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + 'Handler'](eventObj);
this.dispatchQueue(this, eventObj);
};
v2.addEventListener = function (event, handler) {
var v3 = '__q_' + event;
if (this[v3] == undefined) {
this[v3] = new Array();
}
_global.ASSetPropFlags(this, v3, 1);
mx.events.EventDispatcher._removeEventListener(this[v3], event, handler);
this[v3].push(handler);
};
v2.removeEventListener = function (event, handler) {
var v2 = '__q_' + event;
mx.events.EventDispatcher._removeEventListener(this[v2], event, handler);
};
v1._fEventDispatcher = undefined;
v1.exceptions = {'move': 1, 'draw': 1, 'load': 1};
ASSetPropFlags(mx.events.EventDispatcher.prototype, null, 1);
}
#endinitclip
}
movieClip 1057 __Packages.mx.utils.Delegate {
#initclip
if (!_global.mx) {
_global.mx = new Object();
}
if (!_global.mx.utils) {
_global.mx.utils = new Object();
}
if (!_global.mx.utils.Delegate) {
var v1 = function (f) {
super();
this.func = f;
};
mx.utils.Delegate = v1;
mx.utils.Delegate extends Object;
var v2 = v1.prototype;
v1.create = function (obj, func) {
var v2 = function () {
var v2 = arguments.callee.target;
var v3 = arguments.callee.func;
return v3.apply(v2, arguments);
};
v2.target = obj;
v2.func = func;
return v2;
};
v2.createDelegate = function (obj) {
return mx.utils.Delegate.create(obj, this.func);
};
ASSetPropFlags(mx.utils.Delegate.prototype, null, 1);
}
#endinitclip
}
movieClip 1058 __Packages.IGameAPI {
#initclip
if (!_global.IGameAPI) {
_global.IGameAPI = function () {};
}
#endinitclip
}
movieClip 1059 __Packages.com.fpsnetworks.utils.Json {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.fpsnetworks) {
_global.com.fpsnetworks = new Object();
}
if (!_global.com.fpsnetworks.utils) {
_global.com.fpsnetworks.utils = new Object();
}
if (!_global.com.fpsnetworks.utils.Json) {
var v1 = function () {};
com.fpsnetworks.utils.Json = v1;
var v2 = v1.prototype;
v2.stringify = function (arg) {
var v4;
var v3;
var v7;
var v2 = '';
var v5;
switch (typeof arg) {
return 'null';
case 'object':
if (arg) {
if (arg instanceof Array) {
v3 = 0;
while (v3 < arg.length) {
v5 = this.stringify(arg[v3]);
if (v2) {
v2 += ',';
}
v2 += v5;
++v3;
}
return '[' + v2 + ']';
} else {
if (typeof arg.toString != 'undefined') {
for (v3 in arg) {
v5 = arg[v3];
if (typeof v5 != 'undefined' && typeof v5 != 'function') {
v5 = this.stringify(v5);
if (v2) {
v2 += ',';
}
v2 += this.stringify(v3) + ':' + v5;
}
}
return '{' + v2 + '}';
}
}
}
return 'null';
case 'number':
return isFinite(arg) ? String(arg) : 'null';
case 'string':
v7 = arg.length;
v2 = '"';
v3 = 0;
while (v3 < v7) {
v4 = arg.charAt(v3);
if (v4 >= ' ') {
if (v4 == '\\' || v4 == '"') {
v2 += '\\';
}
v2 += v4;
} else {
switch (v4) {
case '\b':
v2 += '\\b';
break;
case '\f':
v2 += '\\f';
break;
case '\r':
v2 += '\\r';
break;
case '\t':
v2 += '\\t';
break;
default:
v4 = v4.charCodeAt();
v2 += '\\u00' + (Math.floor(v4 / 16)).toString(16) + (v4 % 16).toString(16);
}
}
v3 += 1;
}
return v2 + '"';
case 'boolean':
return String(arg);
}
return 'null';
};
v2.white = function () {
while (this.ch) {
if (this.ch <= ' ') {
this.next();
} else {
if (this.ch == '/') {
switch (this.next()) {
case '/':
for (;;) {
if (!(this.next() && this.ch != '\n' && this.ch != '\r')) break;
}
break;
case '*':
this.next();
for (;;) {
if (this.ch) {
if (this.ch == '*') {
if (this.next() == '/') {
this.next();
break;
}
} else {
this.next();
}
continue;
}
this.error('Unterminated comment');
}
break;
default:
this.error('Syntax error');
}
} else {
break;
}
}
}
};
v2.error = function (m) {
throw {'name': 'JSONError', 'message': m, 'at': this.at - 1, 'text': this.text};
};
v2.next = function () {
this.ch = this.text.charAt(this.at);
this.at += 1;
return this.ch;
};
v2.str = function () {
var v5;
var v2 = '';
var v4;
var v3;
var v6 = false;
if (this.ch == '"') {
while (this.next()) {
if (this.ch == '"') {
this.next();
return v2;
} else {
if (this.ch == '\\') {
switch (this.next()) {
case 'b':
v2 += '\b';
break;
case 'f':
v2 += '\f';
break;
case 'n':
v2 += '\n';
break;
case 'r':
v2 += '\r';
break;
case 't':
v2 += '\t';
break;
case 'u':
v3 = 0;
v5 = 0;
while (v5 < 4) {
v4 = parseInt(this.next(), 16);
if (!isFinite(v4)) {
v6 = true;
break;
}
v3 = v3 * 16 + v4;
v5 += 1;
}
if (v6) {
v6 = false;
} else {
v2 += String.fromCharCode(v3);
break;
default:
v2 += this.ch;
}
}
} else {
v2 += this.ch;
}
}
}
}
this.error('Bad string');
};
v2.arr = function () {
var v2 = [];
if (this.ch == '[') {
this.next();
this.white();
if (this.ch == ']') {
this.next();
return v2;
}
while (this.ch) {
v2.push(this.value());
this.white();
if (this.ch == ']') {
this.next();
return v2;
} else {
if (this.ch != ',') {
break;
}
}
this.next();
this.white();
}
}
this.error('Bad array');
};
v2.obj = function () {
var v3;
var v2 = {};
if (this.ch == '{') {
this.next();
this.white();
if (this.ch == '}') {
this.next();
return v2;
}
while (this.ch) {
v3 = this.str();
this.white();
if (this.ch != ':') {
break;
}
this.next();
v2[v3] = this.value();
this.white();
if (this.ch == '}') {
this.next();
return v2;
} else {
if (this.ch != ',') {
break;
}
}
this.next();
this.white();
}
}
this.error('Bad object');
};
v2.num = function () {
var v2 = '';
var v3;
if (this.ch == '-') {
v2 = '-';
this.next();
}
for (;;) {
if (!(this.ch >= '0' && this.ch <= '9')) break;
v2 += this.ch;
this.next();
}
if (this.ch == '.') {
v2 += '.';
this.next();
for (;;) {
if (!(this.ch >= '0' && this.ch <= '9')) break;
v2 += this.ch;
this.next();
}
}
if (this.ch == 'e' || this.ch == 'E') {
v2 += this.ch;
this.next();
if (this.ch == '-' || this.ch == '+') {
v2 += this.ch;
this.next();
}
for (;;) {
if (!(this.ch >= '0' && this.ch <= '9')) break;
v2 += this.ch;
this.next();
}
}
v3 = Number(v2);
if (!isFinite(v3)) {
this.error('Bad number');
}
return v3;
};
v2.word = function () {
switch (this.ch) {
case 't':
if (this.next() == 'r' && this.next() == 'u' && this.next() == 'e') {
this.next();
return true;
}
break;
case 'f':
if (this.next() == 'a' && this.next() == 'l' && this.next() == 's' && this.next() == 'e') {
this.next();
return false;
}
break;
case 'n':
if (this.next() == 'u' && this.next() == 'l' && this.next() == 'l') {
this.next();
return null;
}
}
this.error('Syntax error');
};
v2.value = function () {
this.white();
switch (this.ch) {
case '{':
return this.obj();
case '[':
return this.arr();
case '"':
return this.str();
case '-':
return this.num();
}
return (this.ch >= '0' && this.ch <= '9') ? this.num() : this.word();
};
v2.parse = function (_text) {
this.text = _text;
this.at = 0;
this.ch = ' ';
return this.value();
};
v2.ch = '';
v2.at = 0;
ASSetPropFlags(com.fpsnetworks.utils.Json.prototype, null, 1);
}
#endinitclip
}
movieClip 57 __Packages.com.newgrounds.components.FlashAdBase {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.components) {
_global.com.newgrounds.components = new Object();
}
if (!_global.com.newgrounds.components.FlashAdBase) {
var v1 = function () {
super();
try {
System.security.allowDomain('server.cpmstar.com');
System.security.allowInsecureDomain('server.cpmstar.com');
}
this.gotoAndStop('idle');
this._x = int(this._x);
this._y = int(this._y);
this.stop();
if (this.__get___newgroundsButton()) {
(this.__get___newgroundsButton()).onRelease = this.onNGClick;
}
this.onUnload = this.removeAd;
var v4 = this;
this._adListener = {'onLoadError': function (target, error, httpStatus) {
target._parent.onAdError(target, error, httpStatus);
}};
if (this.__get__fullScreen()) {
this.drawFullScreenRect();
}
if (com.newgrounds.API.__get__adFeedURL()) {
this.loadAdFeed();
} else {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.API_CONNECTED, {'target': this, 'func': this.loadAdFeed});
}
};
com.newgrounds.components.FlashAdBase = v1;
com.newgrounds.components.FlashAdBase extends MovieClip;
var v2 = v1.prototype;
v2.__get___adContainer = function () {
return this.adContainer;
};
v2.__get___newgroundsButton = function () {
return this.newgroundsButton;
};
v2.__get__fullScreen = function () {
return this._fullScreen;
};
v2.__set__fullScreen = function (v) {
this._fullScreen = v;
if (v) {
this.drawFullScreenRect();
} else {
this.clear();
}
return this.__get__fullScreen();
};
v2.__get__showBorder = function () {
return this._showBorder;
};
v2.__set__showBorder = function (value) {
this._showBorder = value;
if (this._showBorder) {
if (this._ad) {
var v2 = this._ad.getProgress(this.__get___adContainer());
if (v2.bytesLoaded >= v2.bytesTotal) {
this.gotoAndStop('loaded');
} else {
this.gotoAndStop('loading');
}
} else {
this.gotoAndStop('idle');
}
} else {
this.gotoAndStop('noBorder');
}
return this.__get__showBorder();
};
v2.loadAdFeed = function (event) {
if (event == undefined) {
event = null;
}
this._adFeedLoader = new LoadVars();
var target = this;
this._adFeedLoader.onData = function (data) {
target.onAdFeedLoaded(data);
};
this._adFeedLoader.load(com.newgrounds.API.__get__adFeedURL(), this._adFeedLoader);
};
v2.onAdFeedLoaded = function (data) {
if (data && data != '') {
this.loadAd(data);
} else {
this.onAdError();
}
};
v2.loadAd = function (adURL) {
if (this.adType != this.VIDEO_ADS) {
if (adURL.indexOf('?') >= 0) {
adURL += '&';
} else {
adURL += '?';
}
adURL += 'blockoverlays=1';
}
this._ad = new MovieClipLoader();
this._ad.addListener(this._adListener);
(this.__get___adContainer())._lockroot = true;
this._ad.loadClip(adURL, this.__get___adContainer());
};
v2.removeAd = function () {
this._adFeedLoader.onData = null;
this._adFeedLoader = null;
this._ad.removeListener(this._adListener);
if (this.__get___adContainer()) {
this._ad.unloadClip(this.__get___adContainer());
}
this._ad = null;
};
v2.onAdError = function (target, error, httpStatus) {
com.newgrounds.Logger.logError('Unable to load ad.');
this.removeAd();
};
v2.onNGClick = function () {
com.newgrounds.API.loadNewgrounds();
};
v2.drawFullScreenRect = function () {
this._x = (Stage.width - this._width) / 2;
this._y = (Stage.height - this._height) / 2;
this.beginFill(0);
this.moveTo(-Stage.width, -Stage.height);
this.lineTo(Stage.width, -Stage.height);
this.lineTo(Stage.width, Stage.height);
this.lineTo(-Stage.width, Stage.height);
this.lineTo(-Stage.width, -Stage.height);
this.endFill();
};
v2._showBorder = true;
v2.adType = com.newgrounds.components.FlashAdBase.prototype.VIDEO_ADS;
v2.VIDEO_ADS = 'Video';
v2.SIMPLE_ADS = 'Simple';
v2.addProperty('_adContainer', v2.__get___adContainer, function () {});
v2.addProperty('_newgroundsButton', v2.__get___newgroundsButton, function () {});
v2.addProperty('fullScreen', v2.__get__fullScreen, v2.__set__fullScreen);
v2.addProperty('showBorder', v2.__get__showBorder, v2.__set__showBorder);
ASSetPropFlags(com.newgrounds.components.FlashAdBase.prototype, null, 1);
}
#endinitclip
}
movieClip 32 __Packages.com.newgrounds.shims.APIShim {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.shims) {
_global.com.newgrounds.shims = new Object();
}
if (!_global.com.newgrounds.shims.APIShim) {
var v1 = function () {
super();
};
com.newgrounds.shims.APIShim = v1;
com.newgrounds.shims.APIShim extends MovieClip;
var v2 = v1.prototype;
ASSetPropFlags(com.newgrounds.shims.APIShim.prototype, null, 1);
}
#endinitclip
}
movieClip 42 __Packages.com.newgrounds.crypto.MD5 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.crypto) {
_global.com.newgrounds.crypto = new Object();
}
if (!_global.com.newgrounds.crypto.MD5) {
var v1 = function () {};
com.newgrounds.crypto.MD5 = v1;
var v2 = v1.prototype;
v1.hash = function (src) {
return com.newgrounds.crypto.MD5.hex_md5(src);
};
v1.hex_md5 = function (src) {
return com.newgrounds.crypto.MD5.binl2hex(com.newgrounds.crypto.MD5.core_md5(com.newgrounds.crypto.MD5.str2binl(src), src.length * 8));
};
v1.core_md5 = function (x, len) {
x[len >> 5] |= 128 << len % 32;
x[(len + 64 >>> 9 << 4) + 14] = len;
var v4 = 1732584193;
var v3 = -271733879;
var v2 = -1732584194;
var v1 = 271733878;
var v5 = 0;
while (v5 < x.length) {
var v10 = v4;
var v9 = v3;
var v8 = v2;
var v7 = v1;
v4 = com.newgrounds.crypto.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 0], 7, -680876936);
v1 = com.newgrounds.crypto.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 1], 12, -389564586);
v2 = com.newgrounds.crypto.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 2], 17, 606105819);
v3 = com.newgrounds.crypto.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 3], 22, -1044525330);
v4 = com.newgrounds.crypto.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 4], 7, -176418897);
v1 = com.newgrounds.crypto.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 5], 12, 1200080426);
v2 = com.newgrounds.crypto.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 6], 17, -1473231341);
v3 = com.newgrounds.crypto.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 7], 22, -45705983);
v4 = com.newgrounds.crypto.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 8], 7, 1770035416);
v1 = com.newgrounds.crypto.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 9], 12, -1958414417);
v2 = com.newgrounds.crypto.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 10], 17, -42063);
v3 = com.newgrounds.crypto.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 11], 22, -1990404162);
v4 = com.newgrounds.crypto.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 12], 7, 1804603682);
v1 = com.newgrounds.crypto.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 13], 12, -40341101);
v2 = com.newgrounds.crypto.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 14], 17, -1502002290);
v3 = com.newgrounds.crypto.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 15], 22, 1236535329);
v4 = com.newgrounds.crypto.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 1], 5, -165796510);
v1 = com.newgrounds.crypto.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 6], 9, -1069501632);
v2 = com.newgrounds.crypto.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 11], 14, 643717713);
v3 = com.newgrounds.crypto.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 0], 20, -373897302);
v4 = com.newgrounds.crypto.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 5], 5, -701558691);
v1 = com.newgrounds.crypto.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 10], 9, 38016083);
v2 = com.newgrounds.crypto.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 15], 14, -660478335);
v3 = com.newgrounds.crypto.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 4], 20, -405537848);
v4 = com.newgrounds.crypto.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 9], 5, 568446438);
v1 = com.newgrounds.crypto.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 14], 9, -1019803690);
v2 = com.newgrounds.crypto.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 3], 14, -187363961);
v3 = com.newgrounds.crypto.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 8], 20, 1163531501);
v4 = com.newgrounds.crypto.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 13], 5, -1444681467);
v1 = com.newgrounds.crypto.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 2], 9, -51403784);
v2 = com.newgrounds.crypto.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 7], 14, 1735328473);
v3 = com.newgrounds.crypto.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 12], 20, -1926607734);
v4 = com.newgrounds.crypto.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 5], 4, -378558);
v1 = com.newgrounds.crypto.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 8], 11, -2022574463);
v2 = com.newgrounds.crypto.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 11], 16, 1839030562);
v3 = com.newgrounds.crypto.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 14], 23, -35309556);
v4 = com.newgrounds.crypto.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 1], 4, -1530992060);
v1 = com.newgrounds.crypto.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 4], 11, 1272893353);
v2 = com.newgrounds.crypto.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 7], 16, -155497632);
v3 = com.newgrounds.crypto.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 10], 23, -1094730640);
v4 = com.newgrounds.crypto.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 13], 4, 681279174);
v1 = com.newgrounds.crypto.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 0], 11, -358537222);
v2 = com.newgrounds.crypto.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 3], 16, -722521979);
v3 = com.newgrounds.crypto.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 6], 23, 76029189);
v4 = com.newgrounds.crypto.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 9], 4, -640364487);
v1 = com.newgrounds.crypto.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 12], 11, -421815835);
v2 = com.newgrounds.crypto.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 15], 16, 530742520);
v3 = com.newgrounds.crypto.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 2], 23, -995338651);
v4 = com.newgrounds.crypto.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 0], 6, -198630844);
v1 = com.newgrounds.crypto.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 7], 10, 1126891415);
v2 = com.newgrounds.crypto.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 14], 15, -1416354905);
v3 = com.newgrounds.crypto.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 5], 21, -57434055);
v4 = com.newgrounds.crypto.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 12], 6, 1700485571);
v1 = com.newgrounds.crypto.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 3], 10, -1894986606);
v2 = com.newgrounds.crypto.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 10], 15, -1051523);
v3 = com.newgrounds.crypto.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 1], 21, -2054922799);
v4 = com.newgrounds.crypto.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 8], 6, 1873313359);
v1 = com.newgrounds.crypto.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 15], 10, -30611744);
v2 = com.newgrounds.crypto.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 6], 15, -1560198380);
v3 = com.newgrounds.crypto.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 13], 21, 1309151649);
v4 = com.newgrounds.crypto.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 4], 6, -145523070);
v1 = com.newgrounds.crypto.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 11], 10, -1120210379);
v2 = com.newgrounds.crypto.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 2], 15, 718787259);
v3 = com.newgrounds.crypto.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 9], 21, -343485551);
v4 = com.newgrounds.crypto.MD5.safe_add(v4, v10);
v3 = com.newgrounds.crypto.MD5.safe_add(v3, v9);
v2 = com.newgrounds.crypto.MD5.safe_add(v2, v8);
v1 = com.newgrounds.crypto.MD5.safe_add(v1, v7);
v5 += 16;
}
return new Array(v4, v3, v2, v1);
};
v1.md5_cmn = function (q, a, b, x, s, t) {
return com.newgrounds.crypto.MD5.safe_add(com.newgrounds.crypto.MD5.bit_rol(com.newgrounds.crypto.MD5.safe_add(com.newgrounds.crypto.MD5.safe_add(a, q), com.newgrounds.crypto.MD5.safe_add(x, t)), s), b);
};
v1.md5_ff = function (a, b, c, d, x, s, t) {
return com.newgrounds.crypto.MD5.md5_cmn(b & c | ~b & d, a, b, x, s, t);
};
v1.md5_gg = function (a, b, c, d, x, s, t) {
return com.newgrounds.crypto.MD5.md5_cmn(b & d | c & ~d, a, b, x, s, t);
};
v1.md5_hh = function (a, b, c, d, x, s, t) {
return com.newgrounds.crypto.MD5.md5_cmn(b ^ c ^ d, a, b, x, s, t);
};
v1.md5_ii = function (a, b, c, d, x, s, t) {
return com.newgrounds.crypto.MD5.md5_cmn(c ^ (b | ~d), a, b, x, s, t);
};
v1.bit_rol = function (num, cnt) {
return num << cnt | num >>> 32 - cnt;
};
v1.safe_add = function (x, y) {
var v1 = (x & 65535) + (y & 65535);
var v2 = (x >> 16) + (y >> 16) + (v1 >> 16);
return v2 << 16 | v1 & 65535;
};
v1.str2binl = function (str) {
var v3 = new Array();
var v4 = 255;
var v1 = 0;
while (v1 < str.length * 8) {
v3[v1 >> 5] |= (str.charCodeAt(v1 / 8) & v4) << v1 % 32;
v1 += 8;
}
return v3;
};
v1.binl2hex = function (binarray) {
var v4 = new String('');
var v3 = new String('0123456789abcdef');
var v1 = 0;
while (v1 < binarray.length * 4) {
v4 += v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 + 4 & 15) + v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 & 15);
++v1;
}
return v4;
};
ASSetPropFlags(com.newgrounds.crypto.MD5.prototype, null, 1);
}
#endinitclip
}
movieClip 43 __Packages.com.newgrounds.crypto.RC4 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.crypto) {
_global.com.newgrounds.crypto = new Object();
}
if (!_global.com.newgrounds.crypto.RC4) {
var v1 = function () {};
com.newgrounds.crypto.RC4 = v1;
var v2 = v1.prototype;
v1.encrypt = function (src, key) {
var v3 = com.newgrounds.crypto.RC4.strToChars(src);
var v1 = com.newgrounds.crypto.RC4.strToChars(key);
var v2 = com.newgrounds.crypto.RC4.calculate(v3, v1);
return com.newgrounds.crypto.RC4.charsToHex(v2);
};
v1.encryptbin = function (src, key) {
var v3 = com.newgrounds.crypto.RC4.strToChars(src);
var v1 = com.newgrounds.crypto.RC4.strToChars(key);
var v2 = com.newgrounds.crypto.RC4.calculate(v3, v1);
return v2;
};
v1.decrypt = function (src, key) {
var v3 = com.newgrounds.crypto.RC4.hexToChars(src);
var v1 = com.newgrounds.crypto.RC4.strToChars(key);
var v2 = com.newgrounds.crypto.RC4.calculate(v3, v1);
return com.newgrounds.crypto.RC4.charsToStr(v2);
};
v1.initialize = function (pwd) {
var v2 = 0;
var v3;
var v4 = pwd.length;
var v1 = 0;
while (v1 <= 255) {
com.newgrounds.crypto.RC4.mykey[v1] = pwd[v1 % v4];
com.newgrounds.crypto.RC4.sbox[v1] = v1;
++v1;
}
v1 = 0;
while (v1 <= 255) {
v2 = (v2 + com.newgrounds.crypto.RC4.sbox[v1] + com.newgrounds.crypto.RC4.mykey[v1]) % 256;
v3 = com.newgrounds.crypto.RC4.sbox[v1];
com.newgrounds.crypto.RC4.sbox[v1] = com.newgrounds.crypto.RC4.sbox[v2];
com.newgrounds.crypto.RC4.sbox[v2] = v3;
++v1;
}
};
v1.calculate = function (plaintxt, psw) {
com.newgrounds.crypto.RC4.initialize(psw);
var v1 = 0;
var v2 = 0;
var v9 = new Array();
var v7;
var v5;
var v6;
var v3 = 0;
while (v3 < plaintxt.length) {
v1 = (v1 + 1) % 256;
v2 = (v2 + com.newgrounds.crypto.RC4.sbox[v1]) % 256;
v5 = com.newgrounds.crypto.RC4.sbox[v1];
com.newgrounds.crypto.RC4.sbox[v1] = com.newgrounds.crypto.RC4.sbox[v2];
com.newgrounds.crypto.RC4.sbox[v2] = v5;
var v4 = (com.newgrounds.crypto.RC4.sbox[v1] + com.newgrounds.crypto.RC4.sbox[v2]) % 256;
v7 = com.newgrounds.crypto.RC4.sbox[v4];
v6 = plaintxt[v3] ^ v7;
v9.push(v6);
++v3;
}
return v9;
};
v1.charsToHex = function (chars) {
var v4 = new String('');
var v3 = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
var v1 = 0;
while (v1 < chars.length) {
v4 += v3[chars[v1] >> 4] + v3[chars[v1] & 15];
++v1;
}
return v4;
};
v1.hexToChars = function (hex) {
var v3 = new Array();
var v1 = (hex.substr(0, 2) == '0x') ? 2 : 0;
while (v1 < hex.length) {
v3.push(parseInt(hex.substr(v1, 2), 16));
v1 += 2;
}
return v3;
};
v1.charsToStr = function (chars) {
var v3 = new String('');
var v1 = 0;
while (v1 < chars.length) {
v3 += String.fromCharCode(chars[v1]);
++v1;
}
return v3;
};
v1.strToChars = function (str) {
var v3 = new Array();
var v1 = 0;
while (v1 < str.length) {
v3.push(str.charCodeAt(v1));
++v1;
}
return v3;
};
v1.sbox = new Array(255);
v1.mykey = new Array(255);
ASSetPropFlags(com.newgrounds.crypto.RC4.prototype, null, 1);
}
#endinitclip
}
movieClip 44 __Packages.com.newgrounds.encoders.json.JSON {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.json) {
_global.com.newgrounds.encoders.json = new Object();
}
if (!_global.com.newgrounds.encoders.json.JSON) {
var v1 = function () {};
com.newgrounds.encoders.json.JSON = v1;
var v2 = v1.prototype;
v1.encode = function (arg, noquotes) {
var v3;
var v2;
var v6;
var v1 = '';
var v4;
if (arg.isSServerVar()) {
var v8 = 'sservervariable';
} else {
var v8 = typeof arg;
}
switch (v8) {
return 'null';
case 'sservervariable':
return '?' + arg.getEncodedValue();
break;
case 'object':
if (arg) {
if (arg instanceof Array) {
v2 = 0;
while (v2 < arg.length) {
v4 = com.newgrounds.encoders.json.JSON.encode(arg[v2]);
if (v1) {
v1 += ',';
}
v1 += v4;
++v2;
}
return '[' + v1 + ']';
} else {
if (typeof arg.toString != 'undefined') {
for (v2 in arg) {
v4 = arg[v2];
if (typeof v4 != 'undefined' && typeof v4 != 'function') {
v4 = com.newgrounds.encoders.json.JSON.encode(v4);
if (v1) {
v1 += ',';
}
v1 += com.newgrounds.encoders.json.JSON.encode(v2) + ':' + v4;
}
}
return '{' + v1 + '}';
}
}
}
return 'null';
case 'number':
return isFinite(arg) ? String(arg) : 'null';
case 'string':
v6 = arg.length;
if (noquotes) {
var v7 = '';
} else {
var v7 = '"';
}
v1 = v7;
v2 = 0;
while (v2 < v6) {
v3 = arg.charAt(v2);
if (v3 >= ' ') {
if (v3 == '\\' || v3 == '"') {
v1 += '\\';
}
v1 += v3;
} else {
switch (v3) {
case '\b':
v1 += '\\b';
break;
case '\f':
v1 += '\\f';
break;
case '\n':
v1 += '\\n';
break;
case '\r':
v1 += '\\r';
break;
case '\t':
v1 += '\\t';
break;
default:
v3 = v3.charCodeAt();
v1 += '\\u00' + (Math.floor(v3 / 16)).toString(16) + (v3 % 16).toString(16);
}
}
v2 += 1;
}
return v1 + v7;
case 'boolean':
return String(arg);
default:
return 'null';
}
};
v1.background_encode = function (arg, callback) {
if (com.newgrounds.encoders.json.JSON.busy) {
trace('[Newgrounds Encoder] :: Cannot encode a new file until the previous file is completed');
return false;
} else {
if (!callback) {
trace('[Newgrounds Encoder] :: Missing a callback function, skipping encode');
return false;
}
}
com.newgrounds.encoders.json.JSON.busy = true;
var v2 = new Date();
com.newgrounds.encoders.json.JSON.start = v2.getTime();
com.newgrounds.encoders.json.JSON.cache = {'busy': false, 'complete': false, 'arg': arg, 'target': arg, 'parents': [], 'encoded': '', 'callback': callback, 'encode_chunk': function () {
com.newgrounds.encoders.json.JSON.encode_chunk();
}};
if (com.newgrounds.encoders.json.JSON.getType(arg) == 'object') {
com.newgrounds.encoders.json.JSON.cache.encoded = '{';
com.newgrounds.encoders.json.JSON.interval = setInterval(com.newgrounds.encoders.json.JSON.cache, 'encode_chunk', 25);
return true;
}
if (com.newgrounds.encoders.json.JSON.getType(arg) == 'array') {
com.newgrounds.encoders.json.JSON.cache.encoded = '[';
}
com.newgrounds.encoders.json.JSON.interval = setInterval(com.newgrounds.encoders.json.JSON.cache, 'encode_chunk', 25);
return true;
};
v1.background_decode = function (arg, callback) {
if (com.newgrounds.encoders.json.JSON.busy) {
trace('[Newgrounds Encoder] :: Cannot decode a new file until the previous file is completed');
return false;
} else {
if (!callback) {
trace('[Newgrounds Encoder] :: Missing a callback function, skipping decode');
return false;
}
}
com.newgrounds.encoders.json.JSON.busy = true;
var v1 = new Date();
com.newgrounds.encoders.json.JSON.start = v1.getTime();
com.newgrounds.encoders.json.JSON.cache = {'busy': false, 'callback': callback, 'complete': false, 'arg': arg, 'pos': 0, 'parents': ['root'], 'target': null, 'scratch': '', 'decode_chunk': function () {
com.newgrounds.encoders.json.JSON.decode_chunk();
}};
com.newgrounds.encoders.json.JSON.interval = setInterval(com.newgrounds.encoders.json.JSON.cache, 'decode_chunk', 25);
return true;
};
v1.decode = function (text) {
var at = 0;
var ch = ' ';
var _value;
var _error = function (m) {
throw {'name': 'JSONError', 'message': m, 'at': at - 1, 'text': text};
};
var _next = function () {
ch = text.charAt(at);
at += 1;
return ch;
};
var _white = function () {
while (ch) {
if (ch <= ' ') {
_next();
} else {
if (ch == '/') {
switch (_next()) {
case '/':
for (;;) {
if (!(_next() && ch != '\n' && ch != '\r')) break;
}
break;
case '*':
_next();
for (;;) {
if (ch) {
if (ch == '*') {
if (_next() == '/') {
_next();
break;
}
} else {
_next();
}
continue;
}
_error('Unterminated comment');
}
break;
default:
_error('Syntax error');
}
} else {
break;
}
}
}
};
var _string = function () {
var v4;
var v1 = '';
var v3;
var v2;
var v5 = false;
if (ch == '"') {
while (_next()) {
if (ch == '"') {
_next();
return v1;
} else {
if (ch == '\\') {
switch (_next()) {
case 'b':
v1 += '\b';
break;
case 'f':
v1 += '\f';
break;
case 'n':
v1 += '\n';
break;
case 'r':
v1 += '\r';
break;
case 't':
v1 += '\t';
break;
case 'u':
v2 = 0;
v4 = 0;
while (v4 < 4) {
v3 = parseInt(_next(), 16);
if (!isFinite(v3)) {
v5 = true;
break;
}
v2 = v2 * 16 + v3;
v4 += 1;
}
if (v5) {
v5 = false;
} else {
v1 += String.fromCharCode(v2);
break;
default:
v1 += ch;
}
}
} else {
v1 += ch;
}
}
}
}
_error('Bad string');
};
var _array = function () {
var v1 = [];
if (ch == '[') {
_next();
_white();
if (ch == ']') {
_next();
return v1;
}
while (ch) {
v1.push(_value());
_white();
if (ch == ']') {
_next();
return v1;
} else {
if (ch != ',') {
break;
}
}
_next();
_white();
}
}
_error('Bad array');
};
var _object = function () {
var v2;
var v1 = {};
if (ch == '{') {
_next();
_white();
if (ch == '}') {
_next();
return v1;
}
while (ch) {
v2 = _string();
_white();
if (ch != ':') {
break;
}
_next();
v1[v2] = _value();
_white();
if (ch == '}') {
_next();
return v1;
} else {
if (ch != ',') {
break;
}
}
_next();
_white();
}
}
_error('Bad object');
};
var _number = function () {
var v1 = '';
var v2;
if (ch == '-') {
v1 = '-';
_next();
}
for (;;) {
if (!(ch >= '0' && ch <= '9')) break;
v1 += ch;
_next();
}
if (ch == '.') {
v1 += '.';
for (;;) {
if (!(_next() && ch >= '0' && ch <= '9')) break;
v1 += ch;
}
}
v2 = 1 * v1;
if (!isFinite(v2)) {
_error('Bad number');
} else {
return v2;
}
};
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') {
_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();
};
v1.getType = function (v) {
if (v instanceof Array) {
return 'array';
} else {
return typeof v;
}
};
v1.decode_chunk = function () {
if (!com.newgrounds.encoders.json.JSON.cache.busy && !com.newgrounds.encoders.json.JSON.cache.complete) {
com.newgrounds.encoders.json.JSON.cache.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.json.JSON.decode_chunks) {
com.newgrounds.encoders.json.JSON.chunk_decoder();
if (com.newgrounds.encoders.json.JSON.cache.complete) {
break;
}
++v1;
}
trace(Math.round((com.newgrounds.encoders.json.JSON.cache.pos / com.newgrounds.encoders.json.JSON.cache.arg.length) * 100) + '% decoded');
com.newgrounds.encoders.json.JSON.cache.busy = false;
}
if (com.newgrounds.encoders.json.JSON.cache.complete) {
var v2 = new Date();
com.newgrounds.encoders.json.JSON.busy = false;
clearInterval(com.newgrounds.encoders.json.JSON.interval);
com.newgrounds.encoders.json.JSON.cache.callback(com.newgrounds.encoders.json.JSON.cache.root, v2.getTime() - com.newgrounds.encoders.json.JSON.start);
com.newgrounds.encoders.json.JSON.cache.arg = '';
}
};
v1.encode_chunk = function () {
if (!com.newgrounds.encoders.json.JSON.cache.busy && !com.newgrounds.encoders.json.JSON.cache.complete) {
com.newgrounds.encoders.json.JSON.cache.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.json.JSON.encode_chunks) {
com.newgrounds.encoders.json.JSON.chunk_encoder();
if (com.newgrounds.encoders.json.JSON.cache.complete) {
break;
}
++v1;
}
com.newgrounds.encoders.json.JSON.cache.busy = false;
}
if (com.newgrounds.encoders.json.JSON.cache.complete) {
var v3 = new Date();
var v2 = v3.getTime();
com.newgrounds.encoders.json.JSON.busy = false;
clearInterval(com.newgrounds.encoders.json.JSON.interval);
com.newgrounds.encoders.json.JSON.cache.callback(com.newgrounds.encoders.json.JSON.cache.encoded, v2 - com.newgrounds.encoders.json.JSON.start);
com.newgrounds.encoders.json.JSON.cache.encoded = '';
}
};
v1.chunk_decoder = function () {
function _object() {
var v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (!com.newgrounds.encoders.json.JSON.cache.mode) {
com.newgrounds.encoders.json.JSON.cache.mode = 'object';
++com.newgrounds.encoders.json.JSON.cache.pos;
v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (v1 != '"') {
throw 'Malformed object key in encoded string. Keys must be wrapped in quotes ("")';
}
com.newgrounds.encoders.json.JSON.cache.scratch = '';
_setTargetValue({});
} else {
if (v1 == ',') {
++com.newgrounds.encoders.json.JSON.cache.pos;
v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (v1 != '"') {
throw 'Malformed object key in encoded string. Keys must be wrapped in quotes ("")';
}
com.newgrounds.encoders.json.JSON.cache.scratch = '';
} else {
if (v1 == '}') {
_useParent();
} else {
if (v1 == '"') {
++com.newgrounds.encoders.json.JSON.cache.pos;
v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (v1 != ':') {
throw 'Malformed object notation. Object keys and values must be separated by colons(:)';
}
_addParent(com.newgrounds.encoders.json.JSON.cache.scratch);
com.newgrounds.encoders.json.JSON.cache.mode = null;
} else {
if (v1 == '\\') {
++com.newgrounds.encoders.json.JSON.cache.pos;
v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
}
com.newgrounds.encoders.json.JSON.cache.scratch += v1;
}
}
}
}
++com.newgrounds.encoders.json.JSON.cache.pos;
}
function _array() {
var v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (!com.newgrounds.encoders.json.JSON.cache.mode) {
com.newgrounds.encoders.json.JSON.cache.mode = 'array';
++com.newgrounds.encoders.json.JSON.cache.pos;
v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
_setTargetValue([]);
if (v1 != ']') {
_addArrayKey();
} else {
_useParent();
}
return undefined;
} else {
if (v1 == ',') {
_addArrayKey();
} else {
if (v1 == ']') {
_useParent();
}
}
}
++com.newgrounds.encoders.json.JSON.cache.pos;
}
function _boolean() {
var v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (v1 == 't') {
_setTargetValue(true);
com.newgrounds.encoders.json.JSON.cache.pos += 3;
} else {
if (v1 == 'f') {
_setTargetValue(false);
com.newgrounds.encoders.json.JSON.cache.pos += 4;
} else {
throw 'Bool values must be true or false';
}
}
_useParent();
}
function _null() {
var v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (v1 == 'n') {
_setTargetValue(null);
com.newgrounds.encoders.json.JSON.cache.pos += 2;
} else {
throw 'Null values must be null';
}
_useParent();
}
function _string() {
var v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (!com.newgrounds.encoders.json.JSON.cache.mode) {
if (v1 != '"') {
throw 'Strings must be wrapped in quotes ("")';
}
com.newgrounds.encoders.json.JSON.cache.scratch = '';
com.newgrounds.encoders.json.JSON.cache.mode = 'string';
} else {
if (v1 == '"') {
_setTargetValue(com.newgrounds.encoders.json.JSON.cache.scratch);
_useParent();
} else {
if (v1 == '\\') {
++com.newgrounds.encoders.json.JSON.cache.pos;
v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
switch (v1) {
case 'n':
v1 = '\n';
break;
case 'r':
v1 = '\n';
break;
case 't':
v1 = '\t';
break;
case 'u':
v1 = '\\' + v1;
}
}
com.newgrounds.encoders.json.JSON.cache.scratch += v1;
}
}
++com.newgrounds.encoders.json.JSON.cache.pos;
}
function _number() {
var v1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
var v2 = '01234567890.-';
if (!com.newgrounds.encoders.json.JSON.cache.mode) {
com.newgrounds.encoders.json.JSON.cache.mode = 'number';
com.newgrounds.encoders.json.JSON.cache.scratch = '';
}
if (v2.indexOf(v1) < 0) {
_setTargetValue(Number(com.newgrounds.encoders.json.JSON.cache.scratch));
_useParent();
} else {
com.newgrounds.encoders.json.JSON.cache.scratch += v1;
++com.newgrounds.encoders.json.JSON.cache.pos;
}
}
function _setTargetValue(newval) {
var v2 = (_getParent()).obj;
var v1 = com.newgrounds.encoders.json.JSON.cache.parents[com.newgrounds.encoders.json.JSON.cache.parents.length - 1];
v2[v1] = newval;
}
function _useParent() {
com.newgrounds.encoders.json.JSON.cache.mode = com.newgrounds.encoders.json.JSON.getType((_getParent()).obj);
com.newgrounds.encoders.json.JSON.cache.parents.pop();
}
function _getParent() {
var v2 = com.newgrounds.encoders.json.JSON.cache;
var v1 = 0;
while (v1 < com.newgrounds.encoders.json.JSON.cache.parents.length - 1) {
v2 = v2[com.newgrounds.encoders.json.JSON.cache.parents[v1]];
++v1;
}
return {'obj': v2, 'name': com.newgrounds.encoders.json.JSON.cache.parents[v1]};
}
function _getCurrent() {
var v2 = com.newgrounds.encoders.json.JSON.cache;
var v1 = 0;
while (v1 < com.newgrounds.encoders.json.JSON.cache.parents.length) {
v2 = v2[com.newgrounds.encoders.json.JSON.cache.parents[v1]];
++v1;
}
return {'obj': v2, 'name': com.newgrounds.encoders.json.JSON.cache.parents[v1]};
}
function _addParent(child) {
com.newgrounds.encoders.json.JSON.cache.parents.push(child);
}
function _addArrayKey() {
var v1 = (_getCurrent()).obj.length;
com.newgrounds.encoders.json.JSON.cache.parents.push(v1);
com.newgrounds.encoders.json.JSON.cache.mode = null;
}
if (com.newgrounds.encoders.json.JSON.cache.pos >= com.newgrounds.encoders.json.JSON.cache.arg.length) {
com.newgrounds.encoders.json.JSON.cache.complete = true;
return undefined;
} else {
if (com.newgrounds.encoders.json.JSON.cache.mode) {
('_' + com.newgrounds.encoders.json.JSON.cache.mode)();
} else {
var char = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
switch (char) {
case '{':
_object();
break;
case '[':
_array();
break;
case '"':
_string();
break;
case 'n':
_null();
break;
case 't':
_boolean();
break;
case 'f':
_boolean();
break;
default:
_number();
}
}
}
};
v1.chunk_encoder = function () {
if (com.newgrounds.encoders.json.JSON.cache.complete) {
return undefined;
}
var v2 = com.newgrounds.encoders.json.JSON.getType(com.newgrounds.encoders.json.JSON.cache.target);
switch (v2) {
case 'number':
com.newgrounds.encoders.json.JSON.cache.encoded += com.newgrounds.encoders.json.JSON.cache.target;
com.newgrounds.encoders.json.JSON.getParent();
break;
case 'string':
com.newgrounds.encoders.json.JSON.cache.encoded += '"' + (com.newgrounds.encoders.json.JSON.cache.target.split('"')).join('\\"') + '"';
com.newgrounds.encoders.json.JSON.getParent();
break;
case 'boolean':
com.newgrounds.encoders.json.JSON.cache.encoded += (com.newgrounds.encoders.json.JSON.cache.target == true) ? 'true' : 'false';
com.newgrounds.encoders.json.JSON.getParent();
break;
case 'null':
com.newgrounds.encoders.json.JSON.cache.encoded += 'null';
com.newgrounds.encoders.json.JSON.getParent();
break;
case 'array':
if (com.newgrounds.encoders.json.JSON.cache.target.length < 1) {
com.newgrounds.encoders.json.JSON.cache.encoded += ']';
com.newgrounds.encoders.json.JSON.getParent();
} else {
com.newgrounds.encoders.json.JSON.cache.parents.push(com.newgrounds.encoders.json.JSON.cache.target);
com.newgrounds.encoders.json.JSON.cache.target = com.newgrounds.encoders.json.JSON.cache.target[0];
if (com.newgrounds.encoders.json.JSON.getType(com.newgrounds.encoders.json.JSON.cache.target) == 'array') {
com.newgrounds.encoders.json.JSON.cache.encoded += '[';
} else {
if (com.newgrounds.encoders.json.JSON.getType(com.newgrounds.encoders.json.JSON.cache.target) == 'object') {
com.newgrounds.encoders.json.JSON.cache.encoded += '{';
}
}
}
break;
case 'object':
for (var v1 in com.newgrounds.encoders.json.JSON.cache.target) {
break;
}
if (v1 === undefined) {
com.newgrounds.encoders.json.JSON.cache.encoded += '}';
com.newgrounds.encoders.json.JSON.getParent();
} else {
com.newgrounds.encoders.json.JSON.cache.parents.push(com.newgrounds.encoders.json.JSON.cache.target);
com.newgrounds.encoders.json.JSON.cache.target = com.newgrounds.encoders.json.JSON.cache.target[v1];
com.newgrounds.encoders.json.JSON.cache.encoded += '"' + (v1.split('"')).join('\\"') + '":';
if (com.newgrounds.encoders.json.JSON.getType(com.newgrounds.encoders.json.JSON.cache.target) == 'array') {
com.newgrounds.encoders.json.JSON.cache.encoded += '[';
} else {
if (com.newgrounds.encoders.json.JSON.getType(com.newgrounds.encoders.json.JSON.cache.target) == 'object') {
com.newgrounds.encoders.json.JSON.cache.encoded += '{';
}
}
}
break;
default:
com.newgrounds.encoders.json.JSON.cache.encoded += 'null';
com.newgrounds.encoders.json.JSON.getParent();
}
};
v1.getParent = function () {
if (com.newgrounds.encoders.json.JSON.cache.parents.length > 0) {
var v1 = com.newgrounds.encoders.json.JSON.cache.parents.pop();
if (com.newgrounds.encoders.json.JSON.getType(v1) == 'array') {
v1.shift();
} else {
for (var v3 in v1) {
delete v1[v3];
break;
}
}
if (com.newgrounds.encoders.json.JSON.getType(v1) == 'object' or com.newgrounds.encoders.json.JSON.getType(v1) == 'array') {
for (var v2 in v1) {
break;
}
if (v2 !== undefined) {
com.newgrounds.encoders.json.JSON.cache.encoded += ',';
}
}
com.newgrounds.encoders.json.JSON.cache.target = v1;
} else {
com.newgrounds.encoders.json.JSON.cache.complete = true;
}
};
v1.encode_chunks = 20000;
v1.decode_chunks = 20000;
v1.busy = false;
ASSetPropFlags(com.newgrounds.encoders.json.JSON.prototype, null, 1);
}
#endinitclip
}
movieClip 48 __Packages.com.newgrounds.Score {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Score) {
var v1 = function (rank, username, score, numericValue, tag) {
this._rank = rank;
this._username = username;
this._score = score;
this._numericValue = numericValue;
this._tag = tag;
};
com.newgrounds.Score = v1;
var v2 = v1.prototype;
v2.__get__numericValue = function () {
return this._numericValue;
};
v2.__get__rank = function () {
return this._rank;
};
v2.__get__score = function () {
return this._score;
};
v2.__get__tag = function () {
return this._tag;
};
v2.__get__username = function () {
return this._username;
};
v2.toString = function () {
return this._rank + '.\t' + this._username + '\t' + this._score;
};
v2.addProperty('numericValue', v2.__get__numericValue, function () {});
v2.addProperty('rank', v2.__get__rank, function () {});
v2.addProperty('score', v2.__get__score, function () {});
v2.addProperty('tag', v2.__get__tag, function () {});
v2.addProperty('username', v2.__get__username, function () {});
ASSetPropFlags(com.newgrounds.Score.prototype, null, 1);
}
#endinitclip
}
movieClip 328 {
}
movieClip 334 {
}
movieClip 337 {
frame 1 {
_root.stop();
gotoAndPlay(2);
}
frame 225 {
_root.nextFrame();
}
}
button 338 {
on (release) {
getURL('http://armor.ag/MoreGames', '_blank');
}
}
frame 3 {
stop();
aSound5 = new Sound(soundClip5);
aSound5.attachSound('sound5');
aSound5.start(0, 99);
user_so = SharedObject.getLocal('user');
aSound.stop();
aSound2.stop();
aSound3.stop();
Mouse.show();
removeMovieClip(player);
removeMovieClip(arena);
removeMovieClip(aim);
removeMovieClip(bar);
removeMovieClip(radar);
removeMovieClip(wc);
removeMovieClip(store);
removeMovieClip(medalArea);
removeMovieClip(textBar);
removeMovieClip(pauseFrame);
removeMovieClip(rageBg);
removeMovieClip(healthBar);
removeMovieClip(miniA);
removeMovieClip(bda);
removeMovieClip(sp);
removeMovieClip(newZombieBox);
removeMovieClip(bossHealth);
removeMovieClip(textClip);
removeMovieClip(textClip2);
removeMovieClip(textClip3);
removeMovieClip(textClip4);
onEnterFrame = function () {
if (wasPlayed == true) {
i = zombies.length - 1;
while (i >= 0) {
zombies[i].removeMovieClip();
zombieDots[i].removeMovieClip();
--i;
}
}
if (instructions._currentframe == 2) {
playGame.enabled = false;
instructionsGame.enabled = false;
moreGame.enabled = false;
} else {
playGame.enabled = true;
instructionsGame.enabled = true;
moreGame.enabled = true;
}
};
}
movieClip 339 {
frame 1 {
stop();
}
}
movieClip 342 {
frame 1 {
stop();
}
}
movieClip 345 {
frame 1 {
stop();
}
}
movieClip 347 {
frame 1 {
stop();
}
}
movieClip 349 {
}
movieClip 351 blast {
}
movieClip 353 blood {
frame 1 {
stop();
}
}
movieClip 355 {
}
movieClip 356 explosion {
}
movieClip 357 boss2 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 364 {
}
movieClip 377 {
}
movieClip 378 zombie3 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 385 {
}
movieClip 398 {
}
movieClip 399 zombie4 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 406 {
}
movieClip 419 {
}
movieClip 420 zombie5 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 427 {
}
movieClip 438 {
}
movieClip 439 zombie6 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 446 {
}
movieClip 459 {
}
movieClip 460 zombie7 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 467 {
}
movieClip 480 {
}
movieClip 481 zombie8 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 488 {
}
movieClip 501 {
}
movieClip 502 zombie9 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 509 {
}
movieClip 522 {
}
movieClip 523 zombie1 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 530 {
}
movieClip 541 {
}
movieClip 542 zombie2 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
button 547 {
on (release) {
if (_root.user_so.data.gameLoaded == true) {
_root.levelSelect = 6;
_root.instructions.gotoAndStop(3);
} else {
_root.aSound5.stop();
_root.levelSelect = 6;
_root.gotoAndStop('play');
}
}
}
button 552 {
on (release) {
_root.instructions.gotoAndStop(2);
}
}
movieClip 553 boss1 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 555 {
}
// unknown tag 88 length 217
button 561 {
on (keyPress 'm') {
if (_root.mute != true) {
_root.mute = true;
_root.pauseFrame.audioOn.gotoAndStop(1);
_root.pauseFrame.audioOff.gotoAndStop(2);
} else {
_root.mute = false;
_root.pauseFrame.audioOff.gotoAndStop(1);
_root.pauseFrame.audioOn.gotoAndStop(2);
}
}
}
button 562 {
on (release) {
getURL('http://armor.ag/MoreGames', '_blank');
}
}
// unknown tag 88 length 73
button 568 {
on (release) {
getURL('http://armor.ag/MoreGames', '_blank');
}
}
button 570 {
on (release) {
getURL('http://www.facebook.com/ArmorGames', '_blank');
}
}
button 577 {
on (release) {
_root.instructions.gotoAndStop(1);
}
}
button 591 {
on (release) {
_root.instructions.gotoAndStop(1);
}
}
button 595 {
on (release) {
_root.aSound5.stop();
_root.gotoAndStop('play');
}
}
button 598 {
on (release) {
_root.aSound5.stop();
_root.user_so.clear();
_root.gotoAndStop('play');
}
}
movieClip 599 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
close.onRollOver = function () {
this._alpha = 70;
};
levelSelect1.onRollOver = function () {
this._alpha = 70;
};
levelSelect2.onRollOver = function () {
this._alpha = 70;
};
levelSelect3.onRollOver = function () {
this._alpha = 70;
};
levelSelect4.onRollOver = function () {
this._alpha = 70;
};
levelSelect5.onRollOver = function () {
this._alpha = 70;
};
levelSelect6.onRollOver = function () {
this._alpha = 70;
};
close.onRollOut = function () {
this._alpha = 100;
};
levelSelect1.onRollOut = function () {
this._alpha = 100;
};
levelSelect2.onRollOut = function () {
this._alpha = 100;
};
levelSelect3.onRollOut = function () {
this._alpha = 100;
};
levelSelect4.onRollOut = function () {
this._alpha = 100;
};
levelSelect5.onRollOut = function () {
this._alpha = 100;
};
levelSelect6.onRollOut = function () {
this._alpha = 100;
};
levelSelect1.onRelease = function () {
_root.levelSelect = 1;
_root.gotoAndStop(4);
};
levelSelect2.onRelease = function () {
_root.levelSelect = 2;
_root.gotoAndStop(4);
};
levelSelect3.onRelease = function () {
_root.levelSelect = 3;
_root.gotoAndStop(4);
};
levelSelect4.onRelease = function () {
_root.levelSelect = 4;
_root.gotoAndStop(4);
};
levelSelect5.onRelease = function () {
_root.levelSelect = 5;
_root.gotoAndStop(4);
};
levelSelect6.onRelease = function () {
_root.levelSelect = 6;
_root.gotoAndStop(4);
};
}
frame 3 {
stop();
}
}
frame 4 {
function onKeyDown() {
if (String.fromCharCode(Key.getAscii()) == 'p') {
if (pause != true) {
pause = true;
pauseFrame.gotoAndStop(2);
} else {
pause = false;
pauseFrame.gotoAndStop(1);
}
}
}
function shoot() {
shotDelay -= 1;
if (gun == 1 || gunAmmo[gun] > 0) {
shootable = true;
said = false;
} else {
shootable = false;
information('Out of Ammo!');
}
if (mouseIsDown == 1 && shotDelay <= 0 && shootable == true) {
shotDelay = gunSpeed[gun];
if (gun != 1 && gunAmmoLevel[gun] != 5 && rageMode != true) {
bar.ammoText = gunAmmo[gun];
gunAmmo[gun] -= 1;
} else {
bar.ammoText = '∞';
}
if (rageMode == true || bonus[6] == 1 || bonus[9] == 1) {
shotDelay = gunSpeed[gun] / 2;
}
if (gun != 6 && gun != 8) {
b1 = attachMovie('blast', 'blast' + depth, depth);
++depth;
b1._x = player._x;
b1._y = player._y;
if (gun != 4 && gun != 7) {
b1._rotation = player._rotation;
} else {
b1._rotation = player._rotation + 8;
b2 = attachMovie('blast', 'blast' + depth, depth);
++depth;
b2._x = player._x;
b2._y = player._y;
b2._rotation = player._rotation - 10;
var counter = 10;
b2.onEnterFrame = function () {
counter -= 1;
if (counter <= 0) {
this.removeMovieClip();
}
this._x = player._x;
this._y = player._y;
this._rotation = player._rotation - 10;
};
}
var counter = 10;
b1.onEnterFrame = function () {
counter -= 1;
if (counter <= 0) {
this.removeMovieClip();
}
this._x = player._x;
this._y = player._y;
if (gun != 4 && gun != 7 && gun != 8) {
this._rotation = player._rotation;
} else {
this._rotation = player._rotation + 8;
}
};
}
if (gun != 4 && gun != 7 && gun != 8) {
bu = attachMovie('bullet', 'bullet' + depth, depth);
++depth;
bu._x = player._x;
bu._y = player._y;
if (gun != 3) {
bu._rotation = player._rotation + random(7) - 3;
} else {
bu._rotation = player._rotation;
}
bullets.push(bu);
bulletTerminate.push(0);
var v3 = Math.cos(bu._rotation * Math.PI / 180) * 25;
var v2 = Math.sin(bu._rotation * Math.PI / 180) * 25;
bu._x += v3 * 2;
bu._y += v2 * 2;
bulletsX.push(v3);
bulletsY.push(v2);
}
if (mute == true) {
} else {
aSound.start(0, 1);
aSound.start(0, 1);
aSound.start(0, 1);
aSound.start(0, 1);
}
if (gun == 3 || gun == 4 || gun == 7 || gun == 8) {
bb = attachMovie('bullet', 'bullet' + depth, depth);
++depth;
bb._x = player._x;
bb._y = player._y;
bc = attachMovie('bullet', 'bullet' + depth, depth);
++depth;
bc._x = player._x;
bc._y = player._y;
if (gun == 3) {
bb._rotation = player._rotation + 7;
bc._rotation = player._rotation - 7;
} else {
bb._rotation = player._rotation + 6;
if (gun == 8) {
bc._rotation = player._rotation - 12;
} else {
bc._rotation = player._rotation - 6;
}
}
bullets.push(bb);
bulletTerminate.push(0);
v3 = Math.cos(bb._rotation * Math.PI / 180) * 25;
v2 = Math.sin(bb._rotation * Math.PI / 180) * 25;
bb._x += v3 * 2;
bb._y += v2 * 2;
bulletsX.push(v3);
bulletsY.push(v2);
bullets.push(bc);
bulletTerminate.push(0);
v3 = Math.cos(bc._rotation * Math.PI / 180) * 25;
v2 = Math.sin(bc._rotation * Math.PI / 180) * 25;
bc._x += v3 * 2;
bc._y += v2 * 2;
bulletsX.push(v3);
bulletsY.push(v2);
}
}
}
function bulletMovement() {
i = bullets.length - 1;
while (i >= 0) {
bullets[i]._x += bulletsX[i];
bullets[i]._y += bulletsY[i];
bullets[i]._x -= newX;
bullets[i]._y -= newY;
if (bullets[i]._x > 710) {
removeBullet(i);
}
if (bullets[i]._x < -10) {
removeBullet(i);
}
if (bullets[i]._y > 490) {
removeBullet(i);
}
if (bullets[i]._y < -10) {
removeBullet(i);
}
--i;
}
}
function removeBullet(i) {
bullets[i].removeMovieClip();
bullets.splice(i, 1);
bulletsX.splice(i, 1);
bulletsY.splice(i, 1);
bulletTerminate.splice(i, 1);
}
function information(insert) {
textBar.gotoAndStop(2);
textBar._alpha = 100;
textBar.inform.text = insert;
textBar.counter = 0;
}
function removeZombie(i) {
zombiesAlive -= 1;
zombiesDead += 1;
zombieGenerator = 20 + Math.round(zombiesDead / 10);
if (zombiesDead < 500) {
zombieCounter = 25 - Math.round(zombiesDead / 20);
} else {
zombieCounter = 5;
}
zombiesKilled += 1;
mAPI.apiCall(ZOMBIE_KILL, {'zombie_name': 'zombie10'});
var v3 = random(2) + 1;
if (bonus[3] != 1 && bonus[7] != 1) {
money += zombieMoney[zombieType[i]];
moneyEarned += zombieMoney[zombieType[i]];
} else {
money += zombieMoney[zombieType[i]] * 2;
moneyEarned += zombieMoney[zombieType[i]] * 2;
}
if (comboChain <= 0) {
bar.destruction._width += amount / destructionNeeded;
comboChain = 40;
combo = 1;
} else {
comboChain = 40;
combo += 1;
if (combo > highCombo) {
highCombo = combo;
}
patBack(10, 'Bonus Gold: ' + 50 * level, 1);
patBack(20, 'Invulnerable: 5', 2);
patBack(30, '2x Gold: 10', 3);
patBack(40, '2x Power: 10', 5);
patBack(50, '2x Speed: 10', 6);
textClip.gotoAndPlay(2);
textClip.combo.text = combo + 'X Combo!';
bar.destruction._width += (amount + combo / 5) / destructionNeeded;
}
bdead = bg.attachMovie(zombieDead[zombieType[i]], 'dead' + depth + 1, depth + 1);
if (zombieType[i] == 10 || zombieType[i] == 11 || zombieType[i] == 12 || zombieType[i] == 13 || zombieType[i] == 14 || zombieType[i] == 15) {
bossHealth.gotoAndStop(1);
deadBoss[zombieType[i] - 9] = 1;
if (bossesKilled < zombieType[i] - 9) {
bossesKilled = zombieType[i] - 9;
}
}
score += 1;
bdead._x = zombies[i]._x - bg._x;
bdead._y = zombies[i]._y - bg._y;
bdead._rotation = zombies[i]._rotation + 180;
if (bloodOn == true) {
bd = bg.attachMovie('droplet', 'droplet' + depth, depth);
bd.gotoAndStop(random(12) + 1);
}
bar.moneyText = money;
bar.scoreText = score;
if (rage < 100) {
rage += 1;
bar.rageMeter._width += 1;
thisSaid = false;
} else {
if (thisSaid != true) {
if (rageMode != true) {
information('Rage Mode Ready! Press Space to Activate!');
}
thisSaid = true;
rage = 100;
bar.rageMeter._width = 100;
}
}
++depth;
bd._x = zombies[i]._x - bg._x;
bd._y = zombies[i]._y - bg._y;
bd._rotation = zombies[i]._rotation + 90;
if (v3 == 1) {
bd._rotation += 180;
bd._xscale *= -1;
}
var counter = 100;
bd.onEnterFrame = function () {
counter -= 1;
if (counter <= 0) {
this._alpha -= 1;
if (this._alpha <= 0) {
this.removeMovieClip();
}
}
};
var counter2 = 100;
bdead.onEnterFrame = function () {
counter2 -= 1;
if (counter2 <= 0) {
this._alpha -= 1;
if (this._alpha <= 0) {
this.removeMovieClip();
}
}
};
zombies[i].removeMovieClip();
zombieDots[i].removeMovieClip();
zombies.splice(i, 1);
zombieType.splice(i, 1);
zombieTimer2.splice(i, 1);
zombieChange.splice(i, 1);
zombieTerminate.splice(i, 1);
zombieHealth.splice(i, 1);
zombieDots.splice(i, 1);
zombieX.splice(i, 1);
zombieY.splice(i, 1);
zombieRotDelay.splice(i, 1);
}
function removeZombies(i) {
zombiesAlive -= 1;
zombiesDead += 1;
var v3 = random(2) + 1;
bdead = bg.attachMovie(zombieDead[zombieType[i]], 'dead' + depth + 1, depth + 1);
if (zombieType[i] == 10 || zombieType[i] == 11 || zombieType[i] == 12 || zombieType[i] == 13 || zombieType[i] == 14 || zombieType[i] == 15) {
bossHealth.gotoAndStop(1);
}
bdead._x = zombies[i]._x - bg._x;
bdead._y = zombies[i]._y - bg._y;
bdead._rotation = zombies[i]._rotation + 180;
if (bloodOn == true) {
bd = bg.attachMovie('droplet', 'droplet' + depth, depth);
bd.gotoAndStop(random(12) + 1);
}
bar.moneyText = money;
bar.scoreText = score;
if (rage < 100) {
rage += 1;
bar.rageMeter._width += 1;
thisSaid = false;
} else {
if (thisSaid != true) {
if (rageMode != true) {
information('Rage Mode Ready! Press Space to Activate!');
}
thisSaid = true;
rage = 100;
bar.rageMeter._width = 100;
}
}
++depth;
bd._x = zombies[i]._x - bg._x;
bd._y = zombies[i]._y - bg._y;
bd._rotation = zombies[i]._rotation + 90;
if (v3 == 1) {
bd._rotation += 180;
bd._xscale *= -1;
}
var counter = 100;
bd.onEnterFrame = function () {
counter -= 1;
if (counter <= 0) {
this._alpha -= 1;
if (this._alpha <= 0) {
this.removeMovieClip();
}
}
};
var counter2 = 100;
bdead.onEnterFrame = function () {
counter2 -= 1;
if (counter2 <= 0) {
this._alpha -= 1;
if (this._alpha <= 0) {
this.removeMovieClip();
}
}
};
zombies[i].removeMovieClip();
zombieDots[i].removeMovieClip();
zombies.splice(i, 1);
zombieType.splice(i, 1);
zombieTerminate.splice(i, 1);
zombieHealth.splice(i, 1);
zombieDots.splice(i, 1);
zombieX.splice(i, 1);
zombieY.splice(i, 1);
zombieRotDelay.splice(i, 1);
}
function zombiesIncluded(startLevel, endLevel, totalZombies, startingZombie) {
if (level >= startLevel && level < endLevel) {
rand = random(totalZombies) + startingZombie;
}
}
function patBack(atCombo, compliment, bonusType) {
if (combo % atCombo == 0) {
if (bonusType == 1 || bonusType == 4 || bonusType == 7) {
textClip2.gotoAndPlay(2);
} else {
if (bonusType == 2 || bonusType == 5 || bonusType == 8) {
textClip3.gotoAndPlay(2);
} else {
if (bonusType == 3 || bonusType == 6 || bonusType == 9) {
textClip4.gotoAndPlay(2);
}
}
}
bonus[bonusType] = 1;
}
}
function sendBoss(bossLevel, bossNumber, bossType, totalZombies, startingZombie) {
if (level == bossLevel) {
if (sentBoss[bossNumber] == 0 && pauseFrame._currentframe == 1) {
rand = bossType;
sentBoss[bossNumber] = 1;
bossHealth.gotoAndStop(2);
information('Boss Incoming!');
} else {
rand = random(totalZombies) + startingZombie;
}
}
}
function createZombie() {
zombiesAlive += 1;
if (zombiesDead < 30) {
rand = 1;
} else {
if (zombiesDead >= 30 && zombiesDead < 60) {
rand = random(2) + 1;
} else {
if (zombiesDead >= 60 && zombiesDead < 120) {
rand = random(3) + 1;
} else {
if (zombiesDead >= 120 && zombiesDead < 180) {
rand = random(3) + 2;
} else {
if (zombiesDead >= 180 && zombiesDead < 240) {
rand = random(3) + 3;
} else {
if (zombiesDead >= 240 && zombiesDead < 300) {
rand = random(3) + 4;
} else {
if (zombiesDead >= 300 && zombiesDead < 360) {
rand = random(3) + 5;
} else {
rand = random(3) + 6;
}
}
}
}
}
}
}
if (zombiesDead >= 70) {
if (sentBoss[1] == 0) {
rand = 10;
sentBoss[1] = 1;
bossHealth.gotoAndStop(2);
information('Boss Incoming!');
}
}
if (zombiesDead >= 140) {
if (sentBoss[2] == 0 && deadBoss[1] == 1) {
rand = 11;
sentBoss[2] = 1;
bossHealth.gotoAndStop(2);
information('Boss Incoming!');
}
}
if (zombiesDead >= 210) {
if (sentBoss[3] == 0 && deadBoss[1] == 1 && deadBoss[2] == 1) {
rand = 12;
sentBoss[3] = 1;
bossHealth.gotoAndStop(2);
information('Boss Incoming!');
}
}
if (zombiesDead >= 280) {
if (sentBoss[4] == 0 && deadBoss[1] == 1 && deadBoss[2] == 1 && deadBoss[3] == 1) {
rand = 13;
sentBoss[4] = 1;
bossHealth.gotoAndStop(2);
information('Boss Incoming!');
}
}
if (zombiesDead >= 370) {
if (sentBoss[5] == 0 && deadBoss[1] == 1 && deadBoss[2] == 1 && deadBoss[3] == 1 && deadBoss[4] == 1) {
rand = 14;
sentBoss[5] = 1;
bossHealth.gotoAndStop(2);
information('Boss Incoming!');
}
}
if (zombieAnnounced[rand] != 1 && store._currentframe == 1) {
callNewZombie(rand, zombieTextType[rand], zombieTextSpeed[rand], zombieTextHealth[rand], zombieTextDamage[rand], zombieTextSpecial[rand]);
zombieAnnounced[rand] = 1;
newZombieBox._alpha = 100;
newZombieBox._y = 500;
timer = 0;
}
zom = attachMovie(zombieNumber[rand], 'zombie' + depth, depth);
++depth;
if (levelSelect == 1) {
var v1 = random(4) + 5;
} else {
if (levelSelect == 2) {
var v1 = random(4) + 1;
} else {
if (levelSelect == 3) {
var v1 = random(3) + 10;
} else {
if (levelSelect == 4) {
var v1 = random(2) + 3;
} else {
if (levelSelect == 5) {
var v1 = random(6) + 5;
} else {
if (levelSelect == 6) {
var v1 = random(8) + 1;
} else {
var v1 = random(4) + 5;
}
}
}
}
}
}
if (v1 == 1 || v1 == 9) {
zom._x = arena._x + arena._width / 2;
zom._y = arena._y;
} else {
if (v1 == 2 || v1 == 10) {
zom._x = arena._x - arena._width / 2;
zom._y = arena._y;
} else {
if (v1 == 3) {
zom._x = arena._x;
zom._y = arena._y + arena._height / 2;
} else {
if (v1 == 4) {
zom._x = arena._x;
zom._y = arena._y - arena._height / 2;
} else {
if (v1 == 5) {
zom._x = arena._x + arena._width / 2 - 50;
zom._y = arena._y + arena._height / 2 - 50;
} else {
if (v1 == 6 || v1 == 11) {
zom._x = arena._x - arena._width / 2 + 50;
zom._y = arena._y - arena._height / 2 + 50;
} else {
if (v1 == 7 || v1 == 12) {
zom._x = arena._x - arena._width / 2 + 50;
zom._y = arena._y + arena._height / 2 - 50;
} else {
if (v1 == 8) {
zom._x = arena._x + arena._width / 2 - 50;
zom._y = arena._y - arena._height / 2 + 50;
} else {
zom._x = arena._x - arena._width / 2;
zom._y = arena._y;
}
}
}
}
}
}
}
}
zombieHealth.push(enemyHealth[rand]);
zombieType.push(rand);
zombieTimer2.push(0);
zombieChange.push(Math.random(500) + 250);
zd = attachMovie('zombieDot', 'zombieDot' + depth2, depth2);
++depth2;
zd._x = radar._x + (zom._x - player._x) / 20;
zd._y = radar._y + (zom._y - player._y) / 20;
zombieDots.push(zd);
zombieRotDelay.push(0);
zombies.push(zom);
zombieTerminate.push(0);
}
function zombieMovement() {
if (pause != true || _currentframe == 1) {
i = zombies.length - 1;
while (i >= 0) {
zombieRotDelay[i] -= 1;
if (zombieRotDelay[i] <= 0) {
zombieRotDelay[i] = 20;
var v3 = player._x - zombies[i]._x;
var v2 = player._y - zombies[i]._y;
var v1 = Math.atan2(v2, v3);
zombies[i]._rotation = v1 * 180 / Math.PI + 90;
if (rageMode == true) {
zombieX[i] = Math.cos(v1) * (enemySpeed[zombieType[i]] / 2);
zombieY[i] = Math.sin(v1) * (enemySpeed[zombieType[i]] / 2);
} else {
zombieX[i] = Math.cos(v1) * enemySpeed[zombieType[i]];
zombieY[i] = Math.sin(v1) * enemySpeed[zombieType[i]];
}
}
zombies[i]._x += zombieX[i];
zombies[i]._y += zombieY[i];
zombies[i]._x -= newX;
zombies[i]._y -= newY;
if (zombieType[i] == 3 || zombieType[i] == 5 || zombieType[i] == 7 || zombieType[i] == 9) {
zombieTimer2[i] += 1;
if (zombies[i]._alpha >= 100 && zombies[i]._alpha <= 105 && zombieTimer2[i] < 150) {
zombies[i].filters = [];
zombies[i]._alpha += 6;
}
if (zombieTimer2[i] > zombieChange[i]) {
if (zombies[i]._alpha >= 100) {
zombies[i].filters = [glow2];
zombies[i]._alpha = 99;
}
zombies[i]._alpha -= 1;
if (zombies[i]._alpha <= 70) {
zombies[i]._alpha -= 2;
if (zombies[i]._alpha <= 0) {
zombieTimer2[i] = -50;
zombies[i]._x = random(900) + 50;
zombies[i]._y = random(400) + 50;
zombieChange[i] = Math.random(500) + 250;
zombies[i]._alpha = 70;
}
}
} else {
if (zombies[i]._alpha < 100) {
zombies[i]._alpha += 1;
}
}
}
if (zombies[i].hitTest(player.inner) && invul != true && zombies[i]._alpha == 100) {
health -= enemyPower[zombieType[i]];
zombies[i].gotoAndStop(2);
healthFraction = health / totalHealth;
if (health > 0) {
healthBar.inner._width = Math.round(50 * healthFraction);
} else {
healthBar.inner._width = 0;
player._visible = false;
healthBar._visible = false;
pauseFrame.gotoAndStop(3);
pauseFrame._y = 600;
invul = true;
pause = true;
bd = bg.attachMovie('droplet', 'droplet' + depth, depth);
bd.gotoAndStop(random(12) + 1);
bd._x = player._x - bg._x;
bd._y = player._y - bg._y;
startChange = true;
}
if (mute == true) {
} else {
aSound4.start(0, 1);
aSound4.start(0, 1);
}
invul = true;
player._alpha = 70;
player.filters = [glow];
}
if (zombies[i].hitTest(player)) {
zombies[i].gotoAndStop(2);
} else {
zombies[i].gotoAndStop(1);
}
if (timer1 >= 50 && bonus[2] == 0) {
timer1 = 0;
invul = false;
invul2 = false;
player._alpha = 100;
player.filters = undefined;
}
zombieDots[i]._x = radar._x + (zombies[i]._x - player._x) / 20;
zombieDots[i]._y = radar._y + (zombies[i]._y - player._y) / 20;
if (arena.inside.hitTest(zombies[i]._x - zombies[i]._width / 2, zombies[i]._y, true)) {
zombies[i]._x += 2;
}
if (arena.inside.hitTest(zombies[i]._x + zombies[i]._width / 2, zombies[i]._y, true)) {
zombies[i]._x -= 2;
}
if (arena.inside.hitTest(zombies[i]._x, zombies[i]._y - zombies[i]._height / 2, true)) {
zombies[i]._y += 2;
}
if (arena.inside.hitTest(zombies[i]._x, zombies[i]._y + zombies[i]._height / 2, true)) {
zombies[i]._y -= 2;
}
if (radar.outside.hitTest(zombieDots[i]._x, zombieDots[i]._y, true)) {
zombieDots[i]._alpha = 0;
} else {
zombieDots[i]._alpha = 100;
}
if (leavingGame == true) {
removeZombie(i);
}
--i;
}
}
}
function removeAllZombies() {
i = zombies.length - 1;
while (i >= 0) {
removeZombies(i);
--i;
}
}
function bulletHit(i, b) {
bullets[b].p1._x += 1000;
bullets[b].p2._x += 1000;
bullets[b].p3._x += 1000;
bullets[b].p4._x += 1000;
bullets[b].p5._x += 1000;
bulletTerminate[b] = 1;
zombies[i]._x += Math.cos(bullets[b]._rotation * Math.PI / 180) * 15;
zombies[i]._y += Math.sin(bullets[b]._rotation * Math.PI / 180) * 15;
bullets[b]._yscale = 25;
bullets[b]._xscale = 25;
if (rageMode != true && bonus[5] != 1 && bonus[8] != 1) {
zombieHealth[i] -= gunPower[gun];
} else {
zombieHealth[i] -= gunPower[gun] * 2;
}
if (zombieType[i] == 10 || zombieType[i] == 11 || zombieType[i] == 12 || zombieType[i] == 13 || zombieType[i] == 14 || zombieType[i] == 15) {
healthFraction2 = zombieHealth[i] / enemyHealth[zombieType[i]];
if (health > 0) {
bossHealth.inner._width = Math.round(600 * healthFraction2);
} else {
bossHealth.inner._width = 0;
}
}
if (mute == true) {
} else {
aSound3.start(0, 1);
}
particleEffect(i, b);
if (zombieHealth[i] <= 0) {
zombieTerminate[i] = 1;
}
}
function wallBullet() {
frameNum += 1;
b = bullets.length - 1;
while (b >= 0) {
if (arena.inside.hitTest(bullets[b]._x, bullets[b]._y, true)) {
sp = attachMovie('spark', 'spark' + depth, depth);
++depth;
sp._x = bullets[b]._x;
sp._y = bullets[b]._y;
sp._rotation = 180 + bullets[b]._rotation;
bulletTerminate[b] = 1;
}
--b;
}
}
function zombieHitTest() {
i = 0;
while (i <= zombies.length) {
b = bullets.length - 1;
while (b >= 0) {
if (bullets[b].p1.hitTest(zombies[i]._x, zombies[i]._y, true) || bullets[b].p2.hitTest(zombies[i]._x, zombies[i]._y, true) && zombies[i].type >= 10) {
bulletHit(i, b);
if (bloodOn == true) {
bda = bg.attachMovie('droplet', 'droplet' + depth, depth);
bda.gotoAndStop(random(12) + 1);
bda._x = zombies[i]._x - bg._x;
bda._y = zombies[i]._y - bg._y;
++depth;
var counterb = 100;
bda.onEnterFrame = function () {
counterb -= 1;
if (counterb <= 0) {
this._alpha -= 1;
if (this._alpha <= 0) {
this.removeMovieClip();
}
}
};
}
}
--b;
}
++i;
}
}
function particleEffect(vari, vari2) {
if (bloodOn == true) {
q = 15;
while (q > 0) {
exp = attachMovie('explosion', 'explosion' + depth, depth);
exp._yscale = random(20) + 10;
exp._xscale = exp._yscale;
exp._x = zombies[vari]._x;
exp._y = zombies[vari]._y;
++depth;
++depth2;
xDir = Math.cos(bullets[vari2]._rotation * Math.PI / 180 + (Math.random() / 2 - 0.5)) * random(10) + 1;
yDir = Math.sin(bullets[vari2]._rotation * Math.PI / 180 + (Math.random() / 2 - 0.5)) * random(10) + 1;
explosions.push(exp);
blooddrops.push(texp);
exX.push(xDir);
exY.push(yDir);
blah = new Color(exp);
--q;
}
}
}
function particleMovement() {
i = explosions.length;
while (i >= 0) {
explosions[i]._x += exX[i];
explosions[i]._y += exY[i];
exX[i] *= 0.95;
exY[i] *= 0.95;
explosions[i]._alpha -= 5;
if (pauseFrame._currentframe == 3) {
explosions[i].removeMovieClip();
explosions.splice(i, 1);
exX.splice(i, 1);
exY.splice(i, 1);
}
if (explosions[i]._alpha <= 0) {
explosions[i].removeMovieClip();
explosions.splice(i, 1);
exX.splice(i, 1);
exY.splice(i, 1);
}
--i;
}
}
function whenKeyDown(number, gunNumber) {
if (Key.isDown(number) && gunUnlocked[gunNumber]) {
gun = gunNumber;
player.gun.gotoAndStop(gunNumber);
if (gunAmmoLevel[gunNumber] < 5 && gun != 1) {
bar.ammoText = gunAmmo[gunNumber];
} else {
bar.ammoText = '∞';
}
information(gunName[gun] + ' Equipped');
} else {
if (Key.isDown(number)) {
information('You haven\'t bought the ' + gunName[gunNumber] + ' yet!');
}
}
}
function switchGunUp() {
if (gunUnlocked[gun + 1]) {
gun += 1;
player.gun.gotoAndStop(gun);
if (gunAmmoLevel[gun] < 5 && gun != 1) {
bar.ammoText = gunAmmo[gun];
} else {
bar.ammoText = '∞';
}
information(gunName[gun] + ' Equipped');
}
}
function switchGunDown() {
if (gun > 1 && gunUnlocked[gun - 1]) {
gun -= 1;
player.gun.gotoAndStop(gun);
if (gunAmmoLevel[gun] < 5 && gun != 1) {
bar.ammoText = gunAmmo[gun];
} else {
bar.ammoText = '∞';
}
information(gunName[gun] + ' Equipped');
}
}
function callNewZombie(enemy, type, speed, health, damage, special) {
newZombieBox.zombieDisplay.gotoAndStop(enemy);
newZombieBox.zombieType.text = type;
newZombieBox.zombieSpeed.text = speed;
newZombieBox.zombieHealth.text = health;
newZombieBox.zombieDamage.text = damage;
newZombieBox.zombieSpecial.text = special;
}
function onEnterFrame() {
if (getFPS() < 35 && getFPS() > 27) {
_root._quality = 'MEDIUM';
bloodOn = true;
trace(bloodOn);
} else {
if (getFPS() <= 22 && getFPS() > 17) {
_root._quality = 'LOW';
} else {
if (getFPS() <= 17) {
bloodOn = false;
trace(bloodOn);
}
}
}
i = bullets.length - 1;
while (i >= 0) {
if (pauseFrame._currentframe == 3) {
removeBullet(i);
}
--i;
}
if (rage >= 100 && rageMode != true) {
++timer7;
if (timer7 > 700) {
information('Rage Mode Ready! Press Space to Activate!');
timer7 = 0;
}
}
if (newZombieBox._alpha > 0) {
if (newZombieBox._y > 340) {
newZombieBox._y -= 4;
}
++timer;
if (timer > 250) {
newZombieBox._alpha -= 2;
}
} else {
timer = 0;
}
if (startChange == true) {
if (pauseFrame._y > 0) {
pauseFrame._y -= 10;
} else {
pauseFrame._y = 0;
i = zombies.length - 1;
while (i >= 0) {
removeZombies(i);
--i;
}
++attempts;
bar.attempts.text = attempts;
player._visible = true;
healthBar._visible = true;
if (bossesKilled == 0) {
bg.gotoAndStop(random(3) + 4);
}
if (bossesKilled == 1) {
bg.gotoAndStop(random(3) + 1);
}
if (bossesKilled >= 3) {
bg.gotoAndStop(random(3) + 7);
}
startChange = false;
}
}
if (mute == true) {
aSound2.setVolume(0);
} else {
aSound2.setVolume(100);
}
if (bossesKilled >= 5 && finishedGame == false) {
healthBar.inner._width = 0;
i = zombies.length - 1;
while (i >= 0) {
removeZombies(i);
--i;
}
player._alpha -= 2;
healthBar._visible = false;
if (player._alpha <= 0) {
pauseFrame.gotoAndStop(4);
finishedGame = true;
healthBar._visible = true;
player._alpha = 100;
}
}
comboChain -= 1;
if (bonus[4] == 1) {
if (moneyGiven <= 250 * level) {
givenClip = 250 * level - moneyGiven;
textClip2.patBack.text = 'Bonus Gold: ' + givenClip;
money += 5 * level;
moneyGiven += 5 * level;
bar.moneyText = money;
} else {
textClip2.patBack.text = 'Bonus Gold: 0';
textClip2.play();
bonus[4] = 0;
moneyGiven = 1;
}
}
if (pause != true) {
if (invul == true) {
timer1 += 1;
}
if (gunUnlocked[4] == 1 && isDone[8] != 1) {
com.newgrounds.API.unlockMedal('Unlock the Dual Uzis');
isDone[8] = 1;
}
if (gunUnlocked[7] == 1 && isDone[9] != 1) {
com.newgrounds.API.unlockMedal('Unlock the Dual Magnums');
isDone[9] = 1;
}
if (gunUnlocked[8] == 1 && isDone[10] != 1) {
com.newgrounds.API.unlockMedal('Unlock the Dual Miniguns');
isDone[10] = 1;
}
if (bonus[1] == 1) {
if (moneyGiven <= 50 * level) {
givenClip = 50 * level - moneyGiven;
textClip2.patBack.text = 'Bonus Gold: ' + givenClip;
money += 1 * level;
moneyEarned += 1 * level;
moneyGiven += 1 * level;
bar.moneyText = money;
} else {
textClip2.patBack.text = 'Bonus Gold: 0';
textClip2.play();
textClip2.play();
bonus[1] = 0;
moneyGiven = 1;
}
}
if (bonus[2] == 1) {
if (bonusTimer >= 1) {
++bonusCounter;
bonusTimer = 5 - Math.round(bonusCounter / 20);
invul = true;
player._alpha = 70;
player.filters = [glow];
textClip3.patBack.text = 'Invulnerable: ' + bonusTimer;
} else {
textClip3.play();
invul = false;
player._alpha = 100;
player.filters = undefined;
bonusTimer = 15;
bonusCounter = 0;
bonus[2] = 0;
}
}
if (bonus[3] == 1) {
if (bonusTimer2 >= 1) {
++bonusCounter2;
bonusTimer2 = 10 - Math.round(bonusCounter2 / 20);
textClip4.patBack.text = '2x Gold: ' + bonusTimer2;
} else {
textClip4.play();
bonusTimer2 = 15;
bonusCounter2 = 0;
bonus[3] = 0;
}
}
if (bonus[5] == 1) {
if (bonusTimer3 >= 1) {
++bonusCounter3;
bonusTimer3 = 10 - Math.round(bonusCounter3 / 20);
textClip3.patBack.text = '2x Power: ' + bonusTimer3;
} else {
textClip3.play();
bonusTimer3 = 15;
bonusCounter3 = 0;
bonus[5] = 0;
}
}
if (bonus[6] == 1) {
if (bonusTimer4 >= 1) {
++bonusCounter4;
bonusTimer4 = 10 - Math.round(bonusCounter4 / 20);
textClip4.patBack.text = '2x Speed: ' + bonusTimer4;
} else {
textClip4.play();
bonusTimer4 = 15;
bonusCounter4 = 0;
bonus[6] = 0;
}
}
if (bonus[7] == 1) {
if (bonusTimer5 >= 1) {
++bonusCounter5;
bonusTimer5 = 30 - Math.round(bonusCounter5 / 20);
textClip2.patBack.text = '2x Gold: ' + bonusTimer5;
} else {
textClip2.play();
bonusTimer5 = 30;
bonusCounter5 = 0;
bonus[7] = 0;
}
}
if (bonus[8] == 1) {
if (bonusTimer6 >= 1) {
++bonusCounter6;
bonusTimer6 = 20 - Math.round(bonusCounter6 / 20);
textClip3.patBack.text = '2x Power: ' + bonusTimer6;
} else {
textClip3.play();
bonusTimer6 = 15;
bonusCounter6 = 0;
bonus[8] = 0;
}
}
if (bonus[9] == 1) {
if (bonusTimer7 >= 1) {
++bonusCounter7;
bonusTimer7 = 20 - Math.round(bonusCounter4 / 20);
textClip4.patBack.text = '2x Speed: ' + bonusTimer7;
} else {
textClip4.play();
bonusTimer7 = 15;
bonusCounter7 = 0;
bonus[9] = 0;
}
}
healthBar._y = player._y - 37;
healthBar._x = player._x - 26;
whenKeyDown(49, 1);
whenKeyDown(50, 2);
whenKeyDown(51, 3);
whenKeyDown(52, 4);
whenKeyDown(53, 5);
whenKeyDown(54, 6);
whenKeyDown(55, 7);
whenKeyDown(56, 8);
if (gunUnlocked[2] == 1 && wasDone != true) {
information('Use the Number Keys (1-8) to Change Weapons');
firstTime = false;
wasDone = true;
}
if (Key.isDown(32) && rage == 100) {
rageMode = true;
information('Rage Mode Activated!');
}
if (gameover == true) {
player._alpha -= 0.2;
gameTimer += 1;
if (isDone[6] != 1) {
com.newgrounds.API.unlockMedal('Mission accomplished!');
isDone[6] = 1;
}
if (gameTimer > 200) {
gotoAndStop('over');
gameover = false;
gameTimer = 0;
}
}
if (rageMode == true) {
rage -= 0.3;
bar.rageMeter._width -= 0.3;
rageBg.gotoAndStop(2);
if (rage < 1) {
rageMode = false;
rage = 0;
rageBg.gotoAndStop(1);
}
}
oldX = player._x;
oldY = player._y;
switchAimer = false;
i = zombies.length - 1;
while (i >= 0) {
if (zombies[i].hitTest(_xmouse, _ymouse, true)) {
switchAimer = true;
}
if (leavingGame == true) {
zombieTerminate[i] = 1;
}
if (zombieTerminate[i] == 1 || leavingGame == true) {
removeZombie(i);
}
--i;
}
if (switchAimer) {
aim.gotoAndStop(2);
} else {
aim.gotoAndStop(1);
}
i = bullets.length - 1;
while (i >= 0) {
if (bulletTerminate[i] == 1) {
removeBullet(i);
}
--i;
}
var v3 = _xmouse - aim._x;
var v2 = _ymouse - aim._y;
aim._x += v3 / 2;
aim._y += v2 / 2;
steped = 0;
shoot();
if (Key.isDown(39) || Key.isDown(68)) {
if (arena.inside.hitTest(player._x + player._width / 2, player._y, true)) {
} else {
player._x += speed;
steped = 1;
if (player._x >= 700 - player._width / 2) {
player._x = 700 - player._width / 2;
}
}
}
if (Key.isDown(37) || Key.isDown(65)) {
if (arena.inside.hitTest(player._x - player._width / 2, player._y, true)) {
} else {
player._x -= speed;
steped = 1;
if (player._x <= player._width / 2) {
player._x = player._width / 2;
}
}
}
if (Key.isDown(40) || Key.isDown(83)) {
if (arena.inside.hitTest(player._x, player._y + player._height / 2, true)) {
} else {
player._y += speed;
steped = 1;
if (player._y >= 480 - player._height / 2) {
player._y = 480 - player._height / 2;
}
}
}
if (Key.isDown(38) || Key.isDown(87)) {
if (arena.inside.hitTest(player._x, player._y - player._height / 2, true)) {
} else {
player._y -= speed;
steped = 1;
if (player._y <= player._height / 1.5) {
player._y = player._height / 1.4;
}
}
}
if (steped == 0) {
player.type.walk.gotoAndStop(1);
} else {
player.type.walk.play();
}
zombieTimer -= 1;
if (zombieTimer <= 0 && zombiesAlive < zombieGenerator || zombieTimer <= zombieCounter * -1) {
++zombiesCreated;
zombieTimer = zombieCounter;
createZombie();
}
if (zombiesDead >= oldZombies) {
removeAllZombies();
if (set != true) {
if (level != 30) {
zombieCounter = 25;
sentBoss = new Array(0, 0, 0, 0, 0, 0, 0);
deadBoss = new Array(0, 0, 0, 0, 0, 0, 0);
zombiesKilled = 0;
moneyEarned = 0;
highCombo = 0;
timer1 = 0;
invul = false;
invul2 = false;
player._alpha = 100;
player.filters = undefined;
set = true;
pause = true;
} else {
gameover = true;
}
}
if (store._currentframe == 1 && wc._currentframe == 1) {
level += 1;
if (level == 2 && isDone[7] != 1) {
com.newgrounds.API.unlockMedal('Just getting started');
isDone[7] = 1;
}
if (level == 6 && isDone[1] != 1) {
com.newgrounds.API.unlockMedal('Defeat Boss 1');
isDone[1] = 1;
} else {
if (level == 11 && isDone[2] != 1) {
com.newgrounds.API.unlockMedal('Defeat Boss 2');
isDone[2] = 1;
} else {
if (level == 16 && isDone[3] != 1) {
com.newgrounds.API.unlockMedal('Defeat Boss 3');
isDone[3] = 1;
} else {
if (level == 21 && isDone[4] != 1) {
com.newgrounds.API.unlockMedal('Defeat Boss 4');
isDone[4] = 1;
} else {
if (level == 26 && isDone[5] != 1) {
com.newgrounds.API.unlockMedal('Defeat Boss 5');
isDone[5] = 1;
}
}
}
}
}
store._y = 70;
bar.levelText = level;
zombieTimer = 200;
zombiesDead = 0;
zombiesCreated = 0;
set = false;
}
}
var v5 = _xmouse - player._x;
var v4 = _ymouse - player._y;
var v6 = Math.atan2(v4, v5);
player._rotation = v6 * 180 / Math.PI;
movedX = 1;
movedY = 1;
if ((bg._x <= 585 || player._x >= 350) && (bg._x >= 55 || player._x <= 320)) {
movedX = 0;
}
if ((bg._y <= 400 || player._y >= 240) && (bg._y >= 95 || player._y <= 240)) {
movedY = 0;
}
if (movedX == 0) {
newX = player._x - oldX;
bg._x -= newX;
insideArena._x -= newX;
arena._x -= newX;
arena3._x -= newX;
abg._x -= newX;
wall._x -= newX;
player._x = oldX;
} else {
newX = 0;
}
if (movedY == 0) {
newY = player._y - oldY;
bg._y -= newY;
insideArena._y -= newY;
arena._y -= newY;
arena3._y -= newY;
abg._y -= newY;
wall._y -= newY;
player._y = oldY;
} else {
newY = 0;
}
if (pause != true && set != true) {
bulletMovement();
zombieMovement();
zombieHitTest();
particleMovement();
wallBullet();
miniA._x = radar._x + (arena._x - player._x) / 20;
miniA._y = radar._y + (arena._y - player._y) / 20;
}
} else {
var v3 = _xmouse - aim._x;
var v2 = _ymouse - aim._y;
aim._x += v3 / 2;
aim._y += v2 / 2;
}
}
stop();
Object.prototype.getFPS = function () {
if (signal == true) {
time = getTimer();
signal = !signal;
return rate;
}
rate = int(1000 / (getTimer() - time));
signal = !signal;
return rate;
};
System.security.allowDomain('server.cpmstar.com');
Mouse.addListener(mouseListener);
var isDone = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
var glow = new flash.filters.GlowFilter(13369344, 0.5, 10, 10, 3, 3);
var glow2 = new flash.filters.GlowFilter(16777215, 0.5, 10, 10, 3, 3);
player.type.gotoAndStop(1);
aSound = new Sound(soundClip1);
aSound.attachSound('sound1');
aSound3 = new Sound(soundClip3);
aSound3.attachSound('sound3');
aSound2 = new Sound(soundClip2);
aSound2.attachSound('sound2');
aSound2.setVolume(100);
aSound2.start(0, 99);
aSound4 = new Sound(soundClip4);
aSound4.attachSound('sound4');
Mouse.hide();
finishedGame = false;
comboChain = 40;
combo = 0;
timer = 0;
timer7 = 0;
attempts = 0;
bar.attempts.text = attempts;
bonusCounter = 0;
bonusTimer = 15;
bonusCounter2 = 0;
bonusTimer2 = 15;
bonusCounter3 = 0;
bonusTimer3 = 15;
bonusCounter4 = 0;
bonusTimer4 = 15;
bonusCounter5 = 0;
bonusTimer5 = 30;
bonusCounter6 = 0;
zombieCounter = 25;
bonusTimer6 = 30;
bonusCounter7 = 0;
bonusTimer7 = 30;
bossesKilled = 0;
newZombieBox._alpha = 0;
zombiesCreated = 0;
speed = 5;
steped = 0;
lives = 6;
store._y = 70;
moneyGiven = 1;
gameTimer = 0;
wasPlayed = true;
leavingGame = false;
_quality = 'HIGH';
setHigh = true;
shotDelay = 0;
depth = 100;
depth2 = 5000;
level = 1;
score = 0;
money = 0;
bloodOn = true;
ammo = 200;
bar.ammoText = '∞';
bar.moneyText = money;
bar.scoreText = score;
bar.rageMeter._width = 0;
rage = 0;
if (levelSelect == 1) {
bg.gotoAndStop(2);
} else {
if (levelSelect == 2) {
bg.gotoAndStop(8);
} else {
if (levelSelect == 3) {
bg.gotoAndStop(6);
} else {
if (levelSelect == 4) {
bg.gotoAndStop(3);
} else {
if (levelSelect == 5) {
bg.gotoAndStop(9);
} else {
if (levelSelect == 6) {
bg.gotoAndStop(4);
}
}
}
}
}
}
arena.design.gotoAndStop(levelSelect);
arena.inside.gotoAndStop(levelSelect);
timer1 = 0;
invul = false;
gun = 1;
health = 100;
totalHealth = 100;
bar.levelText = level;
armorLevel = 1;
sentBoss = new Array(0, 0, 0, 0, 0, 0, 0);
deadBoss = new Array(0, 0, 0, 0, 0, 0, 0);
bonus = new Array(0, 0, 0, 0, 0, 0, 0);
zombieMoney = new Array(0, 20, 30, 50, 100, 150, 175, 300, 400, 600, 1500, 2000, 4000, 10000, 25000, 40000);
gunUnlocked = new Array(0, 1, 0, 0, 0, 0, 0, 0, 0);
gunName = new Array('0', 'Pistol', 'Uzi', 'Shotgun', 'Dual Uzi', 'Magnum', 'Minigun', 'Dual Magnum', 'Dual Minigun');
zombieDead = new Array(0, 'dead9', 'dead6', 'dead3', 'dead8', 'dead5', 'dead2', 'dead7', 'dead4', 'dead1', 'dead10', 'dead11', 'dead12', 'dead13', 'dead14', 'dead15');
zombieTextType = new Array(0, 'Artist', 'Bully', 'Student', 'Soldier', 'Angry Worker', 'Big Bully', 'Skinny Kid', 'Hard Hat', 'Teen', 'Black Demon', 'Cyclops', 'Giant Reaper', 'Super Demon', 'Super Cyclops', 'Super Reaper');
zombieTextSpeed = new Array(0, 'Medium Speed', 'Medium Speed', 'High Speed', 'Low Speed', 'High Speed', 'Low Speed', 'High Speed', 'Medium Speed', 'High Speed', 'High Speed', 'High Speed', 'High Speed', 'High Speed', 'High Speed', 'High Speed', 0);
zombieTextHealth = new Array(0, 'Low Health', 'Medium Health', 'Low Health', 'High Health', 'Medium Health', 'High Health', 'Low Health', 'Medium Health', 'High Health', 'High Health', 'High Health', 'High Health', 'High Health', 'High Health', 'High Health', 0);
zombieTextDamage = new Array(0, 'Low Damage', 'Medium Damage', 'High Damage', 'High Damage', 'Medium Damage', 'High Damage', 'High Damage', 'High Damage', 'High Damage', 'High Damage', 'High Damage', 'High Damage', 'High Damage', 'High Damage', 'High Damage', 0);
zombieTextSpecial = new Array(0, '', '', 'Special: Warps', '', 'Special: Warps', '', 'Special: Warps', '', 'Special: Warps', 'Special: Boss', 'Special: Boss', 'Special: Boss', 'Special: Boss', 'Special: Boss', '', 0);
zombieNumber = new Array(0, 'zombie9', 'zombie6', 'zombie3', 'zombie8', 'zombie5', 'zombie2', 'zombie7', 'zombie4', 'zombie1', 'boss1', 'boss2', 'boss3', 'boss4', 'boss5', 'boss6');
enemySpeed = new Array(0, 2, 2.5, 4, 1.5, 2.8, 1.5, 4.2, 2.6, 4, 6, 6, 6, 6, 6.5, 7);
enemyHealth = new Array(0, 0.8, 1.6, 2, 9, 12, 18, 10, 25, 40, 125, 350, 700, 1200, 2000, 3000);
enemyPower = new Array(0, 50, 60, 100, 100, 50, 100, 140, 120, 80, 90, 50, 80, 130, 200, 250, 350);
zombieAnnounced = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
gunSpeed = new Array(0, 10, 5, 12, 5, 10, 2.5, 10, 2.5);
gunSpeedLevel = new Array(0, 1, 1, 1, 1, 1, 1, 1, 1);
gunSpeedCost = new Array(0, 50, 100, 500, 1000, 2000, 3000, 4000, 6000);
gunAmmo = new Array(0, 0, 200, 100, 200, 100, 200, 100, 200);
gunTotalAmmo = new Array(0, 0, 200, 100, 200, 100, 200, 100, 200);
gunAmmoLevel = new Array(0, 1, 1, 1, 1, 1, 1, 1, 1);
gunAmmoCost = new Array(0, 0, 125, 750, 1250, 2500, 3750, 5000, 7500);
gunPower = new Array(0, 0.8, 0.8, 2, 1.5, 8, 4, 13, 5);
gunPowerLevel = new Array(0, 1, 1, 1, 1, 1, 1, 1, 1, 1);
gunPowerCost = new Array(0, 100, 150, 1000, 1500, 3000, 4500, 6000, 9000);
if (user_so.data.gameLoaded == true) {
gunUnlocked = user_so.data.gunUnlocked;
gunSpeed = user_so.data.gunSpeed;
gunSpeedLevel = user_so.data.gunSpeedLevel;
gunSpeedCost = user_so.data.gunSpeedCost;
gunAmmo = user_so.data.gunAmmo;
gunAmmoLevel = user_so.data.gunAmmoLevel;
gunAmmoCost = user_so.data.gunAmmoCost;
gunTotalAmmo = user_so.data.gunTotalAmmo;
gunPower = user_so.data.gunPower;
gunPowerLevel = user_so.data.gunPowerLevel;
gunPowerCost = user_so.data.gunPowerCost;
money = user_so.data.money;
bar.moneyText = money;
score = user_so.data.score;
bar.scoreText = score;
attempts = user_so.data.attempts;
bar.attempts.text = attempts;
armorLevel = user_so.data.armorLevel;
if (armorLevel == 2) {
totalHealth = 150;
} else {
if (armorLevel == 3) {
totalHealth = 200;
} else {
if (armorLevel == 4) {
totalHealth = 300;
} else {
if (armorLevel == 5) {
totalHealth = 400;
}
}
}
}
health = totalHealth;
player.type.gotoAndStop(armorLevel);
} else {
user_so.data.gunUnlocked = gunUnlocked;
user_so.data.gunSpeedLevel = gunSpeedLevel;
user_so.data.gunAmmoLevel = gunAmmoLevel;
user_so.data.gunPowerLevel = gunPowerLevel;
user_so.data.gunSpeedCost = gunSpeedCost;
user_so.data.gunAmmoCost = gunAmmoCost;
user_so.data.gunPowerCost = gunPowerCost;
user_so.data.gunSpeed = gunSpeed;
user_so.data.gunAmmo = gunAmmo;
user_so.data.gunTotalAmmo = gunTotalAmmo;
user_so.data.gunPower = gunPower;
user_so.data.money = money;
user_so.data.kills = money;
user_so.data.score = score;
user_so.data.armorLevel = armorLevel;
user_so.data.attempts = attempts;
user_so.data.gameLoaded = true;
}
zombieTimer = 200;
oldZombies = 3000000000.0;
zombieGenerator = 20;
zombiesAlive = 0;
zombiesDead = 0;
zombiesKilled = 0;
highCombo = 0;
moneyEarned = 0;
oldX = 0;
oldY = 0;
newX = 0;
newY = 0;
abg.swapDepths(495000);
arena.swapDepths(500001);
miniclip.swapDepths(500090);
player.swapDepths(500030);
healthBar.swapDepths(500040);
textClip.swapDepths(500550);
textClip2.swapDepths(501570);
textClip3.swapDepths(502620);
textClip4.swapDepths(503640);
bar.swapDepths(500125);
wc.swapDepths(500050);
radar.swapDepths(500055);
store.swapDepths(504660);
medalArea.swapDepths(6004660);
textBar.swapDepths(500070);
bossHealth.swapDepths(500150);
rageBg.swapDepths(500580);
pauseFrame.swapDepths(504700);
aim.swapDepths(505500);
newZombieBox.swapDepths(500105);
attachMovie('miniA', 'miniA', 500075);
bullets = new Array();
bulletsX = new Array();
bulletsY = new Array();
bullets2 = new Array();
bulletsX2 = new Array();
bulletsY2 = new Array();
bulletTerminate = new Array();
explosions = new Array();
exX = new Array();
exY = new Array();
zombies = new Array();
zombieTimer2 = new Array();
zombieType = new Array();
zombieTerminate = new Array();
zombieHealth = new Array();
zombieChange = new Array();
zombieDots = new Array();
zombieX = new Array();
zombieY = new Array();
zombieRotDelay = new Array();
mouseIsDown = 0;
onMouseDown = function () {
mouseIsDown = 1;
};
onMouseUp = function () {
mouseIsDown = 0;
};
miniA._yscale = 120;
miniA._xscale = 120;
miniA.gotoAndStop(levelSelect);
pause = false;
player._x = 315.1;
player._y = 237.9;
arena._x = 320;
arena._y = 240;
bg._x = 320;
bg._y = 240;
firstTime = false;
wasDone = false;
information('Arrows or AWSD Keys to Move, Mouse to Shoot');
Key.addListener(this);
frameNum = 0;
xDir = 0;
yDir = 0;
switchAimer = true;
movedX = 0;
movedY = 0;
}
movieClip 618 {
}
movieClip 621 {
}
movieClip 623 {
}
movieClip 626 {
}
movieClip 629 {
frame 1 {
stop();
}
frame 2 {
stop();
this._alpha = 0;
onEnterFrame = function () {
if (this._alpha < 100) {
this._alpha += 1;
}
};
}
}
// unknown tag 88 length 73
// unknown tag 88 length 217
movieClip 645 {
}
movieClip 647 {
}
movieClip 655 {
}
movieClip 658 {
}
movieClip 662 {
}
movieClip 663 {
}
movieClip 666 {
}
movieClip 667 {
}
movieClip 675 {
}
movieClip 683 {
}
movieClip 691 {
}
movieClip 692 {
}
movieClip 702 {
}
movieClip 711 {
}
movieClip 712 ak47 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
frame 4 {
stop();
}
frame 5 {
stop();
}
frame 6 {
stop();
}
frame 7 {
stop();
}
frame 8 {
stop();
}
}
movieClip 714 {
}
movieClip 715 {
}
movieClip 734 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 750 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 762 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 770 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 773 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 776 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 781 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 786 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 789 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 792 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 797 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 800 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 803 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 806 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 809 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 812 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
button 834 {
on (rollOver) {
_root.store.storeKeeper = 'Go ahead and leave, I\'m not feeling lonely *sniff*.';
}
on (rollOut) {
_root.store.storeKeeper = 'Welcome to the store.';
}
on (release) {
_root.store.gotoAndStop(1);
_root.user_so.data.gunUnlocked = _root.gunUnlocked;
_root.user_so.data.gunSpeedLevel = _root.gunSpeedLevel;
_root.user_so.data.gunAmmoLevel = _root.gunAmmoLevel;
_root.user_so.data.gunPowerLevel = _root.gunPowerLevel;
_root.user_so.data.gunSpeedCost = _root.gunSpeedCost;
_root.user_so.data.gunAmmoCost = _root.gunAmmoCost;
_root.user_so.data.gunPowerCost = _root.gunPowerCost;
_root.user_so.data.gunSpeed = _root.gunSpeed;
_root.user_so.data.gunAmmo = _root.gunAmmo;
_root.user_so.data.score = _root.score;
_root.user_so.data.gunTotalAmmo = _root.gunTotalAmmo;
_root.user_so.data.gunPower = _root.gunPower;
_root.user_so.data.money = _root.money;
_root.user_so.data.armorLevel = _root.armorLevel;
_root.user_so.data.attempts = _root.attempts;
_root.pause = false;
}
}
movieClip 837 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 840 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 847 {
}
movieClip 851 {
}
movieClip 853 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
}
movieClip 858 {
}
movieClip 861 {
}
movieClip 862 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
}
movieClip 867 {
}
movieClip 870 {
}
movieClip 871 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
}
movieClip 875 {
}
movieClip 879 {
}
movieClip 880 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
}
movieClip 885 {
}
movieClip 886 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
}
movieClip 890 {
}
movieClip 891 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
}
movieClip 895 {
}
movieClip 896 {
frame 1 {
stop();
}
frame 2 {
stop();
}
frame 3 {
stop();
}
}
movieClip 906 {
}
movieClip 907 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 910 {
}
movieClip 912 {
}
movieClip 913 {
frame 1 {
stop();
}
frame 2 {
function affordGun(number, cost) {
if (_root.money > cost) {
GunBuyClips[number].gotoAndStop(1);
} else {
GunBuyClips[number].gotoAndStop(2);
}
}
function affordArmor(cost) {
if (_root.money > cost) {
armorBuy.gotoAndStop(1);
} else {
armorBuy.gotoAndStop(2);
}
}
function clipCost(clip, costType, gunType) {
if (costType == 1) {
clip.cost.text = _root.gunTotalAmmo[gunType] - _root.gunAmmo[gunType];
} else {
if (costType == 2) {
clip.cost.text = '$' + _root.gunSpeedCost[gunType];
} else {
if (costType == 3) {
clip.cost.text = '$' + _root.gunAmmoCost[gunType];
} else {
clip.cost.text = '$' + _root.gunPowerCost[gunType];
}
}
}
}
function showText(clip, whatToSay, costType, gunType) {
clip.onRollOver = function () {
_root.store.storeKeeper = whatToSay;
clip.gotoAndStop(2);
clipCost(clip, costType, gunType);
};
clip.onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
clip.gotoAndStop(1);
clipCost(clip, costType, gunType);
};
}
function gunUnlocked(gunObtained, gunBuy, gunStuff) {
if (gunObtained == 1) {
gunBuy.unloadMovie();
gunStuff._x = 900;
}
}
function checkAmmo(gun, gunTotalAmmo, gunAmmo) {
if (_root.gunAmmoLevel[gun] < 5) {
gunTotalAmmo.text = _root.gunTotalAmmo[gun];
gunAmmo.text = _root.gunAmmo[gun];
} else {
gunTotalAmmo.text = '∞';
gunAmmo.text = '∞';
}
}
function buyGunRelease(type, gunButton, upgrades, cost) {
gunButton.onRelease = function () {
buyGun(type, gunButton, upgrades, cost);
};
}
function buyReloadRelease(gunType, difference, gunShots, gunReloaded, gunButton) {
gunButton.onRelease = function () {
gunReload(gunType, difference, gunShots, gunReloaded);
};
}
function buySpeedRelease(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunCostText, gunLevelText, gunButton) {
gunButton.onRelease = function () {
gunSpeedUpgrade(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunCostText, gunLevelText);
};
}
function buyAmmoRelease(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunAmmoLevel, gunAmmoCost, gunShots, gunTotalShots, gunReload, gunButton) {
gunButton.onRelease = function () {
gunAmmoUpgrade(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunAmmoLevel, gunAmmoCost, gunShots, gunTotalShots, gunReload);
};
}
function buyPowerRelease(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunPowerCost, gunPowerLevel, gunButton) {
gunButton.onRelease = function () {
gunPowerUpgrade(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunPowerCost, gunPowerLevel);
};
}
function buyGun(type, gunButton, upgrades, cost) {
if (_root.money >= cost) {
_root.money -= cost;
i = 1;
while (i <= 8) {
affordGun(i, GunBuyCost[i]);
++i;
}
affordArmor(armorCost[_root.armorLevel]);
_root.bar.moneyText = _root.money;
_root.gunUnlocked[type] = 1;
gunButton.unloadMovie();
_root.bar.ammoText = _root.gunAmmo[type];
_root.gun = type;
upgrades._x = 900;
_root.player.gun.gotoAndStop(type);
_root.store.storeKeeper = 'Thank you!';
} else {
if (_root.money < cost) {
_root.store.storeKeeper = 'I don\'t think you have enough cash bud.';
} else {
_root.store.storeKeeper = 'I\'d love to take your money but it looks to me like you got this gun already bud.';
}
}
}
function buyArmor(cost) {
if (_root.money >= cost && _root.armorLevel < 5) {
_root.armorLevel += 1;
if (_root.armorLevel < 5) {
armorBuy.costText = '$' + armorCost[_root.armorLevel];
} else {
armorBuy.costText = 'MAXED';
}
_root.money -= cost;
armorBuy.armorText = _root.armorLevel;
i = 1;
while (i <= 8) {
affordGun(i, GunBuyCost[i]);
++i;
}
affordArmor(armorCost[_root.armorLevel]);
if (_root.armorLevel == 2) {
_root.totalHealth = 150;
} else {
if (_root.armorLevel == 3) {
_root.totalHealth = 200;
} else {
if (_root.armorLevel == 4) {
_root.totalHealth = 300;
} else {
if (_root.armorLevel == 5) {
_root.totalHealth = 400;
}
}
}
}
_root.player.type.gotoAndStop(_root.armorLevel);
_root.bar.moneyText = _root.money;
_root.health = _root.totalHealth;
_root.healthFraction = _root.health / _root.totalHealth;
_root.store.healthText = _root.health;
_root.store.totalHealthText = _root.totalHealth;
_root.healthBar.inner._width = 50 * _root.healthFraction;
_root.store.storeKeeper = 'Thank you!';
_root.store.storeKeeper = 'Thank you!';
} else {
if (_root.money < cost) {
_root.store.storeKeeper = 'I don\'t think you have enough cash bud.';
} else {
_root.store.storeKeeper = 'Your armor is maxed out!';
}
}
}
function gunReload(gunType, difference, gunShots, gunReloaded) {
difference = _root.gunTotalAmmo[gunType] - _root.gunAmmo[gunType];
if (_root.money >= difference && _root.gunAmmo[gunType] < _root.gunTotalAmmo[gunType] && _root.gunAmmoLevel[gunType] < 5) {
_root.money -= difference;
i = 1;
while (i <= 8) {
affordGun(i, GunBuyCost[i]);
++i;
}
affordArmor(armorCost[_root.armorLevel]);
_root.gunAmmo[gunType] += difference;
_root.bar.moneyText = _root.money;
if (_root.gun == gunType) {
_root.bar.ammoText = _root.gunAmmo[gunType];
}
gunShots.text = _root.gunAmmo[gunType];
gunReloaded.text = 0;
_root.store.storeKeeper = 'Thank you!';
} else {
if (_root.money < difference) {
_root.store.storeKeeper = 'I don\'t think you have enough cash bud.';
} else {
_root.store.storeKeeper = 'I\'d love to take your money but it looks to me like you got enough ammo already bud.';
}
}
}
function gunSpeedUpgrade(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunCostText, gunLevelText) {
if (_root.money >= _root.gunSpeedCost[gunType] && _root.gunSpeedLevel[gunType] < 5) {
_root.money -= _root.gunSpeedCost[gunType];
i = 1;
while (i <= 8) {
affordGun(i, GunBuyCost[i]);
++i;
}
affordArmor(armorCost[_root.armorLevel]);
_root.gunSpeedLevel[gunType] += 1;
if (_root.gunSpeedLevel[gunType] < 5) {
_root.gunSpeedCost[gunType] = cost1 * _root.gunSpeedLevel[gunType] * (_root.gunSpeedLevel[gunType] / 2);
} else {
_root.gunSpeedCost[gunType] = 'FULL';
}
gunLevelText.text = _root.gunSpeedLevel[gunType];
gunCostText.text = '$' + _root.gunSpeedCost[gunType];
if (_root.gunSpeedLevel[gunType] == 2) {
_root.gunSpeed[gunType] = upgrade1;
} else {
if (_root.gunSpeedLevel[gunType] == 3) {
_root.gunSpeed[gunType] = upgrade2;
} else {
if (_root.gunSpeedLevel[gunType] == 4) {
_root.gunSpeed[gunType] = upgrade3;
} else {
if (_root.gunSpeedLevel[gunType] == 5) {
_root.gunSpeed[gunType] = upgrade4;
}
}
}
}
_root.bar.moneyText = _root.money;
_root.store.storeKeeper = 'Thank you!';
} else {
if (_root.gunSpeedLevel[gunType] < 5) {
_root.store.storeKeeper = 'I don\'t think you have enough cash bud.';
} else {
_root.store.storeKeeper = 'Your gun\'s all maxed out!';
}
}
}
function gunAmmoUpgrade(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunAmmoLevel, gunAmmoCost, gunShots, gunTotalShots, gunReload) {
if (_root.money >= _root.gunAmmoCost[gunType] && _root.gunAmmoLevel[gunType] < 5) {
_root.money -= _root.gunAmmoCost[gunType];
i = 1;
while (i <= 8) {
affordGun(i, GunBuyCost[i]);
++i;
}
affordArmor(armorCost[_root.armorLevel]);
_root.gunAmmoLevel[gunType] += 1;
if (_root.gunAmmoLevel[gunType] < 5) {
_root.gunAmmoCost[gunType] = cost1 * _root.gunAmmoLevel[gunType] * (_root.gunAmmoLevel[gunType] / 2);
} else {
_root.gunAmmoCost[gunType] = 'FULL';
}
if (_root.gunAmmoLevel[gunType] == 2) {
_root.gunAmmo[gunType] = upgrade1;
} else {
if (_root.gunAmmoLevel[gunType] == 3) {
_root.gunAmmo[gunType] = upgrade2;
} else {
if (_root.gunAmmoLevel[gunType] == 4) {
_root.gunAmmo[gunType] = upgrade3;
} else {
if (_root.gunAmmoLevel[gunType] == 5) {
_root.gunAmmo[gunType] = upgrade4;
}
}
}
}
_root.gunTotalAmmo[gunType] = _root.gunAmmo[gunType];
shots = _root.gunTotalAmmo[gunType];
if (_root.gunAmmoLevel[gunType] == 5) {
shots = '∞';
}
gunAmmoLevel.text = _root.gunAmmoLevel[gunType];
gunAmmoCost.text = '$' + _root.gunAmmoCost[gunType];
gunShots.text = shots;
gunTotalShots.text = shots;
gunReload.text = '0';
_root.bar.moneyText = _root.money;
_root.store.storeKeeper = 'Thank you!';
if (_root.gunAmmoLevel[gunType] != 5) {
_root.bar.ammoText = _root.gunAmmo[gunType];
} else {
_root.bar.ammoText = '∞';
}
} else {
if (_root.gunAmmoLevel[gunType] < 5) {
_root.store.storeKeeper = 'I don\'t think you have enough cash bud.';
} else {
_root.store.storeKeeper = 'Your gun\'s all maxed out!';
}
}
}
function gunPowerUpgrade(gunType, cost1, upgrade1, upgrade2, upgrade3, upgrade4, gunPowerCost, gunPowerLevel) {
if (_root.money >= _root.gunPowerCost[gunType] && _root.gunPowerLevel[gunType] < 5) {
_root.money -= _root.gunPowerCost[gunType];
i = 1;
while (i <= 8) {
affordGun(i, GunBuyCost[i]);
++i;
}
affordArmor(armorCost[_root.armorLevel]);
_root.gunPowerLevel[gunType] += 1;
if (_root.gunPowerLevel[gunType] < 5) {
_root.gunPowerCost[gunType] = cost1 * _root.gunPowerLevel[gunType] * (_root.gunPowerLevel[gunType] / 2);
} else {
_root.gunPowerCost[gunType] = 'FULL';
}
gunPowerLevel.text = _root.gunPowerLevel[gunType];
gunPowerCost.text = '$' + _root.gunPowerCost[gunType];
if (_root.gunPowerLevel[gunType] == 2) {
_root.gunPower[gunType] = upgrade1;
} else {
if (_root.gunPowerLevel[gunType] == 3) {
_root.gunPower[gunType] = upgrade2;
} else {
if (_root.gunPowerLevel[gunType] == 4) {
_root.gunPower[gunType] = upgrade3;
} else {
if (_root.gunPowerLevel[gunType] == 5) {
_root.gunPower[gunType] = upgrade4;
}
}
}
}
_root.bar.moneyText = _root.money;
_root.store.storeKeeper = 'Thank you!';
} else {
if (_root.gunPowerLevel[gunType] < 5) {
_root.store.storeKeeper = 'I don\'t think you have enough cash bud.';
} else {
_root.store.storeKeeper = 'Your gun\'s all maxed out!';
}
}
}
stop();
buySpeedRelease(1, 50, 9, 8, 7, 5, pistolSpeed.cost, pistolSpeedLevel, pistolSpeed);
buySpeedRelease(2, 100, 4.5, 4, 3.5, 3, uziSpeed.cost, uziSpeedLevel, uziSpeed);
buySpeedRelease(3, 500, 11, 10, 9, 8, shotgunSpeed.cost, shotgunSpeedLevel, shotgunSpeed);
buySpeedRelease(4, 1000, 4.5, 4, 3.5, 3, dualUziSpeed.cost, dualUziSpeedLevel, dualUziSpeed);
buySpeedRelease(5, 2000, 9, 8, 7, 6, magnumSpeed.cost, magnumSpeedLevel, magnumSpeed);
buySpeedRelease(6, 3000, 2.2, 2, 1.8, 1.5, minigunSpeed.cost, minigunSpeedLevel, minigunSpeed);
buySpeedRelease(7, 4000, 9, 8, 7, 6, dualMagnumSpeed.cost, dualMagnumSpeedLevel, dualMagnumSpeed);
buySpeedRelease(8, 6000, 2.2, 2, 1.8, 1.5, dualMinigunSpeed.cost, dualMinigunSpeedLevel, dualMinigunSpeed);
buyAmmoRelease(2, 130, 300, 500, 900, 99999, uziAmmoLevel, uziAmmo.cost, uziShots, uziTotalShots, uziReload.cost, uziAmmo);
buyAmmoRelease(3, 750, 300, 550, 900, 99999, shotgunAmmoLevel, shotgunAmmo.cost, shotgunShots, shotgunTotalShots, shotgunReload.cost, shotgunAmmo);
buyAmmoRelease(4, 1250, 300, 550, 900, 99999, dualUziAmmoLevel, dualUziAmmo.cost, dualUziShots, dualUziTotalShots, dualUziReload.cost, dualUziAmmo);
buyAmmoRelease(5, 2500, 300, 550, 900, 99999, magnumAmmoLevel, magnumAmmo.cost, magnumShots, magnumTotalShots, magnumReload.cost, magnumAmmo);
buyAmmoRelease(6, 3750, 300, 550, 900, 99999, minigunAmmoLevel, minigunAmmo.cost, minigunShots, minigunTotalShots, minigunReload.cost, minigunAmmo);
buyAmmoRelease(7, 5000, 300, 550, 900, 99999, dualMagnumAmmoLevel, dualMagnumAmmo.cost, dualMagnumShots, dualMagnumTotalShots, dualMagnumReload.cost, dualMagnumAmmo);
buyAmmoRelease(8, 7500, 300, 550, 900, 99999, dualMinigunAmmoLevel, dualMinigunAmmo.cost, dualMinigunShots, dualMinigunTotalShots, dualMinigunReload.cost, dualMinigunAmmo);
buyPowerRelease(1, 100, 1.5, 2, 2.5, 3, pistolPower.cost, pistolPowerLevel, pistolPower);
buyPowerRelease(2, 150, 1.2, 1.6, 2, 2.4, uziPower.cost, uziPowerLevel, uziPower);
buyPowerRelease(3, 1000, 2.3, 2.7, 3.2, 4, shotgunPower.cost, shotgunPowerLevel, shotgunPower);
buyPowerRelease(4, 1500, 1.8, 2.2, 2.6, 3, dualUziPower.cost, dualUziPowerLevel, dualUziPower);
buyPowerRelease(5, 3000, 11, 11.5, 12, 12.5, magnumPower.cost, magnumPowerLevel, magnumPower);
buyPowerRelease(6, 4500, 4.5, 5, 5.5, 6, minigunPower.cost, minigunPowerLevel, minigunPower);
buyPowerRelease(7, 6000, 14, 14.5, 15, 15.5, dualMagnumPower.cost, dualMagnumPowerLevel, dualMagnumPower);
buyPowerRelease(8, 9000, 5.5, 6, 6.5, 7, dualMinigunPower.cost, dualMinigunPowerLevel, dualMinigunPower);
armorCost = new Array(0, 500, 5000, 30000, 90000, 100000);
ReloadClips = new Array(0, 0, uziReload, shotgunReload, dualUziReload, magnumReload, minigunReload, dualMagnumReload, dualMinigunReload);
SpeedClips = new Array(0, pistolSpeed, uziSpeed, shotgunSpeed, dualUziSpeed, magnumSpeed, minigunSpeed, dualMagnumSpeed, dualMinigunSpeed);
AmmoClips = new Array(0, 0, uziAmmo, shotgunAmmo, dualUziAmmo, magnumAmmo, minigunAmmo, dualMagnumAmmo, dualMinigunAmmo);
PowerClips = new Array(0, pistolPower, uziPower, shotgunPower, dualUziPower, magnumPower, minigunPower, dualMagnumPower, dualMinigunPower);
ReloadShotClips = new Array(0, 0, uziTotalShots, shotgunTotalShots, dualUziTotalShots, magnumTotalShots, minigunTotalShots, dualMagnumTotalShots, dualMinigunTotalShots, uziShots, shotgunShots, dualUziShots, magnumShots, minigunShots, dualMagnumShots, dualMinigunShots);
SpeedLevelClips = new Array(0, pistolSpeedLevel, uziSpeedLevel, shotgunSpeedLevel, dualUziSpeedLevel, magnumSpeedLevel, minigunSpeedLevel, dualMagnumSpeedLevel, dualMinigunSpeedLevel);
AmmoLevelClips = new Array(0, 0, uziAmmoLevel, shotgunAmmoLevel, dualUziAmmoLevel, magnumAmmoLevel, minigunAmmoLevel, dualMagnumAmmoLevel, dualMinigunAmmoLevel);
PowerLevelClips = new Array(0, pistolPowerLevel, uziPowerLevel, shotgunPowerLevel, dualUziPowerLevel, magnumPowerLevel, minigunPowerLevel, dualMagnumPowerLevel, dualMinigunPowerLevel);
GunBuyClips = new Array(0, 0, uziBuy, shotgunBuy, dualUziBuy, magnumBuy, minigunBuy, dualMagnumBuy, dualMinigunBuy);
GunStuffClips = new Array(0, 0, uziStuff, shotgunStuff, dualUziStuff, magnumStuff, minigunStuff, dualMagnumStuff, dualMinigunStuff);
GunReloadCost = new Array(0, 0, uziReload.cost, shotgunReload.cost, dualUziReload.cost, magnumReload.cost, minigunReload.cost, dualMagnumReload.cost, dualMinigunReload.cost);
GunBuyCost = new Array(0, 0, 1000, 5000, 10000, 15000, 25000, 40000, 100000);
if (_root.armorLevel < 5) {
armorBuy.costText = '$' + armorCost[_root.armorLevel];
} else {
armorBuy.costText = 'MAXED';
}
armorBuy.armorText = _root.armorLevel;
affordArmor(armorCost[_root.armorLevel]);
i = 1;
while (i <= 8) {
affordGun(i, GunBuyCost[i]);
showText(ReloadClips[i], 'Reload your gun for the cost of however many bullets you need.', 1, i);
showText(SpeedClips[i], 'This\'ll make your gun a bit faster.', 2, i);
showText(AmmoClips[i], 'This upgrade will increase the ammo of your gun.', 3, i);
showText(PowerClips[i], 'This upgrade will increase the power of your shot.', 4, i);
SpeedLevelClips[i].text = _root.gunSpeedLevel[i];
AmmoLevelClips[i].text = _root.gunAmmoLevel[i];
PowerLevelClips[i].text = _root.gunPowerLevel[i];
checkAmmo(i, ReloadShotClips[i], ReloadShotClips[i + 7]);
gunUnlocked(_root.gunUnlocked[i], GunBuyClips[i], GunStuffClips[i]);
buyGunRelease(i, GunBuyClips[i], GunStuffClips[i], GunBuyCost[i]);
buyReloadRelease(i, _root.gunTotalAmmo[i] - _root.gunAmmo[i], ReloadShotClips[i + 7], GunReloadCost[i], ReloadClips[i]);
ReloadClips[i].cost.text = _root.gunTotalAmmo[i] - _root.gunAmmo[i];
SpeedClips[i].cost.text = '$' + _root.gunSpeedCost[i];
AmmoClips[i].cost.text = '$' + _root.gunAmmoCost[i];
PowerClips[i].cost.text = '$' + _root.gunPowerCost[i];
++i;
}
armorBuy.onRelease = function () {
buyArmor(armorCost[_root.armorLevel]);
};
healthText = _root.health;
totalHealthText = _root.totalHealth;
_root.store.storeKeeper = 'Welcome to the store.';
}
instance magnumReload of movieClip 762 {
onClipEvent (rollOver) {
_root.store.storeKeeper = 'I\'ll max out your ammo for the cost of however many bullets you need.';
}
onClipEvent (rollOut) {
_root.store.storeKeeper = 'Welcome to the store, what\'re you looking for?';
}
}
instance dualUziReload of movieClip 762 {
onClipEvent (rollOver) {
_root.store.storeKeeper = 'I\'ll max out your ammo for the cost of however many bullets you need.';
}
onClipEvent (rollOut) {
_root.store.storeKeeper = 'Welcome to the store, what\'re you looking for?';
}
}
instance uziBuy of movieClip 853 {
onClipEvent (enterFrame) {
if (this._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'This gun fires twice as fast as that pistol of yours, but with less power.';
this.gotoAndStop(3);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.gotoAndStop(1);
};
}
}
}
instance shotgunBuy of movieClip 862 {
onClipEvent (enterFrame) {
if (this._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'This gun packs impressive fire power and is devastating at close range!';
this.gotoAndStop(3);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.gotoAndStop(1);
};
}
}
}
instance minigunBuy of movieClip 871 {
onClipEvent (enterFrame) {
if (this._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'This gun fires at insane speeds and retains impressive power.';
this.gotoAndStop(3);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.gotoAndStop(1);
};
}
}
}
instance magnumBuy of movieClip 880 {
onClipEvent (enterFrame) {
if (this._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'This gun is like your pistol but with a huge boost in fire power.';
this.gotoAndStop(3);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.gotoAndStop(1);
};
}
}
}
instance dualMagnumBuy of movieClip 886 {
onClipEvent (enterFrame) {
if (this._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'These two guns are like your pistol but with a huge boost in fire power.';
this.gotoAndStop(3);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.gotoAndStop(1);
};
}
}
}
instance dualUziBuy of movieClip 891 {
onClipEvent (enterFrame) {
if (this._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'These two guns fire twice as fast as a pistol and are still pretty strong.';
this.gotoAndStop(3);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.gotoAndStop(1);
};
}
}
}
instance dualMinigunBuy of movieClip 896 {
onClipEvent (enterFrame) {
if (this._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'These two guns fire at insane speeds and retain impressive power.';
this.gotoAndStop(3);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.gotoAndStop(1);
};
}
}
}
instance armorBuy of movieClip 912 {
onClipEvent (enterFrame) {
if (this.glow._currentframe == 1) {
onRollOver = function () {
_root.store.storeKeeper = 'Armor will improve your health allowing you to get hit more.';
this.glow.gotoAndStop(2);
};
onRollOut = function () {
_root.store.storeKeeper = 'Welcome to the store.';
this.glow.gotoAndStop(1);
};
}
}
}
}
movieClip 915 {
frame 1 {
stop();
}
frame 2 {
stop();
this._alpha = 100;
this.counter = 0;
onEnterFrame = function () {
++counter;
if (counter >= 100) {
if (_root.firstTime != true) {
this._alpha -= 0.04;
} else {
this._alpha -= 1;
}
}
if (this._alpha <= 0) {
gotoAndStop(1);
_root.firstTime = true;
}
};
}
}
// unknown tag 88 length 102
button 946 {
on (release) {
_root.pause = false;
_root.pauseFrame.gotoAndStop(1);
}
}
movieClip 955 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 962 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 973 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 979 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 982 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 983 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 984 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
button 987 {
on (release) {
_root.leavingGame = true;
_root.pauseFrame.gotoAndStop(1);
_root.gotoAndStop('menu');
}
}
button 992 {
on (release) {
_root.pauseFrame.gotoAndStop(1);
_root.pause = false;
_root.health = _root.totalHealth;
_root.healthBar.inner._width = 50;
_root.invul = true;
_root.invul2 = true;
_root.timer1 = 0;
_root.store.gotoAndStop(2);
_root.zombiesDead = _root.oldZombies;
_root.level -= 1;
if (_root.rageMode == true) {
_root.rage = 100;
}
}
}
button 995 {
on (release) {
_root.leavingGame = true;
_root.pauseFrame.gotoAndStop(1);
_root.gotoAndStop('menu');
}
}
button 1004 {
on (release) {
_root.pauseFrame.gotoAndStop(1);
_root.pause = false;
_root.health = _root.totalHealth;
_root.healthBar.inner._width = 50;
_root.invul = true;
_root.invul2 = true;
_root.timer1 = 0;
_root.zombiesDead = _root.oldZombies;
_root.level -= 1;
_root.store._y = 70;
_root.bar.levelText = level;
_root.zombieTimer = 200;
_root.zombiesDead = 0;
_root.zombiesCreated = 0;
_root.set = false;
if (_root.rageMode == true) {
_root.rage = 100;
}
}
}
button 1006 {
on (release) {
_root.pauseFrame.gotoAndStop(1);
_root.pause = false;
_root.health = _root.totalHealth;
_root.healthBar.inner._width = 50;
_root.invul = true;
_root.invul2 = true;
_root.timer1 = 0;
_root.zombiesDead = _root.oldZombies;
_root.level -= 1;
if (_root.rageMode == true) {
_root.rage = 100;
}
}
}
movieClip 1015 {
frame 1 {
stop();
}
frame 2 {
stop();
_root._x = 0;
_root._y = 0;
_root.rageBg.gotoAndStop(1);
if (_root.setHigh != true && _root.setLow != true) {
medium.gotoAndStop(2);
high.gotoAndStop(1);
low.gotoAndStop(1);
}
if (_root.setLow == true) {
low.gotoAndStop(2);
medium.gotoAndStop(1);
high.gotoAndStop(1);
}
if (_root.setHigh == true) {
high.gotoAndStop(2);
medium.gotoAndStop(1);
low.gotoAndStop(1);
}
if (_root.bloodOn != true) {
bloodButtoff.gotoAndStop(2);
bloodButton.gotoAndStop(1);
}
if (_root.bloodOn == true) {
bloodButton.gotoAndStop(2);
bloodButtoff.gotoAndStop(1);
}
if (_root.mute != true) {
audioOn.gotoAndStop(2);
audioOff.gotoAndStop(1);
}
if (_root.mute == true) {
audioOff.gotoAndStop(2);
audioOn.gotoAndStop(1);
}
if (_root.shakeOff != true) {
shakeOn.gotoAndStop(2);
shakeOff.gotoAndStop(1);
}
if (_root.shakeOff == true) {
shakeOff.gotoAndStop(2);
shakeOn.gotoAndStop(1);
}
}
instance high of movieClip 955 {
onClipEvent (release) {
_root._quality = 'HIGH';
this.gotoAndStop(2);
_parent.medium.gotoAndStop(1);
_parent.low.gotoAndStop(1);
_root.setHigh = true;
_root.setLow = false;
}
}
instance low of movieClip 962 {
onClipEvent (release) {
_root._quality = 'LOW';
this.gotoAndStop(2);
_parent.high.gotoAndStop(1);
_parent.medium.gotoAndStop(1);
_root.setLow = true;
_root.setHigh = false;
}
}
instance medium of movieClip 973 {
onClipEvent (release) {
_root._quality = 'MEDIUM';
this.gotoAndStop(2);
_parent.high.gotoAndStop(1);
_parent.low.gotoAndStop(1);
_root.setHigh = false;
_root.setLow = false;
}
}
instance bloodButton of movieClip 979 {
onClipEvent (release) {
this.gotoAndStop(2);
_parent.bloodButtoff.gotoAndStop(1);
_root.bloodOn = true;
}
}
instance bloodButtoff of movieClip 982 {
onClipEvent (release) {
this.gotoAndStop(2);
_parent.bloodButton.gotoAndStop(1);
_root.bloodOn = false;
}
}
instance audioOn of movieClip 983 {
onClipEvent (release) {
this.gotoAndStop(2);
_parent.audioOff.gotoAndStop(1);
_root.mute = false;
}
}
instance audioOff of movieClip 984 {
onClipEvent (release) {
this.gotoAndStop(2);
_parent.audioOn.gotoAndStop(1);
_root.mute = true;
}
}
frame 3 {
stop();
_root._x = 0;
_root._y = 0;
longCombo.text = _root.highCombo;
killsRound.text = _root.zombiesKilled;
moneyEarned.text = _root.moneyEarned;
}
frame 4 {
stop();
longCombo.text = _root.highCombo;
killsRound.text = _root.zombiesKilled;
moneyEarned.text = _root.moneyEarned;
attempts.text = _root.attempts;
}
}
movieClip 1017 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 1019 {
}
movieClip 1022 {
frame 1 {
stop();
}
}
movieClip 1024 {
frame 1 {
stop();
}
frame 30 {
stop();
}
}
movieClip 1026 {
}
movieClip 1028 {
}
movieClip 1029 {
frame 1 {
stop();
}
}
movieClip 1032 {
}
movieClip 1036 {
frame 1 {
stop();
}
}
movieClip 1039 {
}
frame 5 {
stop();
System.security.allowDomain('server.cpmstar.com');
scored.text = _root.score;
aSound.stop();
aSound2.stop();
aSound3.stop();
aSound5.stop();
Mouse.show();
removeMovieClip(player);
removeMovieClip(arena);
removeMovieClip(aim);
removeMovieClip(bar);
removeMovieClip(radar);
removeMovieClip(wc);
removeMovieClip(store);
removeMovieClip(textBar);
removeMovieClip(pauseFrame);
removeMovieClip(rageBg);
removeMovieClip(healthBar);
removeMovieClip(miniA);
removeMovieClip(bda);
removeMovieClip(sp);
removeMovieClip(newZombieBox);
removeMovieClip(bossHealth);
removeMovieClip(textClip);
removeMovieClip(textClip2);
removeMovieClip(textClip3);
removeMovieClip(textClip4);
removeMovieClip(medalArea);
onEnterFrame = function () {
if (wasPlayed == true) {
i = zombies.length - 1;
while (i >= 0) {
zombies[i].removeMovieClip();
zombieDots[i].removeMovieClip();
--i;
}
i = bullets.length - 1;
while (i >= 0) {
bullets[i].removeMovieClip();
--i;
}
}
if (instructions._currentframe == 2) {
playGame.enabled = false;
instructionsGame.enabled = false;
moreGame.enabled = false;
} else {
playGame.enabled = true;
instructionsGame.enabled = true;
moreGame.enabled = true;
}
};
submitScore(_root.score);
gotoFinishPage();
}
movieClip 1041 {
}
instance healthBar of movieClip 1041 {
onClipEvent (enterFrame) {
this._y = _root.player._y - 37;
this._x = _root.player._x - 26;
}
}
button 1049 {
on (release) {
_root.gotoAndStop('menu');
_root.wasPlayed = false;
}
}
button 1053 {
on (release) {
getURL('http://playtowerdefensegames.com', '_blank');
}
}