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

swfchan turned sixteen years old today! (5may2024)

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

Communist in space.swf

This is the info page for
Flash #78698

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


Text
Programmed by Lochie (Night-Mare)
Artwork by Zachary (Penboy)
Music by WhirlGuy

Medal Popup
Place this clip on the root of your movie,
spanning any frames where medals are
called. (this clip is hidden)

Balls

MEDAL GET!

100pts

NEWGROUNDS API CONNECTOR

Place this component on your root timeline at the
start of your movie (over your preloader if possible).

When you publish your movie, this box will be hidden
unless an error occurs.

NOTICE!

You are not logged in!
As a result, any medals you unlock in this game will NOT
be saved to your profile.

ERROR!

We could not connect to the Newgrounds gateway.
If you are using an ad-blocking application, you may need
to disable it to unlock any medals you earn in this game.

There is a new version available!

View latest version

UNAUTHORIZED HOST!

This copy is unauthorized. Click below for a legal version

View legal version

EVERYTHING,
BY EVERYONE.

Flash Ad

Place this movieclip wherever you want a
flash ad to load.
Please do not modify the size as you may
see decreases in your ad preformance!
(This clip will be hidden unless an ad loads)

<p align="left"><font face="Verdana" size="32" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>1337</b></font></p>

<p align="right"><font face="Verdana" size="32" color="#000000" letterSpacing="0.000000" kerning="1"><b>SCORE: 1337</b></font></p>

<p align="right"><font face="Verdana" size="32" color="#000000" letterSpacing="0.000000" kerning="1"><b>SCORE: 1337</b></font></p>

ActionScript [AS3]

Section 1
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int; _local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = new Array(); _local3 = (_arg1.length * 8); _local4 = 0xFF; _local5 = 0; while (_local5 < _local3) { _local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32))); _local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3; return (_local2); } public static function hashBinary(_arg1:ByteArray):String{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Array; var _local11:int; var _local12:int; _local2 = 1732584193; _local3 = -271733879; _local4 = -1732584194; _local5 = 271733878; _local10 = createBlocks(_arg1); _local11 = _local10.length; _local12 = 0; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; digest = new ByteArray(); digest.writeInt(_local2); digest.writeInt(_local3); digest.writeInt(_local4); digest.writeInt(_local5); digest.position = 0; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } } }//package com.adobe.crypto
Section 2
//JSON (com.adobe.serialization.json.JSON) package com.adobe.serialization.json { public class JSON { public static function decode(_arg1:String){ var _local2:JSONDecoder; _local2 = new JSONDecoder(_arg1); return (_local2.getValue()); } public static function encode(_arg1:Object):String{ var _local2:JSONEncoder; _local2 = new JSONEncoder(_arg1); return (_local2.getString()); } } }//package com.adobe.serialization.json
Section 3
//JSONDecoder (com.adobe.serialization.json.JSONDecoder) package com.adobe.serialization.json { public class JSONDecoder { private var value; private var tokenizer:JSONTokenizer; private var token:JSONToken; public function JSONDecoder(_arg1:String){ tokenizer = new JSONTokenizer(_arg1); nextToken(); value = parseValue(); } private function nextToken():JSONToken{ return ((token = tokenizer.getNextToken())); } private function parseObject():Object{ var _local1:Object; var _local2:String; _local1 = new Object(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; while (true) { if (token.type == JSONTokenType.STRING){ _local2 = String(token.value); nextToken(); if (token.type == JSONTokenType.COLON){ nextToken(); _local1[_local2] = parseValue(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting } or , but found " + token.value)); }; } else { tokenizer.parseError(("Expecting : but found " + token.value)); }; } else { tokenizer.parseError(("Expecting string but found " + token.value)); }; }; return (null); } private function parseArray():Array{ var _local1:Array; _local1 = new Array(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; while (true) { _local1.push(parseValue()); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting ] or , but found " + token.value)); }; }; return (null); } public function getValue(){ return (value); } private function parseValue():Object{ if (token == null){ tokenizer.parseError("Unexpected end of input"); }; switch (token.type){ case JSONTokenType.LEFT_BRACE: return (parseObject()); case JSONTokenType.LEFT_BRACKET: return (parseArray()); case JSONTokenType.STRING: case JSONTokenType.NUMBER: case JSONTokenType.TRUE: case JSONTokenType.FALSE: case JSONTokenType.NULL: return (token.value); default: tokenizer.parseError(("Unexpected " + token.value)); }; return (null); } } }//package com.adobe.serialization.json
Section 4
//JSONEncoder (com.adobe.serialization.json.JSONEncoder) package com.adobe.serialization.json { import flash.utils.*; public class JSONEncoder { private var jsonString:String; public function JSONEncoder(_arg1){ jsonString = convertToString(_arg1); } private function arrayToString(_arg1:Array):String{ var _local2:String; var _local3:int; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { if (_local2.length > 0){ _local2 = (_local2 + ","); }; _local2 = (_local2 + convertToString(_arg1[_local3])); _local3++; }; return ((("[" + _local2) + "]")); } private function convertToString(_arg1):String{ if ((_arg1 is String)){ return (escapeString((_arg1 as String))); }; if ((_arg1 is Number)){ return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null"); } else { if ((_arg1 is Boolean)){ return ((_arg1) ? "true" : "false"); } else { if ((_arg1 is Array)){ return (arrayToString((_arg1 as Array))); }; if ((((_arg1 is Object)) && (!((_arg1 == null))))){ return (objectToString(_arg1)); }; }; }; return ("null"); } private function escapeString(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:int; var _local6:String; var _local7:String; _local2 = ""; _local4 = _arg1.length; _local5 = 0; while (_local5 < _local4) { _local3 = _arg1.charAt(_local5); switch (_local3){ case "\"": _local2 = (_local2 + "\\\""); break; case "\\": _local2 = (_local2 + "\\\\"); break; case "\b": _local2 = (_local2 + "\\b"); break; case "\f": _local2 = (_local2 + "\\f"); break; case "\n": _local2 = (_local2 + "\\n"); break; case "\r": _local2 = (_local2 + "\\r"); break; case "\t": _local2 = (_local2 + "\\t"); break; default: if (_local3 < " "){ _local6 = _local3.charCodeAt(0).toString(16); _local7 = ((_local6.length == 2)) ? "00" : "000"; _local2 = (_local2 + (("\\u" + _local7) + _local6)); } else { _local2 = (_local2 + _local3); }; }; _local5++; }; return ((("\"" + _local2) + "\"")); } private function objectToString(_arg1:Object):String{ var s:String; var classInfo:XML; var value:Object; var key:String; var v:XML; var o = _arg1; s = ""; classInfo = describeType(o); if (classInfo.@name.toString() == "Object"){ for (key in o) { value = o[key]; if ((value is Function)){ } else { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(key) + ":") + convertToString(value))); }; }; } else { for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name]))); }; }; return ((("{" + s) + "}")); } public function getString():String{ return (jsonString); } } }//package com.adobe.serialization.json
Section 5
//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _text:String; private var _location:int; public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){ super(_arg1); name = "JSONParseError"; _location = _arg2; _text = _arg3; } public function get text():String{ return (_text); } public function get location():int{ return (_location); } } }//package com.adobe.serialization.json
Section 6
//JSONToken (com.adobe.serialization.json.JSONToken) package com.adobe.serialization.json { public class JSONToken { private var _value:Object; private var _type:int; public function JSONToken(_arg1:int=-1, _arg2:Object=null){ _type = _arg1; _value = _arg2; } public function set value(_arg1:Object):void{ _value = _arg1; } public function get value():Object{ return (_value); } public function set type(_arg1:int):void{ _type = _arg1; } public function get type():int{ return (_type); } } }//package com.adobe.serialization.json
Section 7
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer) package com.adobe.serialization.json { public class JSONTokenizer { private var loc:int; private var ch:String; private var obj:Object; private var jsonString:String; public function JSONTokenizer(_arg1:String){ jsonString = _arg1; loc = 0; nextChar(); } private function skipComments():void{ if (ch == "/"){ nextChar(); switch (ch){ case "/": do { nextChar(); } while (((!((ch == "\n"))) && (!((ch == ""))))); nextChar(); break; case "*": nextChar(); while (true) { if (ch == "*"){ nextChar(); if (ch == "/"){ nextChar(); break; }; } else { nextChar(); }; if (ch == ""){ parseError("Multi-line comment not closed"); }; }; break; default: parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )")); }; }; } private function isDigit(_arg1:String):Boolean{ return ((((_arg1 >= "0")) && ((_arg1 <= "9")))); } private function readNumber():JSONToken{ var _local1:JSONToken; var _local2:String; var _local3:Number; _local1 = new JSONToken(); _local1.type = JSONTokenType.NUMBER; _local2 = ""; if (ch == "-"){ _local2 = (_local2 + "-"); nextChar(); }; if (!isDigit(ch)){ parseError("Expecting a digit"); }; if (ch == "0"){ _local2 = (_local2 + ch); nextChar(); if (isDigit(ch)){ parseError("A digit cannot immediately follow 0"); }; } else { while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if (ch == "."){ _local2 = (_local2 + "."); nextChar(); if (!isDigit(ch)){ parseError("Expecting a digit"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if ((((ch == "e")) || ((ch == "E")))){ _local2 = (_local2 + "e"); nextChar(); if ((((ch == "+")) || ((ch == "-")))){ _local2 = (_local2 + ch); nextChar(); }; if (!isDigit(ch)){ parseError("Scientific notation number needs exponent value"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; _local3 = Number(_local2); if (((isFinite(_local3)) && (!(isNaN(_local3))))){ _local1.value = _local3; return (_local1); }; parseError((("Number " + _local3) + " is not valid!")); return (null); } private function nextChar():String{ return ((ch = jsonString.charAt(loc++))); } public function getNextToken():JSONToken{ var _local1:JSONToken; var _local2:String; var _local3:String; var _local4:String; _local1 = new JSONToken(); skipIgnored(); switch (ch){ case "{": _local1.type = JSONTokenType.LEFT_BRACE; _local1.value = "{"; nextChar(); break; case "}": _local1.type = JSONTokenType.RIGHT_BRACE; _local1.value = "}"; nextChar(); break; case "[": _local1.type = JSONTokenType.LEFT_BRACKET; _local1.value = "["; nextChar(); break; case "]": _local1.type = JSONTokenType.RIGHT_BRACKET; _local1.value = "]"; nextChar(); break; case ",": _local1.type = JSONTokenType.COMMA; _local1.value = ","; nextChar(); break; case ":": _local1.type = JSONTokenType.COLON; _local1.value = ":"; nextChar(); break; case "t": _local2 = ((("t" + nextChar()) + nextChar()) + nextChar()); if (_local2 == "true"){ _local1.type = JSONTokenType.TRUE; _local1.value = true; nextChar(); } else { parseError(("Expecting 'true' but found " + _local2)); }; break; case "f": _local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar()); if (_local3 == "false"){ _local1.type = JSONTokenType.FALSE; _local1.value = false; nextChar(); } else { parseError(("Expecting 'false' but found " + _local3)); }; break; case "n": _local4 = ((("n" + nextChar()) + nextChar()) + nextChar()); if (_local4 == "null"){ _local1.type = JSONTokenType.NULL; _local1.value = null; nextChar(); } else { parseError(("Expecting 'null' but found " + _local4)); }; break; case "\"": _local1 = readString(); break; default: if (((isDigit(ch)) || ((ch == "-")))){ _local1 = readNumber(); } else { if (ch == ""){ return (null); }; parseError((("Unexpected " + ch) + " encountered")); }; }; return (_local1); } private function skipWhite():void{ while (isWhiteSpace(ch)) { nextChar(); }; } private function isWhiteSpace(_arg1:String):Boolean{ return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r")))); } public function parseError(_arg1:String):void{ throw (new JSONParseError(_arg1, loc, jsonString)); } private function skipIgnored():void{ var _local1:int; do { _local1 = loc; skipWhite(); skipComments(); } while (_local1 != loc); } private function isHexDigit(_arg1:String):Boolean{ var _local2:String; _local2 = _arg1.toUpperCase(); return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F")))))); } private function readString():JSONToken{ var _local1:JSONToken; var _local2:String; var _local3:String; var _local4:int; _local1 = new JSONToken(); _local1.type = JSONTokenType.STRING; _local2 = ""; nextChar(); while (((!((ch == "\""))) && (!((ch == ""))))) { if (ch == "\\"){ nextChar(); switch (ch){ case "\"": _local2 = (_local2 + "\""); break; case "/": _local2 = (_local2 + "/"); break; case "\\": _local2 = (_local2 + "\\"); break; case "b": _local2 = (_local2 + "\b"); break; case "f": _local2 = (_local2 + "\f"); break; case "n": _local2 = (_local2 + "\n"); break; case "r": _local2 = (_local2 + "\r"); break; case "t": _local2 = (_local2 + "\t"); break; case "u": _local3 = ""; _local4 = 0; while (_local4 < 4) { if (!isHexDigit(nextChar())){ parseError((" Excepted a hex digit, but found: " + ch)); }; _local3 = (_local3 + ch); _local4++; }; _local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16))); break; default: _local2 = (_local2 + ("\\" + ch)); }; } else { _local2 = (_local2 + ch); }; nextChar(); }; if (ch == ""){ parseError("Unterminated string literal"); }; nextChar(); _local1.value = _local2; return (_local1); } } }//package com.adobe.serialization.json
Section 8
//JSONTokenType (com.adobe.serialization.json.JSONTokenType) package com.adobe.serialization.json { public class JSONTokenType { public static const NUMBER:int = 11; public static const FALSE:int = 8; public static const RIGHT_BRACKET:int = 4; public static const NULL:int = 9; public static const TRUE:int = 7; public static const RIGHT_BRACE:int = 2; public static const UNKNOWN:int = -1; public static const COMMA:int = 0; public static const LEFT_BRACKET:int = 3; public static const STRING:int = 10; public static const LEFT_BRACE:int = 1; public static const COLON:int = 6; } }//package com.adobe.serialization.json
Section 9
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local3:String; var _local4:int; var _local5:int; _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int; _local3 = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 10
//DefaultAPIConnector (com.newgrounds.components.DefaultAPIConnector) package com.newgrounds.components { import com.newgrounds.*; import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class DefaultAPIConnector extends MovieClip { private var _initialized:Boolean; public var viewLegalButton:SimpleButton; public var closeButton:SimpleButton; public var viewLatestButton:SimpleButton; public function DefaultAPIConnector(){ visible = false; addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onNewVersionAvailable(_arg1:NewgroundsAPIEvent):void{ gotoAndStop("new_version"); visible = true; } private function onMovieConnected(_arg1:NewgroundsAPIEvent):void{ if (!_arg1.success){ gotoAndStop("no_connect"); visible = true; }; } public function initialize(_arg1:Object):void{ _initialized = true; NewgroundsAPI.addEventListener(NewgroundsAPIEvent.MOVIE_CONNECTED, onMovieConnected); NewgroundsAPI.addEventListener(NewgroundsAPIEvent.NEW_VERSION_AVAILABLE, onNewVersionAvailable); NewgroundsAPI.addEventListener(NewgroundsAPIEvent.HOST_BLOCKED, onHostBlocked); NewgroundsAPI.setMovieVersion(_arg1.movie_version); NewgroundsAPI.connectMovie(root, _arg1.movie_id.toString(), _arg1.enc_key); if (NewgroundsAPI.isNewgrounds()){ trace(((NewgroundsAPI.isNewgrounds() + " ") + NewgroundsAPI.hasUserSession())); if (((!(NewgroundsAPI.hasUserSession())) && (!(NewgroundsAPI.debugMode)))){ gotoAndStop("no_login"); visible = true; }; }; } private function onOfficialVersionClicked(_arg1:Event):void{ navigateToURL(new URLRequest(NewgroundsAPI.getOfficialVersionURL()), "_blank"); } private function onEnterFrame(_arg1:Event):void{ var _local2:uint; var _local3:uint; if (((this.closeButton) && (!(this.closeButton.hasEventListener(MouseEvent.CLICK))))){ this.closeButton.addEventListener(MouseEvent.CLICK, onCloseButtonClicked); }; if (((this.viewLatestButton) && (!(this.viewLatestButton.hasEventListener(MouseEvent.CLICK))))){ this.viewLatestButton.addEventListener(MouseEvent.CLICK, onOfficialVersionClicked); }; if (((this.viewLegalButton) && (!(this.viewLegalButton.hasEventListener(MouseEvent.CLICK))))){ this.viewLegalButton.addEventListener(MouseEvent.CLICK, onOfficialVersionClicked); }; if (((parent) && (visible))){ _local2 = parent.getChildIndex(this); _local3 = (parent.numChildren - 1); if (((parent) && (!((_local2 == _local3))))){ parent.setChildIndex(this, _local3); }; }; } private function onHostBlocked(_arg1:NewgroundsAPIEvent):void{ gotoAndStop("bad_host"); visible = true; } private function onCloseButtonClicked(_arg1:Event):void{ visible = false; } } }//package com.newgrounds.components
Section 11
//DefaultMedalPopup (com.newgrounds.components.DefaultMedalPopup) package com.newgrounds.components { import com.newgrounds.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; public dynamic class DefaultMedalPopup extends MovieClip { private const MEDAL_POPUP_TIME:uint = 3000; public var medalValueText:TextField; private var _initialized:Boolean; private var _popDelay:Timer; public var medalNameText:TextField; public var medalContainer:MovieClip; private var _medalIcon:Bitmap; private var _medal:NewgroundsAPIMedal; public function DefaultMedalPopup(){ addFrameScript(0, frame1, 9, frame10); visible = false; addEventListener(Event.ENTER_FRAME, onEnterFrame); } function frame10(){ medalNameText.text = _medal.name; medalValueText.text = (_medal.value + "pts"); showMedalIcon(medalContainer); stop(); } private function onMedalUnlocked(_arg1:NewgroundsAPIEvent):void{ _medal = NewgroundsAPIMedal(_arg1.data); _popDelay.start(); gotoAndPlay("medal_show"); visible = true; } function frame1(){ visible = false; stop(); } private function initialize():void{ _initialized = true; NewgroundsAPI.addEventListener(NewgroundsAPIEvent.MEDAL_UNLOCKED, onMedalUnlocked); _popDelay = new Timer(MEDAL_POPUP_TIME, 1); _popDelay.addEventListener(TimerEvent.TIMER, onTimer); } private function showMedalIcon(_arg1:DisplayObjectContainer):void{ if (!_medal){ return; }; _medalIcon = _medal.createIconBitmap(); _arg1.addChild(_medalIcon); } private function onTimer(_arg1:TimerEvent):void{ if (((_medalIcon) && (_medalIcon.parent))){ _medalIcon.parent.removeChild(_medalIcon); _medalIcon = null; }; gotoAndPlay("medal_hide"); _popDelay.stop(); } private function onEnterFrame(_arg1:Event):void{ var _local2:uint; var _local3:uint; if (((!(_initialized)) && (stage))){ initialize(); }; if (((visible) && (parent))){ _local2 = parent.getChildIndex(this); _local3 = (parent.numChildren - 1); if (_local2 != _local3){ parent.swapChildrenAt(_local2, _local3); }; }; } } }//package com.newgrounds.components
Section 12
//BaseN (com.newgrounds.BaseN) package com.newgrounds { import flash.utils.*; public class BaseN { private var _hashIndex:String; private var _base:Number; private var _hashVal:Dictionary; public function BaseN(_arg1:String=null){ var _local2:uint; super(); if (_arg1){ _hashIndex = _arg1; } else { _hashIndex = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/"; }; _base = _hashIndex.length; _hashVal = new Dictionary(); _local2 = 0; while (_local2 < _base) { _hashVal[_hashIndex.charAt(_local2)] = _local2; _local2++; }; } private function baseNDecoder(_arg1:String):uint{ var _local2:uint; var _local3:uint; _local2 = 0; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 * _base); _local2 = (_local2 + _hashVal[_arg1.charAt(_local3)]); _local3++; }; return (_local2); } public function decode(_arg1:String):Number{ var _local2:String; var _local3:Array; _local2 = ""; if (_arg1.charAt(0) == "-"){ _local2 = "-"; _arg1 = _arg1.substring(1); }; _local3 = _arg1.split(".", 2); _local2 = (_local2 + baseNDecoder(_local3[0])); if (_local3.length > 1){ _local2 = (_local2 + "."); _local2 = (_local2 + baseNDecoder(_local3[1])); }; return (Number(_local2)); } public function encode(_arg1:Number, _arg2:uint=1):String{ var _local3:String; var _local4:String; var _local5:Array; _local3 = _arg1.toString(); _local4 = ""; if (_local3.charAt(0) == "-"){ _local4 = "-"; _local3 = _local3.substring(1); }; _local5 = _local3.split(".", 2); _local4 = (_local4 + baseNEncoder(_local5[0], _arg2)); if (_local5.length > 1){ _local4 = (_local4 + ("." + baseNEncoder(_local5[1]))); }; return (_local4); } private function baseNEncoder(_arg1:uint, _arg2:uint=1):String{ var _local3:String; var _local4:uint; _local3 = ""; _local4 = _arg1; while (_local4 != 0) { _local3 = (_hashIndex.charAt((_local4 % _base)) + _local3); _local4 = (_local4 / _base); }; if (_arg2){ while (_local3.length < _arg2) { _local3 = (_hashIndex.charAt(0) + _local3); }; }; return (_local3); } } }//package com.newgrounds
Section 13
//NewgroundsAPI (com.newgrounds.NewgroundsAPI) package com.newgrounds { import flash.display.*; import flash.events.*; import flash.utils.*; import com.adobe.serialization.json.*; import flash.net.*; import com.adobe.crypto.*; import flash.system.*; public class NewgroundsAPI { private static const COMMANDS_WIKI_URL:String = "http://www.newgrounds.com/wiki/flashapi/commands/"; private static const PREVIEW_HOSTS:Array = ["localhost"]; private static const AD_TERMS_URL:String = "http://www.newgrounds.com/wiki/flashads/terms/"; private static const GATEWAY_URL:String = "http://www.ngads.com/gateway_v2.php"; private static var connected:Boolean; private static var user_id:Number; private static var _initialized:Boolean = false; private static var user_email:String; private static var publisher_id:Number; private static var debug:Boolean; private static var do_echo:Boolean = false; private static var ad_url:String; private static var session_id:String; private static var timeoutTimer:Timer; public static var errors:Dictionary = NewgroundsAPIError.init_codes(); private static var _medals:Array; private static var user_name:String; private static var tracker_id:uint; private static var period_aliases:Object = {t:{name:"Today", alias:"TODAY"}, p:{name:"Yesterday", alias:"YESTERDAY"}, w:{name:"This Week", alias:"THIS_WEEK"}, m:{name:"This Month", alias:"THIS_MONTH"}, y:{name:"This Year", alias:"THIS_YEAR"}, a:{name:"All-Time", alias:"ALL_TIME"}}; private static var movie_id:String; private static var _eventDispatcher:EventDispatcher = new EventDispatcher(); private static var encryption_key:String; private static var host:String; private static var loaders:Array = []; private static var compressor:BaseN = new BaseN(compression_radix); private static var score_page_counts:Object = new Object(); private static var _preload:Boolean = true; private static var version:String; public static var periods:Object = getPeriodAliases(); private static var root:DisplayObject; private static var compression_radix:String = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X"; private static var _preloadAssets:Array = []; private static var sharedObjects:Object = new Object(); private static var save_file = null; public static function setMovieVersion(_arg1:String):void{ if (((_arg1) && (!((_arg1 == ""))))){ version = _arg1; }; } public static function get preload():Boolean{ return (_preload); } public static function unlockMedal(_arg1:NewgroundsAPIMedal, _arg2:Boolean=false):void{ var _local3:Object; sendMessage((("Attempting to unlock '" + _arg1.name) + "'")); if (_arg1.unlocked){ sendWarning((("Medal '" + _arg1.name) + "' is already unlocked!")); return; }; _local3 = new Object(); _local3.medal_id = _arg1.id; if (_arg2){ _local3.get_score = _arg2; }; sendSecureCommand("unlockMedal", _local3); } public static function set preload(_arg1:Boolean):void{ _preload = _arg1; } private static function getHost():String{ return (host); } private static function uncompressHex(_arg1:String):String{ var _local2:uint; var _local3:String; var _local4:uint; var _local5:uint; var _local6:String; var _local7:uint; var _local8:String; _local2 = uint(_arg1.charAt(0)); _local3 = ""; _local5 = 1; while (_local5 < _arg1.length) { _local6 = _arg1.substr(_local5, 4); _local7 = uint(compressor.decode(_local6)); _local8 = _local7.toString(16); if ((_local5 + 4) < _arg1.length){ _local4 = 6; } else { _local4 = _local2; }; while (_local8.length < _local4) { _local8 = ("0" + _local8); }; _local3 = (_local3 + _local8); _local5 = (_local5 + 4); }; return (_local3); } public static function isFlashVersion(_arg1:uint, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0):Boolean{ var _local6:Array; var _local7:Array; var _local8:uint; _local6 = Capabilities.version.split(" ")[1].split(","); _local7 = arguments; _local8 = 0; while (_local8 < _local7.length) { _local6[_local8] = uint(_local6[_local8]); _local8++; }; _local8 = 0; while (_local8 < _local7.length) { if (_local6[_local8] > _local7[_local8]){ return (true); }; if (_local6[_local8] < _local7[_local8]){ return (false); }; _local8++; }; return (true); } public static function getMedalByName(_arg1:String):NewgroundsAPIMedal{ var _local2:NewgroundsAPIMedal; for each (_local2 in _medals) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } public static function hasUserEmail():Boolean{ return (((!((user_email == null))) && (!((user_email == ""))))); } public static function loadLocal(_arg1:String){ var _local2:SharedObject; if (!sharedObjects[_arg1]){ sharedObjects[_arg1] = SharedObject.getLocal(((("ng_ap_secure_" + movie_id) + "_") + _arg1)); }; _local2 = sharedObjects[_arg1]; _local2.flush(); if (_local2.data[_arg1]){ return (decodeData(sharedObjects.data[_arg1])); }; return (null); } public static function getYesterdaysScores(_arg1:String, _arg2:Object):void{ getScores(_arg1, "y", _arg2, "getYesterdaysScores"); } private static function callListener(_arg1:String, _arg2:Boolean=true, _arg3=undefined):void{ dispatchEvent(new NewgroundsAPIEvent(_arg1, _arg2, _arg3)); } public static function sendSecureCommand(_arg1:String, _arg2:Object, _arg3:Object=null, _arg4:Object=null):void{ var _local5:String; var _local6:uint; var _local7:String; var _local8:String; var _local9:String; if (((((!(debug)) && (!(hasUserSession())))) && (!(hasUserEmail())))){ sendError({command_id:getCommandID(_arg1)}, new NewgroundsAPIError("IDENTIFICATION_REQUIRED", (("You must be logged in or provide an e-mail address ( using NewgroundsAPI.setUserEmail(\"name@domain.com\"); ) to use " + _arg1) + "()."))); return; }; if (!_arg1){ fatalError("Missing command", "sendSecureCommand"); }; if (!_arg2){ fatalError("Missing secure_params", "sendSecureCommand"); }; if (!_arg3){ _arg3 = new Object(); }; _local5 = ""; _local6 = 0; while (_local6 < 16) { _local5 = (_local5 + compression_radix.charAt(Math.floor((Math.random() * compression_radix.length)))); _local6++; }; if (debug){ _arg2.session_id = ""; } else { _arg2.session_id = session_id; }; _arg2.as_version = 3; _arg2.user_email = user_email; _arg2.publisher_id = publisher_id; _arg2.seed = _local5; _arg2.command_id = getCommandID(_arg1); _local7 = MD5.hash(_local5); _local8 = RC4.encrypt(JSON.encode(_arg2), encryption_key); _local9 = (_local7 + _local8); _arg3.secure = compressHex(_local9); sendCommand("securePacket", _arg3, false, _arg4); } private static function echo(_arg1:String):void{ if (do_echo){ trace(_arg1); }; } public static function getThisMonthsScores(_arg1:String, _arg2:Object):void{ getScores(_arg1, "m", _arg2, "getThisMonthsScores"); } public static function getScores(_arg1:String, _arg2:String, _arg3:Object=null, _arg4:String=null):void{ var _local5:String; if (!_arg3){ _arg3 = new Object(); }; if (!hasUserSession()){ callListener(NewgroundsAPIEvent.SCORES_LOADED, false, new NewgroundsAPIError("SITE_ID_REQUIRED", (("Host '" + getHost()) + "' does not have high scores enabled"))); return; }; _arg3.publisher_id = publisher_id; _arg3.period = _arg2; _arg3.score = _arg1; if (_arg3.user_id){ _local5 = _arg2; } else { _local5 = (_arg2 + "-u"); }; if (score_page_counts[_local5] == undefined){ _arg3.request_page_count = true; }; sendCommand("getScores", _arg3); } public static function createAd():NewgroundsAPIAd{ sendMessage("You may see a security sandbox violation. This is normal!"); return (new NewgroundsAPIAd(ad_url)); } private static function dispatchEvent(_arg1:Event):void{ _eventDispatcher.dispatchEvent(_arg1); echo(("Fired Event: " + _arg1.type)); } private static function getCommandName(_arg1:String):String{ return (_arg1); } public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public static function getThisWeeksScores(_arg1:String, _arg2:Object):void{ getScores(_arg1, "w", _arg2, "getThisWeeksScores"); } public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:uint=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } private static function getPeriodAliases():Object{ var _local1:Object; var _local2:String; _local1 = new Object(); for (_local2 in period_aliases) { _local1[period_aliases[_local2].alias] = _local2; }; return (_local1); } public static function setUserEmail(_arg1:String):void{ user_email = _arg1; } public static function hasUserSession():Boolean{ return (((((!((session_id == null))) && (!((session_id == ""))))) && (!((publisher_id == 0))))); } public static function get medals():Array{ return ((_medals) ? _medals.concat() : []); } public static function get bytesLoaded():uint{ var _local1:uint; var _local2:*; _local1 = root.loaderInfo.bytesLoaded; if (_preload){ for each (_local2 in _preloadAssets) { _local1 = (_local1 + _local2.bytesLoaded); }; }; return (_local1); } private static function compressHex(_arg1:String):String{ var _local2:uint; var _local3:String; var _local4:uint; _local2 = (_arg1.length % 6); _local3 = ""; _local4 = 0; while (_local4 < _arg1.length) { _local3 = (_local3 + compressor.encode(uint(("0x" + _arg1.substr(_local4, 6))), 4)); _local4 = (_local4 + 6); }; return ((_local2.toString() + _local3)); } public static function connectMovie(_arg1:DisplayObject, _arg2:String, _arg3:String):void{ initialize(_arg1); if (connected){ return; }; timeoutTimer.start(); if (!_arg2){ fatalError("NewgroundsAPI.connectMovie() - missing required movie_id parameter", "connectMovie"); }; movie_id = String(_arg2); tracker_id = uint(movie_id.substring(0, movie_id.indexOf(":"))); encryption_key = _arg3; debug = !(isPublishedHost()); connected = true; sendCommand("connectMovie", {host:getHost(), movie_version:version}); } public static function checkFilePrivs(_arg1:String, _arg2:String):void{ var _local3:uint; var _local4:Object; if (user_id){ _local3 = user_id; } else { _local3 = 0; }; _local4 = {folder:_arg1, filename:_arg2, user_id:_local3, publisher_id:publisher_id}; sendCommand("checkFilePrivs", _local4); } private static function sendMessage(_arg1:String, _arg2:Boolean=false):String{ var _local3:String; _local3 = ("[NewgroundsAPI] :: " + _arg1); if (_arg2){ return (_local3); }; trace(_local3); return (null); } private static function sendError(_arg1:Object, _arg2:NewgroundsAPIError):void{ trace(((((("[NewgroundsAPI ERROR] :: " + getCommandName(_arg1.command_id)) + "() - ") + _arg2.name) + ":\n\t\t\t\t") + _arg2.message)); } private static function fatalError(_arg1:String, _arg2:String):void{ if (_arg2){ _arg1 = (_arg1 + ((("\n\tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information.")); }; throw (new Error(("***ERROR*** class=NewgroundsAPI\n\n" + _arg1))); } public static function unlockMedalByName(_arg1:String, _arg2:Boolean=false):void{ var _local3:NewgroundsAPIMedal; _local3 = getMedalByName(_arg1); if (_local3){ unlockMedal(_local3, _arg2); }; } static function reportAssetFailed(_arg1):void{ var _local2:uint; _local2 = 0; while (_local2 < _preloadAssets.length) { if (_arg1 == _preloadAssets[_local2]){ _preloadAssets.splice(_local2, 1); return; }; _local2++; }; } public static function connectionTimeOut(_arg1:Event=null):void{ dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.MOVIE_CONNECTED, false, new NewgroundsAPIError("CONNECTION_FAILED", "Connection to NewgroundsAPI gateway timed out."))); } static function reportNewAsset(_arg1):void{ _preloadAssets.push(_arg1); } public static function unlockMedalById(_arg1:uint, _arg2:Boolean=false):void{ var _local3:NewgroundsAPIMedal; _local3 = getMedalById(_arg1); if (_local3){ unlockMedal(_local3, _arg2); }; } public static function hasPublisher():Boolean{ return (!((publisher_id == 0))); } private static function sendNotice(_arg1:String, _arg2:String=null):void{ if (_arg2){ _arg1 = (_arg1 + ((("\n[NewgroundsAPI NOTICE] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information.")); }; trace(("[NewgroundsAPI NOTICE] :: " + _arg1)); } public static function initialize(_arg1:DisplayObject):void{ var _local2:Object; if (_initialized){ return; }; _initialized = true; NewgroundsAPI.root = _arg1; timeoutTimer = new Timer(8000, 1); if (_arg1.loaderInfo){ _local2 = _arg1.loaderInfo.parameters; host = _arg1.loaderInfo.url; }; if (_local2){ if (_local2.NewgroundsAPI_UserName){ user_name = _local2.NewgroundsAPI_UserName; }; if (_local2.NewgroundsAPI_UserID){ user_id = _local2.NewgroundsAPI_UserID; }; if (_local2.NewgroundsAPI_PublisherID){ publisher_id = _local2.NewgroundsAPI_PublisherID; }; if (_local2.NewgroundsAPI_SessionID){ session_id = _local2.NewgroundsAPI_SessionID; }; } else { publisher_id = 1; session_id = null; user_id = 0; user_name = "Guest"; }; if ((((host.indexOf("http://") > -1)) || ((host.indexOf("https://") > -1)))){ host = host.split("/")[2].toLowerCase(); } else { host = "localhost"; }; } public static function get debugMode():Boolean{ return (debug); } public static function getTodaysScores(_arg1:String, _arg2:Object):void{ getScores(_arg1, "t", _arg2, "getTodaysScores"); } public static function get bytesTotal():uint{ var _local1:uint; var _local2:*; _local1 = root.loaderInfo.bytesTotal; if (_preload){ for each (_local2 in _preloadAssets) { _local1 = (_local1 + Math.max(_local2.bytesTotal, 1)); }; }; return (_local1); } public static function loadCustomLink(_arg1:String):void{ sendCommand("loadCustomLink", {host:getHost(), link:_arg1}, true); } public static function get percentLoaded():Number{ return ((bytesLoaded / bytesTotal)); } public static function isPublishedHost():Boolean{ var _local1:String; for each (_local1 in PREVIEW_HOSTS) { if (getHost() == _local1){ return (false); }; }; return (true); } public static function loadMySite():void{ sendCommand("loadMySite", {host:getHost()}); } public static function getMedalById(_arg1:uint):NewgroundsAPIMedal{ var _local2:NewgroundsAPIMedal; for each (_local2 in _medals) { if (_local2.id == _arg1){ return (_local2); }; }; return (null); } private static function loaderHandler(_arg1:Event):void{ var _local2:URLLoader; var _local3:uint; var _local4:Object; var _local5:NewgroundsAPIError; _local2 = URLLoader(_arg1.target); echo((("INPUT: \n" + _local2.data) + "\n")); _local3 = 0; while (_local3 < loaders.length) { if (loaders[_local3] == _local2){ loaders.splice(_local3, 1); break; }; _local3++; }; _local3 = 0; while (_local3 < _preloadAssets.length) { if (_preloadAssets[_local3] == _local2){ _preloadAssets.splice(_local3, 1); break; }; _local3++; }; if (_local2.data){ _local4 = JSON.decode(_local2.data); } else { _local4 = {success:false}; }; if (!_local4.success){ _local5 = new NewgroundsAPIError(_local4.error_code, _local4.error_msg); sendError(_local4, _local5); } else { doEvent(_local4); }; } public static function getOfficialVersionURL():String{ var _local1:String; _local1 = ((((((GATEWAY_URL + "?tracker_id=") + movie_id) + "&command_id=") + getCommandID("loadOfficalVersion")) + "&seed=") + Math.random()); if (debug){ _local1 = (_local1 + "&debug=1"); }; return (_local1); } public static function loadNewgrounds():void{ sendCommand("loadNewgrounds", {host:getHost()}, true); } public static function saveFile(_arg1:String, _arg2:String, _arg3:Object, _arg4):void{ } public static function decodeData(_arg1:String){ return (JSON.decode(RC4.decrypt(uncompressHex(_arg1), encryption_key))); } public static function getFiles(_arg1:String, _arg2:Object):void{ } public static function logCustomEvent(_arg1:String):void{ sendCommand("logCustomEvent", {host:getHost(), event:_arg1}); } private static function sendCommand(_arg1:String, _arg2:Object, _arg3:Boolean=false, _arg4:Object=null):void{ var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:String; var _local9:Array; var _local10:String; var _local11:URLLoader; if (((!(connected)) && (!((_arg1 == "connectMovie"))))){ _local8 = (("NewgroundsAPI." + _arg1) + "() - NewgroundsAPI.connectMovie() must be called before this command can be called\n"); fatalError(_local8, "connectMovie"); }; _local5 = new URLVariables(); _local5.command_id = getCommandID(_arg1); _local5.tracker_id = movie_id; if (debug){ _local5.debug = debug; }; if ((((_arg1 == "connectMovie")) && (preload))){ _local5.preload = 1; }; if (_arg2){ for (_local6 in _arg2) { _local5[_local6] = _arg2[_local6]; }; }; if (_arg4){ for (_local6 in _arg4) { _local5[_local6] = _arg4[_local6]; }; }; echo((("OUTPUT: \n" + JSON.encode(_local5)) + "\n")); _local7 = new URLRequest((((GATEWAY_URL + "?seed=") + Math.random()) + "&")); _local7.data = _local5; if (_arg3){ _local7.method = URLRequestMethod.GET; _local7.data = _local5; navigateToURL(_local7, "_blank"); } else { _local9 = new Array(); for (_local10 in _local5) { _local9.push(((_local10 + "=") + escape(_local5[_local10]))); }; echo(((("POST " + GATEWAY_URL) + "?") + _local9.join("&"))); _local7.method = URLRequestMethod.POST; _local11 = new URLLoader(); _local11.addEventListener(Event.COMPLETE, loaderHandler); _local11.addEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler); loaders.push(_local11); _local11.load(_local7); if ((((_arg1 == "connectMovie")) && (preload))){ reportNewAsset(_local11); }; trace(_local7.data); }; } public static function postScore(_arg1:String, _arg2:Number, _arg3:Boolean):void{ sendSecureCommand("postScore", {score:_arg1, value:_arg2, get_best:_arg3}); } public static function finishFileSave(_arg1:String, _arg2:String, _arg3:String, _arg4:Boolean, _arg5, _arg6):void{ } private static function loaderErrorHandler(_arg1:Event):void{ var _local2:URLLoader; var _local3:uint; _local2 = URLLoader(_arg1.target); _local3 = 0; while (_local3 < loaders.length) { if (loaders[_local3] == _local2){ loaders.splice(_local3, 1); break; }; _local3++; }; _local3 = 0; while (_local3 < _preloadAssets.length) { if (_preloadAssets[_local3] == _local2){ _preloadAssets.splice(_local3, 1); break; }; _local3++; }; } public static function encodeData(_arg1:Object):String{ return (compressHex(RC4.encrypt(JSON.encode(_arg1), encryption_key))); } public static function getThisYearsScores(_arg1:String, _arg2:Object):void{ getScores(_arg1, "y", _arg2, "getThisYearsScores"); } private static function populateMedals(_arg1:Array):void{ var _local2:uint; var _local3:Object; if (_medals === null){ _medals = new Array(); _local2 = 0; while (_local2 < _arg1.length) { _local3 = _arg1[_local2]; _medals.push(NewgroundsAPIMedal.createFromObject(_local3)); _local2++; }; }; } private static function doEvent(_arg1:Object):void{ var _local2:String; var _local3:Object; var _local4:String; var _local5:Boolean; var _local6:String; var _local7:NewgroundsAPIMedal; switch (getCommandName(_arg1.command_id)){ case "connectMovie": timeoutTimer.stop(); sendMessage("You have successfully connected to the Newgrounds API Gateway"); sendMessage((("Movie identified as \"" + _arg1.movie_name) + "\"")); callListener(NewgroundsAPIEvent.MOVIE_CONNECTED, _arg1.success, {movie_name:_arg1.movie_name}); _local5 = false; if (_arg1.ad_status === -1){ _local2 = "This movie was not approved to run Flash Ads."; sendWarning(_local2); sendWarning((("visit " + AD_TERMS_URL) + " to view our approval guidelines")); if (!_arg1.ad_url){ callListener(NewgroundsAPIEvent.ADS_APPROVED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", _local2)); } else { _local5 = true; }; } else { if (_arg1.ad_status === 0){ _local2 = "Flash Ads are currently awaiting approval."; sendNotice(_local2); if (!_arg1.ad_url){ callListener(NewgroundsAPIEvent.ADS_APPROVED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", _local2)); } else { _local5 = true; }; }; }; if (_arg1.ad_url){ ad_url = unescape(_arg1.ad_url); if (!_local5){ sendMessage("This movie has been approved to run Flash Ads!"); }; callListener(NewgroundsAPIEvent.ADS_APPROVED, true); }; if (_arg1.deny_host){ _local2 = (getHost() + " does not have permission to run this movie!"); sendWarning(_local2); sendWarning(("\tUpdate your API configuration to unblock " + getHost())); callListener(NewgroundsAPIEvent.HOST_BLOCKED, true, {movie_url:unescape(_arg1.movie_url), redirect_url:getOfficialVersionURL()}); }; if (_arg1.movie_version){ sendWarning("According to your API Configuration, this version is out of date."); if (version){ sendWarning(("\tThe this movie is version " + version)); }; sendWarning(("\tThe most current version is " + _arg1.movie_version)); callListener(NewgroundsAPIEvent.NEW_VERSION_AVAILABLE, true, {movie_version:_arg1.movie_version, movie_url:unescape(_arg1.movie_url), redirect_url:getOfficialVersionURL()}); }; if (_arg1.request_portal_url){ sendCommand("setPortalID", {portal_url:host}); }; if (_arg1.medals){ populateMedals(_arg1.medals); }; break; case "logCustomEvent": if (_arg1.success){ sendMessage((("Event '" + _arg1.event) + "' was logged.")); }; callListener(NewgroundsAPIEvent.EVENT_LOGGED, _arg1.success, {event:_arg1.event}); break; case "postScore": if (_arg1.success){ _local4 = "User"; if (user_email){ _local4 = user_email; } else { if (user_name){ _local4 = user_name; }; }; sendMessage((((((_local4 + " posted ") + _arg1.value) + " to '") + _arg1.score) + "'")); _local3 = {score:_arg1.score, value:_arg1.value, username:_local4}; }; callListener(NewgroundsAPIEvent.SCORE_POSTED, _arg1.success, _local3); break; case "getScores": if (_arg1.user_id){ _local6 = _arg1.period; } else { _local6 = (_arg1.period + "-u"); }; if (_arg1.total_pages){ score_page_counts[_local6] = _arg1.total_pages; }; _local3.user_id = _arg1.user_id; _local3.current_page = _arg1.current_page; _local3.total_pages = score_page_counts[_local6]; _local3.scores = _arg1.scores; _local3.period = getPeriodName(_arg1.period); callListener(NewgroundsAPIEvent.SCORES_LOADED, _arg1.success, _local3); break; case "unlockMedal": if (_medals){ _local7 = getMedalByName(_arg1.medal_name); _local7.unlocked = true; }; callListener(NewgroundsAPIEvent.MEDAL_UNLOCKED, _arg1.success, _local7); break; case "getMedals": populateMedals(_arg1.medals); callListener(NewgroundsAPIEvent.MEDALS_LOADED, _arg1.success, _local3); break; case "getFiles": break; case "getSystemFiles": break; case "saveFile": save_file = null; _local3 = {file_id:_arg1.file_id, filename:_arg1.filename, file_url:_arg1.file_url, thumbnail:_arg1.thumbnail, icon:_arg1.icon}; callListener(NewgroundsAPIEvent.FILE_SAVED, _arg1.success, _local3); break; case "checkFilePrivs": if (save_file){ save_file.checkPrivs(_arg1); } else { _local3 = {filename:_arg1.filename, folder:_arg1.folder, can_read:_arg1.can_read, can_write:_arg1.can_write}; callListener(NewgroundsAPIEvent.FILE_PRIVS_LOADED, _arg1.success, _local3); }; break; }; } public static function getPeriodAlias(_arg1:String):String{ var _local2:String; for (_local2 in period_aliases) { if (_local2 == _arg1){ return (period_aliases[_local2].alias); }; }; return (null); } public static function loadMedals():void{ var _local1:Object; if (_medals){ dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.MEDALS_LOADED, true, medals)); return; }; _local1 = new Object(); if (hasUserSession()){ _local1.publisher_id = publisher_id; _local1.user_id = user_id; }; sendCommand("getMedals", _local1); } public static function saveLocal(_arg1:String, _arg2, _arg3:uint=0):void{ var _local4:SharedObject; if (!sharedObjects[_arg1]){ sharedObjects[_arg1] = SharedObject.getLocal(((("ng_ap_secure_" + movie_id) + "_") + _arg1)); }; _local4 = sharedObjects[_arg1]; _local4.data[_arg1] = encodeData(_arg2); _local4.flush(); } private static function getCommandID(_arg1:String):String{ return (_arg1); } public static function getPeriodName(_arg1:String):String{ var _local2:String; for (_local2 in period_aliases) { if (_local2 == _arg1){ return (period_aliases[_local2].name); }; }; return (null); } public static function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public static function getAlltimeScores(_arg1:String, _arg2:Object):void{ getScores(_arg1, "a", _arg2, "getAlltimeScores"); } private static function sendWarning(_arg1:String, _arg2:String=null):void{ if (_arg2){ _arg1 = (_arg1 + ((("\n[NewgroundsAPI WARNING] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information.")); }; trace(("[NewgroundsAPI WARNING] :: " + _arg1)); } public static function isNewgrounds():Boolean{ return ((((publisher_id == 1)) || ((getHost().toLowerCase().indexOf("ungrounded.net") > -1)))); } } }//package com.newgrounds
Section 14
//NewgroundsAPIAd (com.newgrounds.NewgroundsAPIAd) package com.newgrounds { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class NewgroundsAPIAd extends Sprite { private var _ad:Loader; private var _adURLLoader:URLLoader; private var _mask:Shape; private static const REMOVED_FROM_STAGE:String = "removedFromStage"; private static var _currentAdUrl:URLRequest; private static var _adResetTime:Number = 0; public function NewgroundsAPIAd(_arg1:String){ var _local2:Shape; super(); Security.allowDomain("http://server.cpmstar.com"); Security.allowDomain("http://www.cpmstar.com"); Security.allowDomain("https://server.cpmstar.com"); Security.allowDomain("https://www.cpmstar.com"); Security.allowInsecureDomain("http://server.cpmstar.com"); Security.allowInsecureDomain("http://www.cpmstar.com"); Security.allowInsecureDomain("https://server.cpmstar.com"); Security.allowInsecureDomain("https://www.cpmstar.com"); _local2 = new Shape(); _local2.graphics.beginFill(0); _local2.graphics.moveTo(0, 0); _local2.graphics.lineTo(300, 0); _local2.graphics.lineTo(300, 250); _local2.graphics.lineTo(0, 250); _local2.graphics.lineTo(0, 0); _local2.graphics.endFill(); _mask = new Shape(); _mask.graphics.beginFill(0); _mask.graphics.moveTo(0, 0); _mask.graphics.lineTo(300, 0); _mask.graphics.lineTo(300, 250); _mask.graphics.lineTo(0, 250); _mask.graphics.lineTo(0, 0); _mask.graphics.endFill(); addChild(_local2); addChild(_mask); _adURLLoader = new URLLoader(); _adURLLoader.addEventListener(Event.COMPLETE, adURLHandler); _adURLLoader.addEventListener(IOErrorEvent.IO_ERROR, adErrorHandler); if (((_arg1) && (hasAdElapsed))){ if (_arg1.indexOf("?") > -1){ _currentAdUrl = new URLRequest(((_arg1 + "&random=") + Math.random())); } else { _currentAdUrl = new URLRequest(((_arg1 + "?random=") + Math.random())); }; }; if (_currentAdUrl){ _adURLLoader.load(_currentAdUrl); } else { trace("[NewgroundsAPI] :: No ad feed URL supplied to Newgrounds API ad!"); }; if (NewgroundsAPI.isFlashVersion(9, 0, 28)){ addEventListener(REMOVED_FROM_STAGE, removeAdHandler); }; } private function adLoadedHandler(_arg1:Event):void{ trace("[NewgroundsAPI] :: Ad loaded!"); dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.AD_ATTACHED, true)); } private function get hasAdElapsed():Boolean{ var _local1:Date; _local1 = new Date(); if (_local1.getTime() >= _adResetTime){ _adResetTime = (_local1.getTime() + ((1000 * 60) * 5)); return (true); }; return (false); } private function adURLHandler(_arg1:Event):void{ var _local2:URLLoader; _local2 = URLLoader(_arg1.target); if (_local2.data){ loadAd(String(_local2.data)); } else { dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.AD_ATTACHED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"))); }; } private function removeAdHandler(_arg1:Event):void{ removeAd(); } private function adURLErrorHandler(_arg1:Event):void{ trace("[NewgroundsAPI] :: Unable to load ad feed!"); } private function loadAd(_arg1:String):void{ if (_ad){ removeAd(); }; _ad = new Loader(); addChild(_ad); _ad.mask = _mask; _ad.addEventListener(Event.COMPLETE, adLoadedHandler); _ad.addEventListener(IOErrorEvent.IO_ERROR, adErrorHandler); _ad.load(new URLRequest(_arg1)); } public function removeAd():void{ if (_adURLLoader){ try { _adURLLoader.close(); } catch(e:Error) { }; }; if (_ad){ trace("[NewgroundsAPI] :: Ad removed"); try { _ad.close(); } catch(e:Error) { }; try { Object(_ad).unloadAndStop(true); } catch(e:Error) { _ad.unload(); }; if (_ad.parent){ _ad.parent.removeChild(_ad); }; }; _ad = null; } private function adErrorHandler(_arg1:Event):void{ dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.AD_ATTACHED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"))); removeAd(); } } }//package com.newgrounds
Section 15
//NewgroundsAPIError (com.newgrounds.NewgroundsAPIError) package com.newgrounds { import flash.utils.*; public class NewgroundsAPIError { public var message:String; public var name:String; public var code:Number;// = 0 public var alias:String; private static const always_caps:Array = new Array("API", "URL", "ID"); public static const error_names:Object = init_names(); public static const aliases:Array = new Array("UNKNOWN_ERROR", "INVALID_API_ID", "MISSING_PARAM", "INVALID_STAT_ID", "INVALID_COMMAND_ID", "FLASH_ADS_NOT_APPROVED", "PERMISSION_DENIED", "IDENTIFICATION_REQUIRED", "INVALID_EMAIL_ADDRESS", "BANNED_USER", "SESSION_EXPIRED", "INVALID_SCORE", "INVALID_MEDAL", "INVALID_FOLDER", "FILE_NOT_FOUND", "SITE_ID_REQUIRED", "UPLOAD_IN_PROGRESS", "USER_CANCELLED", "CONFIRM_REQUEST", "CONNECTION_FAILED"); public static const error_codes:Object = init_codes(); public function NewgroundsAPIError(_arg1, _arg2:String){ code = 0; super(); if ((_arg1 is String)){ _arg1 = error_codes[_arg1]; } else { if (!(_arg1 is uint)){ _arg1 = 0; }; }; trace(_arg1); code = _arg1; message = _arg2; name = error_names[_arg1]; trace(name); alias = aliases[_arg1]; } public function isError():Boolean{ return (true); } private static function init_names():Array{ var _local1:Array; var _local2:uint; var _local3:Array; var _local4:uint; var _local5:String; _local1 = new Array(); _local2 = 0; while (_local2 < aliases.length) { _local3 = aliases[_local2].toLowerCase().split("_"); _local4 = 0; while (_local4 < _local3.length) { _local3[_local4] = (_local3[_local4].substr(0, 1).toUpperCase() + _local3[_local4].substr(1, _local3[_local4].length)); for each (_local5 in always_caps) { if (_local3[_local4].toUpperCase() == _local5){ _local3[_local4] = _local3[_local4].toUpperCase(); }; }; _local4++; }; _local1[_local2] = _local3.join(" "); _local2++; }; return (_local1); } public static function init_codes():Dictionary{ var _local1:Dictionary; var _local2:uint; _local1 = new Dictionary(); _local2 = 0; while (_local2 < aliases.length) { _local1[aliases[_local2]] = _local2; _local2++; }; return (_local1); } } }//package com.newgrounds
Section 16
//NewgroundsAPIEvent (com.newgrounds.NewgroundsAPIEvent) package com.newgrounds { import flash.events.*; public class NewgroundsAPIEvent extends Event { private var _success:Boolean; private var _data; private var _target; public static const AD_ATTACHED:String = "adAttached"; public static const NEW_VERSION_AVAILABLE:String = "newVersionAvailable"; public static const FILE_SAVED:String = "fileSaved"; public static const ADS_APPROVED:String = "adsApproved"; public static const MEDALS_LOADED:String = "medalsLoaded"; public static const MEDAL_UNLOCKED:String = "medalUnlocked"; public static const EVENT_LOGGED:String = "eventLogged"; public static const SCORES_LOADED:String = "scoresLoaded"; public static const SCORE_POSTED:String = "scorePosted"; public static const HOST_BLOCKED:String = "hostBlocked"; public static const MOVIE_CONNECTED:String = "movieConnected"; public static const FILE_PRIVS_LOADED:String = "filePrivsLoaded"; public function NewgroundsAPIEvent(_arg1:String, _arg2:Boolean=true, _arg3=undefined){ super(_arg1); _data = _arg3; _success = _arg2; } public function get success():Boolean{ return (_success); } public function get data(){ return (_data); } } }//package com.newgrounds
Section 17
//NewgroundsAPIMedal (com.newgrounds.NewgroundsAPIMedal) package com.newgrounds { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class NewgroundsAPIMedal { private var _unlocked:Boolean;// = false private var _iconLoader:Loader; private var _difficultyId:uint; private var _icon:BitmapData; private var _name:String; private var _value:uint; private var _iconUrl:URLRequest; private var _id:uint; private static const DIFFICULT_NAMES:Array = [null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal"]; private static const DEFAULT_ICON:BitmapData = new BitmapData(40, 40, false, 0); public function NewgroundsAPIMedal(_arg1:uint, _arg2:String, _arg3:uint, _arg4:uint, _arg5:Boolean, _arg6:String){ _unlocked = false; _icon = DEFAULT_ICON; super(); _id = _arg1; _name = _arg2; _value = _arg3; _difficultyId = _arg4; _unlocked = _arg5; NewgroundsAPI.reportNewAsset(this); _iconUrl = new URLRequest(_arg6); _iconLoader = new Loader(); _iconLoader.contentLoaderInfo.addEventListener(Event.INIT, onIconLoaderInit); _iconLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIconLoaderError); _iconLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onIconLoaderComplete); _iconLoader.load(_iconUrl, new LoaderContext(true)); } public function set unlocked(_arg1:Boolean):void{ _unlocked = _arg1; } public function get bytesLoaded():uint{ return ((_iconLoader) ? _iconLoader.contentLoaderInfo.bytesLoaded : 0); } public function get name():String{ return (_name); } private function onIconLoaderComplete(_arg1:Event):void{ var _local2:Bitmap; trace((((("[NewgroundsAPI] :: Successfully loaded medal icon for " + name) + " (") + _iconUrl.url.split("/").pop()) + ")")); _local2 = (_iconLoader.content as Bitmap); _icon = _local2.bitmapData; _iconLoader.unload(); _iconLoader = null; } public function get bytesTotal():uint{ return ((_iconLoader) ? _iconLoader.contentLoaderInfo.bytesTotal : 0); } public function get id():uint{ return (_id); } public function unlock():void{ if (!_unlocked){ NewgroundsAPI.unlockMedal(this); }; } private function onIconLoaderError(_arg1:IOErrorEvent):void{ trace((((("[NewgroundsAPI WARNING] :: Failed to load medal icon for " + name) + " (") + _iconUrl.url.split("/").pop()) + ")")); _iconLoader.unload(); _iconLoader = null; NewgroundsAPI.reportAssetFailed(this); } private function onIconLoaderInit(_arg1:Event):void{ trace((((("[NewgroundsAPI] :: Loading medal icon for " + name) + " (") + _iconUrl.url.split("/").pop()) + ")")); } public function get unlocked():Boolean{ return (_unlocked); } public function createIconBitmap():Bitmap{ return (new Bitmap(icon)); } public function toString():String{ return (""); } public function get difficultyId():uint{ return (_difficultyId); } public function get value():uint{ return (_value); } public function get icon():BitmapData{ return (_icon); } public function get difficulty():String{ return (DIFFICULT_NAMES[_difficultyId]); } public static function createFromObject(_arg1:Object):NewgroundsAPIMedal{ return (new NewgroundsAPIMedal(_arg1.medal_id, _arg1.medal_name, _arg1.medal_value, _arg1.medal_difficulty, _arg1.medal_unlocked, _arg1.medal_icon)); } } }//package com.newgrounds
Section 18
//RC4 (com.newgrounds.RC4) package com.newgrounds { public class RC4 { private static var mykey:Array = new Array(0xFF); private static var sbox:Array = new Array(0xFF); private static function charsToHex(_arg1:Array):String{ var _local2:String; var _local3:Array; var _local4:uint; _local2 = new String(""); _local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); _local4 = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } public static function encrypt(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; _local3 = strToChars(_arg1); _local4 = strToChars(_arg2); _local5 = calculate(_local3, _local4); return (charsToHex(_local5)); } private static function hexToChars(_arg1:String):Array{ var _local2:Array; var _local3:uint; _local2 = new Array(); _local3 = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } public static function encryptbin(_arg1:String, _arg2:String):Array{ var _local3:Array; var _local4:Array; var _local5:Array; _local3 = strToChars(_arg1); _local4 = strToChars(_arg2); _local5 = calculate(_local3, _local4); return (_local5); } public static function decrypt(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; _local3 = hexToChars(_arg1); _local4 = strToChars(_arg2); _local5 = calculate(_local3, _local4); return (charsToStr(_local5)); } private static function strToChars(_arg1:String):Array{ var _local2:Array; var _local3:uint; _local2 = new Array(); _local3 = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function calculate(_arg1:Array, _arg2:Array):Array{ var _local3:uint; var _local4:uint; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; initialize(_arg2); _local3 = 0; _local4 = 0; _local5 = new Array(); _local9 = 0; while (_local9 < _arg1.length) { _local3 = ((_local3 + 1) % 0x0100); _local4 = ((_local4 + sbox[_local3]) % 0x0100); _local7 = sbox[_local3]; sbox[_local3] = sbox[_local4]; sbox[_local4] = _local7; _local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100); _local6 = sbox[_local10]; _local8 = (_arg1[_local9] ^ _local6); _local5.push(_local8); _local9++; }; return (_local5); } private static function initialize(_arg1:Array):void{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; _local2 = 0; _local4 = _arg1.length; _local5 = 0; while (_local5 <= 0xFF) { mykey[_local5] = _arg1[(_local5 % _local4)]; sbox[_local5] = _local5; _local5++; }; _local5 = 0; while (_local5 <= 0xFF) { _local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100); _local3 = sbox[_local5]; sbox[_local5] = sbox[_local2]; sbox[_local2] = _local3; _local5++; }; } private static function charsToStr(_arg1:Array):String{ var _local2:String; var _local3:uint; _local2 = new String(""); _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } } }//package com.newgrounds
Section 19
//Action_6 (main_fla.Action_6) package main_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class Action_6 extends MovieClip { public function Action_6(){ addFrameScript(0, frame1); } public function onComplete(_arg1:Event):void{ MovieClip(parent).gotoAndPlay("loaded"); } public function progressHandler(_arg1:ProgressEvent):void{ var _local2:int; _local2 = Math.round(((_arg1.target.bytesLoaded / _arg1.target.bytesTotal) * 100)); MovieClip(parent).gotoAndStop(_local2); } function frame1(){ MovieClip(root).stop(); if (root.loaderInfo.bytesLoaded == root.loaderInfo.bytesTotal){ MovieClip(parent).gotoAndPlay("loaded"); }; root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); root.loaderInfo.addEventListener(Event.COMPLETE, onComplete); } } }//package main_fla
Section 20
//boomb_86 (main_fla.boomb_86) package main_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class boomb_86 extends MovieClip { public var ng_ad:MovieClip; public function boomb_86(){ addFrameScript(0, frame1, 305, frame306); } function frame306(){ stop(); MovieClip(root).checkScore(); } function frame1(){ MovieClip(root).winrar(); } } }//package main_fla
Section 21
//clip2_68 (main_fla.clip2_68) package main_fla { import flash.display.*; public dynamic class clip2_68 extends MovieClip { public function clip2_68(){ addFrameScript(247, frame248); } function frame248(){ MovieClip(root).play(); } } }//package main_fla
Section 22
//CloudSplode_92 (main_fla.CloudSplode_92) package main_fla { import flash.display.*; public dynamic class CloudSplode_92 extends MovieClip { public function CloudSplode_92(){ addFrameScript(7, frame8); } function frame8(){ stop(); } } }//package main_fla
Section 23
//Cutscene1_40 (main_fla.Cutscene1_40) package main_fla { import flash.display.*; public dynamic class Cutscene1_40 extends MovieClip { public function Cutscene1_40(){ addFrameScript(366, frame367); } function frame367(){ MovieClip(root).play(); } } }//package main_fla
Section 24
//dieomg_79 (main_fla.dieomg_79) package main_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class dieomg_79 extends MovieClip { public function dieomg_79(){ addFrameScript(31, frame32); } function frame32(){ stop(); MovieClip(root).scoreMC.gotoAndStop(2); } } }//package main_fla
Section 25
//diezomg_84 (main_fla.diezomg_84) package main_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class diezomg_84 extends MovieClip { public function diezomg_84(){ addFrameScript(31, frame32); } function frame32(){ stop(); MovieClip(root).scoreMC.gotoAndStop(2); } } }//package main_fla
Section 26
//FadeIn_35 (main_fla.FadeIn_35) package main_fla { import flash.display.*; public dynamic class FadeIn_35 extends MovieClip { public function FadeIn_35(){ addFrameScript(28, frame29); } function frame29(){ stop(); } } }//package main_fla
Section 27
//hero_53 (main_fla.hero_53) package main_fla { import flash.display.*; public dynamic class hero_53 extends MovieClip { public var jump:MovieClip; public var flame:MovieClip; public function hero_53(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package main_fla
Section 28
//Hero2_78 (main_fla.Hero2_78) package main_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class Hero2_78 extends MovieClip { public function Hero2_78(){ addFrameScript(0, frame1, 29, frame30); } function frame1(){ stop(); } function frame30(){ this.lostGame = true; } } }//package main_fla
Section 29
//HUD_59 (main_fla.HUD_59) package main_fla { import flash.display.*; import flash.text.*; public dynamic class HUD_59 extends MovieClip { public var ng_ad:MovieClip; public var score:TextField; } }//package main_fla
Section 30
//MainTimeline (main_fla.MainTimeline) package main_fla { import com.newgrounds.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import com.newgrounds.components.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var keys:Array; public var missiles:Array; public var newgrounds:ContextMenuItem; public var pauseMc:Pause; public var startY; public var retry_btn:SimpleButton; public var ng_ad:MovieClip; public var i:int; public var medalTimer:Number; public var score:Number; public var play_button:SimpleButton; public var cloudMc:cloud; public var mDown:Boolean; public var mySound:Russian_Techno; public var fox:MovieClip; public var clouds:Array; public var API_Settings:Object; public var hud:MovieClip; public var credit:ContextMenuItem; public var obj:Array; public var pauseGame:Boolean; public var bitmap:Bitmap; public var sky:MovieClip; public var soundVol:SoundTransform; public var myChannel2:SoundChannel; public var medal_popup:DefaultMedalPopup; public var totalMissiles:Number; public var yoop:ContextMenuItem; public var bitmapData:BitmapData; public var ground:MovieClip; public var scrollOb:Object; public var cloudDel:Boolean; public var scoreMC:MovieClip; public var kDown:Boolean; public var myChannel:SoundChannel; public var newgroundsAPIconnector:DefaultAPIConnector; public var mySound1:Russian_Techno_8bit; public var copyright:ContextMenuItem; public var fm_menu:ContextMenu; public var playmoregames:SimpleButton; public var startClouds:Number; public var allClouds:Number; public var gameOver:Boolean; public var skip_button:SimpleButton; public var hero:MovieClip; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9); } public function loadHero(_arg1){ _arg1.xv = 0; _arg1.yv = 0; _arg1.health = 6; _arg1.lostGame = false; } public function loop2(_arg1:Event):void{ pauseToggle2(); if (!pauseGame){ heroUpdate(hero); hud.score.text = String(score); sky.y = (sky.y - 10); if (hero.hitTestObject(sky.win)){ stage.removeEventListener(Event.ENTER_FRAME, loop2); gotoAndStop("winrar"); i = 0; while (i < missiles.length) { removeChild(missiles[i]); i++; }; }; i = 0; while (i < missiles.length) { missile(missiles[i]); i++; }; }; } public function getPhysics(_arg1){ _arg1.xv = 0; _arg1.yv = 0; _arg1.jumpV = 24; } public function mouseD(_arg1:Event):void{ if (!mDown){ MouseDown(); }; } public function skipEvent(_arg1:Event):void{ skip_button.removeEventListener(MouseEvent.CLICK, skipEvent); play(); } function frame3(){ stop(); myChannel = mySound.play(0, 9999); myChannel2 = mySound1.play(0, 9999); soundVol.volume = 0; myChannel.soundTransform = soundVol; soundVol.volume = 1; myChannel2.soundTransform = soundVol; skip_button.addEventListener(MouseEvent.CLICK, skipEvent); } function frame4(){ stop(); soundVol.volume = 1; myChannel.soundTransform = soundVol; soundVol.volume = 0; myChannel2.soundTransform = soundVol; medalTimer = 0; fox.y = -(sky.height); keys = new Array(0xFF); obj = new Array(hero); clouds = new Array(); scrollOb = hero; bitmapData = new BitmapData(400, 500, true, 0); bitmap = new Bitmap(bitmapData); kDown = false; pauseGame = false; mDown = false; score = 0; startClouds = 3; allClouds = (sky.height / 75); startY = y; gameOver = false; cloudDel = false; i = 0; while (i < obj.length) { getPhysics(obj[i]); i++; }; i = 0; while (i < startClouds) { getCloud(Math.round(((Math.random() * 400) + 50)), (y + Math.round(((Math.random() * 300) + 50)))); i++; }; i = 0; while (i < allClouds) { getCloud(Math.round(((Math.random() * 400) + 50)), (y - Math.round((Math.random() * sky.height)))); i++; }; i = 0; while (i < keys.length) { keys[i] = false; i++; }; stage.addEventListener(MouseEvent.CLICK, mouseD); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyD); stage.addEventListener(KeyboardEvent.KEY_UP, keyU); stage.addEventListener(Event.ENTER_FRAME, loop); } function frame5(){ stop(); y = 0; soundVol.volume = 0; myChannel.soundTransform = soundVol; soundVol.volume = 1; myChannel2.soundTransform = soundVol; skip_button.addEventListener(MouseEvent.CLICK, skipEvent); medal_popup.y = 0; } public function checkScore(){ scoreMC.gotoAndStop(2); if (score > 8999){ if (NewgroundsAPI.medals[2]){ NewgroundsAPI.medals[2].unlock(); }; }; } function frame1(){ API_Settings = {movie_id:3256, enc_key:"e86010f46e9aab5c55d13b590942efef", movie_version:"1"}; newgroundsAPIconnector.initialize(API_Settings); fm_menu = new ContextMenu(); copyright = new ContextMenuItem("Programming by Lochie."); credit = new ContextMenuItem("Art by Zac."); yoop = new ContextMenuItem("Music by WhirlGuy."); newgrounds = new ContextMenuItem("Play more games at - Newgrounds.com!"); copyright.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visit_lochie); credit.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visit_zac); credit.separatorBefore = false; yoop.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visit_yoop); newgrounds.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visit_NG); fm_menu.hideBuiltInItems(); fm_menu.customItems.push(copyright, credit, yoop, newgrounds); this.contextMenu = fm_menu; } function frame7(){ removeChild(hud); myChannel.stop(); myChannel2.stop(); retry_btn.addEventListener(MouseEvent.CLICK, retryEvent); scoreMC.visible = false; scoreMC.score.text = ("SCORE: " + String(score)); } function frame9(){ myChannel.stop(); myChannel2.stop(); scoreMC.score.text = ("SCORE: " + String(score)); playmoregames.addEventListener(MouseEvent.CLICK, loadNGSite); } public function physics(_arg1){ if (mDown){ _arg1.jump.visible = false; } else { medalTimer++; if (medalTimer == 300){ if (NewgroundsAPI.medals[0]){ NewgroundsAPI.medals[0].unlock(); }; }; _arg1.jump.visible = true; }; _arg1.yv++; _arg1.y = (_arg1.y + _arg1.yv); _arg1.xv = (((mouseX - _arg1.x) * 0.1) + (_arg1.xv * 0.2)); _arg1.x = (_arg1.x + (_arg1.xv = (_arg1.xv * 0.96))); _arg1.rotation = _arg1.xv; while (ground.hitTestPoint(_arg1.x, _arg1.y, true)) { _arg1.yv = 0; _arg1.y--; y = startY; if (mDown == true){ i = 0; while (i < clouds.length) { removeChild(clouds[i]); i++; }; stage.removeEventListener(Event.ENTER_FRAME, loop); stage.removeEventListener(KeyboardEvent.KEY_UP, keyU); stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyD); stage.removeEventListener(MouseEvent.CLICK, mouseD); gotoAndStop("game1dead"); }; }; if (_arg1.yv < 0){ _arg1.flame.visible = mDown; } else { _arg1.flame.visible = false; }; if (mDown){ if (_arg1.yv > 0){ frameChange(_arg1, 3); } else { frameChange(_arg1, 2); }; } else { frameChange(_arg1, 1); }; if (fox.hitTestPoint(_arg1.x, _arg1.y, true)){ stage.removeEventListener(Event.ENTER_FRAME, loop); stage.removeEventListener(KeyboardEvent.KEY_UP, keyU); stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyD); stage.removeEventListener(MouseEvent.CLICK, mouseD); play(); }; } public function getCloud(_arg1, _arg2){ var _local3:cloud; _local3 = new cloud(); _local3.x = _arg1; _local3.y = _arg2; _local3.remove = false; clouds.push(_local3); frameChange(_local3, Math.round(((Math.random() * 2) + 1))); addChild(_local3); } function frame8(){ myChannel.stop(); myChannel2.stop(); retry_btn.addEventListener(MouseEvent.CLICK, retryEvent2); scoreMC.visible = false; scoreMC.score.text = ("SCORE: " + String(score)); playmoregames.addEventListener(MouseEvent.CLICK, loadNGSite); } function frame2(){ stop(); myChannel = new SoundChannel(); myChannel2 = new SoundChannel(); soundVol = new SoundTransform(); mySound = new Russian_Techno(); mySound1 = new Russian_Techno_8bit(); play_button.addEventListener(MouseEvent.CLICK, playEvent); playmoregames.addEventListener(MouseEvent.CLICK, loadNGSite); } function frame6(){ stop(); soundVol.volume = 1; myChannel.soundTransform = soundVol; soundVol.volume = 0; myChannel2.soundTransform = soundVol; missiles = new Array(); loadHero(hero); totalMissiles = 4; i = 0; while (i < totalMissiles) { getMissile(); i++; }; bitmapData = new BitmapData(400, 500, true, 0); bitmap = new Bitmap(bitmapData); kDown = false; pauseGame = false; stage.addEventListener(KeyboardEvent.KEY_DOWN, keyD); stage.addEventListener(KeyboardEvent.KEY_UP, keyU); stage.addEventListener(Event.ENTER_FRAME, loop2); } public function pauseToggle2():void{ if (keys[80]){ if (((!(pauseGame)) && (!(kDown)))){ pauseMc = new Pause(); stage.addChild(bitmap); bitmapData.draw(stage); stage.addChild(pauseMc); pauseGame = true; kDown = true; soundVol.volume = 0; myChannel.soundTransform = soundVol; soundVol.volume = 1; myChannel2.soundTransform = soundVol; } else { if (((pauseGame) && (!(kDown)))){ stage.removeChild(bitmap); stage.removeChild(pauseMc); pauseGame = false; kDown = true; soundVol.volume = 1; myChannel.soundTransform = soundVol; soundVol.volume = 0; myChannel2.soundTransform = soundVol; }; }; } else { kDown = false; }; } public function loop(_arg1:Event):void{ pauseToggle(); if (!pauseGame){ i = 0; while (i < obj.length) { physics(obj[i]); i++; }; camera(); }; i = 0; while (i < clouds.length) { cloudUpdate(clouds[i], i); i++; }; } public function MouseDown(){ hero.yv = -(hero.jumpV); mDown = true; } public function winrar(){ scoreMC.gotoAndStop(1); if (NewgroundsAPI.medals[1]){ NewgroundsAPI.medals[1].unlock(); }; } public function retryEvent(_arg1:Event):void{ retry_btn.removeEventListener(MouseEvent.CLICK, retryEvent); gotoAndStop(1); } public function pauseToggle():void{ if (keys[80]){ if (((!(pauseGame)) && (!(kDown)))){ pauseMc = new Pause(); stage.addChild(bitmap); bitmapData.draw(stage); stage.addChild(pauseMc); pauseGame = true; kDown = true; soundVol.volume = 0; myChannel.soundTransform = soundVol; soundVol.volume = 1; myChannel2.soundTransform = soundVol; } else { if (((pauseGame) && (!(kDown)))){ stage.removeChild(bitmap); stage.removeChild(pauseMc); pauseGame = false; kDown = true; soundVol.volume = 1; myChannel.soundTransform = soundVol; soundVol.volume = 0; myChannel2.soundTransform = soundVol; }; }; } else { kDown = false; }; } public function getMissile(){ var _local1:Missile; _local1 = new Missile(); reboot(_local1); missiles.push(_local1); addChild(_local1); } public function loadNGSite(_arg1:Event){ NewgroundsAPI.loadNewgrounds(); } public function camera():void{ if (scrollOb.y < 250){ y = (-(scrollOb.y) + 250); }; hud.y = -(y); medal_popup.y = hud.y; hud.parent.setChildIndex(hud, (hud.parent.numChildren - 1)); hud.score.text = String(score); } public function missile(_arg1){ if (((hero.hitTestPoint(_arg1.x, _arg1.y, true)) && (!((_arg1.currentFrame === 2))))){ score = (score - (100 + Math.round((Math.random() * 500)))); _arg1.gotoAndStop(2); }; if (((hero.hitTestPoint(_arg1.p1.x, _arg1.p1.y, true)) && (!((_arg1.currentFrame === 2))))){ score = (score - (100 + Math.round((Math.random() * 500)))); _arg1.gotoAndStop(2); }; _arg1.x = (_arg1.x + _arg1.xv); _arg1.y = (_arg1.y - _arg1.yv); if (_arg1.x < -10){ reboot(_arg1); }; if (_arg1.x > 410){ reboot(_arg1); }; if (_arg1.y < -50){ reboot(_arg1); }; } public function visit_NG(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://ww.newgrounds.com/"); navigateToURL(_local2, "_parent"); } public function lostGame(){ stage.removeEventListener(Event.ENTER_FRAME, loop2); gotoAndStop("game2dead"); i = 0; while (i < missiles.length) { removeChild(missiles[i]); i++; }; } public function visit_zac(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://www.1227.com"); navigateToURL(_local2, "_parent"); } public function heroUpdate(_arg1){ if (_arg1.lostGame == true){ lostGame(); }; if (score <= 0){ _arg1.play(); } else { _arg1.yv = (((mouseY - _arg1.y) * 0.1) + (_arg1.yv * 0.2)); _arg1.xv = (((mouseX - _arg1.x) * 0.1) + (_arg1.xv * 0.2)); }; _arg1.y = (_arg1.y + (_arg1.yv = (_arg1.yv * 0.96))); _arg1.x = (_arg1.x + (_arg1.xv = (_arg1.xv * 0.96))); _arg1.rotation = -(_arg1.xv); } public function cloudUpdate(_arg1, _arg2){ if (cloudDel == true){ _arg1.remove = true; }; if (y > (700 - _arg1.y)){ _arg1.remove = true; }; if (_arg1.remove == true){ removeChild(clouds[_arg2]); clouds.splice(_arg2, 1); }; if (((((_arg1.hitTestPoint(scrollOb.x, scrollOb.y, true)) && ((_arg1.currentFrame < 4)))) && (mDown))){ score = (score + (100 + Math.round((Math.random() * 100)))); scrollOb.yv = -((scrollOb.jumpV + (Math.random() * 20))); frameChange(_arg1, 5); }; if (fox.hitTestObject(_arg1)){ _arg1.remove = true; }; } public function frameChange(_arg1:Object, _arg2:Number):void{ if (_arg1.currentFrame !== _arg2){ _arg1.gotoAndStop(_arg2); }; } public function retryEvent2(_arg1:Event):void{ retry_btn.removeEventListener(MouseEvent.CLICK, retryEvent2); gotoAndStop(1); } public function reboot(_arg1){ _arg1.gotoAndStop(1); _arg1.x = (Math.random() * 400); _arg1.y = 500; _arg1.xv = ((Math.random() * 2) - (Math.random() * 2)); _arg1.yv = ((Math.random() * 15) + 5); _arg1.rotation = (-(Math.atan2(_arg1.yv, _arg1.xv)) / (Math.PI / 180)); } public function keyD(_arg1:KeyboardEvent):void{ keys[_arg1.keyCode] = true; } public function playEvent(_arg1:Event):void{ play_button.removeEventListener(MouseEvent.CLICK, playEvent); play(); } public function visit_lochie(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://night-mare.newgrounds.com"); navigateToURL(_local2, "_parent"); } public function keyU(_arg1:KeyboardEvent):void{ keys[_arg1.keyCode] = false; } public function visit_yoop(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://whirlguy.newgrounds.com"); navigateToURL(_local2, "_parent"); } } }//package main_fla
Section 31
//missile3_89 (main_fla.missile3_89) package main_fla { import flash.display.*; public dynamic class missile3_89 extends MovieClip { public function missile3_89(){ addFrameScript(23, frame24); } function frame24(){ stop(); } } }//package main_fla
Section 32
//MusicMC_39 (main_fla.MusicMC_39) package main_fla { import flash.display.*; public dynamic class MusicMC_39 extends MovieClip { public function MusicMC_39(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package main_fla
Section 33
//NewgroundsAPI_Ad_Unit_12 (main_fla.NewgroundsAPI_Ad_Unit_12) package main_fla { import com.newgrounds.*; import flash.display.*; public dynamic class NewgroundsAPI_Ad_Unit_12 extends MovieClip { public var background:MovieClip; public function NewgroundsAPI_Ad_Unit_12(){ addFrameScript(0, frame1); } function frame1(){ NewgroundsAPI.addEventListener(NewgroundsAPIEvent.ADS_APPROVED, onAdsApproved); background.visible = false; } public function onAdsApproved(_arg1:NewgroundsAPIEvent):void{ addChild(NewgroundsAPI.createAd()); } } }//package main_fla
Section 34
//NG_AD_OBJECT_WITH_PRELOADER_3 (main_fla.NG_AD_OBJECT_WITH_PRELOADER_3) package main_fla { import flash.display.*; public dynamic class NG_AD_OBJECT_WITH_PRELOADER_3 extends MovieClip { public var poop:MovieClip; public var ng_ad:MovieClip; public var NG_Button:SimpleButton; } }//package main_fla
Section 35
//NG_TANK_10 (main_fla.NG_TANK_10) package main_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class NG_TANK_10 extends MovieClip { public var NG_Logo:SimpleButton; public function NG_TANK_10(){ addFrameScript(0, frame1); } public function loadNGSite(_arg1:Event){ MovieClip(root).NewgroundsAPI.loadNewgrounds(); } function frame1(){ NG_Logo.addEventListener(MouseEvent.CLICK, loadNGSite); } } }//package main_fla
Section 36
//NG_TANKcopy_23 (main_fla.NG_TANKcopy_23) package main_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.xml.*; public dynamic class NG_TANKcopy_23 extends MovieClip { public var NG_Logo:SimpleButton; public function NG_TANKcopy_23(){ addFrameScript(0, frame1); } public function loadNGSite(_arg1:Event){ MovieClip(root).NewgroundsAPI.loadNewgrounds(); } function frame1(){ NG_Logo.addEventListener(MouseEvent.CLICK, loadNGSite); } } }//package main_fla
Section 37
//SCORELOL_83 (main_fla.SCORELOL_83) package main_fla { import flash.display.*; import flash.text.*; public dynamic class SCORELOL_83 extends MovieClip { public var score:TextField; public function SCORELOL_83(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package main_fla
Section 38
//Screenshots_26 (main_fla.Screenshots_26) package main_fla { import flash.display.*; public dynamic class Screenshots_26 extends MovieClip { public var bob:Number; public function Screenshots_26(){ addFrameScript(0, frame1); } function frame1(){ bob = ((Math.random() * 5) + 1); bob = Math.round(bob); gotoAndStop(bob); } } }//package main_fla
Section 39
//ShakeyHero_58 (main_fla.ShakeyHero_58) package main_fla { import flash.display.*; public dynamic class ShakeyHero_58 extends MovieClip { public function ShakeyHero_58(){ addFrameScript(105, frame106); } function frame106(){ gotoAndPlay(100); } } }//package main_fla
Section 40
//skyart_50 (main_fla.skyart_50) package main_fla { import flash.display.*; public dynamic class skyart_50 extends MovieClip { public var win:MovieClip; } }//package main_fla
Section 41
//Symbol2_20 (main_fla.Symbol2_20) package main_fla { import flash.display.*; public dynamic class Symbol2_20 extends MovieClip { public function Symbol2_20(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package main_fla
Section 42
//Symbol5_48 (main_fla.Symbol5_48) package main_fla { import flash.display.*; public dynamic class Symbol5_48 extends MovieClip { public function Symbol5_48(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package main_fla
Section 43
//Symbol6_22 (main_fla.Symbol6_22) package main_fla { import flash.display.*; public dynamic class Symbol6_22 extends MovieClip { public function Symbol6_22(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package main_fla
Section 44
//X_LOAD_4 (main_fla.X_LOAD_4) package main_fla { import flash.display.*; import flash.events.*; public dynamic class X_LOAD_4 extends MovieClip { public var NGButton:SimpleButton; public function X_LOAD_4(){ addFrameScript(100, frame101, 150, frame151, 164, frame165); } function frame151(){ NGButton.addEventListener(MouseEvent.CLICK, PlayMovie); } function frame165(){ stop(); } public function PlayMovie(_arg1:Event){ gotoAndStop("end"); MovieClip(root).play(); } function frame101(){ play(); } } }//package main_fla
Section 45
//cloud (cloud) package { import flash.display.*; public dynamic class cloud extends MovieClip { public function cloud(){ addFrameScript(0, frame1, 3, frame4); } function frame1(){ stop(); } function frame4(){ gotoAndStop(1); } } }//package
Section 46
//Missile (Missile) package { import flash.display.*; public dynamic class Missile extends MovieClip { public var p1:MovieClip; public function Missile(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 47
//Pause (Pause) package { import flash.display.*; public dynamic class Pause extends MovieClip { } }//package
Section 48
//Russian_Techno (Russian_Techno) package { import flash.media.*; public dynamic class Russian_Techno extends Sound { } }//package
Section 49
//Russian_Techno_8bit (Russian_Techno_8bit) package { import flash.media.*; public dynamic class Russian_Techno_8bit extends Sound { } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:3  Timeline
Symbol 3 MovieClipUses:2Used by:10
Symbol 4 GraphicUsed by:10
Symbol 5 FontUsed by:7 62 72 77 79 80 89 131
Symbol 6 FontUsed by:7 63 64 85 90 233 304 305
Symbol 7 TextUses:5 6Used by:10
Symbol 8 BitmapUsed by:9
Symbol 9 GraphicUses:8Used by:10  Timeline
Symbol 10 MovieClip {Pause}Uses:3 4 7 9
Symbol 11 GraphicUsed by:24
Symbol 12 GraphicUsed by:24
Symbol 13 GraphicUsed by:24
Symbol 14 GraphicUsed by:22
Symbol 15 SoundUsed by:22
Symbol 16 GraphicUsed by:22
Symbol 17 GraphicUsed by:22
Symbol 18 GraphicUsed by:22
Symbol 19 GraphicUsed by:22
Symbol 20 GraphicUsed by:22
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClip {main_fla.CloudSplode_92}Uses:14 15 16 17 18 19 20 21Used by:24
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClip {cloud}Uses:11 12 13 22 23
Symbol 25 GraphicUsed by:55
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClipUses:26Used by:55 221
Symbol 28 GraphicUsed by:53
Symbol 29 GraphicUsed by:53
Symbol 30 GraphicUsed by:53
Symbol 31 GraphicUsed by:52
Symbol 32 GraphicUsed by:52
Symbol 33 GraphicUsed by:52
Symbol 34 GraphicUsed by:52
Symbol 35 GraphicUsed by:52
Symbol 36 GraphicUsed by:52
Symbol 37 GraphicUsed by:52
Symbol 38 GraphicUsed by:52
Symbol 39 GraphicUsed by:52
Symbol 40 GraphicUsed by:52
Symbol 41 GraphicUsed by:52
Symbol 42 GraphicUsed by:52
Symbol 43 GraphicUsed by:52
Symbol 44 GraphicUsed by:52
Symbol 45 GraphicUsed by:52
Symbol 46 GraphicUsed by:52
Symbol 47 GraphicUsed by:52
Symbol 48 GraphicUsed by:52
Symbol 49 GraphicUsed by:52
Symbol 50 GraphicUsed by:52
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51Used by:53
Symbol 53 MovieClip {main_fla.missile3_89}Uses:28 29 30 52Used by:55
Symbol 54 SoundUsed by:55 292
Symbol 55 MovieClip {Missile}Uses:25 27 53 54
Symbol 56 GraphicUsed by:67
Symbol 57 FontUsed by:59
Symbol 58 FontUsed by:59
Symbol 59 TextUses:57 58Used by:67
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:67
Symbol 62 EditableTextUses:5Used by:67
Symbol 63 TextUses:6Used by:67
Symbol 64 EditableTextUses:6Used by:67
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:65Used by:67
Symbol 67 MovieClip {com.newgrounds.components.DefaultMedalPopup}Uses:56 59 61 62 63 64 66Used by:Timeline
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used by:91
Symbol 70 FontUsed by:71 76 78 88 130
Symbol 71 TextUses:70Used by:91
Symbol 72 TextUses:5Used by:91
Symbol 73 GraphicUsed by:75
Symbol 74 GraphicUsed by:75
Symbol 75 ButtonUses:73 74Used by:91
Symbol 76 TextUses:70Used by:91
Symbol 77 TextUses:5Used by:91
Symbol 78 TextUses:70Used by:91
Symbol 79 TextUses:5Used by:91
Symbol 80 TextUses:5Used by:91
Symbol 81 GraphicUsed by:84
Symbol 82 GraphicUsed by:84
Symbol 83 GraphicUsed by:84
Symbol 84 ButtonUses:81 82 83Used by:91
Symbol 85 TextUses:6Used by:91
Symbol 86 GraphicUsed by:91 129 132  Timeline
Symbol 87 GraphicUsed by:91
Symbol 88 TextUses:70Used by:91
Symbol 89 TextUses:5Used by:91
Symbol 90 TextUses:6Used by:91
Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector}Uses:69 71 72 75 76 77 78 79 80 84 85 86 87 88 89 90Used by:Timeline
Symbol 92 GraphicUsed by:93
Symbol 93 MovieClipUses:92Used by:Timeline
Symbol 94 GraphicUsed by:96
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:94 95Used by:116
Symbol 97 GraphicUsed by:116
Symbol 98 GraphicUsed by:116
Symbol 99 GraphicUsed by:116
Symbol 100 MovieClip {main_fla.Action_6}Used by:116
Symbol 101 GraphicUsed by:116
Symbol 102 ShapeTweeningUsed by:116
Symbol 103 ShapeTweeningUsed by:116
Symbol 104 GraphicUsed by:116
Symbol 105 GraphicUsed by:116
Symbol 106 GraphicUsed by:116
Symbol 107 GraphicUsed by:115 116
Symbol 108 GraphicUsed by:115 116
Symbol 109 GraphicUsed by:115 116
Symbol 110 GraphicUsed by:115 116
Symbol 111 GraphicUsed by:115 116
Symbol 112 GraphicUsed by:114 115
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClipUses:112 113Used by:115 116
Symbol 115 ButtonUses:107 108 109 110 111 114 112Used by:116
Symbol 116 MovieClip {main_fla.X_LOAD_4}Uses:96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 115 111 114Used by:134
Symbol 117 GraphicUsed by:134
Symbol 118 FontUsed by:119
Symbol 119 TextUses:118Used by:123
Symbol 120 GraphicUsed by:123
Symbol 121 GraphicUsed by:123
Symbol 122 GraphicUsed by:123
Symbol 123 ButtonUses:119 120 121 122Used by:134
Symbol 124 GraphicUsed by:134
Symbol 125 GraphicUsed by:134
Symbol 126 GraphicUsed by:128
Symbol 127 GraphicUsed by:128
Symbol 128 ButtonUses:126 127Used by:129 150
Symbol 129 MovieClip {main_fla.NG_TANK_10}Uses:86 128Used by:134
Symbol 130 TextUses:70Used by:132
Symbol 131 TextUses:5Used by:132
Symbol 132 MovieClipUses:86 130 131Used by:133
Symbol 133 MovieClip {main_fla.NewgroundsAPI_Ad_Unit_12}Uses:132Used by:134
Symbol 134 MovieClip {main_fla.NG_AD_OBJECT_WITH_PRELOADER_3}Uses:116 117 123 124 125 129 133Used by:Timeline
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClipUses:135Used by:Timeline
Symbol 137 GraphicUsed by:Timeline
Symbol 138 GraphicUsed by:143
Symbol 139 GraphicUsed by:141
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClip {main_fla.Symbol2_20}Uses:139 140Used by:143
Symbol 142 GraphicUsed by:143 148
Symbol 143 ButtonUses:138 141 142Used by:Timeline
Symbol 144 GraphicUsed by:148
Symbol 145 GraphicUsed by:147
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClip {main_fla.Symbol6_22}Uses:145 146Used by:148
Symbol 148 ButtonUses:144 147 142Used by:Timeline
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClip {main_fla.NG_TANKcopy_23}Uses:149 128Used by:234 313  Timeline
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClipUses:151Used by:Timeline
Symbol 153 GraphicUsed by:Timeline
Symbol 154 GraphicUsed by:176
Symbol 155 GraphicUsed by:176 209 273 313
Symbol 156 GraphicUsed by:176
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:157Used by:176
Symbol 159 GraphicUsed by:176 307
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:176 294 307
Symbol 162 GraphicUsed by:176 313
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClipUses:163Used by:176 313
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClipUses:165Used by:176 313
Symbol 167 GraphicUsed by:168
Symbol 168 MovieClipUses:167Used by:176 313
Symbol 169 GraphicUsed by:176 209 273 313
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:170Used by:176 209 313
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:176 273
Symbol 174 GraphicUsed by:175
Symbol 175 MovieClipUses:174Used by:176 273
Symbol 176 MovieClip {main_fla.Screenshots_26}Uses:154 155 156 158 159 161 162 164 166 168 169 171 173 175Used by:177
Symbol 177 MovieClipUses:176Used by:Timeline
Symbol 178 ShapeTweeningUsed by:180
Symbol 179 GraphicUsed by:180
Symbol 180 MovieClip {main_fla.FadeIn_35}Uses:178 179Used by:234  Timeline
Symbol 181 GraphicUsed by:184
Symbol 182 Sound {Russian_Techno_8bit}Used by:184
Symbol 183 Sound {Russian_Techno}Used by:184
Symbol 184 MovieClip {main_fla.MusicMC_39}Uses:181 182 183Used by:Timeline
Symbol 185 SoundUsed by:Timeline
Symbol 186 GraphicUsed by:209
Symbol 187 SoundUsed by:209
Symbol 188 GraphicUsed by:209
Symbol 189 GraphicUsed by:209
Symbol 190 GraphicUsed by:194
Symbol 191 GraphicUsed by:192
Symbol 192 MovieClipUses:191Used by:194 209 227 252 266
Symbol 193 GraphicUsed by:194
Symbol 194 MovieClipUses:190 192 193Used by:206 209
Symbol 195 GraphicUsed by:209
Symbol 196 GraphicUsed by:209
Symbol 197 GraphicUsed by:209
Symbol 198 GraphicUsed by:199
Symbol 199 MovieClipUses:198Used by:209
Symbol 200 SoundUsed by:209 273
Symbol 201 GraphicUsed by:209
Symbol 202 GraphicUsed by:209
Symbol 203 GraphicUsed by:204
Symbol 204 MovieClipUses:203Used by:205
Symbol 205 MovieClipUses:204Used by:209 273
Symbol 206 MovieClipUses:194Used by:209
Symbol 207 GraphicUsed by:209
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClip {main_fla.Cutscene1_40}Uses:155 186 171 169 187 188 189 194 195 196 197 192 199 200 201 202 205 206 207 208Used by:Timeline
Symbol 210 GraphicUsed by:212 215
Symbol 211 GraphicUsed by:212
Symbol 212 MovieClip {main_fla.Symbol5_48}Uses:211 210Used by:215
Symbol 213 GraphicUsed by:215
Symbol 214 GraphicUsed by:215
Symbol 215 ButtonUses:210 212 213 214Used by:Timeline
Symbol 216 GraphicUsed by:217
Symbol 217 MovieClipUses:216Used by:Timeline
Symbol 218 GraphicUsed by:221
Symbol 219 GraphicUsed by:220
Symbol 220 MovieClipUses:219Used by:221
Symbol 221 MovieClip {main_fla.skyart_50}Uses:218 220 27Used by:Timeline
Symbol 222 GraphicUsed by:223
Symbol 223 MovieClipUses:222Used by:224 252
Symbol 224 MovieClipUses:223Used by:230 231
Symbol 225 GraphicUsed by:227
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:225 192 226Used by:230 231
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClipUses:228Used by:231
Symbol 230 MovieClip {main_fla.ShakeyHero_58}Uses:227 224Used by:231
Symbol 231 MovieClip {main_fla.hero_53}Uses:224 227 229 230Used by:Timeline
Symbol 232 GraphicUsed by:234
Symbol 233 EditableTextUses:6Used by:234
Symbol 234 MovieClip {main_fla.HUD_59}Uses:232 233 150 180Used by:Timeline
Symbol 235 GraphicUsed by:236
Symbol 236 MovieClipUses:235Used by:238
Symbol 237 GraphicUsed by:238
Symbol 238 MovieClipUses:236 237Used by:248 273
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:245
Symbol 241 GraphicUsed by:242
Symbol 242 MovieClipUses:241Used by:245
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClipUses:243Used by:245
Symbol 245 MovieClipUses:240 242 244Used by:248
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClipUses:246Used by:248 273 313
Symbol 248 MovieClipUses:238 245 247Used by:Timeline
Symbol 249 GraphicUsed by:273
Symbol 250 GraphicUsed by:252
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClipUses:250 192 251 223Used by:273
Symbol 253 SoundUsed by:273
Symbol 254 GraphicUsed by:255
Symbol 255 MovieClipUses:254Used by:273
Symbol 256 SoundUsed by:273
Symbol 257 GraphicUsed by:258
Symbol 258 MovieClipUses:257Used by:273 313
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClipUses:259Used by:261
Symbol 261 MovieClipUses:260Used by:273
Symbol 262 GraphicUsed by:263
Symbol 263 MovieClipUses:262Used by:273 313
Symbol 264 GraphicUsed by:266
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:264 192 265Used by:273 292
Symbol 267 GraphicUsed by:273
Symbol 268 GraphicUsed by:269
Symbol 269 MovieClipUses:268Used by:270
Symbol 270 MovieClipUses:269Used by:273
Symbol 271 GraphicUsed by:273
Symbol 272 GraphicUsed by:273
Symbol 273 MovieClip {main_fla.clip2_68}Uses:155 249 238 247 252 169 253 173 175 255 256 258 261 263 266 267 205 270 200 271 272Used by:Timeline
Symbol 274 GraphicUsed by:292
Symbol 275 GraphicUsed by:292
Symbol 276 GraphicUsed by:292
Symbol 277 GraphicUsed by:292
Symbol 278 GraphicUsed by:292
Symbol 279 GraphicUsed by:292
Symbol 280 GraphicUsed by:292
Symbol 281 GraphicUsed by:292
Symbol 282 GraphicUsed by:292
Symbol 283 GraphicUsed by:292
Symbol 284 GraphicUsed by:292
Symbol 285 GraphicUsed by:292
Symbol 286 GraphicUsed by:292
Symbol 287 GraphicUsed by:292
Symbol 288 GraphicUsed by:292
Symbol 289 GraphicUsed by:292
Symbol 290 GraphicUsed by:292
Symbol 291 GraphicUsed by:292
Symbol 292 MovieClip {main_fla.Hero2_78}Uses:274 266 275 54 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291Used by:Timeline
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293 161Used by:298
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:295Used by:298 308
Symbol 297 GraphicUsed by:298 308
Symbol 298 MovieClip {main_fla.dieomg_79}Uses:294 296 297Used by:Timeline
Symbol 299 GraphicUsed by:303
Symbol 300 GraphicUsed by:303
Symbol 301 GraphicUsed by:303
Symbol 302 GraphicUsed by:303
Symbol 303 ButtonUses:299 300 301 302Used by:Timeline
Symbol 304 EditableTextUses:6Used by:306
Symbol 305 EditableTextUses:6Used by:306
Symbol 306 MovieClip {main_fla.SCORELOL_83}Uses:304 305Used by:Timeline
Symbol 307 MovieClipUses:159 161Used by:308
Symbol 308 MovieClip {main_fla.diezomg_84}Uses:307 296 297Used by:Timeline
Symbol 309 GraphicUsed by:310
Symbol 310 MovieClipUses:309Used by:313
Symbol 311 GraphicUsed by:313
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClip {main_fla.boomb_86}Uses:155 258 263 169 247 310 162 164 168 166 311 171 312 150 SS1Used by:Timeline
Streaming Sound 1Used by:Symbol 313 MovieClip {main_fla.boomb_86}

Instance Names

"newgroundsAPIconnector"Frame 1Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector}
"play_button"Frame 2Symbol 143 Button
"playmoregames"Frame 2Symbol 148 Button
"ng_ad"Frame 2Symbol 150 MovieClip {main_fla.NG_TANKcopy_23}
"medal_popup"Frame 2Symbol 67 MovieClip {com.newgrounds.components.DefaultMedalPopup}
"skip_button"Frame 3Symbol 215 Button
"ground"Frame 4Symbol 217 MovieClip
"sky"Frame 4Symbol 221 MovieClip {main_fla.skyart_50}
"hero"Frame 4Symbol 231 MovieClip {main_fla.hero_53}
"hud"Frame 4Symbol 234 MovieClip {main_fla.HUD_59}
"fox"Frame 4Symbol 248 MovieClip
"skip_button"Frame 5Symbol 215 Button
"sky"Frame 6Symbol 221 MovieClip {main_fla.skyart_50}
"hero"Frame 6Symbol 292 MovieClip {main_fla.Hero2_78}
"hud"Frame 6Symbol 234 MovieClip {main_fla.HUD_59}
"retry_btn"Frame 7Symbol 303 Button
"playmoregames"Frame 7Symbol 148 Button
"ng_ad"Frame 7Symbol 150 MovieClip {main_fla.NG_TANKcopy_23}
"scoreMC"Frame 7Symbol 306 MovieClip {main_fla.SCORELOL_83}
"p1"Symbol 55 MovieClip {Missile} Frame 1Symbol 27 MovieClip
"medalNameText"Symbol 67 MovieClip {com.newgrounds.components.DefaultMedalPopup} Frame 10Symbol 62 EditableText
"medalValueText"Symbol 67 MovieClip {com.newgrounds.components.DefaultMedalPopup} Frame 10Symbol 64 EditableText
"medalContainer"Symbol 67 MovieClip {com.newgrounds.components.DefaultMedalPopup} Frame 10Symbol 66 MovieClip
"closeButton"Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector} Frame 2Symbol 75 Button
"viewLatestButton"Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector} Frame 4Symbol 84 Button
"viewLegalButton"Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector} Frame 5Symbol 84 Button
"NGButton"Symbol 116 MovieClip {main_fla.X_LOAD_4} Frame 151Symbol 115 Button
"NG_Logo"Symbol 129 MovieClip {main_fla.NG_TANK_10} Frame 1Symbol 128 Button
"background"Symbol 133 MovieClip {main_fla.NewgroundsAPI_Ad_Unit_12} Frame 1Symbol 132 MovieClip
"NG_Button"Symbol 134 MovieClip {main_fla.NG_AD_OBJECT_WITH_PRELOADER_3} Frame 1Symbol 123 Button
"ng_ad"Symbol 134 MovieClip {main_fla.NG_AD_OBJECT_WITH_PRELOADER_3} Frame 1Symbol 129 MovieClip {main_fla.NG_TANK_10}
"poop"Symbol 134 MovieClip {main_fla.NG_AD_OBJECT_WITH_PRELOADER_3} Frame 1Symbol 133 MovieClip {main_fla.NewgroundsAPI_Ad_Unit_12}
"NG_Logo"Symbol 150 MovieClip {main_fla.NG_TANKcopy_23} Frame 1Symbol 128 Button
"win"Symbol 221 MovieClip {main_fla.skyart_50} Frame 1Symbol 27 MovieClip
"flame"Symbol 231 MovieClip {main_fla.hero_53} Frame 1Symbol 224 MovieClip
"jump"Symbol 231 MovieClip {main_fla.hero_53} Frame 1Symbol 229 MovieClip
"score"Symbol 234 MovieClip {main_fla.HUD_59} Frame 1Symbol 233 EditableText
"ng_ad"Symbol 234 MovieClip {main_fla.HUD_59} Frame 1Symbol 150 MovieClip {main_fla.NG_TANKcopy_23}
"score"Symbol 306 MovieClip {main_fla.SCORELOL_83} Frame 1Symbol 304 EditableText
"score"Symbol 306 MovieClip {main_fla.SCORELOL_83} Frame 2Symbol 305 EditableText
"ng_ad"Symbol 313 MovieClip {main_fla.boomb_86} Frame 306Symbol 150 MovieClip {main_fla.NG_TANKcopy_23}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"game1dead"Frame 7
"game2dead"Frame 8
"winrar"Frame 9
"medal_show"Symbol 67 MovieClip {com.newgrounds.components.DefaultMedalPopup} Frame 2
"medal_hide"Symbol 67 MovieClip {com.newgrounds.components.DefaultMedalPopup} Frame 11
"no_login"Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector} Frame 2
"no_connect"Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector} Frame 3
"new_version"Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector} Frame 4
"bad_host"Symbol 91 MovieClip {com.newgrounds.components.DefaultAPIConnector} Frame 5
"loading"Symbol 116 MovieClip {main_fla.X_LOAD_4} Frame 1
"loaded"Symbol 116 MovieClip {main_fla.X_LOAD_4} Frame 101
"lastframe"Symbol 116 MovieClip {main_fla.X_LOAD_4} Frame 165
"end"Symbol 116 MovieClip {main_fla.X_LOAD_4} Frame 166




http://swfchan.com/16/78698/info.shtml
Created: 3/4 -2019 12:19:23 Last modified: 3/4 -2019 12:19:23 Server time: 05/05 -2024 23:19:33