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

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

K-Million Game - do not let the bugs reach you, and avoid the webs.swf

This is the info page for
Flash #89572

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


Text
UNIQUE

TRIPPY

STYLE

SIMPLICITY

COLOUR

SHAPE

DESIGN

ALTERNATIVE

INDIE

GAMES

ALILLM.COM

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

MEDAL GET!

100pts

Newgrounds API Connector

Connecting to the Newgrounds Gateway...

Connection Established!

YOU ARE NOT LOGGED IN!

You will not be able to use any
members-only features!

Some features may be
temporarily unavailable.

API CONNECTION FAILED

NOTICE!

A new version is now available!
Click the button below to check it out.

View latest version

UNAUTHORIZED USE!!

This website is hosting this file without proper consent!
Click the button below to view a legal version.

View authorized version

<p align="center"><font face="Agency FB" size="20" color="#fae843" letterSpacing="0.000000" kerning="1"><b>x14</b></font></p>

x3

SUBMIT SCORE

FEEL COMPETITIVE?

>BACK

>BACK

GAME OVER

YOUR
SCORE:

456892

(OPENS IN A NEW WINDOW)

MORE
GAMES

'NUFF SAID!

GET
READY

GO

PRESS S

0
1
2
3
4
5
6
7
8
9
0

instructions

use the arrow keys to move left and right
press a to shoot
DESTROY BLOCKS OF COLOURS FOR COMBOS
collect the gems enemies drop
press s to use coins in fruit machine
match 3 to win special attack

PRESS A to START

speed  up

new colour

VIEW SCORES

K-MILLIONAIRES

CREDITS

WHO MADE WHAT?

TUTORIAL

LEARN EVERYTHING
ABOUT THE GAME

PLAY

GO SPLAT THOSE
BUGS!

FLASH BEAM!

SQUIREL RAMPAGE!

FLOOD!

RAINBOW WIND!

DOWNPOUR!

ELIMINATOR!

ALILM.COM

TIGHT CODING,
PRETTY EFFECTS
GENERAL GAME DESIGN

LUXREGINA

GRAPHIC EXTRAVAGANZA
USER INTERFACE
ADDITIONAL GAME
DESIGN

AKELIXE

MUSICAL MASTERY

> VISIT THE SITE

USE THE ARROW KEYS            OR             TO MOVE YOUR
CHAMELEON LEFT OR RIGHT.  PRESS              TO SHOOT.
PRESS                TO PAUSE THE GAME.
DESTROY SAME COLOR ENEMIES FOR COMBOS!
COLLECT THE GEMS            ENEMIES DROP TO FILL YOUR
SLOT MACHINE POWER METER.
PRESS              TO USE YOUR SLOT MACHINE.
MATCH 3 SIMILAR SYMBOLS                      TO WIN A
SPECIAL ATTACK!
AVOID THE               !

A

S

P

SKIP INTROS

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 = (((_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 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array = new Array(); var _local3:int = (_arg1.length * 8); var _local4 = 0xFF; var _local5:int; 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 _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local2 = 1732584193; var _local3 = -271733879; var _local4 = -1732584194; var _local5 = 271733878; var _local10:Array = createBlocks(_arg1); var _local11:int = _local10.length; var _local12:int; 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
//PNGEncoder (com.adobe.images.PNGEncoder) package com.adobe.images { import flash.display.*; import flash.utils.*; import flash.geom.*; public class PNGEncoder { private static var crcTableComputed:Boolean = false; private static var crcTable:Array; private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{ var _local8:uint; var _local9:uint; var _local10:uint; if (!crcTableComputed){ crcTableComputed = true; crcTable = []; _local9 = 0; while (_local9 < 0x0100) { _local8 = _local9; _local10 = 0; while (_local10 < 8) { if ((_local8 & 1)){ _local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1)))); } else { _local8 = uint((_local8 >>> 1)); }; _local10++; }; crcTable[_local9] = _local8; _local9++; }; }; var _local4:uint; if (_arg3 != null){ _local4 = _arg3.length; }; _arg1.writeUnsignedInt(_local4); var _local5:uint = _arg1.position; _arg1.writeUnsignedInt(_arg2); if (_arg3 != null){ _arg1.writeBytes(_arg3); }; var _local6:uint = _arg1.position; _arg1.position = _local5; _local8 = 4294967295; var _local7:int; while (_local7 < (_local6 - _local5)) { _local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8)))); _local7++; }; _local8 = uint((_local8 ^ uint(4294967295))); _arg1.position = _local6; _arg1.writeUnsignedInt(_local8); } public static function encode(_arg1:BitmapData):ByteArray{ var _local6:uint; var _local7:int; var _local2:ByteArray = new ByteArray(); _local2.writeUnsignedInt(2303741511); _local2.writeUnsignedInt(218765834); var _local3:ByteArray = new ByteArray(); _local3.writeInt(_arg1.width); _local3.writeInt(_arg1.height); _local3.writeUnsignedInt(134610944); _local3.writeByte(0); writeChunk(_local2, 1229472850, _local3); var _local4:ByteArray = new ByteArray(); var _local5:int; while (_local5 < _arg1.height) { _local4.writeByte(0); if (!_arg1.transparent){ _local7 = 0; while (_local7 < _arg1.width) { _local6 = _arg1.getPixel(_local7, _local5); _local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | 0xFF))); _local7++; }; } else { _local7 = 0; while (_local7 < _arg1.width) { _local6 = _arg1.getPixel32(_local7, _local5); _local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | (_local6 >>> 24)))); _local7++; }; }; _local5++; }; _local4.compress(); writeChunk(_local2, 1229209940, _local4); writeChunk(_local2, 1229278788, null); return (_local2); } } }//package com.adobe.images
Section 3
//JSON (com.adobe.serialization.json.JSON) package com.adobe.serialization.json { public class JSON { public static function decode(_arg1:String){ var _local2:JSONDecoder = new JSONDecoder(_arg1); return (_local2.getValue()); } public static function encode(_arg1:Object):String{ var _local2:JSONEncoder = new JSONEncoder(_arg1); return (_local2.getString()); } } }//package com.adobe.serialization.json
Section 4
//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 parseObject():Object{ var _local2:String; var _local1:Object = 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 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); } private function nextToken():JSONToken{ return ((token = tokenizer.getNextToken())); } public function getValue(){ return (value); } private function parseArray():Array{ var _local1:Array = 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); } } }//package com.adobe.serialization.json
Section 5
//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 escapeString(_arg1:String):String{ var _local3:String; var _local6:String; var _local7:String; var _local2 = ""; var _local4:Number = _arg1.length; var _local5:int; 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 arrayToString(_arg1:Array):String{ var _local2 = ""; var _local3:int; while (_local3 < _arg1.length) { if (_local2.length > 0){ _local2 = (_local2 + ","); }; _local2 = (_local2 + convertToString(_arg1[_local3])); _local3++; }; return ((("[" + _local2) + "]")); } public function getString():String{ return (jsonString); } private function objectToString(_arg1:Object):String{ var value:Object; var key:String; var v:XML; var o = _arg1; var s = ""; var classInfo:XML = 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) + "}")); } 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"); } } }//package com.adobe.serialization.json
Section 6
//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _location:int; private var _text:String; public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){ super(_arg1); name = "JSONParseError"; _location = _arg2; _text = _arg3; } public function get location():int{ return (_location); } public function get text():String{ return (_text); } } }//package com.adobe.serialization.json
Section 7
//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 get value():Object{ return (_value); } public function get type():int{ return (_type); } public function set type(_arg1:int):void{ _type = _arg1; } public function set value(_arg1:Object):void{ _value = _arg1; } } }//package com.adobe.serialization.json
Section 8
//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 readString():JSONToken{ var _local3:String; var _local4:int; var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.STRING; var _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); } private function nextChar():String{ return ((ch = jsonString.charAt(loc++))); } public function getNextToken():JSONToken{ var _local2:String; var _local3:String; var _local4:String; var _local1:JSONToken = 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(); }; } public function parseError(_arg1:String):void{ throw (new JSONParseError(_arg1, loc, jsonString)); } private function isWhiteSpace(_arg1:String):Boolean{ return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r")))); } private function skipIgnored():void{ var _local1:int; do { _local1 = loc; skipWhite(); skipComments(); } while (_local1 != loc); } private function isHexDigit(_arg1:String):Boolean{ var _local2:String = _arg1.toUpperCase(); return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F")))))); } private function readNumber():JSONToken{ var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.NUMBER; var _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(); }; }; var _local3:Number = Number(_local2); if (((isFinite(_local3)) && (!(isNaN(_local3))))){ _local1.value = _local3; return (_local1); }; parseError((("Number " + _local3) + " is not valid!")); return (null); } } }//package com.adobe.serialization.json
Section 9
//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 10
//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 _local4:int; var _local5:int; var _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 = (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 11
//FPS (com.lifeztream.debug.FPS) package com.lifeztream.debug { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.geom.*; import flash.system.*; public class FPS extends Sprite { private const BORDER:uint = 2; private const INTERVALTIMES:uint = 4; private const MAX_MEMORIES:uint = 800; public var currentFPS:Number; public var currentMemory:Number; public var align:String;// = "left" private var WIDTH:uint;// = 100 private var HEIGHT:uint;// = 60 private var _isExpand:Boolean;// = false private var log:Array; private var intervalID:uint; private var IMAGE:Sprite; private var TEXTFIELD:TextField; private var count:uint; private var median:uint; private var timeElapsed:uint; private var cTime:uint; private var BITMAP:BitmapData; private var bmptoadd:Bitmap; private var rollOverText:Sprite; public static const AUTHOR:String = "(c) 2006-2008 Copyright by Wissarut Pimanmassuriya | area80.net | lifeztream.com | wissarut@area80.net"; public static const VERSION:String = "1.3"; public static const ALIGN_LEFT:String = "left"; public static const ALIGN_RIGHT:String = "right"; public function FPS(_arg1:String="left"):void{ addEventListener(Event.ADDED_TO_STAGE, added); addEventListener(Event.REMOVED_FROM_STAGE, kill); align = _arg1; reset(); } private function added(_arg1:Event):void{ var _local2:TextFormat; addEventListener(Event.ENTER_FRAME, onEnterFrame); median = stage.frameRate; if (!IMAGE){ IMAGE = new Sprite(); addChildAt(IMAGE, 0); }; initMouseEvents(); if (!TEXTFIELD){ TEXTFIELD = new TextField(); TEXTFIELD.autoSize = TextFieldAutoSize.LEFT; _local2 = new TextFormat("Georgia", 10, 0x9E9E9E); TEXTFIELD.x = BORDER; TEXTFIELD.y = BORDER; TEXTFIELD.defaultTextFormat = _local2; TEXTFIELD.selectable = false; addChildAt(TEXTFIELD, 1); }; intervalID = setInterval(update, (1000 / INTERVALTIMES)); } private function kill(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, onEnterFrame); BITMAP.dispose(); clearInterval(intervalID); } private function createRollOverText():void{ rollOverText = new Sprite(); var _local1:TextFormat = new TextFormat("Georgia", 11, 0x2E2E2E); var _local2:TextField = new TextField(); _local2.autoSize = TextFieldAutoSize.LEFT; _local2.defaultTextFormat = _local1; _local2.background = true; _local2.backgroundColor = 0x9E9E9E; _local2.border = true; _local2.borderColor = 0; _local2.selectable = false; _local2.text = "FPS Monitor by Lifeztream.com"; rollOverText.addChild(_local2); } private function initMouseEvents():void{ var mcEnterFrame:*; createRollOverText(); mcEnterFrame = function (_arg1:Event){ if (align == FPS.ALIGN_LEFT){ _arg1.target.x = (_arg1.target.x + ((mouseX - _arg1.target.x) * 0.2)); } else { if (align == FPS.ALIGN_RIGHT){ _arg1.target.x = (_arg1.target.x + (((mouseX - _arg1.target.x) - 160) * 0.2)); }; }; _arg1.target.y = (_arg1.target.y + (((mouseY - 20) - _arg1.target.y) * 0.2)); }; var bOver:* = function (_arg1:MouseEvent){ if (align == "left"){ rollOverText.x = mouseX; } else { if (align == "right"){ rollOverText.x = (mouseX - 160); }; }; rollOverText.y = (IMAGE.mouseY - 20); addChild(rollOverText); rollOverText.addEventListener(Event.ENTER_FRAME, mcEnterFrame); }; var bOut:* = function (_arg1:Event){ removeChild(rollOverText); rollOverText.removeEventListener(Event.ENTER_FRAME, mcEnterFrame); }; var bClick:* = function (_arg1:Event){ isExpand = !(isExpand); }; addEventListener(MouseEvent.MOUSE_OVER, bOver); addEventListener(MouseEvent.MOUSE_OUT, bOut); addEventListener(MouseEvent.CLICK, bClick); } private function update():void{ currentFPS = (count * INTERVALTIMES); currentMemory = System.totalMemory; count = 0; createLog(); drawData(); } private function get isExpand():Boolean{ return (_isExpand); } private function set isExpand(_arg1:Boolean){ _isExpand = _arg1; if (_arg1){ WIDTH = 200; HEIGHT = 120; } else { WIDTH = 100; HEIGHT = 60; }; } private function reset():void{ count = 0; currentFPS = 0; currentMemory = System.totalMemory; log = new Array(); timeElapsed = 0; cTime = 0; } private function onEnterFrame(_arg1:Event):void{ timeElapsed = (getTimer() - cTime); cTime = getTimer(); count++; } private function drawData():void{ var _local6:int; var _local7:Array; if (BITMAP){ BITMAP.dispose(); }; var _local1:Matrix = new Matrix(); _local1.translate(BORDER, 20); BITMAP = null; BITMAP = new BitmapData(WIDTH, HEIGHT, false, 0x3E3E3E); var _local2:BitmapData = new BitmapData((WIDTH - (BORDER * 2)), ((HEIGHT - BORDER) - 20), false, 0x121212); var _local3:Bitmap = new Bitmap(_local2); BITMAP.draw(_local3, _local1); _local2.dispose(); BITMAP.setPixel((BORDER - 1), ((HEIGHT - BORDER) - getPointerHeight(stage.frameRate)), 0xFFFF); var _local4:int; var _local5:int; if (log.length > ((WIDTH - (BORDER * 2)) / 2)){ _local5 = (log.length - ((WIDTH - (BORDER * 2)) / 2)); }; while (_local5 < log.length) { _local7 = (log[_local5] as Array); if (Number(_local7[0]) > (stage.frameRate * 0.7)){ _local6 = 0x7E00; } else { if (Number(_local7[0]) > (stage.frameRate * 0.5)){ _local6 = 16777088; } else { _local6 = 0xFF0000; }; }; BITMAP.setPixel((BORDER + (_local4 * 2)), ((HEIGHT - BORDER) - getPointerHeight(Number(_local7[0]))), _local6); BITMAP.setPixel(((BORDER + (_local4 * 2)) + 1), ((HEIGHT - BORDER) - getPointerMemoryHeight(Number(_local7[1]))), 0x4E4E4E); _local5++; _local4++; }; bmptoadd = new Bitmap(BITMAP); if (IMAGE.numChildren > 0){ IMAGE.removeChildAt(0); }; IMAGE.addChildAt(bmptoadd, 0); if (isExpand){ TEXTFIELD.text = (((((("FPS : " + currentFPS) + "/ TE : ") + timeElapsed) + " ms./ MemUse : ") + Math.round((currentMemory * 1E-5))) + " mb."); } else { TEXTFIELD.text = ((((("F.T.M " + currentFPS) + "/ ") + timeElapsed) + "/ ") + Math.round((currentMemory * 1E-5))); }; if (parent == root){ if (align == FPS.ALIGN_LEFT){ if (stage.align.indexOf("L") != -1){ x = 0; } else { if (stage.align.indexOf("R") != -1){ x = (loaderInfo.width - stage.stageWidth); } else { x = ((loaderInfo.width - stage.stageWidth) * 0.5); }; }; } else { if (align == FPS.ALIGN_RIGHT){ if (stage.align.indexOf("L") != -1){ x = (stage.stageWidth - WIDTH); } else { if (stage.align.indexOf("R") != -1){ x = (loaderInfo.width - WIDTH); } else { x = ((loaderInfo.width - WIDTH) + ((stage.stageWidth - loaderInfo.width) * 0.5)); }; }; }; }; if (stage.align.indexOf("T") != -1){ y = 0; } else { if (stage.align.indexOf("B") != -1){ y = (loaderInfo.height - stage.stageHeight); } else { y = ((loaderInfo.height - stage.stageHeight) * 0.5); }; }; }; } private function getPointerHeight(_arg1:Number):uint{ return (Math.round((((HEIGHT - BORDER) - 20) * (_arg1 / (stage.frameRate + 10))))); } private function getPointerMemoryHeight(_arg1:Number):uint{ return (Math.round((((HEIGHT - BORDER) - 20) * (Math.round((_arg1 * 1E-5)) / MAX_MEMORIES)))); } private function createLog():void{ if (log.length >= Math.floor(((WIDTH - (BORDER * 2)) * 0.5))){ log.shift(); }; log.push([currentFPS, currentMemory]); } public static function tostring():String{ return (("com.lifeztream.debug.FPS, version:" + VERSION)); } } }//package com.lifeztream.debug
Section 12
//APIConnector (com.newgrounds.components.APIConnector) package com.newgrounds.components { import com.newgrounds.*; import flash.display.*; import flash.events.*; import flash.utils.*; public class APIConnector extends MovieClip { private var _popDelay:Timer; private var _initialized:Boolean; private var _medalPopup:MedalPopup; private var _movieId:String; public var background:MovieClip; public var closeButton:SimpleButton; private var _showConnectingPopup:Boolean;// = true public var viewLatestButton:SimpleButton; private var _encryptionKey:String; private var _useErrorPopup:Boolean;// = true private var _movieVersion:String; public var errorDialog:MovieClip; public var viewAuthorizedButton:SimpleButton; public function APIConnector(){ _popDelay = new Timer(3000, 1); super(); addFrameScript(0, frame1, 6, frame7, 7, frame8); if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; useErrorPopup = true; useMedalPopup = true; _popDelay.addEventListener(TimerEvent.TIMER, errorTimerHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); if (stage){ addEventListener(Event.RENDER, renderHandler); stage.invalidate(); } else { clear(); }; } private function newVersionAvailableHandler(_arg1:APIEvent):void{ gotoAndStop("new_version"); visible = true; centerOnStage(); } private function hostBlockedHandler(_arg1:APIEvent):void{ gotoAndStop("bad_host"); visible = true; centerOnStage(); } public function get movieVersion():String{ return (_movieVersion); } private function closeButtonClickHandler(_arg1:Event):void{ clear(); } public function set movieVersion(_arg1:String):void{ _movieVersion = _arg1; } public function get debugMode():Boolean{ return (API.debugMode); } public function get showConnectingPopup():Boolean{ return (_showConnectingPopup); } private function enterFrameHandler(_arg1:Event):void{ forceAlwaysOnTop(); } private function officialVersionClickHandler(_arg1:Event):void{ API.loadOfficialVersion(); } public function set showConnectingPopup(_arg1:Boolean):void{ _showConnectingPopup = _arg1; if (((!(_arg1)) && ((((currentLabel == "connecting")) || ((currentLabel == "connected")))))){ clear(); }; } public function set encryptionKey(_arg1:String):void{ _encryptionKey = _arg1; } public function set debugMode(_arg1:Boolean):void{ API.debugMode = true; } public function set useMedalPopup(_arg1:Boolean):void{ if (((_arg1) && (!(_medalPopup)))){ _medalPopup = new MedalPopup(); addChild(_medalPopup); } else { if (((!(_arg1)) && (_medalPopup))){ removeChild(_medalPopup); _medalPopup = null; }; }; } private function forceAlwaysOnTop():void{ var myIndex:uint; var topIndex:uint; if (((parent) && (visible))){ try { myIndex = parent.getChildIndex(this); topIndex = (parent.numChildren - 1); if (myIndex != topIndex){ parent.setChildIndex(this, topIndex); }; } catch(e:Error) { }; }; } public function clear():void{ gotoAndStop("idle"); } private function movieConnectedHandler(_arg1:APIEvent):void{ if (_arg1.success){ if (((((((API.isPublishedHost()) && (API.IsCompatible()))) && (!(API.hasUserSession())))) && (!(API.debugMode)))){ gotoAndStop("no_login"); _popDelay.start(); visible = true; } else { if (showConnectingPopup){ gotoAndStop("connected"); }; }; } else { gotoAndStop("no_connect"); _popDelay.start(); visible = true; }; } private function renderHandler(_arg1:Event):void{ removeEventListener(Event.RENDER, renderHandler); clear(); connect(); } public function set useErrorPopup(_arg1:Boolean):void{ _useErrorPopup = _arg1; API.addEventListener(APIEvent.API_CONNECTED, movieConnectedHandler); if (_useErrorPopup){ API.addEventListener(APIEvent.NEW_VERSION_AVAILABLE, newVersionAvailableHandler); API.addEventListener(APIEvent.HOST_BLOCKED, hostBlockedHandler); } else { API.removeEventListener(APIEvent.NEW_VERSION_AVAILABLE, newVersionAvailableHandler); API.removeEventListener(APIEvent.HOST_BLOCKED, hostBlockedHandler); }; } private function centerOnStage():void{ if (stage){ x = (stage.stageWidth / 2); y = (stage.stageHeight / 2); }; } public function set movieId(_arg1:String):void{ _movieId = _arg1; } public function get encryptionKey():String{ return (_encryptionKey); } private function initButtons():void{ if (viewLatestButton){ viewLatestButton.addEventListener(MouseEvent.CLICK, officialVersionClickHandler); }; if (viewAuthorizedButton){ viewAuthorizedButton.addEventListener(MouseEvent.CLICK, officialVersionClickHandler); }; if (closeButton){ closeButton.addEventListener(MouseEvent.CLICK, closeButtonClickHandler); }; } public function connect():void{ API.setVersion(_movieVersion); API.connect(root.loaderInfo, _movieId, _encryptionKey); visible = true; if (showConnectingPopup){ gotoAndStop("connecting"); }; } public function get useErrorPopup():Boolean{ return (_useErrorPopup); } private function errorTimerHandler(_arg1:TimerEvent):void{ if (errorDialog){ errorDialog.gotoAndPlay("closeme"); } else { clear(); }; } function frame7(){ initButtons(); } public function get movieId():String{ return (_movieId); } public function get useMedalPopup():Boolean{ return (!((_medalPopup == null))); } function frame8(){ initButtons(); } function frame1(){ stop(); } } }//package com.newgrounds.components
Section 13
//FlashAd (com.newgrounds.components.FlashAd) package com.newgrounds.components { import com.newgrounds.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class FlashAd extends Sprite { private var _adURLLoader:URLLoader; private var _ad:Loader; private var _adRect:Sprite; private var _mask:Shape; private var _showBackground:Boolean; public var background:MovieClip; private static const REMOVED_FROM_STAGE:String = "removedFromStage"; private static const DEBUG_AD_URL:String = "http://www.ngads.com/adtest.php"; private static var _adResetTime:uint = 0; private static var _adURL:URLRequest; public function FlashAd(_arg1:Boolean=true){ if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; _adRect = new Sprite(); _adRect.graphics.beginFill(0); _adRect.graphics.moveTo(0, 0); _adRect.graphics.lineTo(300, 0); _adRect.graphics.lineTo(300, 250); _adRect.graphics.lineTo(0, 250); _adRect.graphics.lineTo(0, 0); _adRect.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(_adRect); _adRect.addChild(_mask); _adRect.visible = false; x = Math.round(x); y = Math.round(y); scaleX = 1; scaleY = 1; if (background){ if (background.ngLinkButton){ background.ngLinkButton.addEventListener(MouseEvent.CLICK, linkClickHandler); }; if (background.loadingClip){ background.loadingClip.visible = false; }; }; if (API.isFlashVersion(9, 0, 28)){ addEventListener(REMOVED_FROM_STAGE, onRemovedFromStage); }; if (API.adsApproved){ loadAdFeed(API.adFeedURL); } else { API.addEventListener(APIEvent.ADS_APPROVED, onAdsApproved, false, 0, true); }; this.showBackground = _arg1; } private function onAdFeedLoaded(_arg1:Event):void{ var _local2:URLLoader = URLLoader(_arg1.target); if (((_local2.data) && (!((_local2.data == ""))))){ loadAd((_local2.data as String)); } else { dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"))); if (((background) && (background.loadingClip))){ background.loadingClip.visible = false; }; }; } private function onAdFeedError(_arg1:Event):void{ trace("[NewgroundsAPI] :: Unable to load ad feed!"); if (((background) && (background.loadingClip))){ background.loadingClip.visible = false; }; } private function onAdError(_arg1:Event):void{ dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"))); removeAd(); } private function onAdLoaded(_arg1:Event):void{ _adRect.addChild(_ad); _ad.mask = _mask; _adRect.visible = true; if (background){ if (_showBackground){ _adRect.mask = background.adMask; }; if (background.loadingClip){ background.loadingClip.visible = false; }; }; trace("[NewgroundsAPI] :: Ad loaded!"); dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, true)); } public function get showBackground():Boolean{ return (_showBackground); } public function set showBackground(_arg1:Boolean):void{ _showBackground = _arg1; if (background){ background.visible = _arg1; _adRect.mask = (_arg1) ? background.adMask : null; }; } private function get hasAdElapsed():Boolean{ if (getTimer() >= _adResetTime){ _adResetTime = (getTimer() + ((1000 * 60) * 5)); return (true); }; return (false); } private function loadAdFeed(_arg1:String):void{ var adFeedURL = _arg1; _adURLLoader = new URLLoader(); _adURLLoader.addEventListener(Event.COMPLETE, onAdFeedLoaded); _adURLLoader.addEventListener(IOErrorEvent.IO_ERROR, onAdError); _adURLLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onAdError); if (!adFeedURL){ trace("[Newgrounds API] :: Invalid feed URL!"); return; }; if (hasAdElapsed){ if (adFeedURL.indexOf("?") > -1){ _adURL = new URLRequest(((adFeedURL + "&random=") + Math.random())); } else { _adURL = new URLRequest(((adFeedURL + "?random=") + Math.random())); }; }; try { _adURLLoader.load(_adURL); } catch(e:Error) { onAdError(null); }; if (((background) && (background.loadingClip))){ background.loadingClip.visible = true; }; } private function onAdsApproved(_arg1:APIEvent):void{ API.removeEventListener(APIEvent.ADS_APPROVED, onAdsApproved, false); if (_arg1.success){ loadAdFeed(API.adFeedURL); } else { trace("[NewgroundsAPI] :: No ad feed URL supplied to Newgrounds API ad!"); }; } private function loadAd(_arg1:String):void{ if (_ad){ removeAd(); }; _ad = new Loader(); _ad.contentLoaderInfo.addEventListener(Event.COMPLETE, onAdLoaded); _ad.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onAdError); _ad.load(new URLRequest(_arg1), new LoaderContext(false, new ApplicationDomain(null))); if (((background) && (background.loadingClip))){ background.loadingClip.visible = true; }; } public function removeAd():void{ removeEventListener(REMOVED_FROM_STAGE, onRemovedFromStage); if (((background) && (background.loadingClip))){ background.loadingClip.visible = false; }; if (_adURLLoader){ try { _adURLLoader.close(); } catch(e:Error) { }; }; if (_adRect){ _adRect.visible = false; }; 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 onRemovedFromStage(_arg1:Event):void{ removeAd(); } private function linkClickHandler(_arg1:MouseEvent):void{ API.loadNewgrounds(); } } }//package com.newgrounds.components
Section 14
//MedalPopup (com.newgrounds.components.MedalPopup) package com.newgrounds.components { import com.newgrounds.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; public class MedalPopup extends MovieClip { public var medalValueText:TextField; public var medalContainer:Sprite; private var _popDelay:Timer; private var _initialized:Boolean; private var _medalIcon:Bitmap; public var medalNameText:TextField; private var _medal:Medal; private var _medalQueue:Array; public function MedalPopup(){ _medalQueue = []; _popDelay = new Timer(3000, 1); super(); addFrameScript(0, frame1, 9, frame10, 18, frame19); if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; visible = false; addEventListener(Event.ENTER_FRAME, enterFrameHandler); stop(); API.addEventListener(APIEvent.MEDAL_UNLOCKED, onMedalUnlocked, false, 0, true); _popDelay.addEventListener(TimerEvent.TIMER, timerHandler); } private function timerHandler(_arg1:TimerEvent):void{ if (((_medalIcon) && (_medalIcon.parent))){ _medalIcon.parent.removeChild(_medalIcon); _medalIcon = null; }; gotoAndPlay("medal_hide"); _popDelay.stop(); } private function showMedalInfo():void{ if (!_medal){ return; }; if (medalContainer){ _medalIcon = _medal.createIconBitmap(); medalContainer.addChild(_medalIcon); }; if (medalNameText){ medalNameText.text = _medal.name; }; if (medalValueText){ medalValueText.text = (_medal.value.toString() + "pts"); }; _popDelay.start(); stop(); } function frame10(){ showMedalInfo(); stop(); } public function get popupTime():Number{ return ((_popDelay.delay / 1000)); } private function onMedalUnlocked(_arg1:APIEvent):void{ if (((((_arg1.success) && (_arg1.data))) && ((_arg1.data is Medal)))){ _medalQueue.push(Medal(_arg1.data)); }; } private function enterFrameHandler(_arg1:Event):void{ var myIndex:uint; var topIndex:uint; var event = _arg1; if (((_medalQueue.length) && (!(visible)))){ _medal = _medalQueue.pop(); _popDelay.start(); gotoAndPlay("medal_show"); visible = true; }; if (((visible) && (parent))){ try { myIndex = parent.getChildIndex(this); topIndex = (parent.numChildren - 1); if (myIndex != topIndex){ parent.setChildIndex(this, topIndex); }; } catch(error:Error) { }; }; } function frame1(){ stop(); } function frame19(){ stop(); visible = false; } public function set popupTime(_arg1:Number):void{ if (isNaN(_arg1)){ _arg1 = 3; }; _popDelay.delay = (_arg1 * 1000); } } }//package com.newgrounds.components
Section 15
//PreloaderBar (com.newgrounds.components.PreloaderBar) package com.newgrounds.components { import flash.display.*; import flash.events.*; import flash.utils.*; public class PreloaderBar extends MovieClip { private var _autoPlay:Boolean;// = false public var playButton:DisplayObject; public var bar:DisplayObject; public function PreloaderBar(){ addFrameScript(51, frame52); if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; gotoAndStop("LOAD"); if (bar){ bar.scaleX = 0; }; addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function playButtonClicked(_arg1:MouseEvent):void{ startMovie(); } public function get autoPlay():Boolean{ return (_autoPlay); } public function set autoPlay(_arg1:Boolean):void{ _autoPlay = _arg1; } public function onPlayButtonClicked(_arg1:MouseEvent):void{ startMovie(); } function frame52(){ stop(); if (this.playButton){ this.playButton.addEventListener(MouseEvent.CLICK, onPlayButtonClicked); } else { startMovie(); }; } private function startMovie():void{ if (((root) && ((root is MovieClip)))){ MovieClip(root).play(); }; dispatchEvent(new Event(Event.COMPLETE)); } private function enterFrameHandler(_arg1:Event):void{ var _local2:Number; if (((root) && (root.loaderInfo))){ if ((root is MovieClip)){ MovieClip(root).stop(); }; _local2 = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal); if (bar){ bar.scaleX = _local2; }; if (_local2 == 1){ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); if (autoPlay){ startMovie(); } else { gotoAndPlay("COMPLETE_STOP"); }; }; }; } private function playButtonReady():void{ stop(); if (playButton){ playButton.addEventListener(MouseEvent.CLICK, playButtonClicked); } else { startMovie(); }; } } }//package com.newgrounds.components
Section 16
//API (com.newgrounds.API) package com.newgrounds { import flash.display.*; import flash.events.*; import flash.utils.*; import com.newgrounds.components.*; import com.adobe.serialization.json.*; import flash.net.*; import com.adobe.crypto.*; import com.adobe.images.*; import flash.system.*; public class API { private static const COMMANDS_WIKI_URL:String = "http://www.newgrounds.com/wiki/flashapi/commands/"; 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"; public static const VERSION:String = "2.3"; private static var connected:Boolean; private static var user_id:uint; private static var _preloadComplete:Boolean = false; private static var user_email:String; private static var _movieId:String; private static var _saveFileId:uint; private static var _isMetadataLoaded:Boolean = false; private static var publisher_id:uint; private static var _imageFilePath:String; private static var _saveFilePath:String; private static var ad_url:String; private static var _debug:Boolean = true; private static var _saveGroups:Array = []; private static var do_echo:Boolean = false; private static var session_id:String; public static var errors:Dictionary = APIError.init_codes(); private static var timeoutTimer:Timer = new Timer(8000, 1); private static var _medals:Array; private static var user_name:String; 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 _host:String; private static var _connected:Boolean = false; private static var _userpageFormat:String; private static var _scoreboards:Array = new Array(); private static var _eventDispatcher:EventDispatcher = new EventDispatcher(); private static var compressor:BaseN = new BaseN(compression_radix); private static var score_page_counts:Object = new Object(); private static var _adsApproved:Boolean = false; private static var version:String; public static var periods:Object = getPeriodAliases(); private static var _encryptionKey:String; 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:Dictionary = new Dictionary(); private static var _trackerId:uint; private static var _saveFile:SaveFile; private static var userpage_format:String; private static var _saveGroupId:uint; public static function loadUserPage(_arg1:uint=0, _arg2:String=null):Boolean{ var _local3:String; if ((((_arg1 == 0)) && ((_arg2 == null)))){ if (hasUserSession()){ _arg1 = user_id; _arg2 = user_name; } else { return (false); }; }; if (publisher_id == 1){ _local3 = (("http://" + _arg2.toLowerCase()) + ".newgrounds.com"); navigateToURL(new URLRequest(_local3), "_blank"); return (true); }; if (userpage_format){ _local3 = userpage_format; _local3 = _local3.split(":user_id:").join(_arg1.toString()); _local3 = _local3.split(":user_name:").join(escape(_arg2)); navigateToURL(new URLRequest(_local3), "_blank"); return (true); }; return (false); } 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); } private static function onCommandError(_arg1:Event):void{ var _local2:SmartURLLoader = SmartURLLoader(_arg1.target); var _local3:uint; while (_local3 < _preloadAssets.length) { if (_preloadAssets[_local3] == _local2){ _preloadAssets.splice(_local3, 1); break; }; _local3++; }; } 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 unlockMedal(_arg1:String):void{ var _local3:Object; var _local4:Object; if (((!(_arg1)) || ((_arg1 == "")))){ sendError({command_id:getCommandID("unlockMedal")}, new APIError("MISSING_PARAM", "missing required medal name")); return; }; var _local2:Medal = getMedalByName(_arg1); if (!_local2){ sendMessage(("No medal with name: " + _arg1)); return; }; if (((hasUserSession()) || (debugMode))){ sendMessage((("Attempting to unlock '" + _local2.name) + "'")); if (_local2.unlocked){ sendWarning((("Medal '" + _local2.name) + "' is already unlocked!")); return; }; _local3 = new Object(); _local3.medal_id = _local2.id; sendSecureCommand("unlockMedal", _local3); } else { sendMessage(("Locally unlocking " + _local2.name)); if (_local2.unlocked){ sendWarning((("Medal '" + _local2.name) + "' is already unlocked!")); return; }; _local2.unlocked = true; _local4 = loadLocal("medals_unlocked"); if (!_local4){ _local4 = new Object(); }; _local4[_local2.id.toString()] = true; saveLocal("medals_unlocked", _local4); callListener(APIEvent.MEDAL_UNLOCKED, true, _local2); }; } public static function setVersion(_arg1:String):void{ if (((_arg1) && (!((_arg1 == ""))))){ version = _arg1; }; } public static function isFlashVersion(_arg1:uint, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0):Boolean{ var _local6:Array = Capabilities.version.split(" ")[1].split(","); var _local7:Array = arguments; var _local8:uint; 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 getUserID():uint{ return (user_id); } private static function getHost():String{ return (_host); } public static function hasUserEmail():Boolean{ return (((!((user_email == null))) && (!((user_email == ""))))); } private static function uncompressHex(_arg1:String):String{ var _local4:uint; var _local6:String; var _local7:uint; var _local8:String; var _local2:uint = uint(_arg1.charAt(0)); var _local3 = ""; var _local5:uint = 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 getMedalByName(_arg1:String):Medal{ var _local2:Medal; for each (_local2 in _medals) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } private static function callListener(_arg1:String, _arg2:Boolean=true, _arg3=undefined):void{ dispatchEvent(new APIEvent(_arg1, _arg2, _arg3)); } public static function loadLocal(_arg1:String):Object{ var sharedObj:SharedObject; var save_id = _arg1; try { if (!sharedObjects[save_id]){ sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id)); }; sharedObj = sharedObjects[save_id]; if (((((sharedObj) && (sharedObj.data))) && (sharedObj.data[save_id]))){ return (decodeData(sharedObj.data[save_id])); } else { return (null); }; } catch(e:Error) { sendWarning(("loadLocal ERROR: " + e)); }; return (null); } private static function populateScoreBoards(_arg1:Array):void{ _scoreboards = []; var _local2:uint; while (_local2 < _arg1.length) { _scoreboards.push(new ScoreBoard(_arg1[_local2].id, _arg1[_local2].name, "")); _local2++; }; } public static function set debugMode(_arg1:Boolean):void{ _debug = _arg1; } public static function createAd():FlashAd{ sendMessage("You may see a security sandbox violation. This is normal!"); return (new FlashAd()); } private static function populateSaveGroups(_arg1:Array):void{ var _local3:SaveGroup; _saveGroups = []; var _local2:uint; while (_local2 < _arg1.length) { _local3 = SaveGroup.createFromObject(_arg1[_local2]); _saveGroups.push(_local3); _local2++; }; } public static function getSaveGroupById(_arg1:uint):SaveGroup{ if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){ sendWarning("No save groups found"); return (null); }; var _local2:uint; while (_local2 < _saveGroups.length) { if (_saveGroups[_local2].id == _arg1){ return (_saveGroups[_local2]); }; _local2++; }; return (null); } private static function dispatchEvent(_arg1:Event):void{ _eventDispatcher.dispatchEvent(_arg1); echo(("Fired Event: " + _arg1.type)); } public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } 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); } public static function get adFeedURL():String{ return (ad_url); } public static function setUserEmail(_arg1:String):void{ user_email = _arg1; } public static function hasUserSession():Boolean{ return (((((!((session_id == null))) && (!((session_id == ""))))) && (!((publisher_id == 0))))); } private static function echo(_arg1:String):void{ if (do_echo){ trace(_arg1); }; } public static function getOfficialURL():String{ var _local1:String = ((((((GATEWAY_URL + "?tracker_id=") + _movieId) + "&command_id=") + getCommandID("loadOfficalVersion")) + "&seed=") + Math.random()); if (debugMode){ _local1 = (_local1 + "&debug=1"); }; return (_local1); } public static function executeSaveQuery(_arg1:SaveGroupQuery):void{ sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.groupId, query:JSON.encode(_arg1.toObject())}, false, null, _arg1); trace(JSON.encode(_arg1.toObject())); } public static function getScoreBoardById(_arg1:uint):ScoreBoard{ var _local2:ScoreBoard; for each (_local2 in _scoreboards) { if (_local2.id == _arg1){ return (_local2); }; }; return (null); } private static function getPeriodAliases():Object{ var _local2:String; var _local1:Object = new Object(); for (_local2 in period_aliases) { _local1[period_aliases[_local2].alias] = _local2; }; return (_local1); } private static function compressHex(_arg1:String):String{ var _local2:uint = (_arg1.length % 6); var _local3 = ""; var _local4:uint; 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 get preloadComplete():Boolean{ return (_preloadComplete); } private static function assertConnected():Boolean{ if (!_connected){ return (false); }; return (true); } public static function sendSecureCommand(_arg1:String, _arg2:Object, _arg3:Object=null, _arg4:Object=null, _arg5=null):void{ if (((((!(debugMode)) && (!(hasUserSession())))) && (!(hasUserEmail())))){ sendError({command_id:getCommandID(_arg1)}, new APIError("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(); }; var _local6 = ""; var _local7:uint; while (_local7 < 16) { _local6 = (_local6 + compression_radix.charAt(Math.floor((Math.random() * compression_radix.length)))); _local7++; }; if (((debugMode) && (!(session_id)))){ _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 = _local6; _arg2.command_id = getCommandID(_arg1); var _local8:String = MD5.hash(_local6); var _local9:String = RC4.encrypt(JSON.encode(_arg2), _encryptionKey); var _local10:String = (_local8 + _local9); _arg3.secure = compressHex(_local10); sendCommand("securePacket", _arg3, false, _arg4, _arg5); } private static function sendError(_arg1:Object, _arg2:APIError):void{ trace(((((("[NewgroundsAPI ERROR] :: " + getCommandName(_arg1.command_id)) + "() - ") + _arg2.name) + ":\n\t\t\t\t") + _arg2.message)); } public static function getUserName():String{ return (user_name); } private static function getCommandName(_arg1:String):String{ return (_arg1); } public static function sendMessage(_arg1:String, _arg2:Boolean=false):void{ var _local3:String = ("[NewgroundsAPI] :: " + _arg1); trace(_local3); } public static function newSaveFile(_arg1:String):SaveFile{ var _local2:SaveGroup = getSaveGroupByName(_arg1); if (_local2){ return (new SaveFile(_local2)); }; sendError({command_id:"newSaveFile"}, new APIError("INVALID_SAVE_GROUP", (("'" + _local2) + "' is not a valid save group."))); return (null); } public static function get medals():Array{ return ((_medals) ? _medals.concat() : []); } public static function connectionTimeOut(_arg1:Event=null):void{ dispatchEvent(new APIEvent(APIEvent.API_CONNECTED, false, new APIError("CONNECTION_FAILED", "Connection to NewgroundsAPI gateway timed out."))); } 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=API\n\n" + _arg1))); } public static function getScoreBoardByName(_arg1:String):ScoreBoard{ var _local2:ScoreBoard; for each (_local2 in _scoreboards) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } 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 get debugMode():Boolean{ return (_debug); } public static function loadCustomLink(_arg1:String):void{ sendCommand("loadCustomLink", {host:getHost(), link:_arg1}, true); } public static function loadMySite():void{ sendCommand("loadMySite", {host:getHost()}, true); } public static function getTrackerID():uint{ return (_trackerId); } public static function get adsApproved():Boolean{ return (_adsApproved); } private static function sendCommand(_arg1:String, _arg2:Object, _arg3:Boolean=false, _arg4:Object=null, _arg5=null):void{ var _local7:String; var _local8:String; var _local9:String; if (((!(connected)) && (!((_arg1 == "connectMovie"))))){ _local7 = (("NewgroundsAPI." + _arg1) + "() - NewgroundsAPI.connectMovie() must be called before this command can be called\n"); fatalError(_local7, "connectMovie"); }; var _local6:SmartURLLoader = new SmartURLLoader(); _local6.addVariable("command_id", getCommandID(_arg1)); _local6.addVariable("tracker_id", _movieId); if (debugMode){ _local6.addVariable("debug", 1); }; if (_arg2){ for (_local8 in _arg2) { _local6.addVariable(_local8, _arg2[_local8]); }; }; if (_arg4){ for (_local9 in _arg4) { _local6.addFile(_local9, _arg4[_local9], _local9); }; }; if (_arg3){ _local6.method = URLRequestMethod.GET; } else { _local6.method = URLRequestMethod.POST; }; _local6.preventCache = true; if (_arg3){ _local6.openBrowser = true; _local6.method = URLRequestMethod.GET; } else { _local6.addEventListener(Event.COMPLETE, onCommandComplete); _local6.addEventListener(IOErrorEvent.IO_ERROR, onCommandError); _local6.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onCommandError); _local6.method = URLRequestMethod.POST; }; _local6.owner = _arg5; _local6.load(GATEWAY_URL); } public static function checkFilePrivledges(_arg1:SaveFile):void{ sendCommand("checkFilePrivs", {group:_arg1.groupId, filename:_arg1.name, user_id:(user_id) ? user_id : 0, publisher_id:publisher_id}); } public static function isPublishedHost():Boolean{ return (((!((getHost() == "localhost"))) && ((getHost().indexOf("file://") == -1)))); } public static function loadOfficialVersion():void{ navigateToURL(new URLRequest(getOfficialURL())); } public static function createSaveQuery(_arg1:String):SaveGroupQuery{ var _local2:SaveGroup = getSaveGroupByName(_arg1); if (_local2){ return (_local2.createQuery()); }; return (null); } public static function saveFile(_arg1:SaveFile, _arg2:Boolean=false):void{ var _local3:Object = _arg1.toObject(); _local3.user_name = user_name; _local3.overwrite = (_arg2) ? 1 : 0; var _local4:ByteArray = new ByteArray(); if ((_arg1.contents is ByteArray)){ _local4.writeByte(0); _local4.writeBytes(_arg1.contents); } else { _local4.writeByte(1); _local4.writeObject(_arg1.contents); }; _local4.compress(); var _local5:Object = new Object(); _local5.file = _local4; if (_arg1.thumbnail){ _local5.thumbnail = PNGEncoder.encode(_arg1.thumbnail); }; sendSecureCommand("saveFile", _local3, null, _local5, _arg1); } public static function getMedalById(_arg1:uint):Medal{ var _local2:Medal; for each (_local2 in _medals) { if (_local2.id == _arg1){ return (_local2); }; }; return (null); } public static function loadSaveFile(_arg1:Number, _arg2:Boolean=true){ var _local3:Object = {publisher_id:publisher_id, save_id:_arg1, get_contents:_arg2}; sendCommand("loadSaveFile", _local3); } public static function loadNewgrounds():void{ sendCommand("loadNewgrounds", {host:getHost()}, true); } public static function rateSaveFile(_arg1:SaveFile, _arg2:SaveRating, _arg3:Number):void{ sendSecureCommand("rateSaveFile", {group:_arg1.groupId, save_id:_arg1.id, rating_id:_arg2.id, vote:_arg3, user_id:user_id}, null, null, _arg1); } public static function IsCompatible():Boolean{ return (!((publisher_id == 0))); } public static function loadScores(_arg1:ScoreBoard, _arg2:String=null):void{ var _local3 = "loadScores"; if (!_arg1.id){ sendError({command_id:getCommandID(_local3)}, new APIError("MISSING_PARAM", "missing required ScoreBoard instance")); return; }; if (!hasUserSession()){ callListener(APIEvent.SCORES_LOADED, false, new APIError("SITE_ID_REQUIRED", (("Host '" + getHost()) + "' does not have high scores enabled"))); return; }; var _local4:Object = {}; _local4.publisher_id = publisher_id; _local4.period = _arg1.period; _local4.board = _arg1.id; _local4.num_results = _arg1.num_results; _local4.page = _arg1.page; if (((!(_arg2)) || ((_arg2 == "")))){ _local4.tag = _arg1.tag; } else { _local4.tag = _arg2; }; sendCommand(_local3, _local4); } public static function logCustomEvent(_arg1:String):void{ sendCommand("logCustomEvent", {host:getHost(), event:_arg1}); } public static function decodeData(_arg1:String){ return (JSON.decode(RC4.decrypt(uncompressHex(_arg1), _encryptionKey))); } public static function postScore(_arg1:String, _arg2:uint, _arg3:String=""):void{ if (((!(_arg1)) || ((_arg1 == "")))){ sendError({command_id:getCommandID("postScore")}, new APIError("MISSING_PARAM", "missing required parameter(s)")); return; }; if (_arg3 == null){ _arg3 = ""; }; sendSecureCommand("postScore", {user_name:user_name, board:_arg1, value:_arg2, publisher_id:publisher_id, tag:_arg3}); } private static function onCommandComplete(_arg1:Event):void{ var _local4:Object; var _local5:APIError; var _local2:SmartURLLoader = SmartURLLoader(_arg1.target); echo((("INPUT: \n" + _local2.response) + "\n")); var _local3:uint; while (_local3 < _preloadAssets.length) { if (_preloadAssets[_local3] == _local2){ _preloadAssets.splice(_local3, 1); break; }; _local3++; }; if (_local2.response){ _local4 = JSON.decode(_local2.response); } else { _local4 = {success:false}; }; if (!_local4.success){ trace(("Error: " + _local4)); _local5 = new APIError(_local4.error_code, _local4.error_msg); sendError(_local4, _local5); } else { _local4.owner = _local2.owner; doEvent(_local4); }; } public static function encodeData(_arg1:Object):String{ return (compressHex(RC4.encrypt(JSON.encode(_arg1), _encryptionKey))); } 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(Medal.createFromObject(_local3)); _local2++; }; }; trace("[NewgroundsAPI] :: Medals loaded!"); } private static function doEvent(_arg1:Object):void{ var _local2:String; var _local3:Object; var _local4:String; var _local5:Boolean; var _local6:ScoreBoard; var _local7:SaveFile; var _local8:Array; var _local9:*; var _local10:String; var _local11:Medal; var _local12:SaveGroup; var _local13:uint; var _local14:Object; var _local15:uint; 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(APIEvent.API_CONNECTED, _arg1.success, {title:_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(APIEvent.ADS_APPROVED, false, new APIError("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(APIEvent.ADS_APPROVED, false, new APIError("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!"); }; _adsApproved = true; callListener(APIEvent.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(APIEvent.HOST_BLOCKED, true, {real_url:unescape(_arg1.movie_url), url:getOfficialURL()}); }; 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(APIEvent.NEW_VERSION_AVAILABLE, true, {version:_arg1.movie_version, real_url:unescape(_arg1.movie_url), url:getOfficialURL()}); }; if (_arg1.request_portal_url){ sendCommand("setPortalID", {portal_url:_host}); }; sendCommand("preloadSettings", {publisher_id:publisher_id, user_id:user_id}); break; case "preloadSettings": if (_arg1.medals){ populateMedals(_arg1.medals); if (((!(hasUserSession())) && (!(debugMode)))){ echo("Checking for SharedObject Medals..."); _local9 = loadLocal("medals_unlocked"); if (_local9){ for (_local10 in _local9) { if (_local9[_local10]){ _local11 = getMedalById(uint(_local10)); echo(("Now unlocking " + _local11.name)); _local11.unlocked = true; }; }; }; }; }; if (_arg1.save_groups){ populateSaveGroups(_arg1.save_groups); }; if (_arg1.save_file_path){ _saveFilePath = (_arg1.save_file_path + "/"); }; if (_arg1.image_file_path){ _imageFilePath = (_arg1.image_file_path + "/"); }; if (_arg1.score_boards){ populateScoreBoards(_arg1.score_boards); }; trace("[NewgroundsAPI] :: Metadata loaded!"); callListener(APIEvent.METADATA_LOADED); if (((_saveFileId) && (_saveGroupId))){ _local12 = getSaveGroupById(_saveGroupId); if (_local12){ callListener(APIEvent.FILE_REQUESTED, true, {save_id:_saveFileId, group:_local12}); }; }; _preloadComplete = true; break; case "logCustomEvent": if (_arg1.success){ sendMessage((("Event '" + _arg1.event) + "' was logged.")); }; callListener(APIEvent.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; }; }; _local6 = getScoreBoardById(_arg1.board); if (_local6){ sendMessage((((((_local4 + " posted ") + _arg1.value) + " to '") + _local6.name) + "'")); }; _local3 = {score:_arg1.score, value:_arg1.value, username:_local4}; }; callListener(APIEvent.SCORE_POSTED, _arg1.success, _local3); break; case "loadScores": _local3 = new Object(); _local6 = getScoreBoardById(_arg1.board); if (_local6){ _local6.setScores(_arg1.scores, _arg1.period, _arg1.page, _arg1.num_results); }; callListener(APIEvent.SCORES_LOADED, _arg1.success, _local6); break; case "unlockMedal": if (_medals){ _local11 = getMedalByName(_arg1.medal_name); if (_local11.unlocked){ return; }; _local11.unlocked = true; callListener(APIEvent.MEDAL_UNLOCKED, _arg1.success, _local11); }; break; case "getMedals": populateMedals(_arg1.medals); callListener(APIEvent.MEDALS_LOADED, _arg1.success, _local3); break; case "loadSaveFile": _local12 = getSaveGroupById(_arg1.group_id); _local7 = new SaveFile(_local12); _local7.id = _arg1.file.save_id; _local7.name = _arg1.file.filename; _local7.fileUrl = (_saveFilePath + _arg1.file.file); _local7.thumbnailUrl = (_imageFilePath + _arg1.file.thumb); _local7.authorName = _arg1.file.user_name; _local7.authorId = _arg1.file.user_id; _local7.description = _arg1.file.description; if (((_arg1.file.keys) && (_arg1.file.keys.length))){ _local13 = 0; while (_local13 < _arg1.file.keys.length) { _local7.setKey(_arg1.file.keys[_local13].id, _arg1.file.keys[_local13].value); _local13++; }; }; if (((_arg1.file.ratings) && (_arg1.file.ratings.length))){ _local13 = 0; while (_local13 < _arg1.file.ratings.length) { _local7.setRating(_arg1.file.ratings[_local13].id, _arg1.file.ratings[_local13].votes, _arg1.file.ratings[_local13].score); _local13++; }; }; if (_arg1.get_contents){ _local7.loadContents(); }; callListener(APIEvent.FILE_INITIALIZED, _arg1.success, _local7); break; case "lookupSaveFiles": _local8 = []; _local13 = 0; while (_local13 < _arg1.files.length) { _local14 = _arg1.files[_local13]; _local7 = new SaveFile(getSaveGroupById(_arg1.group_id)); _local7.name = _local14.filename; _local7.id = _local14.save_id; _local7.description = _local14.description; _local7.thumbnailUrl = (_imageFilePath + _local14.thumb); _local7.fileUrl = (_saveFilePath + _local14.file); _local7.authorName = _local14.user_name; _local7.authorId = _local14.user_id; if (((_local14.keys) && (_local14.keys.length))){ _local15 = 0; while (_local15 < _local14.keys.length) { _local7.setKey(_local14.keys[_local15].id, _local14.keys[_local15].value); _local15++; }; }; if (((_local14.ratings) && (_local14.ratings.length))){ _local15 = 0; while (_local15 < _local14.ratings.length) { _local7.setRating(_local14.ratings[_local15].id, _local14.ratings[_local15].votes, _local14.ratings[_local15].score); _local15++; }; }; _local8.push(_local7); _local13++; }; _arg1.owner.dispatchEvent(new APIEvent(APIEvent.QUERY_COMPLETE, _arg1.success, _local8)); break; case "rateSaveFile": _local7 = _arg1.owner; if (_arg1.success){ _local7.setRating(_arg1.rating_id, _arg1.votes, _arg1.score); }; _local7.dispatchEvent(new APIEvent(APIEvent.VOTE_COMPLETE, _arg1.success, _arg1)); break; case "saveFile": _local3 = {save_id:_arg1.save_id, filename:_arg1.filename, file_url:_arg1.file_url, thumbnail:_arg1.thumbnail, icon:_arg1.icon}; _arg1.owner.dispatchEvent(new APIEvent(APIEvent.FILE_SAVED, _arg1.success, _local3)); break; case "checkFilePrivs": _local3 = {filename:_arg1.filename, folder:_arg1.folder, can_read:_arg1.can_read, can_write:_arg1.can_write}; callListener(APIEvent.FILE_PRIVS_LOADED, _arg1.success, _local3); break; }; } public static function loadMedals():void{ if (_medals){ dispatchEvent(new APIEvent(APIEvent.MEDALS_LOADED, true, medals)); return; }; var _local1:Object = new Object(); if (hasUserSession()){ _local1.publisher_id = publisher_id; _local1.user_id = user_id; }; sendCommand("getMedals", _local1); } public static function connect(_arg1:LoaderInfo, _arg2:String, _arg3:String=null):void{ var loaderInfo = _arg1; var m_id = _arg2; var encrypt_key = _arg3; if (!loaderInfo){ fatalError("Null loaderInfo paremeter passed in to connectMovie!", ""); return; }; try { if (loaderInfo.loader){ loaderInfo = loaderInfo.loader.loaderInfo; }; } catch(error:Error) { }; _host = loaderInfo.url; if ((((_host.indexOf("http://") > -1)) || ((_host.indexOf("https://") > -1)))){ _host = _host.split("/")[2].toLowerCase(); } else { _host = "localhost"; }; var flashVars:Object = loaderInfo.parameters; if (isPublishedHost()){ debugMode = false; }; if (((!(debugMode)) && (flashVars))){ if (flashVars.NewgroundsAPI_UserName){ user_name = flashVars.NewgroundsAPI_UserName; }; if (flashVars.NewgroundsAPI_UserID){ user_id = flashVars.NewgroundsAPI_UserID; }; if (flashVars.NewgroundsAPI_PublisherID){ publisher_id = flashVars.NewgroundsAPI_PublisherID; } else { publisher_id = 1; }; if (flashVars.NewgroundsAPI_UserpageFormat){ _userpageFormat = flashVars.NewgroundsAPI_UserpageFormat; }; if (flashVars.NewgroundsAPI_SessionID){ session_id = flashVars.NewgroundsAPI_SessionID; }; if (flashVars.NewgroundsAPI_SaveGroupID){ _saveGroupId = flashVars.NewgroundsAPI_SaveGroupID; }; if (flashVars.NewgroundsAPI_SaveFileID){ _saveFileId = flashVars.NewgroundsAPI_SaveFileID; }; } else { publisher_id = 1; session_id = "D3bu64p1U53R"; user_id = 10; user_name = "API-Debugger"; }; if (connected){ return; }; timeoutTimer.start(); if (!m_id){ fatalError("NewgroundsAPI.connectMovie() - missing required movieId parameter", "connectMovie"); }; _movieId = String(m_id); _trackerId = uint(_movieId.substring(0, _movieId.indexOf(":"))); _encryptionKey = encrypt_key; connected = true; sendCommand("connectMovie", {host:getHost(), movie_version:version}); } public static function saveLocal(_arg1:String, _arg2:Object, _arg3:uint=0):void{ var sharedObj:SharedObject; var save_id = _arg1; var save_data = _arg2; var size_allocation = _arg3; try { if (!sharedObjects[save_id]){ sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id)); }; sharedObj = sharedObjects[save_id]; sharedObj.data[save_id] = encodeData(save_data); sharedObj.flush(); } catch(e:Error) { sendWarning(("saveLocal ERROR: " + e)); }; } 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 getSaveGroupByName(_arg1:String):SaveGroup{ if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){ sendWarning("No save groups found"); return (null); }; var _local2:uint; while (_local2 < _saveGroups.length) { if (_saveGroups[_local2].name == _arg1){ return (_saveGroups[_local2]); }; _local2++; }; return (null); } private static function getCommandID(_arg1:String):String{ return (_arg1); } public static function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public static function isNewgrounds():Boolean{ return ((((publisher_id == 1)) || ((getHost().toLowerCase().indexOf("ungrounded.net") > -1)))); } public static function isConnected():Boolean{ return (_connected); } } }//package com.newgrounds
Section 17
//APIError (com.newgrounds.APIError) package com.newgrounds { import flash.utils.*; public class APIError { public var alias:String; public var message:String; public var name:String; public var code:Number;// = 0 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 APIError(_arg1, _arg2:String){ if ((_arg1 is String)){ _arg1 = error_codes[_arg1]; } else { if (!(_arg1 is uint)){ _arg1 = 0; }; }; code = _arg1; message = _arg2; name = error_names[_arg1]; alias = aliases[_arg1]; } public function isError():Boolean{ return (true); } private static function init_names():Array{ var _local3:Array; var _local4:uint; var _local5:String; var _local1:Array = new Array(); var _local2:uint; 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 = new Dictionary(); var _local2:uint; while (_local2 < aliases.length) { _local1[aliases[_local2]] = _local2; _local2++; }; return (_local1); } } }//package com.newgrounds
Section 18
//APIEvent (com.newgrounds.APIEvent) package com.newgrounds { import flash.events.*; public class APIEvent extends Event { private var _error:APIError; private var _success:Boolean; private var _target; private var _data; public static const AD_ATTACHED:String = "adAttached"; public static const FILE_PRIVS_LOADED:String = "filePrivsLoaded"; public static const ADS_APPROVED:String = "adsApproved"; public static const MEDAL_UNLOCKED:String = "medalUnlocked"; public static const MEDALS_LOADED:String = "medalsLoaded"; public static const FILE_REQUESTED:String = "fileRequested"; public static const METADATA_LOADED:String = "metadataLoaded"; public static const NEW_VERSION_AVAILABLE:String = "newVersionAvailable"; public static const API_CONNECTED:String = "movieConnected"; public static const EVENT_LOGGED:String = "eventLogged"; public static const FILE_SAVED:String = "fileSaved"; public static const SCORE_POSTED:String = "scorePosted"; public static const VOTE_COMPLETE:String = "voteComplete"; public static const FILE_LOADED:String = "fileLoaded"; public static const QUERY_COMPLETE:String = "queryComplete"; public static const SCORES_LOADED:String = "scoresLoaded"; public static const HOST_BLOCKED:String = "hostBlocked"; public static const FILE_INITIALIZED:String = "fileInitialized"; public function APIEvent(_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 19
//BaseN (com.newgrounds.BaseN) package com.newgrounds { import flash.utils.*; public class BaseN { private var _hashVal:Dictionary; private var _hashIndex:String; private var _base:Number; public function BaseN(_arg1:String=null){ if (_arg1){ _hashIndex = _arg1; } else { _hashIndex = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/"; }; _base = _hashIndex.length; _hashVal = new Dictionary(); var _local2:uint; while (_local2 < _base) { _hashVal[_hashIndex.charAt(_local2)] = _local2; _local2++; }; } public function encode(_arg1:Number, _arg2:uint=1):String{ var _local3:String = _arg1.toString(); var _local4 = ""; if (_local3.charAt(0) == "-"){ _local4 = "-"; _local3 = _local3.substring(1); }; var _local5:Array = _local3.split(".", 2); _local4 = (_local4 + baseNEncoder(_local5[0], _arg2)); if (_local5.length > 1){ _local4 = (_local4 + ("." + baseNEncoder(_local5[1]))); }; return (_local4); } private function baseNDecoder(_arg1:String):uint{ var _local2:uint; var _local3:uint; while (_local3 < _arg1.length) { _local2 = (_local2 * _base); _local2 = (_local2 + _hashVal[_arg1.charAt(_local3)]); _local3++; }; return (_local2); } public function decode(_arg1:String):Number{ var _local2 = ""; if (_arg1.charAt(0) == "-"){ _local2 = "-"; _arg1 = _arg1.substring(1); }; var _local3:Array = _arg1.split(".", 2); _local2 = (_local2 + baseNDecoder(_local3[0])); if (_local3.length > 1){ _local2 = (_local2 + "."); _local2 = (_local2 + baseNDecoder(_local3[1])); }; return (Number(_local2)); } private function baseNEncoder(_arg1:uint, _arg2:uint=1):String{ var _local3 = ""; var _local4:uint = _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 20
//Medal (com.newgrounds.Medal) package com.newgrounds { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class Medal { private var _unlocked:Boolean;// = false private var _iconLoader:Loader; private var _difficultyId:uint; private var _icon:BitmapData; private var _value:uint; private var _iconUrl:URLRequest; private var _name:String; private var _id:uint; private static const DIFFICULT_NAMES:Array = [null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal"]; private static const DEFAULT_ICON:BitmapData = new BitmapData(50, 50, false, 0); public function Medal(_arg1:uint, _arg2:String, _arg3:uint, _arg4:uint, _arg5:Boolean, _arg6:String){ var id = _arg1; var name = _arg2; var value = _arg3; var difficulty = _arg4; var unlocked = _arg5; var iconUrl = _arg6; _icon = DEFAULT_ICON; super(); _id = id; _name = name; _value = value; _difficultyId = difficulty; _unlocked = unlocked; if (iconUrl){ _iconUrl = new URLRequest(iconUrl); _iconLoader = new Loader(); _iconLoader.contentLoaderInfo.addEventListener(Event.INIT, onIconLoaderInit); _iconLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIconLoaderError); _iconLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onIconLoaderError); _iconLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onIconLoaderComplete); try { _iconLoader.load(_iconUrl, new LoaderContext(true)); } catch(e:Error) { onIconLoaderError(null); }; }; } public function get icon():BitmapData{ return (_icon); } 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 = (_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){ API.unlockMedal(_name); }; } private function onIconLoaderError(_arg1:IOErrorEvent):void{ trace((((("[NewgroundsAPI WARNING] :: Failed to load medal icon for " + name) + " (") + _iconUrl.url.split("/").pop()) + ")")); _iconLoader.unload(); _iconLoader = null; } private function onIconLoaderInit(_arg1:Event):void{ } public function get unlocked():Boolean{ return (_unlocked); } public function createIconBitmap():Bitmap{ return (new Bitmap(icon)); } public function toString():String{ return (_name); } public function get value():uint{ return (_value); } public function get difficultyId():uint{ return (_difficultyId); } public function get difficulty():String{ return (DIFFICULT_NAMES[_difficultyId]); } public static function createFromObject(_arg1:Object):Medal{ return (new Medal(_arg1.medal_id, _arg1.medal_name, _arg1.medal_value, _arg1.medal_difficulty, _arg1.medal_unlocked, _arg1.medal_icon)); } } }//package com.newgrounds
Section 21
//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 = new String(""); var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); var _local4:uint; 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 = strToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToHex(_local5)); } private static function hexToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:uint = ((_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 = strToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (_local5); } public static function decrypt(_arg1:String, _arg2:String):String{ var _local3:Array = hexToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToStr(_local5)); } private static function strToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:uint; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function calculate(_arg1:Array, _arg2:Array):Array{ var _local6:uint; var _local7:uint; var _local8:uint; var _local10:uint; initialize(_arg2); var _local3:uint; var _local4:uint; var _local5:Array = new Array(); var _local9:uint; 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 _local3:uint; var _local2:uint; var _local4:uint = _arg1.length; var _local5:uint; 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 = new String(""); var _local3:uint; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } } }//package com.newgrounds
Section 22
//SaveFile (com.newgrounds.SaveFile) package com.newgrounds { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; public class SaveFile extends EventDispatcher { private var _group:SaveGroup; private var _status:uint; private var _fileUrl:String; private var _ratings:Dictionary; private var _id:uint; private var _thumbnailUrl:String; private var _description:String; private var _keys:Dictionary; private var _authorName:String; private var _filename:String; private var _thumbnail:BitmapData; private var _authorId:uint; private var _contents; public function SaveFile(_arg1:SaveGroup){ _keys = new Dictionary(); _ratings = new Dictionary(); _group = _arg1; _description = ""; } public function get authorId():uint{ return (_authorId); } public function get name():String{ return (_filename); } public function set authorId(_arg1:uint):void{ _authorId = _arg1; } override public function toString():String{ var _local2:Object; var _local3:Object; var _local1 = (((((("Save File " + _filename) + " ID: ") + _id) + "\n ") + _description) + "\n"); for each (_local2 in _keys) { _local1 = (_local1 + ((((" " + _group.getKeyById(_local2.id).name) + ": ") + _local2.val) + "\n")); }; for each (_local3 in _ratings) { _local1 = (_local1 + ((((((" " + _group.getRatingById(_local3.id).name) + "\n Score: ") + _local3.score) + " Votes: ") + _local3.votes) + "\n")); }; return (_local1); } public function getRating(_arg1):Object{ var _local2:SaveRating; if ((_arg1 is String)){ _local2 = _group.getRatingByName(_arg1); } else { _local2 = _group.getRatingById(_arg1); }; if (_local2){ return (_ratings[_local2]); }; return (null); } public function set name(_arg1:String):void{ _filename = _arg1; } public function get contents(){ return (_contents); } public function get id():uint{ return (_id); } public function setKey(_arg1, _arg2):void{ var _local3:SaveKey; if ((_arg1 is String)){ _local3 = _group.getKeyByName(_arg1); } else { _local3 = _group.getKeyById(_arg1); }; if (_local3){ _keys[_local3] = {id:_local3.id, val:_arg2}; }; } public function setRating(_arg1, _arg2:Number, _arg3:Number):void{ var _local4:SaveRating; if ((_arg1 is String)){ _local4 = _group.getRatingByName(_arg1); } else { _local4 = _group.getRatingById(_arg1); }; if (_local4){ _ratings[_local4] = {id:_local4.id, name:_local4.name, votes:_arg2, score:_arg3}; }; } public function loadContents():void{ var _local1:SmartURLLoader; if (_fileUrl){ _local1 = new SmartURLLoader(); _local1.responseFormat = URLLoaderDataFormat.BINARY; _local1.addEventListener(Event.COMPLETE, onContentsLoaded); _local1.load(_fileUrl); }; } public function toObject():Object{ var _local2:Object; var _local1:Object = {group:groupId, filename:name, description:description, shared:true}; _local1.keys = []; for each (_local2 in _keys) { _local1.keys.push({id:_local2.id, value:_local2.val}); }; return (_local1); } public function getKey(_arg1){ var _local2:SaveKey; if ((_arg1 is String)){ _local2 = _group.getKeyByName(_arg1); } else { _local2 = _group.getKeyById(_arg1); }; if (_local2){ return (_keys[_local2]); }; return (null); } public function set fileUrl(_arg1:String):void{ _fileUrl = _arg1; } public function get groupName():String{ return (_group.name); } public function set contents(_arg1):void{ _contents = _arg1; } public function get authorName():String{ return (_authorName); } public function set id(_arg1:uint):void{ _id = _arg1; } public function loadAuthorPage(){ API.loadUserPage(_authorId, _authorName); } public function sendRating(_arg1:String, _arg2:Number):void{ var _local3:SaveRating = _group.getRatingByName(_arg1); if (!_local3){ trace((("[NewgroundsAPISaveFile] " + _arg1) + " is not a recognized save file")); return; }; if ((((_arg2 < _local3.minValue)) || ((_arg2 > _local3.maxValue)))){ trace(((("[NewgroundsAPISaveFile] Vote must be between " + _local3.minValue) + " and ") + _local3.maxValue)); return; }; _local3.voted = true; API.rateSaveFile(this, _local3, _arg2); } public function set thumbnailUrl(_arg1:String):void{ _thumbnailUrl = _arg1; } public function set thumbnail(_arg1:BitmapData):void{ if (_thumbnail){ _thumbnail.dispose(); }; _thumbnail = _arg1.clone(); } public function get groupType():uint{ return (_group.type); } public function get fileUrl():String{ return (_fileUrl); } public function get thumbnailUrl():String{ return (_thumbnailUrl); } public function get shared():Boolean{ return (true); } public function set authorName(_arg1:String):void{ _authorName = _arg1; } public function get thumbnail():BitmapData{ return (_thumbnail); } public function set description(_arg1:String):void{ _description = _arg1; } public function get groupId():uint{ return (_group.id); } public function get description():String{ return (_description); } public function save():void{ API.saveFile(this); } private function onContentsLoaded(_arg1:Event):void{ var _local2:ByteArray = _arg1.target.response; _local2.uncompress(); var _local3:uint = _local2.readUnsignedByte(); if (_local3 == 0){ _contents = new ByteArray(); _contents.writeBytes(_local2, 1); } else { _contents = _local2.readObject(); }; dispatchEvent(new APIEvent(APIEvent.FILE_LOADED, true, contents)); } } }//package com.newgrounds
Section 23
//SaveGroup (com.newgrounds.SaveGroup) package com.newgrounds { public class SaveGroup { private var _id:uint; private var _keys:Array; private var _type:uint; private var _name:String; private var _ratings:Array; private var _files:Array; public static const TYPE_SYSTEM:uint = 0; public static const TYPE_PRIVATE:uint = 1; public static const TYPE_MODERATED:uint = 3; public static const TYPE_PUBLIC:uint = 2; public function SaveGroup(_arg1:uint, _arg2:String, _arg3:uint){ _name = _arg2; _id = _arg1; _type = _arg3; _ratings = []; _keys = []; _files = []; } public function toString():String{ return ((((((("SaveGroup { name: " + _name) + ", id: ") + _id) + ", keys: ") + _keys) + "}")); } public function getRatingById(_arg1:uint):SaveRating{ var _local2:uint; while (_local2 < _ratings.length) { if (_ratings[_local2].id == _arg1){ return (_ratings[_local2]); }; _local2++; }; return (null); } public function getKeyByName(_arg1:String):SaveKey{ var _local2:uint; while (_local2 < _keys.length) { if (_keys[_local2].name == _arg1){ return (_keys[_local2]); }; _local2++; }; return (null); } public function get name():String{ return (_name); } public function getKeyById(_arg1:uint):SaveKey{ var _local2:uint; while (_local2 < _keys.length) { if (_keys[_local2].id == _arg1){ return (_keys[_local2]); }; _local2++; }; return (null); } public function addRating(_arg1:SaveRating):void{ _ratings.push(_arg1); } public function get id():uint{ return (_id); } public function createQuery():SaveGroupQuery{ return (new SaveGroupQuery(this)); } public function get keys():Array{ return (_keys.concat()); } public function getRatingByName(_arg1:String):SaveRating{ var _local2:uint; while (_local2 < _ratings.length) { if (_ratings[_local2].name == _arg1){ return (_ratings[_local2]); }; _local2++; }; return (null); } public function get ratings():Array{ return (_ratings.concat()); } public function get type():uint{ return (_type); } public function addKey(_arg1:SaveKey):void{ _keys.push(_arg1); } public static function createFromObject(_arg1:Object):SaveGroup{ var _local4:Object; var _local5:Object; var _local2:SaveGroup = new SaveGroup(_arg1.group_id, _arg1.group_name, _arg1.group_type); var _local3:uint; while (_local3 < _arg1.keys.length) { _local4 = _arg1.keys[_local3]; _local2.addKey(new SaveKey(_local4.id, _local4.name, _local4.type)); _local3++; }; _local3 = 0; while (_local3 < _arg1.ratings.length) { _local5 = _arg1.ratings[_local3]; _local2.addRating(new SaveRating(_local5.id, _local5.name, _local5.float, _local5.min, _local5.max)); _local3++; }; return (_local2); } } }//package com.newgrounds
Section 24
//SaveGroupQuery (com.newgrounds.SaveGroupQuery) package com.newgrounds { import flash.events.*; public class SaveGroupQuery extends EventDispatcher { private var _group:SaveGroup; private var _fileConditions:Array; private var _ratingConditions:Array; private var _resultsPerPage:uint; private var _sortConditions:Array; private var _lookupRatings:Array; private var _randomizeResults:Boolean; private var _lookupKeys:Array; private var _page:uint; private var _groupBy:Array; private var _keyConditions:Array; public static const UPDATED_ON:uint = 5; public static const TABLE_RATINGS:uint = 3; public static const TABLE_FILES:uint = 1; public static const TOTAL_VOTES:String = "votes"; public static const AUTHOR_ID:uint = 1; public static const FILE_STATUS:uint = 7; public static const TABLE_KEYS:uint = 2; public static const FILE_NAME:uint = 3; public static const SCORE:String = "score"; public static const TOTAL_VIEWS:uint = 6; public static const CREATED_ON:uint = 4; public static const FILE_ID:uint = 0; public static const AUTHOR_NAME:uint = 2; public function SaveGroupQuery(_arg1:SaveGroup){ _group = _arg1; reset(); } public function addKeyCondition(_arg1:String, _arg2:String, _arg3):void{ var _local4:SaveKey = _group.getKeyByName(_arg1); if (!_local4){ return; }; if (!checkValue(_arg3, _local4.type)){ return; }; _keyConditions.push({key_id:_local4.id, operator:_arg2, value:_arg3}); } public function sortOn(_arg1:uint, _arg2:Boolean=false):void{ addSortCondition(TABLE_FILES, _arg1, _arg2); } public function set isRandomized(_arg1:Boolean):void{ _randomizeResults = _arg1; } public function get isRandomized():Boolean{ return (_randomizeResults); } public function groupByRating(_arg1:String):void{ var _local2:SaveRating = _group.getRatingByName(_arg1); if (!_local2){ return; }; _groupBy.push({table:TABLE_RATINGS, field:_local2.id}); } public function execute():void{ API.executeSaveQuery(this); } public function get page():uint{ return (_page); } public function groupByKey(_arg1:String):void{ var _local2:SaveKey = _group.getKeyByName(_arg1); if (!_local2){ return; }; _groupBy.push({table:TABLE_KEYS, field:_local2.id}); } public function sortOnKey(_arg1:String, _arg2:Boolean=false):void{ addSortCondition(TABLE_KEYS, _group.getKeyByName(_arg1).id, _arg2); } public function toObject():Object{ var _local1:Object = {page:_page, num_results:_resultsPerPage}; if (isRandomized){ _local1.randomize = 1; }; if (((_fileConditions) && ((_fileConditions.length > 0)))){ _local1.file_conditions = _fileConditions; }; if (((_keyConditions) && ((_keyConditions.length > 0)))){ _local1.key_conditions = _keyConditions; }; if (((_ratingConditions) && ((_ratingConditions.length > 0)))){ _local1.rating_conditions = _ratingConditions; }; if (((_sortConditions) && ((_sortConditions.length > 0)))){ _local1.sort_conditions = _sortConditions; }; if (((_lookupKeys) && ((_lookupKeys.length > 0)))){ _local1.lookup_keys = _lookupKeys; }; if (((_lookupRatings) && ((_lookupRatings.length > 0)))){ _local1.lookup_ratings = _lookupRatings; }; if (((_groupBy) && ((_groupBy.length > 0)))){ _local1.group_by = _groupBy; }; return (_local1); } public function reset():void{ _fileConditions = []; _keyConditions = []; _ratingConditions = []; _sortConditions = []; _groupBy = []; _lookupKeys = []; _lookupRatings = []; _randomizeResults = false; _resultsPerPage = 20; _page = 1; } public function includeKey(_arg1:String):void{ var _local2:SaveKey = _group.getKeyByName(_arg1); if (_local2){ _lookupKeys.push(_local2.id); }; } private function checkValue(_arg1, _arg2:uint):Boolean{ return (true); } public function set page(_arg1:uint):void{ _page = _arg1; } public function addRatingCondition(_arg1:String, _arg2:String, _arg3, _arg4:String="score"):void{ var _local5:SaveRating = _group.getRatingByName(_arg1); if (!_local5){ return; }; _ratingConditions.push({rating_id:_local5.id, operator:_arg2, value:_arg3, column:_arg4}); } public function includeRating(_arg1:String):void{ var _local2:SaveRating = _group.getRatingByName(_arg1); if (_local2){ _lookupRatings.push(_local2.id); }; } public function sortOnRating(_arg1:String, _arg2:Boolean=false, _arg3:String="score"):void{ addSortCondition(TABLE_RATINGS, _group.getRatingByName(_arg1).id, _arg2, _arg3); } public function set resultsPerPage(_arg1:uint):void{ _resultsPerPage = _arg1; } public function excludeRating(_arg1:String):void{ var _local2:SaveRating = _group.getRatingByName(_arg1); var _local3:uint; while (_local3 < _lookupRatings.length) { if (_lookupRatings[_local3] == _local2.id){ _lookupRatings.splice(_local3, 1); return; }; _local3++; }; } public function addFileCondition(_arg1:uint, _arg2:String, _arg3):void{ _fileConditions.push({field:_arg1, operator:_arg2, value:_arg3}); } public function excludeKey(_arg1:String):void{ var _local2:SaveKey = _group.getKeyByName(_arg1); var _local3:uint; while (_local3 < _lookupKeys.length) { if (_lookupKeys[_local3] == _local2.id){ _lookupKeys.splice(_local3, 1); return; }; _local3++; }; } public function get resultsPerPage():uint{ return (_resultsPerPage); } public function get groupId():uint{ return (_group.id); } override public function toString():String{ return (""); } private function addSortCondition(_arg1:uint, _arg2:uint, _arg3:Boolean=false, _arg4=null):void{ var _local5:Object = {table:_arg1, field:_arg2, desc:_arg3}; if (_arg4){ _local5.extra = _arg4; }; _sortConditions.push(_local5); } public function groupBy(_arg1:uint):void{ _groupBy.push({table:TABLE_FILES, field:_arg1}); } public function get group():SaveGroup{ return (_group); } } }//package com.newgrounds
Section 25
//SaveKey (com.newgrounds.SaveKey) package com.newgrounds { public class SaveKey { private var _id:uint; private var _type:uint; private var _name:String; public static const TYPE_BOOLEAN:uint = 4; public static const TYPE_STRING:uint = 3; public static const TYPE_FLOAT:uint = 1; public static const TYPE_INTEGER:uint = 2; public function SaveKey(_arg1:uint, _arg2:String, _arg3:uint){ _id = _arg1; _name = _arg2; _type = _arg3; } public function isValueValid(_arg1):Boolean{ if (_type == TYPE_INTEGER){ return ((((_arg1 is int)) || ((_arg1 is uint)))); }; if (_type == TYPE_FLOAT){ return ((((((_arg1 is int)) || ((_arg1 is uint)))) || ((_arg1 is Number)))); }; if (_type == TYPE_STRING){ return ((_arg1 is String)); }; if (_type == TYPE_BOOLEAN){ return ((((((((_arg1 is Boolean)) || ((_arg1 === 0)))) || ((_arg1 === 1)))) || ((_arg1 == "")))); }; return (false); } public function get name():String{ return (_name); } public function get type():uint{ return (_type); } public function get id():uint{ return (_id); } public function toString():String{ return (_name); } } }//package com.newgrounds
Section 26
//SaveRating (com.newgrounds.SaveRating) package com.newgrounds { public class SaveRating { private var _voted:Boolean; private var _name:String; private var _maxValue:Number; private var _isFloat:Boolean; private var _id:uint; private var _minValue:Number; public function SaveRating(_arg1:uint, _arg2:String, _arg3:Boolean, _arg4:Number=-INF, _arg5:Number=INF){ _id = _arg1; _name = _arg2; _isFloat = _arg3; _minValue = _arg4; _maxValue = _arg5; } public function get voted():Boolean{ return (_voted); } public function set voted(_arg1:Boolean):void{ _voted = _arg1; } public function toString():String{ return (_name); } public function get maxValue():Number{ return (_maxValue); } public function get name():String{ return (_name); } public function get isFloat():Boolean{ return (_isFloat); } public function get id():uint{ return (_id); } public function get minValue():Number{ return (_minValue); } } }//package com.newgrounds
Section 27
//Score (com.newgrounds.Score) package com.newgrounds { public class Score { private var _board:ScoreBoard; private var _position:uint; private var _numeric_value:uint; private var _value:String; private var _username:String; private var _tag:String; public function Score(_arg1:ScoreBoard, _arg2:Number, _arg3:String, _arg4:String, _arg5:uint, _arg6:String){ _board = _arg1; _position = _arg2; _username = _arg3; _value = _arg4; _numeric_value = _arg5; _tag = _arg6; } public function get tag():String{ return (_tag); } public function get board():ScoreBoard{ return (_board); } public function get position():uint{ return (_position); } public function get value():String{ return (_value); } public function get username():String{ return (_username); } public function get numeric_value():uint{ return (_numeric_value); } } }//package com.newgrounds
Section 28
//ScoreBoard (com.newgrounds.ScoreBoard) package com.newgrounds { import flash.events.*; public class ScoreBoard extends EventDispatcher { private var _scores:Array; private var _tag:String; private var _period:String;// = "Today" private var _name:String; private var _page:uint;// = 1 private var _id:uint; private var _num_results:uint;// = 10 public function ScoreBoard(_arg1:uint, _arg2:String, _arg3:String){ _name = _arg2; _id = _arg1; _scores = []; _tag = _arg3; } public function get period():String{ return (_period); } public function get name():String{ return (_name); } public function postScore(_arg1:uint):void{ API.postScore(_name, _arg1); } public function get page():uint{ return (_page); } public function get tag():String{ return (_tag); } public function exists():Boolean{ return ((_id > 0)); } public function get scores():Array{ return (_scores); } public function get id():Number{ return (_id); } public function loadScores(_arg1:String="Today", _arg2:uint=1, _arg3:uint=10):void{ _period = _arg1; if (((!(_period)) || ((_period == "")))){ _period = ScoreBoardPeriod.TODAY; }; _page = _arg2; _num_results = _arg3; API.loadScores(this); } function setScores(_arg1:Array, _arg2:String, _arg3:Number, _arg4:Number):void{ var _local6:uint; _period = _arg2; _page = _arg3; _num_results = _arg4; _scores = []; var _local5:uint; while (_local5 < _arg1.length) { _local6 = (((_num_results * (_page - 1)) + 1) + _local5); _scores.push(new Score(this, _local6, _arg1[_local5].username, _arg1[_local5].value, _arg1[_local5].numeric_value, _arg1[_local5].tag)); _local5++; }; } public function get num_results():uint{ return (_num_results); } } }//package com.newgrounds
Section 29
//ScoreBoardPeriod (com.newgrounds.ScoreBoardPeriod) package com.newgrounds { public class ScoreBoardPeriod { public static const MONTH:String = "This Month"; public static const TODAY:String = "Today"; public static const WEEK:String = "This Week"; public static const ALL_TIME:String = "All-Time"; public static const YEAR:String = "This Year"; } }//package com.newgrounds
Section 30
//SmartURLLoader (com.newgrounds.SmartURLLoader) package com.newgrounds { import flash.events.*; import flash.utils.*; import flash.net.*; import flash.errors.*; public class SmartURLLoader extends EventDispatcher { private var _urlRequest:URLRequest; private var _method:String;// = "GET" private var _files:Dictionary; private var _hasVariables:Boolean; private var _dataFormat:String;// = "text" private var _urlLoader:URLLoader; private var _preventCache:Boolean;// = false private var _variables:Dictionary; public var owner; private var _openBrowser:Boolean;// = false private static const CRLF:String = " "; private static var _loaders:Dictionary = new Dictionary(); public function SmartURLLoader(){ _urlRequest = new URLRequest(); _variables = new Dictionary(); } public function get response(){ return (_urlLoader.data); } public function set method(_arg1:String):void{ if (((hasFiles) && ((_arg1 == URLRequestMethod.GET)))){ throw (new IllegalOperationError("GET cannot be used to upload files.")); }; _method = _arg1; } private function onIOError(_arg1:IOErrorEvent):void{ dispatchEvent(_arg1); dispose(); } public function addVariable(_arg1:String, _arg2=""):void{ _variables[_arg1] = _arg2; if (_arg2){ _hasVariables = true; }; } private function onSecurityError(_arg1:SecurityErrorEvent):void{ dispatchEvent(_arg1); dispose(); } public function get preventCache():Boolean{ return (_preventCache); } public function addFile(_arg1:String, _arg2:ByteArray, _arg3:String, _arg4:String="application/octect-stream"):void{ method = URLRequestMethod.POST; if (!_files){ _files = new Dictionary(); }; _files[_arg1] = new File(_arg1, _arg2, _arg3, _arg4); } public function get openBrowser():Boolean{ return (_openBrowser); } public function set preventCache(_arg1:Boolean):void{ _preventCache = _arg1; } public function get responseFormat():String{ return (_dataFormat); } private function onComplete(_arg1:Event):void{ dispatchEvent(_arg1); dispose(); } public function dispose():void{ _files = null; _variables = null; if (_urlLoader){ _urlLoader.removeEventListener(Event.COMPLETE, onComplete); _urlLoader.removeEventListener(ProgressEvent.PROGRESS, onProgress); _urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); _urlLoader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus); _urlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); _urlLoader = null; }; _urlRequest = null; _loaders[this] = null; } public function get method():String{ return (_method); } public function close():void{ try { _urlLoader.close(); } catch(e:Error) { }; } private function buildMultipartData(_arg1:String):ByteArray{ var _local3:String; var _local4:File; var _local2:ByteArray = new ByteArray(); _local2.endian = Endian.BIG_ENDIAN; _arg1 = ("--" + _arg1); for (_local3 in _variables) { _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(((("Content-Disposition: form-data; name=\"" + _local3) + "\"") + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeUTFBytes((_variables[_local3] + CRLF)); }; if (hasFiles){ for each (_local4 in _files) { _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Filename\"" + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeUTFBytes((_local4.fileName + CRLF)); _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(((((("Content-Disposition: form-data; name=\"" + _local4.dataField) + "\"; filename=\"") + _local4.fileName) + "\"") + CRLF)); _local2.writeUTFBytes((("Content-Type: " + _local4.contentType) + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeBytes(_local4.data); _local2.writeUTFBytes(CRLF); }; _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Upload\"" + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeUTFBytes(("Submit Query" + CRLF)); }; _local2.writeUTFBytes((_arg1 + "--")); _local2.position = 0; trace(_local2.readUTFBytes(_local2.length)); _local2.position = 0; return (_local2); } public function clearVariables():void{ _variables = new Dictionary(); } private function onProgress(_arg1:ProgressEvent):void{ dispatchEvent(_arg1); } public function load(_arg1:String):void{ var urlVariables:URLVariables; var key:String; var boundary:String; var i:uint; var event:SecurityErrorEvent; var url = _arg1; _urlRequest.url = url; if (_preventCache){ url = (url + ("?seed=" + Math.random())); if (_hasVariables){ url = (url + "&"); }; }; _urlRequest.method = _method; if ((((_urlRequest.method == URLRequestMethod.GET)) || (!(hasFiles)))){ _urlRequest.contentType = "application/x-www-form-urlencoded"; if (_hasVariables){ urlVariables = new URLVariables(); for (key in _variables) { urlVariables[key] = _variables[key]; }; _urlRequest.data = urlVariables; }; } else { boundary = ""; i = 0; while (i < 32) { boundary = (boundary + String.fromCharCode(uint((97 + (Math.random() * 25))))); i = (i + 1); }; _urlRequest.contentType = (("multipart/form-data; boundary=\"" + boundary) + "\""); _urlRequest.data = buildMultipartData(boundary); }; if (openBrowser){ navigateToURL(_urlRequest, "_blank"); } else { _urlLoader = new URLLoader(); _urlLoader.dataFormat = _dataFormat; _urlLoader.addEventListener(Event.COMPLETE, onComplete); _urlLoader.addEventListener(ProgressEvent.PROGRESS, onProgress); _urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); _urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus); _urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); _loaders[_urlLoader] = this; try { _urlLoader.load(_urlRequest); } catch(error:Error) { event = new SecurityErrorEvent(SecurityErrorEvent.SECURITY_ERROR, false, false, error.message); onSecurityError(event); }; }; } public function set responseFormat(_arg1:String):void{ _dataFormat = _arg1; } public function clearFiles():void{ _files = null; } private function onHTTPStatus(_arg1:HTTPStatusEvent):void{ dispatchEvent(_arg1); } public function set openBrowser(_arg1:Boolean):void{ _openBrowser = _arg1; } public function get hasFiles():Boolean{ return (Boolean(_files)); } } }//package com.newgrounds import flash.utils.*; class File { private var dataField:String; private var contentType:String; private var fileName:String; private var data:ByteArray; private function File(_arg1:String, _arg2:ByteArray, _arg3:String="Filedata", _arg4:String="application/octet-stream"){ this.fileName = _arg1; this.data = _arg2; this.dataField = _arg3; this.contentType = _arg4; } }
Section 31
//alillmintro_201 (k_fla.alillmintro_201) package k_fla { import flash.display.*; public dynamic class alillmintro_201 extends MovieClip { public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public function alillmintro_201(){ addFrameScript(9, frame10); } function frame10(){ group5.gotoAndPlay("go"); group4.gotoAndPlay("go"); group3.gotoAndPlay("go"); } } }//package k_fla
Section 32
//annoncement_166 (k_fla.annoncement_166) package k_fla { import flash.display.*; public dynamic class annoncement_166 extends MovieClip { public function annoncement_166(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 33
//audiobtn_119 (k_fla.audiobtn_119) package k_fla { import flash.display.*; public dynamic class audiobtn_119 extends MovieClip { public function audiobtn_119(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 34
//button_credit_155 (k_fla.button_credit_155) package k_fla { import flash.display.*; public dynamic class button_credit_155 extends MovieClip { public var button:SimpleButton; public function button_credit_155(){ addFrameScript(0, frame1, 19, frame20, 24, frame25); } function frame1(){ stop(); } function frame20(){ stop(); } function frame25(){ gotoAndStop(1); } } }//package k_fla
Section 35
//button_moreGames_70 (k_fla.button_moreGames_70) package k_fla { import flash.display.*; public dynamic class button_moreGames_70 extends MovieClip { public var button:SimpleButton; public function button_moreGames_70(){ addFrameScript(0, frame1, 19, frame20, 24, frame25); } function frame1(){ stop(); } function frame20(){ stop(); } function frame25(){ gotoAndStop(1); } } }//package k_fla
Section 36
//button_play_159 (k_fla.button_play_159) package k_fla { import flash.display.*; public dynamic class button_play_159 extends MovieClip { public var button:SimpleButton; public function button_play_159(){ addFrameScript(0, frame1, 19, frame20, 24, frame25); } function frame1(){ stop(); } function frame20(){ stop(); } function frame25(){ gotoAndStop(1); } } }//package k_fla
Section 37
//button_submit_64 (k_fla.button_submit_64) package k_fla { import flash.display.*; public dynamic class button_submit_64 extends MovieClip { public var button:SimpleButton; public function button_submit_64(){ addFrameScript(0, frame1, 19, frame20, 24, frame25); } function frame1(){ stop(); } function frame20(){ stop(); } function frame25(){ gotoAndStop(1); } } }//package k_fla
Section 38
//button_tutorial_157 (k_fla.button_tutorial_157) package k_fla { import flash.display.*; public dynamic class button_tutorial_157 extends MovieClip { public var button:SimpleButton; public function button_tutorial_157(){ addFrameScript(0, frame1, 19, frame20, 24, frame25); } function frame1(){ stop(); } function frame20(){ stop(); } function frame25(){ gotoAndStop(1); } } }//package k_fla
Section 39
//button_viewScores_153 (k_fla.button_viewScores_153) package k_fla { import flash.display.*; public dynamic class button_viewScores_153 extends MovieClip { public var button:SimpleButton; public function button_viewScores_153(){ addFrameScript(0, frame1, 19, frame20, 24, frame25); } function frame1(){ stop(); } function frame20(){ stop(); } function frame25(){ gotoAndStop(1); } } }//package k_fla
Section 40
//chameleon_anims_129 (k_fla.chameleon_anims_129) package k_fla { import flash.display.*; public dynamic class chameleon_anims_129 extends MovieClip { public function chameleon_anims_129(){ addFrameScript(14, frame15, 31, frame32, 50, frame51); } function frame15(){ gotoAndPlay("breathe"); } function frame32(){ gotoAndPlay("move"); } function frame51(){ gotoAndPlay("breathe"); } } }//package k_fla
Section 41
//chameleon_gear_141 (k_fla.chameleon_gear_141) package k_fla { import flash.display.*; public dynamic class chameleon_gear_141 extends MovieClip { public function chameleon_gear_141(){ addFrameScript(14, frame15, 31, frame32, 46, frame47, 65, frame66); } function frame15(){ gotoAndPlay("breathe"); } function frame32(){ gotoAndPlay("move"); } function frame47(){ gotoAndPlay("breathe"); } function frame66(){ gotoAndPlay("kiteLoop"); } } }//package k_fla
Section 42
//fruitsstopped_53 (k_fla.fruitsstopped_53) package k_fla { import flash.display.*; public dynamic class fruitsstopped_53 extends MovieClip { public function fruitsstopped_53(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 43
//fruitwin_93 (k_fla.fruitwin_93) package k_fla { import flash.display.*; public dynamic class fruitwin_93 extends MovieClip { public function fruitwin_93(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 44
//Kmilion_anim_127 (k_fla.Kmilion_anim_127) package k_fla { import flash.display.*; public dynamic class Kmilion_anim_127 extends MovieClip { public var gear:MovieClip; public var kmilion:MovieClip; public var chamshadow:MovieClip; public function Kmilion_anim_127(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 45
//leafGroup3_194 (k_fla.leafGroup3_194) package k_fla { import flash.display.*; public dynamic class leafGroup3_194 extends MovieClip { public function leafGroup3_194(){ addFrameScript(0, frame1, 9, frame10); } function frame1(){ stop(); } function frame10(){ stop(); } } }//package k_fla
Section 46
//leafGroup3ALT_59 (k_fla.leafGroup3ALT_59) package k_fla { import flash.display.*; public dynamic class leafGroup3ALT_59 extends MovieClip { public function leafGroup3ALT_59(){ addFrameScript(0, frame1, 9, frame10); } function frame1(){ stop(); } function frame10(){ stop(); } } }//package k_fla
Section 47
//leafGroup4_195 (k_fla.leafGroup4_195) package k_fla { import flash.display.*; public dynamic class leafGroup4_195 extends MovieClip { public function leafGroup4_195(){ addFrameScript(0, frame1, 14, frame15); } function frame1(){ stop(); } function frame15(){ stop(); } } }//package k_fla
Section 48
//leafGroup4ALT_60 (k_fla.leafGroup4ALT_60) package k_fla { import flash.display.*; public dynamic class leafGroup4ALT_60 extends MovieClip { public function leafGroup4ALT_60(){ addFrameScript(0, frame1, 14, frame15); } function frame1(){ stop(); } function frame15(){ stop(); } } }//package k_fla
Section 49
//leafGroup5_196 (k_fla.leafGroup5_196) package k_fla { import flash.display.*; public dynamic class leafGroup5_196 extends MovieClip { public function leafGroup5_196(){ addFrameScript(0, frame1, 14, frame15); } function frame1(){ stop(); } function frame15(){ stop(); } } }//package k_fla
Section 50
//leafGroup5ALT_61 (k_fla.leafGroup5ALT_61) package k_fla { import flash.display.*; public dynamic class leafGroup5ALT_61 extends MovieClip { public function leafGroup5ALT_61(){ addFrameScript(0, frame1, 14, frame15); } function frame1(){ stop(); } function frame15(){ stop(); } } }//package k_fla
Section 51
//lobtn_121 (k_fla.lobtn_121) package k_fla { import flash.display.*; public dynamic class lobtn_121 extends MovieClip { public function lobtn_121(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 52
//luxintro_202 (k_fla.luxintro_202) package k_fla { import flash.display.*; public dynamic class luxintro_202 extends MovieClip { public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public function luxintro_202(){ addFrameScript(9, frame10); } function frame10(){ group5.gotoAndPlay("go"); group4.gotoAndPlay("go"); group3.gotoAndPlay("go"); } } }//package k_fla
Section 53
//MainTimeline (k_fla.MainTimeline) package k_fla { import com.newgrounds.*; import flash.display.*; import flash.events.*; import flash.utils.*; import com.newgrounds.components.*; import flash.net.*; import mochi.as3.*; import flash.media.*; import com.lifeztream.debug.*; import flash.text.*; import flash.geom.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.ui.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var __id1_:APIConnector; public var chameleon:MovieClip; public var skipbtn:MovieClip; public var __setPropDict:Dictionary; public var url1:String; public var urlStart1:Number; public var urlEnd1:Number; public var domain1:String; public var lastDot1:Number; public var domEnd1:Number; public var timer5:int; public var timer4:int; public var timer7:int; public var timer8:int; public var stageW:int; public var stageH:int; public var frame:String; public var menroll:menuroll; public var menselection:menuselection; public var shootgun:gunshot; public var coincollect:collectcoin; public var slotslose:loseslots; public var soundgameover:gameoversound; public var stopslot:slotstop; public var winslots:slotswin; public var kaching:spendcoins; public var exp1:explodesound1; public var exp2:explodesound2; public var music:musicloop; public var menuloop:titlesounds; public var bombboom; public var bubblessound:bubbles; public var hitcombo:special1; public var hitgem:special2; public var ouch:hitsquirrel; public var warning:warningfull; public var loseall:losegems; public var stunTime:int; public var stageRect:Rectangle; public var bgFade:ColorTransform; public var bgBmp:BitmapData; public var bgBit:Bitmap; public var epBmp:BitmapData; public var epBit:Bitmap; public var cexplode:crossexplode; public var gexplode:gemsexplode; public var lexplode:lineexplode; public var sexplode:smallexplode; public var lstrike:lightningstrike; public var downKeys:Object; public var titTimer:int; public var screenState:String; public var gameState:String; public var menuSelect:int; public var transTo:String; public var soundOn:Boolean; public var speedinc:Boolean; public var rocksDestroyed:int; public var powersUsed:int; public var invaders:Array; public var bullets:Array; public var squirrelBullets:Array; public var slots:Array; public var coins:Array; public var explosions:Array; public var trails:Array; public var combos:Array; public var deads:Array; public var coinhits:Array; public var tripples:Array; public var beams:Array; public var lightnings:Array; public var wipers:Array; public var upwipers:Array; public var titleEnemies:Array; public var crossExplodes:Array; public var gemExplodes:Array; public var smallExplodes:Array; public var lineExplodes:Array; public var lightningStrikes:Array; public var coinQueue:Array; public var bulges:Array; public var squirrelShoots:Array; public var webs:Array; public var rumble:int; public var colours:int; public var moves:int; public var maxMoves:int; public var moving:Boolean; public var moveTimer:Number; public var stopTimer:int; public var outcome:int; public var spinning:Boolean; public var spinTimer:int; public var playerMoving:int; public var playerSpeed:int; public var enemySpeed:int; public var colourList:Array; public var cols:Array; public var score:int; public var combo:int; public var credits:int; public var playerDead:int; public var game:Sprite; public var bulletHolder:Sprite; public var ship:player; public var GUI:gui; public var gaugeTimer:int; public var bgTimer:int; public var messScrolling; public var bgSprite:Sprite; public var TITLE:title; public var GAMEOVER:gameover; public var TRANS:trans; public var CREDITS:creds; public var TUTORIAL:tutorial; public var GRG:getreadygo; public var INSTRUCTIONS:instructions; public var MESS:messagebox; public var PAUSE:pausedmenu; public var bgart:backgroundart; public var water:waterAnim; public var stunAnim:stunned; public var scoreCounts:Object; public var squirrelClick; public var qual:int; public var audio:int; public var lastScore:int; public var fps:FPS; public function MainTimeline(){ __setPropDict = new Dictionary(true); super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8); } public function clickskip(_arg1:MouseEvent):void{ gotoAndStop(7); } public function updatelogo5(_arg1:Event):void{ timer5++; if (timer5 >= 90){ this.removeEventListener(Event.ENTER_FRAME, updatelogo5); stage.removeEventListener(MouseEvent.MOUSE_UP, getLink5); nextFrame(); }; } public function getLink5(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.newgrounds.com"); navigateToURL(_local2, "_blank"); } public function updatelogo4(_arg1:Event):void{ timer4++; if (timer4 >= 90){ this.removeEventListener(Event.ENTER_FRAME, updatelogo4); stage.removeEventListener(MouseEvent.MOUSE_UP, getLink4); nextFrame(); }; } public function getLink4(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.alillm.com"); navigateToURL(_local2, "_blank"); } public function updatelogo7(_arg1:Event):void{ timer7++; if (timer7 >= 90){ this.removeEventListener(Event.ENTER_FRAME, updatelogo7); stage.removeEventListener(MouseEvent.MOUSE_UP, getLink7); nextFrame(); }; } public function getLink7(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.luxgames.net/blog/"); navigateToURL(_local2, "_blank"); } public function updatelogo8(_arg1:Event):void{ timer8++; if (timer8 >= 42){ this.removeEventListener(Event.ENTER_FRAME, updatelogo8); nextFrame(); }; } public function init():void{ score = 0; TITLE = new title(); TITLE.playbtn.addEventListener(MouseEvent.ROLL_OVER, rollover); TITLE.playbtn.addEventListener(MouseEvent.ROLL_OUT, rollout); TITLE.playbtn.addEventListener(MouseEvent.CLICK, clickplay); TITLE.creditsbtn.addEventListener(MouseEvent.ROLL_OVER, rollover); TITLE.creditsbtn.addEventListener(MouseEvent.ROLL_OUT, rollout); TITLE.creditsbtn.addEventListener(MouseEvent.CLICK, clickcredits); TITLE.tutorialbtn.addEventListener(MouseEvent.ROLL_OVER, rollover); TITLE.tutorialbtn.addEventListener(MouseEvent.ROLL_OUT, rollout); TITLE.tutorialbtn.addEventListener(MouseEvent.CLICK, clicktutorial); TITLE.morebtn.addEventListener(MouseEvent.ROLL_OVER, rollover); TITLE.morebtn.addEventListener(MouseEvent.ROLL_OUT, rollout); TITLE.morebtn.addEventListener(MouseEvent.CLICK, clickmore); TITLE.viewbtn.addEventListener(MouseEvent.ROLL_OVER, rollover); TITLE.viewbtn.addEventListener(MouseEvent.ROLL_OUT, rollout); TITLE.viewbtn.addEventListener(MouseEvent.CLICK, clickview); TITLE.qualitytoggle.addEventListener(MouseEvent.CLICK, togglequality); TITLE.audiotoggle.addEventListener(MouseEvent.CLICK, toggleaudio); TITLE.qualitytoggle.addEventListener(MouseEvent.ROLL_OVER, rollover2); TITLE.qualitytoggle.addEventListener(MouseEvent.ROLL_OUT, rollout2); TITLE.audiotoggle.addEventListener(MouseEvent.ROLL_OVER, rollover2); TITLE.audiotoggle.addEventListener(MouseEvent.ROLL_OUT, rollout2); addChild(TITLE); GAMEOVER = new gameover(); GAMEOVER.x = -900; GAMEOVER.submit.addEventListener(MouseEvent.ROLL_OVER, rollover); GAMEOVER.submit.addEventListener(MouseEvent.ROLL_OUT, rollout); GAMEOVER.submit.addEventListener(MouseEvent.CLICK, clicksubmit); GAMEOVER.back.addEventListener(MouseEvent.CLICK, clickback); GAMEOVER.more.addEventListener(MouseEvent.ROLL_OVER, rollover); GAMEOVER.more.addEventListener(MouseEvent.ROLL_OUT, rollout); GAMEOVER.more.addEventListener(MouseEvent.CLICK, clickmore); MESS = new messagebox(); MESS.y = (stageH / 2); MESS.x = -300; addChild(MESS); CREDITS = new creds(); CREDITS.x = -900; CREDITS.back.addEventListener(MouseEvent.CLICK, clickback); TUTORIAL = new tutorial(); TUTORIAL.x = -900; TUTORIAL.back.addEventListener(MouseEvent.CLICK, clickback); TUTORIAL.squirrel.addEventListener(MouseEvent.CLICK, clickSqu); GUI = new gui(); addChild(GUI); GUI.qualitytoggle.addEventListener(MouseEvent.CLICK, togglequality); GUI.audiotoggle.addEventListener(MouseEvent.CLICK, toggleaudio); GUI.audiotoggle.addEventListener(MouseEvent.ROLL_OVER, rollover2); GUI.audiotoggle.addEventListener(MouseEvent.ROLL_OUT, rollout2); GUI.qualitytoggle.mouseChildren = false; GUI.audiotoggle.mouseChildren = false; TITLE.qualitytoggle.mouseChildren = false; TITLE.audiotoggle.mouseChildren = false; GUI.x = -900; GUI.machine.score.n1.stop(); GUI.machine.score.n2.stop(); GUI.machine.score.n3.stop(); GUI.machine.score.n4.stop(); GUI.machine.score.n5.stop(); GUI.machine.score.n6.stop(); PAUSE = new pausedmenu(); addChild(PAUSE); PAUSE.y = (stageH / 2); PAUSE.x = -800; TRANS = new trans(); addChild(TRANS); } public function startGame():void{ var _local2:int; rocksDestroyed = 0; powersUsed = 0; SoundMixer.stopAll(); stage.focus = stage; music.play(0, 9999); if (qual == 1){ stage.quality = StageQuality.LOW; }; stunTime = 0; score = 0; colours = 3; maxMoves = 2; moving = false; stopTimer = 100; var _local1:int; while (_local1 < 14) { slots[_local1] = new Array(); _local2 = 0; while (_local2 < 14) { slots[_local1][_local2] = 0; _local2++; }; _local1++; }; gameState = "start"; addChild(bgSprite); game = new Sprite(); addChild(game); bulletHolder = new Sprite(); game.addChild(bgart); game.addChild(bulletHolder); addChild(epBit); addChild(bgBit); ship = new player(); game.addChild(ship); addChild(stunAnim); stunAnim.x = -800; stunAnim.y = 410; ship.x = ((stageW / 2) + 30); ship.y = (stageH - 20); ship.chameleon.kmilion.gotoAndPlay("breathe"); ship.chameleon.gear.gotoAndPlay("breathe"); ship.chameleon.gear.alpha = 0; game.addChild(water); water.x = 0; water.y = (stageH + 150); trace("4"); removeChild(GUI); addChild(GUI); trace("5"); GUI.x = 605; GUI.machine.fruit.row1.gotoAndPlay((int((Math.random() * 10)) + 1)); GUI.machine.fruit.row2.gotoAndPlay((int((Math.random() * 10)) + 1)); GUI.machine.fruit.row3.gotoAndPlay((int((Math.random() * 10)) + 1)); trace("6"); GUI.machine.pink.gotoAndStop(1); GUI.machine.score.n1.gotoAndStop(1); GUI.machine.score.n2.gotoAndStop(1); GUI.machine.score.n3.gotoAndStop(1); GUI.machine.score.n4.gotoAndStop(1); GUI.machine.score.n5.gotoAndStop(1); GUI.machine.score.n6.gotoAndStop(1); trace("7"); invaders = new Array(); moves = 41; moving = true; GRG = new getreadygo(); trace("8"); addChild(GRG); GRG.x = 130; GRG.y = 200; score = 0; credits = 0; GUI.creds.text = "0"; GUI.squirrels.x = (ship.x - 605); GUI.pipe.scaleX = (((GUI.squirrels.x - 78) * -1) / 150); newEnemy(); removeChild(PAUSE); addChild(PAUSE); removeChild(TRANS); addChild(TRANS); } public function rollover(_arg1:MouseEvent):void{ menroll.play(); _arg1.target.gotoAndPlay("over"); } public function rollout(_arg1:MouseEvent):void{ _arg1.target.gotoAndPlay("out"); } public function rollover2(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(2); } public function rollout2(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(1); } public function clickSqu(_arg1:MouseEvent):void{ if (squirrelClick == false){ squirrelClick = true; API.unlockMedal("Squirrel Toucher"); }; } public function clickplay(_arg1:MouseEvent):void{ removeChild(TRANS); addChild(TRANS); menselection.play(); transTo = "game"; screenState = "trans"; TRANS.play(); } public function clickcredits(_arg1:MouseEvent):void{ removeChild(TRANS); addChild(TRANS); menselection.play(); transTo = "credits"; screenState = "trans"; TRANS.play(); } public function clicktutorial(_arg1:MouseEvent):void{ removeChild(TRANS); addChild(TRANS); menselection.play(); transTo = "tutorial"; TRANS.play(); screenState = "trans"; } public function clickmore(_arg1:MouseEvent):void{ menselection.play(); var _local2:* = new URLRequest("http://www.newgrounds.com"); navigateToURL(_local2, "_blank"); } public function clicksubmit(_arg1:MouseEvent):void{ menselection.play(); transTo = "submitscore"; TRANS.play(); screenState = "trans"; } public function clickview(_arg1:MouseEvent):void{ menselection.play(); transTo = "showscore"; TRANS.play(); screenState = "trans"; } public function clickback(_arg1:MouseEvent):void{ menselection.play(); transTo = "title"; TRANS.play(); screenState = "trans"; } public function togglequality(_arg1:MouseEvent):void{ if (qual == 1){ qual = 0; _arg1.target.mc.gotoAndStop(2); if ((((gameState == "start")) || ((gameState == "playing")))){ stage.quality = StageQuality.BEST; }; } else { qual = 1; _arg1.target.mc.gotoAndStop(1); if ((((gameState == "start")) || ((gameState == "playing")))){ stage.quality = StageQuality.LOW; }; }; } public function toggleaudio(_arg1:MouseEvent):void{ if (audio == 1){ SoundMixer.soundTransform = new SoundTransform(0, 0); audio = 0; _arg1.target.mc.gotoAndStop(2); } else { SoundMixer.soundTransform = new SoundTransform(1, 0); audio = 1; _arg1.target.mc.gotoAndStop(1); }; } public function endGame():void{ SoundMixer.stopAll(); menuloop.play(0, 9999); speedinc = false; removeChild(stunAnim); colours = 3; moves = 4; maxMoves = 2; moving = false; moveTimer = 2; stopTimer = 100; outcome = 0; spinning = false; spinTimer = 0; playerMoving = 0; playerSpeed = 10; enemySpeed = 28; combo = 0; credits = 0; playerDead = 0; gaugeTimer = 0; bgTimer = 0; messScrolling = false; removeChild(bgSprite); removeChild(game); removeChild(bgBit); GUI.x = -800; invaders = new Array(); bullets = new Array(); slots = new Array(); coins = new Array(); explosions = new Array(); trails = new Array(); combos = new Array(); deads = new Array(); coinhits = new Array(); tripples = new Array(); beams = new Array(); lightnings = new Array(); wipers = new Array(); upwipers = new Array(); squirrelBullets = new Array(); crossExplodes = new Array(); gemExplodes = new Array(); lineExplodes = new Array(); lightningStrikes = new Array(); coinQueue = new Array(); bulges = new Array(); squirrelShoots = new Array(); webs = new Array(); game.removeChild(ship); } public function thumbover(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(2); } public function thumbout(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(1); } public function stopScores():void{ var _local1 = 1; while (_local1 <= 6) { var _local2 = scoreCounts; var _local3 = ("n" + _local1); var _local4 = (_local2[_local3] - 1); _local2[_local3] = _local4; if (scoreCounts[("n" + _local1)] <= 0){ scoreCounts[("n" + _local1)] = 0; GUI.machine.score[("n" + _local1)].stop(); }; _local1++; }; if (gaugeTimer > 0){ gaugeTimer--; }; } public function updateScore():void{ var _local4:int; var _local5:*; var _local1:String = String(score); var _local2:int = _local1.length; var _local3:int = (6 - _local2); while (_local3 < 6) { _local4 = Number(_local1.charAt((_local3 - (6 - _local2)))); _local5 = ((((_local4 * 6) + 1) - GUI.machine.score[("n" + (_local3 + 1))].currentFrame) + 1); if (_local5 < 0){ _local5 = (_local5 + 60); }; if (_local5 >= 0){ scoreCounts[("n" + (_local3 + 1))] = _local5; GUI.machine.score[("n" + (_local3 + 1))].play(); }; _local3++; }; } public function newTripple(_arg1:int):void{ var _local2:tripple = new tripple(); _local2.x = (stageW / 2); _local2.y = (stageH / 2); _local2.alpha = 0.7; _local2.timer = 0; tripples.push(_local2); _local2.mc.mc.gotoAndStop(_arg1); game.addChild(_local2); } public function updateTripples():void{ var _local2:tripple; var _local1:int; while (_local1 < tripples.length) { _local2 = tripples[_local1]; _local2.timer++; if (_local2.timer >= 24){ game.removeChild(_local2); tripples.splice(_local1, 1); _local1--; }; _local1++; }; } public function newBeam():void{ var _local2:int; var _local5:int; var _local1:Boolean; var _local3:int; while (_local1 != true) { _local3++; if (_local3 > 40){ return; }; _local2 = int((Math.random() * 12)); _local5 = 0; while (_local5 < slots[_local2].length) { if (slots[_local2][_local5] != 0){ newLineExplode(40, ((_local2 * 56) + 30)); _local1 = true; break; }; _local5++; }; }; var _local4:int; while (_local4 < slots[_local2].length) { if (slots[_local2][_local4] != 0){ if (slots[_local2][_local4].currentFrame != 10){ slots[_local2][_local4].dead = true; }; }; _local4++; }; } public function updateBeams():void{ var _local2:*; var _local1:int; while (_local1 < beams.length) { _local2 = beams[_local1]; if ((((_local2.scaleY < 1)) && ((_local2.timer == 30)))){ _local2.scaleY = (_local2.scaleY + 0.2); } else { _local2.timer--; if (_local2.timer <= 0){ _local2.scaleY = (_local2.scaleY - 0.2); if (_local2.scaleY <= 0){ game.removeChild(_local2); beams.splice(_local1, 1); _local1--; }; }; }; _local1++; }; } public function newLightnings():void{ var _local3:int; var _local1:int = int((Math.random() * 5)); var _local2:int = (int((Math.random() * 5)) + 5); newLightningStrike(((_local1 * 56) + 30), 10); newLightningStrike(((_local2 * 56) + 30), 10); _local3 = 0; while (_local3 < 14) { if (slots[_local3][_local1] != 0){ if (slots[_local3][_local1].currentFrame != 10){ slots[_local3][_local1].dead = true; }; }; if (slots[_local3][_local2] != 0){ if (slots[_local3][_local2].currentFrame != 10){ slots[_local3][_local2].dead = true; }; }; _local3++; }; } public function updateLightnings():void{ var _local2:Object; var _local3:int; var _local4:int; var _local1:int; while (_local1 < lightnings.length) { _local2 = lightnings[_local1]; _local2.timer--; if (_local2.timer <= 0){ lightnings.splice(_local1, 1); _local1--; } else { _local2.spr.graphics.clear(); _local2.spr.graphics.moveTo(_local2.x, 0); _local2.spr.graphics.lineStyle(4, 0xFFFFFF, 1); _local3 = 0; _local4 = 0; while (_local4 < 28) { _local3 = (_local3 + 20); _local2.spr.graphics.lineTo(((_local2.x + (Math.random() * 10)) - (Math.random() * 10)), _local3); _local4++; }; bgBmp.draw(_local2.spr); }; _local1++; }; } public function newBooms():void{ var _local2:int; var _local3:Boolean; var _local4:int; var _local5:int; var _local1:int; while (_local1 < 4) { if ((_local1 + 2) > invaders.length){ return; }; _local2 = 0; _local3 = false; _local4 = 0; _local5 = 0; while (!(_local3)) { _local2++; if (_local2 > 30){ break; }; _local4 = (Math.random() * 14); _local5 = (Math.random() * 14); if (slots[_local5][_local4] != 0){ if (slots[_local5][_local4].currentFrame != 10){ killEnemies(slots[_local5][_local4]); }; _local3 = true; }; }; newExplosion2(((_local4 * 40) + 20), ((_local5 * 40) + 20)); _local1++; }; } public function newWiper():void{ var _local1:int = (Math.random() * colours); var _local2:Object = new Object(); _local2.col = _local1; _local2.x = 0; _local2.spr = new Sprite(); wipers.push(_local2); } public function updateWipers():void{ var _local2:Object; var _local3:int; var _local4:int; var _local1:int; while (_local1 < wipers.length) { _local2 = wipers[_local1]; _local2.x = (_local2.x + 10); if (_local2.x > (stageW - 10)){ wipers.splice(_local1, 1); _local1--; } else { _local2.spr.graphics.clear(); _local2.spr.graphics.beginFill(cols[_local2.col]); _local2.spr.graphics.drawRect(_local2.x, 0, 10, stageH); _local2.spr.graphics.endFill(); bgBmp.draw(_local2.spr); _local3 = Math.floor((_local2.x / 56)); _local4 = 0; while (_local4 < 14) { if (_local3 > 0){ if (slots[_local4][(_local3 - 1)] != 0){ if (slots[_local4][(_local3 - 1)].currentFrame == (_local2.col + 1)){ slots[_local4][(_local3 - 1)].dead = true; }; }; }; if (slots[_local4][_local3] != 0){ if (slots[_local4][_local3].currentFrame == (_local2.col + 1)){ slots[_local4][_local3].dead = true; }; }; _local4++; }; }; _local1++; }; } public function newUpWiper():void{ var _local1:Object = new Object(); _local1.y = stageH; _local1.timer = 50; water.gotoAndPlay(2); bubblessound.play(); _local1.spr = new Sprite(); upwipers.push(_local1); } public function updateUpWipers():void{ var _local2:Object; var _local3:int; var _local4:int; var _local1:int; while (_local1 < upwipers.length) { _local2 = upwipers[_local1]; if (_local2.y < (stageW / 2)){ _local2.timer--; } else { _local2.y = (_local2.y - 6); }; if (_local2.timer <= 0){ upwipers.splice(_local1, 1); _local1--; } else { _local3 = Math.floor((_local2.y / 56)); _local4 = 0; while (_local4 < 14) { if (_local3 < 10){ if (slots[(_local3 + 1)][_local4] != 0){ if (slots[(_local3 + 1)][_local4].currentFrame != 10){ slots[(_local3 + 1)][_local4].dead = true; }; }; }; if (slots[_local3][_local4] != 0){ if (slots[_local1][_local4].currentFrame != 10){ slots[_local3][_local4].dead = true; }; }; _local4++; }; }; _local1++; }; } public function updateSquirrelShoots():void{ var _local2:squirrelbullet; var _local3:Number; var _local1:int; while (_local1 < squirrelShoots.length) { if ((squirrelShoots[_local1].timer % 4) == 0){ if (squirrelShoots[_local1].timer < 20){ squirrelShoots[_local1].ang = (squirrelShoots[_local1].ang + 18); } else { squirrelShoots[_local1].ang = (squirrelShoots[_local1].ang - 36); }; _local2 = new squirrelbullet(); _local2.x = (squirrelShoots[_local1].x - (squirrelShoots[_local1].scaleX * 20)); _local2.y = (squirrelShoots[_local1].y - 40); _local3 = ((((squirrelShoots[_local1].scaleX + 1) * 90) + (squirrelShoots[_local1].ang * squirrelShoots[_local1].scaleX)) * (Math.PI / 180)); _local2.xv = (Math.cos(_local3) * 30); _local2.yv = (Math.sin(_local3) * 30); _local2.rotation = (_local3 * (180 / Math.PI)); _local2.x = (_local2.x + _local2.xv); _local2.y = (_local2.y + _local2.yv); game.addChild(_local2); squirrelBullets.push(_local2); }; squirrelShoots[_local1].timer++; if (squirrelShoots[_local1].timer == 31){ squirrelShoots[_local1].timer = 0; squirrelShoots[_local1].ang = 0; squirrelShoots[_local1].checkme = true; }; if ((((squirrelShoots[_local1].mc.currentFrame == 30)) && ((squirrelShoots[_local1].checkme == true)))){ game.removeChild(squirrelShoots[_local1]); squirrelShoots.splice(_local1, 1); _local1--; }; _local1++; }; } public function newSpreadShot():void{ var _local1:squirrelshoot = new squirrelshoot(); game.addChild(_local1); _local1.x = 75; _local1.timer = 0; _local1.ang = 0; _local1.checkme = false; _local1.scaleX = -1; _local1.y = stageH; squirrelShoots.push(_local1); var _local2:squirrelshoot = new squirrelshoot(); game.addChild(_local2); _local2.x = (stageW - 20); _local2.timer = 0; _local2.checkme = false; _local2.ang = 0; _local2.y = stageH; squirrelShoots.push(_local2); } public function newWeb(_arg1:int, _arg2:int):void{ var _local3:spiderweb = new spiderweb(); _local3.x = _arg1; _local3.y = _arg2; game.addChild(_local3); webs.push(_local3); } public function updateWebs():void{ var _local2:spiderweb; var _local1:int; while (_local1 < webs.length) { _local2 = webs[_local1]; _local2.y = (_local2.y + 7); if (_local2.y > (stageH - 15)){ game.removeChild(_local2); webs.splice(_local1, 1); _local1--; } else { if ((((((_local2.y > (stageH - 50))) && ((_local2.x > (ship.x - 30))))) && ((_local2.x < (ship.x + 30))))){ ship.chameleon.kmilion.gotoAndPlay("breathe"); ship.chameleon.gear.gotoAndPlay("breathe"); frame = "breathe"; stunTime = 60; stunAnim.x = ship.x; game.removeChild(_local2); webs.splice(_local1, 1); _local1--; }; }; _local1++; }; } public function updateEnemies():void{ var _local2:enemy; var _local3:int; var _local1:int = (invaders.length - 1); while (_local1 >= 0) { _local2 = invaders[_local1]; if (_local2.changeto != 0){ _local2.rev = _local2.changeto; _local2.changeto = 0; }; if (_local2.currentFrame == 9){ if (_local2.mc.currentFrame == 19){ _local2.dead = true; }; } else { if (_local2.currentFrame == 5){ _local3 = (Math.random() * 160); if (_local3 == 0){ newWeb(_local2.x, _local2.y); }; }; }; if (_local2.dir == 1){ if (_local2.rev == 1){ _local2.y = (_local2.y + (enemySpeed + _local2.extra)); } else { _local2.y = (_local2.y - 14); }; } else { if (_local2.dir == 2){ if (_local2.rev == 1){ _local2.x = (_local2.x + (enemySpeed + _local2.extra)); } else { _local2.x = (_local2.x - 14); }; } else { if (_local2.dir == 3){ if (_local2.rev == 1){ _local2.x = (_local2.x - (enemySpeed + _local2.extra)); } else { _local2.x = (_local2.x + 14); }; }; }; }; _local2.extra2 = _local2.extra; _local2.extra = 0; _local1--; }; } public function checkDead():void{ var _local2:enemy; var _local1:int; while (_local1 < invaders.length) { _local2 = invaders[_local1]; if ((((((_local2.y >= (stageH - 30))) && ((Math.abs((ship.x - _local2.x)) <= 35)))) && ((gameState == "playing")))){ soundgameover.play(); playerDead = 30; newDeathAnim(ship.x, ship.y); ship.y = (stageH + 50); gameState = "dead"; }; if (_local2.dead == true){ if (_local2 != invaders[(invaders.length - 1)]){ if (_local2.currentFrame != 9){ combo++; if (_local2.currentFrame == 6){ newCrossExplode(_local2.x, _local2.y); explodeBomb(_local2); bombboom.play(); } else { if (_local2.currentFrame == 8){ newGemBoom(_local2.x, _local2.y); newGemExplode(_local2.x, _local2.y); hitgem.play(); } else { if (_local2.currentFrame == 9){ rocksDestroyed++; if (rocksDestroyed == 20){ API.unlockMedal("Rock Solid"); }; } else { newSmallExplode(_local2.x, _local2.y); }; }; }; }; score = (score + (11 * (combo * 2))); if (score > 999999){ score = 999999; }; updateScore(); game.removeChild(_local2); invaders.splice(_local1, 1); _local1--; } else { _local2.dead = false; }; }; _local1++; }; combo = 0; if (score > ((maxMoves * maxMoves) * 100)){ maxMoves++; if ((maxMoves % 2) == 0){ if (enemySpeed < 30){ enemySpeed++; }; }; if (maxMoves == 10){ colours++; messScrolling = true; MESS.gotoAndStop(2); } else { if (maxMoves == 16){ colours++; messScrolling = true; MESS.gotoAndStop(2); }; }; }; } public function newEnemy(_arg1:int=0):void{ var _local7:int; var _local8:int; var _local9:int; var _local2:enemy = new enemy(); _local2.x = 50; _local2.y = -10; if (_arg1 < 0){ _local2.y = (_local2.y - _arg1); }; _local2.dir = 1; _local2.downTime = (56 + _arg1); _local2.dead = false; _local2.rev = 1; _local2.health = 1; _local2.extra = 0; _local2.extra2 = 0; _local2.changeto = 0; var _local3:int = (30 - maxMoves); if (_local3 < 16){ _local3 = 16; }; var _local4 = 50; var _local5 = 1; var _local6 = 1; if (maxMoves > 8){ _local5 = (Math.random() * _local3); }; if (maxMoves > 12){ }; if (_local5 == 0){ _local2.gotoAndStop(9); _local2.health = 3; } else { if (_local6 == 0){ _local2.gotoAndStop(10); } else { _local7 = (Math.random() * 20); if (_local7 == 0){ _local8 = 3; _local9 = (Math.random() * _local8); _local2.gotoAndStop((6 + _local9)); } else { _local2.gotoAndStop((int((Math.random() * colours)) + 1)); }; }; }; invaders.push(_local2); game.addChild(_local2); } public function checkConnection(_arg1:int, _arg2:int, _arg3:int, _arg4:int=1):Boolean{ var _local9:int; var _local5:Boolean; var _local6:int; var _local7:int = Math.floor(((_arg1 - 50) / 56)); var _local8:int = Math.floor(((_arg2 - 46) / 56)); if (_arg4 == 1){ if (_arg3 == (invaders.length - 1)){ return (true); }; } else { if (_arg3 == 0){ return (true); }; }; if ((((_local7 > 0)) && ((_local7 < 8)))){ _local6 = (_local6 + Math.abs((invaders[_arg3].x - invaders[(_arg3 + _arg4)].x))); if (Math.abs((invaders[_arg3].y - invaders[(_arg3 + _arg4)].y)) >= 56){ _local6 = (_local6 + 200); } else { _local6 = (_local6 + Math.abs((invaders[_arg3].y - invaders[(_arg3 + _arg4)].y))); }; } else { _local6 = (_local6 + Math.abs((invaders[_arg3].x - invaders[(_arg3 + _arg4)].x))); _local6 = (_local6 + Math.abs((invaders[_arg3].y - invaders[(_arg3 + _arg4)].y))); }; if (_local6 > 56){ _local5 = false; } else { if ((((((_arg4 == 1)) && ((_local6 < 56)))) && ((invaders[_arg3].rev == -1)))){ _local9 = _arg3; while (_local9 >= 0) { invaders[_local9].extra = (56 - _local6); if (checkConnection(invaders[_local9].x, invaders[_local9].y, _local9, -1) == false){ break; }; _local9--; }; }; }; return (_local5); } public function changeDirs():void{ var _local5:int; var _local6:enemy; var _local7:int; var _local8:int; var _local1:int; while (_local1 < 14) { slots[_local1] = new Array(); _local5 = 0; while (_local5 < 14) { slots[_local1][_local5] = 0; _local5++; }; _local1++; }; var _local2 = 1; var _local3:Boolean; var _local4:int = (invaders.length - 1); while (_local4 >= 0) { _local6 = invaders[_local4]; _local7 = Math.floor(((_local6.x - 50) / 56)); _local8 = Math.floor(((_local6.y - 46) / 56)); if (_local8 >= 0){ slots[_local8][_local7] = _local6; }; if (_local3 == false){ if (checkConnection(_local6.x, _local6.y, _local4) == false){ _local3 = true; }; }; if (_local3 == true){ _local6.changeto = -1; } else { _local6.changeto = 1; }; if (_local6.dir == 1){ if (_local6.rev == 1){ _local6.downTime = (_local6.downTime - (enemySpeed + _local6.extra2)); if (_local6.downTime <= 0){ _local6.y = (_local6.y + _local6.downTime); if (_local6 == invaders[(invaders.length - 1)]){ _local2 = _local6.downTime; }; if (_local6.x < (stageW / 2)){ _local6.dir = 2; _local6.x = (_local6.x - _local6.downTime); } else { _local6.dir = 3; _local6.x = (_local6.x + _local6.downTime); }; }; } else { _local6.downTime = (_local6.downTime + 14); if (_local6.downTime >= 56){ _local6.y = (_local6.y - (56 - _local6.downTime)); if (_local6.x < (stageW / 2)){ _local6.dir = 3; _local6.x = (_local6.x - (56 - _local6.downTime)); } else { _local6.dir = 2; _local6.x = (_local6.x + (56 - _local6.downTime)); }; }; }; } else { if ((((((_local6.dir == 2)) && ((_local6.rev == 1)))) || ((((_local6.dir == 3)) && ((_local6.rev == -1)))))){ if (_local6.x >= (stageW - 40)){ _local6.dir = 1; if (_local6.rev == 1){ _local6.downTime = (56 - (_local6.x - (stageW - 40))); } else { _local6.downTime = (_local6.x - (stageW - 40)); }; _local6.y = (_local6.y + ((_local6.x - (stageW - 40)) * _local6.rev)); _local6.x = (stageW - 40); }; } else { if ((((((_local6.dir == 3)) && ((_local6.rev == 1)))) || ((((_local6.dir == 2)) && ((_local6.rev == -1)))))){ if (_local6.x <= 50){ _local6.dir = 1; if (_local6.rev == 1){ _local6.downTime = (56 - (50 - _local6.x)); } else { _local6.downTime = (50 - _local6.x); }; _local6.y = (_local6.y + ((50 - _local6.x) * _local6.rev)); _local6.x = 50; }; }; }; }; _local6.extra2 = 0; _local4--; }; if (_local2 <= 0){ newEnemy(_local2); }; } public function newCombo(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:combotext = new combotext(); _local4.x = _arg1; _local4.y = _arg2; _local4.maxx = _arg3; if (_local4.maxx > 10){ _local4.maxx = 10; }; _local4.timer = (40 / _local4.maxx); _local4.txt.text = ("x" + String(_arg3)); combos.push(_local4); game.addChild(_local4); } public function updateCombos():void{ var _local2:combotext; var _local1:int; while (_local1 < combos.length) { _local2 = combos[_local1]; _local2.timer--; if (_local2.timer <= 0){ _local2.scaleX = (_local2.scaleX + 0.2); _local2.scaleY = (_local2.scaleY + 0.2); if (_local2.scaleX > _local2.maxx){ game.removeChild(_local2); combos.splice(_local1, 1); _local1--; }; }; _local1++; }; } public function newDead(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:enemy = new enemy(); _local4.gotoAndStop(_arg3); _local4.x = _arg1; _local4.y = _arg2; var _local5:Number = (((Math.random() * 180) + 180) * (Math.PI / 180)); _local4.xv = (Math.cos(_local5) * 10); _local4.yv = (Math.sin(_local5) * 10); deads.push(_local4); game.addChild(_local4); } public function updateDeads():void{ var _local2:enemy; var _local1:int; while (_local1 < deads.length) { _local2 = deads[_local1]; _local2.x = (_local2.x + _local2.xv); _local2.y = (_local2.y + _local2.yv); _local2.scaleX = (_local2.scaleX * 1.1); _local2.scaleY = (_local2.scaleY * 1.1); _local2.rotation = (_local2.rotation + (_local2.xv / 20)); if (_local2.scaleX > 3){ _local2.alpha = (_local2.alpha - 0.04); if (_local2.alpha <= 0){ game.removeChild(_local2); deads.splice(_local1, 1); _local1--; }; }; _local1++; }; } public function newDeathAnim(_arg1:int, _arg2:int):void{ var _local3:deathanim = new deathanim(); _local3.x = (_arg1 - 60); _local3.y = (_arg2 - 60); _local3.timer = 30; game.addChild(_local3); explosions.push(_local3); } public function newExplosion(_arg1:int, _arg2:int):void{ var _local3:explode = new explode(); _local3.x = _arg1; _local3.y = _arg2; _local3.scaleX = 0.8; _local3.scaleY = 0.8; _local3.rotation = (Math.random() * 360); _local3.timer = 15; game.addChild(_local3); explosions.push(_local3); } public function newExplosion2(_arg1:int, _arg2:int):void{ var _local3:explode2 = new explode2(); _local3.x = _arg1; _local3.y = _arg2; _local3.rotation = (Math.random() * 360); _local3.timer = 13; game.addChild(_local3); explosions.push(_local3); } public function updateExplosions():void{ var _local2:*; var _local1:int; while (_local1 < explosions.length) { _local2 = explosions[_local1]; _local2.timer--; if (_local2.timer <= 0){ game.removeChild(_local2); explosions.splice(_local1, 1); _local1--; }; _local1++; }; } public function newCoin(_arg1:int, _arg2:int, _arg3:int=1):void{ var _local5:coin; var _local6:Number; var _local4:int; while (_local4 < _arg3) { _local5 = new coin(); _local5.x = _arg1; _local5.y = _arg2; _local6 = ((Math.random() * 360) * (Math.PI / 180)); _local5.yv = (Math.sin(_local6) * 3); _local5.xv = (Math.cos(_local6) * 3); _local5.collected = false; _local5.timer = 60; coins.push(_local5); game.addChild(_local5); _local4++; }; } public function updateCoinQueue():void{ var _local1:int; while (_local1 < coinQueue.length) { var _local2 = coinQueue; var _local3 = _local1; var _local4 = (_local2[_local3] - 1); _local2[_local3] = _local4; if (coinQueue[_local1] <= 0){ credits++; coincollect.play(); if (credits == 15){ GUI.machine.body.gotoAndPlay(2); GUI.machine.greenlight.gotoAndPlay(2); } else { if (credits == 75){ GUI.machine.greenlight.gotoAndStop(1); warning.play(); } else { if (credits == 85){ loseall.play(); credits = 0; gaugeTimer = 85; GUI.machine.pink.gotoAndPlay(86); GUI.machine.body.gotoAndStop(1); GUI.machine.greenlight.gotoAndStop(1); }; }; }; coinQueue.splice(_local1, 1); _local1--; }; _local1++; }; } public function updateCoins():void{ var _local2:coin; var _local3:int; var _local4:int; var _local5:bulge; updateCoinQueue(); var _local1:int; while (_local1 < coins.length) { _local2 = coins[_local1]; _local3 = (ship.x - _local2.x); _local4 = (ship.y - _local2.y); if ((((((_local3 * _local3) + (_local4 * _local4)) < 1000)) && (!((_local2.collected == true))))){ coinQueue.push(28); _local2.collected = true; }; if ((((_local2.y > stageH)) && ((_local2.collected == true)))){ _local5 = new bulge(); bulges.push(_local5); GUI.pipe.addChild(_local5); game.removeChild(_local2); coins.splice(_local1, 1); _local1--; } else { _local2.y = (_local2.y + _local2.yv); _local2.x = (_local2.x + _local2.xv); if (_local2.yv < 8){ _local2.yv = (_local2.yv + 0.2); }; if (_local2.xv > 0){ _local2.xv = (_local2.xv * 0.8); if (Math.abs(_local2.xv) < 0.2){ _local2.xv = 0; }; }; if (_local2.x < 40){ _local2.x = 40; } else { if (_local2.x > (stageW - 30)){ _local2.x = (stageW - 30); }; }; if ((((_local2.y > (stageH - 10))) && (!((_local2.collected == true))))){ _local2.y = (stageH - 10); _local2.xv = 0; _local2.timer--; if (_local2.timer < 0){ newCoinHit(_local2.x, _local2.y); game.removeChild(_local2); coins.splice(_local1, 1); _local1--; }; }; }; _local1++; }; } public function updateBulges():void{ var _local1:int; while (_local1 < bulges.length) { if (bulges[_local1].currentFrame >= 24){ GUI.pipe.removeChild(bulges[_local1]); bulges.splice(_local1, 1); _local1--; }; _local1++; }; } public function newCoinHit(_arg1:int, _arg2:int):void{ var _local3:coinhit = new coinhit(); _local3.x = _arg1; _local3.y = _arg2; _local3.timer = 13; game.addChild(_local3); coinhits.push(_local3); } public function updateCoinHits():void{ var _local2:coinhit; var _local1:int; while (_local1 < coinhits.length) { _local2 = coinhits[_local1]; _local2.timer--; if (_local2.timer <= 0){ game.removeChild(_local2); coinhits.splice(_local1, 1); _local1--; }; _local1++; }; } public function newTrail(_arg1:int, _arg2:int, _arg3:int=0):void{ var _local4:trail = new trail(); game.addChild(_local4); _local4.x = _arg1; _local4.y = _arg2; _local4.rotation = _arg3; trails.push(_local4); } public function updateTrails():void{ var _local2:trail; var _local1:int; while (_local1 < trails.length) { _local2 = trails[_local1]; _local2.scaleX = (_local2.scaleX - 0.05); _local2.alpha = (_local2.alpha - 0.05); if ((((_local2.alpha <= 0)) || ((_local2.scaleX <= 0)))){ game.removeChild(_local2); trails.splice(_local1, 1); _local1--; }; _local1++; }; } public function fire():void{ var _local1:bullet; if (bullets.length < 1){ shootgun.play(); _local1 = new bullet(); bulletHolder.addChild(_local1); _local1.x = ((ship.x + 4) - ((ship.chameleon.kmilion.scaleX + 1) * 4)); _local1.y = (ship.y - 20); _local1.xv = 0; _local1.yv = -30; bullets.push(_local1); }; } public function updateSquirrelBullets():void{ var _local2:*; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local1:int; while (_local1 < squirrelBullets.length) { _local2 = squirrelBullets[_local1]; _local2.y = (_local2.y + _local2.yv); _local2.x = (_local2.x + _local2.xv); if ((((((_local2.y < -10)) || ((_local2.x < -10)))) || ((_local2.x > (stageW + 10))))){ game.removeChild(_local2); squirrelBullets.splice(_local1, 1); _local1--; } else { _local3 = 0; while (_local3 < invaders.length) { _local4 = Math.abs((invaders[_local3].x - _local2.x)); _local5 = Math.abs((invaders[_local3].y - _local2.y)); if (invaders[_local3].y > 0){ if ((((((_local4 < 24)) && ((_local5 < 28)))) && ((invaders[_local3].health > 0)))){ _local6 = ((Math.random() * 2) + 1); this[("exp" + _local6)].play(); if (invaders[_local3].currentFrame <= 5){ killEnemies(invaders[_local3]); } else { if (invaders[_local3].currentFrame == 6){ invaders[_local3].dead = true; } else { if (invaders[_local3].currentFrame == 7){ invaders[_local3].dead = true; score = (score + 500); } else { if (invaders[_local3].currentFrame == 8){ invaders[_local3].dead = true; } else { if (invaders[_local3].currentFrame == 9){ invaders[_local3].health--; if (invaders[_local3].health <= 0){ invaders[_local3].mc.gotoAndPlay(11); } else { invaders[_local3].mc.gotoAndPlay(2); }; }; }; }; }; }; game.removeChild(_local2); squirrelBullets.splice(_local1, 1); _local1--; break; }; }; _local3++; }; }; _local1++; }; } public function updateBullets():void{ var _local2:bullet; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local1:int; while (_local1 < bullets.length) { _local2 = bullets[_local1]; _local2.y = (_local2.y + _local2.yv); _local2.x = (_local2.x + _local2.xv); if (_local2.y < -10){ bulletHolder.removeChild(_local2); bullets.splice(_local1, 1); _local1--; } else { _local3 = 0; while (_local3 < invaders.length) { _local4 = Math.abs((invaders[_local3].x - _local2.x)); _local5 = Math.abs((invaders[_local3].y - _local2.y)); if (invaders[_local3].y > 0){ if ((((((((_local4 < 24)) && ((_local5 < 28)))) && ((invaders[_local3].health > 0)))) && ((_local2.yv < 0)))){ _local6 = ((Math.random() * 2) + 1); this[("exp" + _local6)].play(); if (invaders[_local3].currentFrame <= 5){ killEnemies(invaders[_local3]); } else { if (invaders[_local3].currentFrame == 6){ invaders[_local3].dead = true; } else { if (invaders[_local3].currentFrame == 7){ invaders[_local3].dead = true; score = (score + 200); } else { if (invaders[_local3].currentFrame == 8){ invaders[_local3].dead = true; } else { if (invaders[_local3].currentFrame == 9){ invaders[_local3].health--; if (invaders[_local3].health <= 0){ invaders[_local3].mc.gotoAndPlay(11); } else { invaders[_local3].mc.gotoAndPlay(2); }; } else { if (invaders[_local3].currentFrame == 10){ killEnemies(invaders[_local3]); ship.chameleon.kmilion.gotoAndPlay("breathe"); ship.chameleon.gear.gotoAndPlay("breathe"); frame = "breathe"; ouch.play(); stunTime = 60; stunAnim.x = ship.x; }; }; }; }; }; }; bulletHolder.removeChild(_local2); bullets.splice(_local1, 1); _local1--; break; }; }; _local3++; }; }; _local1++; }; } public function newGemExplode(_arg1:int, _arg2:int):void{ var _local4:coin; var _local5:Number; var _local3:int; while (_local3 < 5) { _local4 = new coin(); _local4.x = _arg1; _local4.y = _arg2; _local5 = ((Math.random() * 360) * (Math.PI / 180)); _local4.yv = (Math.sin(_local5) * 4); _local4.xv = (Math.cos(_local5) * 4); _local4.timer = 40; coins.push(_local4); game.addChild(_local4); _local3++; }; } public function newCrossExplode(_arg1:int, _arg2:int):void{ var _local3:Object = {x:_arg1, y:_arg2, f:0}; crossExplodes.push(_local3); } public function updateCrossExplodes():void{ var _local2:Object; var _local3:Rectangle; var _local4:Point; var _local1:int; while (_local1 < crossExplodes.length) { _local2 = crossExplodes[_local1]; _local3 = new Rectangle(((_local2.f - (int((_local2.f / 4)) * 4)) * 0x0100), (int((_local2.f / 4)) * 0x0100), 0x0100, 0x0100); _local4 = new Point((_local2.x - 128), (_local2.y - 128)); epBmp.copyPixels(cexplode, _local3, _local4, null, null, true); _local2.f++; if (_local2.f > 28){ crossExplodes.splice(_local1, 1); _local1--; }; _local1++; }; } public function newGemBoom(_arg1:int, _arg2:int):void{ var _local3:Object = {x:_arg1, y:_arg2, f:0}; gemExplodes.push(_local3); } public function updateGemExplodes():void{ var _local2:Object; var _local3:Rectangle; var _local4:Point; var _local1:int; while (_local1 < gemExplodes.length) { _local2 = gemExplodes[_local1]; _local3 = new Rectangle(((_local2.f - (int((_local2.f / 4)) * 4)) * 64), (int((_local2.f / 4)) * 64), 64, 64); _local4 = new Point((_local2.x - 32), (_local2.y - 32)); epBmp.copyPixels(gexplode, _local3, _local4, null, null, true); _local2.f++; if (_local2.f > 24){ gemExplodes.splice(_local1, 1); _local1--; }; _local1++; }; } public function newLineExplode(_arg1:int, _arg2:int):void{ var _local3:Object = {x:_arg1, y:_arg2, f:0}; lineExplodes.push(_local3); } public function updateLineExplodes():void{ var _local2:Object; var _local3:Rectangle; var _local4:Point; var _local1:int; while (_local1 < lineExplodes.length) { _local2 = lineExplodes[_local1]; _local3 = new Rectangle(0, (_local2.f * 40), 0x0200, 40); _local4 = new Point(_local2.x, _local2.y); epBmp.copyPixels(lexplode, _local3, _local4, null, null, true); _local2.f++; if (_local2.f > 21){ lineExplodes.splice(_local1, 1); _local1--; }; _local1++; }; } public function newSmallExplode(_arg1:int, _arg2:int):void{ var _local3:Object = {x:_arg1, y:_arg2, f:0}; smallExplodes.push(_local3); } public function updateSmallExplodes():void{ var _local2:Object; var _local3:Rectangle; var _local4:Point; var _local1:int; while (_local1 < smallExplodes.length) { _local2 = smallExplodes[_local1]; _local3 = new Rectangle(((_local2.f - (int((_local2.f / 4)) * 4)) * 128), (int((_local2.f / 4)) * 128), 128, 128); _local4 = new Point((_local2.x - 64), (_local2.y - 64)); epBmp.copyPixels(sexplode, _local3, _local4, null, null, true); _local2.f++; if (_local2.f > 25){ smallExplodes.splice(_local1, 1); _local1--; }; _local1++; }; } public function newLightningStrike(_arg1:int, _arg2:int):void{ var _local3:Object = {x:_arg1, y:_arg2, f:0}; lightningStrikes.push(_local3); } public function updateLightningStrikes():void{ var _local2:Object; var _local3:Rectangle; var _local4:Point; var _local1:int; while (_local1 < lightningStrikes.length) { _local2 = lightningStrikes[_local1]; _local3 = new Rectangle((_local2.f * 40), 0, 40, 0x0200); _local4 = new Point(_local2.x, _local2.y); epBmp.copyPixels(lstrike, _local3, _local4, null, null, true); _local2.f++; if (_local2.f > 31){ lightningStrikes.splice(_local1, 1); _local1--; }; _local1++; }; } public function explodeBomb(_arg1:enemy):void{ var _local9:int; var _local2:int = Math.floor(((_arg1.x - 50) / 56)); var _local3:int = Math.floor(((_arg1.y - 10) / 56)); var _local4:* = (_local2 - 2); var _local5:* = (_local3 - 2); var _local6:* = (_local2 + 2); var _local7:* = (_local3 + 2); if (_local4 < 0){ _local4 = 0; }; if (_local5 < 0){ _local5 = 0; }; if (_local6 > 9){ _local6 = 9; }; if (_local7 > 9){ _local7 = 9; }; var _local8:int = _local5; while (_local8 <= _local7) { if (_local8 == _local3){ _local9 = _local4; while (_local9 <= _local6) { if (slots[_local8][_local9] != 0){ if (slots[_local8][_local9].currentFrame != 10){ slots[_local8][_local9].dead = true; }; }; _local9++; }; } else { if (slots[_local8][_local2] != 0){ if (slots[_local8][_local2].currentFrame != 10){ slots[_local8][_local2].dead = true; }; }; }; _local8++; }; } public function killEnemies(_arg1:enemy):void{ var _local10:int; var _local2:* = _arg1.currentFrame; var _local3:int = Math.floor(((_arg1.x - 50) / 56)); var _local4:int = Math.floor(((_arg1.y - 10) / 56)); var _local5:Array = new Array(); var _local6:Array = new Array(); _local5.push(_arg1); var _local7:Object = new Object(); _local7[((("enemy_" + _local4) + "_") + _local3)] = true; while (_local5.length > 0) { _local3 = Math.floor(((_local5[0].x - 50) / 56)); _local4 = Math.floor(((_local5[0].y - 10) / 56)); if ((((((((_local3 >= 0)) && ((_local3 <= 13)))) && ((_local4 >= 0)))) && ((_local4 <= 13)))){ if (_local3 >= 1){ if (slots[_local4][(_local3 - 1)] != 0){ if ((((slots[_local4][(_local3 - 1)].currentFrame == _local2)) || ((slots[_local4][(_local3 - 1)].currentFrame == 7)))){ if (_local7[((("enemy_" + _local4) + "_") + (_local3 - 1))] != true){ _local5.push(slots[_local4][(_local3 - 1)]); _local7[((("enemy_" + _local4) + "_") + (_local3 - 1))] = true; }; }; }; }; if (_local3 <= 12){ if (slots[_local4][(_local3 + 1)] != 0){ if ((((slots[_local4][(_local3 + 1)].currentFrame == _local2)) || ((slots[_local4][(_local3 + 1)].currentFrame == 7)))){ if (_local7[((("enemy_" + _local4) + "_") + (_local3 + 1))] != true){ _local5.push(slots[_local4][(_local3 + 1)]); _local7[((("enemy_" + _local4) + "_") + (_local3 + 1))] = true; }; }; }; }; if (_local4 <= 12){ if (slots[(_local4 + 1)][_local3] != 0){ if ((((slots[(_local4 + 1)][_local3].currentFrame == _local2)) || ((slots[(_local4 + 1)][_local3].currentFrame == 7)))){ if (_local7[((("enemy_" + (_local4 + 1)) + "_") + _local3)] != true){ _local5.push(slots[(_local4 + 1)][_local3]); _local7[((("enemy_" + (_local4 + 1)) + "_") + _local3)] = true; }; }; }; }; if (_local4 >= 1){ if (slots[(_local4 - 1)][_local3] != 0){ if ((((slots[(_local4 - 1)][_local3].currentFrame == _local2)) || ((slots[(_local4 - 1)][_local3].currentFrame == 7)))){ if (_local7[((("enemy_" + (_local4 - 1)) + "_") + _local3)] != true){ _local5.push(slots[(_local4 - 1)][_local3]); _local7[((("enemy_" + (_local4 - 1)) + "_") + _local3)] = true; }; }; }; }; _local6.push(_local5[0]); }; _local5.splice(0, 1); }; var _local8:int = _local6.length; var _local9:int; while (_local9 < _local6.length) { if (_local6[_local9] != 0){ if (_local6[_local9].currentFrame == 7){ _local8 = (_local8 * 3); hitcombo.play(); }; _local6[_local9].dead = true; }; _local9++; }; if (_local8 > 1){ newCombo(_arg1.x, _arg1.y, _local8); _local10 = 0; if ((_local8 % 2) == 0){ _local10 = (_local8 / 2); } else { _local10 = ((_local8 - 1) / 2); }; newCoin(_arg1.x, _arg1.y, _local10); }; } public function spinFruits():void{ var _local1:int = int((Math.random() * 12)); if (_local1 <= 5){ _local1 = 0; } else { powersUsed++; if (powersUsed == 10){ API.unlockMedal("Power Hungry"); }; if (powersUsed == 20){ API.unlockMedal("Attention Seeker"); }; }; outcome = _local1; spinTimer = 90; spinning = true; } public function updateFruits():void{ spinTimer--; if (spinTimer == 80){ stopslot.play(); GUI.machine.fruit.row1.x = (GUI.machine.fruit.row1.x + 500); if (outcome == 0){ GUI.machine.fruit.win1.gotoAndStop((int((Math.random() * 6)) + 2)); } else { GUI.machine.fruit.win1.gotoAndStop((outcome - 4)); }; } else { if (spinTimer == 60){ stopslot.play(); GUI.machine.fruit.row2.x = (GUI.machine.fruit.row2.x + 500); if (outcome == 0){ GUI.machine.fruit.win2.gotoAndStop((int((Math.random() * 6)) + 2)); } else { GUI.machine.fruit.win2.gotoAndStop((outcome - 4)); }; } else { if (spinTimer == 40){ stopslot.play(); GUI.machine.fruit.row3.x = (GUI.machine.fruit.row3.x + 500); if (outcome == 0){ GUI.machine.fruit.win3.gotoAndStop((int((Math.random() * 6)) + 2)); while (GUI.machine.fruit.win3.currentFrame == GUI.machine.fruit.win2.currentFrame) { GUI.machine.fruit.win3.gotoAndStop((int((Math.random() * 6)) + 2)); }; newTripple(1); slotslose.play(); } else { GUI.machine.fruit.win3.gotoAndStop((outcome - 4)); if ((outcome - 4) == 2){ newBeam(); } else { if ((outcome - 4) == 3){ newSpreadShot(); } else { if ((outcome - 4) == 4){ newUpWiper(); } else { if ((outcome - 4) == 5){ newWiper(); } else { if ((outcome - 4) == 6){ newLightnings(); } else { newBooms(); }; }; }; }; }; winslots.play(); newTripple((outcome - 4)); rumble = 20; }; } else { if (spinTimer == 0){ GUI.machine.fruit.win1.gotoAndStop(1); GUI.machine.fruit.win2.gotoAndStop(1); GUI.machine.fruit.win3.gotoAndStop(1); GUI.machine.fruit.row1.gotoAndPlay(int(((Math.random() * 10) + 1))); GUI.machine.fruit.row2.gotoAndPlay(int(((Math.random() * 10) + 1))); GUI.machine.fruit.row3.gotoAndPlay(int(((Math.random() * 10) + 1))); GUI.machine.fruit.row1.x = (GUI.machine.fruit.row1.x - 500); GUI.machine.fruit.row2.x = (GUI.machine.fruit.row2.x - 500); GUI.machine.fruit.row3.x = (GUI.machine.fruit.row3.x - 500); spinning = false; }; }; }; }; } public function updateGameover():void{ } public function updateTrans():void{ if (TRANS.currentFrame == 16){ if (transTo == "game"){ cleanUpTitle(); TITLE.x = -900; removeChild(TITLE); if (qual == 0){ GUI.qualitytoggle.mc.gotoAndStop(2); } else { GUI.qualitytoggle.mc.gotoAndStop(1); }; if (audio == 0){ GUI.audiotoggle.mc.gotoAndStop(2); } else { GUI.audiotoggle.mc.gotoAndStop(1); }; screenState = "game"; startGame(); } else { if (transTo == "credits"){ CREDITS.x = 0; addChild(CREDITS); removeChild(TRANS); addChild(TRANS); TITLE.x = -900; removeChild(TITLE); screenState = "credits"; } else { if (transTo == "tutorial"){ TITLE.x = -900; removeChild(TITLE); TUTORIAL.x = 0; addChild(TUTORIAL); removeChild(TRANS); addChild(TRANS); screenState = "tutorial"; } else { if (transTo == "gameover"){ stage.quality = StageQuality.BEST; GAMEOVER.x = 400; GAMEOVER.y = 310; GAMEOVER.gotoAndPlay(1); addChild(GAMEOVER); removeChild(TRANS); addChild(TRANS); GAMEOVER.scoretxt.text = String(score); screenState = "gameover"; endGame(); } else { if (transTo == "title"){ GAMEOVER.x = -900; if (gameState == "gameover"){ removeChild(GAMEOVER); }; CREDITS.x = -900; if (gameState == "credits"){ removeChild(CREDITS); }; TUTORIAL.x = -900; if (gameState == "tutorial"){ removeChild(TUTORIAL); }; screenState = "title"; TITLE.x = 0; addChild(TITLE); removeChild(TRANS); addChild(TRANS); if (qual == 0){ TITLE.qualitytoggle.mc.gotoAndStop(2); } else { TITLE.qualitytoggle.mc.gotoAndStop(1); }; if (audio == 0){ TITLE.audiotoggle.mc.gotoAndStop(2); } else { TITLE.audiotoggle.mc.gotoAndStop(1); }; } else { if (transTo == "showscore"){ cleanUpTitle(); TITLE.x = -900; removeChild(TITLE); screenState = "scores"; showScores(); } else { if (transTo == "submitscore"){ GAMEOVER.x = -900; removeChild(GAMEOVER); screenState = "scores"; submitScore(); }; }; }; }; }; }; }; }; } public function updateGame():void{ if (lastScore > score){ lastScore = 0; }; if ((((score >= 10000)) && ((lastScore < 10000)))){ API.unlockMedal("Child's Play"); }; if ((((score >= 40000)) && ((lastScore < 40000)))){ API.unlockMedal("Getting Warm"); }; if ((((score >= 60000)) && ((lastScore < 60000)))){ API.unlockMedal("Bug Buster"); }; if ((((score >= 80000)) && ((lastScore < 80000)))){ API.unlockMedal("Super Lizzard"); }; if ((((gameState == "start")) || ((gameState == "playing")))){ if (moving == true){ updateEnemies(); changeDirs(); if (gameState == "start"){ if (invaders.length >= 30){ GRG.play(); gameState = "playing"; enemySpeed = 3; }; }; }; if (spinning == true){ updateFruits(); }; bgBmp.colorTransform(stageRect, bgFade); epBmp.fillRect(stageRect, 0); if (rumble > 0){ game.x = ((Math.random() * (3 + rumble)) - (Math.random() * (3 + rumble))); game.y = ((Math.random() * (3 + rumble)) - (Math.random() * (3 + rumble))); bgBit.x = ((Math.random() * (3 + rumble)) - (Math.random() * (3 + rumble))); bgBit.y = ((Math.random() * (3 + rumble)) - (Math.random() * (3 + rumble))); rumble--; if (rumble <= 0){ game.x = 0; game.y = 0; bgBit.x = 0; bgBit.y = 0; }; }; }; if (gameState == "playing"){ if (messScrolling == true){ MESS.x = (MESS.x + 8); if (MESS.x > (stageW + 300)){ MESS.x = -300; messScrolling = false; }; }; checkDead(); stopScores(); updateBullets(); updateSquirrelBullets(); updateCoins(); updateExplosions(); updateTrails(); updateCombos(); if (gaugeTimer == 0){ GUI.machine.pink.gotoAndStop(credits); }; updateDeads(); updateCoinHits(); updateTripples(); updateSmallExplodes(); updateBeams(); updateLightnings(); updateCrossExplodes(); updateGemExplodes(); updateLineExplodes(); updateLightningStrikes(); updateSquirrelShoots(); updateWebs(); updateBulges(); updateWipers(); updateUpWipers(); if ((((water.currentFrame <= 15)) || ((water.currentFrame > 132)))){ ship.chameleon.gear.alpha = 0; } else { ship.chameleon.gear.alpha = 1; }; if (stunTime == 0){ if (downKeys.key37 == true){ ship.chameleon.kmilion.scaleX = -1; ship.chameleon.gear.scaleX = -1; ship.x = (ship.x - 10); if (frame != "move"){ ship.chameleon.kmilion.gotoAndPlay("move"); ship.chameleon.gear.gotoAndPlay("move"); frame = "move"; }; GUI.squirrels.s1.play(); GUI.squirrels.s2.play(); if (ship.x < 30){ ship.x = 30; }; } else { if (downKeys.key39 == true){ ship.chameleon.kmilion.scaleX = 1; ship.chameleon.gear.scaleX = 1; ship.x = (ship.x + 10); if (frame != "move"){ ship.chameleon.kmilion.gotoAndPlay("move"); ship.chameleon.gear.gotoAndPlay("move"); frame = "move"; }; GUI.squirrels.s1.play(); GUI.squirrels.s2.play(); if (ship.x > stageW){ ship.x = stageW; }; } else { if ((((ship.chameleon.kmilion.currentFrame < 36)) && ((ship.chameleon.kmilion.currentFrame >= 15)))){ ship.chameleon.kmilion.gotoAndPlay("breathe"); ship.chameleon.gear.gotoAndPlay("breathe"); }; frame = "breathe"; GUI.squirrels.s1.stop(); GUI.squirrels.s2.stop(); }; }; } else { stunTime--; if (stunTime == 0){ stunAnim.x = -800; }; }; GUI.squirrels.x = (ship.x - 605); GUI.pipe.scaleX = (((GUI.squirrels.x - 78) * -1) / 150); } else { if (gameState == "dead"){ playerDead--; if (playerDead <= 0){ transTo = "gameover"; TRANS.play(); screenState = "trans"; }; }; }; } public function keydown(_arg1:KeyboardEvent):void{ downKeys[("key" + _arg1.keyCode)] = true; if ((((gameState == "instruct")) && ((((_arg1.keyCode == 65)) || ((_arg1.keyCode == 88)))))){ menselection.play(); gameState = "start"; removeChild(INSTRUCTIONS); } else { if (gameState == "paused"){ gameState = "playing"; PAUSE.x = -800; } else { if (gameState == "playing"){ if (_arg1.keyCode == 80){ gameState = "paused"; PAUSE.x = (stageW / 2); }; }; }; }; } public function keyup(_arg1:KeyboardEvent):void{ downKeys[("key" + _arg1.keyCode)] = false; if (screenState != "scores"){ if (_arg1.keyCode == 77){ if (!soundOn){ SoundMixer.soundTransform = new SoundTransform(1, 0); soundOn = true; } else { SoundMixer.soundTransform = new SoundTransform(0, 0); soundOn = false; }; }; }; if (gameState == "playing"){ if ((((_arg1.keyCode == 65)) || ((_arg1.keyCode == 88)))){ if (stunTime == 0){ fire(); ship.chameleon.kmilion.gotoAndPlay("fire"); ship.chameleon.gear.gotoAndPlay("fire"); frame = "fire"; }; } else { if (_arg1.keyCode == 83){ if ((((credits >= 15)) && ((spinning == false)))){ kaching.play(); credits = (credits - 15); gaugeTimer = 15; GUI.machine.pink.gotoAndPlay((170 - GUI.machine.pink.currentFrame)); if (credits < 15){ GUI.machine.body.gotoAndStop(1); GUI.machine.greenlight.gotoAndStop(1); }; spinFruits(); }; }; }; }; } public function mousedown(_arg1:MouseEvent):void{ } public function update(_arg1:Event):void{ if (screenState == "gameover"){ updateGameover(); } else { if (screenState == "game"){ updateGame(); } else { if (screenState == "trans"){ updateTrans(); }; }; }; } public function showScores():void{ var o:Object = {n:[13, 15, 15, 5, 2, 14, 0, 12, 10, 1, 7, 5, 13, 2, 9, 6], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, "dff52e0ca175d296"); MochiScores.showLeaderboard({onClose:function (){ closeBoard(); }, boardID:boardID}); } public function submitScore():void{ var o:Object = {n:[13, 15, 15, 5, 2, 14, 0, 12, 10, 1, 7, 5, 13, 2, 9, 6], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, "dff52e0ca175d296"); MochiScores.showLeaderboard({onClose:function (){ closeBoard(); }, boardID:boardID, score:score}); } public function closeBoard():void{ transTo = "title"; screenState = "trans"; TRANS.play(); } public function cleanUpTitle():void{ var _local1:int; while (_local1 < titleEnemies.length) { removeChild(titleEnemies[_local1]); _local1++; }; titleEnemies = new Array(); } function __setProp___id1__Scene1_Layer1_0(){ if ((((__setPropDict[__id1_] == undefined)) || (!((int(__setPropDict[__id1_]) == 1))))){ __setPropDict[__id1_] = 1; try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.debugMode = true; __id1_.encryptionKey = "v0YtQJu2Ah05era1TSOXFOoskqfpZDCh"; __id1_.movieId = "12479:bOL2KOgE"; __id1_.movieVersion = ""; __id1_.showConnectingPopup = true; __id1_.useErrorPopup = true; __id1_.useMedalPopup = true; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame1(){ __setProp___id1__Scene1_Layer1_0(); stage.showDefaultContextMenu = false; MochiServices.connect("fac9bccb2c88d93e", root); url1 = stage.loaderInfo.url; urlStart1 = (url1.indexOf("://") + 3); urlEnd1 = url1.indexOf("/", urlStart1); domain1 = url1.substring(urlStart1, urlEnd1); lastDot1 = (domain1.lastIndexOf(".") - 1); domEnd1 = (domain1.lastIndexOf(".", lastDot1) + 1); domain1 = domain1.substring(domEnd1, domain1.length); stop(); } function frame2(){ SoundMixer.soundTransform = new SoundTransform(0, 0); play(); } function frame3(){ SoundMixer.stopAll(); } function frame4(){ skipbtn.addEventListener(MouseEvent.CLICK, clickskip); SoundMixer.soundTransform = new SoundTransform(1, 0); stop(); timer5 = 0; this.addEventListener(Event.ENTER_FRAME, updatelogo5); stage.addEventListener(MouseEvent.MOUSE_UP, getLink5); } function frame5(){ SoundMixer.soundTransform = new SoundTransform(1, 0); stop(); timer4 = 0; this.addEventListener(Event.ENTER_FRAME, updatelogo4); stage.addEventListener(MouseEvent.MOUSE_UP, getLink4); } function frame6(){ SoundMixer.soundTransform = new SoundTransform(1, 0); stop(); timer7 = 0; this.addEventListener(Event.ENTER_FRAME, updatelogo7); stage.addEventListener(MouseEvent.MOUSE_UP, getLink7); } function frame7(){ SoundMixer.soundTransform = new SoundTransform(1, 0); stop(); timer8 = 0; this.addEventListener(Event.ENTER_FRAME, updatelogo8); } function frame8(){ SoundMixer.soundTransform = new SoundTransform(1, 0); stageW = 560; stageH = 520; frame = "breathe"; menroll = new menuroll(); menselection = new menuselection(); shootgun = new gunshot(); coincollect = new collectcoin(); slotslose = new loseslots(); soundgameover = new gameoversound(); stopslot = new slotstop(); winslots = new slotswin(); kaching = new spendcoins(); exp1 = new explodesound1(); exp2 = new explodesound2(); music = new musicloop(); menuloop = new titlesounds(); bombboom = new bombexplode(); bubblessound = new bubbles(); hitcombo = new special1(); hitgem = new special2(); ouch = new hitsquirrel(); warning = new warningfull(); loseall = new losegems(); stunTime = 0; menuloop.play(0, 9999); stageRect = new Rectangle(0, 0, (stageW + 60), stageH); bgFade = new ColorTransform(1, 1, 1, 0.7, 0, 0, 0, 0); bgBmp = new BitmapData(stageW, stageH, true, 0); bgBit = new Bitmap(bgBmp); epBmp = new BitmapData((stageW + 60), stageH, true, 0); epBit = new Bitmap(epBmp); cexplode = new crossexplode(0, 0); gexplode = new gemsexplode(0, 0); lexplode = new lineexplode(0, 0); sexplode = new smallexplode(0, 0); lstrike = new lightningstrike(0, 0); downKeys = new Object(); titTimer = 0; screenState = "title"; gameState = "start"; menuSelect = 0; transTo = "game"; soundOn = true; speedinc = false; rocksDestroyed = 0; powersUsed = 0; invaders = new Array(); bullets = new Array(); squirrelBullets = new Array(); slots = new Array(); coins = new Array(); explosions = new Array(); trails = new Array(); combos = new Array(); deads = new Array(); coinhits = new Array(); tripples = new Array(); beams = new Array(); lightnings = new Array(); wipers = new Array(); upwipers = new Array(); titleEnemies = new Array(); crossExplodes = new Array(); gemExplodes = new Array(); smallExplodes = new Array(); lineExplodes = new Array(); lightningStrikes = new Array(); coinQueue = new Array(); bulges = new Array(); squirrelShoots = new Array(); webs = new Array(); rumble = 0; colours = 3; moves = 4; maxMoves = 4; moving = false; moveTimer = 2; stopTimer = 100; outcome = 0; spinning = false; spinTimer = 0; playerMoving = 0; playerSpeed = 10; enemySpeed = 28; colourList = [0xCC00, 0xFF0000, 0xFFFF00, 52479, 0xFF0099, 0xCC00FF, 0xFF9900]; cols = [0xFFCC00, 3368703, 0xFF0000, 0x33CC00, 13382604]; score = 0; combo = 0; credits = 0; playerDead = 0; gaugeTimer = 0; bgTimer = 0; messScrolling = false; bgSprite = new Sprite(); MESS = new messagebox(); PAUSE = new pausedmenu(); bgart = new backgroundart(); water = new waterAnim(); stunAnim = new stunned(); scoreCounts = {n1:0, n2:0, n3:0, n4:0, n5:0, n6:0}; squirrelClick = false; qual = 1; audio = 1; lastScore = 0; addEventListener(Event.ENTER_FRAME, update); stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown); stage.addEventListener(KeyboardEvent.KEY_UP, keyup); stage.addEventListener(MouseEvent.MOUSE_DOWN, mousedown); init(); stop(); fps = new FPS("left"); } } }//package k_fla
Section 54
//MC_gauge_103 (k_fla.MC_gauge_103) package k_fla { import flash.display.*; public dynamic class MC_gauge_103 extends MovieClip { public function MC_gauge_103(){ addFrameScript(0, frame1, 84, frame85); } function frame1(){ stop(); } function frame85(){ stop(); } } }//package k_fla
Section 55
//MC_machineBody_86 (k_fla.MC_machineBody_86) package k_fla { import flash.display.*; public dynamic class MC_machineBody_86 extends MovieClip { public function MC_machineBody_86(){ addFrameScript(0, frame1, 29, frame30); } function frame1(){ stop(); } function frame30(){ gotoAndPlay(2); } } }//package k_fla
Section 56
//MC_quality_120 (k_fla.MC_quality_120) package k_fla { import flash.display.*; public dynamic class MC_quality_120 extends MovieClip { public var mc:MovieClip; public function MC_quality_120(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 57
//MC_rock_27 (k_fla.MC_rock_27) package k_fla { import flash.display.*; public dynamic class MC_rock_27 extends MovieClip { public function MC_rock_27(){ addFrameScript(0, frame1, 7, frame8, 18, frame19); } function frame1(){ stop(); } function frame8(){ gotoAndStop(1); } function frame19(){ stop(); } } }//package k_fla
Section 58
//MC_sound_118 (k_fla.MC_sound_118) package k_fla { import flash.display.*; public dynamic class MC_sound_118 extends MovieClip { public var mc:MovieClip; public function MC_sound_118(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 59
//MC_squirrel_77 (k_fla.MC_squirrel_77) package k_fla { import flash.display.*; public dynamic class MC_squirrel_77 extends MovieClip { public function MC_squirrel_77(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package k_fla
Section 60
//menuintro_203 (k_fla.menuintro_203) package k_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.geom.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.ui.*; import flash.xml.*; public dynamic class menuintro_203 extends MovieClip { public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public var chameleon:MovieClip; public function menuintro_203(){ addFrameScript(9, frame10, 20, frame21); } function frame10(){ group5.gotoAndPlay("go"); group4.gotoAndPlay("go"); group3.gotoAndPlay("go"); } function frame21(){ chameleon.gear.alpha = 0; chameleon.gear._visible = false; } } }//package k_fla
Section 61
//page_credits_185 (k_fla.page_credits_185) package k_fla { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class page_credits_185 extends MovieClip { public var akelixe:SimpleButton; public var alillm:SimpleButton; public var lux:SimpleButton; public function page_credits_185(){ addFrameScript(0, frame1); } public function clickalillm(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.alillm.com"); navigateToURL(_local2, "_blank"); } public function clicklux(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.luxgames.net/blog/"); navigateToURL(_local2, "_blank"); } public function clickakelixe(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://lambdarecords.net/artists/akelixe/"); navigateToURL(_local2, "_blank"); } function frame1(){ alillm.addEventListener(MouseEvent.CLICK, clickalillm); lux.addEventListener(MouseEvent.CLICK, clicklux); akelixe.addEventListener(MouseEvent.CLICK, clickakelixe); } } }//package k_fla
Section 62
//page_home_204 (k_fla.page_home_204) package k_fla { import flash.display.*; public dynamic class page_home_204 extends MovieClip { public function page_home_204(){ addFrameScript(30, frame31); } function frame31(){ stop(); } } }//package k_fla
Section 63
//pressspace_84 (k_fla.pressspace_84) package k_fla { import flash.display.*; public dynamic class pressspace_84 extends MovieClip { public function pressspace_84(){ addFrameScript(0, frame1, 20, frame21); } function frame1(){ stop(); } function frame21(){ gotoAndPlay(3); } } }//package k_fla
Section 64
//sponsorintro_192 (k_fla.sponsorintro_192) package k_fla { import flash.display.*; public dynamic class sponsorintro_192 extends MovieClip { public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public function sponsorintro_192(){ addFrameScript(9, frame10); } function frame10(){ group5.gotoAndPlay("go"); group4.gotoAndPlay("go"); group3.gotoAndPlay("go"); } } }//package k_fla
Section 65
//UI_greenLight_106 (k_fla.UI_greenLight_106) package k_fla { import flash.display.*; public dynamic class UI_greenLight_106 extends MovieClip { public function UI_greenLight_106(){ addFrameScript(0, frame1, 15, frame16); } function frame1(){ stop(); } function frame16(){ gotoAndPlay(2); } } }//package k_fla
Section 66
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const LOGGED_IN:String = "LoggedIn"; public static const LOGGED_OUT:String = "LoggedOut"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGIN_HIDE:String = "LoginHide"; public static const STORE_SHOW:String = "StoreShow"; public static const STORE_HIDE:String = "StoreHide"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const ITEM_OWNED:String = "ItemOwned"; public static const ITEM_NEW:String = "ItemNew"; public static const STORE_ITEMS:String = "StoreItems"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IOError"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 67
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Fragment:Number; private var Sibling:MochiDigits; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function get value():Number{ return (Number(this.toString())); } public function set value(_arg1:Number):void{ setValue(_arg1); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } } }//package mochi.as3
Section 68
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } } }//package mochi.as3
Section 69
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_CENTER:String = "ALIGN_C"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const FORMAT_SHORT:String = "ShortForm"; public static const FORMAT_LONG:String = "LongForm"; private static var gameStart:Number; private static var levelStart:Number; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function trigger(_arg1:String, _arg2:Object=null):void{ if (_arg2 == null){ _arg2 = {}; } else { if (_arg2["kind"] != undefined){ trace("WARNING: optional arguements package contains key 'id', it will be overwritten"); _arg2["kind"] = _arg1; }; }; MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startGame():void{ gameStart = new Date().time; trigger("start_game"); } public static function endGame():void{ var _local1:Number = (new Date().time - gameStart); trigger("end_game", {time:_local1}); } public static function startLevel():void{ levelStart = new Date().time; trigger("start_level"); } public static function endLevel():void{ var _local1:Number = (new Date().time - levelStart); trigger("end_level", {time:_local1}); } } }//package mochi.as3
Section 70
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { public static var onCloseHandler:Object; public static var onErrorHandler:Object; private static var boardID:String; public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; var _local2:Object = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } } }//package mochi.as3
Section 71
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.geom.*; import flash.system.*; public class MochiServices { private static var _id:String; private static var _container:Object; private static var _clip:MovieClip; private static var _loader:Loader; private static var _timer:Timer; private static var _preserved:Object; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; private static var _services:String = "services.swf"; private static var _mochiLC:String = "MochiLC.swf"; private static var _swfVersion:String; private static var _listenChannelName:String = "__ms_"; private static var _sendChannel:LocalConnection; private static var _sendChannelName:String; private static var _connecting:Boolean = false; private static var _connected:Boolean = false; public static var netup:Boolean = true; public static var netupAttempted:Boolean = false; public static var onError:Object; public static var widget:Boolean = false; public static var servicesSync:MochiSync = new MochiSync(); private static var _mochiLocalConnection:MovieClip; public static function get id():String{ return (_id); } public static function get clip():Object{ return (_container); } public static function get childClip():Object{ return (_clip); } public static function getVersion():String{ return ("3.3 as3"); } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } public static function get connected():Boolean{ return (_connected); } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; var mc:MovieClip = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var _local3:String = ("_mochiservices_com_" + _arg1); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local4:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local4 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local4); _clip = createEmptyMovieClip(_arg2, _local3, 10336, false); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local5:URLRequest = new URLRequest(_local4); var _local6:URLVariables = new URLVariables(); _local6.listenLC = _listenChannelName; _local6.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local6.api_version = getVersion(); if (widget){ _local6.widget = true; }; _local5.data = _local6; _loader.load(_local5); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } private static function loadLCBridge(_arg1:Object):void{ var loader:Loader; var clip = _arg1; loader = new Loader(); var mochiLCURL:String = (_servURL + _mochiLC); var req:URLRequest = new URLRequest(mochiLCURL); var complete:Function = function (_arg1:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_clip._queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function onReceive(_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _clip._callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _clip._callbacks[cb]; } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_clip._queue))){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } } }//package mochi.as3
Section 72
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_REQUEST:String = "SyncRequest"; public static var SYNC_PROPERTY:String = "UpdateProperty"; public function MochiSync():void{ _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ if (_syncContainer[_arg1] == _arg2){ return; }; var _local3:String = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } } }//package mochi.as3
Section 73
//NewgroundsAPIAsset_API_Conencted_11 (PreloaderBar_fla.NewgroundsAPIAsset_API_Conencted_11) package PreloaderBar_fla { import flash.display.*; import com.newgrounds.components.*; public dynamic class NewgroundsAPIAsset_API_Conencted_11 extends MovieClip { public function NewgroundsAPIAsset_API_Conencted_11(){ addFrameScript(36, frame37); } function frame37(){ APIConnector(parent).clear(); } } }//package PreloaderBar_fla
Section 74
//NewgroundsAPIAsset_ConnectingAPI_9 (PreloaderBar_fla.NewgroundsAPIAsset_ConnectingAPI_9) package PreloaderBar_fla { import flash.display.*; public dynamic class NewgroundsAPIAsset_ConnectingAPI_9 extends MovieClip { public function NewgroundsAPIAsset_ConnectingAPI_9(){ addFrameScript(9, frame10); } function frame10(){ stop(); } } }//package PreloaderBar_fla
Section 75
//NewgroundsAPIAsset_Connection_Error_14 (PreloaderBar_fla.NewgroundsAPIAsset_Connection_Error_14) package PreloaderBar_fla { import flash.display.*; import com.newgrounds.components.*; public dynamic class NewgroundsAPIAsset_Connection_Error_14 extends MovieClip { public function NewgroundsAPIAsset_Connection_Error_14(){ addFrameScript(9, frame10, 20, frame21); } function frame21(){ APIConnector(parent).clear(); } function frame10(){ stop(); } } }//package PreloaderBar_fla
Section 76
//NewgroundsAPIAsset_FlashAd_Container_41 (PreloaderBar_fla.NewgroundsAPIAsset_FlashAd_Container_41) package PreloaderBar_fla { import com.newgrounds.*; import flash.display.*; import flash.events.*; public dynamic class NewgroundsAPIAsset_FlashAd_Container_41 extends MovieClip { public var ngLinkButton:SimpleButton; public var adMask:MovieClip; public function NewgroundsAPIAsset_FlashAd_Container_41(){ addFrameScript(0, frame1, 10, frame11); } function frame1(){ ngLinkButton.addEventListener(MouseEvent.CLICK, onNGLinkClicked); } public function onNGLinkClicked(_arg1:MouseEvent):void{ API.loadNewgrounds(); } function frame11(){ gotoAndPlay(1); } } }//package PreloaderBar_fla
Section 77
//NewgroundsAPIAsset_Load_Indicator_10 (PreloaderBar_fla.NewgroundsAPIAsset_Load_Indicator_10) package PreloaderBar_fla { import flash.display.*; import flash.events.*; public dynamic class NewgroundsAPIAsset_Load_Indicator_10 extends MovieClip { public function NewgroundsAPIAsset_Load_Indicator_10(){ addFrameScript(0, frame1); } function frame1(){ addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(_arg1:Event):void{ if (((visible) && (stage))){ rotation = (rotation + 30); } else { removeEventListener(Event.ENTER_FRAME, onEnterFrame); }; } } }//package PreloaderBar_fla
Section 78
//NewgroundsAPIAsset_Login_Warning_12 (PreloaderBar_fla.NewgroundsAPIAsset_Login_Warning_12) package PreloaderBar_fla { import flash.display.*; import com.newgrounds.components.*; public dynamic class NewgroundsAPIAsset_Login_Warning_12 extends MovieClip { public function NewgroundsAPIAsset_Login_Warning_12(){ addFrameScript(9, frame10, 20, frame21); } function frame21(){ APIConnector(parent).clear(); } function frame10(){ stop(); } } }//package PreloaderBar_fla
Section 79
//Timeline_5 (PreloaderBar_fla.Timeline_5) package PreloaderBar_fla { import flash.display.*; public dynamic class Timeline_5 extends MovieClip { public function Timeline_5(){ addFrameScript(39, frame40); } function frame40(){ stop(); } } }//package PreloaderBar_fla
Section 80
//backgroundart (backgroundart) package { import flash.display.*; public dynamic class backgroundart extends MovieClip { } }//package
Section 81
//boardlogo (boardlogo) package { import flash.display.*; public dynamic class boardlogo extends MovieClip { public function boardlogo(){ addFrameScript(98, frame99); } function frame99(){ stop(); } } }//package
Section 82
//bombexplode (bombexplode) package { import flash.media.*; public dynamic class bombexplode extends Sound { } }//package
Section 83
//bubbles (bubbles) package { import flash.media.*; public dynamic class bubbles extends Sound { } }//package
Section 84
//bulge (bulge) package { import flash.display.*; public dynamic class bulge extends MovieClip { public var mc:MovieClip; } }//package
Section 85
//bullet (bullet) package { import flash.display.*; public dynamic class bullet extends MovieClip { } }//package
Section 86
//coin (coin) package { import flash.display.*; public dynamic class coin extends MovieClip { } }//package
Section 87
//coinhit (coinhit) package { import flash.display.*; public dynamic class coinhit extends MovieClip { } }//package
Section 88
//collectcoin (collectcoin) package { import flash.media.*; public dynamic class collectcoin extends Sound { } }//package
Section 89
//combotext (combotext) package { import flash.display.*; import flash.text.*; public dynamic class combotext extends MovieClip { public var txt:TextField; } }//package
Section 90
//creds (creds) package { import flash.display.*; public dynamic class creds extends MovieClip { public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public var back:SimpleButton; public function creds(){ addFrameScript(0, frame1); } function frame1(){ group5.gotoAndStop(15); group4.gotoAndStop(15); group3.gotoAndStop(15); } } }//package
Section 91
//crossexplode (crossexplode) package { import flash.display.*; public dynamic class crossexplode extends BitmapData { public function crossexplode(_arg1:int=0x0400, _arg2:int=0x0800){ super(_arg1, _arg2); } } }//package
Section 92
//deathanim (deathanim) package { import flash.display.*; public dynamic class deathanim extends MovieClip { } }//package
Section 93
//enemy (enemy) package { import flash.display.*; public dynamic class enemy extends MovieClip { public var mc:MovieClip; public function enemy(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 94
//explode (explode) package { import flash.display.*; public dynamic class explode extends MovieClip { public function explode(){ addFrameScript(14, frame15); } function frame15(){ stop(); } } }//package
Section 95
//explode2 (explode2) package { import flash.display.*; public dynamic class explode2 extends MovieClip { public function explode2(){ addFrameScript(12, frame13); } function frame13(){ stop(); } } }//package
Section 96
//explodesound1 (explodesound1) package { import flash.media.*; public dynamic class explodesound1 extends Sound { } }//package
Section 97
//explodesound2 (explodesound2) package { import flash.media.*; public dynamic class explodesound2 extends Sound { } }//package
Section 98
//gameover (gameover) package { import flash.display.*; import flash.text.*; public dynamic class gameover extends MovieClip { public var scoretxt:TextField; public var submit:MovieClip; public var more:MovieClip; public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public var back:SimpleButton; public function gameover(){ addFrameScript(0, frame1); } function frame1(){ stop(); group3.gotoAndStop(15); group4.gotoAndStop(15); group5.gotoAndStop(15); } } }//package
Section 99
//gameoversound (gameoversound) package { import flash.media.*; public dynamic class gameoversound extends Sound { } }//package
Section 100
//gemsexplode (gemsexplode) package { import flash.display.*; public dynamic class gemsexplode extends BitmapData { public function gemsexplode(_arg1:int=0x0100, _arg2:int=384){ super(_arg1, _arg2); } } }//package
Section 101
//getreadygo (getreadygo) package { import flash.display.*; public dynamic class getreadygo extends MovieClip { public function getreadygo(){ addFrameScript(0, frame1, 30, frame31); } function frame1(){ stop(); } function frame31(){ stop(); } } }//package
Section 102
//gui (gui) package { import flash.display.*; import flash.text.*; public dynamic class gui extends MovieClip { public var machine:MovieClip; public var pressspace:MovieClip; public var qualitytoggle:MovieClip; public var pipe:MovieClip; public var creds:TextField; public var audiotoggle:MovieClip; public var squirrels:MovieClip; } }//package
Section 103
//gunshot (gunshot) package { import flash.media.*; public dynamic class gunshot extends Sound { } }//package
Section 104
//hitsquirrel (hitsquirrel) package { import flash.media.*; public dynamic class hitsquirrel extends Sound { } }//package
Section 105
//instructions (instructions) package { import flash.display.*; public dynamic class instructions extends MovieClip { } }//package
Section 106
//invader (invader) package { import flash.display.*; public dynamic class invader extends MovieClip { public function invader(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 107
//invader2 (invader2) package { import flash.display.*; public dynamic class invader2 extends MovieClip { } }//package
Section 108
//ktongue (ktongue) package { import flash.display.*; public dynamic class ktongue extends MovieClip { } }//package
Section 109
//lightningstrike (lightningstrike) package { import flash.display.*; public dynamic class lightningstrike extends BitmapData { public function lightningstrike(_arg1:int=1240, _arg2:int=0x0200){ super(_arg1, _arg2); } } }//package
Section 110
//lineexplode (lineexplode) package { import flash.display.*; public dynamic class lineexplode extends BitmapData { public function lineexplode(_arg1:int=0x0200, _arg2:int=840){ super(_arg1, _arg2); } } }//package
Section 111
//losegems (losegems) package { import flash.media.*; public dynamic class losegems extends Sound { } }//package
Section 112
//loseslots (loseslots) package { import flash.media.*; public dynamic class loseslots extends Sound { } }//package
Section 113
//menuroll (menuroll) package { import flash.media.*; public dynamic class menuroll extends Sound { } }//package
Section 114
//menuselection (menuselection) package { import flash.media.*; public dynamic class menuselection extends Sound { } }//package
Section 115
//messagebox (messagebox) package { import flash.display.*; public dynamic class messagebox extends MovieClip { public function messagebox(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 116
//musicloop (musicloop) package { import flash.media.*; public dynamic class musicloop extends Sound { } }//package
Section 117
//NewgroundsAPIAsset_big_popup_background (NewgroundsAPIAsset_big_popup_background) package { import flash.display.*; public dynamic class NewgroundsAPIAsset_big_popup_background extends MovieClip { public var shadow:MovieClip; public var b:MovieClip; public var c:MovieClip; public var bl:MovieClip; public var l:MovieClip; public var br:MovieClip; public var r:MovieClip; public var tl:MovieClip; public var t:MovieClip; public var tr:MovieClip; } }//package
Section 118
//pausedmenu (pausedmenu) package { import flash.display.*; public dynamic class pausedmenu extends MovieClip { } }//package
Section 119
//player (player) package { import flash.display.*; public dynamic class player extends MovieClip { public var chameleon:MovieClip; } }//package
Section 120
//slotstop (slotstop) package { import flash.media.*; public dynamic class slotstop extends Sound { } }//package
Section 121
//slotswin (slotswin) package { import flash.media.*; public dynamic class slotswin extends Sound { } }//package
Section 122
//smallexplode (smallexplode) package { import flash.display.*; public dynamic class smallexplode extends BitmapData { public function smallexplode(_arg1:int=0x0200, _arg2:int=796){ super(_arg1, _arg2); } } }//package
Section 123
//special1 (special1) package { import flash.media.*; public dynamic class special1 extends Sound { } }//package
Section 124
//special2 (special2) package { import flash.media.*; public dynamic class special2 extends Sound { } }//package
Section 125
//spendcoins (spendcoins) package { import flash.media.*; public dynamic class spendcoins extends Sound { } }//package
Section 126
//spiderweb (spiderweb) package { import flash.display.*; public dynamic class spiderweb extends MovieClip { } }//package
Section 127
//squirrelbullet (squirrelbullet) package { import flash.display.*; public dynamic class squirrelbullet extends MovieClip { } }//package
Section 128
//squirrelshoot (squirrelshoot) package { import flash.display.*; public dynamic class squirrelshoot extends MovieClip { public var mc:MovieClip; } }//package
Section 129
//stunned (stunned) package { import flash.display.*; public dynamic class stunned extends MovieClip { } }//package
Section 130
//title (title) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.geom.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.ui.*; import flash.xml.*; public dynamic class title extends MovieClip { public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public var creditsbtn:MovieClip; public var chameleon:MovieClip; public var tutorialbtn:MovieClip; public var qualitytoggle:MovieClip; public var viewbtn:MovieClip; public var playbtn:MovieClip; public var audiotoggle:MovieClip; public var morebtn:MovieClip; public function title(){ addFrameScript(0, frame1); } function frame1(){ group5.gotoAndStop(15); group4.gotoAndStop(15); group3.gotoAndStop(15); chameleon.gear.alpha = 0; } } }//package
Section 131
//titlesounds (titlesounds) package { import flash.media.*; public dynamic class titlesounds extends Sound { } }//package
Section 132
//trail (trail) package { import flash.display.*; public dynamic class trail extends MovieClip { } }//package
Section 133
//trans (trans) package { import flash.display.*; public dynamic class trans extends MovieClip { public function trans(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 134
//tripple (tripple) package { import flash.display.*; public dynamic class tripple extends MovieClip { public var mc:MovieClip; } }//package
Section 135
//tutorial (tutorial) package { import flash.display.*; public dynamic class tutorial extends MovieClip { public var squirrel:MovieClip; public var group3:MovieClip; public var group4:MovieClip; public var group5:MovieClip; public var back:SimpleButton; public var mc:MovieClip; public function tutorial(){ addFrameScript(0, frame1); } function frame1(){ group5.gotoAndStop(15); group4.gotoAndStop(15); group3.gotoAndStop(15); } } }//package
Section 136
//warningfull (warningfull) package { import flash.media.*; public dynamic class warningfull extends Sound { } }//package
Section 137
//waterAnim (waterAnim) package { import flash.display.*; public dynamic class waterAnim extends MovieClip { public function waterAnim(){ addFrameScript(0, frame1, 148, frame149); } function frame1(){ stop(); } function frame149(){ gotoAndStop(1); } } }//package

Library Items

Symbol 1 Sound {explodesound2}Used by:740
Symbol 2 Sound {explodesound1}Used by:740
Symbol 3 Sound {gunshot}Used by:740
Symbol 4 Sound {titlesounds}Used by:740
Symbol 5 Bitmap {gemsexplode}
Symbol 6 GraphicUsed by:7
Symbol 7 MovieClipUses:6Used by:8
Symbol 8 MovieClip {bulge}Uses:7
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClip {squirrelbullet}Uses:9
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClipUses:11Used by:13
Symbol 13 MovieClip {stunned}Uses:12
Symbol 14 GraphicUsed by:18
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClipUses:15Used by:18 657
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClipUses:14 16 17Used by:19
Symbol 19 MovieClip {deathanim}Uses:18
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClip {invader2}Uses:20
Symbol 22 GraphicUsed by:36
Symbol 23 FontUsed by:24 25 26 27 28 29 30 31 32 33 34 523 625 626 627 631 632 784 785 786
Symbol 24 TextUses:23Used by:36
Symbol 25 TextUses:23Used by:36
Symbol 26 TextUses:23Used by:36
Symbol 27 TextUses:23Used by:36
Symbol 28 TextUses:23Used by:36
Symbol 29 TextUses:23Used by:36
Symbol 30 TextUses:23Used by:36
Symbol 31 TextUses:23Used by:36
Symbol 32 TextUses:23Used by:36
Symbol 33 TextUses:23Used by:36
Symbol 34 TextUses:23Used by:35 36
Symbol 35 MovieClipUses:34Used by:36
Symbol 36 MovieClip {boardlogo}Uses:22 24 25 26 27 28 29 30 31 32 33 34 35
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {ktongue}Uses:37Used by:657
Symbol 39 GraphicUsed by:53
Symbol 40 FontUsed by:42
Symbol 41 FontUsed by:42
Symbol 42 TextUses:40 41Used by:53
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:53
Symbol 45 FontUsed by:46 52
Symbol 46 EditableTextUses:45Used by:53
Symbol 47 FontUsed by:48 49
Symbol 48 TextUses:47Used by:53
Symbol 49 EditableTextUses:47Used by:53
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:53
Symbol 52 EditableTextUses:45Used by:53
Symbol 53 MovieClip {com.newgrounds.components.MedalPopup}Uses:39 42 44 46 48 49 51 52Used by:Timeline
Symbol 54 GraphicUsed by:86 87
Symbol 55 GraphicUsed by:86 87
Symbol 56 GraphicUsed by:86 87
Symbol 57 GraphicUsed by:86 87
Symbol 58 GraphicUsed by:87
Symbol 59 GraphicUsed by:87
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:87
Symbol 62 GraphicUsed by:64
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClipUses:62 63Used by:87
Symbol 65 GraphicUsed by:87
Symbol 66 GraphicUsed by:87
Symbol 67 GraphicUsed by:74 76
Symbol 68 GraphicUsed by:74 76
Symbol 69 GraphicUsed by:74 76
Symbol 70 GraphicUsed by:74 76
Symbol 71 GraphicUsed by:74 76
Symbol 72 GraphicUsed by:74 76
Symbol 73 GraphicUsed by:74 76
Symbol 74 MovieClipUses:67 68 69 70 71 72 73Used by:87
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClip {PreloaderBar_fla.Timeline_5}Uses:67 68 69 70 71 72 73 75Used by:87
Symbol 77 ShapeTweeningUsed by:87
Symbol 78 GraphicUsed by:87
Symbol 79 ShapeTweeningUsed by:87
Symbol 80 ShapeTweeningUsed by:87
Symbol 81 GraphicUsed by:87
Symbol 82 GraphicUsed by:86
Symbol 83 GraphicUsed by:85
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClipUses:83 84Used by:86
Symbol 86 ButtonUses:54 55 56 57 82 85Used by:87
Symbol 87 MovieClip {com.newgrounds.components.PreloaderBar}Uses:54 55 56 57 58 59 61 64 65 66 74 76 77 78 79 80 81 86Used by:Timeline
Symbol 88 GraphicUsed by:97 99 149
Symbol 89 GraphicUsed by:97 99 149
Symbol 90 GraphicUsed by:97 99 149
Symbol 91 GraphicUsed by:97 99 149
Symbol 92 FontUsed by:93 96 98 102 106 108 139 140 146 147
Symbol 93 TextUses:92Used by:149
Symbol 94 GraphicUsed by:95
Symbol 95 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_Load_Indicator_10}Uses:94Used by:97 162
Symbol 96 TextUses:92Used by:97
Symbol 97 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_ConnectingAPI_9}Uses:88 89 90 91 95 96Used by:149
Symbol 98 TextUses:92Used by:99
Symbol 99 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_API_Conencted_11}Uses:88 89 90 91 98Used by:149
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100Used by:107 111
Symbol 102 TextUses:92Used by:107
Symbol 103 BitmapUsed by:104
Symbol 104 GraphicUses:103Used by:107 111
Symbol 106 TextUses:92Used by:107
Symbol 107 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_Login_Warning_12}Uses:101 102 104 106Used by:149
Symbol 108 TextUses:92Used by:111
Symbol 109 FontUsed by:110 145 148
Symbol 110 TextUses:109Used by:111
Symbol 111 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_Connection_Error_14}Uses:101 108 110 104Used by:149
Symbol 112 GraphicUsed by:113 149
Symbol 113 MovieClipUses:112Used by:149
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:114Used by:134
Symbol 116 GraphicUsed by:117
Symbol 117 MovieClipUses:116Used by:134
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:134
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClipUses:120Used by:134
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClipUses:122Used by:134
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClipUses:124Used by:134
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:134
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128Used by:134
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:134
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:132Used by:134
Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background}Uses:115 117 119 121 123 125 127 129 131 133Used by:149
Symbol 135 GraphicUsed by:149
Symbol 136 GraphicUsed by:138
Symbol 137 GraphicUsed by:138
Symbol 138 ButtonUses:136 137Used by:149
Symbol 139 TextUses:92Used by:149
Symbol 140 TextUses:92Used by:149
Symbol 141 GraphicUsed by:144
Symbol 142 GraphicUsed by:144
Symbol 143 GraphicUsed by:144
Symbol 144 ButtonUses:141 142 143Used by:149
Symbol 145 TextUses:109Used by:149
Symbol 146 TextUses:92Used by:149
Symbol 147 TextUses:92Used by:149
Symbol 148 TextUses:109Used by:149
Symbol 149 MovieClip {com.newgrounds.components.APIConnector}Uses:88 89 90 91 93 97 99 107 111 113 134 135 138 139 140 144 145 112 146 147 148Used by:Timeline
Symbol 150 GraphicUsed by:162
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClipUses:151Used by:162
Symbol 153 GraphicUsed by:162
Symbol 154 GraphicUsed by:157
Symbol 155 GraphicUsed by:157
Symbol 156 GraphicUsed by:157
Symbol 157 ButtonUses:154 155 156Used by:162
Symbol 158 BitmapUsed by:159
Symbol 159 GraphicUses:158Used by:162
Symbol 160 GraphicUsed by:162
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_FlashAd_Container_41}Uses:150 152 153 157 159 160 161 95Used by:163
Symbol 163 MovieClip {com.newgrounds.components.FlashAd}Uses:162Used by:Timeline
Symbol 164 BitmapUsed by:170 171 172 173 174 175 176 177 178 179 180 181
Symbol 165 BitmapUsed by:170 171 172 173 174 175 176 177 178 179 180 181
Symbol 166 BitmapUsed by:170 171 172 173 174 175 176 177 178 179 180 181
Symbol 167 BitmapUsed by:170 171 172 173 174 175 176 177 178 179 180 181
Symbol 168 BitmapUsed by:170 171 172 173 174 175 176 177 178 179 180 181
Symbol 169 BitmapUsed by:170 171 172 173 174 175 176 177 178 179 180 181
Symbol 170 GraphicUses:164 165 166 167 168 169Used by:182
Symbol 171 GraphicUses:169 165 166 164 167 168Used by:182
Symbol 172 GraphicUses:168 169 165 164 166 167Used by:182
Symbol 173 GraphicUses:167 168 169 165 164 166Used by:182
Symbol 174 GraphicUses:164 167 168 169 166 165Used by:182
Symbol 175 GraphicUses:166 164 167 168 169 165Used by:182
Symbol 176 GraphicUses:165 166 164 167 168 169Used by:182
Symbol 177 GraphicUses:165 166 164 167 168 169Used by:182
Symbol 178 GraphicUses:166 165 164 167 168 169Used by:182
Symbol 179 GraphicUses:164 166 165 167 168 169Used by:182
Symbol 180 GraphicUses:167 164 166 165 168 169Used by:182
Symbol 181 GraphicUses:169 167 164 166 165 168Used by:182
Symbol 182 MovieClipUses:170 171 172 173 174 175 176 177 178 179 180 181Used by:Timeline
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:183Used by:185
Symbol 185 MovieClipUses:184Used by:186
Symbol 186 MovieClipUses:185Used by:187
Symbol 187 MovieClip {bullet}Uses:186Used by:Timeline
Symbol 188 BitmapUsed by:189
Symbol 189 GraphicUses:188Used by:190
Symbol 190 MovieClipUses:189Used by:191 195
Symbol 191 MovieClip {coin}Uses:190Used by:628  Timeline
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:194
Symbol 194 MovieClipUses:193Used by:195 324
Symbol 195 MovieClipUses:190 194Used by:196
Symbol 196 MovieClip {coinhit}Uses:195Used by:Timeline
Symbol 197 FontUsed by:198 319 475 485 486 487 489 493 494 560 686 690 694 698 708 710 712 714 716 718 768 770 772 773 780
Symbol 198 EditableTextUses:197Used by:199
Symbol 199 MovieClip {combotext}Uses:198Used by:Timeline
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:220
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:220
Symbol 204 BitmapUsed by:205
Symbol 205 GraphicUses:204Used by:220
Symbol 206 BitmapUsed by:207
Symbol 207 GraphicUses:206Used by:220
Symbol 208 BitmapUsed by:209
Symbol 209 GraphicUses:208Used by:220
Symbol 210 BitmapUsed by:211
Symbol 211 GraphicUses:210Used by:220
Symbol 212 BitmapUsed by:213
Symbol 213 GraphicUses:212Used by:220
Symbol 214 BitmapUsed by:215
Symbol 215 GraphicUses:214Used by:220
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:220
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:220
Symbol 220 MovieClipUses:201 203 205 207 209 211 213 215 217 219Used by:370 778
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:241
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:241
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:241
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:241
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:241
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:241
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:241
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:241
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:241
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:241
Symbol 241 MovieClipUses:222 224 226 228 230 232 234 236 238 240Used by:370
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:264
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:264
Symbol 246 BitmapUsed by:247
Symbol 247 GraphicUses:246Used by:264
Symbol 248 BitmapUsed by:249
Symbol 249 GraphicUses:248Used by:264
Symbol 250 BitmapUsed by:251
Symbol 251 GraphicUses:250Used by:264
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:264
Symbol 254 BitmapUsed by:255
Symbol 255 GraphicUses:254Used by:264
Symbol 256 BitmapUsed by:257
Symbol 257 GraphicUses:256Used by:264
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:264
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:260Used by:264
Symbol 262 BitmapUsed by:263
Symbol 263 GraphicUses:262Used by:264
Symbol 264 MovieClipUses:243 245 247 249 251 253 255 257 259 261 263Used by:370
Symbol 265 BitmapUsed by:266
Symbol 266 GraphicUses:265Used by:285
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:285
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:269Used by:285
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:285
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:285
Symbol 275 BitmapUsed by:276
Symbol 276 GraphicUses:275Used by:285
Symbol 277 BitmapUsed by:278
Symbol 278 GraphicUses:277Used by:285
Symbol 279 BitmapUsed by:280
Symbol 280 GraphicUses:279Used by:285
Symbol 281 BitmapUsed by:282
Symbol 282 GraphicUses:281Used by:285
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:285
Symbol 285 MovieClipUses:266 268 270 272 274 276 278 280 282 284Used by:370 778
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:306
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:306
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:306
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:306
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:306
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:306
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:306
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:306
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:306
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:306
Symbol 306 MovieClipUses:287 289 291 293 295 297 299 301 303 305Used by:370
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:307Used by:309
Symbol 309 MovieClipUses:308Used by:315
Symbol 310 GraphicUsed by:315
Symbol 311 GraphicUsed by:314
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClipUses:312Used by:314
Symbol 314 MovieClipUses:311 313Used by:315
Symbol 315 MovieClipUses:309 310 314Used by:370 778
Symbol 316 BitmapUsed by:317
Symbol 317 GraphicUses:316Used by:318
Symbol 318 MovieClipUses:317Used by:320
Symbol 319 TextUses:197Used by:320
Symbol 320 MovieClipUses:318 319Used by:370
Symbol 321 BitmapUsed by:322
Symbol 322 GraphicUses:321Used by:323
Symbol 323 MovieClipUses:322Used by:324
Symbol 324 MovieClipUses:323 194Used by:370 479 491 688 692 696 700 787
Symbol 325 BitmapUsed by:326
Symbol 326 GraphicUses:325Used by:327
Symbol 327 MovieClipUses:326Used by:356
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:330
Symbol 330 MovieClipUses:329Used by:356
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:333
Symbol 333 MovieClipUses:332Used by:356
Symbol 334 BitmapUsed by:335
Symbol 335 GraphicUses:334Used by:336
Symbol 336 MovieClipUses:335Used by:356
Symbol 337 BitmapUsed by:338
Symbol 338 GraphicUses:337Used by:339
Symbol 339 MovieClipUses:338Used by:356
Symbol 340 BitmapUsed by:341
Symbol 341 GraphicUses:340Used by:342
Symbol 342 MovieClipUses:341Used by:356
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:345
Symbol 345 MovieClipUses:344Used by:356
Symbol 346 BitmapUsed by:347
Symbol 347 GraphicUses:346Used by:348
Symbol 348 MovieClipUses:347Used by:356
Symbol 349 BitmapUsed by:350
Symbol 350 GraphicUses:349Used by:351
Symbol 351 MovieClipUses:350Used by:356
Symbol 352 BitmapUsed by:353
Symbol 353 GraphicUses:352Used by:354
Symbol 354 MovieClipUses:353Used by:355
Symbol 355 MovieClipUses:354Used by:356 808
Symbol 356 MovieClip {k_fla.MC_rock_27}Uses:327 330 333 336 339 342 345 348 351 355Used by:370
Symbol 357 BitmapUsed by:358
Symbol 358 GraphicUses:357Used by:369
Symbol 359 BitmapUsed by:360
Symbol 360 GraphicUses:359Used by:369
Symbol 361 BitmapUsed by:362
Symbol 362 GraphicUses:361Used by:369
Symbol 363 BitmapUsed by:364
Symbol 364 GraphicUses:363Used by:369
Symbol 365 BitmapUsed by:366
Symbol 366 GraphicUses:365Used by:369
Symbol 367 BitmapUsed by:368
Symbol 368 GraphicUses:367Used by:369
Symbol 369 MovieClipUses:358 360 362 364 366 368Used by:370
Symbol 370 MovieClip {enemy}Uses:220 241 264 285 306 315 320 324 356 369Used by:Timeline
Symbol 371 BitmapUsed by:372
Symbol 372 GraphicUses:371Used by:399
Symbol 373 BitmapUsed by:374
Symbol 374 GraphicUses:373Used by:399
Symbol 375 BitmapUsed by:376
Symbol 376 GraphicUses:375Used by:399
Symbol 377 BitmapUsed by:378
Symbol 378 GraphicUses:377Used by:399
Symbol 379 BitmapUsed by:380
Symbol 380 GraphicUses:379Used by:399
Symbol 381 BitmapUsed by:382
Symbol 382 GraphicUses:381Used by:399
Symbol 383 BitmapUsed by:384
Symbol 384 GraphicUses:383Used by:399
Symbol 385 BitmapUsed by:386
Symbol 386 GraphicUses:385Used by:399
Symbol 387 BitmapUsed by:388
Symbol 388 GraphicUses:387Used by:399
Symbol 389 BitmapUsed by:390
Symbol 390 GraphicUses:389Used by:399
Symbol 391 BitmapUsed by:392
Symbol 392 GraphicUses:391Used by:399
Symbol 393 BitmapUsed by:394
Symbol 394 GraphicUses:393Used by:399
Symbol 395 BitmapUsed by:396
Symbol 396 GraphicUses:395Used by:399
Symbol 397 BitmapUsed by:398
Symbol 398 GraphicUses:397Used by:399
Symbol 399 MovieClip {explode}Uses:372 374 376 378 380 382 384 386 388 390 392 394 396 398Used by:Timeline
Symbol 400 BitmapUsed by:401
Symbol 401 GraphicUses:400Used by:424
Symbol 402 BitmapUsed by:403
Symbol 403 GraphicUses:402Used by:424
Symbol 404 BitmapUsed by:405
Symbol 405 GraphicUses:404Used by:424
Symbol 406 BitmapUsed by:407
Symbol 407 GraphicUses:406Used by:424
Symbol 408 BitmapUsed by:409
Symbol 409 GraphicUses:408Used by:424
Symbol 410 BitmapUsed by:411
Symbol 411 GraphicUses:410Used by:424
Symbol 412 BitmapUsed by:413
Symbol 413 GraphicUses:412Used by:424
Symbol 414 BitmapUsed by:415
Symbol 415 GraphicUses:414Used by:424
Symbol 416 BitmapUsed by:417
Symbol 417 GraphicUses:416Used by:424
Symbol 418 BitmapUsed by:419
Symbol 419 GraphicUses:418Used by:424
Symbol 420 BitmapUsed by:421
Symbol 421 GraphicUses:420Used by:424
Symbol 422 BitmapUsed by:423
Symbol 423 GraphicUses:422Used by:424
Symbol 424 MovieClip {explode2}Uses:401 403 405 407 409 411 413 415 417 419 421 423Used by:Timeline
Symbol 425 GraphicUsed by:426
Symbol 426 MovieClipUses:425Used by:452
Symbol 427 BitmapUsed by:428 450
Symbol 428 GraphicUses:427Used by:429
Symbol 429 MovieClipUses:428Used by:445
Symbol 430 BitmapUsed by:431 450
Symbol 431 GraphicUses:430Used by:432
Symbol 432 MovieClipUses:431Used by:445
Symbol 433 BitmapUsed by:434 450
Symbol 434 GraphicUses:433Used by:435
Symbol 435 MovieClipUses:434Used by:445
Symbol 436 BitmapUsed by:437 450
Symbol 437 GraphicUses:436Used by:438
Symbol 438 MovieClipUses:437Used by:445
Symbol 439 BitmapUsed by:440 450
Symbol 440 GraphicUses:439Used by:441
Symbol 441 MovieClipUses:440Used by:445
Symbol 442 BitmapUsed by:443 450
Symbol 443 GraphicUses:442Used by:444
Symbol 444 MovieClipUses:443Used by:445
Symbol 445 MovieClipUses:429 432 435 438 441 444Used by:446
Symbol 446 MovieClipUses:445Used by:452
Symbol 447 GraphicUsed by:448 704 796
Symbol 448 MovieClipUses:447Used by:452
Symbol 449 GraphicUsed by:451
Symbol 450 GraphicUses:430 436 439 442 427 433Used by:451
Symbol 451 MovieClip {k_fla.fruitsstopped_53}Uses:449 450Used by:452
Symbol 452 MovieClipUses:426 446 448 451Used by:Timeline
Symbol 453 BitmapUsed by:454
Symbol 454 GraphicUses:453Used by:455
Symbol 455 MovieClipUses:454Used by:492 623 701 779 789 800 805 806 808
Symbol 456 BitmapUsed by:457
Symbol 457 GraphicUses:456Used by:458
Symbol 458 MovieClipUses:457Used by:459 463 794
Symbol 459 MovieClipUses:458Used by:460 461 462 791 792 793
Symbol 460 MovieClipUses:459Used by:492 701 779 789 808
Symbol 461 MovieClip {k_fla.leafGroup3ALT_59}Uses:459Used by:492 701 779 789 808
Symbol 462 MovieClip {k_fla.leafGroup4ALT_60}Uses:459Used by:492 701 779 789 808
Symbol 463 MovieClip {k_fla.leafGroup5ALT_61}Uses:458Used by:492 701 779 789 808
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClipUses:464Used by:492 808
Symbol 466 BitmapUsed by:467
Symbol 467 GraphicUses:466Used by:468
Symbol 468 MovieClipUses:467Used by:492 701 778 788 807
Symbol 469 BitmapUsed by:470
Symbol 470 GraphicUses:469Used by:471
Symbol 471 MovieClipUses:470Used by:472
Symbol 472 MovieClipUses:471Used by:479 701 807
Symbol 473 FontUsed by:474 480 481 484 488 685 689 693 697 767 769 771 801
Symbol 474 TextUses:473Used by:476
Symbol 475 TextUses:197Used by:476
Symbol 476 MovieClipUses:474 475Used by:479
Symbol 477 GraphicUsed by:478
Symbol 478 ButtonUses:477Used by:479 491 688 692 696 700
Symbol 479 MovieClip {k_fla.button_submit_64}Uses:472 324 476 478Used by:492
Symbol 480 TextUses:473Used by:483
Symbol 481 TextUses:473Used by:483
Symbol 482 GraphicUsed by:483
Symbol 483 ButtonUses:480 481 482Used by:492 779 789
Symbol 484 TextUses:473Used by:492
Symbol 485 TextUses:197Used by:492
Symbol 486 EditableTextUses:197Used by:492
Symbol 487 TextUses:197Used by:492
Symbol 488 TextUses:473Used by:490
Symbol 489 TextUses:197Used by:490
Symbol 490 MovieClipUses:488 489Used by:491
Symbol 491 MovieClip {k_fla.button_moreGames_70}Uses:324 490 478Used by:492 701 807
Symbol 492 MovieClip {gameover}Uses:455 460 461 462 463 465 468 479 483 484 485 486 487 491Used by:Timeline
Symbol 493 TextUses:197Used by:496
Symbol 494 TextUses:197Used by:495
Symbol 495 MovieClipUses:494Used by:496
Symbol 496 MovieClip {getreadygo}Uses:493 495Used by:Timeline
Symbol 497 BitmapUsed by:499 598
Symbol 498 BitmapUsed by:499
Symbol 499 GraphicUses:497 498Used by:500
Symbol 500 MovieClipUses:499Used by:520
Symbol 501 BitmapUsed by:502
Symbol 502 GraphicUses:501Used by:503
Symbol 503 MovieClipUses:502Used by:519 754
Symbol 504 BitmapUsed by:505
Symbol 505 GraphicUses:504Used by:506
Symbol 506 MovieClipUses:505Used by:519 754
Symbol 507 BitmapUsed by:508
Symbol 508 GraphicUses:507Used by:509
Symbol 509 MovieClipUses:508Used by:519 754
Symbol 510 BitmapUsed by:511
Symbol 511 GraphicUses:510Used by:512
Symbol 512 MovieClipUses:511Used by:519 754
Symbol 513 BitmapUsed by:514
Symbol 514 GraphicUses:513Used by:515
Symbol 515 MovieClipUses:514Used by:519 754
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:518
Symbol 518 MovieClipUses:517Used by:519 754
Symbol 519 MovieClip {k_fla.MC_squirrel_77}Uses:503 506 509 512 515 518Used by:520
Symbol 520 MovieClipUses:500 519Used by:623
Symbol 521 FontUsed by:522
Symbol 522 EditableTextUses:521Used by:623
Symbol 523 TextUses:23Used by:524
Symbol 524 MovieClip {k_fla.pressspace_84}Uses:523Used by:623
Symbol 525 GraphicUsed by:530
Symbol 526 BitmapUsed by:527
Symbol 527 GraphicUses:526Used by:528
Symbol 528 MovieClipUses:527Used by:530
Symbol 529 GraphicUsed by:530 556 566
Symbol 530 MovieClip {k_fla.MC_machineBody_86}Uses:525 528 529Used by:597
Symbol 531 BitmapUsed by:532
Symbol 532 GraphicUses:531Used by:533
Symbol 533 MovieClipUses:532Used by:597 701 779 789 808
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:536
Symbol 536 MovieClipUses:535Used by:556
Symbol 537 BitmapUsed by:543 546 709
Symbol 538 BitmapUsed by:543 551 719
Symbol 539 BitmapUsed by:543 550 717
Symbol 540 BitmapUsed by:543 549 715
Symbol 541 BitmapUsed by:543 548 713
Symbol 542 BitmapUsed by:543 547 711
Symbol 543 GraphicUses:537 538 539 540 541 542Used by:544
Symbol 544 MovieClipUses:543Used by:545
Symbol 545 MovieClipUses:544Used by:556
Symbol 546 GraphicUses:537Used by:552
Symbol 547 GraphicUses:542Used by:552
Symbol 548 GraphicUses:541Used by:552
Symbol 549 GraphicUses:540Used by:552
Symbol 550 GraphicUses:539Used by:552
Symbol 551 GraphicUses:538Used by:552
Symbol 552 MovieClip {k_fla.fruitwin_93}Uses:546 547 548 549 550 551Used by:556
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:555
Symbol 555 MovieClipUses:554Used by:556
Symbol 556 MovieClipUses:536 529 545 552 555Used by:597 787
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:559
Symbol 559 MovieClipUses:558Used by:566
Symbol 560 TextUses:197Used by:561
Symbol 561 MovieClipUses:560Used by:562
Symbol 562 MovieClipUses:561Used by:566
Symbol 563 BitmapUsed by:564
Symbol 564 GraphicUses:563Used by:565
Symbol 565 MovieClipUses:564Used by:566
Symbol 566 MovieClipUses:559 529 562 565Used by:597
Symbol 567 BitmapUsed by:568
Symbol 568 GraphicUses:567Used by:569
Symbol 569 MovieClipUses:568Used by:597
Symbol 570 BitmapUsed by:571
Symbol 571 GraphicUses:570Used by:572
Symbol 572 MovieClipUses:571Used by:597
Symbol 573 BitmapUsed by:574
Symbol 574 GraphicUses:573Used by:575
Symbol 575 MovieClipUses:574Used by:597 701 779 789 808
Symbol 576 GraphicUsed by:579
Symbol 577 GraphicUsed by:578
Symbol 578 MovieClipUses:577Used by:579
Symbol 579 MovieClip {k_fla.MC_gauge_103}Uses:576 578Used by:597
Symbol 580 BitmapUsed by:581
Symbol 581 GraphicUses:580Used by:582
Symbol 582 MovieClipUses:581Used by:597
Symbol 583 BitmapUsed by:584
Symbol 584 GraphicUses:583Used by:585
Symbol 585 MovieClip {k_fla.UI_greenLight_106}Uses:584Used by:597
Symbol 586 BitmapUsed by:587
Symbol 587 GraphicUses:586Used by:588
Symbol 588 MovieClipUses:587Used by:597
Symbol 589 BitmapUsed by:590
Symbol 590 GraphicUses:589Used by:591
Symbol 591 MovieClipUses:590Used by:596
Symbol 592 BitmapUsed by:593
Symbol 593 GraphicUses:592Used by:594
Symbol 594 MovieClipUses:593Used by:595
Symbol 595 MovieClipUses:594Used by:596
Symbol 596 MovieClipUses:591 595Used by:597
Symbol 597 MovieClipUses:530 533 556 566 569 572 575 579 582 585 588 596Used by:623
Symbol 598 GraphicUses:497Used by:599
Symbol 599 MovieClipUses:598Used by:623
Symbol 600 GraphicUsed by:601
Symbol 601 MovieClipUses:600Used by:623
Symbol 602 BitmapUsed by:603
Symbol 603 GraphicUses:602Used by:604
Symbol 604 MovieClipUses:603Used by:623
Symbol 605 BitmapUsed by:606
Symbol 606 GraphicUses:605Used by:607
Symbol 607 MovieClipUses:606Used by:623 701 779 789 800 805 806 808
Symbol 608 GraphicUsed by:609
Symbol 609 MovieClipUses:608Used by:610
Symbol 610 MovieClipUses:609Used by:623
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:615
Symbol 613 BitmapUsed by:614
Symbol 614 GraphicUses:613Used by:615
Symbol 615 MovieClip {k_fla.audiobtn_119}Uses:612 614Used by:616
Symbol 616 MovieClip {k_fla.MC_sound_118}Uses:615Used by:623 701
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:621
Symbol 619 BitmapUsed by:620
Symbol 620 GraphicUses:619Used by:621
Symbol 621 MovieClip {k_fla.lobtn_121}Uses:618 620Used by:622
Symbol 622 MovieClip {k_fla.MC_quality_120}Uses:621Used by:623 701
Symbol 623 MovieClip {gui}Uses:455 520 522 524 597 599 601 604 607 610 616 622Used by:Timeline
Symbol 624 GraphicUsed by:628
Symbol 625 TextUses:23Used by:628
Symbol 626 TextUses:23Used by:628
Symbol 627 TextUses:23Used by:628
Symbol 628 MovieClip {instructions}Uses:624 625 626 191 627Used by:Timeline
Symbol 629 GraphicUsed by:630
Symbol 630 MovieClip {invader}Uses:629Used by:Timeline
Symbol 631 TextUses:23Used by:633
Symbol 632 TextUses:23Used by:633
Symbol 633 MovieClip {messagebox}Uses:631 632Used by:Timeline
Symbol 634 BitmapUsed by:635
Symbol 635 GraphicUses:634Used by:636
Symbol 636 MovieClip {pausedmenu}Uses:635Used by:Timeline
Symbol 637 BitmapUsed by:638
Symbol 638 GraphicUses:637Used by:639
Symbol 639 MovieClipUses:638Used by:675
Symbol 640 GraphicUsed by:641
Symbol 641 MovieClipUses:640Used by:657
Symbol 642 GraphicUsed by:643
Symbol 643 MovieClipUses:642Used by:657
Symbol 644 GraphicUsed by:645
Symbol 645 MovieClipUses:644Used by:657
Symbol 646 GraphicUsed by:647
Symbol 647 MovieClipUses:646Used by:657 674
Symbol 648 GraphicUsed by:649
Symbol 649 MovieClipUses:648Used by:657 674
Symbol 650 GraphicUsed by:651
Symbol 651 MovieClipUses:650Used by:652
Symbol 652 MovieClipUses:651Used by:657
Symbol 653 GraphicUsed by:656
Symbol 654 GraphicUsed by:655
Symbol 655 MovieClipUses:654Used by:656
Symbol 656 MovieClipUses:653 655Used by:657
Symbol 657 MovieClip {k_fla.chameleon_anims_129}Uses:641 16 643 645 647 649 652 656 38Used by:675
Symbol 658 GraphicUsed by:659
Symbol 659 MovieClipUses:658Used by:674
Symbol 660 GraphicUsed by:661
Symbol 661 MovieClipUses:660Used by:674
Symbol 662 GraphicUsed by:665
Symbol 663 GraphicUsed by:664
Symbol 664 MovieClipUses:663Used by:665
Symbol 665 MovieClipUses:662 664Used by:674
Symbol 666 GraphicUsed by:667
Symbol 667 MovieClipUses:666Used by:668
Symbol 668 MovieClipUses:667Used by:674
Symbol 669 GraphicUsed by:670
Symbol 670 MovieClipUses:669Used by:674
Symbol 671 ShapeTweeningUsed by:674
Symbol 672 ShapeTweeningUsed by:674
Symbol 673 GraphicUsed by:674
Symbol 674 MovieClip {k_fla.chameleon_gear_141}Uses:659 661 665 668 649 647 670 671 672 673Used by:675
Symbol 675 MovieClip {k_fla.Kmilion_anim_127}Uses:639 657 674Used by:676 701 808  Timeline
Symbol 676 MovieClip {player}Uses:675Used by:Timeline
Symbol 677 BitmapUsed by:678
Symbol 678 GraphicUses:677Used by:679
Symbol 679 MovieClipUses:678Used by:701 744 779 789 808
Symbol 680 BitmapUsed by:681
Symbol 681 GraphicUses:680Used by:682
Symbol 682 MovieClipUses:681Used by:701 779 789 806 808
Symbol 683 GraphicUsed by:684
Symbol 684 MovieClipUses:683Used by:701 779 789 805 808
Symbol 685 TextUses:473Used by:687
Symbol 686 TextUses:197Used by:687
Symbol 687 MovieClipUses:685 686Used by:688
Symbol 688 MovieClip {k_fla.button_viewScores_153}Uses:324 687 478Used by:701 807
Symbol 689 TextUses:473Used by:691 778
Symbol 690 TextUses:197Used by:691 778
Symbol 691 MovieClipUses:689 690Used by:692
Symbol 692 MovieClip {k_fla.button_credit_155}Uses:324 691 478Used by:701 807
Symbol 693 TextUses:473Used by:695 788
Symbol 694 TextUses:197Used by:695 788
Symbol 695 MovieClipUses:693 694Used by:696
Symbol 696 MovieClip {k_fla.button_tutorial_157}Uses:324 695 478Used by:701 807
Symbol 697 TextUses:473Used by:699
Symbol 698 TextUses:197Used by:699
Symbol 699 MovieClipUses:697 698Used by:700
Symbol 700 MovieClip {k_fla.button_play_159}Uses:324 699 478Used by:701 807
Symbol 701 MovieClip {title}Uses:455 460 679 461 462 463 675 682 684 607 533 575 468 472 688 692 696 491 700 616 622Used by:Timeline
Symbol 702 GraphicUsed by:703
Symbol 703 MovieClip {trail}Uses:702Used by:Timeline
Symbol 704 MovieClipUses:447Used by:705
Symbol 705 MovieClip {trans}Uses:704Used by:Timeline
Symbol 706 GraphicUsed by:707
Symbol 707 MovieClipUses:706Used by:720
Symbol 708 TextUses:197Used by:720
Symbol 709 GraphicUses:537Used by:720
Symbol 710 TextUses:197Used by:720
Symbol 711 GraphicUses:542Used by:720
Symbol 712 TextUses:197Used by:720
Symbol 713 GraphicUses:541Used by:720
Symbol 714 TextUses:197Used by:720
Symbol 715 GraphicUses:540Used by:720
Symbol 716 TextUses:197Used by:720
Symbol 717 GraphicUses:539Used by:720
Symbol 718 TextUses:197Used by:720
Symbol 719 GraphicUses:538Used by:720
Symbol 720 MovieClip {k_fla.annoncement_166}Uses:707 708 709 710 711 712 713 714 715 716 717 718 719Used by:721
Symbol 721 MovieClipUses:720Used by:722
Symbol 722 MovieClip {tripple}Uses:721Used by:Timeline
Symbol 723 GraphicUsed by:740
Symbol 724 Sound {losegems}Used by:740
Symbol 725 Sound {warningfull}Used by:740
Symbol 726 Sound {special2}Used by:740
Symbol 727 Sound {hitsquirrel}Used by:740
Symbol 728 Sound {special1}Used by:740
Symbol 729 Sound {bubbles}Used by:740
Symbol 730 Sound {bombexplode}Used by:740
Symbol 731 Sound {musicloop}Used by:740
Symbol 732 Sound {menuselection}Used by:740
Symbol 733 Sound {slotswin}Used by:740
Symbol 734 Sound {slotstop}Used by:740
Symbol 735 Sound {gameoversound}Used by:740
Symbol 736 Sound {loseslots}Used by:740
Symbol 737 Sound {spendcoins}Used by:740
Symbol 738 Sound {menuroll}Used by:740
Symbol 739 Sound {collectcoin}Used by:740
Symbol 740 MovieClipUses:723 724 725 726 727 728 729 730 731 732 4 733 734 3 735 736 2 1 737 738 739Used by:Timeline
Symbol 741 BitmapUsed by:742
Symbol 742 GraphicUses:741Used by:743
Symbol 743 MovieClipUses:742Used by:744
Symbol 744 MovieClip {backgroundart}Uses:743 679Used by:Timeline
Symbol 745 GraphicUsed by:746
Symbol 746 MovieClipUses:745Used by:753
Symbol 747 GraphicUsed by:748
Symbol 748 MovieClipUses:747Used by:753
Symbol 749 GraphicUsed by:750
Symbol 750 MovieClipUses:749Used by:753
Symbol 751 GraphicUsed by:752
Symbol 752 MovieClipUses:751Used by:753
Symbol 753 MovieClipUses:746 748 750 752Used by:754
Symbol 754 MovieClipUses:503 506 509 512 753 515 518Used by:755 789
Symbol 755 MovieClip {squirrelshoot}Uses:754Used by:Timeline
Symbol 756 GraphicUsed by:757
Symbol 757 MovieClipUses:756Used by:758
Symbol 758 MovieClipUses:757Used by:759
Symbol 759 MovieClip {spiderweb}Uses:758Used by:787  Timeline
Symbol 760 Bitmap {crossexplode}Used by:Timeline
Symbol 761 Bitmap {lightningstrike}Used by:Timeline
Symbol 762 Bitmap {lineexplode}Used by:Timeline
Symbol 763 GraphicUsed by:764
Symbol 764 MovieClipUses:763Used by:765
Symbol 765 MovieClipUses:764Used by:766
Symbol 766 MovieClip {waterAnim}Uses:765Used by:Timeline
Symbol 767 TextUses:473Used by:778
Symbol 768 TextUses:197Used by:778
Symbol 769 TextUses:473Used by:778
Symbol 770 TextUses:197Used by:778
Symbol 771 TextUses:473Used by:778
Symbol 772 TextUses:197Used by:778
Symbol 773 TextUses:197Used by:777
Symbol 774 GraphicUsed by:775
Symbol 775 MovieClipUses:774Used by:777
Symbol 776 GraphicUsed by:777
Symbol 777 ButtonUses:773 775 776Used by:778
Symbol 778 MovieClip {k_fla.page_credits_185}Uses:468 689 690 767 768 769 770 771 772 777 220 285 315Used by:779
Symbol 779 MovieClip {creds}Uses:455 460 679 461 462 463 682 684 607 533 575 778 483Used by:Timeline
Symbol 780 TextUses:197Used by:787
Symbol 781 GraphicUsed by:787
Symbol 782 GraphicUsed by:783
Symbol 783 MovieClipUses:782Used by:787
Symbol 784 TextUses:23Used by:787
Symbol 785 TextUses:23Used by:787
Symbol 786 TextUses:23Used by:787
Symbol 787 MovieClipUses:780 556 781 783 784 785 786 324 759Used by:788
Symbol 788 MovieClipUses:468 693 694 787Used by:789
Symbol 789 MovieClip {tutorial}Uses:455 460 679 788 461 462 463 682 684 607 533 575 483 754Used by:Timeline
Symbol 790 Bitmap {smallexplode}Used by:Timeline
Symbol 791 MovieClipUses:459Used by:800 805 806
Symbol 792 MovieClip {k_fla.leafGroup3_194}Uses:459Used by:800 805 806
Symbol 793 MovieClip {k_fla.leafGroup4_195}Uses:459Used by:800 805 806
Symbol 794 MovieClip {k_fla.leafGroup5_196}Uses:458Used by:800 805 806
Symbol 795 GraphicUsed by:800 805 806
Symbol 796 MovieClipUses:447Used by:800 805 806 808
Symbol 797 BitmapUsed by:798
Symbol 798 GraphicUses:797Used by:799
Symbol 799 MovieClipUses:798Used by:800 808
Symbol 800 MovieClip {k_fla.sponsorintro_192}Uses:791 792 793 794 795 607 796 455 799Used by:Timeline
Symbol 801 TextUses:473Used by:804
Symbol 802 GraphicUsed by:803
Symbol 803 MovieClipUses:802Used by:804
Symbol 804 MovieClipUses:801 803Used by:Timeline
Symbol 805 MovieClip {k_fla.alillmintro_201}Uses:791 792 793 794 795 607 796 455 684Used by:Timeline
Symbol 806 MovieClip {k_fla.luxintro_202}Uses:791 792 793 794 795 607 796 455 682Used by:Timeline
Symbol 807 MovieClip {k_fla.page_home_204}Uses:468 700 696 692 688 491 472Used by:808
Symbol 808 MovieClip {k_fla.menuintro_203}Uses:460 461 462 463 465 607 796 455 679 682 684 799 533 575 355 807 675Used by:Timeline

Instance Names

"__id1_"Frame 1Symbol 149 MovieClip {com.newgrounds.components.APIConnector}
"skipbtn"Frame 4Symbol 804 MovieClip
"chameleon"Frame 8Symbol 675 MovieClip {k_fla.Kmilion_anim_127}
"mc"Symbol 8 MovieClip {bulge} Frame 1Symbol 7 MovieClip
"medalNameText"Symbol 53 MovieClip {com.newgrounds.components.MedalPopup} Frame 10Symbol 46 EditableText
"medalValueText"Symbol 53 MovieClip {com.newgrounds.components.MedalPopup} Frame 10Symbol 49 EditableText
"medalContainer"Symbol 53 MovieClip {com.newgrounds.components.MedalPopup} Frame 10Symbol 51 MovieClip
"bar"Symbol 87 MovieClip {com.newgrounds.components.PreloaderBar} Frame 2Symbol 61 MovieClip
"playButton"Symbol 87 MovieClip {com.newgrounds.components.PreloaderBar} Frame 48Symbol 86 Button
"shadow"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 115 MovieClip
"c"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 117 MovieClip
"b"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 119 MovieClip
"t"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 121 MovieClip
"l"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 123 MovieClip
"r"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 125 MovieClip
"tl"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 127 MovieClip
"tr"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 129 MovieClip
"bl"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 131 MovieClip
"br"Symbol 134 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 133 MovieClip
"errorDialog"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 5Symbol 107 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_Login_Warning_12}
"errorDialog"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 6Symbol 111 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_Connection_Error_14}
"background"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 113 MovieClip
"closeButton"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 138 Button
"viewLatestButton"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 144 Button
"viewAuthorizedButton"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 8Symbol 144 Button
"adMask"Symbol 162 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_FlashAd_Container_41} Frame 1Symbol 152 MovieClip
"ngLinkButton"Symbol 162 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_FlashAd_Container_41} Frame 1Symbol 157 Button
"background"Symbol 163 MovieClip {com.newgrounds.components.FlashAd} Frame 1Symbol 162 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_FlashAd_Container_41}
"txt"Symbol 199 MovieClip {combotext} Frame 1Symbol 198 EditableText
"mc"Symbol 370 MovieClip {enemy} Frame 9Symbol 356 MovieClip {k_fla.MC_rock_27}
"row1"Symbol 452 MovieClip Frame 1Symbol 446 MovieClip
"row2"Symbol 452 MovieClip Frame 1Symbol 446 MovieClip
"row3"Symbol 452 MovieClip Frame 1Symbol 446 MovieClip
"msk1"Symbol 452 MovieClip Frame 1Symbol 448 MovieClip
"msk2"Symbol 452 MovieClip Frame 1Symbol 448 MovieClip
"msk3"Symbol 452 MovieClip Frame 1Symbol 448 MovieClip
"win1"Symbol 452 MovieClip Frame 1Symbol 451 MovieClip {k_fla.fruitsstopped_53}
"win2"Symbol 452 MovieClip Frame 1Symbol 451 MovieClip {k_fla.fruitsstopped_53}
"win3"Symbol 452 MovieClip Frame 1Symbol 451 MovieClip {k_fla.fruitsstopped_53}
"msk4"Symbol 452 MovieClip Frame 1Symbol 448 MovieClip
"msk5"Symbol 452 MovieClip Frame 1Symbol 448 MovieClip
"msk6"Symbol 452 MovieClip Frame 1Symbol 448 MovieClip
"button"Symbol 479 MovieClip {k_fla.button_submit_64} Frame 1Symbol 478 Button
"button"Symbol 491 MovieClip {k_fla.button_moreGames_70} Frame 1Symbol 478 Button
"group3"Symbol 492 MovieClip {gameover} Frame 1Symbol 461 MovieClip {k_fla.leafGroup3ALT_59}
"group4"Symbol 492 MovieClip {gameover} Frame 1Symbol 462 MovieClip {k_fla.leafGroup4ALT_60}
"group5"Symbol 492 MovieClip {gameover} Frame 1Symbol 463 MovieClip {k_fla.leafGroup5ALT_61}
"submit"Symbol 492 MovieClip {gameover} Frame 1Symbol 479 MovieClip {k_fla.button_submit_64}
"back"Symbol 492 MovieClip {gameover} Frame 1Symbol 483 Button
"scoretxt"Symbol 492 MovieClip {gameover} Frame 1Symbol 486 EditableText
"more"Symbol 492 MovieClip {gameover} Frame 1Symbol 491 MovieClip {k_fla.button_moreGames_70}
"s2"Symbol 520 MovieClip Frame 1Symbol 519 MovieClip {k_fla.MC_squirrel_77}
"s1"Symbol 520 MovieClip Frame 1Symbol 519 MovieClip {k_fla.MC_squirrel_77}
"row1"Symbol 556 MovieClip Frame 1Symbol 545 MovieClip
"row2"Symbol 556 MovieClip Frame 1Symbol 545 MovieClip
"row3"Symbol 556 MovieClip Frame 1Symbol 545 MovieClip
"win1"Symbol 556 MovieClip Frame 1Symbol 552 MovieClip {k_fla.fruitwin_93}
"win2"Symbol 556 MovieClip Frame 1Symbol 552 MovieClip {k_fla.fruitwin_93}
"win3"Symbol 556 MovieClip Frame 1Symbol 552 MovieClip {k_fla.fruitwin_93}
"n1"Symbol 566 MovieClip Frame 1Symbol 562 MovieClip
"n4"Symbol 566 MovieClip Frame 1Symbol 562 MovieClip
"n5"Symbol 566 MovieClip Frame 1Symbol 562 MovieClip
"n6"Symbol 566 MovieClip Frame 1Symbol 562 MovieClip
"n2"Symbol 566 MovieClip Frame 1Symbol 562 MovieClip
"n3"Symbol 566 MovieClip Frame 1Symbol 562 MovieClip
"body"Symbol 597 MovieClip Frame 1Symbol 530 MovieClip {k_fla.MC_machineBody_86}
"fruit"Symbol 597 MovieClip Frame 1Symbol 556 MovieClip
"score"Symbol 597 MovieClip Frame 1Symbol 566 MovieClip
"pink"Symbol 597 MovieClip Frame 1Symbol 579 MovieClip {k_fla.MC_gauge_103}
"greenlight"Symbol 597 MovieClip Frame 1Symbol 585 MovieClip {k_fla.UI_greenLight_106}
"mc"Symbol 610 MovieClip Frame 1Symbol 609 MovieClip
"mc"Symbol 616 MovieClip {k_fla.MC_sound_118} Frame 1Symbol 615 MovieClip {k_fla.audiobtn_119}
"mc"Symbol 622 MovieClip {k_fla.MC_quality_120} Frame 1Symbol 621 MovieClip {k_fla.lobtn_121}
"squirrels"Symbol 623 MovieClip {gui} Frame 1Symbol 520 MovieClip
"creds"Symbol 623 MovieClip {gui} Frame 1Symbol 522 EditableText
"pressspace"Symbol 623 MovieClip {gui} Frame 1Symbol 524 MovieClip {k_fla.pressspace_84}
"machine"Symbol 623 MovieClip {gui} Frame 1Symbol 597 MovieClip
"pipe"Symbol 623 MovieClip {gui} Frame 1Symbol 610 MovieClip
"audiotoggle"Symbol 623 MovieClip {gui} Frame 1Symbol 616 MovieClip {k_fla.MC_sound_118}
"qualitytoggle"Symbol 623 MovieClip {gui} Frame 1Symbol 622 MovieClip {k_fla.MC_quality_120}
"chamshadow"Symbol 675 MovieClip {k_fla.Kmilion_anim_127} Frame 1Symbol 639 MovieClip
"kmilion"Symbol 675 MovieClip {k_fla.Kmilion_anim_127} Frame 1Symbol 657 MovieClip {k_fla.chameleon_anims_129}
"gear"Symbol 675 MovieClip {k_fla.Kmilion_anim_127} Frame 1Symbol 674 MovieClip {k_fla.chameleon_gear_141}
"chameleon"Symbol 676 MovieClip {player} Frame 1Symbol 675 MovieClip {k_fla.Kmilion_anim_127}
"button"Symbol 688 MovieClip {k_fla.button_viewScores_153} Frame 1Symbol 478 Button
"button"Symbol 692 MovieClip {k_fla.button_credit_155} Frame 1Symbol 478 Button
"button"Symbol 696 MovieClip {k_fla.button_tutorial_157} Frame 1Symbol 478 Button
"button"Symbol 700 MovieClip {k_fla.button_play_159} Frame 1Symbol 478 Button
"group3"Symbol 701 MovieClip {title} Frame 1Symbol 461 MovieClip {k_fla.leafGroup3ALT_59}
"group4"Symbol 701 MovieClip {title} Frame 1Symbol 462 MovieClip {k_fla.leafGroup4ALT_60}
"group5"Symbol 701 MovieClip {title} Frame 1Symbol 463 MovieClip {k_fla.leafGroup5ALT_61}
"chameleon"Symbol 701 MovieClip {title} Frame 1Symbol 675 MovieClip {k_fla.Kmilion_anim_127}
"viewbtn"Symbol 701 MovieClip {title} Frame 1Symbol 688 MovieClip {k_fla.button_viewScores_153}
"creditsbtn"Symbol 701 MovieClip {title} Frame 1Symbol 692 MovieClip {k_fla.button_credit_155}
"tutorialbtn"Symbol 701 MovieClip {title} Frame 1Symbol 696 MovieClip {k_fla.button_tutorial_157}
"morebtn"Symbol 701 MovieClip {title} Frame 1Symbol 491 MovieClip {k_fla.button_moreGames_70}
"playbtn"Symbol 701 MovieClip {title} Frame 1Symbol 700 MovieClip {k_fla.button_play_159}
"audiotoggle"Symbol 701 MovieClip {title} Frame 1Symbol 616 MovieClip {k_fla.MC_sound_118}
"qualitytoggle"Symbol 701 MovieClip {title} Frame 1Symbol 622 MovieClip {k_fla.MC_quality_120}
"mc"Symbol 721 MovieClip Frame 1Symbol 720 MovieClip {k_fla.annoncement_166}
"mc"Symbol 722 MovieClip {tripple} Frame 1Symbol 721 MovieClip
"gun"Symbol 754 MovieClip Frame 1Symbol 753 MovieClip
"mc"Symbol 755 MovieClip {squirrelshoot} Frame 1Symbol 754 MovieClip
"alillm"Symbol 778 MovieClip {k_fla.page_credits_185} Frame 1Symbol 777 Button
"akelixe"Symbol 778 MovieClip {k_fla.page_credits_185} Frame 1Symbol 777 Button
"lux"Symbol 778 MovieClip {k_fla.page_credits_185} Frame 1Symbol 777 Button
"group3"Symbol 779 MovieClip {creds} Frame 1Symbol 461 MovieClip {k_fla.leafGroup3ALT_59}
"group4"Symbol 779 MovieClip {creds} Frame 1Symbol 462 MovieClip {k_fla.leafGroup4ALT_60}
"group5"Symbol 779 MovieClip {creds} Frame 1Symbol 463 MovieClip {k_fla.leafGroup5ALT_61}
"back"Symbol 779 MovieClip {creds} Frame 1Symbol 483 Button
"mc"Symbol 789 MovieClip {tutorial} Frame 1Symbol 788 MovieClip
"group3"Symbol 789 MovieClip {tutorial} Frame 1Symbol 461 MovieClip {k_fla.leafGroup3ALT_59}
"group4"Symbol 789 MovieClip {tutorial} Frame 1Symbol 462 MovieClip {k_fla.leafGroup4ALT_60}
"group5"Symbol 789 MovieClip {tutorial} Frame 1Symbol 463 MovieClip {k_fla.leafGroup5ALT_61}
"back"Symbol 789 MovieClip {tutorial} Frame 1Symbol 483 Button
"squirrel"Symbol 789 MovieClip {tutorial} Frame 1Symbol 754 MovieClip
"group3"Symbol 800 MovieClip {k_fla.sponsorintro_192} Frame 1Symbol 792 MovieClip {k_fla.leafGroup3_194}
"group4"Symbol 800 MovieClip {k_fla.sponsorintro_192} Frame 1Symbol 793 MovieClip {k_fla.leafGroup4_195}
"group5"Symbol 800 MovieClip {k_fla.sponsorintro_192} Frame 1Symbol 794 MovieClip {k_fla.leafGroup5_196}
"group3"Symbol 805 MovieClip {k_fla.alillmintro_201} Frame 1Symbol 792 MovieClip {k_fla.leafGroup3_194}
"group4"Symbol 805 MovieClip {k_fla.alillmintro_201} Frame 1Symbol 793 MovieClip {k_fla.leafGroup4_195}
"group5"Symbol 805 MovieClip {k_fla.alillmintro_201} Frame 1Symbol 794 MovieClip {k_fla.leafGroup5_196}
"group3"Symbol 806 MovieClip {k_fla.luxintro_202} Frame 1Symbol 792 MovieClip {k_fla.leafGroup3_194}
"group4"Symbol 806 MovieClip {k_fla.luxintro_202} Frame 1Symbol 793 MovieClip {k_fla.leafGroup4_195}
"group5"Symbol 806 MovieClip {k_fla.luxintro_202} Frame 1Symbol 794 MovieClip {k_fla.leafGroup5_196}
"group3"Symbol 808 MovieClip {k_fla.menuintro_203} Frame 1Symbol 461 MovieClip {k_fla.leafGroup3ALT_59}
"group4"Symbol 808 MovieClip {k_fla.menuintro_203} Frame 1Symbol 462 MovieClip {k_fla.leafGroup4ALT_60}
"group5"Symbol 808 MovieClip {k_fla.menuintro_203} Frame 1Symbol 463 MovieClip {k_fla.leafGroup5ALT_61}
"chameleon"Symbol 808 MovieClip {k_fla.menuintro_203} Frame 21Symbol 675 MovieClip {k_fla.Kmilion_anim_127}

Special Tags

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

Labels

"medal_show"Symbol 53 MovieClip {com.newgrounds.components.MedalPopup} Frame 2
"medal_hide"Symbol 53 MovieClip {com.newgrounds.components.MedalPopup} Frame 11
"LOAD"Symbol 87 MovieClip {com.newgrounds.components.PreloaderBar} Frame 2
"COMPLETE_STOP"Symbol 87 MovieClip {com.newgrounds.components.PreloaderBar} Frame 3
"closeme"Symbol 107 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_Login_Warning_12} Frame 11
"closeme"Symbol 111 MovieClip {PreloaderBar_fla.NewgroundsAPIAsset_Connection_Error_14} Frame 11
"idle"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 2
"connecting"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 3
"connected"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 4
"no_login"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 5
"no_connect"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 6
"new_version"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 7
"bad_host"Symbol 149 MovieClip {com.newgrounds.components.APIConnector} Frame 8
"go"Symbol 461 MovieClip {k_fla.leafGroup3ALT_59} Frame 2
"go"Symbol 462 MovieClip {k_fla.leafGroup4ALT_60} Frame 2
"go"Symbol 463 MovieClip {k_fla.leafGroup5ALT_61} Frame 2
"over"Symbol 479 MovieClip {k_fla.button_submit_64} Frame 5
"out"Symbol 479 MovieClip {k_fla.button_submit_64} Frame 21
"over"Symbol 491 MovieClip {k_fla.button_moreGames_70} Frame 5
"out"Symbol 491 MovieClip {k_fla.button_moreGames_70} Frame 21
"0"Symbol 562 MovieClip Frame 1
"1"Symbol 562 MovieClip Frame 7
"2"Symbol 562 MovieClip Frame 13
"3"Symbol 562 MovieClip Frame 19
"4"Symbol 562 MovieClip Frame 25
"5"Symbol 562 MovieClip Frame 31
"6"Symbol 562 MovieClip Frame 37
"7"Symbol 562 MovieClip Frame 43
"8"Symbol 562 MovieClip Frame 49
"9"Symbol 562 MovieClip Frame 55
"fire"Symbol 657 MovieClip {k_fla.chameleon_anims_129} Frame 5
"move"Symbol 657 MovieClip {k_fla.chameleon_anims_129} Frame 20
"breathe"Symbol 657 MovieClip {k_fla.chameleon_anims_129} Frame 36
"fire"Symbol 674 MovieClip {k_fla.chameleon_gear_141} Frame 5
"move"Symbol 674 MovieClip {k_fla.chameleon_gear_141} Frame 20
"breathe"Symbol 674 MovieClip {k_fla.chameleon_gear_141} Frame 36
"kite"Symbol 674 MovieClip {k_fla.chameleon_gear_141} Frame 51
"kiteLoop"Symbol 674 MovieClip {k_fla.chameleon_gear_141} Frame 56
"over"Symbol 688 MovieClip {k_fla.button_viewScores_153} Frame 5
"out"Symbol 688 MovieClip {k_fla.button_viewScores_153} Frame 21
"over"Symbol 692 MovieClip {k_fla.button_credit_155} Frame 5
"out"Symbol 692 MovieClip {k_fla.button_credit_155} Frame 21
"over"Symbol 696 MovieClip {k_fla.button_tutorial_157} Frame 5
"out"Symbol 696 MovieClip {k_fla.button_tutorial_157} Frame 21
"over"Symbol 700 MovieClip {k_fla.button_play_159} Frame 5
"out"Symbol 700 MovieClip {k_fla.button_play_159} Frame 21
"go"Symbol 766 MovieClip {waterAnim} Frame 2
"go"Symbol 792 MovieClip {k_fla.leafGroup3_194} Frame 2
"go"Symbol 793 MovieClip {k_fla.leafGroup4_195} Frame 2
"go"Symbol 794 MovieClip {k_fla.leafGroup5_196} Frame 2




http://swfchan.com/18/89572/info.shtml
Created: 28/3 -2019 21:36:57 Last modified: 28/3 -2019 21:36:57 Server time: 23/04 -2024 10:02:45