Frame 1
Stage.showMenu = false;
threeTimesInOneSession = 0;
Mouse.show();
Instance of Symbol 101 MovieClip in Frame 1
onClipEvent (load) {
MAXeyeMovement = 8;
distanceFromEye = 1;
ovality = 1.5;
origin = {x:39.1, y:211.8};
}
onClipEvent (mouseMove) {
xdiff = _parent._xmouse - origin.x;
ydiff = _parent._ymouse - origin.y;
radius = Math.min(Math.max(Math.sqrt((xdiff * xdiff) + (ydiff * ydiff)) / distanceFromEye, 0), MAXeyeMovement);
angle = Math.atan2(ydiff, xdiff);
_x = (((Math.cos(angle) * radius) * ovality) + origin.x);
_y = ((Math.sin(angle) * radius) + origin.y);
updateAfterEvent();
}
Instance of Symbol 103 MovieClip in Frame 1
onClipEvent (load) {
MAXeyeMovement = 10;
distanceFromEye = 1;
ovality = 1.5;
origin = {x:87.4, y:208.7};
}
onClipEvent (mouseMove) {
xdiff = _parent._xmouse - origin.x;
ydiff = _parent._ymouse - origin.y;
radius = Math.min(Math.max(Math.sqrt((xdiff * xdiff) + (ydiff * ydiff)) / distanceFromEye, 1), MAXeyeMovement);
angle = Math.atan2(ydiff, xdiff);
_x = (((Math.cos(angle) * radius) * ovality) + origin.x);
_y = ((Math.sin(angle) * radius) + origin.y);
updateAfterEvent();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 1
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 2
mochi.as2.MochiServices.connect("ec39355cfa47fbfe");
com.newgrounds.API.connect(root, "32309:IAFc5nmL", "gMpNTfgacUFe57lmfmJnSVJlURBSwbRQ");
Frame 12
Mouse.show();
score = 0;
scorebox = score;
massMurdererCount = 0;
stop();
Frame 13
Mouse.show();
stop();
Frame 14
Mouse.show();
Frame 15
Mouse.show();
Frame 22
Mouse.show();
stop();
Frame 23
gotoAndPlay (26);
Frame 24
gotoAndStop (698);
Frame 25
stop();
score = 0;
Instance of Symbol 101 MovieClip in Frame 25
onClipEvent (load) {
MAXeyeMovement = 8;
distanceFromEye = 1;
ovality = 1.5;
origin = {x:39.1, y:211.8};
}
onClipEvent (mouseMove) {
xdiff = _parent._xmouse - origin.x;
ydiff = _parent._ymouse - origin.y;
radius = Math.min(Math.max(Math.sqrt((xdiff * xdiff) + (ydiff * ydiff)) / distanceFromEye, 0), MAXeyeMovement);
angle = Math.atan2(ydiff, xdiff);
_x = (((Math.cos(angle) * radius) * ovality) + origin.x);
_y = ((Math.sin(angle) * radius) + origin.y);
updateAfterEvent();
}
Instance of Symbol 103 MovieClip in Frame 25
onClipEvent (load) {
MAXeyeMovement = 10;
distanceFromEye = 1;
ovality = 1.5;
origin = {x:87.4, y:208.7};
}
onClipEvent (mouseMove) {
xdiff = _parent._xmouse - origin.x;
ydiff = _parent._ymouse - origin.y;
radius = Math.min(Math.max(Math.sqrt((xdiff * xdiff) + (ydiff * ydiff)) / distanceFromEye, 1), MAXeyeMovement);
angle = Math.atan2(ydiff, xdiff);
_x = (((Math.cos(angle) * radius) * ovality) + origin.x);
_y = ((Math.sin(angle) * radius) + origin.y);
updateAfterEvent();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 25
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 26
stopAllSounds();
_root.score = _root.score + 0;
_root.scorebox = _root.score;
score = 0;
nextf = 0;
comboc = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 26
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 26
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 26
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 79
stop();
Instance of Symbol 527 MovieClip in Frame 79
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 80
stop();
threeTimesInOneSession = threeTimesInOneSession + 100.33;
trace(threeTimesInOneSession);
Frame 81
function onMouseDown() {
if (shield.hitTest(_xmouse, _ymouse, true)) {
holesMade++;
if (holesMade > 5) {
return(undefined);
}
var _local1 = holes[holesMade];
_local1._visible = true;
_local1._x = shield._xmouse;
_local1._y = shield._ymouse;
}
}
holes = [];
holesMade = 0;
i = 1;
while (i <= 5) {
holes[i] = shield["hole" + i];
holes[i]._visible = false;
i++;
}
nextf = 0;
comboc = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 81
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 81
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 81
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 122
stop();
Instance of Symbol 630 MovieClip in Frame 122
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 123
stop();
Frame 124
comboc = 0;
nextf = 0;
stopAllSounds();
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 124
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Instance of Symbol 355 MovieClip "mb" in Frame 124
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 124
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Frame 166
stop();
Instance of Symbol 527 MovieClip in Frame 166
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 167
stop();
Frame 168
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 168
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 168
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 168
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 193
stop();
Instance of Symbol 527 MovieClip in Frame 193
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 194
stop();
Frame 195
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 195
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 195
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 195
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 238
stop();
Instance of Symbol 527 MovieClip in Frame 238
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 239
stop();
Frame 240
comboc = 0;
nextf = 0;
stopAllSounds();
Instance of Symbol 355 MovieClip "mb" in Frame 240
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 240
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 240
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 275
stop();
Instance of Symbol 527 MovieClip in Frame 275
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 276
stop();
Frame 277
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 277
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 277
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 277
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 312
stop();
Instance of Symbol 527 MovieClip in Frame 312
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 313
stop();
Frame 314
_quality = "Low";
nextf = 0;
convertedHeathen = 0;
trace(convertedHeathen);
stopAllSounds();
stop();
Instance of Symbol 355 MovieClip "mb" in Frame 314
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 314
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Instance of Symbol 1127 MovieClip in Frame 315
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 1129 MovieClip in Frame 315
onClipEvent (enterFrame) {
_x = _root._xmouse;
}
Frame 348
trace(convertedHeathen);
Frame 374
_quality = "High";
stop();
trace(convertedHeathen);
if (convertedHeathen == 8) {
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Bible Blasters - Billy Graham");
}
}
trace(convertedHeathen);
Instance of Symbol 381 MovieClip in Frame 374
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Frame 375
comboc = 0;
nextf = 0;
com.newgrounds.API.unlockMedal("Springfield");
Instance of Symbol 355 MovieClip "mb" in Frame 375
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 375
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 375
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 410
stop();
Instance of Symbol 527 MovieClip in Frame 410
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 411
stop();
Frame 412
comboc = 0;
nextf = 0;
stopAllSounds();
Instance of Symbol 355 MovieClip "mb" in Frame 412
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 412
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 412
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 448
stop();
Instance of Symbol 527 MovieClip in Frame 448
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 449
stop();
Frame 450
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 450
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 450
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 450
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 491
stop();
Instance of Symbol 527 MovieClip in Frame 491
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 492
stop();
Frame 493
stopAllSounds();
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 493
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 493
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 493
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 534
stop();
Instance of Symbol 527 MovieClip in Frame 534
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 535
stop();
Frame 536
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 536
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 536
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 536
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 567
stop();
Instance of Symbol 630 MovieClip in Frame 567
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 568
stop();
Frame 569
comboc = 0;
nextf = 0;
stopAllSounds();
Instance of Symbol 355 MovieClip "mb" in Frame 569
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 569
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 569
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 602
stop();
Instance of Symbol 630 MovieClip in Frame 602
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 603
stop();
Frame 604
stopAllSounds();
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 604
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 604
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 604
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 630
stop();
Instance of Symbol 527 MovieClip in Frame 630
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 631
stop();
Frame 632
comboc = 0;
nextf = 0;
fullFamily = 4;
Instance of Symbol 355 MovieClip "mb" in Frame 632
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 632
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 632
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 656
stop();
Instance of Symbol 527 MovieClip in Frame 656
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 657
stop();
if (_root.fullFamily == 4) {
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Family Matters");
}
}
trace(massMurdererCount);
Frame 658
comboc = 0;
nextf = 0;
Instance of Symbol 355 MovieClip "mb" in Frame 658
onClipEvent (load) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
}
Instance of Symbol 381 MovieClip in Frame 658
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 658
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 694
stop();
Instance of Symbol 630 MovieClip in Frame 694
onClipEvent (enterFrame) {
if (_root.nextf >= 4) {
_root.nextFrame();
}
}
Frame 695
stop();
Frame 696
stop();
mochi.as2.MochiServices.connect("ec39355cfa47fbfe");
Instance of Symbol 381 MovieClip in Frame 696
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 696
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 697
stop();
Frame 698
stop();
if (threeTimesInOneSession == 3300.99) {
com.newgrounds.API.unlockMedal("Brutal Killer");
}
trace(threeTimesInOneSession);
Mouse.show();
Frame 699
gotoAndStop (698);
_root.mb._visible = false;
_root.ss._visible = false;
_root.sc._visible = false;
_root.pn._visible = false;
_root.ps._visible = false;
Instance of Symbol 381 MovieClip in Frame 699
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Frame 700
stop();
Mouse.show();
var o = {n:[3, 13, 14, 13, 4, 4, 11, 5, 12, 9, 15, 12, 8, 15, 15, 10], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var boardID = o.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:"233ee97f2bba6a25", score:scorebox, name:playername});
Frame 701
gotoAndStop (698);
_root.mb._visible = false;
_root.ss._visible = false;
_root.sc._visible = false;
_root.pn._visible = false;
_root.ps._visible = false;
Instance of Symbol 381 MovieClip in Frame 701
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 381 MovieClip in Frame 702
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 702
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 703
stop();
Instance of Symbol 381 MovieClip in Frame 703
onClipEvent (load) {
startDrag (this, true);
Mouse.hide();
stop();
}
onClipEvent (mouseDown) {
nextFrame();
}
onClipEvent (mouseUp) {
prevFrame();
}
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 703
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Frame 704
stop();
trace(this._currentframe);
Frame 705
stop();
Mouse.show();
Instance of Symbol 165 MovieClip [MedalPopup] in Frame 705
//component parameters
onClipEvent (construct) {
alwaysOnTop = "true";
}
Symbol 8 MovieClip Frame 1
stop();
Symbol 18 MovieClip Frame 1
stop();
Symbol 19 MovieClip [Preloader] Frame 1
function enterFrameHandler() {
var _local2 = 0;
_local2 = _root.getBytesLoaded() / _root.getBytesTotal();
if (loadingBar) {
loadingBar.gotoAndStop(int(_local2 * (loadingBar._totalframes - 1)) + 1);
}
if ((_local2 >= 1) && (haltComplete != true)) {
onEnterFrame = null;
gotoAndStop ("loaded");
}
}
stop();
var autoPlay;
var className;
var haltComplete;
onEnterFrame = enterFrameHandler;
Symbol 19 MovieClip [Preloader] Frame 10
function _onPlayClick() {
_root.nextFrame();
_root.play();
_parent._onLoaded();
}
if (playButton) {
playButton.onRelease = _onPlayClick;
playButton.stop();
}
if (autoPlay) {
_onPlayClick(null);
}
Symbol 21 MovieClip [Newgrounds API Classes] Frame 1
#initclip 33
Object.registerClass("Newgrounds API Classes", com.newgrounds.shims.APIShim);
#endinitclip
Symbol 76 MovieClip [FlashAd] Frame 1
#initclip 34
Object.registerClass("FlashAd", com.newgrounds.components.FlashAdBase);
#endinitclip
function initPlayButton() {
if (this.playButton) {
this.playButton.onRelease = onPlayClick;
if (!this.showPlayButton) {
this.playButton._visible = false;
}
}
}
function onPlayClick() {
removeAd();
_visible = false;
}
stop();
Symbol 76 MovieClip [FlashAd] Frame 2
initPlayButton();
Symbol 76 MovieClip [FlashAd] Frame 10
initPlayButton();
Symbol 76 MovieClip [FlashAd] Frame 20
initPlayButton();
Symbol 77 MovieClip [APIConnector] Frame 1
function _onLoaded() {
gotoAndStop ("invisible");
if (_redirect) {
com.newgrounds.API.loadOfficialVersion();
return(undefined);
}
}
function _apiConnect() {
var _local2 = com.newgrounds.API;
if (_local2 && (!_local2.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 :
_local2.debugMode = _local2.RELEASE_MODE;
break;
case "Simulate Logged-in User" :
_local2.debugMode = _local2.DEBUG_MODE_LOGGED_IN;
break;
case "Simulate Logged-out User" :
_local2.debugMode = _local2.DEBUG_MODE_LOGGED_OUT;
break;
case "Simulate New Version" :
_local2.debugMode = _local2.DEBUG_MODE_NEW_VERSION;
break;
case "Simulate Host Blocked" :
_local2.debugMode = _local2.DEBUG_MODE_HOST_BLOCKED;
}
if (loader) {
loader.haltComplete = true;
}
_local2.addEventListener(com.newgrounds.APIEvent.API_CONNECTED, _onConnected);
_local2.connect(_root, apiId, encryptionKey, movieVersion);
}
}
function _onConnected(event) {
if (loader) {
loader.haltComplete = false;
}
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 _local2 = getNextHighestDepth();
swapDepths(_local2);
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 of Symbol 76 MovieClip [FlashAd] "ad" in Symbol 77 MovieClip [APIConnector] Frame 1
//component parameters
onClipEvent (construct) {
apiId = "";
showBorder = true;
adType = "Video";
}
Instance of Symbol 19 MovieClip [Preloader] "loader" in Symbol 77 MovieClip [APIConnector] Frame 1
//component parameters
onClipEvent (construct) {
autoPlay = false;
mainClass = "";
}
Symbol 91 Button
on (release) {
getURL ("http://www.youtube.com/agoesin", "_blank");
}
Symbol 98 Button
on (release) {
_root.play();
}
Symbol 99 MovieClip Frame 1
_root.stop();
PercentLoaded = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100;
if (PercentLoaded != 100) {
setProperty(bar, _xscale , PercentLoaded);
} else {
gotoAndStop ("loaded");
}
Symbol 99 MovieClip Frame 2
gotoAndPlay (1);
Symbol 110 Button
on (press) {
getURL ("http://www.FlandersKiller.com", "_blank");
}
Symbol 120 Button
on (press) {
getURL ("http://www.facebook.com/flanderskiller", "_blank");
}
Symbol 126 Button
on (press) {
getURL ("http://flanderskiller.com", "_blank");
}
Symbol 131 Button
on (press) {
getURL ("http://www.flanderskiller.com", "_blank");
}
Symbol 132 Button
on (press) {
getURL ("http://www.flanderskiller.com/putonsite", "_blank");
}
Symbol 133 MovieClip Frame 5
stop();
Symbol 136 Button
on (release) {
getURL ("http://www.FlandersKiller.com", "_blank");
}
Symbol 165 MovieClip [MedalPopup] Frame 1
function onMedalUnlocked(event) {
if (event.__get__success()) {
_medalQueue.push(event.__get__data());
showNextUnlock();
}
}
function showNextUnlock() {
if (_unlockedMedal) {
return(undefined);
}
if (!_medalQueue.length) {
gotoAndStop ("hidden");
onEnterFrame = null;
return(undefined);
}
_unlockedMedal = com.newgrounds.Medal(_medalQueue.shift());
gotoAndPlay ("medalUnlocked");
}
gotoAndStop ("hidden");
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, onMedalUnlocked);
var alwaysOnTop;
_x = int(_x);
_y = int(_y);
var _unlockedMedal;
var _medalQueue = [];
var _alwaysOnTop = true;
if (alwaysOnTop) {
_alwaysOnTop = alwaysOnTop == "true";
}
Symbol 165 MovieClip [MedalPopup] Frame 9
function medalPopupEnterFrame() {
if (_alwaysOnTop) {
var _local1 = getNextHighestDepth();
swapDepths(_local1);
}
if (_medalScrollRect) {
_medalScrollRect.offset(8, 0);
medalNameClip.scrollRect = _medalScrollRect;
if (_medalScrollRect.left >= (medalNameClip.textField.textWidth + 10)) {
_medalScrollRect = null;
play();
}
}
}
var _medalScrollRect;
if (_unlockedMedal) {
if (medalNameClip && (medalNameClip.textField)) {
medalNameClip.textField.text = _unlockedMedal.name;
}
if (medalPointsText) {
medalPointsText.text = _unlockedMedal.value.toString();
}
if (medalNameClip.textField.textWidth > medalNameClip._width) {
_medalScrollRect = new flash.geom.Rectangle(-medalNameClip._width, 0, medalNameClip._width, medalNameClip._height);
medalNameClip.textField._width = 1000;
medalNameClip.scrollRect = _medalScrollRect;
}
onEnterFrame = medalPopupEnterFrame;
}
Symbol 165 MovieClip [MedalPopup] Frame 17
if (_unlockedMedal && (medalIcon)) {
_unlockedMedal.attachIcon(medalIcon);
}
Symbol 165 MovieClip [MedalPopup] Frame 36
if (_medalScrollRect) {
stop();
}
Symbol 165 MovieClip [MedalPopup] Frame 44
stop();
_unlockedMedal = null;
showNextUnlock();
Symbol 30 MovieClip [__Packages.com.newgrounds.APIConnection] Frame 0
class com.newgrounds.APIConnection
{
var _hostURL, hostDomain, sessionId, publisherId, encryptionKey, userEmail, username, userId, userpageFormat, initialized;
function APIConnection () {
reset();
}
function get hostURL() {
return(_hostURL);
}
function set hostURL(value) {
_hostURL = value;
hostDomain = null;
if (_hostURL) {
var _local2 = _hostURL.split("/");
if ((_local2[0] != "file:") && (_hostURL != "localhost")) {
hostDomain = _local2.splice(0, 3).join("/");
}
}
if (!hostDomain) {
hostDomain = "localhost";
}
//return(hostURL);
}
function get sandboxType() {
return(System.security.sandboxType);
}
function get isNetworkHost() {
switch (sandboxType) {
case "localWithFile" :
case "localWithNetwork" :
case "localTrusted" :
case "application" :
return(false);
case "remote" :
}
return(true);
}
function get hasUserSession() {
return(((sessionId != null) && (sessionId != "")) && (publisherId != 0));
}
function get connected() {
return(connectionState == CONNECTED);
}
function reset() {
connectionState = NOT_CONNECTED;
encryptionKey = null;
sessionId = null;
userEmail = null;
username = null;
userId = 0;
userpageFormat = 0;
}
function assertInitialized() {
if (!initialized) {
com.newgrounds.Logger.logError("You must initialized the API using API.connect() before using this command.");
return(false);
}
return(true);
}
function assertConnected() {
if ((!connectionState) == CONNECTED) {
com.newgrounds.Logger.logError("You must establish a connection using API.connect() before using this command.");
return(false);
}
return(true);
}
function sendSimpleCommand(command, completeHandler, parameters, secureParameters) {
if (parameters == undefined) {
parameters = null;
}
if (secureParameters == undefined) {
secureParameters = null;
}
var _local2 = new com.newgrounds.APICommand(command);
_local2.__set__parameters(parameters);
_local2.__set__secureParameters(secureParameters);
if (completeHandler != null) {
_local2.addEventListener(com.newgrounds.APIEvent.COMMAND_COMPLETE, completeHandler);
}
_local2.send(this);
}
function sendCommand(command) {
command.send(this);
}
function loadInBrowser(command, newWindow, parameters) {
if (newWindow == undefined) {
newWindow = true;
}
if (parameters == undefined) {
parameters = null;
}
var _local2 = new com.newgrounds.APICommand(command);
_local2.__set__parameters(parameters);
_local2.loadInBrowser(this, newWindow);
}
static var NOT_CONNECTED = "notConnected";
static var CONNECTING = "connecting";
static var CONNECTED = "connected";
var connectionState = NOT_CONNECTED;
var apiURL = "http://www.ngads.com/gateway_v2.php";
}
Symbol 23 MovieClip [__Packages.com.newgrounds.EventDispatcher] Frame 0
class com.newgrounds.EventDispatcher
{
var _listeners;
function EventDispatcher () {
_listeners = {};
}
function addEventListener(type, listener) {
if (!_listeners[type]) {
_listeners[type] = [];
}
if (typeof(listener) == "function") {
_listeners[type].push({target:null, func:listener});
} else {
_listeners[type].push(listener);
}
}
function removeEventListener(type, listener) {
var _local3 = _listeners[type];
if (_local3) {
var _local5 = _local3.length;
var _local2 = 0;
while (_local2 < _local5) {
if ((_local3[_local2].func == listener) || (_local3[_local2] == listener)) {
_local3.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
}
function dispatchEvent(event) {
var _local4 = _listeners[event.__get__type()];
if (_local4) {
var _local5 = _local4.length;
var _local2 = 0;
while (_local2 < _local5) {
var _local3 = _local4[_local2];
_local3.func.call(_local3.target, event);
_local2++;
}
}
return(true);
}
}
Symbol 22 MovieClip [__Packages.com.newgrounds.Event] Frame 0
class com.newgrounds.Event
{
var _type;
function Event (type) {
_type = type;
}
function get type() {
return(_type);
}
}
Symbol 24 MovieClip [__Packages.com.newgrounds.APIEventDispatcher] Frame 0
class com.newgrounds.APIEventDispatcher extends com.newgrounds.EventDispatcher
{
static var _globalDispatcher;
function APIEventDispatcher () {
super();
}
static function get globalDispatcher() {
return(_globalDispatcher);
}
static function set globalDispatcher(value) {
_globalDispatcher = value;
//return(globalDispatcher);
}
static function initEventQueue() {
setInterval(runEventQueue, 50);
return([]);
}
function dispatchEvent(event) {
_eventQueue.push({dispatcher:this, event:event});
return(true);
}
function actualDispatchEvent(event) {
var _local3 = super.dispatchEvent(event);
if (_globalDispatcher && (this != _globalDispatcher)) {
_globalDispatcher.dispatchEvent(event);
}
}
static function runEventQueue(event) {
var _local3 = _eventQueue.length;
if (_local3) {
var _local4 = _eventQueue;
_eventQueue = [];
var _local1 = 0;
while (_local1 < _local3) {
var _local2 = _local4[_local1];
_local2.dispatcher.actualDispatchEvent(_local2.event);
_local1++;
}
}
}
static var _eventQueue = initEventQueue();
}
Symbol 27 MovieClip [__Packages.com.newgrounds.encoders.BaseN] Frame 0
class com.newgrounds.encoders.BaseN
{
var _hash, _base, _reverseHash;
function BaseN (hash) {
if (hash) {
_hash = hash;
} else {
_hash = DEFAULT_HASH;
}
_base = _hash.length;
_reverseHash = new Object();
var _local2 = 0;
while (_local2 < _hash.length) {
_reverseHash[_hash.charAt(_local2)] = _local2;
_local2++;
}
}
function encodeUint(number, minimumChars) {
if (minimumChars == undefined) {
minimumChars = 1;
}
var _local2 = "";
var _local3 = number;
while (_local3 != 0) {
_local2 = _hash.charAt(_local3 % _base) + _local2;
_local3 = _local3 / _base;
_local3 = int(_local3);
}
while (_local2.length < minimumChars) {
_local2 = _hash.charAt(0) + _local2;
}
return(_local2);
}
function decodeUint(encodedNumber) {
var _local3 = 0;
var _local2 = 0;
while (_local2 < encodedNumber.length) {
_local3 = _local3 * _base;
_local3 = _local3 + _reverseHash[encodedNumber.charAt(_local2)];
_local2++;
}
return(_local3);
}
static var DEFAULT_HASH = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/";
}
Symbol 33 MovieClip [__Packages.com.newgrounds.APICommand] Frame 0
class com.newgrounds.APICommand extends com.newgrounds.APIEventDispatcher
{
static var _throttleTimestamp, bridge;
var _command, _parameters, _secureParameters, _hasTimeout, _preventCache, _files, _loader, _timeoutTimer, dispatchEvent;
function APICommand (command) {
super();
_command = command;
_parameters = new Object();
_secureParameters = new Object();
_hasTimeout = true;
}
static function stopPendingCommands() {
for (var _local2 in _pendingCommands) {
var _local1 = _pendingCommands[_local2];
_local1.close();
}
_pendingCommands = [];
}
static function onThrottleTimer(event) {
if ((getTimer() - _throttleTimestamp) >= THROTTLE_INTERVAL) {
_throttleCount = 0;
_throttleCount = 0;
while (_commandQueue.length && (_throttleCount < THROTTLE_THRESHOLD)) {
var _local1 = _commandQueue.shift();
_local1.command.send(_local1.connection);
_throttleCount++;
}
}
}
static function encryptHex(hexValue) {
var _local4 = hexValue.length % 6;
var _local3 = "";
var _local1 = 0;
while (_local1 < hexValue.length) {
_local3 = _local3 + _encryptor.encodeUint(int("0x" + hexValue.substr(_local1, 6)), 4);
_local1 = _local1 + 6;
}
return(_local4.toString() + _local3);
}
function get command() {
return(_command);
}
function set command(value) {
_command = value;
//return(command);
}
function get hasTimeout() {
return(_hasTimeout);
}
function set hasTimeout(val) {
_hasTimeout = val;
//return(hasTimeout);
}
function get parameters() {
return(_parameters);
}
function set parameters(object) {
_parameters = new Object();
if (object) {
for (var _local3 in object) {
_parameters[_local3] = object[_local3];
}
}
//return(parameters);
}
function get preventCache() {
return(_preventCache);
}
function set preventCache(value) {
_preventCache = value;
//return(preventCache);
}
function get secureParameters() {
return(_secureParameters);
}
function set secureParameters(object) {
_secureParameters = new Object();
if (object) {
for (var _local3 in object) {
_secureParameters[_local3] = object[_local3];
}
}
//return(secureParameters);
}
function get hasSecureParameters() {
for (var _local2 in _secureParameters) {
return(true);
}
return(false);
}
function addFile(filename, data, dataField, contentType) {
if (contentType == undefined) {
contentType = "application/octet-stream";
}
if (!_files) {
_files = new Object();
}
var _local3 = {filename:filename, data:data, dataField:dataField, contentType:contentType};
_files[filename] = _local3;
}
function removeFile(filename) {
if (_files) {
delete _files[filename];
}
}
function clearFiles() {
_files = null;
}
function close() {
if (_loader) {
clearInterval(_timeoutTimer);
var _local2 = 0;
while (_local2 < _pendingCommands.length) {
if (_pendingCommands[_local2] == this) {
_pendingCommands.splice(_local2, 1);
break;
}
_local2++;
}
_loader = null;
}
}
function loadInBrowser(connection, newWindow) {
_parameters.command_id = _command;
_parameters.tracker_id = (connection.apiId ? (connection.apiId) : 1);
if (connection.debug) {
_parameters.debug = 1;
}
var _local3 = (connection.apiURL + "?host=") + escape(connection.hostDomain);
for (var _local4 in _parameters) {
_local3 = _local3 + ((("&" + escape(_local4)) + "=") + escape(_parameters[_local4]));
}
var _local6;
if (newWindow) {
_local6 = "_blank";
} else {
_local6 = "_top";
}
_root.getURL(_local3, _local6);
}
function send(connection) {
if (_throttleCount >= THROTTLE_THRESHOLD) {
_commandQueue.push({connection:connection, command:this});
} else {
sendInternal(connection);
}
}
function sendInternal(connection) {
var _local4;
_local4 = new LoadVars();
_local4.command_id = _command;
_local4.tracker_id = connection.apiId;
if (connection.debug) {
_local4.debug = 1;
}
if (_preventCache) {
_local4.seed = Math.random();
}
var _local2;
var _local3;
var _local7;
for (_local2 in _parameters) {
_local3 = _parameters[_local2];
if (_local3 != null) {
if (typeof(_local3) == "boolean") {
_local4[_local2] = int(_local3);
} else {
_local4[_local2] = _local3;
}
}
}
if (hasSecureParameters) {
var _local6 = new Object();
for (_local2 in _secureParameters) {
_local3 = _secureParameters[_local2];
if (_local3 != null) {
if (typeof(_local3) == "boolean") {
_local6[_local2] = int(_local3);
} else {
_local6[_local2] = _local3;
}
}
}
var _local8 = "";
_local7 = 0;
while (_local7 < 16) {
_local8 = _local8 + ENCRYPTOR_RADIX.charAt(int(Math.random() * ENCRYPTOR_RADIX.length));
_local7++;
}
_local4.command_id = "securePacket";
_local6.command_id = _command;
_local6.as_version = 3;
_local6.session_id = connection.sessionId;
_local6.user_email = connection.userEmail;
_local6.publisher_id = connection.publisherId;
_local6.seed = _local8;
var _local13 = com.newgrounds.crypto.MD5.hash(_local8);
var _local11 = com.newgrounds.crypto.RC4.encrypt(com.newgrounds.encoders.json.JSON.encode(_local6), connection.encryptionKey);
_local4.secure = encryptHex(_local13 + _local11);
}
com.newgrounds.Logger.logInternal("Sending packet:", _local4);
var _local12;
_local12 = "application/x-www-form-urlencoded";
for (_local2 in _local4) {
if (typeof(_local4[_local2]) == "object") {
_local4[_local2] = com.newgrounds.encoders.json.JSON.encode(_local4[_local2]);
}
}
if (_files) {
for (var _local10 in _files) {
var _local5 = _files[_local10];
if (typeof(_local5.data) == "string") {
_local4[_local10] = _local5.data;
} else {
_local4[_local10] = com.newgrounds.encoders.json.JSON.encode(_local5.data);
}
}
}
_pendingCommands.push(this);
_throttleCount++;
_throttleTimestamp = getTimer();
startLoader(connection.apiURL, _local4, _local12);
}
function startLoader(url, data, contentType) {
_loader = LoadVars(data);
_loader.onData = as2CompleteHandler;
_loader.contentType = contentType;
_loader.sendAndLoad(url, _loader, "POST");
if (_hasTimeout) {
setInterval(this, onTimeout, TIMEOUT_INTERVAL);
}
}
function as2CompleteHandler(data) {
var _local3;
var _local2 = 0;
while (_local2 < _pendingCommands.length) {
if (_pendingCommands[_local2]._loader == this) {
_local3 = _pendingCommands[_local2];
break;
}
_local2++;
}
_local3.onComplete(data);
}
function onTimeout(event) {
close();
com.newgrounds.Logger.logError("Command timed out.");
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, null, com.newgrounds.APIEvent.ERROR_TIMED_OUT));
}
function onError(error) {
com.newgrounds.Logger.logError("Error when sending command:", error);
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, null, com.newgrounds.APIEvent.ERROR_UNKNOWN));
close();
}
function onComplete(data) {
com.newgrounds.Logger.logInternal("Received packet:", data);
try {
if ((!data) || (data == "")) {
throw new Error();
}
var _local2 = com.newgrounds.encoders.json.JSON.decode(data);
if (!_local2) {
throw new Error();
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, _local2, ((_local2 && (_local2.success)) ? (com.newgrounds.APIEvent.ERROR_NONE) : (com.newgrounds.APIEvent.ERROR_COMMAND_FAILED))));
if (bridge) {
bridge.sendEvent(_local2.command_id, _local2);
}
} catch(e) {
com.newgrounds.Logger.logError("Invalid response returned from server: " + data);
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.COMMAND_COMPLETE, null, com.newgrounds.APIEvent.ERROR_BAD_RESPONSE));
}
close();
}
static var TIMEOUT_INTERVAL = 10000;
static var THROTTLE_INTERVAL = 10050;
static var THROTTLE_TICK_INTERVAL = 1000;
static var THROTTLE_THRESHOLD = 24;
static var _throttleCount = 0;
static var _commandQueue = [];
static var _throttleTimer = setInterval(onThrottleTimer, THROTTLE_TICK_INTERVAL);
static var ENCRYPTOR_RADIX = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
static var _encryptor = new com.newgrounds.encoders.BaseN(ENCRYPTOR_RADIX);
static var _pendingCommands = [];
static var CRLF = "\r\n";
}
Symbol 29 MovieClip [__Packages.com.newgrounds.Bridge] Frame 0
class com.newgrounds.Bridge extends com.newgrounds.EventDispatcher
{
var _widgetId, _inConnection, _outConnection, dispatchEvent;
function Bridge (id) {
super();
_widgetId = id;
_inConnection = new LocalConnection();
_outConnection = new LocalConnection();
var me = this;
_inConnection.receiveEvent = function () {
me.receiveEvent.apply(me, arguments);
};
_inConnection.allowDomain = (_inConnection.allowInsecureDomain = function (d) {
return(((d == "www.newgrounds.com") || (d == "newgrounds.com")) || (d == "uploads.ungrounded.net"));
});
_inConnection.connect("_rec_" + _widgetId);
com.newgrounds.Logger.addEventListener(com.newgrounds.APIEvent.LOG, {target:this, func:onLogMessage});
}
function get widgetId() {
return(_widgetId);
}
function onLogMessage(event) {
try {
_outConnection.send(_widgetId, "sendEvent", "trace", String(event.__get__data()));
} catch(error) {
}
}
function sendEvent(command, parameters) {
if (_outConnection) {
parameters = {data:parameters};
try {
_outConnection.send(_widgetId, "sendEvent", command, parameters);
} catch(error) {
}
}
}
function receiveEvent(responseData) {
var _local2;
try {
_local2 = com.newgrounds.encoders.json.JSON.decode(responseData);
} catch(error) {
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.BRIDGE_EVENT_RECEIVED, _local2, ((_local2 == null) ? (com.newgrounds.APIEvent.ERROR_UNKNOWN) : null)));
}
function onStatus(event) {
}
}
Symbol 25 MovieClip [__Packages.com.newgrounds.APIEvent] Frame 0
class com.newgrounds.APIEvent extends com.newgrounds.Event
{
var _error, _success, _data, __get__type;
function APIEvent (type, data, error) {
super(type);
if (data == undefined) {
data = null;
}
if (error == undefined) {
error = null;
}
if (((!error) || (error == "")) || (error == ERROR_NONE)) {
_error = ERROR_NONE;
_success = true;
} else {
_error = error;
_success = false;
}
if (data) {
_data = data;
} else {
_data = {};
}
}
function clone() {
return(new com.newgrounds.APIEvent(__get__type(), _data, _error));
}
function get success() {
return(_success);
}
function get data() {
return(_data);
}
function get error() {
return(_error);
}
static var COMMAND_COMPLETE = "commandComplete";
static var MEDAL_UNLOCK_CONFIRMED = "medalUnlockConfirmed";
static var ICON_LOADED = "iconLoaded";
static var BRIDGE_EVENT_RECEIVED = "brdigeEventReceived";
static var API_CONNECTED = "movieConnected";
static var LOG = "log";
static var MEDAL_UNLOCKED = "medalUnlocked";
static var SCORES_LOADED = "scoresLoaded";
static var SCORE_POSTED = "scorePosted";
static var QUERY_COMPLETE = "queryComplete";
static var FILE_LOADED = "fileLoaded";
static var FILE_SAVED = "fileSaved";
static var FILE_DELETED = "fileDeleted";
static var FILE_REQUESTED = "fileRequested";
static var VOTE_COMPLETE = "voteComplete";
static var USER_SIGNED_IN = "userSignedIn";
static var ERROR_NONE = "noError";
static var ERROR_UNKNOWN = "unknownError";
static var ERROR_COMMAND_FAILED = "commandFailed";
static var ERROR_NOT_CONNECTED = "notConnected";
static var ERROR_INVALID_ARGUMENT = "invalidArgument";
static var ERROR_TIMED_OUT = "timedOut";
static var ERROR_BAD_FILE = "badFile";
static var ERROR_BAD_RESPONSE = "badResponse";
static var ERROR_SENDING_COMMAND = "errorSendingCommand";
static var ERROR_HOST_BLOCKED = "hostBlocked";
static var ERROR_ALREADY_VOTED = "alreadyVoted";
static var ERROR_NOT_LOGGED_IN = "notLoggedIn";
static var ERROR_WRONG_ENCRYPTION_KEY = "wrongEncryptionKey";
static var ERROR_SIGN_IN_FAILED = "signInFailed";
}
Symbol 44 MovieClip [__Packages.com.newgrounds.API] Frame 0
class com.newgrounds.API
{
static var _serverTime, _adFeedURL, _movieVersion, _bridge, _requestedSaveGroupId, _requestedSaveFileId, _movieName, _newVersion, _saveFilePath, _imageFilePath;
function API () {
}
static function get connected() {
return(_connection.__get__connected());
}
static function get isNetworkHost() {
return(_connection.__get__isNetworkHost());
}
static function get apiId() {
_connection.assertInitialized();
return(_connection.apiId);
}
static function get debugMode() {
return(_debugMode);
}
static function set debugMode(val) {
_debugMode = val;
//return(debugMode);
}
static function get publisherId() {
_connection.assertInitialized();
return(_connection.publisherId);
}
static function get sessionId() {
_connection.assertInitialized();
return(_connection.sessionId);
}
static function get hostDomain() {
_connection.assertInitialized();
return(_connection.hostDomain);
}
static function get hostURL() {
_connection.assertInitialized();
return(_connection.__get__hostURL());
}
static function get isNewgrounds() {
return(_connection.publisherId == 1);
}
static function get hasUserSession() {
_connection.assertInitialized();
return(_connection.__get__hasUserSession());
}
static function get username() {
_connection.assertInitialized();
return(_connection.username);
}
static function get userId() {
_connection.assertInitialized();
return(_connection.userId);
}
static function assertConnected(eventType) {
if (eventType == undefined) {
eventType = null;
}
if (_connection.assertConnected()) {
return(true);
}
if (eventType) {
dispatchEvent(eventType, null, com.newgrounds.APIEvent.ERROR_NOT_CONNECTED);
}
return(false);
}
static function get serverTime() {
return(_serverTime);
}
static function get adsApproved() {
return(_adsApproved);
}
static function get adFeedURL() {
return(_adFeedURL);
}
static function get medals() {
return(_medalsArray);
}
static function get scoreBoards() {
return(_scoreBoardsArray);
}
static function get saveGroups() {
return(_saveGroupsArray);
}
static function connect(_root, apiId, encryptionKey, movieVersion) {
if (encryptionKey == undefined) {
encryptionKey = null;
}
if (movieVersion == undefined) {
movieVersion = "";
}
com.newgrounds.APIEventDispatcher.__set__globalDispatcher(_dispatcher);
System.security.loadPolicyFile("http://apifiles.ngfiles.com/crossdomain.xml");
if (_connection.initialized) {
com.newgrounds.Logger.logError("Connection already in progress. Please call API.disconnect() before attempting another connection.");
dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, false, com.newgrounds.APIEvent.ERROR_NOT_CONNECTED);
return(undefined);
}
apiId = trimWhitespace(apiId);
if (encryptionKey) {
encryptionKey = trimWhitespace(encryptionKey);
}
if ((!apiId) || (apiId == "")) {
com.newgrounds.Logger.logError("No apiId given. Please use the API ID from your API settings page.");
dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, false, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return(undefined);
}
com.newgrounds.Logger.logMessage(("====== Newgrounds API v" + VERSION) + " ======");
_connection.connectionState = com.newgrounds.APIConnection.CONNECTING;
_root=_root;//parameter overwritten
_movieVersion = movieVersion;
_connection.apiId = apiId;
var _local4;
_local4 = apiId.indexOf(":");
if (_local4 != -1) {
_connection.trackerId = int(apiId.substring(0, _local4));
} else {
_connection.trackerId = int(apiId);
}
if (!_connection.trackerId) {
com.newgrounds.Logger.logError("Invalid API ID: " + apiId);
dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, false, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return(undefined);
}
_connection.encryptionKey = encryptionKey;
_connection.initialized = true;
_connection.__set__hostURL(_root._url);
doConnect(_root);
}
static function doConnect(flashVars) {
if (isNetworkHost && (_debugMode != RELEASE_MODE)) {
com.newgrounds.Logger.logMessage("Live file detected, turning off debug mode.");
_debugMode = RELEASE_MODE;
}
if (flashVars && (flashVars.NewgroundsAPI_SandboxID)) {
_bridge = new com.newgrounds.Bridge(flashVars.NewgroundsAPI_SandboxID);
com.newgrounds.APICommand.bridge = _bridge;
} else {
_bridge = new com.newgrounds.Bridge(com.newgrounds.crypto.MD5.hash(String(Math.random())));
com.newgrounds.APICommand.bridge = _bridge;
}
if (_debugMode == RELEASE_MODE) {
if (flashVars) {
if (flashVars.NewgroundsAPI_UserName) {
_connection.username = flashVars.NewgroundsAPI_UserName;
}
if (flashVars.NewgroundsAPI_UserID) {
_connection.userId = flashVars.NewgroundsAPI_UserID;
}
if (flashVars.NewgroundsAPI_PublisherID) {
_connection.publisherId = flashVars.NewgroundsAPI_PublisherID;
}
if (flashVars.NewgroundsAPI_UserpageFormat) {
_connection.userpageFormat = flashVars.NewgroundsAPI_UserpageFormat;
}
if (flashVars.NewgroundsAPI_SessionID) {
_connection.sessionId = flashVars.NewgroundsAPI_SessionID;
}
if (flashVars.NewgroundsAPI_SaveGroupID) {
_requestedSaveGroupId = flashVars.NewgroundsAPI_SaveGroupID;
}
if (flashVars.NewgroundsAPI_SaveFileID) {
_requestedSaveFileId = flashVars.NewgroundsAPI_SaveFileID;
}
}
} else {
_connection.debug = true;
if ((_debugMode == DEBUG_MODE_LOGGED_IN) || (_debugMode == DEBUG_MODE_LOGGED_OUT)) {
_connection.publisherId = 1;
}
if (_debugMode == DEBUG_MODE_LOGGED_IN) {
_connection.sessionId = "D3bu64p1U53R";
_connection.userId = 10;
_connection.username = "API-Debugger";
}
}
_connection.sendSimpleCommand("connectMovie", onConnect, {host:_connection.hostDomain, movie_version:_movieVersion, publisher_id:_connection.publisherId});
}
static function onConnect(event) {
var _local1 = event.__get__data();
if (!event.__get__success()) {
com.newgrounds.Logger.logError("Unable to connect to the API.");
_connection.reset();
dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, event.__get__data(), event.__get__error());
return(undefined);
}
if (debugMode != RELEASE_MODE) {
_adFeedURL = TEST_AD_FEED_URL;
} else if (_local1.ad_url) {
_adFeedURL = unescape(_local1.ad_url);
}
switch (_local1.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!");
}
_adsApproved = _local1.ad_status == 1;
if ((_debugMode == DEBUG_MODE_HOST_BLOCKED) || (_local1.deny_host)) {
com.newgrounds.Logger.logWarning(_connection.hostDomain + " does not have permission to host this movie!", "Update your API configuration to allow this host.");
dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, {officialURL:unescape(_local1.movie_url)}, com.newgrounds.APIEvent.ERROR_HOST_BLOCKED);
_connection.reset();
return(undefined);
}
_movieName = (_local1.movieName ? (_local1.movieName) : "");
com.newgrounds.Logger.logMessage("Connecting to the Newgrounds API Gateway...", ("----- " + _local1.movie_name) + " -----");
if (_debugMode == DEBUG_MODE_NEW_VERSION) {
_local1.movie_version = "Debug Mode";
}
if (_local1.movie_version) {
com.newgrounds.Logger.logMessage("A new version of this movie is available.", "Current version:\t" + _movieVersion, "Newest version:\t" + _local1.movie_version, "Use API.loadOfficialVersion() to link to the latest version.");
_newVersion = true;
} else {
_newVersion = false;
}
_serverTime = new Date(int(_local1.time) * 1000);
if (_local1.request_portal_url) {
_connection.sendSimpleCommand("setPortalID", null, {portal_url:_connection.__get__hostURL()});
}
_connection.sendSimpleCommand("preloadSettings", onMetadataLoaded, {publisher_id:_connection.publisherId, user_id:_connection.userId});
}
static function onMetadataLoaded(event) {
var _local11 = event.__get__data();
var _local4;
var _local1;
if (!event.__get__success()) {
com.newgrounds.Logger.logWarning("Unable to load movie metadata.");
disconnect();
dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, null, event.__get__error());
return(undefined);
}
var _local10 = 0;
if (_local11.medals) {
_local10 = _local11.medals.length;
var _local18;
if (hasUserSession) {
_local18 = loadLocal("medals_unlocked_" + username);
} else {
_local18 = loadLocal("medals_unlocked");
}
_local4 = 0;
while (_local4 < _local10) {
var _local5 = _local11.medals[_local4];
var _local15 = _local5.medal_unlocked;
var _local17 = _local18 && (_local18[_local5.medal_id]);
var _local14 = (hasUserSession ? (_local15) : (_local17));
if (debugMode != RELEASE_MODE) {
_local14 = false;
}
var _local6 = new com.newgrounds.Medal(_connection, _local5.medal_id, _local5.medal_name, _local5.medal_description, Boolean(int(_local5.secret)), _local14, _local5.medal_value, _local5.medal_difficulty, _local5.medal_icon);
_local6.addEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, onMedalUnlocked, false, 0, true);
_local6.addEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCK_CONFIRMED, onMedalUnlockConfirmed, false, 0, true);
_medals[_local6.__get__name()] = _local6;
_medalsArray.push(_local6);
com.newgrounds.Logger.logMessage(_local6);
if ((hasUserSession && (_local17)) && (!_local15)) {
com.newgrounds.Logger.logMessage(("Server missed the \"" + _local6.__get__name()) + "\" unlock. Resending...");
_local6.unlock();
}
_local4++;
}
}
com.newgrounds.Logger.logMessage(((_local10 + " medal") + ((_local10 != 1) ? "s" : "")) + " initialized.");
_local10 = 0;
if (_local11.score_boards) {
_local10 = _local11.score_boards.length;
_local4 = 0;
while (_local4 < _local10) {
var _local16 = _local11.score_boards[_local4];
var _local9 = new com.newgrounds.ScoreBoard(_connection, _local16.name, _local16.id);
_scoreBoards[_local9.__get__name()] = _local9;
_scoreBoardsArray.push(_local9);
com.newgrounds.Logger.logMessage(_local9);
_local4++;
}
}
com.newgrounds.Logger.logMessage(((_local10 + " scoreboard") + ((_local10 != 1) ? "s" : "")) + " initialized.");
_local10 = 0;
if (_local11.save_groups) {
_local10 = _local11.save_groups.length;
_local4 = 0;
while (_local4 < _local10) {
var _local2 = _local11.save_groups[_local4];
var _local13 = [];
if (_local2.keys) {
_local1 = 0;
while (_local1 < _local2.keys.length) {
var _local7 = _local2.keys[_local1];
_local13.push(new com.newgrounds.SaveKey(_local7.name, _local7.id, _local7.type));
_local1++;
}
}
var _local12 = [];
if (_local2.ratings) {
_local1 = 0;
while (_local1 < _local2.ratings.length) {
var _local3 = _local2.ratings[_local1];
_local12.push(new com.newgrounds.SaveRating(_local3.name, _local3.id, _local3.float, _local3.min, _local3.max));
_local1++;
}
}
var _local8 = new com.newgrounds.SaveGroup(_connection, _local2.group_name, _local2.group_id, _local2.group_type, _local13, _local12);
_saveGroups[_local8.__get__name()] = _local8;
_saveGroupsArray.push(_local8);
com.newgrounds.Logger.logMessage(_local8);
_local4++;
}
}
com.newgrounds.Logger.logMessage(((_local10 + " save group") + ((_local10 != 1) ? "s" : "")) + " initialized.");
if (_local11.save_file_path) {
_saveFilePath = _local11.save_file_path + "/";
com.newgrounds.SaveFile._saveFilePath = _saveFilePath;
com.newgrounds.Logger.logInternal("Save file path: " + _saveFilePath);
}
if (_local11.image_file_path) {
_imageFilePath = _local11.image_file_path + "/";
com.newgrounds.SaveFile._imageFilePath = _imageFilePath;
com.newgrounds.Logger.logInternal("Image file path: " + _imageFilePath);
}
com.newgrounds.Logger.logMessage("Connection complete!");
_connection.connectionState = com.newgrounds.APIConnection.CONNECTED;
dispatchEvent(com.newgrounds.APIEvent.API_CONNECTED, {movieName:_movieName, newVersion:_newVersion});
if (_requestedSaveFileId && (_requestedSaveGroupId)) {
addEventListener(com.newgrounds.APIEvent.FILE_LOADED, onRequestedFileLoaded);
loadSaveFile(_requestedSaveFileId, false);
}
}
static function disconnect() {
if (!_connection.__get__connected()) {
com.newgrounds.Logger.logWarning("The Newgrounds API is already disconnected.");
return(undefined);
}
_connection.reset();
for (var _local2 in _medals) {
var _local1 = _medals[_local2];
_local1.removeEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, onMedalUnlocked);
_local1.removeEventListener(com.newgrounds.APIEvent.MEDAL_UNLOCK_CONFIRMED, onMedalUnlockConfirmed);
}
_newVersion = false;
_medals = new Object();
_medalsArray = [];
_scoreBoards = new Object();
_scoreBoardsArray = [];
_saveGroups = new Object();
_saveGroupsArray = [];
_sharedObjects = new Object();
_imageFilePath = null;
_saveFilePath = null;
com.newgrounds.Logger.logMessage("Disconnected from the Newgrounds API.");
}
static function loadNewgrounds() {
_connection.loadInBrowser("loadNewgrounds");
}
static function loadOfficialVersion() {
if (_connection.assertInitialized()) {
_connection.loadInBrowser("loadOfficialVersion", false);
}
}
static function promptSignIn() {
if (_connection.assertInitialized()) {
getURL (PASSPORT_URL + _bridge.__get__widgetId(), "_blank");
_bridge.addEventListener(com.newgrounds.APIEvent.BRIDGE_EVENT_RECEIVED, onUserSignedIn, false, 0, true);
}
}
static function onUserSignedIn(e) {
_bridge.removeEventListener(com.newgrounds.APIEvent.BRIDGE_EVENT_RECEIVED, onUserSignedIn);
var _local1 = e.__get__data();
if (e.__get__success()) {
try {
if (_local1.NewgroundsAPI_UserName) {
_connection.username = _local1.NewgroundsAPI_UserName;
}
if (_local1.NewgroundsAPI_UserID) {
_connection.userId = _local1.NewgroundsAPI_UserID;
}
if (_local1.NewgroundsAPI_PublisherID) {
_connection.publisherId = _local1.NewgroundsAPI_PublisherID;
}
if (_local1.NewgroundsAPI_SessionID) {
_connection.sessionId = _local1.NewgroundsAPI_SessionID;
}
_connection.sendSimpleCommand("preloadSettings", onMetadataLoaded, {publisher_id:_connection.publisherId, user_id:_connection.userId});
} catch(error) {
}
com.newgrounds.Logger.logMessage(("User " + _connection.username) + " signed in.");
}
dispatchEvent(com.newgrounds.APIEvent.USER_SIGNED_IN, null, (e.__get__success() ? null : (com.newgrounds.APIEvent.ERROR_SIGN_IN_FAILED)));
}
static function loadMySite() {
if (_connection.assertInitialized()) {
_connection.loadInBrowser("loadMySite");
}
}
static function loadCustomLink(linkName) {
if (_connection.assertInitialized()) {
_connection.loadInBrowser("loadCustomLink", true, {link:linkName});
}
}
static function getMedal(medalName) {
return(_medals[medalName]);
}
static function unlockMedal(medalName) {
if (!assertConnected()) {
return(undefined);
}
var _local1 = _medals[medalName];
if (!_local1) {
com.newgrounds.Logger.logError(("No medal named \"" + medalName) + "\" w.");
return(undefined);
}
_local1.unlock();
}
static function onMedalUnlocked(event) {
if (event.__get__success()) {
var _local2 = com.newgrounds.Medal(event.__get__data());
var _local1;
if (hasUserSession) {
_local1 = loadLocal("medals_unlocked_" + username);
if (!_local1) {
_local1 = new Object();
}
_local1[_local2.__get__id()] = true;
saveLocal("medals_unlocked_" + username, _local1);
} else {
_local1 = loadLocal("medals_unlocked");
if (!_local1) {
_local1 = new Object();
}
_local1[com.newgrounds.Medal(event.__get__data()).__get__id()] = true;
saveLocal("medals_unlocked", _local1);
com.newgrounds.Logger.logMessage(("User instanceof not logged in. Medal \"" + _local2.__get__name()) + "\" unlocked locally.");
}
}
}
static function onMedalUnlockConfirmed(event) {
if (hasUserSession) {
var _local1 = loadLocal("medals_unlocked_" + username);
if (!_local1) {
_local1 = new Object();
} else {
delete _local1[com.newgrounds.Medal(event.__get__data()).__get__id()];
}
saveLocal("medals_unlocked_" + username, _local1);
}
}
static function clearLocalMedals() {
for (var _local2 in _medals) {
var _local1 = _medals[_local2];
_local1.setUnlocked(false);
}
if (!hasUserSession) {
saveLocal("medals_unlocked", new Object());
}
}
static function getScoreBoard(scoreBoardName) {
if (!assertConnected()) {
return(null);
}
return(_scoreBoards[scoreBoardName]);
}
static function loadScores(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 (!assertConnected()) {
return(null);
}
var _local1 = _scoreBoards[scoreBoardName];
if (!_local1) {
com.newgrounds.Logger.logError(("No scoreboard named \"" + scoreBoardName) + "\" w.");
dispatchEvent(com.newgrounds.APIEvent.SCORES_LOADED, null, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return(null);
}
_local1.__set__period(period);
_local1.__set__firstResult(firstResult);
_local1.__set__numResults(numResults);
_local1.__set__tag(tag);
_local1.loadScores();
return(_local1);
}
static function postScore(scoreBoardName, numericScore, tag) {
if (tag == undefined) {
tag = null;
}
if (!assertConnected()) {
return(undefined);
}
if (!hasUserSession) {
com.newgrounds.Logger.logError("The user must be logged-in to post a score.");
dispatchEvent(com.newgrounds.APIEvent.SCORE_POSTED, null, com.newgrounds.APIEvent.ERROR_NOT_LOGGED_IN);
return(undefined);
}
var _local1 = _scoreBoards[scoreBoardName];
if (!_local1) {
com.newgrounds.Logger.logError(("No scoreboard named \"" + scoreBoardName) + "\" w.");
dispatchEvent(com.newgrounds.APIEvent.SCORE_POSTED, null, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT);
return(undefined);
}
_local1.postScore(numericScore, tag);
}
static function getSaveGroup(groupName) {
if (!assertConnected()) {
return(null);
}
return(_saveGroups[groupName]);
}
static function getSaveGroupById(id) {
for (var _local3 in _saveGroups) {
var _local1 = _saveGroups[_local3];
if (_local1.__get__id() == id) {
return(_local1);
}
}
return(null);
}
static function createSaveFile(groupName) {
if (!assertConnected()) {
return(null);
}
var _local1 = getSaveGroup(groupName);
if (!_local1) {
com.newgrounds.Logger.logError(("The save group \"" + groupName) + "\" w found.");
return(null);
}
return(new com.newgrounds.SaveFile(_local1));
}
static function loadSaveFile(saveId, loadContents) {
if (loadContents == undefined) {
loadContents = true;
}
_connection.sendSimpleCommand("loadSaveFile", onFileLoaded, {save_id:saveId, get_contents:loadContents});
}
static function onFileLoaded(event) {
var _local2;
if (event.__get__success()) {
_local2 = com.newgrounds.SaveFile.fromObject(getSaveGroupById(event.__get__data().group_id), event.__get__data().file);
if (event.__get__data().get_contents) {
_local2.load();
} else {
dispatchEvent(com.newgrounds.APIEvent.FILE_LOADED, _local2);
}
} else {
com.newgrounds.Logger.logError("Unable to load file:", event.__get__error());
dispatchEvent(com.newgrounds.APIEvent.FILE_LOADED, null, event.__get__error());
}
}
static function createSaveQuery(groupName) {
if (!assertConnected()) {
return(null);
}
var _local1 = getSaveGroup(groupName);
if (!_local1) {
com.newgrounds.Logger.logError(("The save group \"" + groupName) + "\" w found.");
return(null);
}
var _local2 = new com.newgrounds.SaveQuery(_local1);
return(_local2);
}
static function createSaveQueryByDate(groupName, sortDescending) {
if (sortDescending == undefined) {
sortDescending = true;
}
var _local1 = createSaveQuery(groupName);
if (!_local1) {
return(null);
}
_local1.sortOn(com.newgrounds.SaveQuery.CREATED_ON, sortDescending);
return(_local1);
}
static function createSaveQueryByName(groupName, filename, exactMatch, sortDescending) {
if (exactMatch == undefined) {
exactMatch = false;
}
if (sortDescending == undefined) {
sortDescending = false;
}
var _local1 = createSaveQuery(groupName);
_local1.addCondition(com.newgrounds.SaveQuery.FILE_NAME, (exactMatch ? (com.newgrounds.SaveQuery.OPERATOR_EQUAL) : (com.newgrounds.SaveQuery.OPERATOR_CONTAINS)), filename);
return(_local1);
}
static function createSaveQueryByRating(groupName, ratingName, sortDescending) {
if (sortDescending == undefined) {
sortDescending = true;
}
var _local1 = createSaveQuery(groupName);
_local1.sortOn(ratingName, sortDescending);
return(_local1);
}
static function onRequestedFileLoaded(event) {
removeEventListener(com.newgrounds.APIEvent.FILE_LOADED, onRequestedFileLoaded);
if (event.__get__success()) {
var _local1 = event.__get__data();
if (_local1) {
dispatchEvent(com.newgrounds.APIEvent.FILE_REQUESTED, _local1);
}
}
}
static function addEventListener(eventType, listener, priority, useWeakReference) {
if (priority == undefined) {
priority = 0;
}
if (useWeakReference == undefined) {
useWeakReference = true;
}
_dispatcher.addEventListener(eventType, listener, false, priority, useWeakReference);
}
static function removeEventListener(eventType, listener) {
_dispatcher.removeEventListener(eventType, listener);
}
static function dispatchEvent(event, data, error) {
if (data == undefined) {
data = null;
}
if (error == undefined) {
error = null;
}
_dispatcher.dispatchEvent(new com.newgrounds.APIEvent(event, data, error));
}
static function saveLocal(saveId, saveData) {
try {
var _local3;
var _local2 = (("ng_ap_secure_" + _connection.trackerId) + "_") + com.newgrounds.crypto.RC4.encrypt(saveId, _connection.encryptionKey);
if (!_sharedObjects[saveId]) {
_sharedObjects[saveId] = SharedObject.getLocal(_local2);
}
_local3 = _sharedObjects[saveId];
_local3.data.data = encodeData(saveData);
} catch(_local) {
if (Error( /* Error999 */
) != null) {
var error = Error( /* Error999 */
);
com.newgrounds.Logger.logError("Unable to save local data.", error);
return(false);
}
Error( /* Error999 */
);
throw /* Error999 */
;
}
return(true);
}
static function loadLocal(saveId) {
try {
var _local1;
var _local3 = (("ng_ap_secure_" + _connection.trackerId) + "_") + com.newgrounds.crypto.RC4.encrypt(saveId, _connection.encryptionKey);
if (!_sharedObjects[saveId]) {
_sharedObjects[saveId] = SharedObject.getLocal(_local3);
}
_local1 = _sharedObjects[saveId];
if ((_local1 && (_local1.data)) && (_local1.data.data)) {
return(decodeData(_local1.data.data));
}
return(null);
} catch(error:Error) {
com.newgrounds.Logger.logError("Unable to load local data.", error);
}
return(null);
}
static function logCustomEvent(eventName) {
if (assertConnected()) {
com.newgrounds.Logger.logMessage("Logged event: " + eventName);
_connection.sendSimpleCommand("logCustomEvent", null, {event:eventName});
}
}
static function encodeData(data) {
if (!_connection.assertInitialized()) {
return(null);
}
return(com.newgrounds.crypto.RC4.encrypt(com.newgrounds.encoders.json.JSON.encode(data), _connection.encryptionKey));
}
static function decodeData(data) {
if (!_connection.assertInitialized()) {
return(null);
}
try {
return(com.newgrounds.encoders.json.JSON.decode(com.newgrounds.crypto.RC4.decrypt(data, _connection.encryptionKey)));
} catch(error:Error) {
}
return(null);
}
static function stopPendingCommands() {
com.newgrounds.APICommand.stopPendingCommands();
com.newgrounds.Logger.logMessage("Pending commands stopped.");
}
static function trimWhitespace(string) {
if (!string) {
return(null);
}
var _local3 = 0;
while (string.charAt(_local3) == " ") {
_local3++;
}
var _local1 = string.length - 1;
while ((string.charAt(_local1) == " ") && (_local1 >= 0)) {
_local1--;
}
return(string.slice(_local3, _local1 + 1));
}
static var VERSION = "3.2 AS2";
static var RELEASE_MODE = "releaseMode";
static var DEBUG_MODE_LOGGED_IN = "debugModeLoggedIn";
static var DEBUG_MODE_LOGGED_OUT = "debugModeLoggedOut";
static var DEBUG_MODE_NEW_VERSION = "debugModeNewVersion";
static var DEBUG_MODE_HOST_BLOCKED = "debugModeHostBlocked";
static var TEST_AD_FEED_URL = "http://www.ngads.com/adtest.php";
static var PASSPORT_URL = "https://www.newgrounds.com/login/remote/";
static var _dispatcher = new com.newgrounds.APIEventDispatcher();
static var _connection = new com.newgrounds.APIConnection();
static var _debugMode = DEBUG_MODE_LOGGED_IN;
static var _adsApproved = false;
static var _medals = new Object();
static var _medalsArray = [];
static var _scoreBoards = new Object();
static var _scoreBoardsArray = [];
static var _saveGroups = new Object();
static var _saveGroupsArray = [];
static var _sharedObjects = new Object();
}
Symbol 41 MovieClip [__Packages.com.newgrounds.encoders.ImageScanner] Frame 0
class com.newgrounds.encoders.ImageScanner
{
var _baseN, _encodeAlpha, _maxPerChannel;
function ImageScanner (hashLength, charsPerPixel) {
if (hashLength) {
_hash = DEFAULT_HASH.substr(0, hashLength);
}
_baseN = new com.newgrounds.encoders.BaseN(_hash);
if (charsPerPixel) {
_charsPerPixel = charsPerPixel;
}
encodeAlpha = (false);
}
function get encodeAlpha() {
return(_encodeAlpha);
}
function set encodeAlpha(v) {
_encodeAlpha = v;
_maxPerChannel = int(Math.pow(_hash.length, _charsPerPixel / (_encodeAlpha ? 4 : 3)));
if (_maxPerChannel > 256) {
_maxPerChannel = 256;
}
//return(encodeAlpha);
}
function encode(source, callbackFunction, callbackObject) {
var _local4 = {callbackFunction:callbackFunction, callbackObject:callbackObject, source:source, x:0, y:0, output:null};
var _local2 = source.width.toString();
var _local3 = source.height.toString();
while (_local2.length < 3) {
_local2 = "0" + _local2;
}
while (_local3.length < 3) {
_local3 = "0" + _local3;
}
_local4.output = _local2 + _local3;
var _local6 = setInterval(this, "doEncode", WORK_INTERVAL, _local4);
_local4.interval = _local6;
}
function decode(source, callbackFunction, callbackObject) {
var _local4 = {callbackFunction:callbackFunction, callbackObject:callbackObject, source:source, i:6, x:0, y:0, output:null};
var _local3 = source.substr(0, 3);
var _local2 = source.substr(3, 3);
while (_local3.charAt(0) == "0") {
_local3 = _local3.substr(1);
}
while (_local2.charAt(0) == "0") {
_local2 = _local2.substr(1);
}
var _local7 = int(_local3);
var _local8 = int(_local2);
_local4.output = new flash.display.BitmapData(_local7, _local8, _encodeAlpha);
var _local6 = setInterval(this, "doDecode", WORK_INTERVAL, _local4);
_local4.interval = _local6;
}
function doEncode(state) {
var _local3 = getTimer();
while ((state.y < state.source.height) && ((getTimer() - _local3) < WORK_INTERVAL)) {
state.output = state.output + 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);
}
}
function doDecode(state) {
var _local4 = getTimer();
while ((state.y < state.output.height) && ((getTimer() - _local4) < WORK_INTERVAL)) {
var _local3 = decodePixel(state.source.substr(state.i, _charsPerPixel));
state.output.setPixel32(state.x, state.y, _local3);
state.i = state.i + _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);
}
}
function encodePixel(pixel) {
var _local3 = (pixel >> 24) & 255;
var _local4 = (pixel >> 16) & 255;
var _local5 = (pixel >> 8) & 255;
var _local2 = pixel & 255;
_local3 = int((_local3 / 256) * _maxPerChannel);
_local4 = int((_local4 / 256) * _maxPerChannel);
_local5 = int((_local5 / 256) * _maxPerChannel);
_local2 = int((_local2 / 256) * _maxPerChannel);
var _local7 = (((_local4 * _maxPerChannel) * _maxPerChannel) + (_local5 * _maxPerChannel)) + _local2;
if (_encodeAlpha) {
_local7 = _local7 + (((_local3 * _maxPerChannel) * _maxPerChannel) * _maxPerChannel);
}
return(_baseN.encodeUint(_local7, _charsPerPixel));
}
function decodePixel(encodedPixel) {
var _local3 = 255;
var _local5;
var _local6;
var _local4;
var _local7 = 0;
var _local2 = _baseN.decodeUint(encodedPixel);
_local4 = _local2 % _maxPerChannel;
_local2 = _local2 / int(_maxPerChannel);
_local6 = _local2 % _maxPerChannel;
_local2 = _local2 / int(_maxPerChannel);
_local5 = _local2 % _maxPerChannel;
_local2 = _local2 / int(_maxPerChannel);
if (_encodeAlpha) {
_local3 = _local2 % _maxPerChannel;
_local2 = _local2 / int(_maxPerChannel);
}
return((((_local3 << 24) | (_local5 << 16)) | (_local6 << 8)) | _local4);
}
static var DEFAULT_HASH = "0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&";
var _hash = DEFAULT_HASH;
var _charsPerPixel = 2;
static var WORK_INTERVAL = 33.3333333333333;
}
Symbol 42 MovieClip [__Packages.com.newgrounds.SaveFile] Frame 0
class com.newgrounds.SaveFile extends com.newgrounds.APIEventDispatcher
{
static var _currentFile;
var _iconLoader, _group, _keys, _ratings, _numVotes, _name, _description, _id, _data, _dataLoader, _fileSize, _readOnly, _draft, _authorId, _authorName, _views, _createdDate, _modifiedDate, dispatchEvent, _encodedIcon, _encodedData, _encoderQueue, _encoding, _dataLoaded, _encodingParent, _encodingProperty, _dataURL;
function SaveFile (group) {
super();
_iconLoader = new com.newgrounds.BitmapLoader(DEFAULT_ICON, null);
_group = group;
_keys = {};
_ratings = {};
_numVotes = {};
}
static function get currentFile() {
return(_currentFile);
}
static function fromObject(group, fileData) {
var _local3 = new com.newgrounds.SaveFile(group);
_local3._name = fileData.filename;
_local3._description = fileData.description;
_local3._id = fileData.save_id;
_local3._authorId = fileData.user_id;
_local3._authorName = fileData.user_name;
_local3._createdDate = fileData.created;
_local3._modifiedDate = fileData.last_update;
_local3._views = fileData.views;
if (fileData.thumb && (fileData.thumb != "")) {
_local3._iconLoader.__set__url(_imageFilePath + fileData.thumb);
}
_local3._dataURL = _saveFilePath + fileData.file;
_local3._fileSize = fileData.file_size;
_local3._approved = fileData.status != STATUS_UNAPPROVED;
_local3._readOnly = false;
_local3._public = (fileData.status != STATUS_PRIVATE) && (fileData.status != STATUS_UNAPPROVED);
for (var _local8 in fileData.keys) {
var _local6 = fileData.keys[_local8];
var _local4 = group.getKeyById(_local6.id);
if (_local4) {
_local3._keys[_local4.__get__name()] = _local4.validateValue(_local6.value);
}
}
for (var _local9 in fileData.ratings) {
var _local5 = fileData.ratings[_local9];
var _local2 = group.getRatingById(_local5.id);
if (_local2) {
_local3._ratings[_local2.__get__name()] = _local2.validateValue(_local5.score);
_local3._numVotes[_local2.__get__name()] = int(_local5.votes);
}
}
return(_local3);
}
function get group() {
return(_group);
}
function get name() {
return(_name);
}
function set name(val) {
_name = val;
//return(name);
}
function get description() {
return(_description);
}
function set description(val) {
_description = val;
//return(description);
}
function get id() {
return(_id);
}
function get data() {
return(_data);
}
function set data(val) {
_data = val;
//return(data);
}
function get bytesLoaded() {
if (_data) {
return(bytesTotal);
}
if (!_dataLoader) {
return(0);
}
return(_dataLoader.getBytesLoaded());
}
function get bytesTotal() {
return(_fileSize);
}
function get readOnly() {
return(_readOnly);
}
function get draft() {
return(_draft);
}
function set draft(v) {
_draft = v;
//return(draft);
}
function get authorId() {
return(_authorId);
}
function get authorName() {
return(_authorName);
}
function get keys() {
return(_keys);
}
function get ratings() {
return(_ratings);
}
function get numVotes() {
return(_numVotes);
}
function get views() {
return(_views);
}
function get createdDate() {
return(_createdDate);
}
function get updatedDate() {
return(_modifiedDate);
}
function toString() {
return("Save File: " + _name);
}
function get icon() {
return(_iconLoader.__get__bitmapData());
}
function set icon(v) {
createIcon(v);
//return(icon);
}
function get iconLoaded() {
return(_iconLoader.__get__loaded());
}
function createIcon(source) {
var _local9 = new flash.display.BitmapData(ICON_WIDTH, ICON_HEIGHT, false, 0);
var _local7;
var _local6;
var _local10 = 0;
var _local8 = 0;
if (source instanceof flash.display.BitmapData) {
_local7 = source.width;
_local6 = source.height;
} else if (source instanceof MovieClip) {
var _local2 = MovieClip(source).getBounds(source);
_local7 = _local2.xMax - _local2.xMin;
_local6 = _local2.yMax - _local2.yMin;
_local10 = _local2.xMin;
_local8 = _local2.yMin;
}
var _local4 = new flash.geom.Matrix();
var _local5;
_local5 = Math.min(ICON_WIDTH / _local7, ICON_HEIGHT / _local6);
_local4.translate(-_local10, -_local8);
_local4.scale(_local5, _local5);
_local4.translate((ICON_WIDTH - (_local7 * _local5)) / 2, (ICON_HEIGHT - (_local6 * _local5)) / 2);
_local9.draw(source, _local4);
_iconLoader.__set__bitmapData(_local9);
}
function attachIcon(parent) {
if (_iconLoader) {
return(_iconLoader.attachBitmap(parent));
}
com.newgrounds.Logger.logError("No icon available for this sumbission.");
return(null);
}
function deleteFile() {
if (!_group.__get__connection().__get__hasUserSession()) {
com.newgrounds.Logger.logError("The user must be logged-in to delete a file.");
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_DELETED, null, com.newgrounds.APIEvent.ERROR_NOT_LOGGED_IN));
return(undefined);
}
if (!_id) {
com.newgrounds.Logger.logError("The file does not exist.");
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_DELETED, null, com.newgrounds.APIEvent.ERROR_NOT_LOGGED_IN));
return(undefined);
}
var _local2 = new com.newgrounds.APICommand("deleteSaveFile");
_local2.__get__secureParameters().save_id = _id;
_local2.addEventListener(com.newgrounds.APIEvent.COMMAND_COMPLETE, {target:this, func:onFileDeleted});
_group.__get__connection().sendCommand(_local2);
}
function save() {
if (!_group.__get__connection().__get__hasUserSession()) {
com.newgrounds.Logger.logError("The user must be logged-in to save a file.");
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_SAVED, null, com.newgrounds.APIEvent.ERROR_NOT_LOGGED_IN));
return(undefined);
}
com.newgrounds.BitmapLoader._cacheSeed++;
_currentFile = this;
if (iconLoaded) {
ICON_IMAGE_SCANNER.encode(icon, onIconEncoded, this);
} else {
encodeData(true);
}
}
function onIconEncoded(encodedIcon) {
_encodedIcon = encodedIcon;
encodeData(true);
}
function doSave() {
var _local4 = new com.newgrounds.APICommand("saveFile");
_local4.__get__secureParameters().group = _group.id;
_local4.__get__secureParameters().user_name = _group.__get__connection().username;
_local4.__get__secureParameters().filename = _name;
_local4.__get__secureParameters().description = _description;
if (_draft) {
_local4.__get__secureParameters().draft = true;
}
if (_id && (!_readOnly)) {
_local4.__get__secureParameters().overwrite = 1;
_local4.__get__secureParameters().save_id = _id;
}
var _local8 = [];
for (var _local9 in _keys) {
var _local2 = _group.getKey(_local9);
if (_local2) {
_local8.push({id:_local2.__get__id(), value:_local2.validateValue(_keys[_local9])});
} else {
com.newgrounds.Logger.logError(((("No key named \"" + _local9) + "\" in save group \"") + _group.__get__name()) + "\".");
}
}
_local4.__get__secureParameters().keys = _local8;
var _local7 = [];
for (var _local10 in _ratings) {
var _local3 = _group.getRating(_local10);
if (_local3) {
_local7.push({id:_local3.__get__id(), value:_local3.validateValue(_ratings[_local10])});
} else {
com.newgrounds.Logger.logError(((("No rating named \"" + _local10) + "\" in save group \"") + _group.__get__name()) + "\".");
}
}
_local4.__get__secureParameters().ratings = _local7;
if (typeof(_encodedData) == "string") {
_local4.addFile("file", _encodedData, "file");
} else {
_local4.addFile("file", com.newgrounds.encoders.json.JSON.encode(_encodedData), "file");
}
if (iconLoaded) {
_local4.addFile("thumbnail", _encodedIcon, "thumbnail");
}
_local4.addEventListener(com.newgrounds.APIEvent.COMMAND_COMPLETE, {target:this, func:onSaveComplete});
_group.__get__connection().sendCommand(_local4);
}
function encodeData(encode) {
_encoderQueue = [];
_encoding = encode;
if (encode) {
_encodedData = _data;
preEncodeObject(this, "_encodedData");
} else {
preEncodeObject(this, "_data");
}
encodeObject();
}
function preEncodeObject(parent, property) {
var _local3 = parent[property];
var _local5;
try {
if (_encoding) {
_local5 = _local3 instanceof flash.display.BitmapData;
} else {
_local5 = _local3.type == "__bitmap";
}
} catch(error) {
}
var _local2 = _local3;
var _local8;
if (_local5) {
_encoderQueue.push({parent:parent, property:property});
} else if ((typeof(_local3) == "object") && (!_local8)) {
if (_encoding) {
if (_local3 instanceof Array) {
_local2 = [];
} else {
_local2 = {};
}
for (var _local4 in _local3) {
_local2[_local4] = _local3[_local4];
}
parent[property] = _local2;
}
for (var _local4 in _local2) {
preEncodeObject(_local2, _local4);
}
}
}
function encodeObject() {
if (!_encoderQueue.length) {
if (_encoding) {
doSave();
} else {
_dataLoaded = true;
checkLoadComplete();
}
return(undefined);
}
var _local6 = _encoderQueue.pop();
var _local4 = _local6.parent;
var _local3 = _local6.property;
var _local2 = _local4[_local3];
var _local5;
if (_encoding) {
_local5 = {type:"__bitmap", width:_local2.width, height:_local2.height, transparent:_local2.transparent};
_local4[_local3] = _local5;
_encodingParent = _local5;
_encodingProperty = "data";
DATA_IMAGE_SCANNER.__set__encodeAlpha(_local2.transparent);
DATA_IMAGE_SCANNER.encode(flash.display.BitmapData(_local2), encodeBitmapComplete, this);
} else {
_encodingParent = _local4;
_encodingProperty = _local3;
DATA_IMAGE_SCANNER.__set__encodeAlpha(_local2.transparent);
DATA_IMAGE_SCANNER.decode(String(_local2.data), encodeBitmapComplete, this);
}
}
function encodeBitmapComplete(data) {
_encodingParent[_encodingProperty] = data;
encodeObject();
}
function load() {
_currentFile = this;
_dataLoaded = false;
_data = null;
if (!iconLoaded) {
_iconLoader.addEventListener(com.newgrounds.APIEvent.ICON_LOADED, {target:this, func:onIconLoaded});
_iconLoader.load();
}
_dataLoader = new LoadVars();
var file = this;
_dataLoader.onData = function (data) {
file.onDataLoaded(data);
};
_dataLoader.load((_dataURL + "&random=") + Math.random());
}
function onIconLoaded(event) {
if ((!event.__get__success()) && (_iconLoader.__get__url())) {
com.newgrounds.Logger.logWarning("Unable to load the icon for this save file.");
}
_iconLoader.removeEventListener(com.newgrounds.APIEvent.ICON_LOADED, onIconLoaded);
checkLoadComplete();
}
function checkLoadComplete() {
if (_dataLoaded && (iconLoaded)) {
com.newgrounds.Logger.logMessage("Data loaded.");
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_LOADED, this));
}
}
function onDataLoaded(data) {
try {
if (data) {
if (data.charAt(0) == "{") {
_data = com.newgrounds.encoders.json.JSON.decode(String(data));
} else {
_data = String(data);
}
encodeData(false);
}
} catch(error:Error) {
com.newgrounds.Logger.logError("Error while loading data:", error);
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_LOADED, this, com.newgrounds.APIEvent.ERROR_BAD_FILE));
}
}
function onDataError(error) {
com.newgrounds.Logger.logError("Unable to load data:", error);
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_LOADED, this, com.newgrounds.APIEvent.ERROR_BAD_FILE));
}
function onSaveComplete(event) {
if (event.__get__success()) {
com.newgrounds.Logger.logMessage(("File \"" + _name) + "\" saved!");
if (event.__get__data()) {
_id = event.__get__data().save_id;
_dataURL = unescape(event.__get__data().file_url);
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_SAVED, this));
} else {
com.newgrounds.Logger.logError(("Error saving file \"" + _name) + "\":", event.__get__error());
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_SAVED, this, event.__get__error()));
}
}
function sendVote(ratingName, vote) {
var _local2 = _group.getRating(ratingName);
if (!_local2) {
com.newgrounds.Logger.logError(("No save rating named \"" + ratingName) + "\" exists for this save group.");
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.VOTE_COMPLETE, {}, com.newgrounds.APIEvent.ERROR_INVALID_ARGUMENT));
return(undefined);
}
vote = _local2.validateValue(vote);
if (isNaN(vote)) {
com.newgrounds.Logger.logError(((((((("Invalid vote (" + vote) + "). ") + ratingName) + " allows a range of ") + _local2.__get__minimum()) + "-") + _local2.__get__maximum()) + ".");
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 ") + _name) + "...");
_group.__get__connection().sendSimpleCommand("rateSaveFile", {target:this, func:onVoteComplete}, null, {group:_group.__get__id(), save_id:_id, rating_id:_local2.__get__id(), vote:vote});
}
function onVoteComplete(event) {
var _local2 = event.__get__error();
if (event.__get__data().already_voted) {
com.newgrounds.Logger.logError("Vote failed. You've already voted on this rating today.");
_local2 = com.newgrounds.APIEvent.ERROR_ALREADY_VOTED;
}
if (_local2 == com.newgrounds.APIEvent.ERROR_NONE) {
var _local3 = _group.getRatingById(event.__get__data().rating_id);
if (_local3) {
_ratings[_local3.__get__name()] = _local3.validateValue(event.__get__data().score);
}
com.newgrounds.Logger.logMessage("Vote complete!");
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.VOTE_COMPLETE, this, _local2));
}
function onFileDeleted(event) {
if (event.__get__success()) {
_id = 0;
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.FILE_DELETED, this, event.__get__error()));
}
function clone() {
var _local3 = new com.newgrounds.SaveFile(_group);
_local3._data = _data;
_local3._description = _description;
_local3._draft = _draft;
_local3._fileSize = _fileSize;
_local3._iconLoader.__set__bitmapData(_iconLoader.bitmapData);
var _local2;
for (_local2 in _keys) {
_local3._keys[_local2] = _keys[_local2];
}
for (_local2 in _ratings) {
_local3._ratings[_local2] = _ratings[_local2];
}
for (_local2 in _numVotes) {
_local3._numVotes[_local2] = _numVotes[_local2];
}
_local3._name = _name;
return(_local3);
}
static var ICON_WIDTH = 90;
static var ICON_HEIGHT = 90;
static var DEFAULT_ICON = new flash.display.BitmapData(ICON_WIDTH, ICON_HEIGHT, false, 0);
static var STATUS_PRIVATE = 0;
static var STATUS_SHARED = 1;
static var STATUS_UNAPPROVED = 2;
static var STATUS_APPROVED = 3;
static var _imageFilePath = "";
static var _saveFilePath = "";
static var ICON_IMAGE_SCANNER = new com.newgrounds.encoders.ImageScanner();
static var DATA_IMAGE_SCANNER = new com.newgrounds.encoders.ImageScanner(64, 6);
}
Symbol 40 MovieClip [__Packages.com.newgrounds.SaveGroup] Frame 0
class com.newgrounds.SaveGroup
{
var _connection, _id, _name, _type, _keysArray, _ratingsArray, _keys, _ratings;
function SaveGroup (connection, name, id, type, keys, ratings) {
_connection = connection;
_id = id;
_name = name;
_type = type;
_keysArray = keys;
_ratingsArray = ratings;
_keys = new Object();
_ratings = new Object();
var _local11;
for (var _local7 in keys) {
var _local2 = keys[_local7];
_keys[_local2.__get__name()] = _local2;
}
for (var _local6 in ratings) {
var _local3 = ratings[_local6];
_ratings[_local3.__get__name()] = _local3;
}
}
function get connection() {
return(_connection);
}
function get name() {
return(_name);
}
function get type() {
return(_type);
}
function get id() {
return(_id);
}
function get keys() {
return(_keysArray);
}
function get ratings() {
return(_ratingsArray);
}
function getKey(name) {
return(_keys[name]);
}
function getRating(name) {
return(_ratings[name]);
}
function getKeyById(id) {
for (var _local4 in _keys) {
var _local2 = _keys[_local4];
if (_local2.__get__id() == id) {
return(_local2);
}
}
return(null);
}
function getRatingById(id) {
for (var _local4 in _ratings) {
var _local2 = _ratings[_local4];
if (_local2.__get__id() == id) {
return(_local2);
}
}
return(null);
}
function toString() {
return((((("SaveGroup: " + name) + " Keys: ") + _keysArray) + " Ratings: ") + _ratingsArray);
}
static var TYPE_SYSTEM = 0;
static var TYPE_PRIVATE = 1;
static var TYPE_PUBLIC = 2;
static var TYPE_MODERATED = 3;
}
Symbol 38 MovieClip [__Packages.com.newgrounds.SaveKey] Frame 0
class com.newgrounds.SaveKey
{
var _name, _id, _type;
function SaveKey (name, id, type) {
_name = name;
_id = id;
_type = type;
}
function get name() {
return(_name);
}
function get id() {
return(_id);
}
function get type() {
return(_type);
}
function validateValue(value) {
switch (_type) {
case TYPE_INTEGER :
value = Number(value);
if (!isNaN(value)) {
var _local3 = int(value);
if (_local3 != value) {
com.newgrounds.Logger.logWarning(((((("Float value " + value) + " given for integer key \"") + _name) + "\". Clamping to ") + _local3) + ".");
}
return(_local3);
}
break;
case TYPE_FLOAT :
value = Number(value);
if (!isNaN(value)) {
return(isNaN(Number(value)));
}
break;
case TYPE_BOOLEAN :
return(Boolean(value) && (int(value) != 0));
case TYPE_STRING :
return((value ? (value.toString()) : ""));
}
return(null);
}
function toString() {
return(_name);
}
static var TYPE_FLOAT = 1;
static var TYPE_INTEGER = 2;
static var TYPE_STRING = 3;
static var TYPE_BOOLEAN = 4;
}
Symbol 39 MovieClip [__Packages.com.newgrounds.SaveRating] Frame 0
class com.newgrounds.SaveRating
{
var _name, _id, _isFloat, _minimum, _maximum;
function SaveRating (name, id, isFloat, minimum, maximum) {
_name = name;
_id = id;
_isFloat = isFloat;
_minimum = minimum;
_maximum = maximum;
}
function get name() {
return(_name);
}
function get id() {
return(_id);
}
function get isFloat() {
return(_isFloat);
}
function get minimum() {
return(_minimum);
}
function get maximum() {
return(_maximum);
}
function validateValue(value) {
var _local2 = Number(value);
if (isNaN(_local2)) {
com.newgrounds.Logger.logError(("Invalid value for rating \"" + _name) + "\".");
return(NaN);
}
if (_local2 < _minimum) {
com.newgrounds.Logger.logWarning(((((_local2 + " is out of acceptable range for rating \"") + _name) + "\". Clamping to ") + _minimum) + ".");
return(_minimum);
}
if (_local2 > _maximum) {
com.newgrounds.Logger.logWarning(((((_local2 + " is out of acceptable range for rating \"") + _name) + "\". Clamping to ") + _maximum) + ".");
return(_maximum);
}
if (!isFloat) {
var _local3 = int(_local2);
if (_local3 != _local2) {
com.newgrounds.Logger.logWarning(((((("Float value " + _local2) + " given for integer rating \"") + _name) + "\". Clamping to ") + _local3) + ".");
}
return(_local3);
}
return(_local2);
}
function toString() {
return(_name);
}
}
Symbol 34 MovieClip [__Packages.com.newgrounds.BitmapLoader] Frame 0
class com.newgrounds.BitmapLoader extends com.newgrounds.APIEventDispatcher
{
var _bitmapData, _url, _loader, _loaderClip, dispatchEvent;
function BitmapLoader (defaultBitmap, url) {
super();
_bitmapData = defaultBitmap;
_url = url;
}
function get url() {
return(_url);
}
function set url(v) {
_loaded = false;
_url = v;
//return(url);
}
function get bitmapData() {
return(_bitmapData);
}
function set bitmapData(v) {
_bitmapData = v;
_loaded = true;
//return(bitmapData);
}
function get loaded() {
return(_loaded);
}
function disposeLoader() {
if (_loader) {
if (_loaderClip._parent == _root) {
_loader.unloadClip(_loaderClip.bitmap);
_loaderClip.removeMovieClip();
}
_loader = null;
_loaderClip = null;
}
}
function load() {
if ((!_url) || (_url == "")) {
onLoadComplete();
return(undefined);
}
_loaded = false;
if (_bitmapData) {
_bitmapData.dispose();
_bitmapData = null;
}
disposeLoader();
attachBitmap(null);
}
function attachBitmap(parent) {
if (!parent) {
parent = _root;
}
var _local5 = parent.getNextHighestDepth();
var _local3 = parent.createEmptyMovieClip("__bitmap" + _local5, _local5);
if (((!_loaded) && (_url)) && (_url != "")) {
_local3.createEmptyMovieClip("bitmap", 0);
_loader = new MovieClipLoader();
_loaderClip = _local3;
if (parent == _root) {
_loaderClip._visible = false;
}
var thisObj = this;
_loaderClip.onEnterFrame = function () {
thisObj.pollLoad();
};
_loader.addListener({onLoadError:function () {
thisObj.onLoadComplete();
}});
_loader.loadClip(_url, _local3.bitmap);
} else {
_local3.attachBitmap(_bitmapData, 0);
}
return(_local3);
}
function pollLoad() {
if (_loaderClip._width) {
onLoadComplete();
}
}
function onLoadComplete() {
var _local2;
if ((_loader && (_loaderClip)) && (_loaderClip._width)) {
try {
_loaderClip.onEnterFrame = null;
_local2 = new flash.display.BitmapData(_loaderClip._width, _loaderClip._height, true, 0);
_local2.draw(_loaderClip);
_bitmapData = _local2;
_loaded = true;
} catch(error) {
if (_local2) {
_local2.dispose();
}
}
}
disposeLoader();
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.ICON_LOADED, this, (_loaded ? null : (com.newgrounds.APIEvent.ERROR_BAD_FILE))));
}
static var _cacheSeed = 0;
var _loaded = true;
}
Symbol 43 MovieClip [__Packages.com.newgrounds.SaveQuery] Frame 0
class com.newgrounds.SaveQuery extends com.newgrounds.APIEventDispatcher
{
var _group, _connection, _files, _lookupKeys, _lookupRatings, _fileConditions, _keyConditions, _ratingConditions, _sortFields, dispatchEvent;
function SaveQuery (group) {
super();
_group = group;
_connection = group.connection;
reset();
}
function get group() {
return(_group);
}
function get resultsPerPage() {
return(_resultsPerPage);
}
function set resultsPerPage(val) {
_resultsPerPage = Math.min(Math.max(val, 1), 100);
//return(resultsPerPage);
}
function get page() {
return(_page);
}
function set page(val) {
_page = Math.max(val, 1);
//return(page);
}
function prevPage() {
page = ((page-1));
}
function nextPage() {
page = ((page+1));
}
function get isRandomized() {
return(_isRandomized);
}
function set isRandomized(val) {
_isRandomized = val;
//return(isRandomized);
}
function get files() {
return(_files);
}
function reset() {
_page = 1;
_resultsPerPage = 10;
_isRandomized = false;
_lookupKeys = [];
_lookupRatings = [];
_fileConditions = [];
_keyConditions = [];
_ratingConditions = [];
_sortFields = [];
_files = [];
includeAllFields();
}
function clone() {
var _local2 = new com.newgrounds.SaveQuery(_group);
_local2._page = _page;
_local2._resultsPerPage = _resultsPerPage;
_local2._isRandomized = _isRandomized;
_local2._lookupKeys = _lookupKeys.concat();
_local2._lookupRatings = _lookupRatings.concat();
_local2._fileConditions = _fileConditions.concat();
_local2._keyConditions = _keyConditions.concat();
_local2._ratingConditions = _ratingConditions.concat();
return(_local2);
}
function includeAllFields() {
for (var _local5 in _group.__get__keys()) {
var _local2 = _group.__get__keys()[_local5];
_lookupKeys.push(_local2.__get__id());
}
for (var _local4 in _group.__get__ratings()) {
var _local3 = _group.__get__ratings()[_local4];
_lookupRatings.push(_local3.__get__id());
}
}
function addCondition(field, operator, value) {
var _local2;
_local2 = 0;
while (_local2 < FILE_FIELDS.length) {
if (FILE_FIELDS[_local2] == field) {
break;
}
_local2++;
}
if (_local2 == FILE_FIELDS.length) {
_local2 = -1;
}
if (_local2 >= 0) {
_fileConditions.push({field:_local2, operator:operator, value:value});
} else {
var _local4 = _group.getKey(field);
if (_local4) {
value = _local4.validateValue(value);
_keyConditions.push({key_id:_local4.__get__id(), operator:operator, value:value});
return(undefined);
}
var _local3 = field.split(".");
var _local6 = _group.getRating(_local3[0]);
if (_local6) {
if (_local3[1] != "votes") {
value = _local6.validateValue(value);
}
_ratingConditions.push({rating_id:_local6.__get__id(), operator:operator, value:value, column:(_local3[1] ? (_local3[1]) : "score")});
return(undefined);
}
com.newgrounds.Logger.logError(((("The save group \"" + _group.__get__name()) + "\" does not have a field named \"") + field) + "\".");
}
}
function sortOn(field, sortDescending) {
if (sortDescending == undefined) {
sortDescending = false;
}
var _local2;
_local2 = 0;
while (_local2 < FILE_FIELDS.length) {
if (FILE_FIELDS[_local2] == field) {
break;
}
_local2++;
}
if (_local2 == FILE_FIELDS.length) {
_local2 = -1;
}
if (_local2 >= 0) {
_sortFields.push({table:TABLE_FILES, field:_local2, desc:sortDescending});
} else {
var _local5 = _group.getKey(field);
if (_local5) {
_sortFields.push({table:TABLE_KEYS, field:_local5.__get__id(), desc:sortDescending});
return(undefined);
}
var _local3 = field.split(".");
var _local6 = _group.getRating(_local3[0]);
if (_local6) {
_sortFields.push({table:TABLE_RATINGS, field:_local6.__get__id(), desc:sortDescending, extra:(_local3[1] ? (_local3[1]) : "score")});
return(undefined);
}
com.newgrounds.Logger.logError(((("The save group \"" + _group.__get__name()) + "\" does not have a field named \"") + field) + "\".");
}
}
function execute() {
var _local5 = {};
_local5.page = _page;
_local5.num_results = _resultsPerPage;
if (_isRandomized) {
_local5.randomize = 1;
}
if (_lookupKeys && (_lookupKeys.length)) {
_local5.lookup_keys = _lookupKeys;
}
if (_lookupRatings && (_lookupRatings.length)) {
_local5.lookup_ratings = _lookupRatings;
}
if (_fileConditions && (_fileConditions.length)) {
_local5.file_conditions = _fileConditions;
}
if (_keyConditions && (_keyConditions.length)) {
_local5.key_conditions = _keyConditions;
}
if (_ratingConditions && (_ratingConditions.length)) {
_local5.rating_conditions = _ratingConditions;
}
if (_sortFields && (_sortFields.length)) {
_local5.sort_conditions = _sortFields;
}
_connection.sendSimpleCommand("lookupSaveFiles", {target:this, func:onQueryComplete}, {publisher_id:_connection.publisherId, group_id:_group.__get__id(), query:_local5});
}
function onQueryComplete(event) {
if (event.__get__success()) {
var _local4 = event.__get__data();
_files = [];
if (_local4.files) {
var _local2 = 0;
while (_local2 < _local4.files.length) {
var _local3 = com.newgrounds.SaveFile.fromObject(_group, _local4.files[_local2]);
if (_local3) {
_files.push(_local3);
}
_local2++;
}
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.QUERY_COMPLETE, this));
} else {
com.newgrounds.Logger.logError("Query failed: " + event.__get__error());
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.QUERY_COMPLETE, this, event.__get__error()));
}
}
static var FILE_ID = "fileId";
static var AUTHOR_ID = "authorId";
static var AUTHOR_NAME = "authorName";
static var FILE_NAME = "fileName";
static var CREATED_ON = "createdOn";
static var UPDATED_ON = "updatedOn";
static var FILE_VIEWS = "fileViews";
static var FILE_STATUS = "fileStatus";
static var FILE_FIELDS = [FILE_ID, AUTHOR_ID, AUTHOR_NAME, FILE_NAME, CREATED_ON, UPDATED_ON, FILE_VIEWS, FILE_STATUS];
static var OPERATOR_EQUAL = "=";
static var OPERATOR_LESS_THAN = "<";
static var OPERATOR_GREATER_THAN = ">";
static var OPERATOR_NOT_EQUAL = "!=";
static var OPERATOR_LESS_OR_EQUAL = "<=";
static var OPERATOR_GREATER_OR_EQUAL = ">=";
static var OPERATOR_CONTAINS = "*";
static var OPERATOR_NOT_CONTAINS = "!*";
static var OPERATOR_NOT_BEGINS_WITH = "!*=";
static var OPERATOR_NOT_ENDS_WITH = "!=*";
static var OPERATOR_BEGINS_WITH = "*=";
static var OPERATOR_ENDS_WITH = "=*";
static var TABLE_FILES = 1;
static var TABLE_KEYS = 2;
static var TABLE_RATINGS = 3;
var _page = 1;
var _resultsPerPage = 10;
var _isRandomized = false;
}
Symbol 35 MovieClip [__Packages.com.newgrounds.Medal] Frame 0
class com.newgrounds.Medal extends com.newgrounds.APIEventDispatcher
{
var _connection, _id, _name, _description, _secret, _unlocked, _value, _difficulty, _iconLoader, dispatchEvent;
function Medal (connection, id, name, description, secret, unlocked, value, difficultyId, iconURL) {
super();
_connection = connection;
_id = id;
_name = name;
_description = description;
_secret = secret;
_unlocked = unlocked;
_value = value;
_difficulty = DIFFICULTIES[difficultyId];
_iconLoader = new com.newgrounds.BitmapLoader(DEFAULT_ICON, iconURL);
_iconLoader.load();
}
function get difficulty() {
return(_difficulty);
}
function get icon() {
return(_iconLoader.__get__bitmapData());
}
function get id() {
return(_id);
}
function get name() {
return(_name);
}
function get description() {
return(_description);
}
function get secret() {
return(_secret);
}
function get unlocked() {
return(_unlocked);
}
function get value() {
return(_value);
}
function toString() {
return((((((("Medal: " + _name) + "\t\t(") + (_unlocked ? "unlocked, " : "locked, ")) + _value) + "pts, ") + _difficulty) + ")");
}
function attachIcon(parent) {
return(_iconLoader.attachBitmap(parent));
}
function unlock() {
if (_unlocked) {
com.newgrounds.Logger.logWarning(("Medal \"" + _name) + "\" is already unlocked.");
return(undefined);
}
com.newgrounds.Logger.logMessage(("Unlocking medal \"" + name) + "\"...");
_unlocked = true;
if (_connection.__get__hasUserSession()) {
_connection.sendSimpleCommand("unlockMedal", {target:this, func:onUnlockConfirmed}, null, {medal_id:id});
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.MEDAL_UNLOCKED, this));
}
function setUnlocked(unlocked) {
_unlocked = unlocked;
}
function onUnlockConfirmed(event) {
if (event.__get__success()) {
com.newgrounds.Logger.logMessage(("Medal \"" + name) + "\" unlocked.");
} else {
com.newgrounds.Logger.logError(("Failed to unlock \"" + name) + "\"!");
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.MEDAL_UNLOCK_CONFIRMED, this, event.__get__error()));
}
static var ICON_WIDTH = 50;
static var ICON_HEIGHT = 50;
static var DEFAULT_ICON = flash.display.BitmapData.loadBitmap("DefaultMedalIcon");
static var DIFFICULTY_EASY = "Easy";
static var DIFFICULTY_MODERATE = "Moderate";
static var DIFFICULTY_CHALLENGING = "Challenging";
static var DIFFICULTY_DIFFICULT = "Difficult";
static var DIFFICULTY_BRUTAL = "Brutal";
static var DIFFICULTIES = ["Unknown", DIFFICULTY_EASY, DIFFICULTY_MODERATE, DIFFICULTY_CHALLENGING, DIFFICULTY_DIFFICULT, DIFFICULTY_BRUTAL];
}
Symbol 37 MovieClip [__Packages.com.newgrounds.ScoreBoard] Frame 0
class com.newgrounds.ScoreBoard extends com.newgrounds.APIEventDispatcher
{
var _connection, _name, _id, _scores, _tag, dispatchEvent;
function ScoreBoard (connection, name, id) {
super();
_connection = connection;
_name = name;
_id = id;
}
function get name() {
return(_name);
}
function get scores() {
return(_scores);
}
function get period() {
return(_period);
}
function set period(val) {
_period = val;
//return(period);
}
function get firstResult() {
return(_firstResult);
}
function set firstResult(val) {
_firstResult = Math.max(1, val);
//return(firstResult);
}
function get numResults() {
return(_numResults);
}
function set numResults(val) {
_numResults = val;
//return(numResults);
}
function get tag() {
return(_tag);
}
function set tag(val) {
_tag = val;
//return(tag);
}
function get page() {
return(Math.ceil((_firstResult - 1) / _numResults) + 1);
}
function prevPage() {
if (firstResult > _numResults) {
firstResult = firstResult - _numResults;
}
}
function nextPage() {
firstResult = firstResult + _numResults;
}
function loadScores() {
_connection.sendSimpleCommand("loadScores", {target:this, func:onScoresLoaded}, {publisher_id:_connection.publisherId, board:_id, page:((_firstResult - 1) / _numResults) + 1, num_results:_numResults, period:_period, tag:_tag});
}
function postScore(numericScore, tag) {
if (tag == undefined) {
tag = null;
}
if (isNaN(numericScore)) {
com.newgrounds.Logger.logError("Cannot post invalid score: " + numericScore);
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 ") + _connection.username) + " to scoreboard \"") + _name) + "\"...");
_connection.sendSimpleCommand("postScore", {target:this, func:onScorePosted}, null, {user_name:_connection.username, board:_id, value:numericScore, tag:tag});
}
function onScoresLoaded(event) {
var _local4 = event.__get__data();
_scores = [];
var _local5;
if (_local4.first_result) {
_local5 = _local4.first_result;
} else {
_local5 = _firstResult;
}
if (_local4.scores) {
var _local3 = 0;
while (_local3 < _local4.scores.length) {
var _local2 = _local4.scores[_local3];
if (_local2) {
_scores[_local3] = new com.newgrounds.Score(_local5, _local2.username, _local2.value, _local2.numeric_value, _local2.tag);
}
_local3++;
_local5++;
}
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.SCORES_LOADED, this));
}
function onScorePosted(event) {
if (event.__get__success()) {
com.newgrounds.Logger.logMessage("Score posted!");
var _local4 = event.__get__data();
var _local2 = {};
_local2.score = _local4.value;
_local2.scoreBoard = this;
} else {
com.newgrounds.Logger.logError("Error posting score: " + event.__get__error());
}
dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.SCORE_POSTED, _local2, event.__get__error()));
}
function toString() {
return("Scoreboard: " + _name);
}
static var TODAY = "Today";
static var THIS_WEEK = "This Week";
static var THIS_MONTH = "This Month";
static var THIS_YEAR = "This Year";
static var ALL_TIME = "All-Time";
var _period = ALL_TIME;
var _firstResult = 1;
var _numResults = 10;
}
Symbol 26 MovieClip [__Packages.com.newgrounds.Logger] Frame 0
class com.newgrounds.Logger
{
function Logger () {
}
static function logInternal() {
var _local2 = arguments;
log(PRIORITY_INTERNAL, _local2);
}
static function logMessage() {
var _local2 = arguments;
log(PRIORITY_MESSAGE, _local2);
}
static function logWarning() {
var _local2 = arguments;
log(PRIORITY_WARNING, _local2);
}
static function logError() {
var _local2 = arguments;
log(PRIORITY_ERROR, _local2);
}
static function log(priority, messages) {
if (priority == undefined) {
priority = PRIORITY_MESSAGE;
}
if (messages == undefined) {
messages = null;
}
if (priority >= _messageLevel) {
var _local1 = 0;
while (_local1 < messages.length) {
trace(HEADER + messages[_local1]);
_eventDispatcher.dispatchEvent(new com.newgrounds.APIEvent(com.newgrounds.APIEvent.LOG, messages[_local1]));
_local1++;
}
}
if (priority >= _throwLevel) {
throw new Error(messages.join(newline));
}
}
static function addEventListener(event, listener) {
_eventDispatcher.addEventListener(event, listener, false, 0, false);
}
static var PRIORITY_INTERNAL = 0;
static var PRIORITY_MESSAGE = 1;
static var PRIORITY_WARNING = 2;
static var PRIORITY_ERROR = 3;
static var PRIORITY_MAX = 4;
static var HEADER = "[Newgrounds API] :: ";
static var _eventDispatcher = new com.newgrounds.EventDispatcher();
static var _messageLevel = PRIORITY_MESSAGE;
static var _throwLevel = PRIORITY_MAX;
}
Symbol 45 MovieClip [__Packages.com.newgrounds.components.FlashAdBase] Frame 0
class com.newgrounds.components.FlashAdBase extends MovieClip
{
var gotoAndStop, _x, _y, stop, onUnload, _adListener, adContainer, newgroundsButton, _fullScreen, clear, _ad, _adFeedLoader, _width, _height, beginFill, moveTo, lineTo, endFill;
function FlashAdBase () {
super();
try {
System.security.allowDomain("server.cpmstar.com");
System.security.allowInsecureDomain("server.cpmstar.com");
} catch(error) {
}
gotoAndStop("idle");
_x = int(_x);
_y = int(_y);
stop();
if (_newgroundsButton) {
_newgroundsButton.onRelease = onNGClick;
}
onUnload = removeAd;
var _local4 = this;
_adListener = {onLoadError:function (target, error, httpStatus) {
target._parent.onAdError(target, error, httpStatus);
}};
if (fullScreen) {
drawFullScreenRect();
}
if (com.newgrounds.API.__get__adFeedURL()) {
loadAdFeed();
} else {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.API_CONNECTED, {target:this, func:loadAdFeed});
}
}
function get _adContainer() {
return(adContainer);
}
function get _newgroundsButton() {
return(newgroundsButton);
}
function get fullScreen() {
return(_fullScreen);
}
function set fullScreen(v) {
_fullScreen = v;
if (v) {
drawFullScreenRect();
} else {
clear();
}
//return(fullScreen);
}
function get showBorder() {
return(_showBorder);
}
function set showBorder(value) {
_showBorder = value;
if (_showBorder) {
if (_ad) {
var _local2 = _ad.getProgress(_adContainer);
if (_local2.bytesLoaded >= _local2.bytesTotal) {
gotoAndStop("loaded");
} else {
gotoAndStop("loading");
}
} else {
gotoAndStop("idle");
}
} else {
gotoAndStop("noBorder");
}
//return(showBorder);
}
function loadAdFeed(event) {
if (event == undefined) {
event = null;
}
_adFeedLoader = new LoadVars();
var target = this;
_adFeedLoader.onData = function (data) {
target.onAdFeedLoaded(data);
};
_adFeedLoader.load(com.newgrounds.API.__get__adFeedURL(), _adFeedLoader);
}
function onAdFeedLoaded(data) {
if (data && (data != "")) {
loadAd(data);
} else {
onAdError();
}
}
function loadAd(adURL) {
if (adType != VIDEO_ADS) {
if (adURL.indexOf("?") >= 0) {
adURL = adURL + "&";
} else {
adURL = adURL + "?";
}
adURL = adURL + "blockoverlays=1";
}
_ad = new MovieClipLoader();
_ad.addListener(_adListener);
_adContainer._lockroot = true;
_ad.loadClip(adURL, _adContainer);
}
function removeAd() {
_adFeedLoader.onData = null;
_adFeedLoader = null;
_ad.removeListener(_adListener);
if (_adContainer) {
_ad.unloadClip(_adContainer);
}
_ad = null;
}
function onAdError(target, error, httpStatus) {
com.newgrounds.Logger.logError("Unable to load ad.");
removeAd();
}
function onNGClick() {
com.newgrounds.API.loadNewgrounds();
}
function drawFullScreenRect() {
_x = (Stage.width - _width) / 2;
_y = (Stage.height - _height) / 2;
beginFill(0);
moveTo(-Stage.width, -Stage.height);
lineTo(Stage.width, -Stage.height);
lineTo(Stage.width, Stage.height);
lineTo(-Stage.width, Stage.height);
lineTo(-Stage.width, -Stage.height);
endFill();
}
var _showBorder = true;
var adType = com.newgrounds.components.FlashAdBase.prototype.VIDEO_ADS;
var VIDEO_ADS = "Video";
var SIMPLE_ADS = "Simple";
}
Symbol 2522 MovieClip [__Packages.mochi.as2.MochiEventDispatcher] Frame 0
class mochi.as2.MochiEventDispatcher
{
var eventTable;
function MochiEventDispatcher () {
eventTable = {};
}
function buildDelegate(thisObject, thatObject) {
var _local2 = {thisObject:thisObject, thatObject:thatObject};
if (thatObject != undefined) {
var funct = ((typeof(thatObject) == "string") ? (thisObject[thatObject]) : (thatObject));
_local2.delegate = function (args) {
funct.call(thisObject, args);
};
} else {
_local2.delegate = thisObject;
}
return(_local2);
}
function compareDelegate(d_A, d_B) {
if ((d_A.thisObject != d_B.thisObject) || (d_A.thatObject != d_B.thatObject)) {
return(false);
}
return(true);
}
function addEventListener(event, thisObject, thatObject) {
removeEventListener(event, thisObject, thatObject);
eventTable[event].push(buildDelegate(thisObject, thatObject));
}
function removeEventListener(event, thisObject, thatObject) {
var _local3 = buildDelegate(thisObject, thatObject);
if (eventTable[event] == undefined) {
eventTable[event] = [];
return(undefined);
}
for (var _local4 in eventTable[event]) {
if (!compareDelegate(eventTable[event][_local4], _local3)) {
continue;
}
eventTable[event].splice(Number(_local4), 1);
}
}
function triggerEvent(event, args) {
if (eventTable[event] == undefined) {
return(undefined);
}
for (var _local4 in eventTable[event]) {
eventTable[event][_local4].delegate(args);
}
}
}
Symbol 2523 MovieClip [__Packages.mochi.as2.MochiServices] Frame 0
class mochi.as2.MochiServices
{
static var _id, _container, _clip, _sendChannelName, __get__comChannelName, onError, _listenChannel, _sendChannel;
function MochiServices () {
}
static function get id() {
return(_id);
}
static function get clip() {
return(_container);
}
static function get childClip() {
return(_clip);
}
static function getVersion() {
return("3.9.2 as2");
}
static function allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function get isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function set comChannelName(val) {
if (val != undefined) {
if (val.length > 3) {
_sendChannelName = val + "_fromgame";
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
warnID(id, false);
if ((!_connected) && (_clip == undefined)) {
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.as2.MochiServices.onError = onError;
} else if (mochi.as2.MochiServices.onError == undefined) {
mochi.as2.MochiServices.onError = function (errorCode) {
trace(errorCode);
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.close();
}
}
static function init(id, clip) {
_id = id;
if (clip != undefined) {
_container = clip;
} else {
_container = _root;
}
loadCommunicator(id, _container);
}
static function loadCommunicator(id, clip) {
var _local6 = "_mochiservices_com_" + id;
var _local5 = new MovieClipLoader();
var _local3 = {};
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
if (urlOptions().servURL) {
_servURL = urlOptions().servURL;
}
var _local4 = _servURL + _services;
if (urlOptions().servicesURL) {
_local4 = urlOptions().servicesURL;
}
allowDomains(_local4);
_clip = clip.createEmptyMovieClip(_local6, 10336, false);
_listenChannelName = _listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor(Math.random() * 99999));
listen();
if (_local3.waitInterval != null) {
clearInterval(_local3.waitInterval);
}
_local3.onLoadError = loadError;
_local3.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_local3.onLoadComplete = function (target_mc) {
target_mc.MochiServices = mochi.as2.MochiServices;
};
_local3.startTime = getTimer();
_local3.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.as2.MochiServices.disconnect();
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_local3.waitInterval = setInterval(_local3, "wait", 1000);
_local5.addListener(_local3);
_local5.loadClip((((((_local4 + "?listenLC=") + _listenChannelName) + "&mochiad_options=") + escape(_root.mochiad_options)) + "&api_version=") + getVersion(), _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
return(_clip);
}
static function loadError(target_mc, errorCode, httpStatus) {
trace("MochiServices could not load.");
disconnect();
onError.apply(null, [errorCode]);
}
static function onStatus(infoObject) {
if (!(infoObject.level === "error")) {
} else {
_connected = false;
_listenChannel.connect(_listenChannelName);
}
}
static function listen() {
_listenChannel = new LocalConnection();
_listenChannel.handshake = function (args) {
mochi.as2.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel._nextcallbackID = 0;
_listenChannel._callbacks = {};
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, version:getVersion()});
_listenChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_listenChannel.onReceive = function (pkg) {
var _local5 = pkg.callbackID;
var _local4 = this._callbacks[_local5];
if (!_local4) {
return(undefined);
}
var _local2 = _local4.callbackMethod;
var _local3 = _local4.callbackObject;
if (_local3 && (typeof(_local2) == "string")) {
_local2 = _local3[_local2];
}
if (_local2 != undefined) {
_local2.apply(_local3, pkg.args);
}
delete this._callbacks[_local5];
};
_listenChannel.onEvent = function (pkg) {
switch (pkg.target) {
case "services" :
mochi.as2.MochiServices.triggerEvent(pkg.event, pkg.args);
break;
case "events" :
mochi.as2.MochiEvents.triggerEvent(pkg.event, pkg.args);
break;
case "coins" :
mochi.as2.MochiCoins.triggerEvent(pkg.event, pkg.args);
break;
case "social" :
mochi.as2.MochiSocial.triggerEvent(pkg.event, pkg.args);
}
};
_listenChannel.onError = function () {
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
};
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function flush(error) {
var _local1;
var _local2;
while (_sendChannel._queue.length > 0) {
_local1 = _sendChannel._queue.shift();
if (_local1.callbackID != null) {
_local2 = _listenChannel._callbacks[_local1.callbackID];
}
delete _listenChannel._callbacks[_local1.callbackID];
if (error) {
handleError(_local1.args, _local2.callbackObject, _local2.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
if ((args.options != null) && (args.options.onError != null)) {
args.options.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
trace("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
}
_listenChannel._callbacks[_listenChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_listenChannel._nextcallbackID++;
}
static function urlOptions() {
var _local5 = {};
var _local6;
if (_root._url.indexOf("mochiad_options") != -1) {
var _local2 = (_root._url.indexOf("mochiad_options") + "mochiad_options".length) + 1;
_local6 = _root._url.substr(_local2, _root._url.length);
} else if (_root.mochiad_options) {
_local6 = _root.mochiad_options;
}
if (_local6) {
var _local4 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2].split("=");
_local5[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local5);
}
static function warnID(bid, leaderboard) {
bid = bid.toLowerCase();
if (bid.length != 16) {
trace(("WARNING: " + (leaderboard ? "board" : "game")) + " ID is not the appropriate length");
return(undefined);
}
if (bid == "1e113c7239048b3f") {
if (leaderboard) {
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
}
return(undefined);
}
if (bid == "84993a1de4031cd8") {
if (leaderboard) {
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
}
return(undefined);
}
var _local1 = 0;
while (_local1 < bid.length) {
switch (bid.charAt(_local1)) {
case "0" :
case "1" :
case "2" :
case "3" :
case "4" :
case "5" :
case "6" :
case "7" :
case "8" :
case "9" :
case "a" :
case "b" :
case "c" :
case "d" :
case "e" :
case "f" :
break;
default :
trace("WARNING: Board ID contains illegal characters: " + bid);
return(undefined);
}
_local1++;
}
}
static function addLinkEvent(url, burl, btn, onClick) {
var timeout = 1500;
var t0 = getTimer();
var _local2 = new Object();
_local2.mav = getVersion();
_local2.swfv = btn.getSWFVersion() || 6;
_local2.swfurl = btn._url;
_local2.fv = System.capabilities.version;
_local2.os = System.capabilities.os;
_local2.lang = System.capabilities.language;
_local2.scres = (System.capabilities.screenResolutionX + "x") + System.capabilities.screenResolutionY;
var s = "?";
var _local3 = 0;
for (var _local6 in _local2) {
if (_local3 != 0) {
s = s + "&";
}
_local3++;
s = ((s + _local6) + "=") + escape(_local2[_local6]);
}
if (!(netupAttempted || (_connected))) {
var ping = btn.createEmptyMovieClip("ping", 777);
var _local7 = btn.createEmptyMovieClip("nettest", 778);
netupAttempted = true;
ping.loadMovie("http://link.mochiads.com/linkping.swf?t=" + getTimer());
_local7.onEnterFrame = function () {
if ((ping._totalframes > 0) && (ping._totalframes == ping._framesloaded)) {
delete this.onEnterFrame;
} else if ((getTimer() - t0) > timeout) {
delete this.onEnterFrame;
mochi.as2.MochiServices.netup = false;
}
};
}
var _local4 = btn.createEmptyMovieClip("clk", 1001);
_local4._alpha = 0;
_local4.beginFill(1044735);
_local4.moveTo(0, 0);
_local4.lineTo(0, btn._height);
_local4.lineTo(btn._width, btn._height);
_local4.lineTo(btn._width, 0);
_local4.lineTo(0, 0);
_local4.endFill();
_local4.onRelease = function () {
if (mochi.as2.MochiServices.netup) {
getURL (url + s, "_blank");
} else {
getURL (burl, "_blank");
}
if (onClick != undefined) {
onClick();
}
};
}
static function setContainer(clip) {
}
static function stayOnTop(clip) {
}
static function addEventListener(eventType, thisObject, thatObject) {
_dispatcher.addEventListener(eventType, thisObject, thatObject);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, thisObject, thatObject) {
_dispatcher.removeEventListener(eventType, thisObject, thatObject);
}
static var CONNECTED = "onConnected";
static var _servURL = "http://www.mochiads.com/static/lib/services/";
static var _services = "services.swf";
static var _mochiLC = "MochiLC.swf";
static var _listenChannelName = "__ms_";
static var _connecting = false;
static var _connected = false;
static var netup = true;
static var netupAttempted = false;
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 2524 MovieClip [__Packages.mochi.as2.MochiEvents] Frame 0
class mochi.as2.MochiEvents
{
function MochiEvents () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function startSession(achievementID) {
mochi.as2.MochiServices.send("events_beginSession", {achievementID:achievementID}, null, null);
}
static function setNotifications(clip, style) {
var _local2 = {};
for (var _local3 in style) {
_local2[_local3] = style[_local3];
}
_local2.clip = clip;
mochi.as2.MochiServices.send("events_setNotifications", _local2, null, null);
}
static function addEventListener(eventType, thisObject, thatObject) {
_dispatcher.addEventListener(eventType, thisObject, thatObject);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, thisObject, thatObject) {
_dispatcher.removeEventListener(eventType, thisObject, thatObject);
}
static function startPlay(tag) {
if (tag == undefined) {
tag = "gameplay";
}
mochi.as2.MochiServices.send("events_setRoundID", {tag:String(tag)}, null, null);
}
static function endPlay() {
mochi.as2.MochiServices.send("events_clearRoundID", null, null, null);
}
static function trackEvent(tag, value) {
mochi.as2.MochiServices.send("events_trackEvent", {tag:tag, value:value}, null, null);
}
static var ACHIEVEMENT_RECEIVED = "AchievementReceived";
static var ALIGN_TOP_LEFT = "ALIGN_TL";
static var ALIGN_TOP = "ALIGN_T";
static var ALIGN_TOP_RIGHT = "ALIGN_TR";
static var ALIGN_LEFT = "ALIGN_L";
static var ALIGN_CENTER = "ALIGN_C";
static var ALIGN_RIGHT = "ALIGN_R";
static var ALIGN_BOTTOM_LEFT = "ALIGN_BL";
static var ALIGN_BOTTOM = "ALIGN_B";
static var ALIGN_BOTTOM_RIGHT = "ALIGN_BR";
static var FORMAT_SHORT = "ShortForm";
static var FORMAT_LONG = "LongForm";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 2525 MovieClip [__Packages.mochi.as2.MochiCoins] Frame 0
class mochi.as2.MochiCoins
{
function MochiCoins () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showStore(options) {
mochi.as2.MochiServices.send("coins_showStore", {options:options}, null, null);
}
static function showItem(options) {
if ((options == undefined) || (typeof(options.item) != "string")) {
trace("ERROR: showItem call must pass an Object with an item key");
return(undefined);
}
mochi.as2.MochiServices.send("coins_showItem", {options:options}, null, null);
}
static function showVideo(options) {
if ((options == undefined) || (typeof(options.item) != "string")) {
trace("ERROR: showVideo call must pass an Object with an item key");
return(undefined);
}
mochi.as2.MochiServices.send("coins_showVideo", {options:options}, null, null);
}
static function getStoreItems() {
mochi.as2.MochiServices.send("coins_getStoreItems");
}
static function requestFunding(properties) {
mochi.as2.MochiServices.send("social_requestFunding", properties);
}
static function addEventListener(eventType, delegate) {
_dispatcher.addEventListener(eventType, delegate);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, delegate) {
_dispatcher.removeEventListener(eventType, delegate);
}
static var STORE_SHOW = "StoreShow";
static var STORE_HIDE = "StoreHide";
static var ITEM_OWNED = "ItemOwned";
static var ITEM_NEW = "ItemNew";
static var STORE_ITEMS = "StoreItems";
static var ERROR = "Error";
static var IO_ERROR = "IOError";
static var NO_USER = "NoUser";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 2526 MovieClip [__Packages.mochi.as2.MochiSocial] Frame 0
class mochi.as2.MochiSocial
{
function MochiSocial () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showLoginWidget(options) {
mochi.as2.MochiServices.setContainer();
mochi.as2.MochiServices.stayOnTop();
mochi.as2.MochiServices.send("social_showLoginWidget", {options:options});
}
static function hideLoginWidget() {
mochi.as2.MochiServices.send("social_hideLoginWidget");
}
static function requestLogin(properties) {
mochi.as2.MochiServices.send("social_requestLogin", properties);
}
static function getFriendsList(properties) {
mochi.as2.MochiServices.send("social_getFriendsList", properties);
}
static function postToStream(properties) {
mochi.as2.MochiServices.send("social_postToStream", properties);
}
static function inviteFriends(properties) {
mochi.as2.MochiServices.send("social_inviteFriends", properties);
}
static function requestFan(properties) {
mochi.as2.MochiServices.send("social_requestFan", properties);
}
static function saveUserProperties(properties) {
mochi.as2.MochiServices.send("social_saveUserProperties", properties);
}
static function addEventListener(eventType, delegate) {
_dispatcher.addEventListener(eventType, delegate);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, delegate) {
_dispatcher.removeEventListener(eventType, delegate);
}
static var LOGGED_IN = "LoggedIn";
static var LOGGED_OUT = "LoggedOut";
static var LOGIN_SHOW = "LoginShow";
static var LOGIN_HIDE = "LoginHide";
static var LOGIN_SHOWN = "LoginShown";
static var PROFILE_SHOW = "ProfileShow";
static var PROFILE_HIDE = "ProfileHide";
static var PROPERTIES_SAVED = "PropertySaved";
static var WIDGET_LOADED = "WidgetLoaded";
static var FRIEND_LIST = "FriendsList";
static var PROFILE_DATA = "ProfileData";
static var GAMEPLAY_DATA = "GameplayData";
static var ACTION_CANCELED = "onCancel";
static var ACTION_COMPLETE = "onComplete";
static var USER_INFO = "UserInfo";
static var ERROR = "Error";
static var IO_ERROR = "IOError";
static var NO_USER = "NoUser";
static var PROPERTIES_SIZE = "PropertiesSize";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 2527 MovieClip [__Packages.mochi.as2.MochiScores] Frame 0
class mochi.as2.MochiScores
{
static var boardID, onClose, onError;
function MochiScores () {
}
static function setBoardID(boardID) {
mochi.as2.MochiServices.warnID(boardID, true);
mochi.as2.MochiScores.boardID = boardID;
mochi.as2.MochiServices.send("scores_setBoardID", {boardID:boardID});
}
static function showLeaderboard(options) {
options.clip = mochi.as2.MochiServices.clip;
if ((options.clip != mochi.as2.MochiServices.__get__clip()) || (mochi.as2.MochiServices.__get__childClip()._target == undefined)) {
mochi.as2.MochiServices.disconnect();
trace("WARNING! This application is attempting to connect to MochiServices inside a showLeaderboard call!");
trace("make sure MochiServices.connect is called as early in the application runtime as possible.");
mochi.as2.MochiServices.connect(mochi.as2.MochiServices.__get__id(), options.clip);
}
delete options.clip;
if (options.name != null) {
if (typeof(options.name) == "object") {
if (options.name.text != undefined) {
options.name = options.name.text;
}
}
}
if (options.score != null) {
if (options.score instanceof TextField) {
if (options.score.text != undefined) {
options.score = options.score.text;
}
} else if (options.score instanceof mochi.as2.MochiDigits) {
options.score = options.score.value;
}
var _local1 = Number(options.score);
if (isNaN(_local1)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'");
} else if ((_local1 == Number.NEGATIVE_INFINITY) || (_local1 == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(_local1) != _local1) {
trace(("WARNING: Submitted score '" + options.score) + "' will be truncated");
}
options.score = _local1;
}
}
if (options.onDisplay != null) {
options.onDisplay();
} else {
mochi.as2.MochiServices.__get__clip().stop();
}
if (options.onClose != null) {
onClose = options.onClose;
} else {
onClose = function () {
mochi.as2.MochiServices.__get__clip().play();
};
}
if (options.onError != null) {
onError = options.onError;
} else {
onError = onClose;
}
if (options.boardID == null) {
if (boardID != null) {
options.boardID = boardID;
}
}
mochi.as2.MochiServices.warnID(options.boardID, true);
trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal");
mochi.as2.MochiServices.send("scores_showLeaderboard", {options:options}, null, doClose);
}
static function closeLeaderboard() {
mochi.as2.MochiServices.send("scores_closeLeaderboard");
}
static function getPlayerInfo(callbackObj, callbackMethod) {
mochi.as2.MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
static function submit(score, name, callbackObj, callbackMethod) {
score = Number(score);
if (isNaN(score)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'");
} else if ((score == Number.NEGATIVE_INFINITY) || (score == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(score) != score) {
trace(("WARNING: Submitted score '" + String(score)) + "' will be truncated");
}
score = Number(score);
}
mochi.as2.MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
static function requestList(callbackObj, callbackMethod) {
mochi.as2.MochiServices.send("scores_requestList", null, callbackObj, callbackMethod);
}
static function scoresArrayToObjects(scores) {
var _local5 = {};
var _local1;
var _local4;
var _local2;
var _local6;
for (var _local8 in scores) {
if (typeof(scores[_local8]) == "object") {
if ((scores[_local8].cols != null) && (scores[_local8].rows != null)) {
_local5[_local8] = [];
_local2 = scores[_local8];
_local4 = 0;
while (_local4 < _local2.rows.length) {
_local6 = {};
_local1 = 0;
while (_local1 < _local2.cols.length) {
_local6[_local2.cols[_local1]] = _local2.rows[_local4][_local1];
_local1++;
}
_local5[_local8].push(_local6);
_local4++;
}
} else {
_local5[_local8] = {};
for (var _local7 in scores[_local8]) {
_local5[_local8][_local7] = scores[_local8][_local7];
}
}
} else {
_local5[_local8] = scores[_local8];
}
}
return(_local5);
}
static function doClose(args) {
if (args.error == true) {
if (args.errorCode == undefined) {
args.errorCode = "IOError";
}
onError.apply(null, [args.errorCode]);
} else {
onClose.apply();
}
}
}
Symbol 2528 MovieClip [__Packages.mochi.as2.MochiDigits] Frame 0
class mochi.as2.MochiDigits
{
var Encoder, Fragment, Sibling;
function MochiDigits (digit, index) {
Encoder = 0;
setValue(digit, index);
}
function get value() {
return(Number(toString()));
}
function set value(v) {
setValue(v);
//return(value);
}
function addValue(v) {
value = value + v;
}
function setValue(digit, index) {
var _local3 = digit.toString();
if ((index == undefined) || (isNaN(index))) {
index = 0;
}
Fragment = _local3.charCodeAt(index++) ^ Encoder;
if (index < _local3.length) {
Sibling = new mochi.as2.MochiDigits(digit, index);
} else {
Sibling = null;
}
reencode();
}
function reencode() {
var _local2 = int(2147483647 * Math.random());
Fragment = Fragment ^ (_local2 ^ Encoder);
Encoder = _local2;
}
function toString() {
var _local2 = String.fromCharCode(Fragment ^ Encoder);
return(((Sibling != null) ? (_local2.concat(Sibling.toString())) : (_local2)));
}
}
Symbol 20 MovieClip [__Packages.com.newgrounds.shims.APIShim] Frame 0
class com.newgrounds.shims.APIShim extends MovieClip
{
function APIShim () {
super();
}
}
Symbol 28 MovieClip [__Packages.com.newgrounds.encoders.json.JSON] Frame 0
class com.newgrounds.encoders.json.JSON
{
static var start, cache, interval;
function JSON () {
}
static function encode(arg, noquotes) {
var _local3;
var _local2;
var _local6;
var _local1 = "";
var _local4;
if (arg.isSServerVar()) {
var _local8 = "sservervariable";
} else {
var _local8 = typeof(arg);
}
switch (_local8) {
case "sservervariable" :
return("?" + arg.getEncodedValue());
case "object" :
if (arg) {
if (arg instanceof Array) {
_local2 = 0;
while (_local2 < arg.length) {
_local4 = encode(arg[_local2]);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + _local4;
_local2++;
}
return(("[" + _local1) + "]");
}
if (typeof(arg.toString) != "undefined") {
for (_local2 in arg) {
_local4 = arg[_local2];
if ((typeof(_local4) != "undefined") && (typeof(_local4) != "function")) {
_local4 = encode(_local4);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + ((encode(_local2) + ":") + _local4);
}
}
return(("{" + _local1) + "}");
}
}
return("null");
case "number" :
return((isFinite(arg) ? (String(arg)) : "null"));
case "string" :
_local6 = arg.length;
if (noquotes) {
var _local7 = "";
} else {
var _local7 = "\"";
}
_local1 = _local7;
_local2 = 0;
while (_local2 < _local6) {
_local3 = arg.charAt(_local2);
if (_local3 >= " ") {
if ((_local3 == "\\") || (_local3 == "\"")) {
_local1 = _local1 + "\\";
}
_local1 = _local1 + _local3;
} else {
switch (_local3) {
case "\b" :
_local1 = _local1 + "\\b";
break;
case "\f" :
_local1 = _local1 + "\\f";
break;
case newline :
_local1 = _local1 + "\\n";
break;
case "\r" :
_local1 = _local1 + "\\r";
break;
case "\t" :
_local1 = _local1 + "\\t";
break;
default :
_local3 = _local3.charCodeAt();
_local1 = _local1 + (("\\u00" + Math.floor(_local3 / 16).toString(16)) + (_local3 % 16).toString(16));
}
}
_local2 = _local2 + 1;
}
return(_local1 + _local7);
case "boolean" :
return(String(arg));
}
return("null");
}
static function background_encode(arg, callback) {
if (busy) {
trace("[Newgrounds Encoder] :: Cannot encode a new file until the previous file is completed");
return(false);
}
if (!callback) {
trace("[Newgrounds Encoder] :: Missing a callback function, skipping encode");
return(false);
}
busy = true;
var _local2 = new Date();
start = _local2.getTime();
cache = {busy:false, complete:false, arg:arg, target:arg, parents:[], encoded:"", callback:callback, encode_chunk:function () {
com.newgrounds.encoders.json.JSON.encode_chunk();
}};
if (getType(arg) == "object") {
cache.encoded = "{";
} else if (getType(arg) == "array") {
cache.encoded = "[";
}
interval = setInterval(cache, "encode_chunk", 25);
return(true);
}
static function background_decode(arg, callback) {
if (busy) {
trace("[Newgrounds Encoder] :: Cannot decode a new file until the previous file is completed");
return(false);
}
if (!callback) {
trace("[Newgrounds Encoder] :: Missing a callback function, skipping decode");
return(false);
}
busy = true;
var _local1 = new Date();
start = _local1.getTime();
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();
}};
interval = setInterval(cache, "decode_chunk", 25);
return(true);
}
static function decode(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 = at + 1;
return(ch);
};
var _white = function () {
while (ch) {
if (ch <= " ") {
_next();
} else if (ch == "/") {
switch (_next()) {
case "/" :
while ((_next() && (ch != newline)) && (ch != "\r")) {
}
break;
case "*" :
_next();
for(;;){
if (ch) {
if (ch == "*") {
if (_next() == "/") {
_next();
// unexpected jump
}
} else {
_next();
}
} else {
_error("Unterminated comment");
}
};
break;
default :
_error("Syntax error");
}
} else {
return;
}
}
};
var _string = function () {
var _local4;
var _local1 = "";
var _local3;
var _local2;
var _local5 = false;
if (ch == "\"") {
while (_next()) {
if (ch == "\"") {
_next();
return(_local1);
}
if (ch == "\\") {
switch (_next()) {
case "b" :
_local1 = _local1 + "\b";
break;
case "f" :
_local1 = _local1 + "\f";
break;
case "n" :
_local1 = _local1 + newline;
break;
case "r" :
_local1 = _local1 + "\r";
break;
case "t" :
_local1 = _local1 + "\t";
break;
case "u" :
_local2 = 0;
_local4 = 0;
while (_local4 < 4) {
_local3 = parseInt(_next(), 16);
if (!isFinite(_local3)) {
_local5 = true;
break;
}
_local2 = (_local2 * 16) + _local3;
_local4 = _local4 + 1;
}
if (_local5) {
_local5 = false;
break;
}
_local1 = _local1 + String.fromCharCode(_local2);
break;
default :
_local1 = _local1 + ch;
}
} else {
_local1 = _local1 + ch;
}
}
}
_error("Bad string");
};
var _array = function () {
var _local1 = [];
if (ch == "[") {
_next();
_white();
if (ch == "]") {
_next();
return(_local1);
}
while (ch) {
_local1.push(_value());
_white();
if (ch == "]") {
_next();
return(_local1);
}
if (ch != ",") {
break;
}
_next();
_white();
}
}
_error("Bad array");
};
var _object = function () {
var _local2;
var _local1 = {};
if (ch == "{") {
_next();
_white();
if (ch == "}") {
_next();
return(_local1);
}
while (ch) {
_local2 = _string();
_white();
if (ch != ":") {
break;
}
_next();
_local1[_local2] = _value();
_white();
if (ch == "}") {
_next();
return(_local1);
}
if (ch != ",") {
break;
}
_next();
_white();
}
}
_error("Bad object");
};
var _number = function () {
var _local1 = "";
var _local2;
if (ch == "-") {
_local1 = "-";
_next();
}
while ((ch >= "0") && (ch <= "9")) {
_local1 = _local1 + ch;
_next();
}
if (ch == ".") {
_local1 = _local1 + ".";
while ((_next() && (ch >= "0")) && (ch <= "9")) {
_local1 = _local1 + ch;
}
}
_local2 = 1 * _local1;
if (!isFinite(_local2)) {
_error("Bad number");
} else {
return(_local2);
}
};
var _word = function () {
switch (ch) {
case "t" :
if (((_next() == "r") && (_next() == "u")) && (_next() == "e")) {
_next();
return(true);
}
break;
case "f" :
if ((((_next() == "a") && (_next() == "l")) && (_next() == "s")) && (_next() == "e")) {
_next();
return(false);
}
break;
case "n" :
if (!(((_next() == "u") && (_next() == "l")) && (_next() == "l"))) {
break;
}
_next();
return(null);
}
_error("Syntax error");
};
_value = function () {
_white();
switch (ch) {
case "{" :
return(_object());
case "[" :
return(_array());
case "\"" :
return(_string());
case "-" :
return(_number());
}
return((((ch >= "0") && (ch <= "9")) ? (_number()) : (_word())));
};
return(_value());
}
static function getType(v) {
if (v instanceof Array) {
return("array");
}
return(typeof(v));
}
static function decode_chunk() {
if ((!cache.busy) && (!cache.complete)) {
cache.busy = true;
var _local1 = 0;
while (_local1 < decode_chunks) {
chunk_decoder();
if (cache.complete) {
break;
}
_local1++;
}
trace(Math.round((cache.pos / cache.arg.length) * 100) + "% decoded");
cache.busy = false;
}
if (cache.complete) {
var _local2 = new Date();
busy = false;
clearInterval(interval);
cache.callback(cache.root, _local2.getTime() - start);
cache.arg = "";
}
}
static function encode_chunk() {
if ((!cache.busy) && (!cache.complete)) {
cache.busy = true;
var _local1 = 0;
while (_local1 < encode_chunks) {
chunk_encoder();
if (cache.complete) {
break;
}
_local1++;
}
cache.busy = false;
}
if (cache.complete) {
var _local3 = new Date();
var _local2 = _local3.getTime();
busy = false;
clearInterval(interval);
cache.callback(cache.encoded, _local2 - start);
cache.encoded = "";
}
}
static function chunk_decoder() {
function _object() {
var _local1 = 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++;
_local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (_local1 != "\"") {
throw "Malformed object key in encoded string. Keys must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.json.JSON.cache.scratch = "";
_setTargetValue({});
} else if (_local1 == ",") {
com.newgrounds.encoders.json.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (_local1 != "\"") {
throw "Malformed object key in encoded string. Keys must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.json.JSON.cache.scratch = "";
} else if (_local1 == "}") {
_useParent();
} else if (_local1 == "\"") {
com.newgrounds.encoders.json.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (_local1 != ":") {
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 (_local1 == "\\") {
com.newgrounds.encoders.json.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
}
com.newgrounds.encoders.json.JSON.cache.scratch = com.newgrounds.encoders.json.JSON.cache.scratch + _local1;
}
com.newgrounds.encoders.json.JSON.cache.pos++;
}
function _array() {
var _local1 = 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++;
_local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
_setTargetValue([]);
if (_local1 != "]") {
_addArrayKey();
} else {
_useParent();
}
return(undefined);
}
if (_local1 == ",") {
_addArrayKey();
} else if (_local1 == "]") {
_useParent();
}
com.newgrounds.encoders.json.JSON.cache.pos++;
}
function _boolean() {
var _local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (_local1 == "t") {
_setTargetValue(true);
com.newgrounds.encoders.json.JSON.cache.pos = com.newgrounds.encoders.json.JSON.cache.pos + 3;
} else if (_local1 == "f") {
_setTargetValue(false);
com.newgrounds.encoders.json.JSON.cache.pos = com.newgrounds.encoders.json.JSON.cache.pos + 4;
} else {
throw "Bool values must be true or false";
}
_useParent();
}
function _null() {
var _local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (_local1 == "n") {
_setTargetValue(null);
com.newgrounds.encoders.json.JSON.cache.pos = com.newgrounds.encoders.json.JSON.cache.pos + 2;
} else {
throw "Null values must be null";
}
_useParent();
}
function _string() {
var _local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
if (!com.newgrounds.encoders.json.JSON.cache.mode) {
if (_local1 != "\"") {
throw "Strings must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.json.JSON.cache.scratch = "";
com.newgrounds.encoders.json.JSON.cache.mode = "string";
} else if (_local1 == "\"") {
_setTargetValue(com.newgrounds.encoders.json.JSON.cache.scratch);
_useParent();
} else {
if (_local1 == "\\") {
com.newgrounds.encoders.json.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
switch (_local1) {
case "n" :
_local1 = newline;
break;
case "r" :
_local1 = newline;
break;
case "t" :
_local1 = "\t";
break;
case "u" :
_local1 = "\\" + _local1;
}
}
com.newgrounds.encoders.json.JSON.cache.scratch = com.newgrounds.encoders.json.JSON.cache.scratch + _local1;
}
com.newgrounds.encoders.json.JSON.cache.pos++;
}
function _number() {
var _local1 = com.newgrounds.encoders.json.JSON.cache.arg.charAt(com.newgrounds.encoders.json.JSON.cache.pos);
var _local2 = "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 (_local2.indexOf(_local1) < 0) {
_setTargetValue(Number(com.newgrounds.encoders.json.JSON.cache.scratch));
_useParent();
} else {
com.newgrounds.encoders.json.JSON.cache.scratch = com.newgrounds.encoders.json.JSON.cache.scratch + _local1;
com.newgrounds.encoders.json.JSON.cache.pos++;
}
}
function _setTargetValue(newval) {
var _local2 = _getParent().obj;
var _local1 = com.newgrounds.encoders.json.JSON.cache.parents[com.newgrounds.encoders.json.JSON.cache.parents.length - 1];
_local2[_local1] = 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 _local2 = com.newgrounds.encoders.json.JSON.cache;
var _local1 = 0;
while (_local1 < (com.newgrounds.encoders.json.JSON.cache.parents.length - 1)) {
_local2 = _local2[com.newgrounds.encoders.json.JSON.cache.parents[_local1]];
_local1++;
}
return({obj:_local2, name:com.newgrounds.encoders.json.JSON.cache.parents[_local1]});
}
function _getCurrent() {
var _local2 = com.newgrounds.encoders.json.JSON.cache;
var _local1 = 0;
while (_local1 < com.newgrounds.encoders.json.JSON.cache.parents.length) {
_local2 = _local2[com.newgrounds.encoders.json.JSON.cache.parents[_local1]];
_local1++;
}
return({obj:_local2, name:com.newgrounds.encoders.json.JSON.cache.parents[_local1]});
}
function _addParent(child) {
com.newgrounds.encoders.json.JSON.cache.parents.push(child);
}
function _addArrayKey() {
var _local1 = _getCurrent().obj.length;
com.newgrounds.encoders.json.JSON.cache.parents.push(_local1);
com.newgrounds.encoders.json.JSON.cache.mode = null;
}
if (cache.pos >= cache.arg.length) {
cache.complete = true;
return(undefined);
}
if (cache.mode) {
eval ("_" + cache.mode)();
} else {
var char = cache.arg.charAt(cache.pos);
switch (char) {
case "{" :
_object();
return;
case "[" :
_array();
return;
case "\"" :
_string();
return;
case "n" :
_null();
return;
case "t" :
_boolean();
return;
case "f" :
_boolean();
return;
default :
_number();
}
}
}
static function chunk_encoder() {
if (cache.complete) {
return(undefined);
}
var _local2 = getType(cache.target);
switch (_local2) {
case "number" :
cache.encoded = cache.encoded + cache.target;
getParent();
break;
case "string" :
cache.encoded = cache.encoded + (("\"" + cache.target.split("\"").join("\\\"")) + "\"");
getParent();
break;
case "boolean" :
cache.encoded = cache.encoded + ((cache.target == true) ? "true" : "false");
getParent();
break;
case "null" :
cache.encoded = cache.encoded + "null";
getParent();
break;
case "array" :
if (cache.target.length < 1) {
cache.encoded = cache.encoded + "]";
getParent();
} else {
cache.parents.push(cache.target);
cache.target = cache.target[0];
if (getType(cache.target) == "array") {
cache.encoded = cache.encoded + "[";
} else if (getType(cache.target) == "object") {
cache.encoded = cache.encoded + "{";
}
}
break;
case "object" :
for (var _local1 in cache.target) {
break;
}
if (_local1 === undefined) {
cache.encoded = cache.encoded + "}";
getParent();
} else {
cache.parents.push(cache.target);
cache.target = cache.target[_local1];
cache.encoded = cache.encoded + (("\"" + _local1.split("\"").join("\\\"")) + "\":");
if (getType(cache.target) == "array") {
cache.encoded = cache.encoded + "[";
} else if (getType(cache.target) == "object") {
cache.encoded = cache.encoded + "{";
}
}
break;
default :
cache.encoded = cache.encoded + "null";
getParent();
}
}
static function getParent() {
if (cache.parents.length > 0) {
var _local1 = cache.parents.pop();
if (getType(_local1) == "array") {
_local1.shift();
} else {
for (var _local3 in _local1) {
delete _local1[_local3];
break;
}
}
if ((getType(_local1) == "object") or (getType(_local1) == "array")) {
for (var _local2 in _local1) {
break;
}
if (!(_local2 === undefined)) {
cache.encoded = cache.encoded + ",";
}
}
cache.target = _local1;
} else {
cache.complete = true;
}
}
static var encode_chunks = 20000;
static var decode_chunks = 20000;
static var busy = false;
}
Symbol 31 MovieClip [__Packages.com.newgrounds.crypto.MD5] Frame 0
class com.newgrounds.crypto.MD5
{
function MD5 () {
}
static function hash(src) {
return(hex_md5(src));
}
static function hex_md5(src) {
return(binl2hex(core_md5(str2binl(src), src.length * 8)));
}
static function core_md5(x, len) {
x[len >> 5] = x[len >> 5] | (128 << (len % 32));
x[(((len + 64) >>> 9) << 4) + 14] = len;
var _local4 = 1732584193 /* 0x67452301 */;
var _local3 = -271733879;
var _local2 = -1732584194;
var _local1 = 271733878 /* 0x10325476 */;
var _local5 = 0;
while (_local5 < x.length) {
var _local10 = _local4;
var _local9 = _local3;
var _local8 = _local2;
var _local7 = _local1;
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 0], 7, -680876936);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 1], 12, -389564586);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 2], 17, 606105819);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 3], 22, -1044525330);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 4], 7, -176418897);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 5], 12, 1200080426);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 6], 17, -1473231341);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 7], 22, -45705983);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 8], 7, 1770035416);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 9], 12, -1958414417);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 10], 17, -42063);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 11], 22, -1990404162);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 12], 7, 1804603682);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 13], 12, -40341101);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 14], 17, -1502002290);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 15], 22, 1236535329);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 1], 5, -165796510);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 6], 9, -1069501632);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 11], 14, 643717713);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 0], 20, -373897302);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 5], 5, -701558691);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 10], 9, 38016083);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 15], 14, -660478335);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 4], 20, -405537848);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 9], 5, 568446438);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 14], 9, -1019803690);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 3], 14, -187363961);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 8], 20, 1163531501);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 13], 5, -1444681467);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 2], 9, -51403784);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 7], 14, 1735328473);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 12], 20, -1926607734);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 5], 4, -378558);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 8], 11, -2022574463);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 11], 16, 1839030562);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 14], 23, -35309556);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 1], 4, -1530992060);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 4], 11, 1272893353);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 7], 16, -155497632);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 10], 23, -1094730640);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 13], 4, 681279174);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 0], 11, -358537222);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 3], 16, -722521979);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 6], 23, 76029189);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 9], 4, -640364487);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 12], 11, -421815835);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 15], 16, 530742520);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 2], 23, -995338651);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 0], 6, -198630844);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 7], 10, 1126891415);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 14], 15, -1416354905);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 5], 21, -57434055);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 12], 6, 1700485571);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 3], 10, -1894986606);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 10], 15, -1051523);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 1], 21, -2054922799);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 8], 6, 1873313359);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 15], 10, -30611744);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 6], 15, -1560198380);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 13], 21, 1309151649);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 4], 6, -145523070);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 11], 10, -1120210379);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 2], 15, 718787259);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 9], 21, -343485551);
_local4 = safe_add(_local4, _local10);
_local3 = safe_add(_local3, _local9);
_local2 = safe_add(_local2, _local8);
_local1 = safe_add(_local1, _local7);
_local5 = _local5 + 16;
}
return(new Array(_local4, _local3, _local2, _local1));
}
static function md5_cmn(q, a, b, x, s, t) {
return(safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b));
}
static function md5_ff(a, b, c, d, x, s, t) {
return(md5_cmn((b & c) | ((~b) & d), a, b, x, s, t));
}
static function md5_gg(a, b, c, d, x, s, t) {
return(md5_cmn((b & d) | (c & (~d)), a, b, x, s, t));
}
static function md5_hh(a, b, c, d, x, s, t) {
return(md5_cmn((b ^ c) ^ d, a, b, x, s, t));
}
static function md5_ii(a, b, c, d, x, s, t) {
return(md5_cmn(c ^ (b | (~d)), a, b, x, s, t));
}
static function bit_rol(num, cnt) {
return((num << cnt) | (num >>> (32 - cnt)));
}
static function safe_add(x, y) {
var _local1 = (x & 65535) + (y & 65535);
var _local2 = ((x >> 16) + (y >> 16)) + (_local1 >> 16);
return((_local2 << 16) | (_local1 & 65535));
}
static function str2binl(str) {
var _local3 = new Array();
var _local4 = 255;
var _local1 = 0;
while (_local1 < (str.length * 8)) {
_local3[_local1 >> 5] = _local3[_local1 >> 5] | ((str.charCodeAt(_local1 / 8) & _local4) << (_local1 % 32));
_local1 = _local1 + 8;
}
return(_local3);
}
static function binl2hex(binarray) {
var _local4 = new String("");
var _local3 = new String("0123456789abcdef");
var _local1 = 0;
while (_local1 < (binarray.length * 4)) {
_local4 = _local4 + (_local3.charAt((binarray[_local1 >> 2] >> (((_local1 % 4) * 8) + 4)) & 15) + _local3.charAt((binarray[_local1 >> 2] >> ((_local1 % 4) * 8)) & 15));
_local1++;
}
return(_local4);
}
}
Symbol 32 MovieClip [__Packages.com.newgrounds.crypto.RC4] Frame 0
class com.newgrounds.crypto.RC4
{
function RC4 () {
}
static function encrypt(src, key) {
var _local3 = strToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(charsToHex(_local2));
}
static function encryptbin(src, key) {
var _local3 = strToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(_local2);
}
static function decrypt(src, key) {
var _local3 = hexToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(charsToStr(_local2));
}
static function initialize(pwd) {
var _local2 = 0;
var _local3;
var _local4 = pwd.length;
var _local1 = 0;
while (_local1 <= 255) {
mykey[_local1] = pwd[_local1 % _local4];
sbox[_local1] = _local1;
_local1++;
}
_local1 = 0;
while (_local1 <= 255) {
_local2 = ((_local2 + sbox[_local1]) + mykey[_local1]) % 256;
_local3 = sbox[_local1];
sbox[_local1] = sbox[_local2];
sbox[_local2] = _local3;
_local1++;
}
}
static function calculate(plaintxt, psw) {
initialize(psw);
var _local1 = 0;
var _local2 = 0;
var _local9 = new Array();
var _local7;
var _local5;
var _local6;
var _local3 = 0;
while (_local3 < plaintxt.length) {
_local1 = (_local1 + 1) % 256;
_local2 = (_local2 + sbox[_local1]) % 256;
_local5 = sbox[_local1];
sbox[_local1] = sbox[_local2];
sbox[_local2] = _local5;
var _local4 = (sbox[_local1] + sbox[_local2]) % 256;
_local7 = sbox[_local4];
_local6 = plaintxt[_local3] ^ _local7;
_local9.push(_local6);
_local3++;
}
return(_local9);
}
static function charsToHex(chars) {
var _local4 = new String("");
var _local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
var _local1 = 0;
while (_local1 < chars.length) {
_local4 = _local4 + (_local3[chars[_local1] >> 4] + _local3[chars[_local1] & 15]);
_local1++;
}
return(_local4);
}
static function hexToChars(hex) {
var _local3 = new Array();
var _local1 = ((hex.substr(0, 2) == "0x") ? 2 : 0);
while (_local1 < hex.length) {
_local3.push(parseInt(hex.substr(_local1, 2), 16));
_local1 = _local1 + 2;
}
return(_local3);
}
static function charsToStr(chars) {
var _local3 = new String("");
var _local1 = 0;
while (_local1 < chars.length) {
_local3 = _local3 + String.fromCharCode(chars[_local1]);
_local1++;
}
return(_local3);
}
static function strToChars(str) {
var _local3 = new Array();
var _local1 = 0;
while (_local1 < str.length) {
_local3.push(str.charCodeAt(_local1));
_local1++;
}
return(_local3);
}
static var sbox = new Array(255);
static var mykey = new Array(255);
}
Symbol 36 MovieClip [__Packages.com.newgrounds.Score] Frame 0
class com.newgrounds.Score
{
var _rank, _username, _score, _numericValue, _tag;
function Score (rank, username, score, numericValue, tag) {
(_rank = rank);
(_username = username);
_score = score;
_numericValue = numericValue;
_tag = tag;
}
function get numericValue() {
return(_numericValue);
}
function get rank() {
return(_rank);
}
function get score() {
return(_score);
}
function get tag() {
return(_tag);
}
function get username() {
return(_username);
}
function toString() {
return((((_rank + ".\t") + _username) + "\t") + _score);
}
}
Symbol 169 Button
on (press) {
getURL ("http://www.FlandersKiller.co.nr", "_blank");
}
Symbol 185 Button
on (release) {
gotoAndPlay (14);
}
Symbol 186 Button
on (release) {
gotoAndStop (25);
}
Symbol 187 Button
on (release) {
gotoAndStop (705);
}
Symbol 188 Button
on (release) {
nextFrame();
}
Symbol 189 Button
on (press) {
getURL ("http://www.facebook.com/FlandersKiller", "_blank");
}
Symbol 197 Button
on (release) {
_quality = "Low";
}
Symbol 200 Button
on (release) {
_quality = "medium";
}
Symbol 203 Button
on (release) {
_quality = "High";
}
Symbol 209 Button
on (release) {
stopAllSounds();
}
Symbol 216 Button
on (release) {
var o = {n:[0, 13, 11, 1, 8, 9, 8, 2, 15, 3, 14, 3, 6, 7, 2, 0], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var boardID = o.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:"233ee97f2bba6a25"});
}
Symbol 220 Button
on (release) {
gotoAndStop (12);
}
Symbol 231 Button
on (release) {
getURL ("http://www.twitter.com/aprimez", "_top");
}
Symbol 239 Button
on (release) {
getURL ("http://www.facebook.com/FlandersKiller", "_blank");
}
Symbol 240 Button
on (press) {
getURL ("http://www.youtube.com/agoesin", "_blank");
}
Symbol 272 Button
on (release) {
_root.play();
}
Symbol 279 Button
on (release) {
getURL ("http://www.youtube.com/agoesin", "_blank");
}
Symbol 280 MovieClip Frame 25
stop();
Symbol 291 Button
on (press, keyPress "<Enter>") {
if (_root.password == "kodosthecloner") {
gotoAndStop (80);
} else if (_root.password == "mayorjoseph") {
gotoAndStop (123);
} else if (_root.password == "golfwithb") {
gotoAndStop (167);
} else if (_root.password == "molereturns") {
gotoAndStop (194);
} else if (_root.password == "yhess") {
gotoAndStop (239);
} else if (_root.password == "freeduff") {
gotoAndStop (276);
} else if (_root.password == "zaapp") {
gotoAndStop (313);
} else if (_root.password == "chilling") {
gotoAndStop (374);
} else if (_root.password == "vanhouten") {
gotoAndStop (411);
} else if (_root.password == "kapeesh") {
gotoAndStop (449);
} else if (_root.password == "dirtyzoo") {
gotoAndStop (492);
} else if (_root.password == "moesroof") {
gotoAndStop (535);
} else if (_root.password == "flaming") {
gotoAndStop (568);
} else if (_root.password == "comeagain") {
gotoAndStop (603);
} else if (_root.password == "742evergreen") {
gotoAndStop (631);
} else if (_root.password == "burnscastle") {
gotoAndStop (657);
} else if (_root.password == "rideordie") {
gotoAndStop (695);
} else if (_root.password == "finito") {
gotoAndStop (701);
} else {
_root.wrongcheat.play();
}
}
Symbol 292 Button
on (release) {
gotoAndStop (12);
}
Symbol 295 Button
on (press) {
getURL ("http://www.flanderskiller.com", "_blank");
}
Symbol 297 MovieClip Frame 1
stop();
Symbol 301 Button
on (press) {
nextFrame();
}
Symbol 308 MovieClip Frame 1
stop(flash);
Symbol 308 MovieClip Frame 2
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
stop(flash);
Symbol 308 MovieClip Frame 3
play();
Symbol 308 MovieClip Frame 12
_root.score = _root.score + 3;
_root.scorebox = _root.score;
stop();
stop(flash);
Symbol 323 Button
on (press) {
nextFrame();
}
Symbol 325 Button
on (release) {
nextFrame();
}
Symbol 330 MovieClip Frame 1
stop(flash);
Symbol 330 MovieClip Frame 2
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
stop(flash);
Symbol 330 MovieClip Frame 3
play();
Symbol 330 MovieClip Frame 7
_root.score = _root.score + 3;
_root.scorebox = _root.score;
stop();
stop(flash);
Symbol 347 MovieClip Frame 1
function onEnterFrame() {
if (_root.comboc == 1) {
gotoAndPlay ("combo1");
}
}
_root.comboc = 0;
stop();
Symbol 347 MovieClip Frame 2
function onEnterFrame() {
if (_root.comboc == 2) {
gotoAndPlay ("combo2");
}
}
Symbol 347 MovieClip Frame 18
gotoAndStop (1);
Symbol 347 MovieClip Frame 19
function onEnterFrame() {
if (_root.comboc == 3) {
gotoAndPlay ("combo3");
}
}
_root.score = _root.score + 50;
_root.scorebox = _root.score;
Symbol 347 MovieClip Frame 35
gotoAndStop (1);
Symbol 347 MovieClip Frame 36
function onEnterFrame() {
if (_root.comboc == 4) {
gotoAndPlay ("combo4");
}
}
_root.score = _root.score + 50;
_root.scorebox = _root.score;
Symbol 347 MovieClip Frame 51
gotoAndStop (1);
Symbol 347 MovieClip Frame 52
function onEnterFrame() {
if (_root.comboc == 4) {
play();
}
}
_root.score = _root.score + 100;
_root.scorebox = _root.score;
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Quad Killer");
}
Symbol 347 MovieClip Frame 68
gotoAndStop (1);
Symbol 360 Button
on (release) {
_root.mb._visible = false;
_root.qy._visible = false;
_root.qn._visible = false;
_root.mn._visible = true;
}
Symbol 365 Button
on (release) {
_root.mn._visible = false;
gotoAndPlay (2);
}
Symbol 371 Button
on (release) {
_root.mb._visible = true;
_root.qy._visible = true;
_root.qn._visible = true;
_root.mn._visible = false;
}
Symbol 373 MovieClip Frame 1
function camControl() {
parentColor.setTransform(camColor.getTransform());
var _local4 = sX / this._width;
var _local3 = sY / this._height;
_parent._x = cX - (this._x * _local4);
_parent._y = cY - (this._y * _local3);
_parent._xscale = 100 * _local4;
_parent._yscale = 100 * _local3;
}
function resetStage() {
var _local2 = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
parentColor.setTransform(_local2);
_parent._xscale = 100;
_parent._yscale = 100;
_parent._x = 0;
_parent._y = 0;
}
this._visible = false;
var oldMode = Stage.scaleMode;
Stage.scaleMode = "exactFit";
var cX = (Stage.width / 2);
var cY = (Stage.height / 2);
var sX = Stage.width;
var sY = Stage.height;
Stage.scaleMode = oldMode;
var camColor = new Color(this);
var parentColor = new Color(_parent);
this.onEnterFrame = camControl;
camControl();
this.onUnload = resetStage;
Symbol 380 MovieClip Frame 2
stop();
Symbol 381 MovieClip Frame 1
stop();
Symbol 381 MovieClip Frame 2
stop();
Symbol 384 Button
on (press) {
nextFrame();
}
Symbol 386 Button
on (press) {
gotoAndPlay (27);
}
Symbol 407 MovieClip Frame 10
stop();
Symbol 407 MovieClip Frame 11
_root.score = _root.score + 3;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
play();
Symbol 407 MovieClip Frame 26
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
stop();
Symbol 407 MovieClip Frame 27
_root.score = _root.score + 5;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
play();
Symbol 407 MovieClip Frame 37
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
stop();
Symbol 409 Button
on (press) {
nextFrame();
}
Symbol 411 Button
on (press) {
gotoAndPlay (20);
}
Symbol 422 Button
on (release) {
nextFrame();
}
Symbol 446 MovieClip Frame 1
stop(flash);
Symbol 446 MovieClip Frame 2
play();
Symbol 446 MovieClip Frame 3
_root.score = _root.score + 3;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
Symbol 446 MovieClip Frame 18
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
Symbol 446 MovieClip Frame 19
stop();
Symbol 446 MovieClip Frame 20
_root.score = _root.score + 5;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
Symbol 446 MovieClip Frame 35
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
Symbol 446 MovieClip Frame 36
stop();
_root.roddy.gotoAndStop(1);
Symbol 447 MovieClip Frame 51
gotoAndPlay (7);
Symbol 449 Button
on (press) {
gotoAndPlay (2);
}
Symbol 451 Button
on (press) {
gotoAndPlay (18);
}
Symbol 454 Button
on (press) {
gotoAndPlay (3);
}
Symbol 481 MovieClip Frame 1
stop(flash);
_root.medalBodyCombo = 0;
Symbol 481 MovieClip Frame 2
_root.comboc = _root.comboc + 1;
Instance of Symbol 453 MovieClip "comboCatcher" in Symbol 481 MovieClip Frame 2
onClipEvent (enterFrame) {
if (_root.medalBodyCombo == 3) {
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Todd's Combo");
}
}
}
Symbol 481 MovieClip Frame 3
_root.score = _root.score + 3;
_root.scorebox = _root.score;
_root.medalBodyCombo = _root.medalBodyCombo + 1;
Symbol 481 MovieClip Frame 17
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
stop();
stop(flash);
gotoAndStop (36);
Symbol 481 MovieClip Frame 18
_root.score = _root.score + 5;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
Symbol 481 MovieClip Frame 35
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
Symbol 481 MovieClip Frame 36
stop();
Symbol 482 MovieClip Frame 48
gotoAndPlay (5);
Symbol 485 Button
on (press) {
gotoAndPlay (2);
}
Symbol 488 Button
on (press) {
gotoAndPlay (61);
}
Symbol 490 Button
on (press) {
gotoAndPlay (2);
}
Symbol 491 Button
on (press) {
gotoAndPlay (3);
}
Symbol 493 Button
on (press) {
gotoAndPlay (3);
}
Symbol 514 Button
on (press) {
gotoAndPlay (2);
}
Symbol 515 MovieClip Frame 1
stop();
Symbol 515 MovieClip Frame 2
_root.score = _root.score + 10;
_root.scorebox = _root.score;
_root.medalGhostCombo = _root.medalGhostCombo + 1;
if (_root.medalGhostCombo == 5) {
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Maud's Ghost");
}
}
Symbol 515 MovieClip Frame 3
gotoAndPlay (1);
Symbol 517 Button
on (press) {
gotoAndPlay (2);
}
Symbol 518 MovieClip Frame 1
stop(flash);
Symbol 518 MovieClip Frame 2
_root.score = _root.score + 10;
_root.scorebox = _root.score;
_root.medalGhostCombo = _root.medalGhostCombo + 1;
if (_root.medalGhostCombo == 5) {
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Maud's Ghost");
}
}
Symbol 518 MovieClip Frame 3
gotoAndPlay (1);
Symbol 524 MovieClip Frame 1
stop(flash);
_root.medalGhostCombo = 0;
Symbol 524 MovieClip Frame 2
_root.comboc = _root.comboc + 1;
Symbol 524 MovieClip Frame 3
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 524 MovieClip Frame 56
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
Symbol 524 MovieClip Frame 60
stop(flash);
Symbol 524 MovieClip Frame 61
_root.score = _root.score + 5;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
Symbol 524 MovieClip Frame 74
gotoAndPlay (21);
Symbol 525 MovieClip Frame 46
gotoAndPlay (4);
Symbol 539 Button
on (release) {
play();
}
Symbol 541 Button
on (press) {
getURL ("http://facebook.com/flanderskiller", "_blank");
}
Symbol 548 Button
on (press) {
play();
}
Symbol 551 Button
on (press) {
gotoAndPlay (22);
}
Symbol 591 MovieClip Frame 1
stop();
Symbol 591 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 591 MovieClip Frame 21
stop();
Symbol 591 MovieClip Frame 22
_root.score = _root.score + 10;
_root.scorebox = _root.score;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 591 MovieClip Frame 47
stop();
Symbol 595 Button
on (press) {
nextFrame();
}
Symbol 599 MovieClip Frame 1
stop();
Symbol 599 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 609 Button
on (press) {
play();
}
Symbol 613 MovieClip Frame 1
stop();
Symbol 613 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 613 MovieClip Frame 3
stop();
Symbol 613 MovieClip Frame 4
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 613 MovieClip Frame 5
stop();
Symbol 613 MovieClip Frame 6
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 613 MovieClip Frame 7
stop();
Symbol 613 MovieClip Frame 8
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 613 MovieClip Frame 9
stop();
Symbol 613 MovieClip Frame 10
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 613 MovieClip Frame 11
stop();
Symbol 620 Button
on (press) {
nextFrame();
_root.neddy.stop();
}
Symbol 621 Button
on (press) {
gotoAndPlay (18);
_root.neddy.stop();
}
Symbol 628 MovieClip Frame 1
stop();
Symbol 628 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
play();
Symbol 628 MovieClip Frame 15
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
Symbol 628 MovieClip Frame 16
gotoAndPlay (29);
Symbol 628 MovieClip Frame 17
stop();
Symbol 628 MovieClip Frame 18
_root.score = _root.score + 5;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
play();
Symbol 628 MovieClip Frame 28
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
Symbol 628 MovieClip Frame 38
stop();
Symbol 629 MovieClip Frame 100
gotoAndPlay (2);
Symbol 636 MovieClip Frame 17
stop();
Symbol 656 Button
on (press) {
gotoAndPlay (27);
}
Symbol 658 Button
on (press) {
gotoAndPlay (27);
}
Symbol 660 Button
on (press) {
play();
_root.quimby.stop();
}
Symbol 700 MovieClip Frame 1
stop();
Symbol 700 MovieClip Frame 2
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
play();
Symbol 700 MovieClip Frame 25
stop();
Symbol 700 MovieClip Frame 27
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 700 MovieClip Frame 34
stop();
Symbol 702 MovieClip Frame 131
gotoAndPlay (2);
Symbol 707 Button
on (press) {
gotoAndPlay (18);
}
Symbol 711 MovieClip Frame 1
stop();
Symbol 711 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
play();
Symbol 711 MovieClip Frame 17
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
stop();
gotoAndStop (29);
Symbol 711 MovieClip Frame 18
_root.score = _root.score + 5;
_root.scorebox = _root.score;
_root.comboc = _root.comboc + 1;
play();
Symbol 711 MovieClip Frame 28
_root.nextf = _root.nextf + 1;
_root.nextf = _root.nextf;
Symbol 711 MovieClip Frame 29
stop();
Symbol 712 MovieClip Frame 123
gotoAndPlay (10);
Symbol 714 MovieClip Frame 161
gotoAndPlay (3);
Symbol 738 Button
on (press) {
play();
}
Symbol 745 MovieClip Frame 1
stop();
Symbol 745 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 745 MovieClip Frame 7
stop();
Symbol 749 Button
on (press) {
play();
}
Symbol 768 MovieClip Frame 1
stop();
Symbol 768 MovieClip Frame 2
_root.score = _root.score + 10;
_root.scorebox = _root.score;
Symbol 768 MovieClip Frame 15
stop();
Symbol 770 Button
on (press) {
play();
}
Symbol 771 MovieClip Frame 1
stop();
Symbol 771 MovieClip Frame 2
_root.score = _root.score + 15;
_root.scorebox = _root.score;
Symbol 771 MovieClip Frame 17
stop();
Symbol 780 Button
on (press) {
gotoAndPlay (24);
_root.monty.stop();
}
Symbol 782 Button
on (press) {
gotoAndPlay (1);
_root.monty.stop();
}
Symbol 877 MovieClip Frame 1
stop();
Symbol 877 MovieClip Frame 2
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 877 MovieClip Frame 23
stop();
Symbol 877 MovieClip Frame 24
_root.score = _root.score - 5;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 877 MovieClip Frame 50
stop();
Symbol 900 Button
on (press) {
gotoAndPlay (16);
}
Symbol 903 Button
on (press) {
gotoAndPlay (16);
_root.moleyman.stop();
}
Symbol 905 Button
on (press) {
gotoAndPlay (2);
_root.moleyman.stop();
}
Symbol 924 Button
on (press) {
gotoAndPlay (2);
}
Symbol 940 MovieClip Frame 1
stop();
Symbol 940 MovieClip Frame 2
play();
Symbol 940 MovieClip Frame 3
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Instance of Symbol 909 MovieClip in Symbol 940 MovieClip Frame 3
on (press) {
gotoAndPlay (2);
}
Symbol 940 MovieClip Frame 14
stop();
gotoAndPlay (32);
Symbol 940 MovieClip Frame 17
_root.score = _root.score - 5;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 940 MovieClip Frame 31
stop();
Symbol 940 MovieClip Frame 35
stop();
Symbol 950 MovieClip Frame 48
gotoAndPlay (8);
Symbol 968 Button
on (press) {
play();
}
Symbol 971 MovieClip Frame 1
stop();
Symbol 971 MovieClip Frame 2
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
Symbol 973 Button
on (press) {
nextFrame();
}
Symbol 975 MovieClip Frame 1
stop();
Symbol 975 MovieClip Frame 2
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
stop();
Symbol 977 Button
on (press) {
nextFrame();
}
Symbol 983 MovieClip Frame 13
stop();
Symbol 984 MovieClip Frame 1
stop();
Symbol 984 MovieClip Frame 2
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
stop();
Symbol 986 Button
on (press) {
nextFrame();
}
Symbol 988 MovieClip Frame 1
stop();
Symbol 988 MovieClip Frame 2
stop();
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
Symbol 989 Button
on (press) {
nextFrame();
}
Symbol 991 MovieClip Frame 1
stop();
Symbol 991 MovieClip Frame 2
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
stop();
Symbol 997 Button
on (press) {
nextFrame();
}
Symbol 999 MovieClip Frame 1
stop();
Symbol 999 MovieClip Frame 2
stop();
_root.score = _root.score + 2;
_root.scorebox = _root.score;
stop();
Symbol 1003 Button
on (press) {
gotoAndPlay (20);
}
Symbol 1005 Button
on (press) {
play();
}
Symbol 1037 MovieClip Frame 1
stop();
Symbol 1037 MovieClip Frame 2
play();
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1037 MovieClip Frame 3
_root.score = _root.score - 10;
_root.scorebox = _root.score;
Symbol 1037 MovieClip Frame 19
stop();
Symbol 1037 MovieClip Frame 20
_root.score = _root.score - 5;
_root.scorebox = _root.score;
play();
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
Symbol 1037 MovieClip Frame 30
stop();
Symbol 1045 MovieClip Frame 55
gotoAndPlay (13);
Symbol 1049 Button
on (press) {
gotoAndPlay (241);
}
Symbol 1051 Button
on (press) {
gotoAndPlay (241);
}
Symbol 1053 Button
on (press) {
gotoAndPlay (241);
}
Symbol 1057 Button
on (press) {
gotoAndPlay (2);
}
Symbol 1058 Button
on (press) {
gotoAndPlay (2);
}
Symbol 1059 Button
on (press) {
gotoAndPlay (2);
}
Symbol 1063 Button
on (press) {
gotoAndPlay (13);
}
Symbol 1064 Button
on (press) {
gotoAndPlay (13);
}
Symbol 1081 MovieClip Frame 1
stop();
Symbol 1081 MovieClip Frame 2
_root.score = _root.score + 20;
_root.scorebox = _root.score;
Symbol 1081 MovieClip Frame 12
stop();
Symbol 1081 MovieClip Frame 13
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1081 MovieClip Frame 28
stop();
Symbol 1090 Button
on (press) {
nextFrame();
}
Symbol 1095 MovieClip Frame 1
stop();
Symbol 1095 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
stop();
Symbol 1095 MovieClip Frame 3
stop();
_root.score = _root.score + 5;
_root.scorebox = _root.score;
stop();
Symbol 1095 MovieClip Frame 4
play();
_root.score = _root.score + 10;
_root.scorebox = _root.score;
play();
Symbol 1095 MovieClip Frame 9
stop();
Symbol 1102 MovieClip Frame 68
gotoAndPlay (6);
Symbol 1112 MovieClip Frame 36
_root.play();
Symbol 1119 Button
on (press) {
play();
}
Symbol 1123 MovieClip Frame 1
stop();
Symbol 1123 MovieClip Frame 2
_parent.stop();
_root.score = _root.score + 60;
_root.scorebox = _root.score;
_root.convertedHeathen = _root.convertedHeathen + 1;
Symbol 1123 MovieClip Frame 10
stop();
Symbol 1124 MovieClip Frame 20
stop();
Symbol 1126 MovieClip Frame 2
stop();
Symbol 1127 MovieClip Frame 1
stop();
Symbol 1127 MovieClip Frame 2
stop();
Symbol 1131 MovieClip Frame 26
stop();
Symbol 1195 Button
on (press) {
gotoAndPlay (37);
}
Symbol 1197 Button
on (press) {
gotoAndPlay (19);
}
Symbol 1200 Button
on (press) {
play();
}
Symbol 1217 MovieClip Frame 1
stop();
Symbol 1217 MovieClip Frame 2
_root.score = _root.score + 50;
_root.scorebox = _root.score;
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Otto's Earphones");
}
Symbol 1217 MovieClip Frame 17
stop();
Symbol 1219 Button
on (press) {
play();
}
Symbol 1299 MovieClip Frame 1
stop();
Symbol 1299 MovieClip Frame 2
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1299 MovieClip Frame 18
stop();
Symbol 1299 MovieClip Frame 19
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1299 MovieClip Frame 36
stop();
Symbol 1299 MovieClip Frame 37
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1299 MovieClip Frame 66
stop();
Symbol 1306 MovieClip Frame 83
gotoAndPlay (2);
Symbol 1325 Button
on (press) {
nextFrame();
}
Symbol 1327 MovieClip Frame 1
stop();
Symbol 1327 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 1327 MovieClip Frame 3
stop();
Symbol 1342 Button
on (press) {
play();
_root.movebird.stop();
}
Symbol 1357 MovieClip Frame 1
stop();
Symbol 1357 MovieClip Frame 2
_root.score = _root.score + 100;
_root.scorebox = _root.score;
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("A little birdy");
}
Symbol 1357 MovieClip Frame 11
stop();
Symbol 1371 Button
on (press) {
play();
}
Symbol 1375 Button
on (press) {
play();
}
Symbol 1377 MovieClip Frame 1
stop();
Symbol 1377 MovieClip Frame 2
_root.score = _root.score - 60;
_root.scorebox = _root.score;
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Jebediah Springfield");
}
Symbol 1377 MovieClip Frame 8
stop();
Symbol 1381 Button
on (press) {
gotoAndPlay (22);
}
Symbol 1383 Button
on (press) {
play();
}
Symbol 1432 Button
on (release) {
play();
}
Symbol 1462 MovieClip Frame 1
stop();
Symbol 1462 MovieClip Frame 2
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1462 MovieClip Frame 21
stop();
Symbol 1462 MovieClip Frame 22
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1462 MovieClip Frame 40
stop();
Symbol 1468 MovieClip Frame 53
gotoAndPlay (4);
Symbol 1509 MovieClip Frame 85
gotoAndPlay (2);
Symbol 1511 Button
on (press) {
gotoAndPlay (19);
}
Symbol 1513 Button
on (press) {
play();
}
Symbol 1542 MovieClip Frame 1
stop();
Symbol 1542 MovieClip Frame 2
_root.score = _root.score - 15;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1542 MovieClip Frame 18
stop();
Symbol 1542 MovieClip Frame 19
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1542 MovieClip Frame 25
stop();
Symbol 1544 Button
on (press) {
gotoAndPlay (16);
}
Symbol 1546 Button
on (press) {
play();
}
Symbol 1580 MovieClip Frame 1
stop();
Symbol 1580 MovieClip Frame 2
_root.score = _root.score - 15;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1580 MovieClip Frame 15
stop();
Symbol 1580 MovieClip Frame 16
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1580 MovieClip Frame 22
stop();
Symbol 1581 MovieClip Frame 1
stop();
Symbol 1581 MovieClip Frame 8
stop();
Symbol 1583 Button
on (release) {
play();
}
Symbol 1586 Button
on (press) {
play();
}
Symbol 1589 MovieClip Frame 1
stop();
Symbol 1589 MovieClip Frame 2
_root.score = _root.score + 100;
_root.scorebox = _root.score;
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Tony's Cup");
}
Symbol 1589 MovieClip Frame 3
stop();
Symbol 1614 MovieClip Frame 1
stop();
Symbol 1614 MovieClip Frame 2
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1614 MovieClip Frame 7
_root.mobsahh.play();
Symbol 1614 MovieClip Frame 12
stop();
Symbol 1621 Button
on (press) {
gotoAndPlay (132);
}
Symbol 1623 Button
on (press) {
gotoAndPlay (132);
}
Symbol 1625 Button
on (press) {
gotoAndPlay (99);
}
Symbol 1627 Button
on (press) {
gotoAndPlay (132);
}
Symbol 1640 Button
on (press) {
gotoAndPlay (132);
}
Symbol 1641 Button
on (press) {
gotoAndPlay (132);
}
Symbol 1642 Button
on (press) {
gotoAndPlay (99);
}
Symbol 1643 Button
on (press) {
gotoAndPlay (132);
}
Symbol 1690 MovieClip Frame 98
gotoAndPlay (1);
Symbol 1690 MovieClip Frame 101
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1690 MovieClip Frame 131
stop();
Symbol 1690 MovieClip Frame 133
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1690 MovieClip Frame 156
stop();
Symbol 1695 Button
on (press) {
play();
}
Symbol 1711 MovieClip Frame 1
stop();
Symbol 1711 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 1711 MovieClip Frame 11
stop();
Symbol 1720 MovieClip Frame 45
gotoAndPlay (2);
Symbol 1740 MovieClip Frame 39
gotoAndPlay (11);
Symbol 1745 Button
on (press) {
gotoAndPlay (12);
}
Symbol 1747 Button
on (press) {
play();
}
Symbol 1766 MovieClip Frame 1
stop();
Symbol 1766 MovieClip Frame 2
play();
Symbol 1766 MovieClip Frame 3
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1766 MovieClip Frame 11
gotoAndStop (28);
Symbol 1766 MovieClip Frame 12
play();
Symbol 1766 MovieClip Frame 13
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1766 MovieClip Frame 28
stop();
Symbol 1791 Button
on (press) {
nextFrame();
}
Symbol 1797 MovieClip Frame 1
stop();
Symbol 1797 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
stop();
Symbol 1807 Button
on (press) {
play();
}
Symbol 1811 MovieClip Frame 1
stop();
Symbol 1811 MovieClip Frame 2
stop();
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 1811 MovieClip Frame 3
_root.score = _root.score + 10;
_root.scorebox = _root.score;
Symbol 1811 MovieClip Frame 9
stop();
Symbol 1814 Button
on (press) {
_root.S1.play();
nextFrame();
}
Symbol 1815 MovieClip Frame 1
stop();
Symbol 1815 MovieClip Frame 2
stop();
Symbol 1816 Button
on (press) {
_root.S2.play();
nextFrame();
}
Symbol 1817 MovieClip Frame 1
stop();
Symbol 1817 MovieClip Frame 2
stop();
Symbol 1818 Button
on (press) {
_root.S3.play();
nextFrame();
}
Symbol 1819 MovieClip Frame 1
stop();
Symbol 1819 MovieClip Frame 2
stop();
Symbol 1820 Button
on (press) {
_root.S4.play();
nextFrame();
}
Symbol 1821 MovieClip Frame 1
stop();
Symbol 1821 MovieClip Frame 2
stop();
Symbol 1822 Button
on (press) {
_root.S5.play();
nextFrame();
}
Symbol 1823 MovieClip Frame 1
stop();
Symbol 1823 MovieClip Frame 2
stop();
Symbol 1824 Button
on (press) {
_root.S6.play();
nextFrame();
}
Symbol 1825 MovieClip Frame 1
stop();
Symbol 1825 MovieClip Frame 2
stop();
Symbol 1826 Button
on (press) {
_root.S7.play();
nextFrame();
}
Symbol 1827 MovieClip Frame 1
stop();
Symbol 1827 MovieClip Frame 2
stop();
Symbol 1828 Button
on (press) {
_root.S8.play();
nextFrame();
}
Symbol 1829 MovieClip Frame 1
stop();
Symbol 1829 MovieClip Frame 2
stop();
Symbol 1830 Button
on (press) {
_root.S9.play();
nextFrame();
}
Symbol 1831 MovieClip Frame 1
stop();
Symbol 1831 MovieClip Frame 2
stop();
Symbol 1832 Button
on (press) {
_root.S10.play();
nextFrame();
}
Symbol 1833 MovieClip Frame 1
stop();
Symbol 1833 MovieClip Frame 2
stop();
Symbol 1834 Button
on (press) {
_root.S11.play();
nextFrame();
}
Symbol 1835 MovieClip Frame 1
stop();
Symbol 1835 MovieClip Frame 2
stop();
Symbol 1836 Button
on (press) {
_root.S12.play();
nextFrame();
}
Symbol 1837 MovieClip Frame 1
stop();
Symbol 1837 MovieClip Frame 2
stop();
Symbol 1838 Button
on (press) {
_root.S13.play();
nextFrame();
}
Symbol 1839 MovieClip Frame 1
stop();
Symbol 1839 MovieClip Frame 2
stop();
Symbol 1840 Button
on (press) {
_root.S14.play();
nextFrame();
}
Symbol 1841 MovieClip Frame 1
stop();
Symbol 1841 MovieClip Frame 2
stop();
Symbol 1842 Button
on (press) {
_root.S15.play();
nextFrame();
}
Symbol 1843 MovieClip Frame 1
stop();
Symbol 1843 MovieClip Frame 2
stop();
Symbol 1844 Button
on (press) {
_root.S16.play();
nextFrame();
}
Symbol 1845 MovieClip Frame 1
stop();
Symbol 1845 MovieClip Frame 2
stop();
Symbol 1846 Button
on (press) {
_root.S17.play();
nextFrame();
}
Symbol 1847 MovieClip Frame 1
stop();
Symbol 1847 MovieClip Frame 2
stop();
Symbol 1848 Button
on (press) {
_root.S18.play();
nextFrame();
}
Symbol 1849 MovieClip Frame 1
stop();
Symbol 1849 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 1850 Button
on (press) {
_root.S19.play();
nextFrame();
}
Symbol 1851 MovieClip Frame 1
stop();
Symbol 1851 MovieClip Frame 2
stop();
Symbol 1855 Button
on (press) {
play();
}
Symbol 1869 MovieClip Frame 1
stop();
Symbol 1869 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 1869 MovieClip Frame 17
stop();
Symbol 1872 Button
on (press) {
play();
}
Symbol 1874 Button
on (press) {
gotoAndPlay (29);
}
Symbol 1917 MovieClip Frame 1
stop();
Symbol 1917 MovieClip Frame 2
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1917 MovieClip Frame 28
stop();
Symbol 1917 MovieClip Frame 29
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 1917 MovieClip Frame 42
stop();
Symbol 1924 Button
on (press) {
play();
}
Symbol 1935 MovieClip Frame 1
stop();
Symbol 1935 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 1935 MovieClip Frame 8
stop();
Symbol 1941 Button
on (press) {
play();
}
Symbol 1948 MovieClip Frame 1
stop();
Symbol 1948 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 1948 MovieClip Frame 6
stop();
Symbol 1950 Button
on (press) {
play();
}
Symbol 1956 MovieClip Frame 1
stop();
Symbol 1956 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 1956 MovieClip Frame 6
stop();
Symbol 1964 MovieClip Frame 1
stop();
Symbol 1964 MovieClip Frame 2
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 1964 MovieClip Frame 8
stop();
Symbol 1969 MovieClip Frame 45
gotoAndPlay (5);
Symbol 1997 Button
on (press) {
nextFrame();
}
Symbol 2000 MovieClip Frame 1
stop();
Symbol 2000 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2005 Button
on (press) {
nextFrame();
}
Symbol 2008 MovieClip Frame 1
stop();
Symbol 2008 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2010 Button
on (press) {
nextFrame();
}
Symbol 2013 MovieClip Frame 1
stop();
Symbol 2013 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2015 Button
on (press) {
nextFrame();
}
Symbol 2018 MovieClip Frame 1
stop();
Symbol 2018 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2020 MovieClip Frame 22
stop();
Symbol 2023 Button
on (press) {
nextFrame();
}
Symbol 2025 MovieClip Frame 1
stop();
Symbol 2025 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2028 Button
on (press) {
nextFrame();
}
Symbol 2030 MovieClip Frame 1
stop();
Symbol 2030 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2032 Button
on (press) {
nextFrame();
}
Symbol 2034 MovieClip Frame 1
stop();
Symbol 2034 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2036 Button
on (press) {
nextFrame();
}
Symbol 2038 MovieClip Frame 1
stop();
Symbol 2038 MovieClip Frame 2
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2041 Button
on (press) {
gotoAndPlay (15);
}
Symbol 2043 Button
on (press) {
play();
}
Symbol 2065 Button
on (press) {
gotoAndStop (15);
}
Symbol 2072 MovieClip Frame 1
stop();
Symbol 2072 MovieClip Frame 2
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 2072 MovieClip Frame 14
stop();
Symbol 2072 MovieClip Frame 15
_root.score = _root.score - 6;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 2072 MovieClip Frame 25
stop();
Symbol 2081 MovieClip Frame 42
gotoAndPlay (5);
Symbol 2085 Button
on (release) {
play();
_root.movebird.stop();
}
Symbol 2088 MovieClip Frame 1
stop();
Symbol 2088 MovieClip Frame 11
stop();
Symbol 2095 Button
on (press) {
gotoAndPlay (21);
}
Symbol 2097 Button
on (press) {
gotoAndPlay (2);
}
Symbol 2135 MovieClip Frame 1
stop();
Symbol 2135 MovieClip Frame 2
_root.score = _root.score - 100;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.fullFamily = _root.fullFamily - 1;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 2135 MovieClip Frame 20
stop();
Symbol 2135 MovieClip Frame 21
_root.score = _root.score - 100;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.fullFamily = _root.fullFamily - 1;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 2135 MovieClip Frame 36
stop();
Symbol 2141 Button
on (press) {
gotoAndPlay (15);
}
Symbol 2143 Button
on (press) {
play();
}
Symbol 2182 MovieClip Frame 1
stop();
Symbol 2182 MovieClip Frame 2
play();
_root.score = _root.score - 100;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.fullFamily = _root.fullFamily - 1;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 2182 MovieClip Frame 14
stop();
Symbol 2182 MovieClip Frame 15
play();
_root.score = _root.score - 100;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.fullFamily = _root.fullFamily - 1;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 2182 MovieClip Frame 26
stop();
Symbol 2187 Button
on (press) {
play();
}
Symbol 2191 MovieClip Frame 1
stop();
Symbol 2191 MovieClip Frame 2
stop();
_root.score = _root.score + 50;
_root.scorebox = _root.score;
Symbol 2191 MovieClip Frame 3
stop();
_root.score = _root.score + 100;
_root.scorebox = _root.score;
Symbol 2193 Button
on (press) {
play();
}
Symbol 2206 MovieClip Frame 1
stop();
Symbol 2206 MovieClip Frame 2
_root.score = _root.score - 100;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.fullFamily = _root.fullFamily - 1;
_root.massMurdererCount = _root.massMurdererCount + 1;
_parent.stop();
Symbol 2206 MovieClip Frame 10
stop();
Symbol 2209 Button
on (press) {
play();
}
Symbol 2222 MovieClip Frame 1
stop();
Symbol 2222 MovieClip Frame 2
_root.score = _root.score - 100;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.fullFamily = _root.fullFamily - 1;
_root.massMurdererCount = _root.massMurdererCount + 1;
Symbol 2222 MovieClip Frame 10
stop();
Symbol 2226 MovieClip Frame 111
gotoAndPlay (2);
Symbol 2229 Button
on (press) {
gotoAndPlay (26);
}
Symbol 2231 Button
on (press) {
gotoAndPlay (2);
}
Symbol 2244 Button
on (press) {
nextFrame();
}
Symbol 2249 MovieClip Frame 1
stop();
Symbol 2249 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2251 Button
on (release) {
play();
}
Symbol 2254 MovieClip Frame 1
stop();
Symbol 2254 MovieClip Frame 2
_root.score = _root.score + 7;
_root.scorebox = _root.score;
Symbol 2254 MovieClip Frame 8
stop();
Symbol 2262 Button
on (press) {
play();
}
Symbol 2264 MovieClip Frame 1
stop();
Symbol 2264 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2264 MovieClip Frame 6
stop();
Symbol 2268 Button
on (press) {
nextFrame();
}
Symbol 2276 MovieClip Frame 1
stop();
Symbol 2276 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2276 MovieClip Frame 3
_root.score = _root.score + 10;
_root.scorebox = _root.score;
Symbol 2278 Button
on (press) {
nextFrame();
}
Symbol 2286 MovieClip Frame 1
stop();
Symbol 2286 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2286 MovieClip Frame 3
_root.score = _root.score + 10;
_root.scorebox = _root.score;
Symbol 2294 Button
on (press) {
play();
}
Symbol 2296 MovieClip Frame 1
stop();
Symbol 2296 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2296 MovieClip Frame 10
stop();
Symbol 2298 Button
on (press) {
play();
}
Symbol 2307 MovieClip Frame 1
stop();
Symbol 2307 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2307 MovieClip Frame 12
stop();
Symbol 2308 Button
on (press) {
gotoAndPlay (26);
}
Symbol 2309 Button
on (press) {
gotoAndPlay (2);
}
Symbol 2347 MovieClip Frame 1
stop();
Symbol 2347 MovieClip Frame 2
_root.score = _root.score - 15;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
if (_root.massMurdererCount == 21) {
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Mass Murderer");
}
}
Symbol 2347 MovieClip Frame 25
stop();
Symbol 2347 MovieClip Frame 26
_root.score = _root.score - 10;
_root.scorebox = _root.score;
_root.comboc = 0;
_root.massMurdererCount = _root.massMurdererCount + 1;
if (_root.massMurdererCount == 21) {
if (_root._currentframe == 704) {
} else {
com.newgrounds.API.unlockMedal("Mass Murderer");
}
}
Symbol 2347 MovieClip Frame 48
stop();
Symbol 2349 Button
on (press) {
play();
}
Symbol 2351 MovieClip Frame 1
stop();
Symbol 2351 MovieClip Frame 2
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2351 MovieClip Frame 10
stop();
Symbol 2358 MovieClip Frame 60
gotoAndPlay (2);
Symbol 2364 Button
on (release) {
nextFrame();
}
Symbol 2368 MovieClip Frame 1
stop();
Symbol 2368 MovieClip Frame 2
play();
Symbol 2368 MovieClip Frame 3
_root.healthdevil.nextFrame();
Symbol 2368 MovieClip Frame 4
gotoAndStop (1);
Symbol 2376 MovieClip Frame 7
_root.healthhomer.nextFrame();
Symbol 2376 MovieClip Frame 9
stop();
Symbol 2377 MovieClip Frame 87
gotoAndPlay (16);
Symbol 2380 Button
on (release) {
play();
}
Symbol 2381 MovieClip Frame 30
stop();
Symbol 2381 MovieClip Frame 31
play();
Symbol 2381 MovieClip Frame 32
_root.healthhomer.gotoAndStop(_root.healthhomer._currentframe - 2);
Symbol 2381 MovieClip Frame 33
stop();
Symbol 2393 MovieClip Frame 1
stop();
Symbol 2393 MovieClip Frame 2
stop();
Symbol 2393 MovieClip Frame 3
stop();
Symbol 2393 MovieClip Frame 4
stop();
Symbol 2393 MovieClip Frame 5
stop();
Symbol 2393 MovieClip Frame 6
stop();
Symbol 2393 MovieClip Frame 7
stop();
Symbol 2393 MovieClip Frame 8
stop();
_root.nextFrame();
Symbol 2424 MovieClip Frame 1
stop();
_root.score = _root.score + 1;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 2
stop();
_root.score = _root.score + 2;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 3
stop();
_root.score = _root.score + 3;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 4
stop();
_root.score = _root.score + 4;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 5
stop();
_root.score = _root.score + 5;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 6
stop();
_root.score = _root.score + 6;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 7
stop();
_root.score = _root.score + 7;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 8
stop();
_root.score = _root.score + 8;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 9
stop();
_root.score = _root.score + 9;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 10
stop();
_root.score = _root.score + 10;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 11
stop();
_root.score = _root.score + 11;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 12
stop();
_root.score = _root.score + 12;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 13
stop();
_root.score = _root.score + 13;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 14
stop();
_root.score = _root.score + 14;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 15
stop();
_root.score = _root.score + 15;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 16
stop();
_root.score = _root.score + 16;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 17
stop();
_root.score = _root.score + 17;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 18
stop();
_root.score = _root.score + 18;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 19
stop();
_root.score = _root.score + 19;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 20
stop();
_root.score = _root.score + 20;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 21
stop();
_root.score = _root.score + 21;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 22
stop();
_root.score = _root.score + 22;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 23
stop();
_root.score = _root.score + 23;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 24
stop();
_root.score = _root.score + 24;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 25
stop();
_root.score = _root.score + 25;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 26
stop();
_root.score = _root.score + 26;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 27
stop();
_root.score = _root.score + 27;
_root.scorebox = _root.score;
Symbol 2424 MovieClip Frame 28
stop();
_root.score = _root.score + 28;
_root.scorebox = _root.score;
com.newgrounds.API.unlockMedal("Game Completed");
_root.threeTimesInOneSession = _root.threeTimesInOneSession + 1000;
trace(_root.threeTimesInOneSession);
_root.gotoAndStop(24);
Symbol 2426 Button
on (release) {
gotoAndStop (12);
}
Symbol 2432 Button
on (release) {
gotoAndStop (696);
_root.score = _root.score - 400;
_root.scorebox = _root.score;
}
Symbol 2440 Button
on (release) {
gotoAndStop (702);
}
Symbol 2444 Button
on (release) {
gotoAndStop (703);
}
Symbol 2446 Button
on (release) {
var o = {n:[3, 13, 14, 13, 4, 4, 11, 5, 12, 9, 15, 12, 8, 15, 15, 10], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var boardID = o.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:"233ee97f2bba6a25"});
}
Symbol 2456 Button
on (release) {
gotoAndStop (700);
}
Symbol 2459 Button
on (release) {
_root.mb._visible = false;
_root.ss._visible = false;
_root.sc._visible = false;
_root.pn._visible = false;
_root.ps._visible = false;
}
Symbol 2474 Button
on (release) {
play();
}
Symbol 2478 MovieClip Frame 1
stop();
Symbol 2478 MovieClip Frame 2
stopAllSounds();
Symbol 2480 MovieClip Frame 1
stop();
Symbol 2480 MovieClip Frame 2
stopAllSounds();
Symbol 2482 MovieClip Frame 1
stop();
Symbol 2482 MovieClip Frame 2
stopAllSounds();
Symbol 2484 Button
on (release) {
play();
}
Symbol 2487 MovieClip Frame 1
stop();
Symbol 2487 MovieClip Frame 2
stopAllSounds();
Symbol 2489 MovieClip Frame 1
stop();
Symbol 2489 MovieClip Frame 2
stopAllSounds();
Symbol 2491 MovieClip Frame 1
stop();
Symbol 2491 MovieClip Frame 2
stopAllSounds();
Symbol 2493 MovieClip Frame 1
stop();
Symbol 2493 MovieClip Frame 2
stopAllSounds();
Symbol 2495 MovieClip Frame 1
stop();
Symbol 2495 MovieClip Frame 2
stopAllSounds();
Symbol 2501 Button
on (release) {
gotoAndStop (698);
_root.mb._visible = false;
_root.ss._visible = false;
_root.sc._visible = false;
_root.pn._visible = false;
_root.ps._visible = false;
}
Symbol 2503 MovieClip Frame 1
stop();
Symbol 2503 MovieClip Frame 2
stopAllSounds();
Symbol 2506 MovieClip Frame 1
stop();
Symbol 2506 MovieClip Frame 2
stopAllSounds();
Symbol 2513 Button
on (release) {
_root.mayor.gotoAndStop(1);
_root.rod.gotoAndStop(1);
_root.todd.gotoAndStop(1);
_root.duff.gotoAndStop(1);
_root.flandershand.gotoAndStop(1);
_root.yes.gotoAndStop(1);
_root.maud.gotoAndStop(1);
_root.moe.gotoAndStop(1);
_root.apu.gotoAndStop(1);
_root.flandersbody.gotoAndStop(1);
_root.lisa.gotoAndStop(1);
_root.bart.gotoAndStop(1);
_root.maggie.gotoAndStop(1);
_root.cave.gotoAndStop(1);
_root.tony.gotoAndStop(1);
_root.otto.gotoAndStop(1);
_root.milhouse.gotoAndStop(1);
_root.marge.gotoAndStop(1);
_root.burns.gotoAndStop(1);
_root.barney.gotoAndStop(1);
_root.mobsahh.gotoAndStop(1);
_root.mobsahh.leg.gotoAndStop(1);
_root.mobsahh.louie.gotoAndStop(1);
_root.smithers.gotoAndStop(1);
_root.kodos.gotoAndStop(1);
}
Symbol 2517 Button
on (press) {
getURL ("http://www.twitter.com/aprimez", "_blank");
}
Symbol 2518 Button
on (press) {
getURL ("http://www.facebook.com/flanderskiller", "_blank");
}
Symbol 2519 Button
on (press) {
getURL ("http://flanderskiller.com", "_blank");
}
Symbol 2520 MovieClip Frame 1
stopAllSounds();
Symbol 2520 MovieClip Frame 120
stop();